[dpdk-dev,v5] net/ixgbe: add support of 2.5G and 5G on X550
Checks
Commit Message
This patch adds support of 2.5G and 5G ethernet interface on X550.
Signed-off-by: Wei Dai <wei.dai@intel.com>
---
drivers/net/ixgbe/ixgbe_ethdev.c | 27 ++++++++++++++++++++++++---
drivers/net/ixgbe/ixgbe_ethdev.h | 8 ++++++++
2 files changed, 32 insertions(+), 3 deletions(-)
Comments
Hi,
> -----Original Message-----
> From: Dai, Wei
> Sent: Wednesday, July 26, 2017 9:02 PM
> To: Lu, Wenzhuo <wenzhuo.lu@intel.com>; Ananyev, Konstantin
> <konstantin.ananyev@intel.com>
> Cc: dev@dpdk.org; Dai, Wei <wei.dai@intel.com>
> Subject: [PATCH v5] net/ixgbe: add support of 2.5G and 5G on X550
>
> This patch adds support of 2.5G and 5G ethernet interface on X550.
>
> Signed-off-by: Wei Dai <wei.dai@intel.com>
Acked-by: Wenzhuo Lu <wenzhuo.lu@intel.com>
On 7/27/2017 2:02 AM, Wei Dai wrote:
> This patch adds support of 2.5G and 5G ethernet interface on X550.
Should speed capabilities (dev_info->speed_capa) also updated?
>
> Signed-off-by: Wei Dai <wei.dai@intel.com>
<...>
Hi Ferruh,
> -----Original Message-----
> From: Yigit, Ferruh
> Sent: Monday, July 31, 2017 9:15 AM
> To: Dai, Wei <wei.dai@intel.com>; Lu, Wenzhuo <wenzhuo.lu@intel.com>;
> Ananyev, Konstantin <konstantin.ananyev@intel.com>
> Cc: dev@dpdk.org
> Subject: Re: [dpdk-dev] [PATCH v5] net/ixgbe: add support of 2.5G and 5G on
> X550
>
> On 7/27/2017 2:02 AM, Wei Dai wrote:
> > This patch adds support of 2.5G and 5G ethernet interface on X550.
>
> Should speed capabilities (dev_info->speed_capa) also updated?
Yes, we should update it. Let me send a new version.
>
> >
> > Signed-off-by: Wei Dai <wei.dai@intel.com>
> <...>
@@ -2647,9 +2647,22 @@ ixgbe_dev_start(struct rte_eth_dev *dev)
speed = 0x0;
if (*link_speeds == ETH_LINK_SPEED_AUTONEG) {
- speed = (hw->mac.type != ixgbe_mac_82598EB) ?
- IXGBE_LINK_SPEED_82599_AUTONEG :
- IXGBE_LINK_SPEED_82598_AUTONEG;
+ switch (hw->mac.type) {
+ case ixgbe_mac_82598EB:
+ speed = IXGBE_LINK_SPEED_82598_AUTONEG;
+ break;
+ case ixgbe_mac_82599EB:
+ case ixgbe_mac_X540:
+ speed = IXGBE_LINK_SPEED_82599_AUTONEG;
+ break;
+ case ixgbe_mac_X550:
+ case ixgbe_mac_X550EM_x:
+ case ixgbe_mac_X550EM_a:
+ speed = IXGBE_LINK_SPEED_X550_AUTONEG;
+ break;
+ default:
+ speed = IXGBE_LINK_SPEED_82599_AUTONEG;
+ }
} else {
if (*link_speeds & ETH_LINK_SPEED_10G)
speed |= IXGBE_LINK_SPEED_10GB_FULL;
@@ -3972,6 +3985,14 @@ ixgbe_dev_link_update_share(struct rte_eth_dev *dev,
link.link_speed = ETH_SPEED_NUM_1G;
break;
+ case IXGBE_LINK_SPEED_2_5GB_FULL:
+ link.link_speed = ETH_SPEED_NUM_2_5G;
+ break;
+
+ case IXGBE_LINK_SPEED_5GB_FULL:
+ link.link_speed = ETH_SPEED_NUM_5G;
+ break;
+
case IXGBE_LINK_SPEED_10GB_FULL:
link.link_speed = ETH_SPEED_NUM_10G;
break;
@@ -33,6 +33,7 @@
#ifndef _IXGBE_ETHDEV_H_
#define _IXGBE_ETHDEV_H_
+#include "base/ixgbe_type.h"
#include "base/ixgbe_dcb.h"
#include "base/ixgbe_dcb_82599.h"
#include "base/ixgbe_dcb_82598.h"
@@ -154,6 +155,13 @@
return -ENOTSUP;\
} while (0)
+/* Link speed for X550 auto negotiation */
+#define IXGBE_LINK_SPEED_X550_AUTONEG (IXGBE_LINK_SPEED_100_FULL | \
+ IXGBE_LINK_SPEED_1GB_FULL | \
+ IXGBE_LINK_SPEED_2_5GB_FULL | \
+ IXGBE_LINK_SPEED_5GB_FULL | \
+ IXGBE_LINK_SPEED_10GB_FULL)
+
/*
* Information about the fdir mode.
*/