> -----Original Message-----
> From: Thomas Monjalon [mailto:thomas.monjalon at 6wind.com]
> Sent: Friday, March 18, 2016 2:09 AM
> To: marcdevel at gmail.com; Richardson, Bruce; Doherty, Declan; Ananyev,
> Konstantin; Lu, Wenzhuo; Zhang, Helin; Chen, Jing D;
> harish.patil at qlogic.com; rahul.lakkireddy at chelsio.com;
> johndale at cisco.com; vido at cesnet.cz; adrien.mazarguil at 6wind.com;
> alejandro.lucero at netronome.com
> Cc: dev at dpdk.org
> Subject: [PATCH v11 4/8] ethdev: rename link speed constants
> 
> From: Marc Sune <marcdevel at gmail.com>
> 
> The speed numbers ETH_LINK_SPEED_ are renamed ETH_SPEED_NUM_.
> The prefix ETH_LINK_SPEED_ is kept for AUTONEG and will be used for bit
> flags in next patch.
> 
> Signed-off-by: Marc Sune <marcdevel at gmail.com>
> ---
>  app/test-pmd/cmdline.c                    | 10 +++++-----
>  app/test/virtual_pmd.c                    |  2 +-
>  drivers/net/af_packet/rte_eth_af_packet.c |  2 +-
> drivers/net/bonding/rte_eth_bond_8023ad.c | 12 ++++++------
>  drivers/net/cxgbe/base/t4_hw.c            |  8 ++++----
>  drivers/net/e1000/em_ethdev.c             |  8 ++++----
>  drivers/net/e1000/igb_ethdev.c            |  8 ++++----
>  drivers/net/i40e/i40e_ethdev.c            | 30 +++++++++++++++---------------
>  drivers/net/i40e/i40e_ethdev_vf.c         |  2 +-
>  drivers/net/ixgbe/ixgbe_ethdev.c          | 22 +++++++++++-----------
>  drivers/net/mpipe/mpipe_tilegx.c          |  4 ++--
>  drivers/net/nfp/nfp_net.c                 |  2 +-
>  drivers/net/null/rte_eth_null.c           |  2 +-
>  drivers/net/pcap/rte_eth_pcap.c           |  2 +-
>  drivers/net/ring/rte_eth_ring.c           |  2 +-
>  drivers/net/szedata2/rte_eth_szedata2.c   |  8 ++++----
>  drivers/net/vmxnet3/vmxnet3_ethdev.c      |  2 +-
>  drivers/net/xenvirt/rte_eth_xenvirt.c     |  2 +-
>  lib/librte_ether/rte_ethdev.h             | 29 ++++++++++++++++++-----------
>  19 files changed, 82 insertions(+), 75 deletions(-)
> 
> diff --git a/app/test-pmd/cmdline.c b/app/test-pmd/cmdline.c index
> 37be5cd..874129a 100644
> --- a/app/test-pmd/cmdline.c
> +++ b/app/test-pmd/cmdline.c
> @@ -1001,20 +1001,20 @@ parse_and_check_speed_duplex(char *speedstr,
> char *duplexstr, uint16_t *speed)
>       }
> 
>       if (!strcmp(speedstr, "10")) {
> -             *speed = ETH_LINK_SPEED_10;
> +             *speed = ETH_SPEED_NUM_10M;
>       } else if (!strcmp(speedstr, "100")) {
> -             *speed = ETH_LINK_SPEED_100;
> +             *speed = ETH_SPEED_NUM_100M;
>       } else {
>               if (duplex != ETH_LINK_FULL_DUPLEX) {
>                       printf("Invalid speed/duplex parameters\n");
>                       return -1;
>               }
>               if (!strcmp(speedstr, "1000")) {
> -                     *speed = ETH_LINK_SPEED_1000;
> +                     *speed = ETH_SPEED_NUM_1G;
>               } else if (!strcmp(speedstr, "10000")) {
> -                     *speed = ETH_LINK_SPEED_10G;
> +                     *speed = ETH_SPEED_NUM_10G;
>               } else if (!strcmp(speedstr, "40000")) {
> -                     *speed = ETH_LINK_SPEED_40G;
> +                     *speed = ETH_SPEED_NUM_40G;
>               } else if (!strcmp(speedstr, "auto")) {
>                       *speed = ETH_LINK_SPEED_AUTONEG;
>               } else {
> diff --git a/app/test/virtual_pmd.c b/app/test/virtual_pmd.c index
> b1d40d7..b4bd2f2 100644
> --- a/app/test/virtual_pmd.c
> +++ b/app/test/virtual_pmd.c
> @@ -604,7 +604,7 @@ virtual_ethdev_create(const char *name, struct
> ether_addr *mac_addr,
>       TAILQ_INIT(&(eth_dev->link_intr_cbs));
> 
>       eth_dev->data->dev_link.link_status = ETH_LINK_DOWN;
> -     eth_dev->data->dev_link.link_speed = ETH_LINK_SPEED_10000;
> +     eth_dev->data->dev_link.link_speed = ETH_SPEED_NUM_10G;
>       eth_dev->data->dev_link.link_duplex = ETH_LINK_FULL_DUPLEX;
> 
>       eth_dev->data->mac_addrs = rte_zmalloc(name, ETHER_ADDR_LEN,
> 0); diff --git a/drivers/net/af_packet/rte_eth_af_packet.c
> b/drivers/net/af_packet/rte_eth_af_packet.c
> index dee7b59..641f849 100644
> --- a/drivers/net/af_packet/rte_eth_af_packet.c
> +++ b/drivers/net/af_packet/rte_eth_af_packet.c
> @@ -116,7 +116,7 @@ static const char *valid_arguments[] = {  static const
> char *drivername = "AF_PACKET PMD";
> 
>  static struct rte_eth_link pmd_link = {
> -     .link_speed = 10000,
> +     .link_speed = ETH_SPEED_NUM_10G,
>       .link_duplex = ETH_LINK_FULL_DUPLEX,
>       .link_status = ETH_LINK_DOWN,
>  };
> diff --git a/drivers/net/bonding/rte_eth_bond_8023ad.c
> b/drivers/net/bonding/rte_eth_bond_8023ad.c
> index 1b7e93a..ac8306f 100644
> --- a/drivers/net/bonding/rte_eth_bond_8023ad.c
> +++ b/drivers/net/bonding/rte_eth_bond_8023ad.c
> @@ -711,22 +711,22 @@ link_speed_key(uint16_t speed) {
>       case ETH_LINK_SPEED_AUTONEG:
>               key_speed = 0x00;
>               break;
> -     case ETH_LINK_SPEED_10:
> +     case ETH_SPEED_NUM_10M:
>               key_speed = BOND_LINK_SPEED_KEY_10M;
>               break;
> -     case ETH_LINK_SPEED_100:
> +     case ETH_SPEED_NUM_100M:
>               key_speed = BOND_LINK_SPEED_KEY_100M;
>               break;
> -     case ETH_LINK_SPEED_1000:
> +     case ETH_SPEED_NUM_1G:
>               key_speed = BOND_LINK_SPEED_KEY_1000M;
>               break;
> -     case ETH_LINK_SPEED_10G:
> +     case ETH_SPEED_NUM_10G:
>               key_speed = BOND_LINK_SPEED_KEY_10G;
>               break;
> -     case ETH_LINK_SPEED_20G:
> +     case ETH_SPEED_NUM_20G:
>               key_speed = BOND_LINK_SPEED_KEY_20G;
>               break;
> -     case ETH_LINK_SPEED_40G:
> +     case ETH_SPEED_NUM_40G:
>               key_speed = BOND_LINK_SPEED_KEY_40G;
>               break;
>       default:
> diff --git a/drivers/net/cxgbe/base/t4_hw.c
> b/drivers/net/cxgbe/base/t4_hw.c index 884d2cf..79af806 100644
> --- a/drivers/net/cxgbe/base/t4_hw.c
> +++ b/drivers/net/cxgbe/base/t4_hw.c
> @@ -2159,13 +2159,13 @@ int t4_handle_fw_rpl(struct adapter *adap,
> const __be64 *rpl)
>               if (stat & F_FW_PORT_CMD_TXPAUSE)
>                       fc |= PAUSE_TX;
>               if (stat &
> V_FW_PORT_CMD_LSPEED(FW_PORT_CAP_SPEED_100M))
> -                     speed = ETH_LINK_SPEED_100;
> +                     speed = ETH_SPEED_NUM_100M;
>               else if (stat &
> V_FW_PORT_CMD_LSPEED(FW_PORT_CAP_SPEED_1G))
> -                     speed = ETH_LINK_SPEED_1000;
> +                     speed = ETH_SPEED_NUM_1G;
>               else if (stat &
> V_FW_PORT_CMD_LSPEED(FW_PORT_CAP_SPEED_10G))
> -                     speed = ETH_LINK_SPEED_10000;
> +                     speed = ETH_SPEED_NUM_10G;
>               else if (stat &
> V_FW_PORT_CMD_LSPEED(FW_PORT_CAP_SPEED_40G))
> -                     speed = ETH_LINK_SPEED_40G;
> +                     speed = ETH_SPEED_NUM_40G;
> 
>               for_each_port(adap, i) {
>                       pi = adap2pinfo(adap, i);
> diff --git a/drivers/net/e1000/em_ethdev.c
> b/drivers/net/e1000/em_ethdev.c index 943a270..b9dbc0f 100644
> --- a/drivers/net/e1000/em_ethdev.c
> +++ b/drivers/net/e1000/em_ethdev.c
> @@ -625,7 +625,7 @@ eth_em_start(struct rte_eth_dev *dev)
>               else
>                       goto error_invalid_config;
>               break;
> -     case ETH_LINK_SPEED_10:
> +     case ETH_SPEED_NUM_10M:
>               if (dev->data->dev_conf.link_duplex ==
> ETH_LINK_AUTONEG_DUPLEX)
>                       hw->phy.autoneg_advertised =
> E1000_ALL_10_SPEED;
>               else if (dev->data->dev_conf.link_duplex == @@ -637,7
> +637,7 @@ eth_em_start(struct rte_eth_dev *dev)
>               else
>                       goto error_invalid_config;
>               break;
> -     case ETH_LINK_SPEED_100:
> +     case ETH_SPEED_NUM_100M:
>               if (dev->data->dev_conf.link_duplex ==
> ETH_LINK_AUTONEG_DUPLEX)
>                       hw->phy.autoneg_advertised =
> E1000_ALL_100_SPEED;
>               else if (dev->data->dev_conf.link_duplex == @@ -649,7
> +649,7 @@ eth_em_start(struct rte_eth_dev *dev)
>               else
>                       goto error_invalid_config;
>               break;
> -     case ETH_LINK_SPEED_1000:
> +     case ETH_SPEED_NUM_1G:
>               if ((dev->data->dev_conf.link_duplex ==
>                               ETH_LINK_AUTONEG_DUPLEX) ||
>                       (dev->data->dev_conf.link_duplex ==
> @@ -658,7 +658,7 @@ eth_em_start(struct rte_eth_dev *dev)
>               else
>                       goto error_invalid_config;
>               break;
> -     case ETH_LINK_SPEED_10000:
> +     case ETH_SPEED_NUM_10G:
>       default:
>               goto error_invalid_config;
>       }
> diff --git a/drivers/net/e1000/igb_ethdev.c
> b/drivers/net/e1000/igb_ethdev.c index ea156ce..11786ef 100644
> --- a/drivers/net/e1000/igb_ethdev.c
> +++ b/drivers/net/e1000/igb_ethdev.c
> @@ -1241,7 +1241,7 @@ eth_igb_start(struct rte_eth_dev *dev)
>               else
>                       goto error_invalid_config;
>               break;
> -     case ETH_LINK_SPEED_10:
> +     case ETH_SPEED_NUM_10M:
>               if (dev->data->dev_conf.link_duplex ==
> ETH_LINK_AUTONEG_DUPLEX)
>                       hw->phy.autoneg_advertised =
> E1000_ALL_10_SPEED;
>               else if (dev->data->dev_conf.link_duplex ==
> ETH_LINK_HALF_DUPLEX) @@ -1251,7 +1251,7 @@ eth_igb_start(struct
> rte_eth_dev *dev)
>               else
>                       goto error_invalid_config;
>               break;
> -     case ETH_LINK_SPEED_100:
> +     case ETH_SPEED_NUM_100M:
>               if (dev->data->dev_conf.link_duplex ==
> ETH_LINK_AUTONEG_DUPLEX)
>                       hw->phy.autoneg_advertised =
> E1000_ALL_100_SPEED;
>               else if (dev->data->dev_conf.link_duplex ==
> ETH_LINK_HALF_DUPLEX) @@ -1261,14 +1261,14 @@ eth_igb_start(struct
> rte_eth_dev *dev)
>               else
>                       goto error_invalid_config;
>               break;
> -     case ETH_LINK_SPEED_1000:
> +     case ETH_SPEED_NUM_1G:
>               if ((dev->data->dev_conf.link_duplex ==
> ETH_LINK_AUTONEG_DUPLEX) ||
>                               (dev->data->dev_conf.link_duplex ==
> ETH_LINK_FULL_DUPLEX))
>                       hw->phy.autoneg_advertised =
> ADVERTISE_1000_FULL;
>               else
>                       goto error_invalid_config;
>               break;
> -     case ETH_LINK_SPEED_10000:
> +     case ETH_SPEED_NUM_10G:
>       default:
>               goto error_invalid_config;
>       }
> diff --git a/drivers/net/i40e/i40e_ethdev.c b/drivers/net/i40e/i40e_ethdev.c
> index 10e0d38..5d8bdd9 100644
> --- a/drivers/net/i40e/i40e_ethdev.c
> +++ b/drivers/net/i40e/i40e_ethdev.c
> @@ -1372,19 +1372,19 @@ i40e_parse_link_speed(uint16_t eth_link_speed)
>       uint8_t link_speed = I40E_LINK_SPEED_UNKNOWN;
> 
>       switch (eth_link_speed) {
> -     case ETH_LINK_SPEED_40G:
> +     case ETH_SPEED_NUM_40G:
>               link_speed = I40E_LINK_SPEED_40GB;
>               break;
> -     case ETH_LINK_SPEED_20G:
> +     case ETH_SPEED_NUM_20G:
>               link_speed = I40E_LINK_SPEED_20GB;
>               break;
> -     case ETH_LINK_SPEED_10G:
> +     case ETH_SPEED_NUM_10G:
>               link_speed = I40E_LINK_SPEED_10GB;
>               break;
> -     case ETH_LINK_SPEED_1000:
> +     case ETH_SPEED_NUM_1G:
>               link_speed = I40E_LINK_SPEED_1GB;
>               break;
> -     case ETH_LINK_SPEED_100:
> +     case ETH_SPEED_NUM_100M:
>               link_speed = I40E_LINK_SPEED_100MB;
>               break;
>       }
> @@ -1754,7 +1754,7 @@ i40e_dev_link_update(struct rte_eth_dev *dev,
>               /* Get link status information from hardware */
>               status = i40e_aq_get_link_info(hw, false, &link_status,
> NULL);
>               if (status != I40E_SUCCESS) {
> -                     link.link_speed = ETH_LINK_SPEED_100;
> +                     link.link_speed = ETH_SPEED_NUM_100M;
>                       link.link_duplex = ETH_LINK_FULL_DUPLEX;
>                       PMD_DRV_LOG(ERR, "Failed to get link info");
>                       goto out;
> @@ -1776,22 +1776,22 @@ i40e_dev_link_update(struct rte_eth_dev *dev,
>       /* Parse the link status */
>       switch (link_status.link_speed) {
>       case I40E_LINK_SPEED_100MB:
> -             link.link_speed = ETH_LINK_SPEED_100;
> +             link.link_speed = ETH_SPEED_NUM_100M;
>               break;
>       case I40E_LINK_SPEED_1GB:
> -             link.link_speed = ETH_LINK_SPEED_1000;
> +             link.link_speed = ETH_SPEED_NUM_1G;
>               break;
>       case I40E_LINK_SPEED_10GB:
> -             link.link_speed = ETH_LINK_SPEED_10G;
> +             link.link_speed = ETH_SPEED_NUM_10G;
>               break;
>       case I40E_LINK_SPEED_20GB:
> -             link.link_speed = ETH_LINK_SPEED_20G;
> +             link.link_speed = ETH_SPEED_NUM_20G;
>               break;
>       case I40E_LINK_SPEED_40GB:
> -             link.link_speed = ETH_LINK_SPEED_40G;
> +             link.link_speed = ETH_SPEED_NUM_40G;
>               break;
>       default:
> -             link.link_speed = ETH_LINK_SPEED_100;
> +             link.link_speed = ETH_SPEED_NUM_100M;
>               break;
>       }
> 
> @@ -8087,15 +8087,15 @@ i40e_start_timecounters(struct rte_eth_dev
> *dev)
>       rte_i40e_dev_atomic_read_link_status(dev, &link);
> 
>       switch (link.link_speed) {
> -     case ETH_LINK_SPEED_40G:
> +     case ETH_SPEED_NUM_40G:
>               tsync_inc_l = I40E_PTP_40GB_INCVAL & 0xFFFFFFFF;
>               tsync_inc_h = I40E_PTP_40GB_INCVAL >> 32;
>               break;
> -     case ETH_LINK_SPEED_10G:
> +     case ETH_SPEED_NUM_10G:
>               tsync_inc_l = I40E_PTP_10GB_INCVAL & 0xFFFFFFFF;
>               tsync_inc_h = I40E_PTP_10GB_INCVAL >> 32;
>               break;
> -     case ETH_LINK_SPEED_1000:
> +     case ETH_SPEED_NUM_1G:
>               tsync_inc_l = I40E_PTP_1GB_INCVAL & 0xFFFFFFFF;
>               tsync_inc_h = I40E_PTP_1GB_INCVAL >> 32;
>               break;
> diff --git a/drivers/net/i40e/i40e_ethdev_vf.c
> b/drivers/net/i40e/i40e_ethdev_vf.c
> index de00aff..f2b37a2 100644
> --- a/drivers/net/i40e/i40e_ethdev_vf.c
> +++ b/drivers/net/i40e/i40e_ethdev_vf.c
> @@ -1958,7 +1958,7 @@ i40evf_dev_link_update(struct rte_eth_dev *dev,
>       else {
>               /* Always assume it's up, for Linux driver PF host */
>               new_link.link_duplex = ETH_LINK_AUTONEG_DUPLEX;
> -             new_link.link_speed  = ETH_LINK_SPEED_10000;
> +             new_link.link_speed  = ETH_SPEED_NUM_10G;
>               new_link.link_status = ETH_LINK_UP;
>       }
>       i40evf_dev_atomic_write_link_status(dev, &new_link); diff --git
> a/drivers/net/ixgbe/ixgbe_ethdev.c b/drivers/net/ixgbe/ixgbe_ethdev.c
> index 35dac49..9246fdb 100644
> --- a/drivers/net/ixgbe/ixgbe_ethdev.c
> +++ b/drivers/net/ixgbe/ixgbe_ethdev.c
> @@ -2179,17 +2179,17 @@ ixgbe_dev_start(struct rte_eth_dev *dev)
>                               IXGBE_LINK_SPEED_82599_AUTONEG :
>                               IXGBE_LINK_SPEED_82598_AUTONEG;
>               break;
> -     case ETH_LINK_SPEED_100:
> +     case ETH_SPEED_NUM_100M:
>               /*
>                * Invalid for 82598 but error will be detected by
>                * ixgbe_setup_link()
>                */
>               speed = IXGBE_LINK_SPEED_100_FULL;
>               break;
> -     case ETH_LINK_SPEED_1000:
> +     case ETH_SPEED_NUM_1G:
>               speed = IXGBE_LINK_SPEED_1GB_FULL;
>               break;
> -     case ETH_LINK_SPEED_10000:
> +     case ETH_SPEED_NUM_10G:
>               speed = IXGBE_LINK_SPEED_10GB_FULL;
>               break;
>       default:
> @@ -3010,7 +3010,7 @@ ixgbe_dev_link_update(struct rte_eth_dev *dev,
> int wait_to_complete)
>               diag = ixgbe_check_link(hw, &link_speed, &link_up, 1);
> 
>       if (diag != 0) {
> -             link.link_speed = ETH_LINK_SPEED_100;
> +             link.link_speed = ETH_SPEED_NUM_100M;
>               link.link_duplex = ETH_LINK_HALF_DUPLEX;
>               rte_ixgbe_dev_atomic_write_link_status(dev, &link);
>               if (link.link_status == old.link_status) @@ -3031,19 +3031,19
> @@ ixgbe_dev_link_update(struct rte_eth_dev *dev, int wait_to_complete)
>       default:
>       case IXGBE_LINK_SPEED_UNKNOWN:
>               link.link_duplex = ETH_LINK_HALF_DUPLEX;
> -             link.link_speed = ETH_LINK_SPEED_100;
> +             link.link_speed = ETH_SPEED_NUM_100M;
>               break;
> 
>       case IXGBE_LINK_SPEED_100_FULL:
> -             link.link_speed = ETH_LINK_SPEED_100;
> +             link.link_speed = ETH_SPEED_NUM_100M;
>               break;
> 
>       case IXGBE_LINK_SPEED_1GB_FULL:
> -             link.link_speed = ETH_LINK_SPEED_1000;
> +             link.link_speed = ETH_SPEED_NUM_1G;
>               break;
> 
>       case IXGBE_LINK_SPEED_10GB_FULL:
> -             link.link_speed = ETH_LINK_SPEED_10000;
> +             link.link_speed = ETH_SPEED_NUM_10G;
>               break;
>       }
>       rte_ixgbe_dev_atomic_write_link_status(dev, &link); @@ -5838,15
> +5838,15 @@ ixgbe_start_timecounters(struct rte_eth_dev *dev)
>       rte_ixgbe_dev_atomic_read_link_status(dev, &link);
> 
>       switch (link.link_speed) {
> -     case ETH_LINK_SPEED_100:
> +     case ETH_SPEED_NUM_100M:
>               incval = IXGBE_INCVAL_100;
>               shift = IXGBE_INCVAL_SHIFT_100;
>               break;
> -     case ETH_LINK_SPEED_1000:
> +     case ETH_SPEED_NUM_1G:
>               incval = IXGBE_INCVAL_1GB;
>               shift = IXGBE_INCVAL_SHIFT_1GB;
>               break;
> -     case ETH_LINK_SPEED_10000:
> +     case ETH_SPEED_NUM_10G:
>       default:
>               incval = IXGBE_INCVAL_10GB;
>               shift = IXGBE_INCVAL_SHIFT_10GB;
> diff --git a/drivers/net/mpipe/mpipe_tilegx.c
> b/drivers/net/mpipe/mpipe_tilegx.c
> index 1e04b75..960d468 100644
> --- a/drivers/net/mpipe/mpipe_tilegx.c
> +++ b/drivers/net/mpipe/mpipe_tilegx.c
> @@ -395,11 +395,11 @@ mpipe_link_update(struct rte_eth_dev *dev, int
> wait_to_complete)
>               speed = state & GXIO_MPIPE_LINK_SPEED_MASK;
> 
>               if (speed == GXIO_MPIPE_LINK_1G) {
> -                     new.link_speed = ETH_LINK_SPEED_1000;
> +                     new.link_speed = ETH_SPEED_NUM_1G;
>                       new.link_duplex = ETH_LINK_FULL_DUPLEX;
>                       new.link_status = ETH_LINK_UP;
>               } else if (speed == GXIO_MPIPE_LINK_10G) {
> -                     new.link_speed = ETH_LINK_SPEED_10000;
> +                     new.link_speed = ETH_SPEED_NUM_10G;
>                       new.link_duplex = ETH_LINK_FULL_DUPLEX;
>                       new.link_status = ETH_LINK_UP;
>               }
> diff --git a/drivers/net/nfp/nfp_net.c b/drivers/net/nfp/nfp_net.c index
> 7cb7d76..9e314bd 100644
> --- a/drivers/net/nfp/nfp_net.c
> +++ b/drivers/net/nfp/nfp_net.c
> @@ -821,7 +821,7 @@ nfp_net_link_update(struct rte_eth_dev *dev,
> __rte_unused int wait_to_complete)
> 
>       link.link_duplex = ETH_LINK_FULL_DUPLEX;
>       /* Other cards can limit the tx and rx rate per VF */
> -     link.link_speed = ETH_LINK_SPEED_40G;
> +     link.link_speed = ETH_SPEED_NUM_40G;
> 
>       if (old.link_status != link.link_status) {
>               nfp_net_dev_atomic_write_link_status(dev, &link); diff --git
> a/drivers/net/null/rte_eth_null.c b/drivers/net/null/rte_eth_null.c index
> 6adea91..5640585 100644
> --- a/drivers/net/null/rte_eth_null.c
> +++ b/drivers/net/null/rte_eth_null.c
> @@ -89,7 +89,7 @@ struct pmd_internals {  static struct ether_addr
> eth_addr = { .addr_bytes = {0} };  static const char *drivername = "Null PMD";
> static struct rte_eth_link pmd_link = {
> -     .link_speed = 10000,
> +     .link_speed = ETH_SPEED_NUM_10G,
>       .link_duplex = ETH_LINK_FULL_DUPLEX,
>       .link_status = ETH_LINK_DOWN,
>  };
> diff --git a/drivers/net/pcap/rte_eth_pcap.c
> b/drivers/net/pcap/rte_eth_pcap.c index b90c725..c657951 100644
> --- a/drivers/net/pcap/rte_eth_pcap.c
> +++ b/drivers/net/pcap/rte_eth_pcap.c
> @@ -123,7 +123,7 @@ static int open_single_iface(const char *iface,
> pcap_t **pcap);  static struct ether_addr eth_addr = { .addr_bytes = { 0, 0, 
> 0,
> 0x1, 0x2, 0x3 } };  static const char *drivername = "Pcap PMD";  static struct
> rte_eth_link pmd_link = {
> -             .link_speed = 10000,
> +             .link_speed = ETH_SPEED_NUM_10G,
>               .link_duplex = ETH_LINK_FULL_DUPLEX,
>               .link_status = ETH_LINK_DOWN,
>  };
> diff --git a/drivers/net/ring/rte_eth_ring.c b/drivers/net/ring/rte_eth_ring.c
> index 4335c6a..58685e9 100644
> --- a/drivers/net/ring/rte_eth_ring.c
> +++ b/drivers/net/ring/rte_eth_ring.c
> @@ -77,7 +77,7 @@ struct pmd_internals {
> 
>  static const char *drivername = "Rings PMD";  static struct rte_eth_link
> pmd_link = {
> -             .link_speed = 10000,
> +             .link_speed = ETH_SPEED_NUM_10G,
>               .link_duplex = ETH_LINK_FULL_DUPLEX,
>               .link_status = ETH_LINK_DOWN,
>  };
> diff --git a/drivers/net/szedata2/rte_eth_szedata2.c
> b/drivers/net/szedata2/rte_eth_szedata2.c
> index c65067e..854cb5c 100644
> --- a/drivers/net/szedata2/rte_eth_szedata2.c
> +++ b/drivers/net/szedata2/rte_eth_szedata2.c
> @@ -1149,10 +1149,10 @@ eth_link_update(struct rte_eth_dev *dev,
> 
>       switch (cgmii_link_speed(ibuf)) {
>       case SZEDATA2_LINK_SPEED_10G:
> -             link.link_speed = ETH_LINK_SPEED_10G;
> +             link.link_speed = ETH_SPEED_NUM_10G;
>               break;
>       case SZEDATA2_LINK_SPEED_40G:
> -             link.link_speed = ETH_LINK_SPEED_40G;
> +             link.link_speed = ETH_SPEED_NUM_40G;
>               break;
>       case SZEDATA2_LINK_SPEED_100G:
>               /*
> @@ -1161,10 +1161,10 @@ eth_link_update(struct rte_eth_dev *dev,
>                * will be changed to support 100Gbps speed change
>                * this value to 100G.
>                */
> -             link.link_speed = ETH_LINK_SPEED_10G;
> +             link.link_speed = ETH_SPEED_NUM_10G;
>               break;
>       default:
> -             link.link_speed = ETH_LINK_SPEED_10G;
> +             link.link_speed = ETH_SPEED_NUM_10G;
>               break;
>       }
> 
> diff --git a/drivers/net/vmxnet3/vmxnet3_ethdev.c
> b/drivers/net/vmxnet3/vmxnet3_ethdev.c
> index 7fe3a53..ad8029b 100644
> --- a/drivers/net/vmxnet3/vmxnet3_ethdev.c
> +++ b/drivers/net/vmxnet3/vmxnet3_ethdev.c
> @@ -762,7 +762,7 @@ vmxnet3_dev_link_update(struct rte_eth_dev *dev,
> __attribute__((unused)) int wai
>       if (ret & 0x1) {
>               link.link_status = ETH_LINK_UP;
>               link.link_duplex = ETH_LINK_FULL_DUPLEX;
> -             link.link_speed = ETH_LINK_SPEED_10000;
> +             link.link_speed = ETH_SPEED_NUM_10G;
>       }
> 
>       vmxnet3_dev_atomic_write_link_status(dev, &link); diff --git
> a/drivers/net/xenvirt/rte_eth_xenvirt.c
> b/drivers/net/xenvirt/rte_eth_xenvirt.c
> index 9453a06..77d3ba1 100644
> --- a/drivers/net/xenvirt/rte_eth_xenvirt.c
> +++ b/drivers/net/xenvirt/rte_eth_xenvirt.c
> @@ -70,7 +70,7 @@ static int virtio_idx = 0;  static const char *drivername =
> "xen virtio PMD";
> 
>  static struct rte_eth_link pmd_link = {
> -             .link_speed = 10000,
> +             .link_speed = ETH_SPEED_NUM_10G,
>               .link_duplex = ETH_LINK_FULL_DUPLEX,
>               .link_status = ETH_LINK_DOWN,
>  };
> diff --git a/lib/librte_ether/rte_ethdev.h b/lib/librte_ether/rte_ethdev.h
> index 5379bee..d7c8a66 100644
> --- a/lib/librte_ether/rte_ethdev.h
> +++ b/lib/librte_ether/rte_ethdev.h
> @@ -242,23 +242,30 @@ struct rte_eth_stats {  };
> 
>  /**
> + * Ethernet numeric link speeds in Mbps  */
> +#define ETH_LINK_SPEED_AUTONEG     0 /**< Auto-negotiate link speed. */
> +#define ETH_SPEED_NUM_10M         10 /**<  10 Mbps */
> +#define ETH_SPEED_NUM_100M       100 /**< 100 Mbps */
> +#define ETH_SPEED_NUM_1G        1000 /**<   1 Gbps */
> +#define ETH_SPEED_NUM_2_5G      2500 /**< 2.5 Gbps */
> +#define ETH_SPEED_NUM_5G        5000 /**<   5 Gbps */
> +#define ETH_SPEED_NUM_10G      10000 /**<  10 Gbps */
> +#define ETH_SPEED_NUM_20G      20000 /**<  20 Gbps */
> +#define ETH_SPEED_NUM_25G      25000 /**<  25 Gbps */
> +#define ETH_SPEED_NUM_40G      40000 /**<  40 Gbps */
> +#define ETH_SPEED_NUM_50G      50000 /**<  50 Gbps */
> +#define ETH_SPEED_NUM_56G      56000 /**<  56 Gbps */
100G is coming, should we define it here?

> +
> +/**
>   * A structure used to retrieve link-level information of an Ethernet port.
>   */
>  struct rte_eth_link {
> -     uint16_t link_speed;      /**< ETH_LINK_SPEED_[10, 100, 1000, 10000]
> */
> +     uint16_t link_speed;      /**< ETH_SPEED_NUM_ */
>       uint16_t link_duplex;     /**< ETH_LINK_[HALF/FULL]_DUPLEX */
>       uint8_t  link_status : 1; /**< ETH_LINK_[DOWN/UP] */
>  }__attribute__((aligned(8)));     /**< aligned for atomic64 read/write */
> 
> -#define ETH_LINK_SPEED_AUTONEG  0       /**< Auto-negotiate link speed.
> */
> -#define ETH_LINK_SPEED_10       10      /**< 10 megabits/second. */
> -#define ETH_LINK_SPEED_100      100     /**< 100 megabits/second. */
> -#define ETH_LINK_SPEED_1000     1000    /**< 1 gigabits/second. */
> -#define ETH_LINK_SPEED_10000    10000   /**< 10 gigabits/second. */
> -#define ETH_LINK_SPEED_10G      10000   /**< alias of 10 gigabits/second.
> */
> -#define ETH_LINK_SPEED_20G      20000   /**< 20 gigabits/second. */
> -#define ETH_LINK_SPEED_40G      40000   /**< 40 gigabits/second. */
> -
>  /* Utility constants */
>  #define ETH_LINK_AUTONEG_DUPLEX 0       /**< Auto-negotiate duplex. */
>  #define ETH_LINK_HALF_DUPLEX    1       /**< Half-duplex connection. */
> @@ -779,7 +786,7 @@ struct rte_intr_conf {
>   */
>  struct rte_eth_conf {
>       uint16_t link_speed;
100G support?
Uint16_t -> uint32_t to support 100G?

Thanks,
/Helin

> -     /**< ETH_LINK_SPEED_10[0|00|000], or 0 for autonegotation */
> +     /**< ETH_SPEED_NUM_ or 0 for autonegotiation */
>       uint16_t link_duplex;
>       /**< ETH_LINK_[HALF_DUPLEX|FULL_DUPLEX], or 0 for
> autonegotation */
>       struct rte_eth_rxmode rxmode; /**< Port RX configuration. */
> --
> 2.7.0

Reply via email to