Struct edge_raw::ip::Ipv4PacketHeader
source · pub struct Ipv4PacketHeader {
pub version: u8,
pub hlen: u8,
pub tos: u8,
pub len: u16,
pub id: u16,
pub off: u16,
pub ttl: u8,
pub p: u8,
pub sum: u16,
pub src: Ipv4Addr,
pub dst: Ipv4Addr,
}Fields§
§version: u8§hlen: u8§tos: u8§len: u16§id: u16§off: u16§ttl: u8§p: u8§sum: u16§src: Ipv4Addr§dst: Ipv4AddrImplementations§
source§impl Ipv4PacketHeader
impl Ipv4PacketHeader
pub const MIN_SIZE: usize = 20usize
pub const CHECKSUM_WORD: usize = 5usize
pub const IP_DF: u16 = 16_384u16
pub const IP_MF: u16 = 8_192u16
pub fn new(src: Ipv4Addr, dst: Ipv4Addr, proto: u8) -> Self
sourcepub fn encode<'o>(&self, buf: &'o mut [u8]) -> Result<&'o [u8], Error>
pub fn encode<'o>(&self, buf: &'o mut [u8]) -> Result<&'o [u8], Error>
Encodes the packet into the provided buf slice
pub fn encode_with_payload<'o, F>( &mut self, buf: &'o mut [u8], encoder: F ) -> Result<&'o [u8], Error>
pub fn decode_with_payload( packet: &[u8], filter_src: Ipv4Addr, filter_dst: Ipv4Addr, filter_proto: Option<u8> ) -> Result<Option<(Self, &[u8])>, Error>
pub fn inject_checksum(packet: &mut [u8], checksum: u16)
pub fn checksum(packet: &[u8]) -> u16
Trait Implementations§
source§impl Clone for Ipv4PacketHeader
impl Clone for Ipv4PacketHeader
source§fn clone(&self) -> Ipv4PacketHeader
fn clone(&self) -> Ipv4PacketHeader
Returns a copy of the value. Read more
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl RefUnwindSafe for Ipv4PacketHeader
impl Send for Ipv4PacketHeader
impl Sync for Ipv4PacketHeader
impl Unpin for Ipv4PacketHeader
impl UnwindSafe for Ipv4PacketHeader
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more