net/mlx5: add ConnectX6-DX device ID
[dpdk.git] / drivers / net / octeontx2 / otx2_vlan.c
index c01089b..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;
        }
 
@@ -468,9 +472,9 @@ nix_vlan_handle_default_tx_entry(struct rte_eth_dev *eth_dev,
                pf_func = (dev->pf_func & 0xff) << 8;
                pf_func |= (dev->pf_func >> 8) & 0xff;
 
-               /* PF Func extracted to KW1[63:48] */
-               entry.kw[1] = (uint64_t)pf_func << 48;
-               entry.kw_mask[1] = (BIT_ULL(16) - 1) << 48;
+               /* PF Func extracted to KW1[47:32] */
+               entry.kw[0] = (uint64_t)pf_func << 32;
+               entry.kw_mask[0] = (BIT_ULL(16) - 1) << 32;
 
                nix_set_tx_vlan_action(&entry, type, vtag_index);
                vlan->def_tx_mcam_ent = entry;