net/i40e: fix floating VEB
Turning off S-TAG identification will impact floating VEB, VFs can't communicate with each other. This patch fixes this issue by judging whether floating VEB is enabled, S-TAG identification will be turned off only when floating VEB is disabled. Fixes: 4d61120d5ce7 ("net/i40e: fix dropping packets with ethertype 0x88A8") Signed-off-by: Beilei Xing <beilei.xing@intel.com> Acked-by: Jingjing Wu <jingjing.wu@intel.com>
This commit is contained in:
parent
c6431c891d
commit
0284624f14
@ -453,3 +453,9 @@ To work around this issue, ``ethtool -s <dev> autoneg on`` should be
|
||||
set first and then the link can be brought up through ``ifconfig <dev> up``.
|
||||
|
||||
NOTE: requires Linux kernel i40e driver version >= 1.4.X
|
||||
|
||||
Receive packets with Ethertype 0x88A8
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Due to the FW limitation, PF can receive packets with Ethertype 0x88A8
|
||||
only when floating VEB is disabled.
|
||||
|
@ -1121,11 +1121,13 @@ eth_i40e_dev_init(struct rte_eth_dev *dev)
|
||||
/* Disable double vlan by default */
|
||||
i40e_vsi_config_double_vlan(vsi, FALSE);
|
||||
|
||||
/* Disable S-TAG identification by default */
|
||||
ret = I40E_READ_REG(hw, I40E_PRT_L2TAGSEN);
|
||||
if (ret & I40E_L2_TAGS_S_TAG_MASK) {
|
||||
ret &= ~I40E_L2_TAGS_S_TAG_MASK;
|
||||
I40E_WRITE_REG(hw, I40E_PRT_L2TAGSEN, ret);
|
||||
/* Disable S-TAG identification when floating_veb is disabled */
|
||||
if (!pf->floating_veb) {
|
||||
ret = I40E_READ_REG(hw, I40E_PRT_L2TAGSEN);
|
||||
if (ret & I40E_L2_TAGS_S_TAG_MASK) {
|
||||
ret &= ~I40E_L2_TAGS_S_TAG_MASK;
|
||||
I40E_WRITE_REG(hw, I40E_PRT_L2TAGSEN, ret);
|
||||
}
|
||||
}
|
||||
|
||||
if (!vsi->max_macaddrs)
|
||||
|
Loading…
x
Reference in New Issue
Block a user