summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorVivek Sharma <viveksharma@marvell.com>2019-09-06 05:43:59 +0530
committerFerruh Yigit <ferruh.yigit@intel.com>2019-10-08 12:14:31 +0200
commit2e0061dbb4d2d3aac54d6fcf1b53293da6aab132 (patch)
tree0c431d63bdfc42bff5b3bcd4c836b86d2c974f2c /drivers
parent30c234e4e91170cdd3c0c3e4d3eafa737403f7a2 (diff)
downloaddpdk-2e0061dbb4d2d3aac54d6fcf1b53293da6aab132.zip
dpdk-2e0061dbb4d2d3aac54d6fcf1b53293da6aab132.tar.gz
dpdk-2e0061dbb4d2d3aac54d6fcf1b53293da6aab132.tar.xz
net/octeontx2: update KPU parser profile
Update LB ltypes and use the updated ones so as replace LB_STAG and LB_QINQ by single LB_STAG_QINQ ltype. Signed-off-by: Vivek Sharma <viveksharma@marvell.com> Acked-by: Jerin Jacob <jerinj@marvell.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/common/octeontx2/hw/otx2_npc.h9
-rw-r--r--drivers/net/octeontx2/otx2_flow_parse.c4
-rw-r--r--drivers/net/octeontx2/otx2_lookup.c2
-rw-r--r--drivers/net/octeontx2/otx2_vlan.c14
4 files changed, 19 insertions, 10 deletions
diff --git a/drivers/common/octeontx2/hw/otx2_npc.h b/drivers/common/octeontx2/hw/otx2_npc.h
index 8045bed..5b8d3ed 100644
--- a/drivers/common/octeontx2/hw/otx2_npc.h
+++ b/drivers/common/octeontx2/hw/otx2_npc.h
@@ -187,10 +187,15 @@ enum npc_kpu_la_ltype {
enum npc_kpu_lb_ltype {
NPC_LT_LB_ETAG = 1,
NPC_LT_LB_CTAG,
- NPC_LT_LB_STAG,
+ NPC_LT_LB_STAG_QINQ,
NPC_LT_LB_BTAG,
- NPC_LT_LB_QINQ,
NPC_LT_LB_ITAG,
+ NPC_LT_LB_DSA,
+ NPC_LT_LB_DSA_VLAN,
+ NPC_LT_LB_EDSA,
+ NPC_LT_LB_EDSA_VLAN,
+ NPC_LT_LB_EXDSA,
+ NPC_LT_LB_EXDSA_VLAN,
};
enum npc_kpu_lc_ltype {
diff --git a/drivers/net/octeontx2/otx2_flow_parse.c b/drivers/net/octeontx2/otx2_flow_parse.c
index 6670c1a..71650b5 100644
--- a/drivers/net/octeontx2/otx2_flow_parse.c
+++ b/drivers/net/octeontx2/otx2_flow_parse.c
@@ -599,11 +599,11 @@ otx2_flow_parse_lb(struct otx2_parse_state *pst)
lt = NPC_LT_LB_CTAG;
break;
case 2:
- lt = NPC_LT_LB_STAG;
+ lt = NPC_LT_LB_STAG_QINQ;
lflags = NPC_F_STAG_CTAG;
break;
case 3:
- lt = NPC_LT_LB_STAG;
+ lt = NPC_LT_LB_STAG_QINQ;
lflags = NPC_F_STAG_STAG_CTAG;
break;
default:
diff --git a/drivers/net/octeontx2/otx2_lookup.c b/drivers/net/octeontx2/otx2_lookup.c
index f832558..3071278 100644
--- a/drivers/net/octeontx2/otx2_lookup.c
+++ b/drivers/net/octeontx2/otx2_lookup.c
@@ -90,7 +90,7 @@ nix_create_non_tunnel_ptype_array(uint16_t *ptype)
val = RTE_PTYPE_UNKNOWN;
switch (lb) {
- case NPC_LT_LB_QINQ:
+ case NPC_LT_LB_STAG_QINQ:
val |= RTE_PTYPE_L2_ETHER_QINQ;
break;
case NPC_LT_LB_CTAG:
diff --git a/drivers/net/octeontx2/otx2_vlan.c b/drivers/net/octeontx2/otx2_vlan.c
index 2be7671..322a565 100644
--- a/drivers/net/octeontx2/otx2_vlan.c
+++ b/drivers/net/octeontx2/otx2_vlan.c
@@ -300,8 +300,11 @@ nix_vlan_mcam_config(struct rte_eth_dev *eth_dev,
/* Adds vlan_id & LB CTAG flag to MCAM KW */
if (flags & VLAN_ID_MATCH) {
- entry.kw[kwi] |= NPC_LT_LB_CTAG << mkex->lb_lt_offset;
- entry.kw_mask[kwi] |= 0xFULL << mkex->lb_lt_offset;
+ entry.kw[kwi] |= (NPC_LT_LB_CTAG | NPC_LT_LB_STAG_QINQ)
+ << mkex->lb_lt_offset;
+ entry.kw_mask[kwi] |=
+ (0xF & ~(NPC_LT_LB_CTAG ^ NPC_LT_LB_STAG_QINQ))
+ << mkex->lb_lt_offset;
mcam_data = ((uint32_t)vlan_id << 16);
mcam_mask = (BIT_ULL(16) - 1) << 16;
@@ -313,15 +316,16 @@ nix_vlan_mcam_config(struct rte_eth_dev *eth_dev,
/* Adds LB STAG flag to MCAM KW */
if (flags & QINQ_F_MATCH) {
- entry.kw[kwi] |= NPC_LT_LB_STAG << mkex->lb_lt_offset;
+ entry.kw[kwi] |= NPC_LT_LB_STAG_QINQ << mkex->lb_lt_offset;
entry.kw_mask[kwi] |= 0xFULL << mkex->lb_lt_offset;
}
/* Adds LB CTAG & LB STAG flags to MCAM KW */
if (flags & VTAG_F_MATCH) {
- entry.kw[kwi] |= (NPC_LT_LB_CTAG | NPC_LT_LB_STAG)
+ entry.kw[kwi] |= (NPC_LT_LB_CTAG | NPC_LT_LB_STAG_QINQ)
<< mkex->lb_lt_offset;
- entry.kw_mask[kwi] |= (NPC_LT_LB_CTAG & NPC_LT_LB_STAG)
+ entry.kw_mask[kwi] |=
+ (0xF & ~(NPC_LT_LB_CTAG ^ NPC_LT_LB_STAG_QINQ))
<< mkex->lb_lt_offset;
}