pub enum IpRepr {
Ipv4(Ipv4Repr),
}
Expand description
An IP packet representation.
This enum abstracts the various versions of IP packets. It either contains an IPv4 or IPv6 concrete high-level representation.
Variants§
Implementations§
Source§impl Repr
impl Repr
Sourcepub fn new(
src_addr: Address,
dst_addr: Address,
next_header: Protocol,
payload_len: usize,
hop_limit: u8,
) -> Self
pub fn new( src_addr: Address, dst_addr: Address, next_header: Protocol, payload_len: usize, hop_limit: u8, ) -> Self
Create a new IpRepr, choosing the right IP version for the src/dst addrs.
§Panics
Panics if src_addr
and dst_addr
are different IP version.
Sourcepub const fn next_header(&self) -> Protocol
pub const fn next_header(&self) -> Protocol
Return the next header (protocol).
Sourcepub const fn payload_len(&self) -> usize
pub const fn payload_len(&self) -> usize
Return the payload length.
Sourcepub fn set_payload_len(&mut self, length: usize)
pub fn set_payload_len(&mut self, length: usize)
Set the payload length.
Sourcepub const fn header_len(&self) -> usize
pub const fn header_len(&self) -> usize
Return the length of a header that will be emitted from this high-level representation.
Sourcepub fn emit<T: AsRef<[u8]> + AsMut<[u8]>>(
&self,
buffer: T,
_checksum_caps: &ChecksumCapabilities,
)
pub fn emit<T: AsRef<[u8]> + AsMut<[u8]>>( &self, buffer: T, _checksum_caps: &ChecksumCapabilities, )
Emit this high-level representation into a buffer.
Sourcepub const fn buffer_len(&self) -> usize
pub const fn buffer_len(&self) -> usize
Return the total length of a packet that will be emitted from this high-level representation.
This is the same as repr.buffer_len() + repr.payload_len()
.
Trait Implementations§
impl Eq for Repr
impl StructuralPartialEq for Repr
Auto Trait Implementations§
impl Freeze for Repr
impl RefUnwindSafe for Repr
impl Send for Repr
impl Sync for Repr
impl Unpin for Repr
impl UnwindSafe for Repr
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, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
🔬This is a nightly-only experimental API. (
clone_to_uninit
)