Skip to content
Eddie Kohler edited this page Oct 17, 2017 · 2 revisions

TCPBuffer Element Documentation

NAME

TCPBuffer — Click element; buffer TCP packets

SYNOPSIS

TCPBuffer([SKIP])

Ports: 1 input, 1 output
Processing: push inputs, pull outputs

DESCRIPTION

provides in order TCP buffer. expects TCP packets on input.

packets arriving at the input push port are inserted into a linked list, sorted increasingly on the tcp sequence number. packets with a sequence number already on the list will be dropped.

packets are pulled out of TCPBuffer. pull will return packets in order. if SKIP is false, and there is a packet missing in the middle of a sequence, TCPBuffer will return 0 until that packet arrives. SKIP is false by default. setting SKIP to true allow puller to skip missing packets, but still get packets in order.

if a packet arrives at TCPBuffer, but it's sequence number is smaller than that of the first packet on the linked list, the packet is deleted. in this case, TCPBuffer assumes the packet is either a retransmit (if SKIP is false) or the puller is no longer interested in it (if SKIP is true).

the first packet arrives at TCPBuffer gets to set the initial sequence number. it is expected that this packet will be either a SYN or a SYN ACK packet.

TODO

 prevent packets with bad seq number range from corrupting queue;
 should reject packets with overlaping seq number range

Generated by click-elem2man from ../elements/local/tcpbuffer.hh:7 on 2017/10/17.

Clone this wiki locally