]> git.droids-corp.org - dpdk.git/commitdiff
i40e: revert internal switch of PF
authorThomas Monjalon <thomas.monjalon@6wind.com>
Wed, 18 Mar 2015 09:55:09 +0000 (10:55 +0100)
committerThomas Monjalon <thomas.monjalon@6wind.com>
Thu, 19 Mar 2015 08:02:48 +0000 (09:02 +0100)
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 <jingjing.wu@intel.com>
Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>
Acked-by: Jingjing Wu <jingjing.wu@intel.com>
Acked-by: Helin Zhang <helin.zhang@intel.com>
lib/librte_pmd_i40e/i40e_ethdev.c

index 6888072defbf1cae83acb3c99c1969c690c281a1..cf6685ebaf97a6b8699bd81f787f0a54b5f24cd5 100644 (file)
@@ -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);