use std::fmt;
use PrimitiveValues;
#[allow(non_snake_case)]
#[allow(non_upper_case_globals)]
pub mod IpNextHeaderProtocols {
use super::IpNextHeaderProtocol;
pub const Hopopt: IpNextHeaderProtocol = IpNextHeaderProtocol(0);
pub const Icmp: IpNextHeaderProtocol = IpNextHeaderProtocol(1);
pub const Igmp: IpNextHeaderProtocol = IpNextHeaderProtocol(2);
pub const Ggp: IpNextHeaderProtocol = IpNextHeaderProtocol(3);
pub const Ipv4: IpNextHeaderProtocol = IpNextHeaderProtocol(4);
pub const St: IpNextHeaderProtocol = IpNextHeaderProtocol(5);
pub const Tcp: IpNextHeaderProtocol = IpNextHeaderProtocol(6);
pub const Cbt: IpNextHeaderProtocol = IpNextHeaderProtocol(7);
pub const Egp: IpNextHeaderProtocol = IpNextHeaderProtocol(8);
pub const Igp: IpNextHeaderProtocol = IpNextHeaderProtocol(9);
pub const BbnRccMon: IpNextHeaderProtocol = IpNextHeaderProtocol(10);
pub const NvpII: IpNextHeaderProtocol = IpNextHeaderProtocol(11);
pub const Pup: IpNextHeaderProtocol = IpNextHeaderProtocol(12);
pub const Argus: IpNextHeaderProtocol = IpNextHeaderProtocol(13);
pub const Emcon: IpNextHeaderProtocol = IpNextHeaderProtocol(14);
pub const Xnet: IpNextHeaderProtocol = IpNextHeaderProtocol(15);
pub const Chaos: IpNextHeaderProtocol = IpNextHeaderProtocol(16);
pub const Udp: IpNextHeaderProtocol = IpNextHeaderProtocol(17);
pub const Mux: IpNextHeaderProtocol = IpNextHeaderProtocol(18);
pub const DcnMeas: IpNextHeaderProtocol = IpNextHeaderProtocol(19);
pub const Hmp: IpNextHeaderProtocol = IpNextHeaderProtocol(20);
pub const Prm: IpNextHeaderProtocol = IpNextHeaderProtocol(21);
pub const XnsIdp: IpNextHeaderProtocol = IpNextHeaderProtocol(22);
pub const Trunk1: IpNextHeaderProtocol = IpNextHeaderProtocol(23);
pub const Trunk2: IpNextHeaderProtocol = IpNextHeaderProtocol(24);
pub const Leaf1: IpNextHeaderProtocol = IpNextHeaderProtocol(25);
pub const Leaf2: IpNextHeaderProtocol = IpNextHeaderProtocol(26);
pub const Rdp: IpNextHeaderProtocol = IpNextHeaderProtocol(27);
pub const Irtp: IpNextHeaderProtocol = IpNextHeaderProtocol(28);
pub const IsoTp4: IpNextHeaderProtocol = IpNextHeaderProtocol(29);
pub const Netblt: IpNextHeaderProtocol = IpNextHeaderProtocol(30);
pub const MfeNsp: IpNextHeaderProtocol = IpNextHeaderProtocol(31);
pub const MeritInp: IpNextHeaderProtocol = IpNextHeaderProtocol(32);
pub const Dccp: IpNextHeaderProtocol = IpNextHeaderProtocol(33);
pub const ThreePc: IpNextHeaderProtocol = IpNextHeaderProtocol(34);
pub const Idpr: IpNextHeaderProtocol = IpNextHeaderProtocol(35);
pub const Xtp: IpNextHeaderProtocol = IpNextHeaderProtocol(36);
pub const Ddp: IpNextHeaderProtocol = IpNextHeaderProtocol(37);
pub const IdprCmtp: IpNextHeaderProtocol = IpNextHeaderProtocol(38);
pub const TpPlusPlus: IpNextHeaderProtocol = IpNextHeaderProtocol(39);
pub const Il: IpNextHeaderProtocol = IpNextHeaderProtocol(40);
pub const Ipv6: IpNextHeaderProtocol = IpNextHeaderProtocol(41);
pub const Sdrp: IpNextHeaderProtocol = IpNextHeaderProtocol(42);
pub const Ipv6Route: IpNextHeaderProtocol = IpNextHeaderProtocol(43);
pub const Ipv6Frag: IpNextHeaderProtocol = IpNextHeaderProtocol(44);
pub const Idrp: IpNextHeaderProtocol = IpNextHeaderProtocol(45);
pub const Rsvp: IpNextHeaderProtocol = IpNextHeaderProtocol(46);
pub const Gre: IpNextHeaderProtocol = IpNextHeaderProtocol(47);
pub const Dsr: IpNextHeaderProtocol = IpNextHeaderProtocol(48);
pub const Bna: IpNextHeaderProtocol = IpNextHeaderProtocol(49);
pub const Esp: IpNextHeaderProtocol = IpNextHeaderProtocol(50);
pub const Ah: IpNextHeaderProtocol = IpNextHeaderProtocol(51);
pub const INlsp: IpNextHeaderProtocol = IpNextHeaderProtocol(52);
pub const Swipe: IpNextHeaderProtocol = IpNextHeaderProtocol(53);
pub const Narp: IpNextHeaderProtocol = IpNextHeaderProtocol(54);
pub const Mobile: IpNextHeaderProtocol = IpNextHeaderProtocol(55);
pub const Tlsp: IpNextHeaderProtocol = IpNextHeaderProtocol(56);
pub const Skip: IpNextHeaderProtocol = IpNextHeaderProtocol(57);
#[deprecated(note = "Please use `IpNextHeaderProtocols::Icmpv6` instead")]
pub const Ipv6Icmp: IpNextHeaderProtocol = IpNextHeaderProtocol(58);
pub const Icmpv6: IpNextHeaderProtocol = IpNextHeaderProtocol(58);
pub const Ipv6NoNxt: IpNextHeaderProtocol = IpNextHeaderProtocol(59);
pub const Ipv6Opts: IpNextHeaderProtocol = IpNextHeaderProtocol(60);
pub const HostInternal: IpNextHeaderProtocol = IpNextHeaderProtocol(61);
pub const Cftp: IpNextHeaderProtocol = IpNextHeaderProtocol(62);
pub const LocalNetwork: IpNextHeaderProtocol = IpNextHeaderProtocol(63);
pub const SatExpak: IpNextHeaderProtocol = IpNextHeaderProtocol(64);
pub const Kryptolan: IpNextHeaderProtocol = IpNextHeaderProtocol(65);
pub const Rvd: IpNextHeaderProtocol = IpNextHeaderProtocol(66);
pub const Ippc: IpNextHeaderProtocol = IpNextHeaderProtocol(67);
pub const DistributedFs: IpNextHeaderProtocol = IpNextHeaderProtocol(68);
pub const SatMon: IpNextHeaderProtocol = IpNextHeaderProtocol(69);
pub const Visa: IpNextHeaderProtocol = IpNextHeaderProtocol(70);
pub const Ipcv: IpNextHeaderProtocol = IpNextHeaderProtocol(71);
pub const Cpnx: IpNextHeaderProtocol = IpNextHeaderProtocol(72);
pub const Cphb: IpNextHeaderProtocol = IpNextHeaderProtocol(73);
pub const Wsn: IpNextHeaderProtocol = IpNextHeaderProtocol(74);
pub const Pvp: IpNextHeaderProtocol = IpNextHeaderProtocol(75);
pub const BrSatMon: IpNextHeaderProtocol = IpNextHeaderProtocol(76);
pub const SunNd: IpNextHeaderProtocol = IpNextHeaderProtocol(77);
pub const WbMon: IpNextHeaderProtocol = IpNextHeaderProtocol(78);
pub const WbExpak: IpNextHeaderProtocol = IpNextHeaderProtocol(79);
pub const IsoIp: IpNextHeaderProtocol = IpNextHeaderProtocol(80);
pub const Vmtp: IpNextHeaderProtocol = IpNextHeaderProtocol(81);
pub const SecureVmtp: IpNextHeaderProtocol = IpNextHeaderProtocol(82);
pub const Vines: IpNextHeaderProtocol = IpNextHeaderProtocol(83);
pub const TtpOrIptm: IpNextHeaderProtocol = IpNextHeaderProtocol(84);
pub const NsfnetIgp: IpNextHeaderProtocol = IpNextHeaderProtocol(85);
pub const Dgp: IpNextHeaderProtocol = IpNextHeaderProtocol(86);
pub const Tcf: IpNextHeaderProtocol = IpNextHeaderProtocol(87);
pub const Eigrp: IpNextHeaderProtocol = IpNextHeaderProtocol(88);
pub const OspfigP: IpNextHeaderProtocol = IpNextHeaderProtocol(89);
pub const SpriteRpc: IpNextHeaderProtocol = IpNextHeaderProtocol(90);
pub const Larp: IpNextHeaderProtocol = IpNextHeaderProtocol(91);
pub const Mtp: IpNextHeaderProtocol = IpNextHeaderProtocol(92);
pub const Ax25: IpNextHeaderProtocol = IpNextHeaderProtocol(93);
pub const IpIp: IpNextHeaderProtocol = IpNextHeaderProtocol(94);
pub const Micp: IpNextHeaderProtocol = IpNextHeaderProtocol(95);
pub const SccSp: IpNextHeaderProtocol = IpNextHeaderProtocol(96);
pub const Etherip: IpNextHeaderProtocol = IpNextHeaderProtocol(97);
pub const Encap: IpNextHeaderProtocol = IpNextHeaderProtocol(98);
pub const PrivEncryption: IpNextHeaderProtocol = IpNextHeaderProtocol(99);
pub const Gmtp: IpNextHeaderProtocol = IpNextHeaderProtocol(100);
pub const Ifmp: IpNextHeaderProtocol = IpNextHeaderProtocol(101);
pub const Pnni: IpNextHeaderProtocol = IpNextHeaderProtocol(102);
pub const Pim: IpNextHeaderProtocol = IpNextHeaderProtocol(103);
pub const Aris: IpNextHeaderProtocol = IpNextHeaderProtocol(104);
pub const Scps: IpNextHeaderProtocol = IpNextHeaderProtocol(105);
pub const Qnx: IpNextHeaderProtocol = IpNextHeaderProtocol(106);
pub const AN: IpNextHeaderProtocol = IpNextHeaderProtocol(107);
pub const IpComp: IpNextHeaderProtocol = IpNextHeaderProtocol(108);
pub const Snp: IpNextHeaderProtocol = IpNextHeaderProtocol(109);
pub const CompaqPeer: IpNextHeaderProtocol = IpNextHeaderProtocol(110);
pub const IpxInIp: IpNextHeaderProtocol = IpNextHeaderProtocol(111);
pub const Vrrp: IpNextHeaderProtocol = IpNextHeaderProtocol(112);
pub const Pgm: IpNextHeaderProtocol = IpNextHeaderProtocol(113);
pub const ZeroHop: IpNextHeaderProtocol = IpNextHeaderProtocol(114);
pub const L2tp: IpNextHeaderProtocol = IpNextHeaderProtocol(115);
pub const Ddx: IpNextHeaderProtocol = IpNextHeaderProtocol(116);
pub const Iatp: IpNextHeaderProtocol = IpNextHeaderProtocol(117);
pub const Stp: IpNextHeaderProtocol = IpNextHeaderProtocol(118);
pub const Srp: IpNextHeaderProtocol = IpNextHeaderProtocol(119);
pub const Uti: IpNextHeaderProtocol = IpNextHeaderProtocol(120);
pub const Smp: IpNextHeaderProtocol = IpNextHeaderProtocol(121);
pub const Sm: IpNextHeaderProtocol = IpNextHeaderProtocol(122);
pub const Ptp: IpNextHeaderProtocol = IpNextHeaderProtocol(123);
pub const IsisOverIpv4: IpNextHeaderProtocol = IpNextHeaderProtocol(124);
pub const Fire: IpNextHeaderProtocol = IpNextHeaderProtocol(125);
pub const Crtp: IpNextHeaderProtocol = IpNextHeaderProtocol(126);
pub const Crudp: IpNextHeaderProtocol = IpNextHeaderProtocol(127);
pub const Sscopmce: IpNextHeaderProtocol = IpNextHeaderProtocol(128);
pub const Iplt: IpNextHeaderProtocol = IpNextHeaderProtocol(129);
pub const Sps: IpNextHeaderProtocol = IpNextHeaderProtocol(130);
pub const Pipe: IpNextHeaderProtocol = IpNextHeaderProtocol(131);
pub const Sctp: IpNextHeaderProtocol = IpNextHeaderProtocol(132);
pub const Fc: IpNextHeaderProtocol = IpNextHeaderProtocol(133);
pub const RsvpE2eIgnore: IpNextHeaderProtocol = IpNextHeaderProtocol(134);
pub const MobilityHeader: IpNextHeaderProtocol = IpNextHeaderProtocol(135);
pub const UdpLite: IpNextHeaderProtocol = IpNextHeaderProtocol(136);
pub const MplsInIp: IpNextHeaderProtocol = IpNextHeaderProtocol(137);
pub const Manet: IpNextHeaderProtocol = IpNextHeaderProtocol(138);
pub const Hip: IpNextHeaderProtocol = IpNextHeaderProtocol(139);
pub const Shim6: IpNextHeaderProtocol = IpNextHeaderProtocol(140);
pub const Wesp: IpNextHeaderProtocol = IpNextHeaderProtocol(141);
pub const Rohc: IpNextHeaderProtocol = IpNextHeaderProtocol(142);
pub const Test1: IpNextHeaderProtocol = IpNextHeaderProtocol(253);
pub const Test2: IpNextHeaderProtocol = IpNextHeaderProtocol(254);
pub const Reserved: IpNextHeaderProtocol = IpNextHeaderProtocol(255);
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, PartialOrd, Ord, Hash)]
pub struct IpNextHeaderProtocol(pub u8);
impl IpNextHeaderProtocol {
pub fn new(value: u8) -> IpNextHeaderProtocol {
IpNextHeaderProtocol(value)
}
}
impl PrimitiveValues for IpNextHeaderProtocol {
type T = (u8,);
fn to_primitive_values(&self) -> (u8,) {
(self.0,)
}
}
impl fmt::Display for IpNextHeaderProtocol {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
write!(
f,
"{}",
match self {
&IpNextHeaderProtocols::Hopopt => "Hopopt",
&IpNextHeaderProtocols::Icmp => "Icmp",
&IpNextHeaderProtocols::Igmp => "Igmp",
&IpNextHeaderProtocols::Ggp => "Ggp",
&IpNextHeaderProtocols::Ipv4 => "Ipv4",
&IpNextHeaderProtocols::St => "St",
&IpNextHeaderProtocols::Tcp => "Tcp",
&IpNextHeaderProtocols::Cbt => "Cbt",
&IpNextHeaderProtocols::Egp => "Egp",
&IpNextHeaderProtocols::Igp => "Igp",
&IpNextHeaderProtocols::BbnRccMon => "BbnRccMon",
&IpNextHeaderProtocols::NvpII => "NvpII",
&IpNextHeaderProtocols::Pup => "Pup",
&IpNextHeaderProtocols::Argus => "Argus",
&IpNextHeaderProtocols::Emcon => "Emcon",
&IpNextHeaderProtocols::Xnet => "Xnet",
&IpNextHeaderProtocols::Chaos => "Chaos",
&IpNextHeaderProtocols::Udp => "Udp",
&IpNextHeaderProtocols::Mux => "Mux",
&IpNextHeaderProtocols::DcnMeas => "DcnMeas",
&IpNextHeaderProtocols::Hmp => "Hmp",
&IpNextHeaderProtocols::Prm => "Prm",
&IpNextHeaderProtocols::XnsIdp => "XnsIdp",
&IpNextHeaderProtocols::Trunk1 => "Trunk1",
&IpNextHeaderProtocols::Trunk2 => "Trunk2",
&IpNextHeaderProtocols::Leaf1 => "Leaf1",
&IpNextHeaderProtocols::Leaf2 => "Leaf2",
&IpNextHeaderProtocols::Rdp => "Rdp",
&IpNextHeaderProtocols::Irtp => "Irtp",
&IpNextHeaderProtocols::IsoTp4 => "IsoTp4",
&IpNextHeaderProtocols::Netblt => "Netblt",
&IpNextHeaderProtocols::MfeNsp => "MfeNsp",
&IpNextHeaderProtocols::MeritInp => "MeritInp",
&IpNextHeaderProtocols::Dccp => "Dccp",
&IpNextHeaderProtocols::ThreePc => "ThreePc",
&IpNextHeaderProtocols::Idpr => "Idpr",
&IpNextHeaderProtocols::Xtp => "Xtp",
&IpNextHeaderProtocols::Ddp => "Ddp",
&IpNextHeaderProtocols::IdprCmtp => "IdprCmtp",
&IpNextHeaderProtocols::TpPlusPlus => "TpPlusPlus",
&IpNextHeaderProtocols::Il => "Il",
&IpNextHeaderProtocols::Ipv6 => "Ipv6",
&IpNextHeaderProtocols::Sdrp => "Sdrp",
&IpNextHeaderProtocols::Ipv6Route => "Ipv6Route",
&IpNextHeaderProtocols::Ipv6Frag => "Ipv6Frag",
&IpNextHeaderProtocols::Idrp => "Idrp",
&IpNextHeaderProtocols::Rsvp => "Rsvp",
&IpNextHeaderProtocols::Gre => "Gre",
&IpNextHeaderProtocols::Dsr => "Dsr",
&IpNextHeaderProtocols::Bna => "Bna",
&IpNextHeaderProtocols::Esp => "Esp",
&IpNextHeaderProtocols::Ah => "Ah",
&IpNextHeaderProtocols::INlsp => "INlsp",
&IpNextHeaderProtocols::Swipe => "Swipe",
&IpNextHeaderProtocols::Narp => "Narp",
&IpNextHeaderProtocols::Mobile => "Mobile",
&IpNextHeaderProtocols::Tlsp => "Tlsp",
&IpNextHeaderProtocols::Skip => "Skip",
&IpNextHeaderProtocols::Icmpv6 => "Icmpv6",
&IpNextHeaderProtocols::Ipv6NoNxt => "Ipv6NoNxt",
&IpNextHeaderProtocols::Ipv6Opts => "Ipv6Opts",
&IpNextHeaderProtocols::HostInternal => "HostInternal",
&IpNextHeaderProtocols::Cftp => "Cftp",
&IpNextHeaderProtocols::LocalNetwork => "LocalNetwork",
&IpNextHeaderProtocols::SatExpak => "SatExpak",
&IpNextHeaderProtocols::Kryptolan => "Kryptolan",
&IpNextHeaderProtocols::Rvd => "Rvd",
&IpNextHeaderProtocols::Ippc => "Ippc",
&IpNextHeaderProtocols::DistributedFs => "DistributedFs",
&IpNextHeaderProtocols::SatMon => "SatMon",
&IpNextHeaderProtocols::Visa => "Visa",
&IpNextHeaderProtocols::Ipcv => "Ipcv",
&IpNextHeaderProtocols::Cpnx => "Cpnx",
&IpNextHeaderProtocols::Cphb => "Cphb",
&IpNextHeaderProtocols::Wsn => "Wsn",
&IpNextHeaderProtocols::Pvp => "Pvp",
&IpNextHeaderProtocols::BrSatMon => "BrSatMon",
&IpNextHeaderProtocols::SunNd => "SunNd",
&IpNextHeaderProtocols::WbMon => "WbMon",
&IpNextHeaderProtocols::WbExpak => "WbExpak",
&IpNextHeaderProtocols::IsoIp => "IsoIp",
&IpNextHeaderProtocols::Vmtp => "Vmtp",
&IpNextHeaderProtocols::SecureVmtp => "SecureVmtp",
&IpNextHeaderProtocols::Vines => "Vines",
&IpNextHeaderProtocols::TtpOrIptm => "TtpOrIptm",
&IpNextHeaderProtocols::NsfnetIgp => "NsfnetIgp",
&IpNextHeaderProtocols::Dgp => "Dgp",
&IpNextHeaderProtocols::Tcf => "Tcf",
&IpNextHeaderProtocols::Eigrp => "Eigrp",
&IpNextHeaderProtocols::OspfigP => "OspfigP",
&IpNextHeaderProtocols::SpriteRpc => "SpriteRpc",
&IpNextHeaderProtocols::Larp => "Larp",
&IpNextHeaderProtocols::Mtp => "Mtp",
&IpNextHeaderProtocols::Ax25 => "Ax25",
&IpNextHeaderProtocols::IpIp => "IpIp",
&IpNextHeaderProtocols::Micp => "Micp",
&IpNextHeaderProtocols::SccSp => "SccSp",
&IpNextHeaderProtocols::Etherip => "Etherip",
&IpNextHeaderProtocols::Encap => "Encap",
&IpNextHeaderProtocols::PrivEncryption => "PrivEncryption",
&IpNextHeaderProtocols::Gmtp => "Gmtp",
&IpNextHeaderProtocols::Ifmp => "Ifmp",
&IpNextHeaderProtocols::Pnni => "Pnni",
&IpNextHeaderProtocols::Pim => "Pim",
&IpNextHeaderProtocols::Aris => "Aris",
&IpNextHeaderProtocols::Scps => "Scps",
&IpNextHeaderProtocols::Qnx => "Qnx",
&IpNextHeaderProtocols::AN => "AN",
&IpNextHeaderProtocols::IpComp => "IpComp",
&IpNextHeaderProtocols::Snp => "Snp",
&IpNextHeaderProtocols::CompaqPeer => "CompaqPeer",
&IpNextHeaderProtocols::IpxInIp => "IpxInIp",
&IpNextHeaderProtocols::Vrrp => "Vrrp",
&IpNextHeaderProtocols::Pgm => "Pgm",
&IpNextHeaderProtocols::ZeroHop => "ZeroHop",
&IpNextHeaderProtocols::L2tp => "L2tp",
&IpNextHeaderProtocols::Ddx => "Ddx",
&IpNextHeaderProtocols::Iatp => "Iatp",
&IpNextHeaderProtocols::Stp => "Stp",
&IpNextHeaderProtocols::Srp => "Srp",
&IpNextHeaderProtocols::Uti => "Uti",
&IpNextHeaderProtocols::Smp => "Smp",
&IpNextHeaderProtocols::Sm => "Sm",
&IpNextHeaderProtocols::Ptp => "Ptp",
&IpNextHeaderProtocols::IsisOverIpv4 => "IsisOverIpv4",
&IpNextHeaderProtocols::Fire => "Fire",
&IpNextHeaderProtocols::Crtp => "Crtp",
&IpNextHeaderProtocols::Crudp => "Crudp",
&IpNextHeaderProtocols::Sscopmce => "Sscopmce",
&IpNextHeaderProtocols::Iplt => "Iplt",
&IpNextHeaderProtocols::Sps => "Sps",
&IpNextHeaderProtocols::Pipe => "Pipe",
&IpNextHeaderProtocols::Sctp => "Sctp",
&IpNextHeaderProtocols::Fc => "Fc",
&IpNextHeaderProtocols::RsvpE2eIgnore => "RsvpE2eIgnore",
&IpNextHeaderProtocols::MobilityHeader => "MobilityHeader",
&IpNextHeaderProtocols::UdpLite => "UdpLite",
&IpNextHeaderProtocols::MplsInIp => "MplsInIp",
&IpNextHeaderProtocols::Manet => "Manet",
&IpNextHeaderProtocols::Hip => "Hip",
&IpNextHeaderProtocols::Shim6 => "Shim6",
&IpNextHeaderProtocols::Wesp => "Wesp",
&IpNextHeaderProtocols::Rohc => "Rohc",
&IpNextHeaderProtocols::Test1 => "Test1",
&IpNextHeaderProtocols::Test2 => "Test2",
&IpNextHeaderProtocols::Reserved => "Reserved",
_ => "unknown",
}
)
}
}
#[test]
fn ip_next_header_protocol_to_str() {
let hopopt = IpNextHeaderProtocol(0);
assert_eq!(format!("{}", hopopt), "Hopopt");
let rvd = IpNextHeaderProtocol(66);
assert_eq!(format!("{}", rvd), "Rvd");
let sscopmce = IpNextHeaderProtocol(128);
assert_eq!(format!("{}", sscopmce), "Sscopmce");
}