Hi, > -----Original Message----- > From: Kevin Liu <kevinx....@intel.com> > Sent: Thursday, July 7, 2022 18:48 > To: dev@dpdk.org > Cc: Xing, Beilei <beilei.x...@intel.com>; Zhang, Yuying > <yuying.zh...@intel.com>; Yang, SteveX <stevex.y...@intel.com>; Liu, KevinX > <kevinx....@intel.com> > Subject: [PATCH] net/i40e: restore disable double VLAN by default > > Restore disable double VLAN by default.
Please add detail reason, like will caused performance drop issue. > > Fixes: ae97b8b89826 ("net/i40e: fix error disable double VLAN") > Signed-off-by: Kevin Liu <kevinx....@intel.com> > --- > doc/guides/nics/i40e.rst | 6 +++--- > drivers/net/i40e/i40e_ethdev.c | 12 ------------ > 2 files changed, 3 insertions(+), 15 deletions(-) > > diff --git a/doc/guides/nics/i40e.rst b/doc/guides/nics/i40e.rst index > 85fdc4944d..f61c327726 100644 > --- a/doc/guides/nics/i40e.rst > +++ b/doc/guides/nics/i40e.rst > @@ -969,10 +969,10 @@ it will fail and return the info "Conflict with the > first > rule's input set", which means the current rule's input set conflicts with > the first > rule's. > Remove the first rule if want to change the input set of the PCTYPE. > > -Disable QinQ is not supported when FW >= 8.4 - > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > +To use VLAN functions, need to enable QinQ when FW >= 8.4 Not only this issue, you should cover all the issue we know. Vlan related feature miss when FW>=8.4 ~~~~~~~~~~~~~ If upgrade FW to version 8.4 and higher, some vlan related issue exist: 1.vlan tci input set not work 2.tpid set fail 3.need enable qinq before use vlan filter 4.outer vlan strip fail > +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > > -If upgrade FW to version 8.4 and higher, enable QinQ by default and disable > QinQ is not supported. > +If upgrade FW to version 8.4 and higher, when using VLAN functions, need to > enable QinQ. > > > Example of getting best performance with l3fwd example diff --git > a/drivers/net/i40e/i40e_ethdev.c b/drivers/net/i40e/i40e_ethdev.c index > 684e095026..117dd85c11 100644 > --- a/drivers/net/i40e/i40e_ethdev.c > +++ b/drivers/net/i40e/i40e_ethdev.c > @@ -4027,12 +4027,6 @@ i40e_vlan_offload_set(struct rte_eth_dev *dev, int > mask) > } > > if (mask & RTE_ETH_VLAN_EXTEND_MASK) { > - /* Double VLAN not allowed to be disabled.*/ > - if (pf->fw8_3gt && !(rxmode->offloads & > RTE_ETH_RX_OFFLOAD_VLAN_EXTEND)) { > - PMD_DRV_LOG(WARNING, > - "Disable double VLAN is not allowed after > firmwarev8.3!"); > - return 0; > - } > i = 0; > num = vsi->mac_num; > mac_filter = rte_zmalloc("mac_filter_info_data", > @@ -6296,7 +6290,6 @@ int i40e_vsi_cfg_inner_vlan_stripping(struct i40e_vsi > *vsi, bool on) static int i40e_dev_init_vlan(struct rte_eth_dev *dev) { > - struct i40e_pf *pf = I40E_DEV_PRIVATE_TO_PF(dev->data- > >dev_private); > struct rte_eth_dev_data *data = dev->data; > int ret; > int mask = 0; > @@ -6307,11 +6300,6 @@ i40e_dev_init_vlan(struct rte_eth_dev *dev) > RTE_ETH_VLAN_FILTER_MASK | > RTE_ETH_VLAN_EXTEND_MASK; > > - /* Double VLAN be enabled by default.*/ > - if (pf->fw8_3gt) { > - struct rte_eth_rxmode *rxmode = &dev->data- > >dev_conf.rxmode; > - rxmode->offloads |= RTE_ETH_RX_OFFLOAD_VLAN_EXTEND; > - } > ret = i40e_vlan_offload_set(dev, mask); > if (ret) { > PMD_DRV_LOG(INFO, "Failed to update vlan offload"); > -- > 2.34.1