aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorSergey Kandaurov <pluknet@nginx.com>2023-05-09 19:42:40 +0400
committerSergey Kandaurov <pluknet@nginx.com>2023-05-09 19:42:40 +0400
commit894679804bc6b4d118ea8bec4ae79c919ef4b9c0 (patch)
tree87bb2f197c112b211cb8e0e0362023d6c856ddb9 /src
parentf706744165bc5f5b597ec84dc55effcdc21312f9 (diff)
downloadnginx-894679804bc6b4d118ea8bec4ae79c919ef4b9c0.tar.gz
nginx-894679804bc6b4d118ea8bec4ae79c919ef4b9c0.zip
QUIC: lower bound path validation PTO.
According to RFC 9000, 8.2.4. Failed Path Validation, the following value is recommended as a validation timeout: A value of three times the larger of the current PTO or the PTO for the new path (using kInitialRtt, as defined in [QUIC-RECOVERY]) is RECOMMENDED. The change adds PTO of the new path to the equation as the lower bound.
Diffstat (limited to 'src')
-rw-r--r--src/event/quic/ngx_event_quic_migration.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/event/quic/ngx_event_quic_migration.c b/src/event/quic/ngx_event_quic_migration.c
index 4b337ee6c..735245cbf 100644
--- a/src/event/quic/ngx_event_quic_migration.c
+++ b/src/event/quic/ngx_event_quic_migration.c
@@ -511,7 +511,7 @@ ngx_quic_validate_path(ngx_connection_t *c, ngx_quic_path_t *path)
}
ctx = ngx_quic_get_send_ctx(qc, ssl_encryption_application);
- pto = ngx_quic_pto(c, ctx);
+ pto = ngx_max(ngx_quic_pto(c, ctx), 1000);
path->expires = ngx_current_msec + pto;
@@ -605,7 +605,7 @@ ngx_quic_path_validation_handler(ngx_event_t *ev)
}
if (++path->tries < NGX_QUIC_PATH_RETRIES) {
- pto = ngx_quic_pto(c, ctx) << path->tries;
+ pto = ngx_max(ngx_quic_pto(c, ctx), 1000) << path->tries;
path->expires = ngx_current_msec + pto;