public inbox for netdev@vger.kernel.org
 help / color / mirror / Atom feed
From: Paolo Abeni <pabeni@redhat.com>
To: Xin Long <lucien.xin@gmail.com>,
	network dev <netdev@vger.kernel.org>,
	quic@lists.linux.dev
Cc: davem@davemloft.net, kuba@kernel.org,
	Eric Dumazet <edumazet@google.com>,
	Simon Horman <horms@kernel.org>,
	Stefan Metzmacher <metze@samba.org>,
	Moritz Buhl <mbuhl@openbsd.org>,
	Tyler Fanelli <tfanelli@redhat.com>,
	Pengtao He <hepengtao@xiaomi.com>,
	Thomas Dreibholz <dreibh@simula.no>,
	linux-cifs@vger.kernel.org, Steve French <smfrench@gmail.com>,
	Namjae Jeon <linkinjeon@kernel.org>,
	Paulo Alcantara <pc@manguebit.com>, Tom Talpey <tom@talpey.com>,
	kernel-tls-handshake@lists.linux.dev,
	Chuck Lever <chuck.lever@oracle.com>,
	Jeff Layton <jlayton@kernel.org>,
	Steve Dickson <steved@redhat.com>, Hannes Reinecke <hare@suse.de>,
	Alexander Aring <aahringo@redhat.com>,
	David Howells <dhowells@redhat.com>,
	Matthieu Baerts <matttbe@kernel.org>,
	John Ericson <mail@johnericson.me>,
	Cong Wang <xiyou.wangcong@gmail.com>,
	"D . Wythe" <alibuda@linux.alibaba.com>,
	Jason Baron <jbaron@akamai.com>,
	illiliti <illiliti@protonmail.com>,
	Sabrina Dubroca <sd@queasysnail.net>,
	Marcelo Ricardo Leitner <marcelo.leitner@gmail.com>,
	Daniel Stenberg <daniel@haxx.se>,
	Andy Gospodarek <andrew.gospodarek@broadcom.com>
Subject: Re: [PATCH net-next v6 07/16] quic: add connection id management
Date: Thu, 8 Jan 2026 16:52:31 +0100	[thread overview]
Message-ID: <ec28c852-e80a-41c9-94ce-a0fce8ee07e7@redhat.com> (raw)
In-Reply-To: <79bf90a6e105c6e6ac692de21a90ec621af47cc5.1767621882.git.lucien.xin@gmail.com>

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


> +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?

/P


  reply	other threads:[~2026-01-08 15:52 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-01-05 14:04 [PATCH net-next v6 00/16] net: introduce QUIC infrastructure and core subcomponents Xin Long
2026-01-05 14:04 ` [PATCH net-next v6 01/16] net: define IPPROTO_QUIC and SOL_QUIC constants Xin Long
2026-01-05 14:04 ` [PATCH net-next v6 02/16] net: build socket infrastructure for QUIC protocol Xin Long
2026-01-08 14:40   ` Paolo Abeni
2026-01-08 22:19     ` Xin Long
2026-01-05 14:04 ` [PATCH net-next v6 03/16] quic: provide common utilities and data structures Xin Long
2026-01-08 14:45   ` Paolo Abeni
2026-01-08 16:58     ` Xin Long
2026-01-05 14:04 ` [PATCH net-next v6 04/16] quic: provide family ops for address and protocol Xin Long
2026-01-08 14:51   ` Paolo Abeni
2026-01-05 14:04 ` [PATCH net-next v6 05/16] quic: provide quic.h header files for kernel and userspace Xin Long
2026-01-08  5:29   ` Yohei Kojima
2026-01-08  9:15     ` Stefan Metzmacher
2026-01-08 10:32       ` Yohei Kojima
2026-01-08 15:00   ` Paolo Abeni
2026-01-08 17:44     ` Xin Long
2026-01-05 14:04 ` [PATCH net-next v6 06/16] quic: add stream management Xin Long
2026-01-08 15:35   ` Paolo Abeni
2026-01-08 20:29     ` Xin Long
2026-01-08 20:53       ` Xin Long
2026-01-05 14:04 ` [PATCH net-next v6 07/16] quic: add connection id management Xin Long
2026-01-08 15:52   ` Paolo Abeni [this message]
2026-01-08 18:07     ` Xin Long
2026-01-05 14:04 ` [PATCH net-next v6 08/16] quic: add path management Xin Long
2026-01-05 14:04 ` [PATCH net-next v6 09/16] quic: add congestion control Xin Long
2026-01-05 14:04 ` [PATCH net-next v6 10/16] quic: add packet number space Xin Long
2026-01-05 14:04 ` [PATCH net-next v6 11/16] quic: add crypto key derivation and installation Xin Long
2026-01-05 14:04 ` [PATCH net-next v6 12/16] quic: add crypto packet encryption and decryption Xin Long
2026-01-05 14:04 ` [PATCH net-next v6 13/16] quic: add timer management Xin Long
2026-01-05 14:04 ` [PATCH net-next v6 14/16] quic: add frame encoder and decoder base Xin Long
2026-01-05 14:04 ` [PATCH net-next v6 15/16] quic: add packet builder base Xin Long
2026-01-05 14:04 ` [PATCH net-next v6 16/16] quic: add packet parser base Xin Long

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=ec28c852-e80a-41c9-94ce-a0fce8ee07e7@redhat.com \
    --to=pabeni@redhat.com \
    --cc=aahringo@redhat.com \
    --cc=alibuda@linux.alibaba.com \
    --cc=andrew.gospodarek@broadcom.com \
    --cc=chuck.lever@oracle.com \
    --cc=daniel@haxx.se \
    --cc=davem@davemloft.net \
    --cc=dhowells@redhat.com \
    --cc=dreibh@simula.no \
    --cc=edumazet@google.com \
    --cc=hare@suse.de \
    --cc=hepengtao@xiaomi.com \
    --cc=horms@kernel.org \
    --cc=illiliti@protonmail.com \
    --cc=jbaron@akamai.com \
    --cc=jlayton@kernel.org \
    --cc=kernel-tls-handshake@lists.linux.dev \
    --cc=kuba@kernel.org \
    --cc=linkinjeon@kernel.org \
    --cc=linux-cifs@vger.kernel.org \
    --cc=lucien.xin@gmail.com \
    --cc=mail@johnericson.me \
    --cc=marcelo.leitner@gmail.com \
    --cc=matttbe@kernel.org \
    --cc=mbuhl@openbsd.org \
    --cc=metze@samba.org \
    --cc=netdev@vger.kernel.org \
    --cc=pc@manguebit.com \
    --cc=quic@lists.linux.dev \
    --cc=sd@queasysnail.net \
    --cc=smfrench@gmail.com \
    --cc=steved@redhat.com \
    --cc=tfanelli@redhat.com \
    --cc=tom@talpey.com \
    --cc=xiyou.wangcong@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox