Coverage Report

Created: 2025-04-03 08:45

/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
 */