From: Kishore Padmanabha <kishore.padmana...@broadcom.com>

For p7 platform, the vlan filter and strip is disabled if the truflow
is enabled on the platform.

Signed-off-by: Kishore Padmanabha <kishore.padmana...@broadcom.com>
Reviewed-by: Mike Baucom <michael.bau...@broadcom.com>
---
 drivers/net/bnxt/bnxt_ethdev.c |  6 +++++-
 drivers/net/bnxt/bnxt_rxq.c    | 17 +++++++++++------
 2 files changed, 16 insertions(+), 7 deletions(-)

diff --git a/drivers/net/bnxt/bnxt_ethdev.c b/drivers/net/bnxt/bnxt_ethdev.c
index 890c9f8b45..d3ea4ed539 100644
--- a/drivers/net/bnxt/bnxt_ethdev.c
+++ b/drivers/net/bnxt/bnxt_ethdev.c
@@ -2964,7 +2964,7 @@ bnxt_vlan_offload_set_op(struct rte_eth_dev *dev, int 
mask)
 {
        uint64_t rx_offloads = dev->data->dev_conf.rxmode.offloads;
        struct bnxt *bp = dev->data->dev_private;
-       int rc;
+       int rc = 0;
 
        rc = is_bnxt_in_error(bp);
        if (rc)
@@ -2974,6 +2974,10 @@ bnxt_vlan_offload_set_op(struct rte_eth_dev *dev, int 
mask)
        if (!dev->data->dev_started)
                return 0;
 
+       /* For P7 platform, cannot support if truflow is enabled */
+       if (BNXT_TRUFLOW_EN(bp) && BNXT_CHIP_P7(bp))
+               return rc;
+
        if (mask & RTE_ETH_VLAN_FILTER_MASK) {
                /* Enable or disable VLAN filtering */
                rc = bnxt_config_vlan_hw_filter(bp, rx_offloads);
diff --git a/drivers/net/bnxt/bnxt_rxq.c b/drivers/net/bnxt/bnxt_rxq.c
index 249fe7f6e5..8b8bc6584a 100644
--- a/drivers/net/bnxt/bnxt_rxq.c
+++ b/drivers/net/bnxt/bnxt_rxq.c
@@ -28,18 +28,23 @@ uint64_t bnxt_get_rx_port_offloads(struct bnxt *bp)
                          RTE_ETH_RX_OFFLOAD_UDP_CKSUM   |
                          RTE_ETH_RX_OFFLOAD_TCP_CKSUM   |
                          RTE_ETH_RX_OFFLOAD_KEEP_CRC    |
-                         RTE_ETH_RX_OFFLOAD_VLAN_FILTER |
-                         RTE_ETH_RX_OFFLOAD_VLAN_EXTEND |
                          RTE_ETH_RX_OFFLOAD_SCATTER |
                          RTE_ETH_RX_OFFLOAD_RSS_HASH;
 
-       if ((BNXT_CHIP_P7(bp) && !bnxt_compressed_rx_cqe_mode_enabled(bp)) ||
-           BNXT_CHIP_P5(bp))
+       /* In P7 platform if truflow is enabled then vlan offload is disabled*/
+       if (!(BNXT_TRUFLOW_EN(bp) && BNXT_CHIP_P7(bp)))
+               rx_offload_capa |= (RTE_ETH_RX_OFFLOAD_VLAN_FILTER |
+                                   RTE_ETH_RX_OFFLOAD_VLAN_EXTEND);
+
+
+       if (!bnxt_compressed_rx_cqe_mode_enabled(bp))
                rx_offload_capa |= RTE_ETH_RX_OFFLOAD_TCP_LRO;
        if (bp->flags & BNXT_FLAG_PTP_SUPPORTED)
                rx_offload_capa |= RTE_ETH_RX_OFFLOAD_TIMESTAMP;
-       if (bp->vnic_cap_flags & BNXT_VNIC_CAP_VLAN_RX_STRIP)
-               rx_offload_capa |= RTE_ETH_RX_OFFLOAD_VLAN_STRIP;
+       if (bp->vnic_cap_flags & BNXT_VNIC_CAP_VLAN_RX_STRIP) {
+               if (!(BNXT_TRUFLOW_EN(bp) && BNXT_CHIP_P7(bp)))
+                       rx_offload_capa |= RTE_ETH_RX_OFFLOAD_VLAN_STRIP;
+       }
 
        if (BNXT_TUNNELED_OFFLOADS_CAP_ALL_EN(bp))
                rx_offload_capa |= RTE_ETH_RX_OFFLOAD_OUTER_IPV4_CKSUM |
-- 
2.39.5 (Apple Git-154)

Reply via email to