]> git.kaiwu.me - nginx.git/commit
QUIC: avoid partial expansion of PATH_CHALLENGE/PATH_RESPONSE.
authorRoman Arutyunyan <arut@nginx.com>
Wed, 29 Nov 2023 14:13:25 +0000 (18:13 +0400)
committerRoman Arutyunyan <arut@nginx.com>
Wed, 29 Nov 2023 14:13:25 +0000 (18:13 +0400)
commit0efe8db1d0c331bad799dcaa0b2a24e739f26c98
tree2979681310eed03447b9c47ebe48a4a176f43113
parentd8fa024ef1527a9aefbb52bedd70fa4449203488
QUIC: avoid partial expansion of PATH_CHALLENGE/PATH_RESPONSE.

By default packets with these frames are expanded to 1200 bytes.  Previously,
if anti-amplification limit did not allow this expansion, it was limited to
whatever size was allowed.  However RFC 9000 clearly states no partial
expansion should happen in both cases.

    Section 8.2.1.  Initiating Path Validation:

    An endpoint MUST expand datagrams that contain a PATH_CHALLENGE frame
    to at least the smallest allowed maximum datagram size of 1200 bytes,
    unless the anti-amplification limit for the path does not permit
    sending a datagram of this size.

    Section 8.2.2. Path Validation Responses:

    An endpoint MUST expand datagrams that contain a PATH_RESPONSE frame
    to at least the smallest allowed maximum datagram size of 1200 bytes.
    ...
    However, an endpoint MUST NOT expand the datagram containing the
    PATH_RESPONSE if the resulting data exceeds the anti-amplification limit.
src/event/quic/ngx_event_quic_connection.h
src/event/quic/ngx_event_quic_migration.c
src/event/quic/ngx_event_quic_output.c
src/event/quic/ngx_event_quic_output.h