Ensure the correct virtchnl op is called for disabling vlan stripping by checking if the device supports either v1 or v2 vlan capability and choosing the op accordingly.
Bugzilla ID:1735 Cc: sta...@dpdk.org Fixes: 3bfad066f9b4 ("net/iavf: fix VLAN strip setting after enabling filter") Signed-off-by: Amiya Ranjan Mohakud <amiyaranjan.moha...@gmail.com> --- drivers/net/intel/iavf/iavf_ethdev.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/drivers/net/intel/iavf/iavf_ethdev.c b/drivers/net/intel/iavf/iavf_ethdev.c index c33fdd9069..335a8126c4 100644 --- a/drivers/net/intel/iavf/iavf_ethdev.c +++ b/drivers/net/intel/iavf/iavf_ethdev.c @@ -1388,6 +1388,7 @@ iavf_disable_vlan_strip_ex(struct rte_eth_dev *dev, int on) */ struct iavf_adapter *adapter = IAVF_DEV_PRIVATE_TO_ADAPTER(dev->data->dev_private); + struct iavf_info *vf = IAVF_DEV_PRIVATE_TO_VF(adapter); struct rte_eth_conf *dev_conf = &dev->data->dev_conf; int err; @@ -1395,7 +1396,10 @@ iavf_disable_vlan_strip_ex(struct rte_eth_dev *dev, int on) adapter->hw.mac.type == IAVF_MAC_VF || adapter->hw.mac.type == IAVF_MAC_X722_VF) { if (on && !(dev_conf->rxmode.offloads & RTE_ETH_RX_OFFLOAD_VLAN_STRIP)) { - err = iavf_disable_vlan_strip(adapter); + if (vf->vf_res->vf_cap_flags & VIRTCHNL_VF_OFFLOAD_VLAN_V2) + err = iavf_config_vlan_strip_v2(adapter, false); + else + err = iavf_disable_vlan_strip(adapter); if (err) return -EIO; } -- 2.39.5 (Apple Git-154)