mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2025-09-23 23:01:24 +02:00
MINOR: quic: Probe regardless of the congestion control
When probing, we must not take into an account the congestion control window. This was not completely correctly implemented: qc_build_frms() could fail because of this limit when comparing the head of the packet againts the congestion control window. With this patch we make it fail only when we are not probing.
This commit is contained in:
parent
0fa553d0c2
commit
f4e5a7c644
@ -4617,17 +4617,23 @@ static inline int qc_build_frms(struct list *l,
|
|||||||
{
|
{
|
||||||
int ret;
|
int ret;
|
||||||
struct quic_frame *cf, *cfbak;
|
struct quic_frame *cf, *cfbak;
|
||||||
size_t remain = quic_path_prep_data(qc->path);
|
|
||||||
|
|
||||||
ret = 0;
|
ret = 0;
|
||||||
if (*len > room || headlen > remain)
|
if (*len > room)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
/* If we are not probing we must take into an account the congestion
|
/* If we are not probing we must take into an account the congestion
|
||||||
* control window.
|
* control window.
|
||||||
*/
|
*/
|
||||||
if (!qel->pktns->tx.pto_probe)
|
if (!qel->pktns->tx.pto_probe) {
|
||||||
room = QUIC_MIN(room, quic_path_prep_data(qc->path) - headlen);
|
size_t remain = quic_path_prep_data(qc->path);
|
||||||
|
|
||||||
|
if (headlen > remain)
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
room = QUIC_MIN(room, remain - headlen);
|
||||||
|
}
|
||||||
|
|
||||||
TRACE_PROTO("************** frames build (headlen)",
|
TRACE_PROTO("************** frames build (headlen)",
|
||||||
QUIC_EV_CONN_BCFRMS, qc, &headlen);
|
QUIC_EV_CONN_BCFRMS, qc, &headlen);
|
||||||
list_for_each_entry_safe(cf, cfbak, &qel->pktns->tx.frms, list) {
|
list_for_each_entry_safe(cf, cfbak, &qel->pktns->tx.frms, list) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user