[PATCH v01] net/af_packet: support link status update
Stephen Hemminger
stephen at networkplumber.org
Mon Oct 14 19:41:18 CEST 2024
On Sun, 13 Oct 2024 17:29:23 +0300
Gur Stavi <gur.stavi at huawei.com> wrote:
> static int
> -eth_link_update(struct rte_eth_dev *dev __rte_unused,
> +eth_link_update(struct rte_eth_dev *dev,
> int wait_to_complete __rte_unused)
> {
> + const struct pmd_internals *internals = dev->data->dev_private;
> + struct rte_eth_link *dev_link = &dev->data->dev_link;
> + int sockfd = internals->rx_queue[0].sockfd;
> + struct ifreq ifr = { };
> + int ret;
> +
> + if (sockfd == -1)
> + return 0;
> +
> + strlcpy(ifr.ifr_name, internals->if_name, IFNAMSIZ);
> + ret = ioctl(sockfd, SIOCGIFFLAGS, &ifr);
> + if (!ret)
> + dev_link->link_status = (ifr.ifr_flags & IFF_RUNNING) ?
> + RTE_ETH_LINK_UP : RTE_ETH_LINK_DOWN;
If ioctl() fails, the function should return an error.
something like:
if (ioctl(sockfd, SIOCGIFFFLAGS, &ifr) != 0)
return -errno;
More information about the dev
mailing list