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