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: u16
§dst_port: u16
§control: Control
§seq_number: SeqNumber
§ack_number: Option<SeqNumber>
§window_len: u16
§window_scale: Option<u8>
§max_seg_size: Option<u16>
§sack_permitted: bool
§sack_ranges: [Option<(u32, u32)>; 3]
§payload: &'a [u8]
Implementations§
source§impl<'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 const fn segment_len(&self) -> usize
pub const fn segment_len(&self) -> usize
Return the length of the segment, in terms of sequence space.