Ethereal-dev: [Ethereal-dev] Updates to Protocol / Next Header entries

Note: This archive is from the project's previous web site, ethereal.com. This list is no longer active.

From: Brad Hards <bhards@xxxxxxxxxxxxxx>
Date: Thu, 07 Aug 2003 22:39:13 +1000
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

While prowling around the IANA website, I noticed the list of approve 
protocols (aka next header) entries. This patch updates ipproto.[c,h] to 
match the latest. If this is OK, can someone check it in?

Interesting snippet - OSPF was included twice in the old table.

Brad
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.0.7 (GNU/Linux)

iD8DBQE/MkhyW6pHgIdAuOMRAod1AJ9QtXc1Bd3kJnKuVLsbwzmY7vpVlwCfVMSu
JQZnIGBBbJPUIE6s5ZLJaWI=
=dmTz
-----END PGP SIGNATURE-----
Index: ipproto.c
===================================================================
RCS file: /cvsroot/ethereal/ipproto.c,v
retrieving revision 1.21
diff -u -3 -p -r1.21 ipproto.c
--- ipproto.c	4 Feb 2003 20:16:57 -0000	1.21
+++ ipproto.c	7 Aug 2003 12:33:16 -0000
@@ -42,13 +42,6 @@
 #endif
 
 static const value_string ipproto_val[] = {
-    { IP_PROTO_ICMP,	"ICMP" },
-    { IP_PROTO_IGMP,	"IGMP" },
-    { IP_PROTO_EIGRP,	"EIGRP" },
-    { IP_PROTO_IGRP,	"IGRP" },
-    { IP_PROTO_TCP,	"TCP" },
-    { IP_PROTO_UDP,	"UDP" },
-    { IP_PROTO_OSPF,	"OSPF" },
 #if 0
     { IP_PROTO_IP,	"IPv4" },
 #endif
@@ -60,31 +53,130 @@ static const value_string ipproto_val[] 
 #if 0
     { IP_PROTO_IPV4,	"IPv4" },
 #endif
+    { IP_PROTO_STREAM,  "Stream" },
+    { IP_PROTO_TCP,	"TCP" },
+    { IP_PROTO_CBT,     "CBT" },
     { IP_PROTO_EGP,	"EGP" },
+    { IP_PROTO_IGP,	"IGRP" },
+    { IP_PROTO_BBN_RCC, "BBN RCC" },
+    { IP_PROTO_NVPII,   "Network Voice" },
     { IP_PROTO_PUP,	"PUP" },
+    { IP_PROTO_ARGUS,   "ARGUS" },
+    { IP_PROTO_EMCON,   "EMCON" },
+    { IP_PROTO_XNET,    "XNET" },
+    { IP_PROTO_CHAOS,   "CHAOS" },
     { IP_PROTO_UDP,	"UDP" },
+    { IP_PROTO_MUX,     "Multiplex" },
+    { IP_PROTO_DCNMEAS, "DCN Measurement" },
+    { IP_PROTO_HMP,     "Host Monitoring" },
+    { IP_PROTO_PRM,     "Packet radio" },
     { IP_PROTO_IDP,	"IDP" },
-    { IP_PROTO_TP,	"TP" },
+    { IP_PROTO_TRUNK1,  "Trunk-1" },
+    { IP_PROTO_TRUNK2,  "Trunk-2" },
+    { IP_PROTO_LEAF1,   "Leaf-1" },
+    { IP_PROTO_LEAF2,   "Leaf-2" },
+    { IP_PROTO_RDP,     "Reliable Data" },
+    { IP_PROTO_IRT,     "IRT" },
+    { IP_PROTO_TP,	"ISO TP4" },
+    { IP_PROTO_BULK,    "Bulk Data" },
+    { IP_PROTO_MFE_NSP, "MFE NSP" },
+    { IP_PROTO_MERIT,   "Merit Internodal" },
+    { IP_PROTO_SEP,     "Sequential Exchange" },
+    { IP_PROTO_3PC,     "3rd Party Connect" },
+    { IP_PROTO_IDPR,    "Interdomain routing" },
+    { IP_PROTO_XTP,     "XTP" },
+    { IP_PROTO_DDP,     "Datagram delivery"},
+    { IP_PROTO_CMTP,    "Control Message" },
+    { IP_PROTO_TPPP,    "TP++" },
+    { IP_PROTO_IL,      "IL" },
     { IP_PROTO_IPV6,	"IPv6" },
+    { IP_PROTO_SDRP,    "Source demand routing" },
     { IP_PROTO_ROUTING,	"IPv6 routing" },
     { IP_PROTO_FRAGMENT,"IPv6 fragment" },
+    { IP_PROTO_IDRP,    "IDRP" },
     { IP_PROTO_RSVP,	"RSVP" },
     { IP_PROTO_GRE,	"GRE" },
+    { IP_PROTO_MHRP,    "MHRP" },
+    { IP_PROTO_BNA,     "BNA" },
     { IP_PROTO_ESP,	"ESP" },
     { IP_PROTO_AH,	"AH" },
+    { IP_PROTO_INSLP,   "INSLP" },
+    { IP_PROTO_SWIPE,   "SWIPE" },
+    { IP_PROTO_NARP,    "NBMA ARP"},
+    { IP_PROTO_TLSP,    "TLSP Kryptonet" },
+    { IP_PROTO_SKIP,    "SKIP" },
     { IP_PROTO_ICMPV6,	"ICMPv6" },
     { IP_PROTO_NONE,	"IPv6 no next header" },
     { IP_PROTO_DSTOPTS,	"IPv6 destination option" },
     { IP_PROTO_MIPV6,	"Mobile IPv6" },
+    { IP_PROTO_SATEXPAK,"SATNET EXPAK" },
+    { IP_PROTO_KRYPTOLAN, "Kryptolan" },
+    { IP_PROTO_RVD,     "Remote Virtual Disk" },
+    { IP_PROTO_IPPC,    "IPPC" },
+    { IP_PROTO_SATMON,  "SATNET Monitoring" },
+    { IP_PROTO_VISA,    "VISA" },
+    { IP_PROTO_IPCV,    "IPCV" },
+    { IP_PROTO_CPNX,    "CPNX" },
+    { IP_PROTO_CPHB,    "CPHB" },
+    { IP_PROTO_WSN,     "Wang Span" },
+    { IP_PROTO_PVP,     "Packet Video" },
+    { IP_PROTO_BRSATMON,"Backroom SATNET Mon" },
+    { IP_PROTO_SUNND,   "Sun ND Protocol" },
+    { IP_PROTO_WBMON,   "Wideband Mon" },
+    { IP_PROTO_WBEXPAK, "Wideband Expak" },
     { IP_PROTO_EON,	"EON" },
-    { IP_PROTO_OSPF,	"OSPF" },
+    { IP_PROTO_VMTP,    "VMTP" },
+    { IP_PROTO_SVMTP,   "Secure VMTP" },
+    { IP_PROTO_VINES,	"VINES" },
+    { IP_PROTO_TTP,     "TTP" },
+    { IP_PROTO_NSFNETIGP,"NSFNET IGP" },
+    { IP_PROTO_DGP,     "Dissimilar Gateway" },
+    { IP_PROTO_TCF,     "TCF" },
+    { IP_PROTO_EIGRP,	"EIGRP" },
+    { IP_PROTO_OSPF,	"OSPF IGP" },
+    { IP_PROTO_SPRITE,  "Sprite RPC" },
+    { IP_PROTO_LARP,    "Locus ARP" },
+    { IP_PROTO_MTP,     "Multicast Transport" },
+    { IP_PROTO_AX25,    "AX.25 Frames" },
+    { IP_PROTO_IPINIP,  "IP in IP" },
+    { IP_PROTO_MICP,    "MICP" },
+    { IP_PROTO_SCCCP,   "Semaphore" },
+    { IP_PROTO_ETHERIP, "Ether in IP" },
     { IP_PROTO_ENCAP,	"ENCAP" },
+    { IP_PROTO_GMTP,    "GMTP" },
+    { IP_PROTO_IFMP,    "Ipsilon Flow" },
+    { IP_PROTO_PNNI,    "PNNI over IP" },
     { IP_PROTO_PIM,	"PIM" },
+    { IP_PROTO_ARIS,    "ARIS" },
+    { IP_PROTO_SCPS,    "SCPS" },
+    { IP_PROTO_QNX,     "QNX" },
+    { IP_PROTO_AN,      "Active Networks" },
     { IP_PROTO_IPCOMP,	"IPComp" },
+    { IP_PROTO_SNP,     "Sitara Networks" },
+    { IP_PROTO_COMPAQ,  "Compaq Peer" },
+    { IP_PROTO_IPX,     "IPX IN IP" },
     { IP_PROTO_VRRP,	"VRRP" },
-    { IP_PROTO_VINES,	"VINES" },
     { IP_PROTO_PGM,     "PGM" },
+    { IP_PROTO_L2TP,    "Layer 2 Tunneling" },
+    { IP_PROTO_DDX,     "DDX" },
+    { IP_PROTO_IATP,    "IATP" },
+    { IP_PROTO_STP,     "STP" },
+    { IP_PROTO_SRP,     "SpectraLink" },
+    { IP_PROTO_UTI,     "UTI" },
+    { IP_PROTO_SMP,     "SMP" },
+    { IP_PROTO_SM,      "SM" },
+    { IP_PROTO_PTP,     "PTP" },
+    { IP_PROTO_ISIS,    "ISIS over IP" },
+    { IP_PROTO_FIRE,    "FIRE" },
+    { IP_PROTO_CRTP,    "CRTP" },
+    { IP_PROTO_CRUDP,   "CRUDP" },
+    { IP_PROTO_SSCOPMCE,"SSCOPMCE" },
+    { IP_PROTO_IPLT,    "IPLT" },
+    { IP_PROTO_SPS,     "Secure Packet" },
+    { IP_PROTO_PIPE,    "PIPE" },
     { IP_PROTO_SCTP,    "SCTP" },
+    { IP_PROTO_FC,      "Fibre Channel" },
+    { IP_PROTO_RSVPE2EI,"RSVP E2EI" },
     { 0,		NULL },
 };
 
