pub struct IpNumber(pub u8);
Expand description
Identifiers for the next_header field in ipv6 headers and protocol field in ipv4 headers.
You can access the underlying u8
value by using .0
and any u8
can be converted to an IpNumber
:
use etherparse::IpNumber;
assert_eq!(IpNumber::TCP.0, 6);
assert_eq!(IpNumber::TCP, IpNumber(6));
// convert to IpNumber using the from & into trait
let ip_num: IpNumber = 6.into();
assert_eq!(IpNumber::TCP, ip_num);
// convert to u8 using the from & into trait
let num: u8 = IpNumber::TCP.into();
assert_eq!(6, num);
The constants are also defined in the ip_number
module so they can
be used without the need to write IpNumber::
in front of them:
use etherparse::{ip_number::TCP, IpNumber};
assert_eq!(TCP, IpNumber::TCP);
The list original values were copied from https://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml
Tuple Fields§
§0: u8
Implementations§
Source§impl IpNumber
impl IpNumber
Sourcepub const IPV6_HEADER_HOP_BY_HOP: IpNumber
pub const IPV6_HEADER_HOP_BY_HOP: IpNumber
IPv6 Hop-by-Hop Option [RFC8200]
Sourcepub const IGP: IpNumber
pub const IGP: IpNumber
any private interior gateway (used by Cisco for their IGRP) [Internet_Assigned_Numbers_Authority]
Sourcepub const BBN_RCC_MON: IpNumber
pub const BBN_RCC_MON: IpNumber
BBN RCC Monitoring [Steve_Chipman]
Sourcepub const XNET: IpNumber
pub const XNET: IpNumber
Cross Net Debugger [Haverty, J., “XNET Formats for Internet Protocol Version 4”, IEN 158, October 1980.][Jack_Haverty]
Sourcepub const MUX: IpNumber
pub const MUX: IpNumber
Multiplexing [Cohen, D. and J. Postel, “Multiplexing Protocol”, IEN 90, USC/Information Sciences Institute, May 1979.][Jon_Postel]
Sourcepub const MFE_NSP: IpNumber
pub const MFE_NSP: IpNumber
MFE Network Services Protocol [Shuttleworth, B., “A Documentary of MFENet, a National Computer Network”, UCRL-52317, Lawrence Livermore Labs, Livermore, California, June 1977.] [Barry_Howard]
Sourcepub const THIRD_PARTY_CONNECT_PROTOCOL: IpNumber
pub const THIRD_PARTY_CONNECT_PROTOCOL: IpNumber
Third Party Connect Protocol [Stuart_A_Friedberg]
Sourcepub const TP_PLUS_PLUS: IpNumber
pub const TP_PLUS_PLUS: IpNumber
TP++ Transport Protocol [Dirk_Fromhein]
Sourcepub const IPV6_ROUTE_HEADER: IpNumber
pub const IPV6_ROUTE_HEADER: IpNumber
Routing Header for IPv6 [Steve_Deering]
Sourcepub const IPV6_FRAGMENTATION_HEADER: IpNumber
pub const IPV6_FRAGMENTATION_HEADER: IpNumber
Fragment Header for IPv6 [Steve_Deering]
Sourcepub const ENCAPSULATING_SECURITY_PAYLOAD: IpNumber
pub const ENCAPSULATING_SECURITY_PAYLOAD: IpNumber
Encapsulating Security Payload [RFC4303]
Sourcepub const AUTHENTICATION_HEADER: IpNumber
pub const AUTHENTICATION_HEADER: IpNumber
Authentication Header [RFC4302]
Sourcepub const TLSP: IpNumber
pub const TLSP: IpNumber
Transport Layer Security Protocol using Kryptonet key management [Christer_Oberg]
Sourcepub const IPV6_NO_NEXT_HEADER: IpNumber
pub const IPV6_NO_NEXT_HEADER: IpNumber
No Next Header for IPv6 [RFC8200]
Sourcepub const IPV6_DESTINATION_OPTIONS: IpNumber
pub const IPV6_DESTINATION_OPTIONS: IpNumber
Destination Options for IPv6 [RFC8200]
Sourcepub const ANY_HOST_INTERNAL_PROTOCOL: IpNumber
pub const ANY_HOST_INTERNAL_PROTOCOL: IpNumber
any host internal protocol [Internet_Assigned_Numbers_Authority]
Sourcepub const CFTP: IpNumber
pub const CFTP: IpNumber
CFTP [Forsdick, H., “CFTP”, Network Message, Bolt Beranek and Newman, January 1982.][Harry_Forsdick]
Sourcepub const ANY_LOCAL_NETWORK: IpNumber
pub const ANY_LOCAL_NETWORK: IpNumber
any local network [Internet_Assigned_Numbers_Authority]
Sourcepub const ANY_DISTRIBUTED_FILE_SYSTEM: IpNumber
pub const ANY_DISTRIBUTED_FILE_SYSTEM: IpNumber
any distributed file system [Internet_Assigned_Numbers_Authority]
Sourcepub const BR_SAT_MON: IpNumber
pub const BR_SAT_MON: IpNumber
Backroom SATNET Monitoring [Steven_Blumenthal]
Sourcepub const SECURE_VMTP: IpNumber
pub const SECURE_VMTP: IpNumber
SECURE-VMTP [Dave_Cheriton]
Sourcepub const TTP_OR_IPTM: IpNumber
pub const TTP_OR_IPTM: IpNumber
Transaction Transport Protocol or Internet Protocol Traffic Manager [Jim_Stevens]
Sourcepub const NSFNET_IGP: IpNumber
pub const NSFNET_IGP: IpNumber
NSFNET-IGP [Hans_Werner_Braun]
Sourcepub const DGP: IpNumber
pub const DGP: IpNumber
Dissimilar Gateway Protocol [M/A-COM Government Systems, “Dissimilar Gateway Protocol Specification, Draft Version”, Contract no. CS901145, November 16, 1987.][Mike_Little]
Sourcepub const SPRITE_RPC: IpNumber
pub const SPRITE_RPC: IpNumber
Sprite RPC Protocol [Welch, B., “The Sprite Remote Procedure Call System”, Technical Report, UCB/Computer Science Dept., 86/302, University of California at Berkeley, June 1986.][Bruce Willins]
Sourcepub const ACTIVE_NETWORKS: IpNumber
pub const ACTIVE_NETWORKS: IpNumber
Active Networks [Bob_Braden]
Sourcepub const SITRA_NETWORKS_PROTOCOL: IpNumber
pub const SITRA_NETWORKS_PROTOCOL: IpNumber
Sitara Networks Protocol [Manickam_R_Sridhar]
Sourcepub const COMPAQ_PEER: IpNumber
pub const COMPAQ_PEER: IpNumber
Compaq Peer Protocol [Victor_Volpe]
Sourcepub const ANY_ZERO_HOP_PROTOCOL: IpNumber
pub const ANY_ZERO_HOP_PROTOCOL: IpNumber
any 0-hop protocol [Internet_Assigned_Numbers_Authority]
Sourcepub const LAYER2_TUNNELING_PROTOCOL: IpNumber
pub const LAYER2_TUNNELING_PROTOCOL: IpNumber
Layer Two Tunneling Protocol [RFC3931][Bernard_Aboba]
Sourcepub const SIMPLE_MESSAGE_PROTOCOL: IpNumber
pub const SIMPLE_MESSAGE_PROTOCOL: IpNumber
Simple Message Protocol [Leif_Ekblad]
Sourcepub const SM: IpNumber
pub const SM: IpNumber
Simple Multicast Protocol (deprecated) [Jon_Crowcroft][draft-perlman-simple-multicast]
Sourcepub const ISIS_OVER_IPV4: IpNumber
pub const ISIS_OVER_IPV4: IpNumber
ISIS over IPv4 [Tony_Przygienda]
Sourcepub const RSVP_E2E_IGNORE: IpNumber
pub const RSVP_E2E_IGNORE: IpNumber
RSVP-E2E-IGNORE [RFC3175]
Sourcepub const MOBILITY_HEADER: IpNumber
pub const MOBILITY_HEADER: IpNumber
MobilityHeader [RFC6275]
Sourcepub const MPLS_IN_IP: IpNumber
pub const MPLS_IN_IP: IpNumber
[RFC4023]
Sourcepub const EXPERIMENTAL_AND_TESTING_0: IpNumber
pub const EXPERIMENTAL_AND_TESTING_0: IpNumber
Use for experimentation and testing
Sourcepub const EXPERIMENTAL_AND_TESTING_1: IpNumber
pub const EXPERIMENTAL_AND_TESTING_1: IpNumber
Use for experimentation and testing
Source§impl IpNumber
impl IpNumber
Sourcepub fn is_ipv6_ext_header_value(self) -> bool
pub fn is_ipv6_ext_header_value(self) -> bool
Returns true if the given number is the internet number of an IPV6 extension header.
Sourcepub fn keyword_str(self) -> Option<&'static str>
pub fn keyword_str(self) -> Option<&'static str>
Returns the “keyword” string if known. Usually this is the abbreviation of the protocol.
§Example
use etherparse::IpNumber;
assert_eq!(IpNumber::UDP.keyword_str(), Some("UDP"));
// Unassigned values return None
assert_eq!(IpNumber(145).keyword_str(), None);
§Data Source
The strings were copied from https://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml on 2023-04-11.
Sourcepub fn protocol_str(self) -> Option<&'static str>
pub fn protocol_str(self) -> Option<&'static str>
Returns the “protocol” string if known. Usually this the non abbreviated name of the protocol.
§Example
use etherparse::IpNumber;
assert_eq!(IpNumber::UDP.protocol_str(), Some("User Datagram"));
// Unassigned values return None
assert_eq!(IpNumber(145).protocol_str(), None);
§Data Source
The string was copied from https://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml on 2023-04-11.