]> git.kaiwu.me - haproxy.git/commit
MEDIUM: quic: implement fe.stream.max-total
authorAmaury Denoyelle <adenoyelle@haproxy.com>
Tue, 14 Apr 2026 16:04:19 +0000 (18:04 +0200)
committerAmaury Denoyelle <adenoyelle@haproxy.com>
Wed, 15 Apr 2026 13:18:37 +0000 (15:18 +0200)
commit497cabd9e5717c350d64254d4530a3926e483f68
tree7296a22fb6fe4da57d4db87fef6125e718fcea9f
parenta7e1c8264824c33e330289bfcd1c9422a3f7ccd8
MEDIUM: quic: implement fe.stream.max-total

Implement a new setting to limit the total number of bidirectional
streams that the client may use on a single connection. By default, it
is set to 0 which means it is not limited at all.

If a positive value is configured, the client can only open a fixed
number of request streams per QUIC connection. Internally, this is
implemented in two steps :

* First, MAX_STREAMS_BIDI flow control advertizing will be reduced when
  approaching the limit before being completely turned off when reaching
  it. This guarantees that the client cannot exceed the limit without
  violating the flow control.

* Second, when attaching the latest stream with ID matching max-total
  setting, connection graceful shutdown is initiated. In HTTP/3, this
  results in a GOAWAY emission. This allows the remaining streams to be
  completed before the connection becomes completely idle.
doc/configuration.txt
include/haproxy/quic_tune-t.h
src/cfgparse-quic.c
src/h3.c
src/mux_quic.c
src/quic_tp.c