net/i40e: support MAC loopback

According to loopback mode, setup loopback link or not.
If loopback link is set, packets transmitted will be
looped back to received side directly.

Signed-off-by: Yanglong Wu <yanglong.wu@intel.com>
Acked-by: Beilei Xing <beilei.xing@intel.com>
This commit is contained in:
Yanglong Wu 2018-01-02 10:41:23 +08:00 committed by Ferruh Yigit
parent 024c72a8f3
commit 3a838ab649
3 changed files with 18 additions and 1 deletions

View File

@ -41,6 +41,12 @@ New Features
Also, make sure to start the actual text at the margin.
=========================================================
* **Add MAC loopback support for i40e.**
Add MAC loopback support for i40e in order to support test task asked by
users. According to the device configuration, it will setup TX->RX loopback
link or not.
API Changes
-----------

View File

@ -2019,6 +2019,16 @@ i40e_dev_start(struct rte_eth_dev *dev)
}
}
/* Enable mac loopback mode */
if (dev->data->dev_conf.lpbk_mode == I40E_AQ_LB_MODE_NONE ||
dev->data->dev_conf.lpbk_mode == I40E_AQ_LB_PHY_LOCAL) {
ret = i40e_aq_set_lb_modes(hw, dev->data->dev_conf.lpbk_mode, NULL);
if (ret != I40E_SUCCESS) {
PMD_DRV_LOG(ERR, "fail to set loopback link");
goto err_up;
}
}
/* Apply link configure */
if (dev->data->dev_conf.link_speeds & ~(ETH_LINK_SPEED_100M |
ETH_LINK_SPEED_1G | ETH_LINK_SPEED_10G |

View File

@ -32,7 +32,8 @@
#define I40E_NUM_MACADDR_MAX 64
/* Maximum number of VFs */
#define I40E_MAX_VF 128
/*flag of no loopback*/
#define I40E_AQ_LB_MODE_NONE 0x0
/*
* vlan_id is a 12 bit number.
* The VFTA array is actually a 4096 bit array, 128 of 32bit elements.