Index: ipproto.h
===================================================================
RCS file: /cvsroot/ethereal/ipproto.h,v
retrieving revision 1.8
diff -u -3 -p -r1.8 ipproto.h
--- ipproto.h	7 Mar 2003 16:52:41 -0000	1.8
+++ ipproto.h	7 Aug 2003 12:33:16 -0000
@@ -30,41 +30,144 @@
  * IP protocol numbers.
  */
 #define IP_PROTO_IP		0		/* dummy for IP */
-#define IP_PROTO_HOPOPTS	0		/* IP6 hop-by-hop options */
-#define IP_PROTO_ICMP		1		/* control message protocol */
-#define IP_PROTO_IGMP		2		/* group mgmt protocol */
-#define IP_PROTO_GGP		3		/* gateway^2 (deprecated) */
-#define IP_PROTO_IPIP		4		/* IP inside IP */
+#define IP_PROTO_HOPOPTS	0		/* IP6 hop-by-hop options - RFC1883 */
+#define IP_PROTO_ICMP		1		/* control message protocol - RFC792 */
+#define IP_PROTO_IGMP		2		/* group mgmt protocol - RFC1112 */
+#define IP_PROTO_GGP		3		/* gateway^2 (deprecated) - RFC823*/
+#define IP_PROTO_IPIP		4		/* IP inside IP - RFC2003*/
 #define IP_PROTO_IPV4		4		/* IP header */
