[dpdk-dev] [PATCH v3 12/18] net/axgbe: add link status update

Ferruh Yigit ferruh.yigit at intel.com
Fri Mar 16 18:46:43 CET 2018


On 3/9/2018 8:42 AM, Ravi Kumar wrote:
> Signed-off-by: Ravi Kumar <Ravi1.kumar at amd.com>

<...>

> +/* return 0 means link status changed, -1 means not changed */
> +static int
> +axgbe_dev_link_update(struct rte_eth_dev *dev,
> +		      int wait_to_complete __rte_unused)
> +{
> +	PMD_INIT_FUNC_TRACE();
> +	rte_delay_ms(800);
> +
> +	struct axgbe_port *pdata = dev->data->dev_private;
> +	int old_link_status = dev->data->dev_link.link_status;
> +
> +	pdata->phy_if.phy_status(pdata);
> +
> +	dev->data->dev_link.link_speed = pdata->phy_speed;
> +	switch (pdata->phy.duplex) {
> +	case DUPLEX_FULL:
> +		dev->data->dev_link.link_duplex = ETH_LINK_FULL_DUPLEX;
> +		break;
> +	case DUPLEX_HALF:
> +		dev->data->dev_link.link_duplex = ETH_LINK_HALF_DUPLEX;
> +		break;
> +	}
> +	dev->data->dev_link.link_autoneg = !(dev->data->dev_conf.link_speeds &
> +					     ETH_LINK_SPEED_FIXED);
> +	dev->data->dev_link.link_status = pdata->phy_link;
> +
> +	return old_link_status == dev->data->dev_link.link_status ? -1 : 0;

There are a very recently merged patches to get/set link status atomically
(rte_eth_linkstatus_get / rte_eth_linkstatus_set) only in next-net (not merged
to main repo yet), you may benefit from them.

<...>


More information about the dev mailing list