Page MenuHomeFreeBSD

iavf: Report the programmed VF RSS configuration
Needs ReviewPublic

Authored by kbowling on Fri, Sep 18, 10:39 AM.
Tags
None
Referenced Files
F172536033: D59808.id.diff
Sat, Sep 19, 2:43 AM
F172507679: D59808.id187072.diff
Fri, Sep 18, 10:35 PM
F172501876: D59808.id187072.diff
Fri, Sep 18, 9:44 PM
F172486299: D59808.diff
Fri, Sep 18, 7:29 PM
F172477478: D59808.diff
Fri, Sep 18, 6:13 PM
Unknown Object (File)
Fri, Sep 18, 11:05 AM
Unknown Object (File)
Fri, Sep 18, 10:58 AM
Subscribers

Details

Reviewers
kgalazka
Group Reviewers
Intel Networking
Restricted Owners Package(Owns No Changed Paths)
Summary

Principally for hn(4) to match the synthetic and VF settings

Implement the iflib RSS key and hash query methods for both register-based
and PF-managed RSS.  Cache the programmed key and HENA selections instead
of reading registers or issuing mailbox requests from the query path.
This lets hn synchronize its synthetic RSS configuration with the VF.

For PF-managed RSS, publish the snapshot only after successful replies to
both CONFIG_RSS_KEY and SET_RSS_HENA.  Failed sends, rejected requests, and
missing replies leave it unavailable.  Serialize mailbox completion and
query state with vc_mtx, and invalidate it at init, stop, mailbox loss, and
reset notification.  Reject queries while stopped or recovering.

Report the first 40 key bytes used by standard IPv4/IPv6 tuples, or the
shorter key length supplied by the PF.  Preserve register byte order on
the direct-programming path and report the merged HENA rather than just
the globally requested hash types.  Translate the six representable
IPv4/IPv6 TCP/UDP selections without treating fragment PCTYPEs as IPv6
extension-header selections.  The single-queue register path reports
RSS_FUNC_NONE; the PF-managed path retains its existing hashing policy.

Leave key selection, queue distribution, and the receive datapath
unchanged.  RSS programming remains asynchronous; queries return ENXIO
until both confirmations arrive without themselves waiting for a reply.

Diff Detail

Lint
Lint Skipped
Unit
Tests Skipped