[v1] net/i40e: enable the loopback function if it is X722 MAC

Message ID 20181022074741.32884-1-haiyue.wang@intel.com (mailing list archive)
State Accepted, archived
Delegated to: Qi Zhang
Headers
Series [v1] net/i40e: enable the loopback function if it is X722 MAC |

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/Intel-compilation success Compilation OK

Commit Message

Wang, Haiyue Oct. 22, 2018, 7:47 a.m. UTC
  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

Qi Zhang Oct. 23, 2018, 8:25 p.m. UTC | #1
> -----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
  

Patch

diff --git a/drivers/net/i40e/i40e_ethdev.c b/drivers/net/i40e/i40e_ethdev.c
index f7a685c8c..ed5cd9c59 100644
--- a/drivers/net/i40e/i40e_ethdev.c
+++ b/drivers/net/i40e/i40e_ethdev.c
@@ -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);
diff --git a/drivers/net/i40e/rte_pmd_i40e.c b/drivers/net/i40e/rte_pmd_i40e.c
index bba62b1c5..7ce5d02fa 100644
--- a/drivers/net/i40e/rte_pmd_i40e.c
+++ b/drivers/net/i40e/rte_pmd_i40e.c
@@ -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;
 	}