From d9f7996554a7094d0351cf0c25836c6a7e49d163 Mon Sep 17 00:00:00 2001 From: Thomas Monjalon Date: Wed, 18 Mar 2015 10:55:09 +0100 Subject: [PATCH] i40e: revert internal switch of PF MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit VEB switching is blocking VF. 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 an hardware issue. Reverts: 2ccabd8cd1f6 ("i40e: enable internal switch of PF"). Reported-by: Jingjing Wu Signed-off-by: Thomas Monjalon Acked-by: Jingjing Wu Acked-by: Helin Zhang --- lib/librte_pmd_i40e/i40e_ethdev.c | 36 ------------------------------- 1 file changed, 36 deletions(-) diff --git a/lib/librte_pmd_i40e/i40e_ethdev.c b/lib/librte_pmd_i40e/i40e_ethdev.c index 6888072def..cf6685ebaf 100644 --- a/lib/librte_pmd_i40e/i40e_ethdev.c +++ b/lib/librte_pmd_i40e/i40e_ethdev.c @@ -2868,40 +2868,6 @@ i40e_vsi_dump_bw_config(struct i40e_vsi *vsi) return 0; } -/* - * i40e_enable_pf_lb - * @pf: pointer to the pf structure - * - * allow loopback on pf - */ -static inline void -i40e_enable_pf_lb(struct i40e_pf *pf) -{ - struct i40e_hw *hw = I40E_PF_TO_HW(pf); - struct i40e_vsi_context ctxt; - int ret; - - memset(&ctxt, 0, sizeof(ctxt)); - ctxt.seid = pf->main_vsi_seid; - ctxt.pf_num = hw->pf_id; - ret = i40e_aq_get_vsi_params(hw, &ctxt, NULL); - if (ret) { - PMD_DRV_LOG(ERR, "couldn't get pf vsi config, err %d, aq_err %d", - ret, hw->aq.asq_last_status); - return; - } - ctxt.flags = I40E_AQ_VSI_TYPE_PF; - 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); - - ret = i40e_aq_update_vsi_params(hw, &ctxt, NULL); - if (ret) - PMD_DRV_LOG(ERR, "update vsi switch failed, aq_err=%d\n", - hw->aq.asq_last_status); -} - /* Setup a VSI */ struct i40e_vsi * i40e_vsi_setup(struct i40e_pf *pf, @@ -2937,8 +2903,6 @@ i40e_vsi_setup(struct i40e_pf *pf, PMD_DRV_LOG(ERR, "VEB setup failed"); return NULL; } - /* set ALLOWLOOPBACk on pf, when veb is created */ - i40e_enable_pf_lb(pf); } vsi = rte_zmalloc("i40e_vsi", sizeof(struct i40e_vsi), 0); -- 2.20.1