net/octeontx2: change default RSS hash calculation
authorJerin Jacob <jerinj@marvell.com>
Wed, 29 Jan 2020 17:24:12 +0000 (22:54 +0530)
committerFerruh Yigit <ferruh.yigit@intel.com>
Wed, 5 Feb 2020 08:51:21 +0000 (09:51 +0100)
commitb4bf22d173b845d24069c93a0bcc224b28dc8d28
treefef581bb7c4d2582b2213222e0da94e9141515c4
parent6645b283eb66de465692b8c7563b7f5ecbe1cc67
net/octeontx2: change default RSS hash calculation

Before C0 HW revision, The RSS adder was computed based the following
static formula.

rss_adder<7:0> = flow_tag<7:0> ^ flow_tag<15:8> ^
flow_tag<23:16> ^ flow_tag<31:24>

The above scheme has the following drawbacks:
1) It is not in line with other standard NIC behavior.
2) There can be an SW use case where SW can compute the hash
upfront using Toeplitz function and predict the queue selection
to optimize some packet lookup function. The nonstandard
way of doing XOR makes the consumer to not predict the queue selection.

C0 HW revision onward, The HW can configure the
rss_adder<7:0> as flow_tag<7:0> to align with standard NICs.

This patch adds an option to select legacy RSS adder mode
using tag_as_xor=1 devargs option while keeping the standard NIC
behavior as default.

Signed-off-by: Jerin Jacob <jerinj@marvell.com>
doc/guides/nics/octeontx2.rst
drivers/common/octeontx2/otx2_mbox.h
drivers/net/octeontx2/otx2_ethdev.c
drivers/net/octeontx2/otx2_ethdev.h
drivers/net/octeontx2/otx2_ethdev_devargs.c