]> git.ipfire.org Git - thirdparty/haproxy.git/commit
MINOR: quic: duplicate GSO unsupp status from listener to conn
authorAmaury Denoyelle <adenoyelle@haproxy.com>
Wed, 6 Aug 2025 14:34:35 +0000 (16:34 +0200)
committerAmaury Denoyelle <adenoyelle@haproxy.com>
Thu, 7 Aug 2025 14:36:26 +0000 (16:36 +0200)
commite064e5d46171d32097a84b8f84ccc510a5c211db
treeb3b29c4ce5c4b1bd698e33b3da5313c1d1ebd634
parentd76ee72d03b088ad4616ff8bbee439798d5f18d6
MINOR: quic: duplicate GSO unsupp status from listener to conn

QUIC emission can use GSO to emit multiple datagrams with a single
syscall invokation. However, this feature relies on several kernel
parameters which are checked on haproxy process startup.

Even if these checks report no issue, GSO may still be unable due to the
underlying network adapter underneath. Thus, if a EIO occured on
sendmsg() with GSO, listener is flagged to mark GSO as unsupported. This
allows every other QUIC connections to share the status and avoid using
GSO when using this listener.

Previously, listener flag was checked for every QUIC emission. This was
done using an atomic operation to prevent races. Improve this by
duplicating GSO unsupported status as the connection level. This is done
on qc_new_conn() and also on thread rebinding if a new listener instance
is used.

The main benefit from this patch is to reduce the dependency between
quic_conn and listener instances.
include/haproxy/quic_conn-t.h
src/quic_conn.c
src/quic_tx.c