[nginx] QUIC: removed explicit packet padding for certain frames.

Roman Arutyunyan arut at nginx.com
Mon Aug 14 14:01:22 UTC 2023


details:   https://hg.nginx.org/nginx/rev/93aee926d27f
branches:  
changeset: 9145:93aee926d27f
user:      Roman Arutyunyan <arut at nginx.com>
date:      Thu Jul 06 11:30:47 2023 +0400
description:
QUIC: removed explicit packet padding for certain frames.

The frames for which the padding is removed are PATH_CHALLENGE and
PATH_RESPONSE, which are sent separately by ngx_quic_frame_sendto().

diffstat:

 src/event/quic/ngx_event_quic_output.c |  30 +-----------------------------
 1 files changed, 1 insertions(+), 29 deletions(-)

diffs (54 lines):

diff -r bba136612fe4 -r 93aee926d27f src/event/quic/ngx_event_quic_output.c
--- a/src/event/quic/ngx_event_quic_output.c	Thu Jul 06 17:49:01 2023 +0400
+++ b/src/event/quic/ngx_event_quic_output.c	Thu Jul 06 11:30:47 2023 +0400
@@ -525,7 +525,7 @@ ngx_quic_output_packet(ngx_connection_t 
     ssize_t                 flen;
     ngx_str_t               res;
     ngx_int_t               rc;
-    ngx_uint_t              nframes, expand;
+    ngx_uint_t              nframes;
     ngx_msec_t              now;
     ngx_queue_t            *q;
     ngx_quic_frame_t       *f;
@@ -560,7 +560,6 @@ ngx_quic_output_packet(ngx_connection_t 
     nframes = 0;
     p = src;
     len = 0;
-    expand = 0;
 
     for (q = ngx_queue_head(&ctx->frames);
          q != ngx_queue_sentinel(&ctx->frames);
@@ -568,33 +567,6 @@ ngx_quic_output_packet(ngx_connection_t 
     {
         f = ngx_queue_data(q, ngx_quic_frame_t, queue);
 
-        if (!expand && (f->type == NGX_QUIC_FT_PATH_RESPONSE
-                        || f->type == NGX_QUIC_FT_PATH_CHALLENGE))
-        {
-            /*
-             * RFC 9000, 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...
-             *
-             * (same applies to PATH_RESPONSE frames)
-             */
-
-            if (max < 1200) {
-                /* expanded packet will not fit */
-                break;
-            }
-
-            if (min < 1200) {
-                min = 1200;
-
-                min_payload = ngx_quic_payload_size(&pkt, min);
-            }
-
-            expand = 1;
-        }
-
         if (len >= max_payload) {
             break;
         }


More information about the nginx-devel mailing list