]> git.ipfire.org Git - thirdparty/haproxy.git/commit
MINOR: quic: Dynamic packet reordering threshold
authorFrederic Lecaille <flecaille@haproxy.com>
Tue, 13 Feb 2024 18:38:46 +0000 (19:38 +0100)
committerFrederic Lecaille <flecaille@haproxy.com>
Wed, 14 Feb 2024 10:32:29 +0000 (11:32 +0100)
commiteeeb81bb499677ccaf83858dbdde21c9f3db4341
treeff27860daa1387c92678aac8a8a5f2485a5110fc
parent2ed53ae4a02ba49f529addb9003b747c8ab281b1
MINOR: quic: Dynamic packet reordering threshold

Let's say that the largest packet number acknowledged by the peer is #10, when inspecting
the non already acknowledged packets to detect if they are lost or not, this is the
case a least if the difference between this largest packet number and and their
packet numbers are bigger or equal to the packet reordering threshold as defined
by the RFC 9002. This latter must not be less than QUIC_LOSS_PACKET_THRESHOLD(3).
Which such a value, packets #7 and oldest are detected as lost if non acknowledged,
contrary to packet number #8 or #9.

So, the packet loss detection is very sensitive to such a network characteristic
where non acknowledged packets are distant from each others by their packet number
differences.

Do not use this static value anymore for the packet reordering threshold which is used
as a criteria to detect packet loss. In place, make it depend on the difference
between the number of the last transmitted packet and the number of the oldest
one among the packet which are still in flight before being inspected to be
deemed as lost.

Add new tune.quic.reorder-ratio setting to apply a ratio in percent to this
dynamic packet reorder threshold.

Should be backported to 2.6.
doc/configuration.txt
include/haproxy/global-t.h
include/haproxy/quic_conn-t.h
src/cfgparse-quic.c
src/haproxy.c
src/quic_loss.c