mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2025-11-24 04:11:02 +01:00
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.