-#define IP_PROTO_TCP		6		/* tcp */
-#define IP_PROTO_EGP		8		/* exterior gateway protocol */
-#define IP_PROTO_IGRP		9
+#define IP_PROTO_STREAM         5               /* Stream - RFC1190, RFC1819 */
+#define IP_PROTO_TCP		6		/* TCP - RFC792 */
+#define IP_PROTO_CBT            7               /* CBT - <A.Ballardie@xxxxxxxxxxxx> */
+#define IP_PROTO_EGP		8		/* exterior gateway protocol - RFC888 */
+#define IP_PROTO_IGP		9               /* any private interior gateway protocol ... */
+#define IP_PROTO_IGRP		9               /* ... and used by Cisco for IGRP */
+#define IP_PROTO_BBN_RCC        10              /* BBN RCC Monitoring */
+#define IP_PROTO_NVPII          11              /* Network Voice Protocol - RFC741 */
 #define IP_PROTO_PUP		12		/* pup */
-#define IP_PROTO_UDP		17		/* user datagram protocol */
+#define IP_PROTO_ARGUS          13              /* ARGUS */
+#define IP_PROTO_EMCON          14              /* EMCON */
+#define IP_PROTO_XNET           15              /* Cross net debugger - IEN158 */
+#define IP_PROTO_CHAOS          16              /* CHAOS */
+#define IP_PROTO_UDP		17		/* user datagram protocol - RFC768 */
+#define IP_PROTO_MUX            18              /* multiplexing - IEN90 */
+#define IP_PROTO_DCNMEAS        19              /* DCN Measurement Subsystems */
+#define IP_PROTO_HMP            20              /* Host Monitoring - RFC869 */
+#define IP_PROTO_PRM            21              /* Packet radio measurement */
 #define IP_PROTO_IDP		22		/* xns idp */
