octeontx2-af: Add support for VLAN based RSS hashing
authorGeorge Cherian <george.cherian@marvell.com>
Tue, 22 Sep 2020 13:07:26 +0000 (18:37 +0530)
committerDavid S. Miller <davem@davemloft.net>
Thu, 24 Sep 2020 00:45:23 +0000 (17:45 -0700)
Added support for PF/VF drivers to choose RSS flow key algorithm
with VLAN tag included in hashing input data. Only CTAG is considered.

Signed-off-by: George Cherian <george.cherian@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

index 4aaef0a..aa3bda3 100644 (file)
@@ -625,6 +625,7 @@ struct nix_rss_flowkey_cfg {
 #define NIX_FLOW_KEY_TYPE_INNR_UDP      BIT(15)
 #define NIX_FLOW_KEY_TYPE_INNR_SCTP     BIT(16)
 #define NIX_FLOW_KEY_TYPE_INNR_ETH_DMAC BIT(17)
+#define NIX_FLOW_KEY_TYPE_VLAN         BIT(20)
        u32     flowkey_cfg; /* Flowkey types selected */
        u8      group;       /* RSS context or group */
 };
index 08181fc..4bdc4ba 100644 (file)
@@ -2509,6 +2509,14 @@ static int set_flowkey_fields(struct nix_rx_flowkey_alg *alg, u32 flow_cfg)
                        field->ltype_match = NPC_LT_LE_GTPU;
                        field->ltype_mask = 0xF;
                        break;
+               case NIX_FLOW_KEY_TYPE_VLAN:
+                       field->lid = NPC_LID_LB;
+                       field->hdr_offset = 2; /* Skip TPID (2-bytes) */
+                       field->bytesm1 = 1; /* 2 Bytes (Actually 12 bits) */
+                       field->ltype_match = NPC_LT_LB_CTAG;
+                       field->ltype_mask = 0xF;
+                       field->fn_mask = 1; /* Mask out the first nibble */
+                       break;
                }
                field->ena = 1;