]> git.ipfire.org Git - thirdparty/haproxy.git/commit
MEDIUM: mux-quic: increase flow-control on each bufsize
authorAmaury Denoyelle <adenoyelle@haproxy.com>
Wed, 19 Mar 2025 15:09:08 +0000 (16:09 +0100)
committerAmaury Denoyelle <adenoyelle@haproxy.com>
Wed, 30 Apr 2025 14:08:47 +0000 (16:08 +0200)
commit14a3fb679ff50188f83411b6fdc739bb8c77c220
tree085f9bb02fa8a7ed19946d38f0c44bfbed73e38f
parent2ccfebcebff254c95b6a70e987f3d960b38499c1
MEDIUM: mux-quic: increase flow-control on each bufsize

Recently, QCS Rx allocation buffer method has been improved. It is now
possible to allocate multiple buffers per QCS instances, which was
necessary to improve HTTP/3 POST throughput.

However, a limitation remained related to the emission of
MAX_STREAM_DATA. These frames are only emitted once at least half of the
receive capacity has been consumed by its QCS instance. This may be too
restrictive when a client need to upload a large payload.

Improve this by adjusting MAX_STREAM_DATA allocation. If QCS capacity is
still limited to 1 or 2 buffers max, the old calcul is still used. This
is necessary when user has limited upload throughput via their
configuration. If QCS capacity is more than 2 buffers, a new frame is
emitted if at least a buffer was consumed.

This patch has reduced number of STREAM_DATA_BLOCKED frames received in
POST tests with some specific clients.
include/haproxy/mux_quic-t.h
src/mux_quic.c