-#define IP_PROTO_TP		29 		/* tp-4 w/ class negotiation */
+#define IP_PROTO_TRUNK1         23
+#define IP_PROTO_TRUNK2         24
+#define IP_PROTO_LEAF1          25
+#define IP_PROTO_LEAF2          26
+#define IP_PROTO_RDP            27              /* Reliable Data Protocol - RFC908 */
+#define IP_PROTO_IRT            28              /* Internet Reliable Transation - RFC938 */
+#define IP_PROTO_TP		29 		/* tp-4 w/ class negotiation - RFC905 */
+#define IP_PROTO_BULK           30              /* Bulk Data Transfer Protocol - RFC969 */
+#define IP_PROTO_MFE_NSP        31              /* MFE Network Services Protocol */
+#define IP_PROTO_MERIT          32              /* MERIT Internodal Protocol */
+#define IP_PROTO_SEP            33              /* Sequential Exchange Protocol */
+#define IP_PROTO_3PC            34              /* Third party connect protocol */
+#define IP_PROTO_IDPR           35              /* Interdomain policy routing protocol */
+#define IP_PROTO_XTP            36              /* XTP */
+#define IP_PROTO_DDP            37              /* Datagram Delivery Protocol */
+#define IP_PROTO_CMTP           38              /* Control Message Transport Protocol */
+#define IP_PROTO_TPPP           39              /* TP++ Transport Protocol */
+#define IP_PROTO_IL             40              /* IL Transport Protocol */
 #define IP_PROTO_IPV6		41		/* IP6 header */
+#define IP_PROTO_SDRP           42              /* Source demand routing protocol */
 #define IP_PROTO_ROUTING	43		/* IP6 routing header */
 #define IP_PROTO_FRAGMENT	44		/* IP6 fragmentation header */
+#define IP_PROTO_IDRP           45              /* Inter-Domain Routing Protocol */
 #define IP_PROTO_RSVP           46              /* Resource ReSerVation protocol */
-#define IP_PROTO_GRE		47		/* GRE */
-#define IP_PROTO_ESP		50		/* ESP */
-#define IP_PROTO_AH		51		/* AH */
-#define IP_PROTO_ICMPV6		58		/* ICMP6 */
-#define IP_PROTO_NONE		59		/* IP6 no next header */
-#define IP_PROTO_DSTOPTS	60		/* IP6 destination options */
-#define IP_PROTO_MIPV6		62		/* Mobile IPv6 */
+#define IP_PROTO_GRE		47		/* General Routing Encapsulation */
+#define IP_PROTO_MHRP           48              /* Mobile Host Routing Protocol */
+#define IP_PROTO_BNA            49              /* BNA */
+#define IP_PROTO_ESP		50		/* Encap Security Payload for IPv6 - RFC2406 */
+#define IP_PROTO_AH		51		/* Authentication Header for IPv6 - RFC2402*/
+#define IP_PROTO_INSLP          52              /* Integrated Net Layer Security */
+#define IP_PROTO_SWIPE          53              /* IP with Encryption */
+#define IP_PROTO_NARP           54              /* NBMA Address resolution protocol - RFC1735 */
+#define IP_PROTO_MOBILE         55              /* IP Mobility */
+#define IP_PROTO_TLSP           56              /* Transport Layer Security Protocol using */
+                                                /* Kryptonet key management */
+#define IP_PROTO_SKIP           57              /* SKIP */
+#define IP_PROTO_ICMPV6		58		/* ICMP6  - RFC1883*/
+#define IP_PROTO_NONE		59		/* IP6 no next header - RFC1883 */
+#define IP_PROTO_DSTOPTS	60		/* IP6 destination options - RFC1883 */
+/* 61 is reserved by IANA for any host internal protocol */
+#define IP_PROTO_MIPV6		62		/* Mobile IPv6  - To be verified */
+/* 63 is reserved by IANA for any local network */
+#define IP_PROTO_SATEXPAK       64
+#define IP_PROTO_KRYPTOLAN      65
+#define IP_PROTO_RVD            66              /* MIT Remote virtual disk protocol */
+#define IP_PROTO_IPPC           67              /* Internet Pluribus Packet Core */
+/* 68 is reserved by IANA for any distributed file system */
+#define IP_PROTO_SATMON         69              /* SATNET Monitoring */
+#define IP_PROTO_VISA           70              /* VISA Protocol */
+#define IP_PROTO_IPCV           71              /* Internet Packet Core Utility */
+#define IP_PROTO_CPNX           72              /* Computer Protocol Network Executive */
+#define IP_PROTO_CPHB           73              /* Computer Protocol Heart Beat */
+#define IP_PROTO_WSN            74              /* WANG Span Network */
+#define IP_PROTO_PVP            75              /* Packet Video Protocol */
+#define IP_PROTO_BRSATMON       76              /* Backroon SATNET Monitoring */
+#define IP_PROTO_SUNND          77              /* SUN ND Protocol - Temporary */
+#define IP_PROTO_WBMON          78              /* Wideband Monitoring */
+#define IP_PROTO_WBEXPAK        79              /* Wideband EXPAK */
 #define IP_PROTO_EON		80		/* ISO cnlp */
