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 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>
§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 mss_header_len(&self) -> usize
pub fn mss_header_len(&self) -> usize
Return the length of the header for the TCP protocol.
Per RFC 6691, this should be used for MSS calculations. It may be smaller than the buffer space required to accomodate this packet’s data.
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.