Re: [PATCH net-next v2 5/5] mptcp: implemented OoO queue pruning

Paolo Abeni <[email protected]> Mon, 3 Aug 2026 15:42:48 +0200
Newsgroups dev.linux.lists.mptcp,org.kernel.vger.linux-kernel,org.kernel.vger.netdev
Message-ID <[email protected]>
On 7/31/26 4:24 PM, Matthieu Baerts (NGI0) wrote:
> +/* "Inspired" from the TCP version; main difference: stop as soon as the MPTCP
> + * socket is under memory limit.
> + */
> +static bool mptcp_prune_ofo_queue(struct sock *sk, u64 seq)
> +{
> +	struct mptcp_sock *msk = mptcp_sk(sk);
> +	struct rb_node *node, *prev;
> +	bool pruned = false;
> +	u64 mem;
> +
> +	if (RB_EMPTY_ROOT(&msk->out_of_order_queue))
> +		goto out;
> +
> +	node = &msk->ooo_last_skb->rbnode;
> +
> +	do {
> +		struct sk_buff *skb = rb_to_skb(node);
> +
> +		/* Stop pruning if the incoming skb would land in OoO tail. */
> +		if (after64(seq, MPTCP_SKB_CB(skb)->map_seq))
> +			break;

Clashiko noted that duplicate/old skbs can reach here, leading to
serious damage. It needs to be fixed.

It looks like opus-5 catches a lot of things that previous models (and
humans) were not able to see. It should be a :-) but it feels more like :(

/P