Support of the VLAN stripping offloading by checking
the relevant FW capability (vlan_cap) for NIC support.

Supported offload:

DEV_RX_OFFLOAD_VLAN_STRIP

Signed-off-by: Tal Shnaiderman <tal...@nvidia.com>
Acked-by: Matan Azrad <ma...@nvidia.com>
Tested-by: Idan Hackmon <idan...@nvidia.com>
---
 drivers/net/mlx5/windows/mlx5_flow_os.h | 1 +
 drivers/net/mlx5/windows/mlx5_os.c      | 5 +++--
 2 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/drivers/net/mlx5/windows/mlx5_flow_os.h 
b/drivers/net/mlx5/windows/mlx5_flow_os.h
index df92f25ce6..dfcb012334 100644
--- a/drivers/net/mlx5/windows/mlx5_flow_os.h
+++ b/drivers/net/mlx5/windows/mlx5_flow_os.h
@@ -44,6 +44,7 @@ mlx5_flow_os_item_supported(int item)
        case RTE_FLOW_ITEM_TYPE_UDP:
        case RTE_FLOW_ITEM_TYPE_TCP:
        case RTE_FLOW_ITEM_TYPE_IPV6:
+       case RTE_FLOW_ITEM_TYPE_VLAN:
                return true;
        default:
                return false;
diff --git a/drivers/net/mlx5/windows/mlx5_os.c 
b/drivers/net/mlx5/windows/mlx5_os.c
index 194cb7d9ad..5b941cdb19 100644
--- a/drivers/net/mlx5/windows/mlx5_os.c
+++ b/drivers/net/mlx5/windows/mlx5_os.c
@@ -489,8 +489,6 @@ mlx5_dev_spawn(struct rte_device *dpdk_dev,
                config->ind_table_max_size = ETH_RSS_RETA_SIZE_512;
        DRV_LOG(DEBUG, "maximum Rx indirection table size is %u",
                config->ind_table_max_size);
-       DRV_LOG(DEBUG, "VLAN stripping is %ssupported",
-               (config->hw_vlan_strip ? "" : "not "));
        if (config->hw_padding) {
                DRV_LOG(DEBUG, "Rx end alignment padding isn't supported");
                config->hw_padding = 0;
@@ -524,6 +522,9 @@ mlx5_dev_spawn(struct rte_device *dpdk_dev,
                config->hw_csum = config->hca_attr.csum_cap;
                DRV_LOG(DEBUG, "checksum offloading is %ssupported",
                    (config->hw_csum ? "" : "not "));
+               config->hw_vlan_strip = config->hca_attr.vlan_cap;
+               DRV_LOG(DEBUG, "VLAN stripping is %ssupported",
+                       (config->hw_vlan_strip ? "" : "not "));
        }
        if (config->devx) {
                uint32_t reg[MLX5_ST_SZ_DW(register_mtutc)];
-- 
2.16.1.windows.4

Reply via email to