From b20783287a59b700fa793fb010319190c20c563b Mon Sep 17 00:00:00 2001 From: nandsky Date: Sat, 19 Jul 2025 22:48:43 +0800 Subject: [PATCH] =?UTF-8?q?QUIC:=20prevent=20non=E2=80=91probing=20data=20?= =?UTF-8?q?stall=20from=20PATH=5FCHALLENGE=20blocked=20by=20full=20cwnd.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Previously PATH_CHALLENGE was not sent if the congestion window was full. Even with a minimum size of 0 and three retries, a full cwnd kept deferring path validation and slowed migration. Now PATH_CHALLENGE is sent even when cwnd is full, preventing probe starvation and reducing migration delay. --- src/event/quic/ngx_event_quic_migration.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/event/quic/ngx_event_quic_migration.c b/src/event/quic/ngx_event_quic_migration.c index fff1ff42a..f1e0f3610 100644 --- a/src/event/quic/ngx_event_quic_migration.c +++ b/src/event/quic/ngx_event_quic_migration.c @@ -581,6 +581,7 @@ ngx_quic_send_path_challenge(ngx_connection_t *c, ngx_quic_path_t *path) frame->level = NGX_QUIC_ENCRYPTION_APPLICATION; frame->type = NGX_QUIC_FT_PATH_CHALLENGE; + frame->ignore_congestion = 1; /* * RFC 9000, 9.4. Loss Detection and Congestion Control