[dpdk-dev,v5] net/i40e: support mac loopback
Checks
Commit Message
According to loopback mode, setup loopback link or not.
If loopback link is setted, packets in tx will be sent to rx directly.
Loopback mode can be used to support testing task
Signed-off-by: Yanglong Wu <yanglong.wu@intel.com>
---
v2:
fix coding style issue
---
v3:
update release DOC
---
v4:
remove 'FVL'
---
v5:
fix coding style isssue
---
doc/guides/rel_notes/release_18_02.rst | 6 ++++++
drivers/net/i40e/i40e_ethdev.c | 10 ++++++++++
drivers/net/i40e/i40e_ethdev.h | 3 ++-
3 files changed, 18 insertions(+), 1 deletion(-)
Comments
> -----Original Message-----
> From: Wu, Yanglong
> Sent: Tuesday, January 2, 2018 10:41 AM
> To: dev@dpdk.org
> Cc: Xing, Beilei <beilei.xing@intel.com>; Wu, Yanglong
> <yanglong.wu@intel.com>
> Subject: [PATCH v5] net/i40e: support mac loopback
>
> According to loopback mode, setup loopback link or not.
> If loopback link is setted, packets in tx will be sent to rx directly.
> Loopback mode can be used to support testing task
>
> Signed-off-by: Yanglong Wu <yanglong.wu@intel.com>
Acked-by: Beilei Xing <beilei.xing@intel.com>
> -----Original Message-----
> From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Xing, Beilei
> Sent: Tuesday, January 2, 2018 10:47 AM
> To: Wu, Yanglong; dev@dpdk.org
> Subject: Re: [dpdk-dev] [PATCH v5] net/i40e: support mac loopback
>
>
> > -----Original Message-----
> > From: Wu, Yanglong
> > Sent: Tuesday, January 2, 2018 10:41 AM
> > To: dev@dpdk.org
> > Cc: Xing, Beilei <beilei.xing@intel.com>; Wu, Yanglong
> > <yanglong.wu@intel.com>
> > Subject: [PATCH v5] net/i40e: support mac loopback
> >
> > According to loopback mode, setup loopback link or not.
> > If loopback link is setted, packets in tx will be sent to rx directly.
> > Loopback mode can be used to support testing task
> >
> > Signed-off-by: Yanglong Wu <yanglong.wu@intel.com>
>
> Acked-by: Beilei Xing <beilei.xing@intel.com>
Applied to dpdk-next-net-intel, with minor word changes. Thanks!
/Helin
@@ -41,6 +41,12 @@ New Features
Also, make sure to start the actual text at the margin.
=========================================================
+* **Added a mac loopback function for the i40e.**
+
+ Add a mac loopback function for the i40e in order to support test
+ task asked by users. According to device configuration, it will
+ setup TX->RX loopback link or not. If loopback link is setted,
+ packets in tx will be sent to rx directly.
API Changes
-----------
@@ -2047,6 +2047,16 @@ i40e_dev_start(struct rte_eth_dev *dev)
true, NULL);
}
}
+
+ /* 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 |
@@ -61,7 +61,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.