[PATCH 2 of 4] QUIC: removed explicit packet padding for certain frames

Sergey Kandaurov pluknet at nginx.com
Fri Jul 28 15:51:18 UTC 2023


> On 6 Jul 2023, at 17:57, Roman Arutyunyan <arut at nginx.com> wrote:
> 
> # HG changeset patch
> # User Roman Arutyunyan <arut at nginx.com>
> # Date 1688628647 -14400
> #      Thu Jul 06 11:30:47 2023 +0400
> # Node ID f98ff9b62d2bccac10b603b8183eca2ff0f4183e
> # Parent  df01e8582189126cd5defd8f4bb021fec1a1a35a
> 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().

Looks good.

We discussed this in the past, this code seems to be dead.

> 
> diff --git a/src/event/quic/ngx_event_quic_output.c b/src/event/quic/ngx_event_quic_output.c
> --- a/src/event/quic/ngx_event_quic_output.c
> +++ b/src/event/quic/ngx_event_quic_output.c
> @@ -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;
>         }
> _______________________________________________
> nginx-devel mailing list
> nginx-devel at nginx.org
> https://mailman.nginx.org/mailman/listinfo/nginx-devel

-- 
Sergey Kandaurov


More information about the nginx-devel mailing list