github.com/haraldrudell/parl@v0.4.176/iana/protocol.go (about) 1 /* 2 © 2022–present Harald Rudell <harald.rudell@gmail.com> (https://haraldrudell.github.io/haraldrudell/) 3 ISC License 4 */ 5 6 // Package iana provides iana-standardized Internet protocols, port numbers, address families and 7 // an Internet-socket identifier 8 package iana 9 10 import ( 11 "github.com/haraldrudell/parl/ints" 12 "github.com/haraldrudell/parl/perrors" 13 "github.com/haraldrudell/parl/sets" 14 "golang.org/x/exp/constraints" 15 ) 16 17 // Protocol represents iana Assigned Internet Protocol Numbers for IPv4 and IPv6. 18 // - Protocol is ordered 19 // - Protocol implements fmt.Stringer 20 // - Protocol has methods IsValid Description Int Uint8 21 // 22 // IANA [protocol-numbers] 23 // 24 // [protocol-numbers]: https://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml 25 type Protocol uint8 26 27 const ( 28 IPhopopt Protocol = iota // IPv6 Hop-by-Hop Option IPv6xh RFC8200 29 IPicmp // Internet Control Message RFC792 30 IPigmp // IGMP Internet Group Management RFC1112 31 IPggp // GGP Gateway-to-Gateway RFC823 32 IPv4 // IPv4 IPv4 encapsulation RFC2003 33 IPst // ST Stream RFC1190 RFC1819 34 IPtcp // TCP Transmission Control RFC9293 35 IPcbt // CBT CBT 36 IPegp // EGP Exterior Gateway Protocol RFC888 37 IPigp // IGP any private interior gateway 38 IPbbn // BBN-RCC-MON BBN RCC Monitoring 39 IPnvp // NVP-II Network Voice Protocol RFC741 40 IPpup // PUP PUP 41 IPargus // ARGUS (deprecated) ARGUS 42 IPemcon // EMCON EMCON 43 IPxnet // XNET Cross Net Debugger 44 IPchaos // CHAOS Chaos 45 IPudp // UDP User Datagram RFC768 46 IPmux // MUX Multiplexing 47 IPdcn // DCN-MEAS DCN Measurement Subsystems 48 IPhmp // HMP Host Monitoring RFC869 49 IPprm // PRM Packet Radio Measurement 50 IPxns // XNS-IDP XEROX NS IDP 51 IPtrunk1 // TRUNK-1 Trunk-1 52 IPtrunk2 // TRUNK-2 Trunk-2 53 IPleaf1 // LEAF-1 Leaf-1 54 IPleaf2 // LEAF-2 Leaf-2 55 IPrdp // RDP Reliable Data Protocol RFC908 56 IPirtp // IRTP Internet Reliable Transaction RFC938 57 IPisotp4 // ISO-TP4 ISO Transport Protocol Class 4 RFC905 58 IPnetblt // NETBLT Bulk Data Transfer Protocol RFC969 59 IPmfe // MFE-NSP MFE Network Services Protocol 60 IPmerit // MERIT-INP MERIT Internodal Protocol 61 IPdccp // DCCP Datagram Congestion Control Protocol RFC4340 62 IP3pc // 3PC Third Party Connect Protocol 63 IPidpr // IDPR Inter-Domain Policy Routing Protocol 64 IPxtp // XTP XTP 65 IPddp // DDP Datagram Delivery Protocol 66 IPidprcmtp // IDPR-CMTP IDPR Control Message Transport Proto 67 IPtp // TP++ TP++ Transport Protocol 68 IPil // IL IL Transport Protocol 69 IPv6 // IPv6 IPv6 encapsulation RFC2473 70 IPsdrp // SDRP Source Demand Routing Protocol 71 IPv6route // IPv6-Route Routing Header for IPv6 IPv6xh 72 IPv6frag // IPv6-Frag Fragment Header for IPv6 IPv6xh 73 IPidrp // IDRP Inter-Domain Routing Protocol 74 IPrsvp // RSVP Reservation Protocol RFC2205 RFC3209 75 IPgre // GRE Generic Routing Encapsulation RFC2784 76 IPdsr // DSR Dynamic Source Routing Protocol RFC4728 77 IPbna // BNA BNA 78 IPesp // ESP Encap Security Payload IPv6xh RFC4303 79 IPah // AH Authentication Header IPv6xh RFC4302 80 IPinlsp // I-NLSP Integrated Net Layer Security TUBA 81 IPswipe // SWIPE (deprecated) IP with Encryption 82 IPnarp // NARP NBMA Address Resolution Protocol RFC1735 83 IPmobile // MOBILE IP Mobility 84 IPtlsp // TLSP Transport Layer Security Protocol using Kryptonet key management 85 IPskip // SKIP SKIP 86 IPv6icmp // IPv6-ICMP ICMP for IPv6 RFC8200 87 IPv6nonxt // IPv6-NoNxt No Next Header for IPv6 RFC8200 88 IPv6opts // IPv6-Opts Destination Options for IPv6 IPv6xh RFC8200 89 IPanyhost // ANYHOST any host internal protocol 90 IPcftp // CFTP CFTP Network Message 91 IPanynw // ANYNW any local network 92 IPsat // SAT-EXPAK SATNET and Backroom EXPAK 93 IPkrypto // KRYPTOLAN Kryptolan 94 IPrvd // RVD MIT Remote Virtual Disk Protocol 95 IPippc // IPPC Internet Pluribus Packet Core 96 IPanyfs // ANYFS any distributed file system 97 IPsatmon // SAT-MON SATNET Monitoring 98 IPvisa // VISA VISA Protocol 99 IPipcv // IPCV Internet Packet Core Utility 100 IPcpnx // CPNX Computer Protocol Network Executive 101 IPcphb // CPHB Computer Protocol Heart Beat 102 IPwsn // WSN Wang Span Network 103 IPpvp // PVP Packet Video Protocol 104 IPbrsat // BR-SAT-MON Backroom SATNET Monitoring 105 IPsun // SUN-ND SUN ND PROTOCOL 106 IPwbmon // WB-MON WIDEBAND Monitoring 107 IPwbexpak // WB-EXPAK WIDEBAND EXPAK 108 IPisoip // ISO-IP ISO Internet Protocol 109 IPvmtp // VMTP VMTP 110 IPsvmtp // SECURE-VMTP SECURE-VMTP 111 IPvines // VINES VINES 112 IPttp // TTP Transaction Transport Protocol, IPTM Internet Protocol Traffic Manager 113 IPnsf // NSFNET-IGP NSFNET-IGP 114 IPdgp // DGP Dissimilar Gateway Protocol 115 IPtcf // TCF TCF 116 IPeigrp // EIGRP EIGRP RFC7868 117 IPospf // OSPFIGP OSPFIGP RFC1583 RFC2328 RFC5340 118 IPrpc // Sprite-RPC Sprite RPC Protocol 119 IPlarp // LARP Locus Address Resolution Protocol 120 IPmtp // MTP Multicast Transport Protocol 121 IPax25 // AX.25 AX.25 Frames 122 IPip // IPIP IP-within-IP Encapsulation Protocol 123 IPmicp // MICP (deprecated) Mobile Internetworking Control Pro. 124 IPscc // SCC-SP Semaphore Communications Sec. Pro. 125 IPether // ETHERIP Ethernet-within-IP Encapsulation RFC3378 126 IPencap // ENCAP Encapsulation Header RFC1241 127 IPenc // ENC any private encryption scheme 128 IPgmtp // GMTP GMTP RXB5 129 IPifmp // IFMP Ipsilon Flow Management Protocol 130 IPpnni // PNNI PNNI over IP 131 IPpim // PIM Protocol Independent Multicast RFC7761 132 IParis // ARIS ARIS 133 IPscps // SCPS SCPS 134 IPqnx // QNX QNX 135 IPan // A/N Active Networks 136 IPcomp // IPComp IP Payload Compression Protocol RFC2393 137 IPsnp // SNP Sitara Networks Protocol 138 IPcq // Compaq-Peer Compaq Peer Protocol 139 IPipx // IPX-in-IP IPX in IP 140 IPvrrp // VRRP Virtual Router Redundancy Protocol RFC5798 141 IPpgm // PGM PGM Reliable Transport Protocol 142 IPany0 // any 0-hop protocol any 0-hop protocol 143 IPl2tp // L2TP Layer Two Tunneling Protocol RFC3931 144 IPddx // DDX D-II Data Exchange (DDX) 145 IPiatp // IATP Interactive Agent Transfer Protocol 146 IPstp // STP Schedule Transfer Protocol 147 IPsrp // SRP SpectraLink Radio Protocol 148 IPuti // UTI UTI 149 IPsmp // SMP Simple Message Protocol 150 IPsm // SM (deprecated) Simple Multicast Protocol 151 IPptp // PTP Performance Transparency Protocol 152 IPisis // ISIS ISIS over IPv4 153 IPfire // FIRE FIRE 154 IPcrtp // CRTP Combat Radio Transport Protocol 155 IPcrudp // CRUDP Combat Radio User Datagram 156 IPssc // SSCOPMCE SSCOPMCE 157 IPlt // IPLT IPLT 158 IPsps // SPS Secure Packet Shield 159 IPpipe // PIPE Private IP Encapsulation within IP 160 IPsctp // SCTP Stream Control Transmission Protocol 161 IPfc // FC Fibre Channel Murali_Rajagopal RFC6172 162 IPrsvpi // RSVP RSVP-E2E-IGNORE RFC3175 163 IPmobility // MOBILITY Mobility Header IPv6xh RFC6275 164 IPudplite // UDPLite UDPLite RFC3828 165 IPmpls // MPLS-in-IP MPLS-in-IP RFC4023 166 IPmanet // manet MANET Protocols RFC5498 167 IPhip // HIP Host Identity Protocol IPv6xh RFC7401 168 IPshim6 // Shim6 Shim6 Protocol IPv6xh RFC5533 169 IPwesp // WESP Wrapped Encapsulating Security Payload RFC5840 170 IProhc // ROHC Robust Header Compression RFC5858 171 IPeth // Ethernet Ethernet RFC8986 172 IPagg // AGGFRAG AGGFRAG encapsulation payload for ESP RFC-ietf-ipsecme-iptfs-19 173 IP253 Protocol = 108 + iota // 253 Use for experimentation and testing IPv6xh RFC3692 174 IP254 // 254 Use for experimentation and testing IPv6xh RFC3692 175 IP255 // Reserved Reserved 176 ) 177 178 // NewProtocol returns iana.Protocol for any integer value. 179 // - values larger that 255 produce error testable with errors.Is(err, ints.ErrTooLarge) 180 // - protocol may be invalid, ie. not an iana-assigned value, check with protocol.IsValid 181 // - or use NewValidProtocol 182 func NewProtocol[T constraints.Integer](integer T) (protocol Protocol, err error) { 183 184 // convert to uint8 185 var u8 uint8 186 if u8, err = ints.Unsigned[uint8](integer, perrors.PackFunc()); err != nil { 187 return 188 } 189 190 // convert to iana.Protocol 191 protocol = Protocol(u8) 192 193 return 194 } 195 196 // NewProtocol returns iana.Protocol for any integer value. 197 // - values larger that 255 produce error testable with errors.Is(err, ints.ErrTooLarge) 198 // - protocol is valid 199 func NewValidProtocol[T constraints.Integer](integer T) (protocol Protocol, err error) { 200 if protocol, err = NewProtocol(integer); err != nil { 201 return 202 } 203 if !protocol.IsValid() { 204 err = perrors.ErrorfPF("invalid protocol value: %d 0x%[1]x", protocol) 205 return 206 } 207 208 return 209 } 210 211 // NewProtocol returns iana.Protocol for any integer value. 212 // - if value is too large, panic 213 // - protocol may be invalid, ie. not an iana-assigned value, check with protocol.IsValid 214 // - or use NewValidProtocol 215 func NewProtocol1[T constraints.Integer](integer T) (protocol Protocol) { 216 var err error 217 if protocol, err = NewProtocol(integer); err != nil { 218 panic(err) 219 } 220 221 return 222 } 223 224 func (pr Protocol) String() (s string) { 225 return ianaSet.StringT(pr) 226 } 227 228 func (pr Protocol) Int() (protocolInt int) { 229 return int(pr) 230 } 231 232 func (pr Protocol) Uint8() (protocolInt uint8) { 233 return uint8(pr) 234 } 235 236 func (pr Protocol) IsValid() (isValid bool) { 237 return ianaSet.IsValid(pr) 238 } 239 240 // Description returns a sentence describing protocol 241 func (pr Protocol) Description() (full string) { 242 return ianaSet.Description(pr) 243 } 244 245 var ianaSet = sets.NewSet[Protocol]([]sets.SetElementFull[Protocol]{ 246 {ValueV: IPhopopt, Name: "HOPOPT", Full: "IPv6 Hop-by-Hop Option IPv6xh RFC8200"}, 247 {ValueV: IPicmp, Name: "ICMP", Full: "Internet Control Message RFC792"}, 248 {ValueV: IPigmp, Name: "IGMP", Full: "Internet Group Management RFC1112"}, 249 {ValueV: IPggp, Name: "GGP", Full: "Gateway-to-Gateway RFC823"}, 250 {ValueV: IPv4, Name: "IPv4", Full: "IPv4 encapsulation RFC2003"}, 251 {ValueV: IPst, Name: "ST", Full: "Stream RFC1190 RFC1819"}, 252 {ValueV: IPtcp, Name: "TCP", Full: "Transmission Control RFC9293"}, 253 {ValueV: IPcbt, Name: "CBT", Full: "CBT"}, 254 {ValueV: IPegp, Name: "EGP", Full: "Exterior Gateway Protocol RFC888"}, 255 {ValueV: IPigp, Name: "IGP", Full: "any private interior gateway"}, 256 {ValueV: IPbbn, Name: "BBN-RCC-MON", Full: "BBN RCC Monitoring"}, 257 {ValueV: IPnvp, Name: "NVP-II", Full: "Network Voice Protocol RFC741"}, 258 {ValueV: IPpup, Name: "PUP", Full: "PUP"}, 259 {ValueV: IPargus, Name: "ARGUS", Full: "(deprecated) ARGUS"}, 260 {ValueV: IPemcon, Name: "EMCON", Full: "EMCON"}, 261 {ValueV: IPxnet, Name: "XNET", Full: "Cross Net Debugger"}, 262 {ValueV: IPchaos, Name: "CHAOS", Full: "Chaos"}, 263 {ValueV: IPudp, Name: "UDP", Full: "User Datagram RFC768"}, 264 {ValueV: IPmux, Name: "MUX", Full: "Multiplexing"}, 265 {ValueV: IPdcn, Name: "DCN-MEAS", Full: "DCN Measurement Subsystems"}, 266 {ValueV: IPhmp, Name: "HMP", Full: "Host Monitoring RFC869"}, 267 {ValueV: IPprm, Name: "PRM", Full: "Packet Radio Measurement"}, 268 {ValueV: IPxns, Name: "XNS-IDP", Full: "XEROX NS IDP"}, 269 {ValueV: IPtrunk1, Name: "TRUNK-1", Full: "Trunk-1"}, 270 {ValueV: IPtrunk2, Name: "TRUNK-2", Full: "Trunk-2"}, 271 {ValueV: IPleaf1, Name: "LEAF-1", Full: "Leaf-1"}, 272 {ValueV: IPleaf2, Name: "LEAF-2", Full: "Leaf-2"}, 273 {ValueV: IPrdp, Name: "RDP", Full: "Reliable Data Protocol RFC908"}, 274 {ValueV: IPirtp, Name: "IRTP", Full: "Internet Reliable Transaction RFC938"}, 275 {ValueV: IPisotp4, Name: "ISO-TP4", Full: "ISO Transport Protocol Class 4 RFC905"}, 276 {ValueV: IPnetblt, Name: "NETBLT", Full: "Bulk Data Transfer Protocol RFC969"}, 277 {ValueV: IPmfe, Name: "MFE-NSP", Full: "MFE Network Services Protocol"}, 278 {ValueV: IPmerit, Name: "MERIT-INP", Full: "MERIT Internodal Protocol"}, 279 {ValueV: IPdccp, Name: "DCCP", Full: "Datagram Congestion Control Protocol RFC4340"}, 280 {ValueV: IP3pc, Name: "3PC", Full: "Third Party Connect Protocol"}, 281 {ValueV: IPidpr, Name: "IDPR", Full: "Inter-Domain Policy Routing Protocol"}, 282 {ValueV: IPxtp, Name: "XTP", Full: "XTP"}, 283 {ValueV: IPddp, Name: "DDP", Full: "Datagram Delivery Protocol"}, 284 {ValueV: IPidprcmtp, Name: "IDPR-CMTP", Full: "IDPR Control Message Transport Proto"}, 285 {ValueV: IPtp, Name: "TP++", Full: "TP++ Transport Protocol"}, 286 {ValueV: IPil, Name: "IL", Full: "IL Transport Protocol"}, 287 {ValueV: IPv6, Name: "IPv6", Full: "IPv6 encapsulation RFC2473"}, 288 {ValueV: IPsdrp, Name: "SDRP", Full: "Source Demand Routing Protocol"}, 289 {ValueV: IPv6route, Name: "IPv6-Route", Full: "Routing Header for IPv6 IPv6xh"}, 290 {ValueV: IPv6frag, Name: "IPv6-Frag", Full: "Fragment Header for IPv6 IPv6xh"}, 291 {ValueV: IPidrp, Name: "IDRP", Full: "Inter-Domain Routing Protocol"}, 292 {ValueV: IPrsvp, Name: "RSVP", Full: "Reservation Protocol RFC2205 RFC3209"}, 293 {ValueV: IPgre, Name: "GRE", Full: "Generic Routing Encapsulation RFC2784"}, 294 {ValueV: IPdsr, Name: "DSR", Full: "Dynamic Source Routing Protocol RFC4728"}, 295 {ValueV: IPbna, Name: "BNA", Full: "BNA"}, 296 {ValueV: IPesp, Name: "ESP", Full: "Encap Security Payload IPv6xh RFC4303"}, 297 {ValueV: IPah, Name: "AH", Full: "Authentication Header IPv6xh RFC4302"}, 298 {ValueV: IPinlsp, Name: "I-NLSP", Full: "Integrated Net Layer Security TUBA"}, 299 {ValueV: IPswipe, Name: "SWIPE", Full: "(deprecated) IP with Encryption"}, 300 {ValueV: IPnarp, Name: "NARP", Full: "NBMA Address Resolution Protocol RFC1735"}, 301 {ValueV: IPmobile, Name: "MOBILE", Full: "IP Mobility"}, 302 {ValueV: IPtlsp, Name: "TLSP", Full: "Transport Layer Security Protocol using Kryptonet key management"}, 303 {ValueV: IPskip, Name: "SKIP", Full: "SKIP"}, 304 {ValueV: IPv6icmp, Name: "IPv6-ICMP", Full: "ICMP for IPv6 RFC8200"}, 305 {ValueV: IPv6nonxt, Name: "IPv6-NoNxt", Full: "No Next Header for IPv6 RFC8200"}, 306 {ValueV: IPv6opts, Name: "IPv6-Opts", Full: "Destination Options for IPv6 IPv6xh RFC8200"}, 307 {ValueV: IPanyhost, Name: "ANYHOST", Full: "any host internal protocol"}, 308 {ValueV: IPcftp, Name: "CFTP", Full: "CFTP Network Message"}, 309 {ValueV: IPanynw, Name: "ANYNW", Full: "any local network"}, 310 {ValueV: IPsat, Name: "SAT-EXPAK", Full: "SATNET and Backroom EXPAK"}, 311 {ValueV: IPkrypto, Name: "KRYPTOLAN", Full: "Kryptolan"}, 312 {ValueV: IPrvd, Name: "RVD", Full: "MIT Remote Virtual Disk Protocol"}, 313 {ValueV: IPippc, Name: "IPPC", Full: "Internet Pluribus Packet Core"}, 314 {ValueV: IPanyfs, Name: "ANYFS", Full: "any distributed file system"}, 315 {ValueV: IPsatmon, Name: "SAT-MON", Full: "SATNET Monitoring"}, 316 {ValueV: IPvisa, Name: "VISA", Full: "VISA Protocol"}, 317 {ValueV: IPipcv, Name: "IPCV", Full: "Internet Packet Core Utility"}, 318 {ValueV: IPcpnx, Name: "CPNX", Full: "Computer Protocol Network Executive"}, 319 {ValueV: IPcphb, Name: "CPHB", Full: "Computer Protocol Heart Beat"}, 320 {ValueV: IPwsn, Name: "WSN", Full: "Wang Span Network"}, 321 {ValueV: IPpvp, Name: "PVP", Full: "Packet Video Protocol"}, 322 {ValueV: IPbrsat, Name: "BR-SAT-MON", Full: "Backroom SATNET Monitoring"}, 323 {ValueV: IPsun, Name: "SUN-ND", Full: "SUN ND PROTOCOL"}, 324 {ValueV: IPwbmon, Name: "WB-MON", Full: "WIDEBAND Monitoring"}, 325 {ValueV: IPwbexpak, Name: "WB-EXPAK", Full: "WIDEBAND EXPAK"}, 326 {ValueV: IPisoip, Name: "ISO-IP", Full: "ISO Internet Protocol"}, 327 {ValueV: IPvmtp, Name: "VMTP", Full: "VMTP"}, 328 {ValueV: IPsvmtp, Name: "SECURE-VMTP", Full: "SECURE-VMTP"}, 329 {ValueV: IPvines, Name: "VINES", Full: "VINES"}, 330 {ValueV: IPttp, Name: "TTP", Full: "Transaction Transport Protocol / Internet Protocol Traffic Manager"}, 331 {ValueV: IPnsf, Name: "NSFNET-IGP", Full: "NSFNET-IGP"}, 332 {ValueV: IPdgp, Name: "DGP", Full: "Dissimilar Gateway Protocol"}, 333 {ValueV: IPtcf, Name: "TCF", Full: "TCF"}, 334 {ValueV: IPeigrp, Name: "EIGRP", Full: "EIGRP RFC7868"}, 335 {ValueV: IPospf, Name: "OSPFIGP", Full: "OSPFIGP RFC1583 RFC2328 RFC5340"}, 336 {ValueV: IPrpc, Name: "Sprite-RPC", Full: "Sprite RPC Protocol"}, 337 {ValueV: IPlarp, Name: "LARP", Full: "Locus Address Resolution Protocol"}, 338 {ValueV: IPmtp, Name: "MTP", Full: "Multicast Transport Protocol"}, 339 {ValueV: IPax25, Name: "AX.25", Full: "AX.25 Frames"}, 340 {ValueV: IPip, Name: "IPIP", Full: "IP-within-IP Encapsulation Protocol"}, 341 {ValueV: IPmicp, Name: "MICP", Full: "(deprecated) Mobile Internetworking Control Pro."}, 342 {ValueV: IPscc, Name: "SCC-SP", Full: "Semaphore Communications Sec. Pro."}, 343 {ValueV: IPether, Name: "ETHERIP", Full: "Ethernet-within-IP Encapsulation RFC3378"}, 344 {ValueV: IPencap, Name: "ENCAP", Full: "Encapsulation Header RFC1241"}, 345 {ValueV: IPenc, Name: "ENC", Full: "any private encryption scheme"}, 346 {ValueV: IPgmtp, Name: "GMTP", Full: "GMTP RXB5"}, 347 {ValueV: IPifmp, Name: "IFMP", Full: "Ipsilon Flow Management Protocol"}, 348 {ValueV: IPpnni, Name: "PNNI", Full: "PNNI over IP"}, 349 {ValueV: IPpim, Name: "PIM", Full: "Protocol Independent Multicast RFC7761"}, 350 {ValueV: IParis, Name: "ARIS", Full: "ARIS"}, 351 {ValueV: IPscps, Name: "SCPS", Full: "SCPS"}, 352 {ValueV: IPqnx, Name: "QNX", Full: "QNX"}, 353 {ValueV: IPan, Name: "A/N", Full: "Active Networks"}, 354 {ValueV: IPcomp, Name: "IPComp", Full: "IP Payload Compression Protocol RFC2393"}, 355 {ValueV: IPsnp, Name: "SNP", Full: "Sitara Networks Protocol"}, 356 {ValueV: IPcq, Name: "Compaq-Peer", Full: "Compaq Peer Protocol"}, 357 {ValueV: IPipx, Name: "IPX-in-IP", Full: "IPX in IP"}, 358 {ValueV: IPvrrp, Name: "VRRP", Full: "Virtual Router Redundancy Protocol RFC5798"}, 359 {ValueV: IPpgm, Name: "PGM", Full: "PGM Reliable Transport Protocol"}, 360 {ValueV: IPany0, Name: "any 0-hop protocol", Full: "any 0-hop protocol"}, 361 {ValueV: IPl2tp, Name: "L2TP", Full: "Layer Two Tunneling Protocol RFC3931"}, 362 {ValueV: IPddx, Name: "DDX", Full: "D-II Data Exchange (DDX)"}, 363 {ValueV: IPiatp, Name: "IATP", Full: "Interactive Agent Transfer Protocol"}, 364 {ValueV: IPstp, Name: "STP", Full: "Schedule Transfer Protocol"}, 365 {ValueV: IPsrp, Name: "SRP", Full: "SpectraLink Radio Protocol"}, 366 {ValueV: IPuti, Name: "UTI", Full: "UTI"}, 367 {ValueV: IPsmp, Name: "SMP", Full: "Simple Message Protocol"}, 368 {ValueV: IPsm, Name: "SM", Full: "(deprecated) Simple Multicast Protocol"}, 369 {ValueV: IPptp, Name: "PTP", Full: "Performance Transparency Protocol"}, 370 {ValueV: IPisis, Name: "ISIS", Full: "ISIS over IPv4"}, 371 {ValueV: IPfire, Name: "FIRE", Full: "FIRE"}, 372 {ValueV: IPcrtp, Name: "CRTP", Full: "Combat Radio Transport Protocol"}, 373 {ValueV: IPcrudp, Name: "CRUDP", Full: "Combat Radio User Datagram"}, 374 {ValueV: IPssc, Name: "SSCOPMCE", Full: "SSCOPMCE"}, 375 {ValueV: IPlt, Name: "IPLT", Full: "IPLT"}, 376 {ValueV: IPsps, Name: "SPS", Full: "Secure Packet Shield"}, 377 {ValueV: IPpipe, Name: "PIPE", Full: "Private IP Encapsulation within IP"}, 378 {ValueV: IPsctp, Name: "SCTP", Full: "Stream Control Transmission Protocol"}, 379 {ValueV: IPfc, Name: "FC", Full: "Fibre Channel Murali_Rajagopal RFC6172"}, 380 {ValueV: IPrsvpi, Name: "RSVP", Full: "RSVP-E2E-IGNORE RFC3175"}, 381 {ValueV: IPmobility, Name: "MOBILITY", Full: "Mobility Header IPv6xh RFC6275"}, 382 {ValueV: IPudplite, Name: "UDPLite", Full: "UDPLite RFC3828"}, 383 {ValueV: IPmpls, Name: "MPLS-in-IP", Full: "MPLS-in-IP RFC4023"}, 384 {ValueV: IPmanet, Name: "manet", Full: "MANET Protocols RFC5498"}, 385 {ValueV: IPhip, Name: "HIP", Full: "Host Identity Protocol IPv6xh RFC7401"}, 386 {ValueV: IPshim6, Name: "Shim6", Full: "Shim6 Protocol IPv6xh RFC5533"}, 387 {ValueV: IPwesp, Name: "WESP", Full: "Wrapped Encapsulating Security Payload RFC5840"}, 388 {ValueV: IProhc, Name: "ROHC", Full: "Robust Header Compression RFC5858"}, 389 {ValueV: IPeth, Name: "Ethernet", Full: "Ethernet RFC8986"}, 390 {ValueV: IPagg, Name: "AGGFRAG", Full: "AGGFRAG encapsulation payload for ESP RFC-ietf-ipsecme-iptfs-19"}, 391 {ValueV: IP253, Name: "253", Full: "Use for experimentation and testing IPv6xh RFC3692"}, 392 {ValueV: IP254, Name: "254", Full: "Use for experimentation and testing IPv6xh RFC3692"}, 393 //{ValueV: IP255, Name: "Reserved", Full: "Reserved"}, 394 })