[dpdk-dev,v2] net/i40e: fix dropping packets with Ethertype 0x88A8
Commit Message
Refer to FW default setting, Ethertype 0x88A8 is treated as S-TAG,
packects with S-TAG should be received in Port Virtualizer mode,
but Port Virtual mode is not initialized in DPDK. So X710 will
drop packets with Ethertype 0x88A8.
This patch fixes this issue by turning off S-TAG identification.
Fixes: 4861cde46116 ("i40e: new poll mode driver")
Signed-off-by: Beilei Xing <beilei.xing@intel.com>
---
v2 changes:
commit log modification
drivers/net/i40e/i40e_ethdev.c | 10 ++++++++++
1 file changed, 10 insertions(+)
Comments
> -----Original Message-----
> From: Xing, Beilei
> Sent: Wednesday, August 17, 2016 9:58 AM
> To: Wu, Jingjing
> Cc: dev@dpdk.org; Xing, Beilei
> Subject: [PATCH v2] net/i40e: fix dropping packets with Ethertype 0x88A8
>
> Refer to FW default setting, Ethertype 0x88A8 is treated as S-TAG, packects
> with S-TAG should be received in Port Virtualizer mode, but Port Virtual
> mode is not initialized in DPDK. So X710 will drop packets with Ethertype
> 0x88A8.
> This patch fixes this issue by turning off S-TAG identification.
>
> Fixes: 4861cde46116 ("i40e: new poll mode driver")
>
> Signed-off-by: Beilei Xing <beilei.xing@intel.com>
Acked-by: Jingjing Wu <jingjing.wu@intel.com>
On Wed, Aug 17, 2016 at 03:09:43AM +0000, Wu, Jingjing wrote:
>
>
> > -----Original Message-----
> > From: Xing, Beilei
> > Sent: Wednesday, August 17, 2016 9:58 AM
> > To: Wu, Jingjing
> > Cc: dev@dpdk.org; Xing, Beilei
> > Subject: [PATCH v2] net/i40e: fix dropping packets with Ethertype 0x88A8
> >
> > Refer to FW default setting, Ethertype 0x88A8 is treated as S-TAG, packects
> > with S-TAG should be received in Port Virtualizer mode, but Port Virtual
> > mode is not initialized in DPDK. So X710 will drop packets with Ethertype
> > 0x88A8.
> > This patch fixes this issue by turning off S-TAG identification.
> >
> > Fixes: 4861cde46116 ("i40e: new poll mode driver")
> >
> > Signed-off-by: Beilei Xing <beilei.xing@intel.com>
> Acked-by: Jingjing Wu <jingjing.wu@intel.com>
>
Applied to dpdk-next-net/rel_16_11
/Bruce
@@ -932,6 +932,9 @@ config_floating_veb(struct rte_eth_dev *dev)
}
}
+#define I40E_L2_TAGS_S_TAG_SHIFT 1
+#define I40E_L2_TAGS_S_TAG_MASK I40E_MASK(0x1, I40E_L2_TAGS_S_TAG_SHIFT)
+
static int
eth_i40e_dev_init(struct rte_eth_dev *dev)
{
@@ -1120,6 +1123,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);
+ }
+
if (!vsi->max_macaddrs)
len = ETHER_ADDR_LEN;
else