From: "Zhang, Helin" <helin.zhang@intel.com>
To: Thomas Monjalon <thomas.monjalon@6wind.com>,
"marcdevel@gmail.com" <marcdevel@gmail.com>,
"Richardson, Bruce" <bruce.richardson@intel.com>,
"Doherty, Declan" <declan.doherty@intel.com>,
"Ananyev, Konstantin" <konstantin.ananyev@intel.com>,
"Lu, Wenzhuo" <wenzhuo.lu@intel.com>,
"Chen, Jing D" <jing.d.chen@intel.com>,
"harish.patil@qlogic.com" <harish.patil@qlogic.com>,
"rahul.lakkireddy@chelsio.com" <rahul.lakkireddy@chelsio.com>,
"johndale@cisco.com" <johndale@cisco.com>,
"vido@cesnet.cz" <vido@cesnet.cz>,
"adrien.mazarguil@6wind.com" <adrien.mazarguil@6wind.com>,
"alejandro.lucero@netronome.com" <alejandro.lucero@netronome.com>
Cc: "dev@dpdk.org" <dev@dpdk.org>
Subject: Re: [dpdk-dev] [PATCH v11 4/8] ethdev: rename link speed constants
Date: Wed, 23 Mar 2016 02:52:10 +0000 [thread overview]
Message-ID: <F35DEAC7BCE34641BA9FAC6BCA4A12E70A9D00AE@SHSMSX104.ccr.corp.intel.com> (raw)
In-Reply-To: <1458238145-7496-5-git-send-email-thomas.monjalon@6wind.com>
> -----Original Message-----
> From: Thomas Monjalon [mailto:thomas.monjalon@6wind.com]
> Sent: Friday, March 18, 2016 2:09 AM
> To: marcdevel@gmail.com; Richardson, Bruce; Doherty, Declan; Ananyev,
> Konstantin; Lu, Wenzhuo; Zhang, Helin; Chen, Jing D;
> harish.patil@qlogic.com; rahul.lakkireddy@chelsio.com;
> johndale@cisco.com; vido@cesnet.cz; adrien.mazarguil@6wind.com;
> alejandro.lucero@netronome.com
> Cc: dev@dpdk.org
> Subject: [PATCH v11 4/8] ethdev: rename link speed constants
>
> From: Marc Sune <marcdevel@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@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
next prev parent reply other threads:[~2016-03-23 2:52 UTC|newest]
Thread overview: 166+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <1443993003-1059-1-git-send-email-marcdevel@gmail.com>
2015-10-25 21:59 ` [dpdk-dev] [PATCH v6 0/5] ethdev: add speed capabilities and refactor link API Marc Sune
2015-10-25 21:59 ` [dpdk-dev] [PATCH v6 1/5] ethdev: Added ETH_SPEED_CAP bitmap for ports Marc Sune
2015-11-01 22:11 ` Thomas Monjalon
2015-11-18 23:08 ` Marc Sune
2015-10-25 21:59 ` [dpdk-dev] [PATCH v6 2/5] ethdev: Fill speed capability bitmaps in the PMDs Marc Sune
2015-10-25 21:59 ` [dpdk-dev] [PATCH v6 3/5] ethdev: redesign link speed config API Marc Sune
2015-10-25 22:03 ` Marc Sune
2015-11-01 22:16 ` Thomas Monjalon
2015-11-18 22:59 ` Marc Sune
2015-10-25 21:59 ` [dpdk-dev] [PATCH v6 4/5] doc: update with link changes Marc Sune
2015-10-25 22:00 ` [dpdk-dev] [PATCH v6 5/5] ethdev: add rte_eth_speed_to_bm_flag() to ver. map Marc Sune
2015-12-16 20:37 ` [dpdk-dev] [PATCH v6 0/5] ethdev: add speed capabilities and refactor link API Marc Sune
2015-12-16 20:44 ` Olga Shern
2016-01-29 0:42 ` [dpdk-dev] [PATCH v7 " Marc Sune
2016-01-29 0:42 ` [dpdk-dev] [PATCH v7 1/5] ethdev: Added ETH_SPEED_CAP bitmap for ports Marc Sune
2016-01-29 0:42 ` [dpdk-dev] [PATCH v7 2/5] ethdev: Fill speed capability bitmaps in the PMDs Marc Sune
2016-01-29 0:42 ` [dpdk-dev] [PATCH v7 3/5] ethdev: redesign link speed config API Marc Sune
2016-01-29 9:24 ` Ananyev, Konstantin
2016-01-29 9:37 ` Thomas Monjalon
2016-01-29 9:47 ` Ananyev, Konstantin
2016-01-29 9:53 ` Thomas Monjalon
2016-01-29 10:17 ` Ananyev, Konstantin
2016-01-29 12:40 ` Marc
2016-02-01 0:40 ` Zhang, Helin
2016-02-02 0:04 ` Marc
2016-02-02 0:45 ` [dpdk-dev] FW: " Zhang, Helin
2016-01-29 16:16 ` [dpdk-dev] " Nélio Laranjeiro
2016-01-31 21:24 ` Marc
2016-01-29 0:42 ` [dpdk-dev] [PATCH v7 4/5] doc: update with link changes Marc Sune
2016-01-29 0:42 ` [dpdk-dev] [PATCH v7 5/5] ethdev: add rte_eth_speed_to_bm_flag() to ver. map Marc Sune
2016-01-29 13:05 ` Panu Matilainen
2016-01-31 21:21 ` Marc
2016-02-14 22:17 ` [dpdk-dev] [PATCH v8 0/4] ethdev: add speed capabilities and refactor link API Marc Sune
2016-02-14 22:17 ` [dpdk-dev] [PATCH v8 1/4] ethdev: Added ETH_SPEED_CAP bitmap for ports Marc Sune
2016-02-16 20:42 ` Stephen Hemminger
2016-02-14 22:17 ` [dpdk-dev] [PATCH v8 2/4] ethdev: Fill speed capability bitmaps in the PMDs Marc Sune
2016-02-15 8:43 ` Nélio Laranjeiro
2016-02-15 9:17 ` Chen, Jing D
2016-02-15 14:43 ` Rahul Lakkireddy
2016-02-15 17:14 ` Marc
2016-02-16 15:25 ` Nélio Laranjeiro
2016-02-16 22:49 ` Marc
2016-02-14 22:17 ` [dpdk-dev] [PATCH v8 3/4] ethdev: redesign link speed config API Marc Sune
2016-02-15 8:46 ` Nélio Laranjeiro
2016-02-15 11:00 ` Marc
2016-02-15 11:39 ` Olga Shern
2016-02-16 10:28 ` Matej Vido
2016-02-16 22:55 ` Marc
2016-02-14 22:17 ` [dpdk-dev] [PATCH v8 4/4] doc: update with link changes Marc Sune
2016-02-18 18:14 ` Mcnamara, John
2016-02-28 22:17 ` Marc
2016-03-01 0:45 ` [dpdk-dev] [PATCH v9 0/4] ethdev: add speed capabilities and refactor link API Marc Sune
2016-03-01 0:45 ` [dpdk-dev] [PATCH v9 1/4] ethdev: Added ETH_SPEED_CAP bitmap for ports Marc Sune
2016-03-01 0:45 ` [dpdk-dev] [PATCH v9 2/4] ethdev: Fill speed capability bitmaps in the PMDs Marc Sune
2016-03-01 0:45 ` [dpdk-dev] [PATCH v9 3/4] ethdev: redesign link speed config API Marc Sune
2016-03-09 8:45 ` Nélio Laranjeiro
2016-03-09 10:09 ` Marc
2016-03-09 10:20 ` Nélio Laranjeiro
2016-03-01 0:45 ` [dpdk-dev] [PATCH v9 4/4] doc: update with link changes Marc Sune
2016-03-08 15:00 ` [dpdk-dev] [PATCH v9 0/4] ethdev: add speed capabilities and refactor link API Marc Sune
2016-03-08 16:53 ` Nélio Laranjeiro
2016-03-09 9:29 ` Nélio Laranjeiro
2016-03-09 10:09 ` Nélio Laranjeiro
2016-03-09 20:57 ` Marc
2016-03-14 21:55 ` [dpdk-dev] [PATCH v10 0/8] ethdev: 100G and link speed API refactoring Thomas Monjalon
2016-03-14 21:55 ` [dpdk-dev] [PATCH v10 1/8] ethdev: use constants for link state Thomas Monjalon
2016-03-14 21:55 ` [dpdk-dev] [PATCH v10 2/8] ethdev: use constants for link duplex Thomas Monjalon
2016-03-14 21:55 ` [dpdk-dev] [PATCH v10 3/8] app/testpmd: move speed and duplex parsing in a function Thomas Monjalon
2016-03-14 21:55 ` [dpdk-dev] [PATCH v10 4/8] ethdev: rename link speed constants Thomas Monjalon
2016-03-14 21:55 ` [dpdk-dev] [PATCH v10 5/8] ethdev: add speed capabilities Thomas Monjalon
2016-03-14 21:55 ` [dpdk-dev] [PATCH v10 6/8] ethdev: redesign link speed config Thomas Monjalon
2016-03-14 21:55 ` [dpdk-dev] [PATCH v10 7/8] ethdev: convert speed number to bitmap flag Thomas Monjalon
2016-03-14 21:55 ` [dpdk-dev] [PATCH v10 8/8] ethdev: add 100G link speed Thomas Monjalon
2016-03-15 0:04 ` [dpdk-dev] [PATCH v10 0/8] ethdev: 100G and link speed API refactoring Matej Vido
2016-03-15 7:12 ` Thomas Monjalon
2016-03-15 7:45 ` Matej Vido
2016-03-15 8:38 ` Nélio Laranjeiro
2016-03-15 13:12 ` [dpdk-dev] [PATCH 0/4] szedata2: " Matej Vido
2016-03-15 13:12 ` [dpdk-dev] [PATCH 1/4] szedata2: use constants for link state Matej Vido
2016-03-15 13:12 ` [dpdk-dev] [PATCH 2/4] szedata2: rename link speed constants Matej Vido
2016-03-15 13:12 ` [dpdk-dev] [PATCH 3/4] szedata2: redesign link speed config Matej Vido
2016-03-15 13:12 ` [dpdk-dev] [PATCH 4/4] szedata2: add 100G link speed Matej Vido
2016-03-15 13:41 ` Thomas Monjalon
2016-03-15 13:47 ` Matej Vido
2016-03-15 13:50 ` Matej Vido
2016-03-15 20:51 ` Thomas Monjalon
2016-03-17 18:08 ` [dpdk-dev] [PATCH v11 0/8] ethdev: 100G and link speed API refactoring Thomas Monjalon
2016-03-17 18:08 ` [dpdk-dev] [PATCH v11 1/8] ethdev: use constants for link state Thomas Monjalon
2016-03-17 18:08 ` [dpdk-dev] [PATCH v11 2/8] ethdev: use constants for link duplex Thomas Monjalon
2016-03-23 2:44 ` Zhang, Helin
2016-03-23 8:34 ` Thomas Monjalon
2016-03-17 18:09 ` [dpdk-dev] [PATCH v11 3/8] app/testpmd: move speed and duplex parsing in a function Thomas Monjalon
2016-03-17 18:09 ` [dpdk-dev] [PATCH v11 4/8] ethdev: rename link speed constants Thomas Monjalon
2016-03-23 2:52 ` Zhang, Helin [this message]
2016-03-23 8:31 ` Thomas Monjalon
2016-03-17 18:09 ` [dpdk-dev] [PATCH v11 5/8] ethdev: add speed capabilities Thomas Monjalon
2016-03-18 5:18 ` Chen, Jing D
2016-03-18 8:06 ` Thomas Monjalon
2016-03-18 9:28 ` Adrien Mazarguil
2016-03-18 10:12 ` Thomas Monjalon
2016-03-17 18:09 ` [dpdk-dev] [PATCH v11 6/8] ethdev: redesign link speed config Thomas Monjalon
2016-03-17 18:09 ` [dpdk-dev] [PATCH v11 7/8] ethdev: convert speed number to bitmap flag Thomas Monjalon
2016-03-17 18:09 ` [dpdk-dev] [PATCH v11 8/8] ethdev: add 100G link speed Thomas Monjalon
2016-03-22 19:58 ` [dpdk-dev] [PATCH v11 0/8] ethdev: 100G and link speed API refactoring Thomas Monjalon
2016-03-23 1:18 ` Xu, Qian Q
2016-03-23 8:39 ` Thomas Monjalon
2016-03-23 20:54 ` Marc
2016-03-24 6:21 ` Xu, Qian Q
2016-03-24 7:47 ` Marc
2016-03-25 1:02 ` Xu, Qian Q
2016-03-25 9:35 ` Thomas Monjalon
2016-03-25 15:07 ` Zhang, Helin
2016-03-25 15:32 ` Thomas Monjalon
2016-03-25 20:41 ` Marc
2016-03-25 21:30 ` Marc
2016-03-26 1:25 ` Marc
2016-03-26 8:08 ` Thomas Monjalon
2016-03-26 10:24 ` Marc
2016-03-27 9:53 ` Thomas Monjalon
2016-03-27 19:39 ` Marc
2016-03-28 13:42 ` Thomas Monjalon
2016-03-28 19:11 ` Marc
2016-03-24 17:32 ` Matej Vido
2016-03-25 19:42 ` [dpdk-dev] [PATCH v12 " Thomas Monjalon
2016-03-25 19:42 ` [dpdk-dev] [PATCH v12 1/8] ethdev: use constants for link state Thomas Monjalon
2016-03-25 19:42 ` [dpdk-dev] [PATCH v12 2/8] ethdev: use constants for link duplex Thomas Monjalon
2016-03-25 19:42 ` [dpdk-dev] [PATCH v12 3/8] app/testpmd: move speed and duplex parsing in a function Thomas Monjalon
2016-03-25 19:42 ` [dpdk-dev] [PATCH v12 4/8] ethdev: rename link speed constants Thomas Monjalon
2016-03-25 19:42 ` [dpdk-dev] [PATCH v12 5/8] ethdev: add speed capabilities Thomas Monjalon
2016-03-25 19:42 ` [dpdk-dev] [PATCH v12 6/8] ethdev: redesign link speed config Thomas Monjalon
2016-03-25 19:42 ` [dpdk-dev] [PATCH v12 7/8] ethdev: convert speed number to bitmap flag Thomas Monjalon
2016-03-25 19:42 ` [dpdk-dev] [PATCH v12 8/8] ethdev: add 100G link speed Thomas Monjalon
2016-03-26 1:27 ` [dpdk-dev] [PATCH v13 0/8] ethdev: 100G and link speed API refactoring Marc Sune
2016-03-26 1:27 ` [dpdk-dev] [PATCH v13 1/8] ethdev: use constants for link state Marc Sune
2016-03-26 1:27 ` [dpdk-dev] [PATCH v13 2/8] ethdev: use constants for link duplex Marc Sune
2016-03-26 1:27 ` [dpdk-dev] [PATCH v13 3/8] app/testpmd: move speed and duplex parsing in a function Marc Sune
2016-03-26 1:27 ` [dpdk-dev] [PATCH v13 4/8] ethdev: rename link speed constants Marc Sune
2016-04-06 8:34 ` Weglicki, MichalX
2016-04-06 8:52 ` Thomas Monjalon
2016-04-06 9:16 ` Weglicki, MichalX
2016-04-06 9:34 ` Thomas Monjalon
2016-03-26 1:27 ` [dpdk-dev] [PATCH v13 5/8] ethdev: add speed capabilities Marc Sune
2016-03-29 13:31 ` Alejandro Lucero
2016-03-30 8:06 ` Marc
2016-03-26 1:27 ` [dpdk-dev] [PATCH v13 6/8] ethdev: redesign link speed config Marc Sune
2016-03-29 6:18 ` Xing, Beilei
2016-03-30 7:59 ` Marc
2016-03-31 0:57 ` Xing, Beilei
2016-03-31 12:28 ` Thomas Monjalon
2016-04-01 9:53 ` Xing, Beilei
2016-03-26 1:27 ` [dpdk-dev] [PATCH v13 7/8] ethdev: convert speed number to bitmap flag Marc Sune
2016-03-26 1:27 ` [dpdk-dev] [PATCH v13 8/8] ethdev: add 100G link speed Marc Sune
2016-03-26 8:11 ` [dpdk-dev] [PATCH v13 0/8] ethdev: 100G and link speed API refactoring Thomas Monjalon
2016-03-31 16:17 ` Adrien Mazarguil
2016-03-30 9:23 ` Thomas Monjalon
2016-03-31 6:25 ` Lu, Wenzhuo
2016-03-31 22:12 ` [dpdk-dev] [PATCH v14 " Marc Sune
2016-03-31 22:12 ` [dpdk-dev] [PATCH v14 1/8] ethdev: use constants for link state Marc Sune
2016-03-31 22:12 ` [dpdk-dev] [PATCH v14 2/8] ethdev: use constants for link duplex Marc Sune
2016-03-31 22:12 ` [dpdk-dev] [PATCH v14 3/8] app/testpmd: move speed and duplex parsing in a function Marc Sune
2016-03-31 22:12 ` [dpdk-dev] [PATCH v14 4/8] ethdev: rename link speed constants Marc Sune
2016-03-31 22:12 ` [dpdk-dev] [PATCH v14 5/8] ethdev: add speed capabilities Marc Sune
2016-03-31 22:12 ` [dpdk-dev] [PATCH v14 6/8] ethdev: redesign link speed config Marc Sune
2016-03-31 22:12 ` [dpdk-dev] [PATCH v14 7/8] ethdev: convert speed number to bitmap flag Marc Sune
2016-03-31 22:12 ` [dpdk-dev] [PATCH v14 8/8] ethdev: add 100G link speed Marc Sune
2016-04-01 19:38 ` [dpdk-dev] [PATCH v14 0/8] ethdev: 100G and link speed API refactoring Thomas Monjalon
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=F35DEAC7BCE34641BA9FAC6BCA4A12E70A9D00AE@SHSMSX104.ccr.corp.intel.com \
--to=helin.zhang@intel.com \
--cc=adrien.mazarguil@6wind.com \
--cc=alejandro.lucero@netronome.com \
--cc=bruce.richardson@intel.com \
--cc=declan.doherty@intel.com \
--cc=dev@dpdk.org \
--cc=harish.patil@qlogic.com \
--cc=jing.d.chen@intel.com \
--cc=johndale@cisco.com \
--cc=konstantin.ananyev@intel.com \
--cc=marcdevel@gmail.com \
--cc=rahul.lakkireddy@chelsio.com \
--cc=thomas.monjalon@6wind.com \
--cc=vido@cesnet.cz \
--cc=wenzhuo.lu@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).