Page MenuHomeFreeBSD

rss: Enable portions of RSS globally to enable symmetric hashing
ClosedPublic

Authored by gallatin on Oct 14 2025, 7:46 PM.
Tags
None
Referenced Files
F139151648: D53089.diff
Mon, Dec 8, 2:59 PM
F139117611: D53089.id164165.diff
Mon, Dec 8, 1:58 AM
Unknown Object (File)
Tue, Dec 2, 11:22 PM
Unknown Object (File)
Thu, Nov 27, 5:59 AM
Unknown Object (File)
Wed, Nov 26, 10:36 AM
Unknown Object (File)
Tue, Nov 25, 5:12 AM
Unknown Object (File)
Thu, Nov 20, 4:39 AM
Unknown Object (File)
Wed, Nov 19, 5:19 PM

Details

Summary

We use the fact that all NICs that support hashing are using the
same hash algorithm and hash key to enable symmetic hashing in
TCP, where a software version of the same hash is used to
establish hashes on outgoing connections.

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

Yup, most multiqueue NICs now just "do" RSS natively whether we want it or not, and the main difference here with RSS defined was whether the configured key or a random key was used, etc.

So exposing the global RSS API for the key management / configuration is fine.

(Eventually I'd like it to be a key we can program in per device and globally, and tweak it all at runtime, but that's later.)

This revision is now accepted and ready to land.Oct 22 2025, 7:14 PM
  • Made rss_config.c standard. This is needed because most

drivers do not check to see if INET/INET6 is enabled before
setting up RSS. This fixes compilation errors in most
drivers with LINT-NOIP

-Fixed compilattion error with LINT-NOIP after making rss_config
standard. Basically, the net_inet sysctl tree does not exist in
a NOIP kernel. So when in this configuration, hang rss config
off of net instead.

This revision now requires review to proceed.Oct 30 2025, 7:03 PM
This revision was not accepted when it landed; it landed in state Needs Review.Sat, Nov 22, 2:31 PM
This revision was automatically updated to reflect the committed changes.