]> git.droids-corp.org - dpdk.git/commitdiff
i40e: disable buggy VEB switching
authorJingjing Wu <jingjing.wu@intel.com>
Fri, 20 Mar 2015 07:31:48 +0000 (15:31 +0800)
committerThomas Monjalon <thomas.monjalon@6wind.com>
Thu, 26 Mar 2015 21:29:15 +0000 (22:29 +0100)
Disable VEB switching by removing ALLOW_LB on SRIOV vsi.

If the source mac address of packet sent from VF is not listed in the
VEB's mac table, the VEB will switch the packet back to the VF.
It's a hardware issue. Enabling ALLOW_LB flag will block VF functions.

Test report: http://www.dpdk.org/ml/archives/dev/2015-March/015687.html

Signed-off-by: Jingjing Wu <jingjing.wu@intel.com>
Acked-by: Helin Zhang <helin.zhang@intel.com>
Tested-by: Huilong Xu <huilongx.xu@intel.com>
lib/librte_pmd_i40e/i40e_ethdev.c

index 80fc432b88346a6b304ac662957005f2a68394a3..00d044f03469a91be9b16a9be11f573da3ca200c 100644 (file)
@@ -3059,11 +3059,15 @@ i40e_vsi_setup(struct i40e_pf *pf,
                ctxt.connection_type = 0x1;
                ctxt.flags = I40E_AQ_VSI_TYPE_VF;
 
-               /* Configure switch ID */
-               ctxt.info.valid_sections |=
-                       rte_cpu_to_le_16(I40E_AQ_VSI_PROP_SWITCH_VALID);
-               ctxt.info.switch_id =
-                       rte_cpu_to_le_16(I40E_AQ_VSI_SW_ID_FLAG_ALLOW_LB);
+               /**
+                * Do not configure switch ID to enable VEB switch by
+                * I40E_AQ_VSI_SW_ID_FLAG_ALLOW_LB. Because in Fortville,
+                * if the source mac address of packet sent from VF is not
+                * listed in the VEB's mac table, the VEB will switch the
+                * packet back to the VF. Need to enable it when HW issue
+                * is fixed.
+                */
+
                /* Configure port/vlan */
                ctxt.info.valid_sections |=
                        rte_cpu_to_le_16(I40E_AQ_VSI_PROP_VLAN_VALID);