Classical TCP implementations recover poorly from the case where the last segment(s) in flight are dropped. This results in no visible gap in sequence space, and so there is nothing to trigger fast retransmissions. The segments are instead retransmitted by the RTO mechanism. In order to attempt to trigger a fast retransmission in the case where such tail-loss is suspected, a “tail-drop probe” segment can be sent after a short timeout. This segment would either be the next segment due to be transmitted, or an opportunistic retransmission of the most recent in-flight segment.
Onload 201805-u1 and earlier had a tail-drop probe implementation, but it was not compiled in by default.
In Onload 201811 the tail-drop probe mechanism has been rewritten, and is now built by default. Its use is controlled at runtime by the following environment variable:
This now defaults to the value read from the kernel configuration at /proc/sys/net/ipv4/tcp_early_retrans, which defaults to on. It previously defaulted to 0 (off).
For more information, see EF_TAIL_DROP_PROBE.