1pub const HOPOPT: u8 = 0;
8
9pub const ICMP: u8 = 1;
11
12pub const IGMP: u8 = 2;
14
15pub const GGP: u8 = 3;
17
18pub const IPIP: u8 = 4;
20
21pub const IPV4: u8 = 4;
23
24pub const ST: u8 = 5;
26
27pub const TCP: u8 = 6;
29
30pub const CBT: u8 = 7;
32
33pub const EGP: u8 = 8;
35
36pub const IGP: u8 = 9;
38
39pub const BBN_RCC_MON: u8 = 10;
41
42pub const NVP_II: u8 = 11;
44
45pub const PUP: u8 = 12;
47
48pub const ARGUS: u8 = 13;
50
51pub const EMCON: u8 = 14;
53
54pub const XNET: u8 = 15;
56
57pub const CHAOS: u8 = 16;
59
60pub const UDP: u8 = 17;
62
63pub const MUX: u8 = 18;
65
66pub const DCN_MEAS: u8 = 19;
68
69pub const HMP: u8 = 20;
71
72pub const PRM: u8 = 21;
74
75pub const XNS_IDP: u8 = 22;
77
78pub const TRUNK_1: u8 = 23;
80
81pub const TRUNK_2: u8 = 24;
83
84pub const LEAF_1: u8 = 25;
86
87pub const LEAF_2: u8 = 26;
89
90pub const RDP: u8 = 27;
92
93pub const IRTP: u8 = 28;
95
96pub const ISO_TP4: u8 = 29;
98
99pub const NETBLT: u8 = 30;
101
102pub const MFE_NSP: u8 = 31;
104
105pub const MERIT_INP: u8 = 32;
107
108pub const DCCP: u8 = 33;
110
111pub const THIRD_PARTY_CONNECT: u8 = 34;
113
114pub const IDPR: u8 = 35;
116
117pub const XTP: u8 = 36;
119
120pub const DDP: u8 = 37;
122
123pub const IDPR_CMTP: u8 = 38;
125
126pub const TP_PLUS_PLUS: u8 = 39;
128
129pub const IL: u8 = 40;
131
132pub const IPV6: u8 = 41;
134
135pub const SDRP: u8 = 42;
137
138pub const IPV6_ROUTE: u8 = 43;
140
141pub const IPV6_FRAG: u8 = 44;
143
144pub const IDRP: u8 = 45;
146
147pub const RSVP: u8 = 46;
149
150pub const GRE: u8 = 47;
152
153pub const DSR: u8 = 48;
155
156pub const BNA: u8 = 49;
158
159pub const ESP: u8 = 50;
161
162pub const AH: u8 = 51;
164
165pub const I_NLSP: u8 = 52;
167
168pub const SWIPE: u8 = 53;
170
171pub const NARP: u8 = 54;
173
174pub const MOBILE: u8 = 55;
176
177pub const TLSP: u8 = 56;
179
180pub const SKIP: u8 = 57;
182
183pub const ICMPV6: u8 = 58;
185
186pub const IPV6_NONXT: u8 = 59;
188
189pub const IPV6_OPTS: u8 = 60;
191
192pub const ANY_HOST_INTERNAL: u8 = 61;
194
195pub const CFTP: u8 = 62;
197
198pub const ANY_LOCAL_NETWORK: u8 = 63;
200
201pub const SAT_EXPAK: u8 = 64;
203
204pub const KRYPTOLAN: u8 = 65;
206
207pub const RVD: u8 = 66;
209
210pub const IPPC: u8 = 67;
212
213pub const ANY_DIST_FS: u8 = 68;
215
216pub const SAT_MON: u8 = 69;
218
219pub const VISA: u8 = 70;
221
222pub const IPCV: u8 = 71;
224
225pub const CPNX: u8 = 72;
227
228pub const CPHB: u8 = 73;
230
231pub const WSN: u8 = 74;
233
234pub const PVP: u8 = 75;
236
237pub const BR_SAT_MON: u8 = 76;
239
240pub const SUN_ND: u8 = 77;
242
243pub const WB_MON: u8 = 78;
245
246pub const WB_EXPAK: u8 = 79;
248
249pub const ISO_IP: u8 = 80;
251
252pub const VMTP: u8 = 81;
254
255pub const SECURE_VMTP: u8 = 82;
257
258pub const VINES: u8 = 83;
260
261pub const TTP: u8 = 84;
263
264pub const NSFNET_IGP: u8 = 85;
266
267pub const DGP: u8 = 86;
269
270pub const TCF: u8 = 87;
272
273pub const EIGRP: u8 = 88;
275
276pub const OSPFIGP: u8 = 89;
278
279pub const SPRITE_RPC: u8 = 90;
281
282pub const LARP: u8 = 91;
284
285pub const MTP: u8 = 92;
287
288pub const AX_25: u8 = 93;
290
291pub const IPIP_ENCAP: u8 = 94;
293
294pub const MICP: u8 = 95;
296
297pub const SCC_SP: u8 = 96;
299
300pub const ETHERIP: u8 = 97;
302
303pub const ENCAP: u8 = 98;
305
306pub const ANY_ENC: u8 = 99;
308
309pub const GMTP: u8 = 100;
311
312pub const IFMP: u8 = 101;
314
315pub const PNNI: u8 = 102;
317
318pub const PIM: u8 = 103;
320
321pub const ARIS: u8 = 104;
323
324pub const SCPS: u8 = 105;
326
327pub const QNX: u8 = 106;
329
330pub const AN: u8 = 107;
332
333pub const IPCOMP: u8 = 108;
335
336pub const SNP: u8 = 109;
338
339pub const COMPAQ_PEER: u8 = 110;
341
342pub const IPX_IN_IP: u8 = 111;
344
345pub const VRRP: u8 = 112;
347
348pub const PGM: u8 = 113;
350
351pub const ANY_0_HOP: u8 = 114;
353
354pub const L2TP: u8 = 115;
356
357pub const DDX: u8 = 116;
359
360pub const IATP: u8 = 117;
362
363pub const STP: u8 = 118;
365
366pub const SRP: u8 = 119;
368
369pub const UTI: u8 = 120;
371
372pub const SMP: u8 = 121;
374
375pub const SM: u8 = 122;
377
378pub const PTP: u8 = 123;
380
381pub const ISIS_OVER_IPV4: u8 = 124;
383
384pub const FIRE: u8 = 125;
386
387pub const CRTP: u8 = 126;
389
390pub const CRUDP: u8 = 127;
392
393pub const SSCOPMCE: u8 = 128;
395
396pub const IPLT: u8 = 129;
398
399pub const SPS: u8 = 130;
401
402pub const PIPE: u8 = 131;
404
405pub const SCTP: u8 = 132;
407
408pub const FC: u8 = 133;
410
411pub const RSVP_E2E_IGNORE: u8 = 134;
413
414pub const MOBILITY_HEADER: u8 = 135;
416
417pub const UDPLITE: u8 = 136;
419
420pub const MPLS_IN_IP: u8 = 137;
422
423pub const MANET: u8 = 138;
425
426pub const HIP: u8 = 139;
428
429pub const SHIM6: u8 = 140;
431
432pub const WESP: u8 = 141;
434
435pub const ROHC: u8 = 142;
437
438pub const ETHERNET: u8 = 143;
440
441pub const AGGFRAG: u8 = 144;
443
444pub const RESERVED: u8 = 255;
446
447pub fn from_name(name: &str) -> Option<u8> {
449 match name.to_ascii_lowercase().as_str() {
450 "ip" => Some(0), "ipv4" => Some(IPV4),
452 "icmp" => Some(ICMP),
453 "igmp" => Some(IGMP),
454 "ggp" => Some(GGP),
455 "ipip" => Some(IPIP),
456 "tcp" => Some(TCP),
457 "egp" => Some(EGP),
458 "igp" => Some(IGP),
459 "pup" => Some(PUP),
460 "udp" => Some(UDP),
461 "hmp" => Some(HMP),
462 "xns-idp" => Some(XNS_IDP),
463 "rdp" => Some(RDP),
464 "iso-tp4" => Some(ISO_TP4),
465 "dccp" => Some(DCCP),
466 "xtp" => Some(XTP),
467 "ddp" => Some(DDP),
468 "idpr-cmtp" => Some(IDPR_CMTP),
469 "ipv6" => Some(IPV6),
470 "ipv6-route" => Some(IPV6_ROUTE),
471 "ipv6-frag" => Some(IPV6_FRAG),
472 "idrp" => Some(IDRP),
473 "rsvp" => Some(RSVP),
474 "gre" => Some(GRE),
475 "esp" => Some(ESP),
476 "ah" => Some(AH),
477 "skip" => Some(SKIP),
478 "icmpv6" => Some(ICMPV6),
479 "ipv6-nonxt" => Some(IPV6_NONXT),
480 "ipv6-opts" => Some(IPV6_OPTS),
481 "eigrp" => Some(EIGRP),
482 "ospf" => Some(OSPFIGP),
483 "mtp" => Some(MTP),
484 "encap" => Some(ENCAP),
485 "pim" => Some(PIM),
486 "ipcomp" => Some(IPCOMP),
487 "vrrp" => Some(VRRP),
488 "l2tp" => Some(L2TP),
489 "isis" => Some(ISIS_OVER_IPV4),
490 "sctp" => Some(SCTP),
491 "fc" => Some(FC),
492 "mobility-header" => Some(MOBILITY_HEADER),
493 "udplite" => Some(UDPLITE),
494 "mpls-in-ip" => Some(MPLS_IN_IP),
495 "manet" => Some(MANET),
496 "hip" => Some(HIP),
497 "shim6" => Some(SHIM6),
498 "wesp" => Some(WESP),
499 "rohc" => Some(ROHC),
500 "ethernet" => Some(ETHERNET),
501 _ => None,
502 }
503}
504
505pub fn to_name(proto: u8) -> &'static str {
507 match proto {
508 HOPOPT => "HOPOPT",
509 ICMP => "ICMP",
510 IGMP => "IGMP",
511 GGP => "GGP",
512 IPIP => "IPIP",
513 ST => "ST",
514 TCP => "TCP",
515 CBT => "CBT",
516 EGP => "EGP",
517 IGP => "IGP",
518 BBN_RCC_MON => "BBN_RCC_MON",
519 NVP_II => "NVP_II",
520 PUP => "PUP",
521 ARGUS => "ARGUS",
522 EMCON => "EMCON",
523 XNET => "XNET",
524 CHAOS => "CHAOS",
525 UDP => "UDP",
526 MUX => "MUX",
527 DCN_MEAS => "DCN_MEAS",
528 HMP => "HMP",
529 PRM => "PRM",
530 XNS_IDP => "XNS_IDP",
531 TRUNK_1 => "TRUNK_1",
532 TRUNK_2 => "TRUNK_2",
533 LEAF_1 => "LEAF_1",
534 LEAF_2 => "LEAF_2",
535 RDP => "RDP",
536 IRTP => "IRTP",
537 ISO_TP4 => "ISO_TP4",
538 NETBLT => "NETBLT",
539 MFE_NSP => "MFE_NSP",
540 MERIT_INP => "MERIT_INP",
541 DCCP => "DCCP",
542 THIRD_PARTY_CONNECT => "THIRD_PARTY_CONNECT",
543 IDPR => "IDPR",
544 XTP => "XTP",
545 DDP => "DDP",
546 IDPR_CMTP => "IDPR_CMTP",
547 TP_PLUS_PLUS => "TP_PLUS_PLUS",
548 IL => "IL",
549 IPV6 => "IPV6",
550 SDRP => "SDRP",
551 IPV6_ROUTE => "IPV6_ROUTE",
552 IPV6_FRAG => "IPV6_FRAG",
553 IDRP => "IDRP",
554 RSVP => "RSVP",
555 GRE => "GRE",
556 DSR => "DSR",
557 BNA => "BNA",
558 ESP => "ESP",
559 AH => "AH",
560 I_NLSP => "I_NLSP",
561 SWIPE => "SWIPE",
562 NARP => "NARP",
563 MOBILE => "MOBILE",
564 TLSP => "TLSP",
565 SKIP => "SKIP",
566 ICMPV6 => "ICMPV6",
567 IPV6_NONXT => "IPV6_NONXT",
568 IPV6_OPTS => "IPV6_OPTS",
569 ANY_HOST_INTERNAL => "ANY_HOST_INTERNAL",
570 CFTP => "CFTP",
571 ANY_LOCAL_NETWORK => "ANY_LOCAL_NETWORK",
572 SAT_EXPAK => "SAT_EXPAK",
573 KRYPTOLAN => "KRYPTOLAN",
574 RVD => "RVD",
575 IPPC => "IPPC",
576 ANY_DIST_FS => "ANY_DIST_FS",
577 SAT_MON => "SAT_MON",
578 VISA => "VISA",
579 IPCV => "IPCV",
580 CPNX => "CPNX",
581 CPHB => "CPHB",
582 WSN => "WSN",
583 PVP => "PVP",
584 BR_SAT_MON => "BR_SAT_MON",
585 SUN_ND => "SUN_ND",
586 WB_MON => "WB_MON",
587 WB_EXPAK => "WB_EXPAK",
588 ISO_IP => "ISO_IP",
589 VMTP => "VMTP",
590 SECURE_VMTP => "SECURE_VMTP",
591 VINES => "VINES",
592 TTP => "TTP",
593 NSFNET_IGP => "NSFNET_IGP",
594 DGP => "DGP",
595 TCF => "TCF",
596 EIGRP => "EIGRP",
597 OSPFIGP => "OSPFIGP",
598 SPRITE_RPC => "SPRITE_RPC",
599 LARP => "LARP",
600 MTP => "MTP",
601 AX_25 => "AX_25",
602 IPIP_ENCAP => "IPIP_ENCAP",
603 MICP => "MICP",
604 SCC_SP => "SCC_SP",
605 ETHERIP => "ETHERIP",
606 ENCAP => "ENCAP",
607 ANY_ENC => "ANY_ENC",
608 GMTP => "GMTP",
609 IFMP => "IFMP",
610 PNNI => "PNNI",
611 PIM => "PIM",
612 ARIS => "ARIS",
613 SCPS => "SCPS",
614 QNX => "QNX",
615 AN => "AN",
616 IPCOMP => "IPCOMP",
617 SNP => "SNP",
618 COMPAQ_PEER => "COMPAQ_PEER",
619 IPX_IN_IP => "IPX_IN_IP",
620 VRRP => "VRRP",
621 PGM => "PGM",
622 ANY_0_HOP => "ANY_0_HOP",
623 L2TP => "L2TP",
624 DDX => "DDX",
625 IATP => "IATP",
626 STP => "STP",
627 SRP => "SRP",
628 UTI => "UTI",
629 SMP => "SMP",
630 SM => "SM",
631 PTP => "PTP",
632 ISIS_OVER_IPV4 => "ISIS_OVER_IPV4",
633 FIRE => "FIRE",
634 CRTP => "CRTP",
635 CRUDP => "CRUDP",
636 SSCOPMCE => "SSCOPMCE",
637 IPLT => "IPLT",
638 SPS => "SPS",
639 PIPE => "PIPE",
640 SCTP => "SCTP",
641 FC => "FC",
642 RSVP_E2E_IGNORE => "RSVP_E2E_IGNORE",
643 MOBILITY_HEADER => "MOBILITY_HEADER",
644 UDPLITE => "UDPLITE",
645 MPLS_IN_IP => "MPLS_IN_IP",
646 MANET => "MANET",
647 HIP => "HIP",
648 SHIM6 => "SHIM6",
649 WESP => "WESP",
650 ROHC => "ROHC",
651 ETHERNET => "ETHERNET",
652 AGGFRAG => "AGGFRAG",
653 RESERVED => "RESERVED",
654 _ => "UNKNOWN",
655 }
656}