]> git.ipfire.org Git - thirdparty/haproxy.git/commit
MINOR: quic: store streambuf in a streamdesc tree
authorAmaury Denoyelle <adenoyelle@haproxy.com>
Tue, 1 Oct 2024 09:27:37 +0000 (11:27 +0200)
committerAmaury Denoyelle <adenoyelle@haproxy.com>
Tue, 1 Oct 2024 14:19:41 +0000 (16:19 +0200)
commit943e48dadd39ad09b95da79af9580c0162178efc
tree3fac28f0db3e943adb5b1b38d7bc77c578e6135a
parentf4a83fbb14bdd14ed94752a2280a2f40c1b690d2
MINOR: quic: store streambuf in a streamdesc tree

qc_stream_desc layer is used by QUIC MUX to store emitted STREAM data
until their acknowledgement. Each stream with Tx capability can allocate
its own qc_stream_desc. In turn, each stream desc can have one or
multiple data buffers. This is useful when a MUX stream releases a
buffer and allocate a new one, to preserve bandwith without waiting to
receive all acknowledgement of the previous buffer.

Each buffer is encapsulated in a qc_stream_buf structure. Previously, it
was stored as a list into qc_stream_desc. Change this storage to use a
tree instead. Each buffer is indexed by their offset.

This commit does not introduce functional changes. However, this
rearchitecture will be necessary for future commit to extend ACK
management which require fetching individual buffer instance, not just
the first or last element of a streamdesc, by their offset.
include/haproxy/quic_stream-t.h
include/haproxy/quic_stream.h
src/mux_quic.c
src/quic_stream.c