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
sourceimpl 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
sourceimpl Clone for Ipv4Extensions
impl Clone for Ipv4Extensions
sourcefn clone(&self) -> Ipv4Extensions
fn clone(&self) -> Ipv4Extensions
Returns a copy of the value. Read more
1.0.0 · sourcefn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from source
. Read more
sourceimpl Debug for Ipv4Extensions
impl Debug for Ipv4Extensions
sourceimpl Default for Ipv4Extensions
impl Default for Ipv4Extensions
sourcefn default() -> Ipv4Extensions
fn default() -> Ipv4Extensions
Returns the “default value” for a type. Read more
sourceimpl PartialEq<Ipv4Extensions> for Ipv4Extensions
impl PartialEq<Ipv4Extensions> for Ipv4Extensions
sourcefn eq(&self, other: &Ipv4Extensions) -> bool
fn eq(&self, other: &Ipv4Extensions) -> bool
This method tests for self
and other
values to be equal, and is used
by ==
. Read more
sourcefn ne(&self, other: &Ipv4Extensions) -> bool
fn ne(&self, other: &Ipv4Extensions) -> bool
This method tests for !=
.
impl Eq for Ipv4Extensions
impl StructuralEq for Ipv4Extensions
impl StructuralPartialEq for Ipv4Extensions
Auto Trait Implementations
impl RefUnwindSafe for Ipv4Extensions
impl Send for Ipv4Extensions
impl Sync for Ipv4Extensions
impl Unpin for Ipv4Extensions
impl UnwindSafe for Ipv4Extensions
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more