OSDN Git Service

octeontx2-af: Allow to configure flow tag LSB byte as RSS adder
authorJerin Jacob <jerinj@marvell.com>
Wed, 25 Aug 2021 12:18:39 +0000 (17:48 +0530)
committerDavid S. Miller <davem@davemloft.net>
Wed, 25 Aug 2021 12:39:01 +0000 (13:39 +0100)
commit72e192a163d0959d4e74342850a31b241baba422
tree7838612c8a1540288a395898ace19e6460521a72
parentd06411632e80d0ef4472a7cace28a6e3669d169a
octeontx2-af: Allow to configure flow tag LSB byte as RSS adder

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 onwards, 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
vs standard NIC behavior by setting NIX_LF_RSS_TAG_LSB_AS_ADDER flag.

Since this bit field is used as reserved in old HW revisions,
No need to have an additional HW version check.

Signed-off-by: Jerin Jacob <jerinj@marvell.com>
Signed-off-by: Sunil Goutham <sgoutham@marvell.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/marvell/octeontx2/af/mbox.h
drivers/net/ethernet/marvell/octeontx2/af/rvu_nix.c