Dispatch SIOCGIFRSSKEY and SIOCGIFRSSHASH through IFDI_PRIV_IOCTL under the context lock. This lets drivers report their programmed RSS state without adding an ifdi method or changing the ioctl ABI. Drivers without a provider return EOPNOTSUPP; keep that result quiet in the ixgbe and ice private handlers and independent of bnxt control readiness. In hn(4), treat unsupported queries and RSS_FUNC_NONE as normal reasons to suppress synthetic receive hash metadata. Keep diagnostics for other errors and invalid configurations. Also suppress hash metadata when reconfiguring synthetic RSS fails, since the VF and synthetic settings cannot then be assumed to agree. Correct the hash-query diagnostic name. MFC after: 2 weeks Sponsored by: BBOX.io
Details
- Reviewers
gallatin sumit.saxena_broadcom.com whu shurd - Group Reviewers
iflib Intel Networking Restricted Owners Package (Owns No Changed Paths) - Commits
- rG001332bdc11e: hn: Handle unavailable VF RSS configuration
rGa3880af465e6: iflib: Add optional RSS configuration queries
Diff Detail
- Repository
- rG FreeBSD src repository
- Lint
Lint Not Applicable - Unit
Tests Not Applicable
Event Timeline
This lets drivers report their programmed RSS state without adding an ifdi method or changing the ioctl ABI.
Is that the correct way to handle this? RSS state is applicable to enough network interfaces that it doesn't seem like it's appropriate to lump in the private driver ioctl handler.
| sys/dev/bnxt/bnxt_en/if_bnxt.c | ||
|---|---|---|
| 4501 ↗ | (On Diff #186754) | Why not just change the catch-all to EOPNOTSUPP? |
In fact, why is this needed? All nics should be using the same key / hash since last fall, and that key is exported via sysctls..
@erj thanks that is cleaner
@gallatin I tagged you in a slew of reviews to finish the conversion. There is still relevance to this revised diff, hn wants to know that the configured key and hash settings match because packets can arrive on the synthetic interface and the vf. There is also a corner case for 82599/X540 ixv where the RSS key is PF/hypervisor owned.. the Windows PF driver provides it.