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