mirror of
https://github.com/haproxy/haproxy.git
synced 2026-05-21 01:15:17 -04:00
|
Some checks are pending
Contrib / admin/halog/ (push) Waiting to run
Contrib / dev/flags/ (push) Waiting to run
Contrib / dev/haring/ (push) Waiting to run
Contrib / dev/hpack/ (push) Waiting to run
Contrib / dev/poll/ (push) Waiting to run
VTest / Generate Build Matrix (push) Waiting to run
VTest / (push) Blocked by required conditions
Windows / Windows, gcc, all features (push) Waiting to run
qcc_release_remote_stream() is called each time a remote stream is closed. Flow control accounting is updated and when necessary, a MAX_STREAMS_BIDI frame is prepared to allow the peer to initiate new streams. This patch extends stream elasticity features with the QUIC bidirection stream flow control mechanism. The announced value can now be possibly reduced depending on conn_calc_max_streams(). The first step is to decrement closed streams from the global committed extra streams total. This must be performed conn_calc_max_streams() to ensure the calculation will be valid. Then, there is two cases depending on conn_calc_max_streams() result. If the value is less than the peer still remaining stream window, nothing more is performed. If the opposite case, flow control must be increased and a MAX_STREAMS_BIDI frame is prepared, with the value adjusted to not exceed the stream elasticity limit. Global extra streams total is then finally incremented. This calcul also ensures that when all streams are closed, global extra streams accounting operations are decremented by 1, as a connection always has access to one stream which is excluded from the global total. Note that if stream elasticity is not active, flow control increases principle is unchanged and remains statically performed. This patch is labelled as major as it complexifies bidirectional stream flow control mechanisme. This is a sensitive operation as there is a risk of connection freeze if flow control updates are inadvertently skipped. |
||
|---|---|---|
| .. | ||
| design-thoughts | ||
| internals | ||
| lua-api | ||
| 51Degrees-device-detection.txt | ||
| acl.fig | ||
| coding-style.txt | ||
| configuration.txt | ||
| cookie-options.txt | ||
| DeviceAtlas-device-detection.txt | ||
| gpl.txt | ||
| haproxy.1 | ||
| HAProxyCommunityEdition_60px.png | ||
| haterm.txt | ||
| intro.txt | ||
| lgpl.txt | ||
| linux-syn-cookies.txt | ||
| lua.txt | ||
| management.txt | ||
| netscaler-client-ip-insertion-protocol.txt | ||
| network-namespaces.txt | ||
| peers-v2.0.txt | ||
| peers.txt | ||
| proxy-protocol.txt | ||
| queuing.fig | ||
| regression-testing.txt | ||
| seamless_reload.txt | ||
| SOCKS4.protocol.txt | ||
| SPOE.txt | ||
| WURFL-device-detection.txt | ||