use crate::EtherType;
impl EtherType {
pub const fn description(self) -> Option<&'static str> {
Some(match self {
Self::IPV4 => "Internet Protocol Version 4 (IPv4)",
Self::ARP => "Address Resolution Protocol (ARP)",
Self::FR_ARP => "Frame Relay ARP",
Self::TRILL => "TRILL",
Self::L2ISIS => "L2-IS-IS",
Self::RARP => "Reverse Address Resolution Protocol (RARP)",
Self::IPV6 => "Internet Protocol Version 6 (IPv6)",
Self::PPP => "Point-to-Point Protocol (PPP)",
Self::GSMP => "General Switch Management Protocol (GSMP)",
Self::MPLS => "MPLS",
Self::MPLS_MC => "MPLS with upstream-assigned label",
Self::MCAP => "Multicast Channel Allocation Protocol (MCAP)",
Self::PPPOE_D => "PPP over Ethernet (PPPoE) Discovery Stage",
Self::PPPOE_S => "PPP over Ethernet (PPPoE) Session Stage",
Self::TRILL_FGL => "TRILL Fine Grained Labeling (FGL)",
Self::TRILL_RBC => "TRILL RBridge Channel",
Self::C_TAG => "IEEE Std 802.1Q - Customer VLAN Tag Type (C-Tag, formerly called the Q-Tag) (initially Wellfleet)",
Self::EPON => "IEEE Std 802.3 - Ethernet Passive Optical Network (EPON)",
Self::PAE => "IEEE Std 802.1X - Port-based network access control",
Self::S_TAG => "IEEE Std 802.1Q - Service VLAN tag identifier (S-Tag)",
Self::IEEE802_EXPERIMENTAL1 => "IEEE Std 802 - Local Experimental Ethertype 1",
Self::IEEE802_EXPERIMENTAL2 => "IEEE Std 802 - Local Experimental Ethertype 2",
Self::OUI_EXTENDED => "IEEE Std 802 - OUI Extended Ethertype",
Self::PREAUTH => "IEEE Std 802.11 - Pre-Authentication (802.11i)",
Self::LLDP => "IEEE Std 802.1AB - Link Layer Discovery Protocol (LLDP)",
Self::MACSEC => "IEEE Std 802.1AE - Media Access Control Security",
Self::MVRP => "IEEE Std 802.1Q - Multiple VLAN Registration Protocol (MVRP)",
Self::MMRP => "IEEE Std 802.1Q - Multiple Multicast Registration Protocol ",
Self::FRRR => "IEEE Std 802.11 - Fast Roaming Remote Request (802.11r)",
Self::MIH => "IEEE Std 802.21 - Media Independent Handover Protocol",
Self::MIR => "IEEE Std 802.1Qbe - Multiple I-SID Registration Protocol",
Self::ECP => "IEEE Std 802.1Qbg - ECP Protocol (also used in 802.1BR)",
Self::SNA => "SNA",
Self::OSI_NL => "OSI network layer",
Self::PUP => "PUP",
Self::XNS => "XNS",
Self::CHAOS => "Chaos",
Self::VINES => "VINES",
Self::VINES_ECHO => "VINES Echo",
Self::VINES_LOOPBACK => "VINES Loopback",
Self::DECNET => "DECnet (Phase IV)",
Self::TEB => "Transparent Ethernet Bridging",
Self::RAW_FR => "Raw Frame Relay",
Self::APOLLO_DOMAIN => "Apollo Domain",
Self::APPLETALK => "Ethertalk (Appletalk)",
Self::IPX => "Novell IPX",
Self::RFC1144 => "RFC 1144 TCP/IP compression",
Self::IP_AUTONOMOUS_SYSTEMS => "IP Autonomous Systems",
Self::SECURE_DATA => "Secure Data",
Self::WOL => "Wake-on-LAN",
Self::MSRP => "Stream Reservation Protocol",
Self::AVTP => "Audio Video Transport Protocol (AVTP)",
Self::DEC_MOP_RC => "DEC MOP RC",
Self::LAT => "DEC LAT length and 1 byte padding",
Self::AARP => "AppleTalk Address Resolution Protocol (AARP)",
Self::SLPP => "Simple Loop Prevention Protocol (SLPP)",
Self::VLACP => "Virtual Link Aggregation Control Protocol (VLACP)",
Self::QNX_QNET => "QNX Qnet",
Self::SLOW => "Ethernet Slow Protocols such as the Link Aggregation Control Protocol (LACP)",
Self::COBRANET => "CobraNet",
Self::HOMEPLUG => "HomePlug 1.0 MME",
Self::PROFINET => "PROFINET Protocol",
Self::HYPERSCSI => "HyperSCSI (SCSI over Ethernet)",
Self::ATAOE => "ATA over Ethernet",
Self::ETHERCAT => "EtherCAT Protocol",
Self::POWERLINK => "Ethernet Powerlink",
Self::GOOSE => "GOOSE (Generic Object Oriented Substation event)",
Self::GSE => "GSE (Generic Substation Events) Management Services",
Self::SV => "SV (Sampled Value Transmission)",
Self::ROMON => "MikroTik RoMON (unofficial)",
Self::SERCOS => "SERCOS III",
Self::HOMEPLUG_GREEN => "HomePlug Green PHY",
Self::MRP => "Media Redundancy Protocol (IEC62439-2)",
Self::PBB => "Provider Backbone Bridges (PBB) (IEEE 802.1ah)",
Self::PTP => "Precision Time Protocol (PTP) over IEEE 802.3 Ethernet",
Self::NCSI => "NC-SI",
Self::PRP => "Parallel Redundancy Protocol (PRP)",
Self::CFM => "IEEE 802.1ag Connectivity Fault Management (CFM) Protocol / ITU-T Recommendation Y.1731 (OAM)",
Self::FCOE => "Fibre Channel over Ethernet (FCoE)",
Self::FCOE_IP => "FCoE Initialization Protocol",
Self::ROCE => "RDMA over Converged Ethernet (RoCE)",
Self::TTE => "TTEthernet Protocol Control Frame (TTE)",
Self::IEEE1905_1 => "1905.1 IEEE Protocol",
Self::HSR => "High-availability Seamless Redundancy (HSR)",
Self::LOOPBACK => "Ethernet Configuration Testing Protocol",
Self::REDUNDANCY_TAG => "Redundancy Tag (IEEE 802.1CB Frame Replication and Elimination for Reliability)",
_ => return None,
})
}
}