[dpdk-dev] [PATCH v11 4/8] ethdev: rename link speed constants

Zhang, Helin helin.zhang at intel.com
Wed Mar 23 03:52:10 CET 2016



> -----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



More information about the dev mailing list