diff options
author | Hugo Landau <hlandau@openssl.org> | 2023-07-25 11:32:24 +0100 |
---|---|---|
committer | Matt Caswell <matt@openssl.org> | 2023-08-08 14:33:42 +0100 |
commit | 371c29582aa683ab10d58ec448aef1bded208076 (patch) | |
tree | 92dcf1db469d3c9378cf000d84af720ec399ed82 /include | |
parent | 7eb330ff7aa5580d7d97f2d183606c2d6bbbb449 (diff) |
QUIC CFQ: Unreliable transmission for PATH_RESPONSE
Reviewed-by: Tomas Mraz <tomas@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/21547)
Diffstat (limited to 'include')
-rw-r--r-- | include/internal/quic_cfq.h | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/include/internal/quic_cfq.h b/include/internal/quic_cfq.h index 6ea69c22a1..2256f2f0a3 100644 --- a/include/internal/quic_cfq.h +++ b/include/internal/quic_cfq.h @@ -38,6 +38,9 @@ struct quic_cfq_item_st { # define QUIC_CFQ_STATE_NEW 0 # define QUIC_CFQ_STATE_TX 1 +/* If set, do not retransmit on loss */ +#define QUIC_CFQ_ITEM_FLAG_UNRELIABLE (1U << 0) + /* Returns the frame type of a CFQ item. */ uint64_t ossl_quic_cfq_item_get_frame_type(const QUIC_CFQ_ITEM *item); @@ -53,6 +56,9 @@ int ossl_quic_cfq_item_get_state(const QUIC_CFQ_ITEM *item); /* Returns the PN space for the CFQ item. */ uint32_t ossl_quic_cfq_item_get_pn_space(const QUIC_CFQ_ITEM *item); +/* Returns 1 if this is an unreliable frame. */ +int ossl_quic_cfq_item_is_unreliable(const QUIC_CFQ_ITEM *item); + /* * QUIC Control Frame Queue * ======================== @@ -88,6 +94,8 @@ void ossl_quic_cfq_free(QUIC_CFQ *cfq); * The frame type is duplicated as the frame_type argument here, even though it * is also encoded into the buffer. This allows the caller to determine the * frame type if desired without having to decode the frame. + * + * flags is zero or more QUIC_CFQ_ITEM_FLAG values. */ typedef void (cfq_free_cb)(unsigned char *buf, size_t buf_len, void *arg); @@ -95,6 +103,7 @@ QUIC_CFQ_ITEM *ossl_quic_cfq_add_frame(QUIC_CFQ *cfq, uint32_t priority, uint32_t pn_space, uint64_t frame_type, + uint32_t flags, const unsigned char *encoded, size_t encoded_len, cfq_free_cb *free_cb, |