Page MenuHomeFreeBSD

e1000: Make masks for TCP flag handling during TSO sysctl'able
Needs ReviewPublic

Authored by tuexen on Mar 6 2024, 9:32 PM.
Tags
None
Referenced Files
Unknown Object (File)
Sat, Sep 14, 6:31 AM
Unknown Object (File)
Mon, Sep 9, 12:11 PM
Unknown Object (File)
Mon, Sep 9, 12:11 PM
Unknown Object (File)
Mon, Sep 9, 12:11 PM
Unknown Object (File)
Thu, Sep 5, 10:21 PM
Unknown Object (File)
Aug 19 2024, 10:50 AM
Unknown Object (File)
Jul 21 2024, 10:08 AM
Unknown Object (File)
Jul 12 2024, 8:11 AM
Subscribers

Details

Reviewers
rscheff
rrs
kbowling
erj
Group Reviewers
Restricted Owners Package(Owns No Changed Paths)
Summary

Add tso_tcp_flags_mask_first_segment, tso_tcp_flags_mask_middle_segment, and tso_tcp_flags_mask_last_segment sysctl-variables to control the handling of TCP flags during TSO.
This allows in particular to change the handling appropriate for classical ECN to an appropriate handling for accurate ECN.

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Skipped
Unit
Tests Skipped

Event Timeline

Owners added a reviewer: Restricted Owners Package.Mar 6 2024, 9:32 PM
tuexen requested review of this revision.Mar 6 2024, 9:32 PM
tuexen updated this revision to Diff 135474.

Include context.

Are you sure this can't be dealt with dynamically in em_txrx and igb_txrx? Admittedly I have no reason to spend a lot of time digging into this but my intuition is you can stuff the offsets into if_pkt_info_t in iflib.c and make the right decisions when constructing the TSO packet descriptor.

sys/dev/e1000/if_em.c
4951

The handler will run any time the sysctl tree is queried. I would gate the write to only apply on changes.

sys/dev/e1000/if_em.c
4951

Isnt' the check for req->newptr already does that?