From fd6c1476a09b4766ce6c435d50ad16acebcd46df Mon Sep 17 00:00:00 2001 From: Hugo Landau Date: Mon, 3 Jul 2023 15:45:25 +0100 Subject: QUIC ACKM: Clean up max_ack_delay tracking and separate TX and RX values Reviewed-by: Tomas Mraz Reviewed-by: Paul Dale (Merged from https://github.com/openssl/openssl/pull/21349) --- include/internal/quic_ackm.h | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'include/internal') diff --git a/include/internal/quic_ackm.h b/include/internal/quic_ackm.h index ca0c1aab1f..96673303bd 100644 --- a/include/internal/quic_ackm.h +++ b/include/internal/quic_ackm.h @@ -38,6 +38,23 @@ void ossl_ackm_set_ack_deadline_callback(OSSL_ACKM *ackm, void *arg), void *arg); +/* + * Configures the RX-side maximum ACK delay. This is the maximum amount of time + * the peer is allowed to delay sending an ACK frame after receiving an + * ACK-eliciting packet. The peer communicates this value via a transport + * parameter and it must be provided to the ACKM. + */ +void ossl_ackm_set_rx_max_ack_delay(OSSL_ACKM *ackm, OSSL_TIME rx_max_ack_delay); + +/* + * Configures the TX-side maximum ACK delay. This is the maximum amount of time + * we are allowed to delay sending an ACK frame after receiving an ACK-eliciting + * packet. Note that this cannot be changed after a connection is established as + * it must be accurately reported in the transport parameters we send to our + * peer. + */ +void ossl_ackm_set_tx_max_ack_delay(OSSL_ACKM *ackm, OSSL_TIME tx_max_ack_delay); + typedef struct ossl_ackm_tx_pkt_st OSSL_ACKM_TX_PKT; struct ossl_ackm_tx_pkt_st { /* The packet number of the transmitted packet. */ -- cgit v1.2.3