[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