Skip to content
Tom Barbette edited this page Jul 28, 2023 · 2 revisions

TCPReorder Element Documentation

NAME

TCPReorder — Click element; Reorders TCP packets. Compatible with the flow subsystem.

SYNOPSIS

TCPReorder(FLOWDIRECTION [, MERGESORT])

Ports: 1 input, 1-2 outputs
Processing: push

DESCRIPTION

reorders TCP packets. This element is deprecated, the functionality has been merged in TCPIn. Still, it is interesting to see how to make a standalone TCP reorderer that will not do much more than that.

Its default is that as it does not speak with the other side of the connection, a RST is not propagated to the other side. Meaning that if a connection is reused after a RST, the other side will see packets out of order. Proper implementation needs a "dual" state, something only accessible after TCPIn

This element reorders TCP packets before sending them on its first output. It can be used outside of the stack of the middlebox. The second output is optional and is used to push retransmitted packets. If the second output is not used, retransmitted packets are dropped.

  • FLOWDIRECTION — ID of the path for the connection (0 or 1). The return path must have the other ID. Thus, each direction of a TCP connection has a different ID.

  • MERGESORT — Only used with batching. Adds each packet of the batch at the beginning of the list and reorders the list using merge sort instead of adding each packet of the batch directly to the right position.

    Complexity to process a batch with this option: O((n + k) * log (n + k)) Complexity to process a batch without this option: O(k * (n + k))

    Where k is the number of packets in the batch and n is the number of packets in the waiting list

    Default value: true.

SEE ALSO

TCPIn, TCPOut, TCPRetransmitter

Generated by click-elem2man from ../elements/flow/tcpreorder.hh:55 on 2023/07/28.

Clone this wiki locally