-
Notifications
You must be signed in to change notification settings - Fork 81
TCPReorder
TCPReorder — Click element; Reorders TCP packets. Compatible with the flow subsystem.
TCPReorder(FLOWDIRECTION [, MERGESORT])
Ports: 1 input, 1-2 outputs
Processing: push
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.
TCPIn, TCPOut, TCPRetransmitter
Generated by click-elem2man from ../elements/flow/tcpreorder.hh:55
on 2023/07/28.