From 8a4a11ce4c2b41b033aa6afb164be7008ee5e508 Mon Sep 17 00:00:00 2001 From: Jingjing Wu Date: Fri, 20 Mar 2015 15:31:48 +0800 Subject: [PATCH] i40e: disable buggy VEB switching 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 Acked-by: Helin Zhang Tested-by: Huilong Xu --- lib/librte_pmd_i40e/i40e_ethdev.c | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/lib/librte_pmd_i40e/i40e_ethdev.c b/lib/librte_pmd_i40e/i40e_ethdev.c index 80fc432b88..00d044f034 100644 --- a/lib/librte_pmd_i40e/i40e_ethdev.c +++ b/lib/librte_pmd_i40e/i40e_ethdev.c @@ -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); -- 2.20.1