]> git.ipfire.org Git - thirdparty/haproxy.git/commit
MINOR: quic: implement stream descriptor for transport layer
authorAmaury Denoyelle <adenoyelle@haproxy.com>
Tue, 29 Mar 2022 12:49:35 +0000 (14:49 +0200)
committerAmaury Denoyelle <adenoyelle@haproxy.com>
Wed, 30 Mar 2022 14:16:07 +0000 (16:16 +0200)
commit5c3859c50948a19d3b3a375974c74e7e73652f94
tree79fdbcdb9473bd83a82e0b43960a70a2f1163f9e
parent95e50fbeff1d08d63806f8b3b182ce43cec48abc
MINOR: quic: implement stream descriptor for transport layer

Currently, the mux qcs streams manage the Tx buffering, even after
sending it to the transport layer. Buffers are emptied when
acknowledgement are treated by the transport layer. This complicates the
MUX liberation and we may loose some data after the MUX free.

Change this paradigm by moving the buffering on the transport layer. For
this goal, a new type is implemented as low-level stream at the
transport layer, as a counterpart of qcs mux instances. This structure
is called qc_stream_desc. This will allow to free the qcs/qcc instances
without having to wait for acknowledge reception.

For the moment, the quic-conn is responsible to store the qc_stream_desc
in a new tree named streams_by_id. This will sligthly change in the next
commits to remove the qcs node which has a similar purpose :
qc_stream_desc instances will be shared between the qcc MUX and the
quic-conn.

This patch only introduces the new type definition and the function to
manipulate it. The following commit will bring the rearchitecture in the
qcs structure.
include/haproxy/xprt_quic-t.h
include/haproxy/xprt_quic.h
src/xprt_quic.c