[dpdk-stable] patch 'net/i40e: fix floating VEB' has been queued to stable release 16.07.2

Yuanhan Liu yuanhan.liu at linux.intel.com
Wed Nov 16 15:41:10 CET 2016


Hi,

FYI, your patch has been queued to stable release 16.07.2

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable
yet. It will be pushed if I get no objections before 11/19/16.
So please shout if anyone has objections.

Thanks.

	--yliu

---
>From 1da8d590b82c5c6b5e46a0f3a6961eb977327897 Mon Sep 17 00:00:00 2001
From: Beilei Xing <beilei.xing at intel.com>
Date: Fri, 4 Nov 2016 19:08:08 +0800
Subject: [PATCH] net/i40e: fix floating VEB

[ upstream commit ab881094004a44dbdac45931df1f985fc897f64e ]

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 at intel.com>
Acked-by: Jingjing Wu <jingjing.wu at intel.com>
---
 doc/guides/nics/i40e.rst       |  6 ++++++
 drivers/net/i40e/i40e_ethdev.c | 12 +++++++-----
 2 files changed, 13 insertions(+), 5 deletions(-)

diff --git a/doc/guides/nics/i40e.rst b/doc/guides/nics/i40e.rst
index c0163fc..5780268 100644
--- a/doc/guides/nics/i40e.rst
+++ b/doc/guides/nics/i40e.rst
@@ -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.
diff --git a/drivers/net/i40e/i40e_ethdev.c b/drivers/net/i40e/i40e_ethdev.c
index 0a8f55d..f8ffe1f 100644
--- a/drivers/net/i40e/i40e_ethdev.c
+++ b/drivers/net/i40e/i40e_ethdev.c
@@ -1134,11 +1134,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)
-- 
1.9.0



More information about the stable mailing list