]> git.ipfire.org Git - thirdparty/haproxy.git/commit
MINOR: quic: Dynamic Retry implementation
authorFrédéric Lécaille <flecaille@haproxy.com>
Fri, 20 May 2022 14:37:36 +0000 (16:37 +0200)
committerFrédéric Lécaille <flecaille@haproxy.com>
Fri, 20 May 2022 15:11:13 +0000 (17:11 +0200)
commitdfd1301035cf8e473fe9dda9f91c83b457aac340
treeddfbc97b4018edd45374d74870a25ee376c0ff78
parent9286210aa85ec16190b913d27f733fa8df4bdf20
MINOR: quic: Dynamic Retry implementation

We rely on <conn_opening> stats counter and tune.quic.retry_threshold
setting to dynamically start sending Retry packets. We continue to send such packets
when "quic-force-retry" setting is set. The difference is when we receive tokens.
We check them regardless of this setting because the Retry could have been
dynamically started. We must also send Retry packets when we receive Initial
packets without token if the dynamic Retry threshold was reached but only for connection
which are not currently opening or in others words for Initial packets without
connection already instantiated. Indeed, we must not send Retry packets for all
Initial packets without token. For instance a client may have already sent an
Initial packet without receiving Retry packet because the Retry feature was not
started, then the Retry starts on exeeding the threshold value due to others
connections, then finally our client decide to send another Initial packet
(to ACK Initial CRYPTO data for instance). It does this without token. So, for
this already existing connection we must not send a Retry packet.
src/xprt_quic.c