Struct pnet_packet::dhcp::DhcpPacket
source · pub struct DhcpPacket<'p> { /* private fields */ }
Expand description
A structure enabling manipulation of on the wire packets
Implementations§
source§impl<'a> DhcpPacket<'a>
impl<'a> DhcpPacket<'a>
sourcepub fn new<'p>(packet: &'p [u8]) -> Option<DhcpPacket<'p>>
pub fn new<'p>(packet: &'p [u8]) -> Option<DhcpPacket<'p>>
Constructs a new DhcpPacket. If the provided buffer is less than the minimum required packet size, this will return None.
sourcepub fn owned(packet: Vec<u8>) -> Option<DhcpPacket<'static>>
pub fn owned(packet: Vec<u8>) -> Option<DhcpPacket<'static>>
Constructs a new DhcpPacket. If the provided buffer is less than the minimum required packet size, this will return None. With this constructor the DhcpPacket will own its own data and the underlying buffer will be dropped when the DhcpPacket is.
sourcepub fn to_immutable<'p>(&'p self) -> DhcpPacket<'p>
pub fn to_immutable<'p>(&'p self) -> DhcpPacket<'p>
Maps from a DhcpPacket to a DhcpPacket
sourcepub fn consume_to_immutable(self) -> DhcpPacket<'a>
pub fn consume_to_immutable(self) -> DhcpPacket<'a>
Maps from a DhcpPacket to a DhcpPacket while consuming the source
sourcepub const fn minimum_packet_size() -> usize
pub const fn minimum_packet_size() -> usize
The minimum size (in bytes) a packet of this type can be. It’s based on the total size of the fixed-size fields.
sourcepub fn packet_size(_packet: &Dhcp) -> usize
pub fn packet_size(_packet: &Dhcp) -> usize
The size (in bytes) of a Dhcp instance when converted into a byte-array
sourcepub fn get_op(&self) -> DhcpOperation
pub fn get_op(&self) -> DhcpOperation
Get the value of the op field
sourcepub fn get_htype(&self) -> DhcpHardwareType
pub fn get_htype(&self) -> DhcpHardwareType
Get the value of the htype field
sourcepub fn get_xid(&self) -> u32be
pub fn get_xid(&self) -> u32be
Get the xid field. This field is always stored big-endian within the struct, but this accessor returns host order.
sourcepub fn get_secs(&self) -> u16be
pub fn get_secs(&self) -> u16be
Get the secs field. This field is always stored big-endian within the struct, but this accessor returns host order.
sourcepub fn get_flags(&self) -> u16be
pub fn get_flags(&self) -> u16be
Get the flags field. This field is always stored big-endian within the struct, but this accessor returns host order.
sourcepub fn get_ciaddr(&self) -> Ipv4Addr
pub fn get_ciaddr(&self) -> Ipv4Addr
Get the value of the ciaddr field
sourcepub fn get_yiaddr(&self) -> Ipv4Addr
pub fn get_yiaddr(&self) -> Ipv4Addr
Get the value of the yiaddr field
sourcepub fn get_siaddr(&self) -> Ipv4Addr
pub fn get_siaddr(&self) -> Ipv4Addr
Get the value of the siaddr field
sourcepub fn get_giaddr(&self) -> Ipv4Addr
pub fn get_giaddr(&self) -> Ipv4Addr
Get the value of the giaddr field
sourcepub fn get_chaddr(&self) -> MacAddr
pub fn get_chaddr(&self) -> MacAddr
Get the value of the chaddr field
sourcepub fn get_chaddr_pad_raw(&self) -> &[u8] ⓘ
pub fn get_chaddr_pad_raw(&self) -> &[u8] ⓘ
Get the raw &u8 value of the chaddr_pad field, without copying
sourcepub fn get_chaddr_pad(&self) -> Vec<u8>
pub fn get_chaddr_pad(&self) -> Vec<u8>
Get the value of the chaddr_pad field (copies contents)
sourcepub fn get_sname_raw(&self) -> &[u8] ⓘ
pub fn get_sname_raw(&self) -> &[u8] ⓘ
Get the raw &u8 value of the sname field, without copying
sourcepub fn get_file_raw(&self) -> &[u8] ⓘ
pub fn get_file_raw(&self) -> &[u8] ⓘ
Get the raw &u8 value of the file field, without copying
Trait Implementations§
source§impl<'p> Debug for DhcpPacket<'p>
impl<'p> Debug for DhcpPacket<'p>
source§impl<'p> FromPacket for DhcpPacket<'p>
impl<'p> FromPacket for DhcpPacket<'p>
source§impl<'a> Packet for DhcpPacket<'a>
impl<'a> Packet for DhcpPacket<'a>
source§impl<'a> PacketSize for DhcpPacket<'a>
impl<'a> PacketSize for DhcpPacket<'a>
source§fn packet_size(&self) -> usize
fn packet_size(&self) -> usize
source§impl<'p> PartialEq for DhcpPacket<'p>
impl<'p> PartialEq for DhcpPacket<'p>
source§fn eq(&self, other: &DhcpPacket<'p>) -> bool
fn eq(&self, other: &DhcpPacket<'p>) -> bool
self
and other
values to be equal, and is used
by ==
.