pub struct TcpRepr<'a> {
pub src_port: u16,
pub dst_port: u16,
pub control: Control,
pub seq_number: SeqNumber,
pub ack_number: Option<SeqNumber>,
pub window_len: u16,
pub window_scale: Option<u8>,
pub max_seg_size: Option<u16>,
pub sack_permitted: bool,
pub sack_ranges: [Option<(u32, u32)>; 3],
pub payload: &'a [u8],
}Expand description
A high-level representation of a Transmission Control Protocol packet.
Fields
src_port: u16dst_port: u16control: Controlseq_number: SeqNumberack_number: Option<SeqNumber>window_len: u16window_scale: Option<u8>max_seg_size: Option<u16>sack_permitted: boolsack_ranges: [Option<(u32, u32)>; 3]payload: &'a [u8]Implementations
sourceimpl<'a> Repr<'a>
impl<'a> Repr<'a>
sourcepub fn parse<T>(
packet: &Packet<&'a T>,
src_addr: &IpAddress,
dst_addr: &IpAddress,
checksum_caps: &ChecksumCapabilities
) -> Result<Repr<'a>> where
T: AsRef<[u8]> + ?Sized,
pub fn parse<T>(
packet: &Packet<&'a T>,
src_addr: &IpAddress,
dst_addr: &IpAddress,
checksum_caps: &ChecksumCapabilities
) -> Result<Repr<'a>> where
T: AsRef<[u8]> + ?Sized,
Parse a Transmission Control Protocol packet and return a high-level representation.
sourcepub fn header_len(&self) -> usize
pub fn header_len(&self) -> usize
Return the length of a header that will be emitted from this high-level representation.
This should be used for buffer space calculations. The TCP header length is a multiple of 4.
sourcepub fn buffer_len(&self) -> usize
pub fn buffer_len(&self) -> usize
Return the length of a packet that will be emitted from this high-level representation.
sourcepub fn emit<T>(
&self,
packet: &mut Packet<&mut T>,
src_addr: &IpAddress,
dst_addr: &IpAddress,
checksum_caps: &ChecksumCapabilities
) where
T: AsRef<[u8]> + AsMut<[u8]> + ?Sized,
pub fn emit<T>(
&self,
packet: &mut Packet<&mut T>,
src_addr: &IpAddress,
dst_addr: &IpAddress,
checksum_caps: &ChecksumCapabilities
) where
T: AsRef<[u8]> + AsMut<[u8]> + ?Sized,
Emit a high-level representation into a Transmission Control Protocol packet.
sourcepub fn segment_len(&self) -> usize
pub fn segment_len(&self) -> usize
Return the length of the segment, in terms of sequence space.
Trait Implementations
impl<'a> Copy for Repr<'a>
impl<'a> Eq for Repr<'a>
impl<'a> StructuralEq for Repr<'a>
impl<'a> StructuralPartialEq for Repr<'a>
Auto Trait Implementations
impl<'a> RefUnwindSafe for Repr<'a>
impl<'a> Send for Repr<'a>
impl<'a> Sync for Repr<'a>
impl<'a> Unpin for Repr<'a>
impl<'a> UnwindSafe for Repr<'a>
Blanket Implementations
impl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstablefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
impl<T> ToOwned for T where
T: Clone,
impl<T> ToOwned for T where
T: Clone,
type Owned = T
type Owned = T
The resulting type after obtaining ownership.
fn clone_into(&self, target: &mut T)
fn clone_into(&self, target: &mut T)
🔬 This is a nightly-only experimental API. (
toowned_clone_into)Uses borrowed data to replace owned data, usually by cloning. Read more