#[repr(C, packed(1))]pub struct Ipv4Header {
pub version_ihl: u8,
pub tos: u8,
pub total_length: u16,
pub identification: u16,
pub flags_fragment: u16,
pub ttl: u8,
pub protocol: u8,
pub checksum: u16,
pub source_ip: [u8; 4],
pub dest_ip: [u8; 4],
}Expand description
IPv4 header (minimum 20 bytes)
Fields§
§version_ihl: u8Version (4 bits) + IHL (4 bits)
tos: u8Type of Service
total_length: u16Total Length (16 bits)
identification: u16Identification (16 bits)
flags_fragment: u16Flags (3 bits) + Fragment Offset (13 bits)
ttl: u8Time to Live
protocol: u8Protocol (8 bits)
checksum: u16Header Checksum (16 bits)
source_ip: [u8; 4]Source IP (32 bits)
dest_ip: [u8; 4]Destination IP (32 bits)
Implementations§
Source§impl Ipv4Header
impl Ipv4Header
Sourcepub fn header_length(&self) -> usize
pub fn header_length(&self) -> usize
Get header length in bytes
Sourcepub fn calculate_checksum(&self) -> u16
pub fn calculate_checksum(&self) -> u16
Calculate checksum
Sourcepub fn from_bytes(bytes: &[u8]) -> Option<Self>
pub fn from_bytes(bytes: &[u8]) -> Option<Self>
Parse header from bytes
Trait Implementations§
Source§impl Clone for Ipv4Header
impl Clone for Ipv4Header
Source§fn clone(&self) -> Ipv4Header
fn clone(&self) -> Ipv4Header
Returns a duplicate of the value. Read more
1.0.0§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for Ipv4Header
impl Debug for Ipv4Header
impl Copy for Ipv4Header
Auto Trait Implementations§
impl Freeze for Ipv4Header
impl RefUnwindSafe for Ipv4Header
impl Send for Ipv4Header
impl Sync for Ipv4Header
impl Unpin for Ipv4Header
impl UnwindSafe for Ipv4Header
Blanket Implementations§
§impl<T> Any for Twhere
T: 'static + ?Sized,
impl<T> Any for Twhere
T: 'static + ?Sized,
§impl<T> Borrow<T> for Twhere
T: ?Sized,
impl<T> Borrow<T> for Twhere
T: ?Sized,
§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§unsafe fn clone_to_uninit(&self, dest: *mut u8)
unsafe fn clone_to_uninit(&self, dest: *mut u8)
🔬This is a nightly-only experimental API. (
clone_to_uninit)