[v1] net/i40e: enable the loopback function if it is X722 MAC
Checks
Commit Message
In FVL, there was an issue and it didn't support the loopback function
before FW 5.0. For FPK (X722) it should work.
So it needs to distinguish between the devices by checking MAC type.
Fixes: 689bba33272d (i40e: add VEB switching support)
Fixes: bce83974ba2c (net/i40e: set Tx loopback from PF)
Signed-off-by: Haiyue Wang <haiyue.wang@intel.com>
---
drivers/net/i40e/i40e_ethdev.c | 4 ++--
drivers/net/i40e/rte_pmd_i40e.c | 2 +-
2 files changed, 3 insertions(+), 3 deletions(-)
Comments
> -----Original Message-----
> From: Wang, Haiyue
> Sent: Monday, October 22, 2018 2:48 AM
> To: dev@dpdk.org; Zhang, Qi Z <qi.z.zhang@intel.com>; Wu, Jingjing
> <jingjing.wu@intel.com>; Lu, Wenzhuo <wenzhuo.lu@intel.com>
> Cc: Chilikin, Andrey <andrey.chilikin@intel.com>; Wang, Haiyue
> <haiyue.wang@intel.com>
> Subject: [PATCH v1] net/i40e: enable the loopback function if it is X722 MAC
>
> In FVL, there was an issue and it didn't support the loopback function before
> FW 5.0. For FPK (X722) it should work.
>
> So it needs to distinguish between the devices by checking MAC type.
>
> Fixes: 689bba33272d (i40e: add VEB switching support)
> Fixes: bce83974ba2c (net/i40e: set Tx loopback from PF)
>
> Signed-off-by: Haiyue Wang <haiyue.wang@intel.com>
Acked-by: Qi Zhang <qi.z.zhang@intel.com>
Applied to dpdk-next-net-intel with minor change:
1.add missing " in fix line
2.add cc stable@dpdk.org
Thanks
Qi
@@ -5371,7 +5371,7 @@ i40e_enable_pf_lb(struct i40e_pf *pf)
int ret;
/* Use the FW API if FW >= v5.0 */
- if (hw->aq.fw_maj_ver < 5) {
+ if (hw->aq.fw_maj_ver < 5 && hw->mac.type != I40E_MAC_X722) {
PMD_INIT_LOG(ERR, "FW < v5.0, cannot enable loopback");
return;
}
@@ -5642,7 +5642,7 @@ i40e_vsi_setup(struct i40e_pf *pf,
ctxt.flags = I40E_AQ_VSI_TYPE_VF;
/* Use the VEB configuration if FW >= v5.0 */
- if (hw->aq.fw_maj_ver >= 5) {
+ if (hw->aq.fw_maj_ver >= 5 || hw->mac.type == I40E_MAC_X722) {
/* Configure switch ID */
ctxt.info.valid_sections |=
rte_cpu_to_le_16(I40E_AQ_VSI_PROP_SWITCH_VALID);
@@ -338,7 +338,7 @@ i40e_vsi_set_tx_loopback(struct i40e_vsi *vsi, uint8_t on)
hw = I40E_VSI_TO_HW(vsi);
/* Use the FW API if FW >= v5.0 */
- if (hw->aq.fw_maj_ver < 5) {
+ if (hw->aq.fw_maj_ver < 5 && hw->mac.type != I40E_MAC_X722) {
PMD_INIT_LOG(ERR, "FW < v5.0, cannot enable loopback");
return -ENOTSUP;
}