mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2025-08-09 16:47:18 +02:00
The first version of our QUIC CUBIC implementation is confusing because relying on TCP CUBIC linux kernel implementation and with references to RFC 8312 which is obsoleted by RFC 9438 (August 2023) after our implementation. RFC 8312 is a little bit hard to understand. RFC 9438 arrived with much more clarifications. So, RFC 9438 is about "CUBIC for Fast Long-Distance Networks". Our implementation for QUIC is not very well documented. As it was difficult to reread this code, this patch adds only some comments at complicated locations and rename some macros, variables without logic modifications at all. So, the aim of this patch is to add first some comments and variables/macros renaming to avoid embedding too much code modifications in the same big patch. Some code modifications will come to adapt this CUBIC implementation to this new RFC 9438. Rename some macros: CUBIC_BETA -> CUBIC_BETA_SCALED CUBIC_C -> CUBIC_C_SCALED CUBIC_BETA_SCALE_SHIFT -> CUBIC_SCALE_FACTOR_SHIFT (this is the scaling factor which is used only for CUBIC_BETA_SCALED) CUBIC_DIFF_TIME_LIMIT -> CUBIC_TIME_LIMIT CUBIC_ONE_SCALED was added (scaled value of 1). These cubic struct members were renamed: ->tcp_wnd -> ->W_est ->origin_point -> ->W_target ->epoch_start -> ->t_epoch ->remaining_tcp_inc -> remaining_W_est_inc Local variables to quic_cubic_update() were renamed: t -> elapsed_time diff ->t delta -> W_cubic_t Add a grahpic curve about the CUBIC Increase function. Add big copied & pasted RFC 9438 extracts in relation with the 3 different increase function regions. Same thing for the fast convergence. Fix a typo about the reference to QUIC RFC 9002. Must be backported as far as 2.6 to ease any further modifications to come. |
||
---|---|---|
.github | ||
addons | ||
admin | ||
dev | ||
doc | ||
examples | ||
include | ||
reg-tests | ||
scripts | ||
src | ||
tests | ||
.cirrus.yml | ||
.gitattributes | ||
.gitignore | ||
.mailmap | ||
.travis.yml | ||
BRANCHES | ||
BSDmakefile | ||
CHANGELOG | ||
CONTRIBUTING | ||
INSTALL | ||
LICENSE | ||
MAINTAINERS | ||
Makefile | ||
README | ||
SUBVERS | ||
VERDATE | ||
VERSION |
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)