For net_af_packet PMD, eth_link_update was an empty function. Application may be interested in link up/down status. This patch adds implementation that updates dev_link->link_status based on socket IFF_RUNNING flag.
Signed-off-by: Gur Stavi <gur.st...@huawei.com> --- drivers/net/af_packet/rte_eth_af_packet.c | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/drivers/net/af_packet/rte_eth_af_packet.c b/drivers/net/af_packet/rte_eth_af_packet.c index 68870dd3e2..0f416f34c4 100644 --- a/drivers/net/af_packet/rte_eth_af_packet.c +++ b/drivers/net/af_packet/rte_eth_af_packet.c @@ -472,9 +472,23 @@ eth_dev_close(struct rte_eth_dev *dev) } 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; return 0; } base-commit: 98613d32e3dac58d685f4f236cf8cc9733abaaf3 -- 2.40.1