[dpdk-dev] [PATCH] ethdev: fix link autonegotiation value
Ferruh Yigit
ferruh.yigit at intel.com
Mon Jan 8 13:31:04 CET 2018
On 1/5/2018 5:38 PM, Thomas Monjalon wrote:
> There are 3 kind of link data in ethdev:
> - capabilities (rte_eth_dev_info)
> - configuration (rte_eth_conf)
> - status (rte_eth_link)
>
> A bit-field is used for capabilities (rte_eth_dev_info.speed_capa) and
> configuration (rte_eth_conf.link_speeds).
> Bits are defined in ETH_LINK_SPEED_*.
>
> Some numerical (ETH_SPEED_NUM_*) and boolean (ETH_LINK_*) values
> are used for the link status (rte_eth_link.*).
>
> There was a mistake in the comment of rte_eth_link.link_autoneg,
> suggesting ETH_LINK_SPEED_[AUTONEG/FIXED] which are 0/1,
> instead of ETH_LINK_[AUTONEG/FIXED] which are 1/0.
>
> The drivers are fixed to use ETH_LINK_[AUTONEG/FIXED].
>
> Fixes: 82113036e4e5 ("ethdev: redesign link speed config")
>
> Suggested-by: Andrew Rybchenko <arybchenko at solarflare.com>
> Signed-off-by: Thomas Monjalon <thomas at monjalon.net>
<...>
> diff --git a/drivers/net/pcap/rte_eth_pcap.c b/drivers/net/pcap/rte_eth_pcap.c
> index 5a86752f9..3efb451a2 100644
> --- a/drivers/net/pcap/rte_eth_pcap.c
> +++ b/drivers/net/pcap/rte_eth_pcap.c
> @@ -124,7 +124,7 @@ static struct rte_eth_link pmd_link = {
> .link_speed = ETH_SPEED_NUM_10G,
> .link_duplex = ETH_LINK_FULL_DUPLEX,
> .link_status = ETH_LINK_DOWN,
> - .link_autoneg = ETH_LINK_SPEED_FIXED,
> + .link_autoneg = ETH_LINK_AUTONEG,
> };
>
> static int
<...>
> diff --git a/drivers/net/softnic/rte_eth_softnic.c b/drivers/net/softnic/rte_eth_softnic.c
> index c21c29e79..5c5464c8d 100644
> --- a/drivers/net/softnic/rte_eth_softnic.c
> +++ b/drivers/net/softnic/rte_eth_softnic.c
> @@ -522,7 +522,7 @@ pmd_ethdev_register(struct rte_vdev_device *vdev,
> soft_dev->data->dev_private = dev_private;
> soft_dev->data->dev_link.link_speed = hard_speed;
> soft_dev->data->dev_link.link_duplex = ETH_LINK_FULL_DUPLEX;
> - soft_dev->data->dev_link.link_autoneg = ETH_LINK_SPEED_FIXED;
> + soft_dev->data->dev_link.link_autoneg = ETH_LINK_AUTONEG;
> soft_dev->data->dev_link.link_status = ETH_LINK_DOWN;
> soft_dev->data->mac_addrs = ð_addr;
> soft_dev->data->promiscuous = 1;
> static void
<...>
> diff --git a/drivers/net/vmxnet3/vmxnet3_ethdev.c b/drivers/net/vmxnet3/vmxnet3_ethdev.c
> index b988d1b41..fa1206c26 100644
> --- a/drivers/net/vmxnet3/vmxnet3_ethdev.c
> +++ b/drivers/net/vmxnet3/vmxnet3_ethdev.c
> @@ -1143,7 +1143,7 @@ __vmxnet3_dev_link_update(struct rte_eth_dev *dev,
> link.link_status = ETH_LINK_UP;
> link.link_duplex = ETH_LINK_FULL_DUPLEX;
> link.link_speed = ETH_SPEED_NUM_10G;
> - link.link_autoneg = ETH_LINK_SPEED_FIXED;
> + link.link_autoneg = ETH_LINK_AUTONEG;
> }
>
> vmxnet3_dev_atomic_write_link_status(dev, &link);
These three drivers changes from "fixed" to "autoneg", intentional?
More information about the dev
mailing list