Re: [PATCH net-next v4 10/15] quic: add packet number space

Xin Long <[email protected]> Thu, 6 Nov 2025 11:40:49 -0500
Newsgroups dev.linux.lists.quic,dev.linux.lists.kernel-tls-handshake,org.kernel.vger.linux-cifs,org.kernel.vger.netdev
Message-ID <CADvbK_ft3jLQcQekNtUjs_Bot5LdfcyWHbrfAUp5XEAYncrs7w@mail.gmail.com>
On Tue, Nov 4, 2025 at 7:17 AM Paolo Abeni <[email protected]> wrote:
>
> On 10/29/25 3:35 PM, Xin Long wrote:
> > +struct quic_pnspace {
> > +     /* ECN counters indexed by direction (TX/RX) and ECN codepoint (ECT1, ECT0, CE) */
> > +     u64 ecn_count[QUIC_ECN_DIR_MAX][QUIC_ECN_MAX];
> > +     unsigned long *pn_map;  /* Bit map tracking received packet numbers for ACK generation */
> > +     u16 pn_map_len;         /* Length of the packet number bit map (in bits) */
> > +     u8  need_sack:1;        /* Flag indicating a SACK frame should be sent for this space */
> > +     u8  sack_path:1;        /* Path used for sending the SACK frame */
> > +
> > +     s64 last_max_pn_seen;   /* Highest packet number seen before pn_map advanced */
> > +     u32 last_max_pn_time;   /* Timestamp when last_max_pn_seen was received */
> > +     u32 max_time_limit;     /* Time threshold to trigger pn_map advancement on packet receipt */
> > +     s64 min_pn_seen;        /* Smallest packet number received in this space */
> > +     s64 max_pn_seen;        /* Largest packet number received in this space */
> > +     u32 max_pn_time;        /* Time at which max_pn_seen was received */
> > +     s64 base_pn;            /* Packet number corresponding to the start of the pn_map */
> > +     u32 time;               /* Cached current time, or time accept a socket (listen socket) */
>
> There are a few 32 bits holes above you could avoid reordering the fields.
I will switch base_pn and time.

For the hole after sack_path, It can't be avoided in this struct, I
will leave it there.

Thanks.

>
> Otherwise LGTM,
>
> Acked-by: Paolo Abeni <[email protected]>
>