12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- const SOL_SOCKET: u16 = 1;
- #[derive(Debug, Clone, Copy, FromPrimitive, ToPrimitive, PartialEq, Eq)]
- pub enum IPProtocol {
-
- IP = 0,
-
- ICMP = 1,
-
- IGMP = 2,
-
- IPIP = 4,
-
- TCP = 6,
-
- EGP = 8,
-
- PUP = 12,
-
- UDP = 17,
-
- IDP = 22,
-
- TP = 29,
-
- DCCP = 33,
-
- IPv6 = 41,
-
- RSVP = 46,
-
- GRE = 47,
-
- ESP = 50,
-
- AH = 51,
-
- MTP = 92,
-
- BEETPH = 94,
-
- ENCAP = 98,
-
- PIM = 103,
-
- COMP = 108,
-
- SCTP = 132,
-
- UDPLITE = 136,
-
- MPLSINIP = 137,
-
- ETHERNET = 143,
-
- RAW = 255,
-
- MPTCP = 262,
- }
- impl TryFrom<u16> for IPProtocol {
- type Error = system_error::SystemError;
- fn try_from(value: u16) -> Result<Self, Self::Error> {
- match <Self as num_traits::FromPrimitive>::from_u16(value) {
- Some(p) => Ok(p),
- None => Err(system_error::SystemError::EPROTONOSUPPORT),
- }
- }
- }
- impl From<IPProtocol> for u16 {
- fn from(value: IPProtocol) -> Self {
- <IPProtocol as num_traits::ToPrimitive>::to_u16(&value).unwrap()
- }
- }
|