]> git.ipfire.org Git - thirdparty/haproxy.git/commit
MINOR: mux-quic: limit emitted MSD frames count per qcs
authorAmaury Denoyelle <adenoyelle@haproxy.com>
Mon, 28 Apr 2025 13:36:44 +0000 (15:36 +0200)
committerAmaury Denoyelle <adenoyelle@haproxy.com>
Wed, 30 Apr 2025 14:08:47 +0000 (16:08 +0200)
commitdf50d3e39f03828198938cc618fad839d35fb908
tree55decd7834f8cfad0694c7da53b0c539f1f06b9f
parent14a3fb679ff50188f83411b6fdc739bb8c77c220
MINOR: mux-quic: limit emitted MSD frames count per qcs

The previous commit has implemented a new calcul method for
MAX_STREAM_DATA frame emission. Now, a frame may be emitted as soon as a
buffer was consumed by a QCS instance.

This will probably increase the number of MAX_STREAM_DATA frame
emission. It may even cause a series of frame emitted for the same
stream with increasing values under high load, which is completely
unnecessary.

To improve this, limit the number of MAX_STREAM_DATA frames built to one
per QCS instance. This is implemented by storing a reference to this
frame in QCS structure via a new member <tx.msd_frm>.

Note that to properly reset QCS msd_frm member, emission of flow-control
frames have been changed. Now, each frame is emitted individually. On
one side, it is better as it prevent to emit frames related to different
streams in a single datagram, which is not desirable in case of packet
loss. However, this can also increase sendto() syscall invocation.
include/haproxy/mux_quic-t.h
src/mux_quic.c