Re: [PATCH v2 04/17] tcp: add datapath logic for PSP with inline key exchange

Jakub Kicinski
2025-06-26T14:08:01Z

On Wed, 25 Jun 2025 20:06:15 -0400 Willem de Bruijn wrote:
> > @@ -2068,7 +2074,8 @@ bool tcp_add_backlog(struct sock *sk, struct sk_buff *skb,
> > (TCPHDR_ECE | TCPHDR_CWR | TCPHDR_AE)) ||
> > !tcp_skb_can_collapse_rx(tail, skb) ||
> > thtail->doff != th->doff ||
> > - memcmp(thtail + 1, th + 1, hdrlen - sizeof(*th)))
> > + memcmp(thtail + 1, th + 1, hdrlen - sizeof(*th)) ||
> > + psp_skb_coalesce_diff(tail, skb))
> > goto no_coalesce;
>
> Since this is a "can these skbs be coalesced" condition check, move it
> inside tcp_skb_can_collapse_rx?

I think the idea was that once the packet is added to the socket rcv
queue we don't really care what exact PSP state it had. I must had
matched what the socket wanted if it got in. The decrypted bit is all
we care about. But packets in the backlog are not fully validated, yet,
so we need an exact comparison.