Thread (26 messages) 26 messages, 5 authors, 2021-05-18

RE: [PATCH bpf] bpf: check for data_len before upgrading mss when 6 to 4

From: Dongseok Yi <hidden>
Date: 2021-05-11 01:11:21
Also in: bpf, lkml

On Mon, May 10, 2021 at 09:46:25AM -0400, Willem de Bruijn wrote:
On Mon, May 10, 2021 at 9:19 AM Willem de Bruijn
[off-list ref] wrote:
quoted
quoted
quoted
That generates TCP packets with different MSS within the same stream.

My suggestion remains to just not change MSS at all. But this has to
be a new flag to avoid changing established behavior.
I don't understand why the mss size should be kept in GSO step. Will
there be any issue with different mss?
This issue has come up before and that has been the feedback from
TCP experts at one point.
quoted
In general, upgrading mss make sense when 6 to 4. The new flag would be
set by user to not change mss. What happened if user does not set the
flag? I still think we should fix the issue with a general approach. Or
can we remove the skb_increase_gso_size line?
Admins that insert such BPF packets should be aware of these issues.
And likely be using clamping. This is a known issue.

We arrived that the flag approach in bpf_skb_net_shrink. Extending
that  to bpf_skb_change_proto would be consistent.
As for more generic approach: does downgrading to non-TSO by clearing
gso_size work for this edge case?
It can hit __skb_linearize in validate_xmit_skb and frags will be
copied to a linear part. The linear part size can exceed the MTU of
skb->dev unexpectedly.

I will make another patch with the flag approach.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help