Skip to contentSkip to conversation

common/cnxk: fix base rule merging only for ingress

PATCH In review [email protected] 2 participants 2 messages Jan 25, 2022 – Feb 17, 2022

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 common/cnxk: fix base rule merging only for ingress

From: Satheesh Paul <[email protected]>

When creating flow rule, merge base steering rule only for ingress rules.

Fixes f9af9080746 ("common/cnxk: add mcam utility API")
---
 drivers/common/cnxk/roc_npc_mcam.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
drivers/common/cnxk/roc_npc_mcam.c +1 -1
index b251f643bc..7a3a8944f5 100644
@@ -752,7 +752,7 @@ npc_program_mcam(struct npc *npc, struct npc_parse_state *pst, bool mcam_alloc)
 	if (pst->set_ipv6ext_ltype_mask)
 		npc_set_ipv6ext_ltype_mask(pst);
 
-	if (pst->is_vf) {
+	if (pst->is_vf && pst->flow->nix_intf == NIX_INTF_RX) {
 		(void)mbox_alloc_msg_npc_read_base_steer_rule(npc->mbox);
 		rc = mbox_process_msg(npc->mbox, (void *)&base_rule_rsp);
 		if (rc) {
Signature · 1 line
2.25.4
Reviewed-by Kiran Kumar Kokkilagadda on v1 1/1
#1 lore raw
Quoted 11 lines · On Tue, Jan 25, 2022 at 9:48 AM <[email protected]> wrote:

From: Satheesh Paul <[email protected]>

When creating flow rule, merge base steering rule only for ingress rules.

Fixes f9af9080746 ("common/cnxk: add mcam utility API")

Updated the commit as follows and applied to
dpdk-next-net-mrvl/for-next-net. Thanks

common/cnxk: fix base rule merge

Egress rules do not have a base steering rule and the current base steering rule is applicable only for ingress rules. Hence, when creating a flow rule, merge base steering rule only for ingress rules.

Fixes f9af9080746 ("common/cnxk: add mcam utility API")
Quoted 20 lines
---
 drivers/common/cnxk/roc_npc_mcam.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
drivers/common/cnxk/roc_npc_mcam.c +1 -2
index b251f643bc..7a3a8944f5 100644
@@ -752,7 +752,7 @@ npc_program_mcam(struct npc *npc, struct npc_parse_state *pst, bool mcam_alloc)
        if (pst->set_ipv6ext_ltype_mask)
                npc_set_ipv6ext_ltype_mask(pst);
 
-       if (pst->is_vf) {
+       if (pst->is_vf && pst->flow->nix_intf == NIX_INTF_RX) {
                (void)mbox_alloc_msg_npc_read_base_steer_rule(npc->mbox);
                rc = mbox_process_msg(npc->mbox, (void *)&base_rule_rsp);
                if (rc) {
--

2.25.4