From 5cfb4edca75dca8bc5c3ce9c2b86aadca477a3e3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20L=C3=A9caille?= Date: Wed, 30 Mar 2022 14:44:49 +0200 Subject: [PATCH] BUG/MINOR: quic: Do not probe from an already probing packet number space During a handshake, after having prepared a probe upon a PTO expiration from process_timer(), we wake up the I/O handler to make it send probing packets. This handler first treat incoming packets which trigger a fast retransmission leading to send too much probing (duplicated) packets. In this cas we cancel the fast retranmission. --- src/xprt_quic.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/xprt_quic.c b/src/xprt_quic.c index dd9c3543a..c48d1c251 100644 --- a/src/xprt_quic.c +++ b/src/xprt_quic.c @@ -2320,6 +2320,15 @@ static void qc_prep_hdshk_fast_retrans(struct quic_conn *qc) struct quic_tx_packet *pkt; struct list *tmp = &itmp; + /* Do not probe from a packet number space if some probing + * was already asked. + */ + if (qel->pktns->tx.pto_probe) { + qel = hqel; + if (qel->pktns->tx.pto_probe) + return; + } + start: pkt = NULL; pkts = &qel->pktns->tx.pkts;