mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2026-02-08 10:51:06 +01:00
Before this patch, QUIC protocol used a custom add_listener callback. This was because a quic_conn instance was allocated before accept. Its thread affinity was fixed and could not be changed after. The thread was derived itself from the CID selected by the client which prevent an even repartition of QUIC connections on multiple threads. A series of patches was introduced with a lot of changes. The most important ones : * removal of affinity between an encoded CID and a thread * possibility to rebind a quic_conn on a new thread Thanks to this, it's possible to suppress the custom add_listener callback. Accept is conducted for QUIC protocol as with the others. A less loaded thread is selected on listener_accept() and the connection stack is bind on it. This operation implies that quic_conn instance is moved to the new thread using the set_affinity QUIC protocol callback. To reactivate quic_conn instance after thread rebind, qc_finalize_affinity_rebind() is called after accept on the new thread by qc_xprt_start() through accept_queue_process() / session_accept_fd(). This should be backported up to 2.7 after a period of observation.
The HAProxy documentation has been split into a number of different files for ease of use. Please refer to the following files depending on what you're looking for : - INSTALL for instructions on how to build and install HAProxy - BRANCHES to understand the project's life cycle and what version to use - LICENSE for the project's license - CONTRIBUTING for the process to follow to submit contributions The more detailed documentation is located into the doc/ directory : - doc/intro.txt for a quick introduction on HAProxy - doc/configuration.txt for the configuration's reference manual - doc/lua.txt for the Lua's reference manual - doc/SPOE.txt for how to use the SPOE engine - doc/network-namespaces.txt for how to use network namespaces under Linux - doc/management.txt for the management guide - doc/regression-testing.txt for how to use the regression testing suite - doc/peers.txt for the peers protocol reference - doc/coding-style.txt for how to adopt HAProxy's coding style - doc/internals for developer-specific documentation (not all up to date)
Description
Languages
C
98.1%
Shell
0.9%
Makefile
0.5%
Lua
0.2%
Python
0.1%