pub struct Icmpv6Packet<T: AsRef<[u8]>> { /* private fields */ }
Expand description
A read/write wrapper around an Internet Control Message Protocol version 6 packet buffer.
Implementations§
Source§impl<T: AsRef<[u8]>> Packet<T>
impl<T: AsRef<[u8]>> Packet<T>
Sourcepub const fn new_unchecked(buffer: T) -> Packet<T>
pub const fn new_unchecked(buffer: T) -> Packet<T>
Imbue a raw octet buffer with ICMPv6 packet structure.
Sourcepub fn new_checked(buffer: T) -> Result<Packet<T>>
pub fn new_checked(buffer: T) -> Result<Packet<T>>
Shorthand for a combination of new_unchecked and check_len.
Sourcepub fn check_len(&self) -> Result<()>
pub fn check_len(&self) -> Result<()>
Ensure that no accessor method will panic if called.
Returns Err(Error)
if the buffer is too short.
Sourcepub fn into_inner(self) -> T
pub fn into_inner(self) -> T
Consume the packet, returning the underlying buffer.
Sourcepub fn echo_ident(&self) -> u16
pub fn echo_ident(&self) -> u16
Return the identifier field (for echo request and reply packets).
Sourcepub fn echo_seq_no(&self) -> u16
pub fn echo_seq_no(&self) -> u16
Return the sequence number field (for echo request and reply packets).
Sourcepub fn pkt_too_big_mtu(&self) -> u32
pub fn pkt_too_big_mtu(&self) -> u32
Return the MTU field (for packet too big messages).
Sourcepub fn param_problem_ptr(&self) -> u32
pub fn param_problem_ptr(&self) -> u32
Return the pointer field (for parameter problem messages).
Sourcepub fn header_len(&self) -> usize
pub fn header_len(&self) -> usize
Return the header length. The result depends on the value of the message type field.
Source§impl<T: AsRef<[u8]> + AsMut<[u8]>> Packet<T>
impl<T: AsRef<[u8]> + AsMut<[u8]>> Packet<T>
Sourcepub fn set_msg_type(&mut self, value: Message)
pub fn set_msg_type(&mut self, value: Message)
Set the message type field.
Sourcepub fn set_msg_code(&mut self, value: u8)
pub fn set_msg_code(&mut self, value: u8)
Set the message code field.
Sourcepub fn clear_reserved(&mut self)
pub fn clear_reserved(&mut self)
Clear any reserved fields in the message header.
§Panics
This function panics if the message type has not been set. See set_msg_type.
pub fn set_checksum(&mut self, value: u16)
Sourcepub fn set_echo_ident(&mut self, value: u16)
pub fn set_echo_ident(&mut self, value: u16)
Set the identifier field (for echo request and reply packets).
§Panics
This function may panic if this packet is not an echo request or reply packet.
Sourcepub fn set_echo_seq_no(&mut self, value: u16)
pub fn set_echo_seq_no(&mut self, value: u16)
Set the sequence number field (for echo request and reply packets).
§Panics
This function may panic if this packet is not an echo request or reply packet.
Sourcepub fn set_pkt_too_big_mtu(&mut self, value: u32)
pub fn set_pkt_too_big_mtu(&mut self, value: u32)
Set the MTU field (for packet too big messages).
§Panics
This function may panic if this packet is not an packet too big packet.
Sourcepub fn set_param_problem_ptr(&mut self, value: u32)
pub fn set_param_problem_ptr(&mut self, value: u32)
Set the pointer field (for parameter problem messages).
§Panics
This function may panic if this packet is not a parameter problem message.
Sourcepub fn fill_checksum(&mut self, src_addr: &IpAddress, dst_addr: &IpAddress)
pub fn fill_checksum(&mut self, src_addr: &IpAddress, dst_addr: &IpAddress)
Compute and fill in the header checksum.
Sourcepub fn payload_mut(&mut self) -> &mut [u8]
pub fn payload_mut(&mut self) -> &mut [u8]
Return a mutable pointer to the type-specific data.
Source§impl<T: AsRef<[u8]>> Packet<T>
impl<T: AsRef<[u8]>> Packet<T>
Getters for the Multicast Listener Query message header. See RFC 3810 § 5.1.
Sourcepub fn max_resp_code(&self) -> u16
pub fn max_resp_code(&self) -> u16
Return the maximum response code field.
Sourcepub fn mcast_addr(&self) -> Ipv6Address
pub fn mcast_addr(&self) -> Ipv6Address
Return the address being queried.
Source§impl<T: AsRef<[u8]>> Packet<T>
impl<T: AsRef<[u8]>> Packet<T>
Getters for the Multicast Listener Report message header. See RFC 3810 § 5.2.
Sourcepub fn nr_mcast_addr_rcrds(&self) -> u16
pub fn nr_mcast_addr_rcrds(&self) -> u16
Return the number of Multicast Address Records.
Source§impl<T: AsRef<[u8]> + AsMut<[u8]>> Packet<T>
impl<T: AsRef<[u8]> + AsMut<[u8]>> Packet<T>
Setters for the Multicast Listener Query message header. See RFC 3810 § 5.1.
Sourcepub fn set_max_resp_code(&mut self, code: u16)
pub fn set_max_resp_code(&mut self, code: u16)
Set the maximum response code field.
Sourcepub fn set_mcast_addr(&mut self, addr: Ipv6Address)
pub fn set_mcast_addr(&mut self, addr: Ipv6Address)
Set the address being queried.
Sourcepub fn set_s_flag(&mut self)
pub fn set_s_flag(&mut self)
Set the Suppress Router-Side Processing flag.
Sourcepub fn clear_s_flag(&mut self)
pub fn clear_s_flag(&mut self)
Clear the Suppress Router-Side Processing flag.
Sourcepub fn set_num_srcs(&mut self, value: u16)
pub fn set_num_srcs(&mut self, value: u16)
Set number of sources.
Source§impl<T: AsRef<[u8]> + AsMut<[u8]>> Packet<T>
impl<T: AsRef<[u8]> + AsMut<[u8]>> Packet<T>
Setters for the Multicast Listener Report message header. See RFC 3810 § 5.2.
Sourcepub fn set_nr_mcast_addr_rcrds(&mut self, value: u16)
pub fn set_nr_mcast_addr_rcrds(&mut self, value: u16)
Set the number of Multicast Address Records.
Source§impl<T: AsRef<[u8]>> Packet<T>
impl<T: AsRef<[u8]>> Packet<T>
Getters for the Router Advertisement message header. See RFC 4861 § 4.2.
Sourcepub fn current_hop_limit(&self) -> u8
pub fn current_hop_limit(&self) -> u8
Return the current hop limit field.
Sourcepub fn router_flags(&self) -> RouterFlags
pub fn router_flags(&self) -> RouterFlags
Return the Router Advertisement flags.
Sourcepub fn router_lifetime(&self) -> Duration
pub fn router_lifetime(&self) -> Duration
Return the router lifetime field.
Sourcepub fn reachable_time(&self) -> Duration
pub fn reachable_time(&self) -> Duration
Return the reachable time field.
Sourcepub fn retrans_time(&self) -> Duration
pub fn retrans_time(&self) -> Duration
Return the retransmit time field.
Source§impl<T: AsRef<[u8]>> Packet<T>
impl<T: AsRef<[u8]>> Packet<T>
Common getters for the Neighbor Solicitation, Neighbor Advertisement, and Redirect message types.
Sourcepub fn target_addr(&self) -> Ipv6Address
pub fn target_addr(&self) -> Ipv6Address
Return the target address field.
Source§impl<T: AsRef<[u8]>> Packet<T>
impl<T: AsRef<[u8]>> Packet<T>
Getters for the Neighbor Solicitation message header. See RFC 4861 § 4.3.
Sourcepub fn neighbor_flags(&self) -> NeighborFlags
pub fn neighbor_flags(&self) -> NeighborFlags
Return the Neighbor Solicitation flags.
Source§impl<T: AsRef<[u8]>> Packet<T>
impl<T: AsRef<[u8]>> Packet<T>
Getters for the Redirect message header. See RFC 4861 § 4.5.
Sourcepub fn dest_addr(&self) -> Ipv6Address
pub fn dest_addr(&self) -> Ipv6Address
Return the destination address field.
Source§impl<T: AsRef<[u8]> + AsMut<[u8]>> Packet<T>
impl<T: AsRef<[u8]> + AsMut<[u8]>> Packet<T>
Setters for the Router Advertisement message header. See RFC 4861 § 4.2.
Sourcepub fn set_current_hop_limit(&mut self, value: u8)
pub fn set_current_hop_limit(&mut self, value: u8)
Set the current hop limit field.
Sourcepub fn set_router_flags(&mut self, flags: RouterFlags)
pub fn set_router_flags(&mut self, flags: RouterFlags)
Set the Router Advertisement flags.
Sourcepub fn set_router_lifetime(&mut self, value: Duration)
pub fn set_router_lifetime(&mut self, value: Duration)
Set the router lifetime field.
Sourcepub fn set_reachable_time(&mut self, value: Duration)
pub fn set_reachable_time(&mut self, value: Duration)
Set the reachable time field.
Sourcepub fn set_retrans_time(&mut self, value: Duration)
pub fn set_retrans_time(&mut self, value: Duration)
Set the retransmit time field.
Source§impl<T: AsRef<[u8]> + AsMut<[u8]>> Packet<T>
impl<T: AsRef<[u8]> + AsMut<[u8]>> Packet<T>
Common setters for the Neighbor Solicitation, Neighbor Advertisement, and Redirect message types.
Sourcepub fn set_target_addr(&mut self, value: Ipv6Address)
pub fn set_target_addr(&mut self, value: Ipv6Address)
Set the target address field.
Source§impl<T: AsRef<[u8]> + AsMut<[u8]>> Packet<T>
impl<T: AsRef<[u8]> + AsMut<[u8]>> Packet<T>
Setters for the Neighbor Solicitation message header. See RFC 4861 § 4.3.
Sourcepub fn set_neighbor_flags(&mut self, flags: NeighborFlags)
pub fn set_neighbor_flags(&mut self, flags: NeighborFlags)
Set the Neighbor Solicitation flags.
Source§impl<T: AsRef<[u8]> + AsMut<[u8]>> Packet<T>
impl<T: AsRef<[u8]> + AsMut<[u8]>> Packet<T>
Setters for the Redirect message header. See RFC 4861 § 4.5.
Sourcepub fn set_dest_addr(&mut self, value: Ipv6Address)
pub fn set_dest_addr(&mut self, value: Ipv6Address)
Set the destination address field.