-
Notifications
You must be signed in to change notification settings - Fork 321
TCPBuffer
TCPBuffer — Click element; buffer TCP packets
TCPBuffer([SKIP])
Ports: 1 input, 1 output
Processing: push inputs, pull outputs
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.