Re: [PATCH net-next v6 07/16] quic: add connection id management

Xin Long <[email protected]>
Newsgroups dev.linux.lists.kernel-tls-handshake,dev.linux.lists.quic,org.kernel.vger.linux-cifs,org.kernel.vger.netdev
Message-ID <CADvbK_dKYZ6_NyxcsweKRPkFEq046+1RENA7vH9hBhG-6xNxxw@mail.gmail.com>
On Thu, Jan 8, 2026 at 10:52 AM Paolo Abeni <[email protected]> wrote:
>
> On 1/5/26 3:04 PM, Xin Long wrote:
> > +/* Remove connection IDs from the set with sequence numbers less than or equal to a number. */
> > +void quic_conn_id_remove(struct quic_conn_id_set *id_set, u32 number)
> > +{
> > +     struct quic_common_conn_id *common, *tmp;
> > +     struct list_head *list;
> > +
> > +     list = &id_set->head;
> > +     list_for_each_entry_safe(common, tmp, list, list) {
> > +             if (common->number <= number) {
> > +                     if (id_set->active == common)
> > +                             id_set->active = tmp;
> > +                     quic_conn_id_del(common);
> > +                     id_set->count--;
> > +             }
>
> Since the list is sorted by number you could break the loop as soon as
> common->number > number.
>
> > +     }
> > +}
> > +
> > +struct quic_conn_id *quic_conn_id_find(struct quic_conn_id_set *id_set, u32 number)
> > +{
> > +     struct quic_common_conn_id *common;
> > +
> > +     list_for_each_entry(common, &id_set->head, list)
> > +             if (common->number == number)
> > +                     return &common->id;
>
> Same here, you can break the loop when common->number > number
>
Yup, this will save some rounds.

>
> > +static inline u32 quic_conn_id_first_number(struct quic_conn_id_set *id_set)
> > +{
> > +     struct quic_common_conn_id *common;
> > +
> > +     common = list_first_entry(&id_set->head, struct quic_common_conn_id, list);
>
> id_set can be empty at creation time. The above assumes it contains at
> least an element. Does the caller need to check for such condition?
> Possibly moving the check here would simplify the code?
>
quic_conn_id_first_number() is always called in the socket that is not
in CLOSE state,
and there must be at least one ID in the id_set in such states. I will
leave a comment
in this function if you're okay with it.

Thanks.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.