[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