net/octeontx2: update KPU parser profile
authorVivek Sharma <viveksharma@marvell.com>
Fri, 6 Sep 2019 00:13:59 +0000 (05:43 +0530)
committerFerruh Yigit <ferruh.yigit@intel.com>
Tue, 8 Oct 2019 10:14:31 +0000 (12:14 +0200)
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>
drivers/common/octeontx2/hw/otx2_npc.h
drivers/net/octeontx2/otx2_flow_parse.c
drivers/net/octeontx2/otx2_lookup.c
drivers/net/octeontx2/otx2_vlan.c

index 8045bed..5b8d3ed 100644 (file)
@@ -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 {
index 6670c1a..71650b5 100644 (file)
@@ -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:
index f832558..3071278 100644 (file)
@@ -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:
index 2be7671..322a565 100644 (file)
@@ -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;
        }