Struct etherparse::Ipv4Extensions
source · pub struct Ipv4Extensions {
pub auth: Option<IpAuthenticationHeader>,
}
Expand description
IPv4 extension headers present after the ip header.
Currently supported:
- Authentication Header
Currently not supported:
- Encapsulating Security Payload Header (ESP)
Fields§
§auth: Option<IpAuthenticationHeader>
Implementations§
source§impl Ipv4Extensions
impl Ipv4Extensions
sourcepub fn from_slice(
start_protocol: u8,
slice: &[u8]
) -> Result<(Ipv4Extensions, u8, &[u8]), ReadError>
pub fn from_slice(
start_protocol: u8,
slice: &[u8]
) -> Result<(Ipv4Extensions, u8, &[u8]), ReadError>
Read all known ipv4 extensions and return an Ipv4ExtensionSlices
with the
identified slices, the final ip number and a slice pointing to the non parsed data.
sourcepub fn read<T: Read + Seek + Sized>(
reader: &mut T,
start_ip_number: u8
) -> Result<(Ipv4Extensions, u8), ReadError>
pub fn read<T: Read + Seek + Sized>(
reader: &mut T,
start_ip_number: u8
) -> Result<(Ipv4Extensions, u8), ReadError>
Reads the known ipv4 extension headers from the reader and returns the headers together with the internet protocol number identifying the protocol that will be next.
sourcepub fn write<T: Write + Sized>(
&self,
writer: &mut T,
start_ip_number: u8
) -> Result<(), WriteError>
pub fn write<T: Write + Sized>(
&self,
writer: &mut T,
start_ip_number: u8
) -> Result<(), WriteError>
Write the extensions to the writer.
sourcepub fn header_len(&self) -> usize
pub fn header_len(&self) -> usize
Length of the all present headers in bytes.
sourcepub fn set_next_headers(&mut self, last_protocol_number: u8) -> u8
pub fn set_next_headers(&mut self, last_protocol_number: u8) -> u8
Sets all the next_header fields of the headers based on the adviced default order with the given protocol number as last “next header” value. The return value is the protocol number of the first existing extension header that should be entered in the ipv4 header as protocol_number.
If no extension headers are present the value of the argument is returned.
sourcepub fn next_header(&self, first_next_header: u8) -> Result<u8, ValueError>
pub fn next_header(&self, first_next_header: u8) -> Result<u8, ValueError>
Return next header based on the extension headers and the first ip protocol number.
In case a header is never referenced a ValueError::Ipv4ExtensionNotReferenced is returned.
Trait Implementations§
source§impl Clone for Ipv4Extensions
impl Clone for Ipv4Extensions
source§fn clone(&self) -> Ipv4Extensions
fn clone(&self) -> Ipv4Extensions
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read more