+#define IP_PROTO_VMTP           81
+#define IP_PROTO_SVMTP          82              /* Secure VMTP */
 #define IP_PROTO_VINES		83		/* Vines over raw IP */
+#define IP_PROTO_TTP            84
+#define IP_PROTO_NSFNETIGP      85              /* NSFNET IGP */
+#define IP_PROTO_DGP            86              /* Dissimilar Gateway Protocol */
+#define IP_PROTO_TCF            87        
 #define IP_PROTO_EIGRP		88
-#define IP_PROTO_OSPF		89
-#define IP_PROTO_ETHERIP	97		/* Ethernet-within-IP (RFC 3378) */
-#define IP_PROTO_ENCAP		98		/* encapsulation header */
+#define IP_PROTO_OSPF		89              /* OSPF Interior Gateway Protocol - RFC1583 */
+#define IP_PROTO_SPRITE         90              /* SPRITE RPC protocol */
+#define IP_PROTO_LARP           91              /* Locus Address Resolution Protocol */
+#define IP_PROTO_MTP            92              /* Multicast Transport Protocol */
+#define IP_PROTO_AX25           93              /* AX.25 frames */
+#define IP_PROTO_IPINIP         94              /* IP within IP Encapsulation protocol */
+#define IP_PROTO_MICP           95              /* Mobile Internetworking Control Protocol */
+#define IP_PROTO_SCCCP          96              /* Semaphore communications security protocol */
+#define IP_PROTO_ETHERIP	97		/* Ethernet-within-IP - RFC 3378 */
+#define IP_PROTO_ENCAP		98		/* encapsulation header - RFC1241*/
+/* 99 is reserved by IANA for any private encryption scheme */
+#define IP_PROTO_GMTP           100
+#define IP_PROTO_IFMP           101             /* Ipsilon flow management protocol */
+#define IP_PROTO_PNNI           102             /* PNNI over IP */
 #define IP_PROTO_PIM		103		/* Protocol Independent Mcast */
-#define IP_PROTO_IPCOMP		108		/* IP payload compression */
+#define IP_PROTO_ARIS           104
+#define IP_PROTO_SCPS           105
+#define IP_PROTO_QNX            106
+#define IP_PROTO_AN             107             /* Active Networks */
+#define IP_PROTO_IPCOMP		108		/* IP payload compression - RFC2393 */
+#define IP_PROTO_SNP            109             /* Sitara Networks Protocol */
+#define IP_PROTO_COMPAQ         110             /* Compaq Peer Protocol */
+#define IP_PROTO_IPX            111             /* IPX over IP */
 #define IP_PROTO_VRRP		112		/* Virtual Router Redundancy Protocol */
 #define IP_PROTO_PGM		113		/* Pragmatic General Multicast */
+/* 114 is reserved by IANA for any zero hop protocol */
+#define IP_PROTO_L2TP           115             /* Layer Two Tunnelling Protocol */
+#define IP_PROTO_DDX            116             /* D-II Data Exchange */
+#define IP_PROTO_IATP           117             /* Interactive Agent Transfer Protocol */
+#define IP_PROTO_STP            118             /* Schedule Transfer Protocol */
+#define IP_PROTO_SRP            119             /* Spectralink Radio Protocol */
+#define IP_PROTO_UTI            120
+#define IP_PROTO_SMP            121             /* Simple Message Protocol */
+#define IP_PROTO_SM             122
+#define IP_PROTO_PTP            123             /* Performance Transparency Protocol */
+#define IP_PROTO_ISIS           124             /* ISIS over IPv4 */
+#define IP_PROTO_FIRE           125
+#define IP_PROTO_CRTP           126             /* Combat Radio Transport Protocol */
+#define IP_PROTO_CRUDP          127             /* Combat Radio User Datagram */
+#define IP_PROTO_SSCOPMCE       128
+#define IP_PROTO_IPLT           129
+#define IP_PROTO_SPS            130             /* Secure Packet Shield */
+#define IP_PROTO_PIPE           131             /* Private IP Encapsulation within IP */
 #define IP_PROTO_SCTP		132		/* Stream Control Transmission Protocol */
+#define IP_PROTO_FC             133             /* Fibre Channel */
+#define IP_PROTO_RSVPE2EI       134             /* RSVP E2E Ignore - RFC3175 */
 
 extern const char *ipprotostr(int proto);