diff options
author | Sergey Kandaurov <pluknet@nginx.com> | 2023-05-09 19:42:40 +0400 |
---|---|---|
committer | Sergey Kandaurov <pluknet@nginx.com> | 2023-05-09 19:42:40 +0400 |
commit | 894679804bc6b4d118ea8bec4ae79c919ef4b9c0 (patch) | |
tree | 87bb2f197c112b211cb8e0e0362023d6c856ddb9 /src | |
parent | f706744165bc5f5b597ec84dc55effcdc21312f9 (diff) | |
download | nginx-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.c | 4 |
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; |