]> git.ipfire.org Git - thirdparty/haproxy.git/commit
MINOR: quic: refactor MUX send notification
authorAmaury Denoyelle <adenoyelle@haproxy.com>
Wed, 25 Sep 2024 15:55:10 +0000 (17:55 +0200)
committerAmaury Denoyelle <adenoyelle@haproxy.com>
Tue, 1 Oct 2024 14:19:25 +0000 (16:19 +0200)
commit6ad99af0a9e857c6cd47a81866a10de83bfa0dea
treee09eae83e770bdeba853cf8320a758a7393776a2
parent4859d8e71d9ccefcb64a474871c9a537872af646
MINOR: quic: refactor MUX send notification

For STREAM emission, MUX QUIC generates one or several frames and emit
them via qc_send_mux(). Lower layer may use them as-is, or split them to
lower chunk to fit in a QUIC packet. It is then responsible to notify
the MUX to report the amount of data sent.

Previously, this was done via a direct call from quic_conn to MUX using
qcc_streams_sent_done(). Modify this to have a better isolation accross
layers. Define a send callback handled by the qc_stream_desc instance.
This allows the MUX to register each QCS instance individually to the
renamved qmux_ctrl_send() which replaces qcc_streams_sent_done().

At quic_conn layer, qc_stream_desc_send() can be used now. This is a
wrapper to qc_stream_desc layer to invoke the send callback if
registered.

This mechanism of qc_stream_desc callback should be extended later to
implement other notifications accross the QUIC stack.
include/haproxy/mux_quic.h
include/haproxy/quic_stream-t.h
include/haproxy/quic_stream.h
src/mux_quic.c
src/quic_stream.c
src/quic_tx.c