The rss_key[] array in netinet/in_rss.c has the bytes in incorrect
order. This results in the RSS test vectors in the Microsft RSS spec
and Intel NIC specs giving incorrect results, and making it difficult
to verify correct hash operation when RSS functionality is added to
new NICs.
Details
Details
Tested by using a pcs script to inject the test vectors into ixgbe and
igb interfaces, and using a kernel printf to dump the RSS hash from
the mbuf flowid on packet reception to verify the hash value is correct.
The kernel toeplitz hash routine was tested with a user-space harness
that verified the hash results.
It is recommended that the pcs script be used when implementing RSS on
new NICs, and that the user-space test harness be used when modifying
the toeplitz hash routine.
pcs script - http://people.freebsd.org/~grehan/rss/rss_test.py
(works with the ports version of pcs, py27-pcs-0.6)
user-space harness - http://people.freebsd.org/~grehan/rss/freebsd_rss_test.c
igb and ixgbe test results - http://people.freebsd.org/~grehan/rss/key_results.txt
Diff Detail
Diff Detail
- Repository
- rS FreeBSD src repository - subversion
- Lint
No Lint Coverage - Unit
No Test Coverage