From c7a69e2aa55672031d5e3751a5ff06266076f312 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20L=C3=A9caille?= Date: Thu, 10 Mar 2022 15:05:32 +0100 Subject: [PATCH] MINOR: quic: Add a function to compute the current PTO There was not such a function at this time. This is needed to implement the idle timeout feature. --- include/haproxy/quic_loss.h | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/include/haproxy/quic_loss.h b/include/haproxy/quic_loss.h index 6e4aebb930..1c0bfc7a75 100644 --- a/include/haproxy/quic_loss.h +++ b/include/haproxy/quic_loss.h @@ -119,6 +119,15 @@ static inline struct quic_pktns *quic_loss_pktns(struct quic_conn *qc) return pktns; } +/* Return the PTO associated to packet number space for connection */ +static inline unsigned int quic_pto(struct quic_conn *qc) +{ + struct quic_loss *ql = &qc->path->loss; + + return (ql->srtt >> 3) + QUIC_MAX(ql->rtt_var, QUIC_TIMER_GRANULARITY) + + HA_ATOMIC_LOAD(&qc->state) >= QUIC_HS_ST_COMPLETE ? qc->max_ack_delay : 0; +} + /* Returns for QUIC connection the first packet number space to * arm the PTO for if any or a packet number space with TICK_ETERNITY * as PTO value if not.