diff options
author | gerald <gerald@f5534014-38df-0310-8fa8-9805f1628bb7> | 2002-08-18 15:30:38 +0000 |
---|---|---|
committer | gerald <gerald@f5534014-38df-0310-8fa8-9805f1628bb7> | 2002-08-18 15:30:38 +0000 |
commit | 41f37b8a758a8aa986c29dd5e77701c456e5ce55 (patch) | |
tree | 962e0a0d90ee4ab8a23f83e2baff17566d422987 /packet-ppp.c | |
parent | 6793644579f09660a5050f1fbcf3f7122587998d (diff) |
From ENDOH Akira:
- displaying PPP datalink layer protocol names based on iana database:
http://www.iana.org/assignments/ppp-numbers
- dissecting MPLSCP and CDPCP
- dissecting CDP over PPP
git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@6011 f5534014-38df-0310-8fa8-9805f1628bb7
Diffstat (limited to 'packet-ppp.c')
-rw-r--r-- | packet-ppp.c | 176 |
1 files changed, 172 insertions, 4 deletions
diff --git a/packet-ppp.c b/packet-ppp.c index 6cbd7f8098..54587d47ad 100644 --- a/packet-ppp.c +++ b/packet-ppp.c @@ -1,7 +1,7 @@ /* packet-ppp.c * Routines for ppp packet disassembly * - * $Id: packet-ppp.c,v 1.95 2002/08/04 08:44:27 guy Exp $ + * $Id: packet-ppp.c,v 1.96 2002/08/18 15:30:38 gerald Exp $ * * Ethereal - Network traffic analyzer * By Gerald Combs <gerald@ethereal.com> @@ -128,6 +128,14 @@ static int hf_mp_sequence_num = -1; static int ett_mp = -1; static int ett_mp_flags = -1; +static int proto_mplscp = -1; +static gint ett_mplscp = -1; +static gint ett_mplscp_options = -1; + +static int proto_cdpcp = -1; +static gint ett_cdpcp = -1; +static gint ett_cdpcp_options = -1; + static int proto_pap = -1; /* PAP vars */ static gint ett_pap = -1; static gint ett_pap_data = -1; @@ -164,36 +172,129 @@ static guint pppmux_def_prot_id = 0; /* PPP definitions */ static const value_string ppp_vals[] = { + {PPP_PADDING, "Padding Protocol" }, + {PPP_ROHC_SCID, "ROHC small-CID" }, + {PPP_ROHC_LCID, "ROHC large-CID" }, {PPP_IP, "IP" }, {PPP_OSI, "OSI" }, + {PPP_DEC4, "DECnet Phase IV" }, {PPP_AT, "Appletalk" }, {PPP_IPX, "Netware IPX/SPX"}, {PPP_VJC_COMP, "VJ compressed TCP"}, {PPP_VJC_UNCOMP,"VJ uncompressed TCP"}, {PPP_BPDU, "Bridging PDU"}, + {PPP_ST, "Stream Protocol (ST-II)" }, {PPP_VINES, "Vines" }, - {PPP_MP, "Multilink"}, + {PPP_AT_EDDP, "AppleTalk EDDP" }, + {PPP_AT_SB, "AppleTalk SmartBuffered" }, + {PPP_MP, "Multilink"}, + {PPP_NB, "NETBIOS Framing" }, + {PPP_CISCO, "Cisco Systems" }, + {PPP_ASCOM, "Ascom Timeplex" }, + {PPP_LBLB, "Fujitsu Link Backup and Load Balancing" }, + {PPP_RL, "DCA Remote Lan" }, + {PPP_SDTP, "Serial Data Transport Protocol" }, + {PPP_LLC, "SNA over LLC" }, + {PPP_SNA, "SNA" }, + {PPP_IPV6HC, "IPv6 Header Compression " }, + {PPP_KNX, "KNX Bridging Data" }, + {PPP_ENCRYPT, "Encryption" }, + {PPP_ILE, "Individual Link Encryption" }, {PPP_IPV6, "IPv6" }, {PPP_MUX, "PPP Multiplexing"}, + {PPP_RTP_FH, "RTP IPHC Full Header" }, + {PPP_RTP_CTCP, "RTP IPHC Compressed TCP" }, + {PPP_RTP_CNTCP, "RTP IPHC Compressed Non TCP" }, + {PPP_RTP_CUDP8, "RTP IPHC Compressed UDP 8" }, + {PPP_RTP_CRTP8, "RTP IPHC Compressed RTP 8" }, + {PPP_STAMPEDE, "Stampede Bridging" }, + {PPP_MPPLUS, "MP+ Protocol" }, + {PPP_NTCITS_IPI,"NTCITS IPI" }, + {PPP_ML_SLCOMP, "single link compression in multilink" }, {PPP_COMP, "compressed packet" }, + {PPP_STP_HELLO, "802.1d Hello Packet" }, + {PPP_IBM_SR, "IBM Source Routing BPDU" }, {PPP_DEC_LB, "DEC LANBridge100 Spanning Tree"}, + {PPP_CDP, "Cisco Discovery Protocol" }, + {PPP_NETCS, "Netcs Twin Routing" }, + {PPP_STP, "Scheduled Transfer Protocol" }, + {PPP_EDP, "Extreme Discovery Protocol" }, + {PPP_OSCP, "Optical Supervisory Channel Protocol" }, + {PPP_OSCP2, "Optical Supervisory Channel Protocol" }, + {PPP_LUXCOM, "Luxcom" }, + {PPP_SIGMA, "Sigma Network Systems" }, + {PPP_ACSP, "Apple Client Server Protocol" }, {PPP_MPLS_UNI, "MPLS Unicast"}, {PPP_MPLS_MULTI, "MPLS Multicast"}, + {PPP_P12844, "IEEE p1284.4 standard - data packets" }, + {PPP_ETSI, "ETSI TETRA Networks Procotol Type 1" }, + {PPP_MFTP, "Multichannel Flow Treatment Protocol" }, + {PPP_RTP_CTCPND,"RTP IPHC Compressed TCP No Delta" }, + {PPP_RTP_CS, "RTP IPHC Context State" }, + {PPP_RTP_CUDP16,"RTP IPHC Compressed UDP 16" }, + {PPP_RTP_CRDP16,"RTP IPHC Compressed RTP 16" }, + {PPP_CCCP, "Cray Communications Control Protocol" }, + {PPP_CDPD_MNRP, "CDPD Mobile Network Registration Protocol" }, + {PPP_EXPANDAP, "Expand accelarator protocol" }, + {PPP_ODSICP, "ODSICP NCP" }, + {PPP_DOCSIS, "DOCSIS DLL" }, + {PPP_LZS, "Stacker LZS" }, + {PPP_REFTEK, "RefTek Protocol" }, + {PPP_FC, "Fibre Channel" }, + {PPP_EMIT, "EMIT Protocols" }, {PPP_IPCP, "IP Control Protocol" }, {PPP_OSICP, "OSI Control Protocol" }, + {PPP_XNSIDPCP, "Xerox NS IDP Control Protocol" }, + {PPP_DECNETCP, "DECnet Phase IV Control Protocol" }, {PPP_ATCP, "AppleTalk Control Protocol" }, {PPP_IPXCP, "IPX Control Protocol" }, + {PPP_BRIDGENCP, "Bridging NCP" }, + {PPP_SPCP, "Stream Protocol Control Protocol" }, + {PPP_BVCP, "Banyan Vines Control Protocol" }, + {PPP_MLCP, "Multi-Link Control Protocol" }, + {PPP_NBCP, "NETBIOS Framing Control Protocol" }, + {PPP_CISCOCP, "Cisco Systems Control Protocol" }, + {PPP_ASCOMCP, "Ascom Timeplex" }, + {PPP_LBLBCP, "Fujitsu LBLB Control Protocol" }, + {PPP_RLNCP, "DCA Remote Lan Network Control Protocol" }, + {PPP_SDCP, "Serial Data Control Protocol" }, + {PPP_LLCCP, "SNA over LLC Control Protocol" }, + {PPP_SNACP, "SNA Control Protocol" }, + {PPP_KNXCP, "KNX Bridging Control Protocol" }, + {PPP_ECP, "Encryption Control Protocol" }, + {PPP_ILECP, "Individual Encryption Control Protocol" }, + {PPP_IPV6CP, "IPv6 Control Protocol" }, {PPP_MUXCP, "PPPMux Control Protocol"}, + {PPP_STAMPEDECP,"Stampede Bridging Control Protocol" }, + {PPP_MPPCP, "MP+ Contorol Protocol" }, + {PPP_IPICP, "NTCITS IPI Control Protocol" }, + {PPP_SLCC, "single link compression in multilink control" }, {PPP_CCP, "Compression Control Protocol" }, + {PPP_CDPCP, "CDP Control Protocol" }, + {PPP_NETCSCP, "Netcs Twin Routing" }, + {PPP_STPCP, "STP - Control Protocol" }, + {PPP_EDPCP, "EDP Control Protocol" }, + {PPP_ACSPC, "Apple Client Server Protocol Control" }, + {PPP_MPLSCP, "MPLS Control Protocol" }, + {PPP_P12844CP, "IEEE p1284.4 standard - Protocol Control" }, + {PPP_ETSICP, "ETSI TETRA TNP1 Control Protocol" }, + {PPP_MFTPCP, "Multichannel Flow Treatment Protocol" }, {PPP_LCP, "Link Control Protocol" }, {PPP_PAP, "Password Authentication Protocol" }, {PPP_LQR, "Link Quality Report protocol" }, {PPP_SPAP, "Shiva Password Authentication Protocol" }, - {PPP_CHAP, "Cryptographic Handshake Auth. Protocol" }, - {PPP_EAP, "Extensible Authentication Protocol" }, {PPP_CBCP, "Callback Control Protocol" }, {PPP_BACP, "Bandwidth Allocation Control Protocol" }, {PPP_BAP, "Bandwitdh Allocation Protocol" }, + {PPP_CONTCP, "Container Control Protocol" }, + {PPP_CHAP, "Cryptographic Handshake Auth. Protocol" }, + {PPP_RSAAP, "RSA Authentication Protocol" }, + {PPP_EAP, "Extensible Authentication Protocol" }, + {PPP_SIEP, "Mitsubishi Security Information Exchange Protocol"}, + {PPP_SBAP, "Stampede Bridging Authorization Protocol" }, + {PPP_PRPAP, "Proprietary Authentication Protocol" }, + {PPP_PRPAP2, "Proprietary Authentication Protocol" }, + {PPP_PRPNIAP, "Proprietary Node ID Authentication Protocol" }, {0, NULL } }; @@ -2515,6 +2616,19 @@ dissect_pppmux(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) } /* if tree */ } +static void +dissect_mplscp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) +{ + dissect_cp(tvb, proto_mplscp, ett_mplscp, cp_vals, ett_mplscp_options, + NULL, 0, pinfo, tree); +} + +static void +dissect_cdpcp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) +{ + dissect_cp(tvb, proto_cdpcp, ett_cdpcp, cp_vals, ett_cdpcp_options, + NULL, 0, pinfo, tree); +} #define MP_FRAG_MASK 0xC0 #define MP_FRAG(bits) ((bits) & MP_FRAG_MASK) @@ -3447,3 +3561,57 @@ proto_reg_handoff_pppmux(void) */ dissector_add("ethertype", PPP_MUX, pppmux_handle); } + +void +proto_register_mplscp(void) +{ + static gint *ett[] = { + &ett_mplscp, + }; + + proto_mplscp = proto_register_protocol("PPP MPLS Control Protocol", + "PPP MPLSCP", "mplscp"); + proto_register_subtree_array(ett, array_length(ett)); +} + +void +proto_reg_handoff_mplscp(void) +{ + dissector_handle_t mplscp_handle; + + mplscp_handle = create_dissector_handle(dissect_mplscp, proto_mplscp); + dissector_add("ppp.protocol", PPP_MPLSCP, mplscp_handle); + + /* + * See above comment about NDISWAN for an explanation of why we're + * registering with the "ethertype" dissector table. + */ + dissector_add("ethertype", PPP_MPLSCP, mplscp_handle); +} + +void +proto_register_cdpcp(void) +{ + static gint *ett[] = { + &ett_cdpcp, + }; + + proto_cdpcp = proto_register_protocol("PPP CDP Control Protocol", + "PPP CDPCP", "cdpcp"); + proto_register_subtree_array(ett, array_length(ett)); +} + +void +proto_reg_handoff_cdpcp(void) +{ + dissector_handle_t cdpcp_handle; + + cdpcp_handle = create_dissector_handle(dissect_cdpcp, proto_cdpcp); + dissector_add("ppp.protocol", PPP_CDPCP, cdpcp_handle); + + /* + * See above comment about NDISWAN for an explanation of why we're + * registering with the "ethertype" dissector table. + */ + dissector_add("ethertype", PPP_CDPCP, cdpcp_handle); +} |