/src/wireshark/epan/ipproto.h
Line | Count | Source (jump to first uncovered line) |
1 | | /** @file |
2 | | * Declarations of IP protocol numbers, and of routines for converting |
3 | | * IP protocol numbers into strings. |
4 | | * |
5 | | * Wireshark - Network traffic analyzer |
6 | | * By Gerald Combs <gerald@wireshark.org> |
7 | | * Copyright 1998 Gerald Combs |
8 | | * |
9 | | * SPDX-License-Identifier: GPL-2.0-or-later |
10 | | */ |
11 | | |
12 | | #ifndef __IPPROTO_H__ |
13 | | #define __IPPROTO_H__ |
14 | | |
15 | | #include "ws_symbol_export.h" |
16 | | #include <epan/value_string.h> |
17 | | |
18 | | /* |
19 | | * IP protocol numbers. |
20 | | * http://www.iana.org/assignments/protocol-numbers/protocol-numbers.xml |
21 | | */ |
22 | 129k | #define IP_PROTO_HOPOPTS 0 /* IP6 hop-by-hop options - RFC1883 */ |
23 | 16 | #define IP_PROTO_ICMP 1 /* control message protocol - RFC792 */ |
24 | 48 | #define IP_PROTO_IGMP 2 /* group mgmt protocol - RFC1112 */ |
25 | | #define IP_PROTO_GGP 3 /* gateway^2 (deprecated) - RFC823*/ |
26 | 2.09k | #define IP_PROTO_IPIP 4 /* IP inside IP - RFC2003*/ |
27 | 0 | #define IP_PROTO_IPV4 4 /* IP header */ |
28 | | #define IP_PROTO_STREAM 5 /* Stream - RFC1190, RFC1819 */ |
29 | 53.2k | #define IP_PROTO_TCP 6 /* TCP - RFC792 */ |
30 | | #define IP_PROTO_CBT 7 /* CBT - <A.Ballardie@cs.ucl.ac.uk> */ |
31 | | #define IP_PROTO_EGP 8 /* exterior gateway protocol - RFC888 */ |
32 | | #define IP_PROTO_IGP 9 /* any private interior gateway protocol ... */ |
33 | 8 | #define IP_PROTO_IGRP 9 /* ... and used by Cisco for IGRP */ |
34 | | #define IP_PROTO_BBN_RCC 10 /* BBN RCC Monitoring */ |
35 | | #define IP_PROTO_NVPII 11 /* Network Voice Protocol - RFC741 */ |
36 | | #define IP_PROTO_PUP 12 /* pup */ |
37 | | #define IP_PROTO_ARGUS 13 /* ARGUS */ |
38 | | #define IP_PROTO_EMCON 14 /* EMCON */ |
39 | | #define IP_PROTO_XNET 15 /* Cross net debugger - IEN158 */ |
40 | | #define IP_PROTO_CHAOS 16 /* CHAOS */ |
41 | 36.1k | #define IP_PROTO_UDP 17 /* user datagram protocol - RFC768 */ |
42 | | #define IP_PROTO_MUX 18 /* multiplexing - IEN90 */ |
43 | | #define IP_PROTO_DCNMEAS 19 /* DCN Measurement Subsystems */ |
44 | | #define IP_PROTO_HMP 20 /* Host Monitoring - RFC869 */ |
45 | | #define IP_PROTO_PRM 21 /* Packet radio measurement */ |
46 | | #define IP_PROTO_IDP 22 /* xns idp */ |
47 | | #define IP_PROTO_TRUNK1 23 |
48 | | #define IP_PROTO_TRUNK2 24 |
49 | | #define IP_PROTO_LEAF1 25 |
50 | | #define IP_PROTO_LEAF2 26 |
51 | | #define IP_PROTO_RDP 27 /* Reliable Data Protocol - RFC908 */ |
52 | | #define IP_PROTO_IRT 28 /* Internet Reliable Transaction - RFC938 */ |
53 | 8 | #define IP_PROTO_TP 29 /* tp-4 w/ class negotiation - RFC905 */ |
54 | | #define IP_PROTO_BULK 30 /* Bulk Data Transfer Protocol - RFC969 */ |
55 | | #define IP_PROTO_MFE_NSP 31 /* MFE Network Services Protocol */ |
56 | | #define IP_PROTO_MERIT 32 /* MERIT Internodal Protocol */ |
57 | 8 | #define IP_PROTO_DCCP 33 /* Datagram Congestion Control Protocol */ |
58 | | #define IP_PROTO_3PC 34 /* Third party connect protocol */ |
59 | | #define IP_PROTO_IDPR 35 /* Interdomain policy routing protocol */ |
60 | 8 | #define IP_PROTO_XTP 36 /* Xpress Transport Protocol */ |
61 | | #define IP_PROTO_DDP 37 /* Datagram Delivery Protocol */ |
62 | | #define IP_PROTO_CMTP 38 /* Control Message Transport Protocol */ |
63 | | #define IP_PROTO_TPPP 39 /* TP++ Transport Protocol */ |
64 | | #define IP_PROTO_IL 40 /* IL Transport Protocol */ |
65 | 40 | #define IP_PROTO_IPV6 41 /* IP6 header */ |
66 | | #define IP_PROTO_SDRP 42 /* Source demand routing protocol */ |
67 | 7.94k | #define IP_PROTO_ROUTING 43 /* IP6 routing header */ |
68 | 8.31k | #define IP_PROTO_FRAGMENT 44 /* IP6 fragmentation header */ |
69 | | #define IP_PROTO_IDRP 45 /* Inter-Domain Routing Protocol */ |
70 | 8 | #define IP_PROTO_RSVP 46 /* Resource ReSerVation protocol */ |
71 | 16 | #define IP_PROTO_GRE 47 /* General Routing Encapsulation */ |
72 | 8 | #define IP_PROTO_DSR 48 /* Dynamic Source Routing Protocol */ |
73 | | #define IP_PROTO_BNA 49 /* BNA */ |
74 | 8 | #define IP_PROTO_ESP 50 /* Encap Security Payload for IPv6 - RFC2406 */ |
75 | 8.38k | #define IP_PROTO_AH 51 /* Authentication Header for IPv6 - RFC2402*/ |
76 | | #define IP_PROTO_INSLP 52 /* Integrated Net Layer Security */ |
77 | 8 | #define IP_PROTO_SWIPE 53 /* IP with Encryption */ |
78 | 8 | #define IP_PROTO_NARP 54 /* NBMA Address resolution protocol - RFC1735 */ |
79 | | #define IP_PROTO_MOBILE 55 /* IP Mobility */ |
80 | | #define IP_PROTO_TLSP 56 /* Transport Layer Security Protocol using */ |
81 | | /* Kryptonet key management */ |
82 | | #define IP_PROTO_SKIP 57 /* SKIP */ |
83 | 20 | #define IP_PROTO_ICMPV6 58 /* ICMP6 - RFC1883*/ |
84 | 57.4k | #define IP_PROTO_NONE 59 /* IP6 no next header - RFC1883 */ |
85 | 8.45k | #define IP_PROTO_DSTOPTS 60 /* IP6 destination options - RFC1883 */ |
86 | | /* 61 is reserved by IANA for any host internal protocol */ |
87 | | |
88 | | /* |
89 | | * The current Protocol Numbers list says that the IP protocol number for |
90 | | * mobility headers is 135; it cites draft-ietf-mobileip-ipv6-24, but |
91 | | * that draft doesn't actually give a number. |
92 | | * |
93 | | * It appears that 62 used to be used, even though that's assigned to |
94 | | * a protocol called CFTP; however, the only reference for CFTP is a |
95 | | * Network Message from BBN back in 1982, so, for now, we support 62, |
96 | | * as well as 135, as a protocol number for mobility headers. |
97 | | */ |
98 | 8 | #define IP_PROTO_MIPV6_OLD 62 /* Mobile IPv6 */ |
99 | | /* 63 is reserved by IANA for any local network */ |
100 | | #define IP_PROTO_SATEXPAK 64 |
101 | | #define IP_PROTO_KRYPTOLAN 65 |
102 | | #define IP_PROTO_RVD 66 /* MIT Remote virtual disk protocol */ |
103 | | #define IP_PROTO_IPPC 67 /* Internet Pluribus Packet Core */ |
104 | | /* 68 is reserved by IANA for any distributed file system */ |
105 | | #define IP_PROTO_SATMON 69 /* SATNET Monitoring */ |
106 | | #define IP_PROTO_VISA 70 /* VISA Protocol */ |
107 | | #define IP_PROTO_IPCV 71 /* Internet Packet Core Utility */ |
108 | | #define IP_PROTO_CPNX 72 /* Computer Protocol Network Executive */ |
109 | | #define IP_PROTO_CPHB 73 /* Computer Protocol Heart Beat */ |
110 | | #define IP_PROTO_WSN 74 /* WANG Span Network */ |
111 | | #define IP_PROTO_PVP 75 /* Packet Video Protocol */ |
112 | | #define IP_PROTO_BRSATMON 76 /* Backroom SATNET Monitoring */ |
113 | | #define IP_PROTO_SUNND 77 /* SUN ND Protocol - Temporary */ |
114 | | #define IP_PROTO_WBMON 78 /* Wideband Monitoring */ |
115 | | #define IP_PROTO_WBEXPAK 79 /* Wideband EXPAK */ |
116 | 8 | #define IP_PROTO_ISOIP 80 /* ISO IP */ |
117 | | #define IP_PROTO_VMTP 81 |
118 | | #define IP_PROTO_SVMTP 82 /* Secure VMTP */ |
119 | 8 | #define IP_PROTO_VINES 83 /* Vines over raw IP */ |
120 | | #define IP_PROTO_TTP 84 |
121 | | #define IP_PROTO_NSFNETIGP 85 /* NSFNET IGP */ |
122 | | #define IP_PROTO_DGP 86 /* Dissimilar Gateway Protocol */ |
123 | | #define IP_PROTO_TCF 87 |
124 | 8 | #define IP_PROTO_EIGRP 88 |
125 | 89.2k | #define IP_PROTO_OSPF 89 /* OSPF Interior Gateway Protocol - RFC1583 */ |
126 | | #define IP_PROTO_SPRITE 90 /* SPRITE RPC protocol */ |
127 | | #define IP_PROTO_LARP 91 /* Locus Address Resolution Protocol */ |
128 | | #define IP_PROTO_MTP 92 /* Multicast Transport Protocol */ |
129 | 8 | #define IP_PROTO_AX25 93 /* AX.25 frames */ |
130 | | #define IP_PROTO_IPINIP 94 /* IP within IP Encapsulation protocol */ |
131 | | #define IP_PROTO_MICP 95 /* Mobile Internetworking Control Protocol */ |
132 | | #define IP_PROTO_SCCCP 96 /* Semaphore communications security protocol */ |
133 | 8 | #define IP_PROTO_ETHERIP 97 /* Ethernet-within-IP - RFC 3378 */ |
134 | | #define IP_PROTO_ENCAP 98 /* encapsulation header - RFC1241*/ |
135 | | /* 99 is reserved by IANA for any private encryption scheme */ |
136 | | #define IP_PROTO_GMTP 100 |
137 | | #define IP_PROTO_IFMP 101 /* Ipsilon flow management protocol */ |
138 | | #define IP_PROTO_PNNI 102 /* PNNI over IP */ |
139 | 405k | #define IP_PROTO_PIM 103 /* Protocol Independent Mcast */ |
140 | | #define IP_PROTO_ARIS 104 |
141 | | #define IP_PROTO_SCPS 105 |
142 | 8 | #define IP_PROTO_QNX 106 |
143 | | #define IP_PROTO_AN 107 /* Active Networks */ |
144 | 8 | #define IP_PROTO_IPCOMP 108 /* IP payload compression - RFC2393 */ |
145 | | #define IP_PROTO_SNP 109 /* Sitara Networks Protocol */ |
146 | | #define IP_PROTO_COMPAQ 110 /* Compaq Peer Protocol */ |
147 | | #define IP_PROTO_IPX 111 /* IPX over IP */ |
148 | 16 | #define IP_PROTO_VRRP 112 /* Virtual Router Redundancy Protocol */ |
149 | 8 | #define IP_PROTO_PGM 113 /* Pragmatic General Multicast */ |
150 | | /* 114 is reserved by IANA for any zero hop protocol */ |
151 | 8 | #define IP_PROTO_L2TP 115 /* Layer Two Tunnelling Protocol */ |
152 | | #define IP_PROTO_DDX 116 /* D-II Data Exchange */ |
153 | | #define IP_PROTO_IATP 117 /* Interactive Agent Transfer Protocol */ |
154 | | #define IP_PROTO_STP 118 /* Schedule Transfer Protocol */ |
155 | | #define IP_PROTO_SRP 119 /* Spectralink Radio Protocol */ |
156 | | #define IP_PROTO_UTI 120 |
157 | | #define IP_PROTO_SMP 121 /* Simple Message Protocol */ |
158 | | #define IP_PROTO_SM 122 |
159 | | #define IP_PROTO_PTP 123 /* Performance Transparency Protocol */ |
160 | | #define IP_PROTO_ISIS 124 /* ISIS over IPv4 */ |
161 | | #define IP_PROTO_FIRE 125 |
162 | | #define IP_PROTO_CRTP 126 /* Combat Radio Transport Protocol */ |
163 | | #define IP_PROTO_CRUDP 127 /* Combat Radio User Datagram */ |
164 | | #define IP_PROTO_SSCOPMCE 128 |
165 | | #define IP_PROTO_IPLT 129 |
166 | | #define IP_PROTO_SPS 130 /* Secure Packet Shield */ |
167 | | #define IP_PROTO_PIPE 131 /* Private IP Encapsulation within IP */ |
168 | 16 | #define IP_PROTO_SCTP 132 /* Stream Control Transmission Protocol */ |
169 | | #define IP_PROTO_FC 133 /* Fibre Channel */ |
170 | 8 | #define IP_PROTO_RSVPE2EI 134 /* RSVP E2E Ignore - RFC3175 */ |
171 | 8.55k | #define IP_PROTO_MIPV6 135 /* Mobile IPv6 */ |
172 | 20 | #define IP_PROTO_UDPLITE 136 /* Lightweight user datagram protocol - RFC3828 */ |
173 | 8 | #define IP_PROTO_MPLS_IN_IP 137 /* MPLS in IP - RFC4023 */ |
174 | | #define IP_PROTO_MANET 138 /* MANET Protocols */ |
175 | 144 | #define IP_PROTO_HIP 139 /* Host Identity Protocol */ |
176 | 8.63k | #define IP_PROTO_SHIM6 140 /* Shim6 Protocol */ |
177 | | #define IP_PROTO_WESP 141 /* 141 WESP Wrapped Encapsulating Security Payload [RFC5840] */ |
178 | | #define IP_PROTO_ROHC 142 /* 142 ROHC Robust Header Compression [RFC5858] */ |
179 | 8 | #define IP_PROTO_ETHERNET 143 /* Ethernet [RFC8986] */ |
180 | | #define IP_PROTO_AGGFRAG 144 /* AGGFRAG encapsulation payload for ESP */ |
181 | 8 | #define IP_PROTO_NSH 145 /* Network Service Header */ |
182 | | #define IP_PROTO_HOMA 146 /* Homa */ |
183 | 8 | #define IP_PROTO_BIT_EMU 147 /* Bit-stream Emulation */ |
184 | 8 | #define IP_PROTO_AX4000 173 /* AX/4000 Testblock - non IANA */ |
185 | 8 | #define IP_PROTO_NCS_HEARTBEAT 224 /* Novell NCS Heartbeat - http://support.novell.com/cgi-bin/search/searchtid.cgi?/10071158.htm */ |
186 | | |
187 | | WS_DLL_PUBLIC value_string_ext ipproto_val_ext; |
188 | | WS_DLL_PUBLIC const char *ipprotostr(const int proto); |
189 | | |
190 | | WS_DLL_PUBLIC const char *ipv6extprotostr(int proto); |
191 | | |
192 | | #endif /* ipproto.h */ |
193 | | |
194 | | /* |
195 | | * Editor modelines |
196 | | * |
197 | | * Local Variables: |
198 | | * c-basic-offset: 4 |
199 | | * tab-width: 8 |
200 | | * indent-tabs-mode: nil |
201 | | * End: |
202 | | * |
203 | | * ex: set shiftwidth=4 tabstop=8 expandtab: |
204 | | * :indentSize=4:tabSize=8:noTabs=true: |
205 | | */ |