use core::fmt;
use crate::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() {
use std::format;
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");
}