octeontx2-af: fix issue with IPv4 match for RSS
While performing RSS based on IPv4, packets with
IPv4 options are not being considered. Adding changes
to match both plain IPv4 and IPv4 with option header.
Fixes: 41a7aa7b80 ("octeontx2-af: NIX Rx flowkey configuration for RSS")
Signed-off-by: Satheesh Paul <psatheesh@marvell.com>
Reviewed-by: Kalesh AP <kalesh-anakkur.purayil@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
committed by
David S. Miller
parent
e23ac1095b
commit
60795bbf04
@@ -3866,6 +3866,8 @@ static int get_flowkey_alg_idx(struct nix_hw *nix_hw, u32 flow_cfg)
|
||||
|
||||
/* Mask to match ipv6(NPC_LT_LC_IP6) and ipv6 ext(NPC_LT_LC_IP6_EXT) */
|
||||
#define NPC_LT_LC_IP6_MATCH_MSK ((~(NPC_LT_LC_IP6 ^ NPC_LT_LC_IP6_EXT)) & 0xf)
|
||||
/* Mask to match both ipv4(NPC_LT_LC_IP) and ipv4 ext(NPC_LT_LC_IP_OPT) */
|
||||
#define NPC_LT_LC_IP_MATCH_MSK ((~(NPC_LT_LC_IP ^ NPC_LT_LC_IP_OPT)) & 0xf)
|
||||
|
||||
static int set_flowkey_fields(struct nix_rx_flowkey_alg *alg, u32 flow_cfg)
|
||||
{
|
||||
@@ -3936,7 +3938,7 @@ static int set_flowkey_fields(struct nix_rx_flowkey_alg *alg, u32 flow_cfg)
|
||||
field->hdr_offset = 9; /* offset */
|
||||
field->bytesm1 = 0; /* 1 byte */
|
||||
field->ltype_match = NPC_LT_LC_IP;
|
||||
field->ltype_mask = 0xF;
|
||||
field->ltype_mask = NPC_LT_LC_IP_MATCH_MSK;
|
||||
break;
|
||||
case NIX_FLOW_KEY_TYPE_IPV4:
|
||||
case NIX_FLOW_KEY_TYPE_INNR_IPV4:
|
||||
@@ -3963,8 +3965,7 @@ static int set_flowkey_fields(struct nix_rx_flowkey_alg *alg, u32 flow_cfg)
|
||||
field->bytesm1 = 3; /* DIP, 4 bytes */
|
||||
}
|
||||
}
|
||||
|
||||
field->ltype_mask = 0xF; /* Match only IPv4 */
|
||||
field->ltype_mask = NPC_LT_LC_IP_MATCH_MSK;
|
||||
keyoff_marker = false;
|
||||
break;
|
||||
case NIX_FLOW_KEY_TYPE_IPV6:
|
||||
|
||||
Reference in New Issue
Block a user