All of lore.kernel.org
 help / color / mirror / Atom feed
From: Stephen Hemminger <stephen@networkplumber.org>
To: dev@dpdk.org
Cc: Stephen Hemminger <stephen@networkplumber.org>
Subject: [PATCH v9 09/15] net/pcap: add link state and speed for interface mode
Date: Wed, 28 Jan 2026 10:40:38 -0800	[thread overview]
Message-ID: <20260128184130.445567-10-stephen@networkplumber.org> (raw)
In-Reply-To: <20260128184130.445567-1-stephen@networkplumber.org>

When the PCAP PMD is used in pass-through mode with a physical
interface (iface=X), the link status was always reported with
hardcoded values regardless of the actual interface state.

Add OS-dependent functions to query the real link state, speed,
duplex, and autonegotiation settings from the underlying interface.
The eth_link_update() callback now returns accurate information
when operating in pass-through mode.

Linux uses ETHTOOL_GLINKSETTINGS which supports all speeds up to
800 Gbps. FreeBSD uses SIOCGIFMEDIA, and Windows uses
GetAdaptersAddresses().

For pcap file mode or separate rx/tx interface configurations,
default values continue to be used since there is no single
underlying interface to query.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
---
 drivers/net/pcap/pcap_ethdev.c        | 105 +++++++++-
 drivers/net/pcap/pcap_osdep.h         |  22 ++
 drivers/net/pcap/pcap_osdep_freebsd.c | 277 ++++++++++++++++++++++++++
 drivers/net/pcap/pcap_osdep_linux.c   | 109 ++++++++++
 drivers/net/pcap/pcap_osdep_windows.c |  95 +++++++--
 5 files changed, 585 insertions(+), 23 deletions(-)

diff --git a/drivers/net/pcap/pcap_ethdev.c b/drivers/net/pcap/pcap_ethdev.c
index 47211807a7..f8ccc03d6f 100644
--- a/drivers/net/pcap/pcap_ethdev.c
+++ b/drivers/net/pcap/pcap_ethdev.c
@@ -146,13 +146,6 @@ static const char *valid_arguments[] = {
 	NULL
 };
 
-static struct rte_eth_link pmd_link = {
-		.link_speed = RTE_ETH_SPEED_NUM_10G,
-		.link_duplex = RTE_ETH_LINK_FULL_DUPLEX,
-		.link_status = RTE_ETH_LINK_DOWN,
-		.link_autoneg = RTE_ETH_LINK_FIXED,
-};
-
 RTE_LOG_REGISTER_DEFAULT(eth_pcap_logtype, NOTICE);
 
 static struct queue_missed_stat*
@@ -899,11 +892,96 @@ eth_dev_close(struct rte_eth_dev *dev)
 	return 0;
 }
 
+/*
+ * Convert osdep speed (Mbps) to rte_eth_link speed constant.
+ */
+static uint32_t
+speed_mbps_to_rte(uint32_t speed_mbps)
+{
+	switch (speed_mbps) {
+	case 10:
+		return RTE_ETH_SPEED_NUM_10M;
+	case 100:
+		return RTE_ETH_SPEED_NUM_100M;
+	case 1000:
+		return RTE_ETH_SPEED_NUM_1G;
+	case 2500:
+		return RTE_ETH_SPEED_NUM_2_5G;
+	case 5000:
+		return RTE_ETH_SPEED_NUM_5G;
+	case 10000:
+		return RTE_ETH_SPEED_NUM_10G;
+	case 20000:
+		return RTE_ETH_SPEED_NUM_20G;
+	case 25000:
+		return RTE_ETH_SPEED_NUM_25G;
+	case 40000:
+		return RTE_ETH_SPEED_NUM_40G;
+	case 50000:
+		return RTE_ETH_SPEED_NUM_50G;
+	case 56000:
+		return RTE_ETH_SPEED_NUM_56G;
+	case 100000:
+		return RTE_ETH_SPEED_NUM_100G;
+	case 200000:
+		return RTE_ETH_SPEED_NUM_200G;
+	case 400000:
+		return RTE_ETH_SPEED_NUM_400G;
+	case 800000:
+		return RTE_ETH_SPEED_NUM_800G;
+	default:
+		/* For unknown speeds, return the raw value */
+		if (speed_mbps > 0)
+			return speed_mbps;
+		return RTE_ETH_SPEED_NUM_UNKNOWN;
+	}
+}
+
 static int
-eth_link_update(struct rte_eth_dev *dev __rte_unused,
-		int wait_to_complete __rte_unused)
+eth_link_update(struct rte_eth_dev *dev, int wait_to_complete __rte_unused)
 {
-	return 0;
+	struct pmd_internals *internals = dev->data->dev_private;
+	struct rte_eth_link link;
+	struct osdep_iface_link osdep_link;
+	const char *iface_name;
+
+	memset(&link, 0, sizeof(link));
+
+	/*
+	 * For pass-through mode (single_iface), query the actual interface.
+	 * Otherwise, use the default static link values.
+	 */
+	if (internals->single_iface) {
+		iface_name = internals->rx_queue[0].name;
+
+		if (osdep_iface_link_get(iface_name, &osdep_link) == 0) {
+			link.link_speed = speed_mbps_to_rte(osdep_link.link_speed);
+			link.link_status = osdep_link.link_status ?
+				RTE_ETH_LINK_UP : RTE_ETH_LINK_DOWN;
+			link.link_duplex = osdep_link.link_duplex ?
+				RTE_ETH_LINK_FULL_DUPLEX : RTE_ETH_LINK_HALF_DUPLEX;
+			link.link_autoneg = osdep_link.link_autoneg ?
+				RTE_ETH_LINK_AUTONEG : RTE_ETH_LINK_FIXED;
+		} else {
+			/* Query failed, use defaults */
+			link.link_speed = RTE_ETH_SPEED_NUM_10G;
+			link.link_duplex = RTE_ETH_LINK_FULL_DUPLEX;
+			link.link_status = RTE_ETH_LINK_DOWN;
+			link.link_autoneg = RTE_ETH_LINK_FIXED;
+		}
+	} else {
+		/*
+		 * Not in pass-through mode (using pcap files or separate
+		 * interfaces for rx/tx). Use default values.
+		 */
+		link.link_speed = RTE_ETH_SPEED_NUM_10G;
+		link.link_duplex = RTE_ETH_LINK_FULL_DUPLEX;
+		link.link_status = dev->data->dev_started ?
+			RTE_ETH_LINK_UP : RTE_ETH_LINK_DOWN;
+		link.link_autoneg = RTE_ETH_LINK_FIXED;
+	}
+
+	return rte_eth_linkstatus_set(dev, &link);
 }
 
 static int
@@ -1268,7 +1346,12 @@ pmd_init_internals(struct rte_vdev_device *vdev,
 	data = (*eth_dev)->data;
 	data->nb_rx_queues = (uint16_t)nb_rx_queues;
 	data->nb_tx_queues = (uint16_t)nb_tx_queues;
-	data->dev_link = pmd_link;
+	data->dev_link = (struct rte_eth_link) {
+		.link_speed = RTE_ETH_SPEED_NUM_NONE,
+		.link_duplex = RTE_ETH_LINK_FULL_DUPLEX,
+		.link_status = RTE_ETH_LINK_DOWN,
+		.link_autoneg = RTE_ETH_LINK_FIXED,
+	};
 	data->mac_addrs = &(*internals)->eth_addr;
 	data->promiscuous = 1;
 	data->all_multicast = 1;
diff --git a/drivers/net/pcap/pcap_osdep.h b/drivers/net/pcap/pcap_osdep.h
index a0e2b5ace9..732813c028 100644
--- a/drivers/net/pcap/pcap_osdep.h
+++ b/drivers/net/pcap/pcap_osdep.h
@@ -13,7 +13,29 @@
 extern int eth_pcap_logtype;
 #define RTE_LOGTYPE_ETH_PCAP eth_pcap_logtype
 
+/**
+ * Link information returned by osdep_iface_link_get().
+ */
+struct osdep_iface_link {
+	uint32_t link_speed;    /**< Speed in Mbps, 0 if unknown */
+	uint8_t link_status;    /**< 1 = up, 0 = down */
+	uint8_t link_duplex;    /**< 1 = full, 0 = half */
+	uint8_t link_autoneg;   /**< 1 = autoneg enabled, 0 = fixed */
+};
+
 int osdep_iface_index_get(const char *name);
 int osdep_iface_mac_get(const char *name, struct rte_ether_addr *mac);
 
+/**
+ * Get link state and speed for a network interface.
+ *
+ * @param name
+ *   Interface name (e.g., "eth0" on Linux, "{GUID}" on Windows).
+ * @param link
+ *   Pointer to structure to fill with link information.
+ * @return
+ *   0 on success, -1 on failure.
+ */
+int osdep_iface_link_get(const char *name, struct osdep_iface_link *link);
+
 #endif
diff --git a/drivers/net/pcap/pcap_osdep_freebsd.c b/drivers/net/pcap/pcap_osdep_freebsd.c
index 0185665f0b..1405f1f85d 100644
--- a/drivers/net/pcap/pcap_osdep_freebsd.c
+++ b/drivers/net/pcap/pcap_osdep_freebsd.c
@@ -5,8 +5,13 @@
  */
 
 #include <string.h>
+#include <stdlib.h>
+#include <unistd.h>
 #include <net/if.h>
 #include <net/if_dl.h>
+#include <net/if_media.h>
+#include <sys/ioctl.h>
+#include <sys/socket.h>
 #include <sys/sysctl.h>
 
 #include "pcap_osdep.h"
@@ -55,3 +60,275 @@ osdep_iface_mac_get(const char *if_name, struct rte_ether_addr *mac)
 	free(buf);
 	return 0;
 }
+
+/*
+ * Map media subtype to speed in Mbps.
+ * This handles common Ethernet media types.
+ */
+static uint32_t
+media_subtype_to_speed(int subtype)
+{
+	switch (subtype) {
+	case IFM_10_T:
+	case IFM_10_2:
+	case IFM_10_5:
+	case IFM_10_STP:
+	case IFM_10_FL:
+		return 10;
+	case IFM_100_TX:
+	case IFM_100_FX:
+	case IFM_100_T4:
+	case IFM_100_VG:
+	case IFM_100_T2:
+		return 100;
+	case IFM_1000_SX:
+	case IFM_1000_LX:
+	case IFM_1000_CX:
+	case IFM_1000_T:
+#ifdef IFM_1000_KX
+	case IFM_1000_KX:
+#endif
+#ifdef IFM_1000_SGMII
+	case IFM_1000_SGMII:
+#endif
+		return 1000;
+#ifdef IFM_2500_T
+	case IFM_2500_T:
+#endif
+#ifdef IFM_2500_X
+	case IFM_2500_X:
+#endif
+#ifdef IFM_2500_KX
+	case IFM_2500_KX:
+#endif
+		return 2500;
+#ifdef IFM_5000_T
+	case IFM_5000_T:
+#endif
+#ifdef IFM_5000_KR
+	case IFM_5000_KR:
+#endif
+		return 5000;
+	case IFM_10G_LR:
+	case IFM_10G_SR:
+	case IFM_10G_CX4:
+	case IFM_10G_T:
+	case IFM_10G_TWINAX:
+	case IFM_10G_TWINAX_LONG:
+	case IFM_10G_LRM:
+	case IFM_10G_KX4:
+	case IFM_10G_KR:
+	case IFM_10G_CR1:
+	case IFM_10G_ER:
+	case IFM_10G_SFI:
+		return 10000;
+#ifdef IFM_20G_KR2
+	case IFM_20G_KR2:
+#endif
+		return 20000;
+	case IFM_25G_CR:
+	case IFM_25G_KR:
+	case IFM_25G_SR:
+	case IFM_25G_LR:
+#ifdef IFM_25G_ACC
+	case IFM_25G_ACC:
+#endif
+#ifdef IFM_25G_AOC
+	case IFM_25G_AOC:
+#endif
+#ifdef IFM_25G_ER
+	case IFM_25G_ER:
+#endif
+#ifdef IFM_25G_T
+	case IFM_25G_T:
+#endif
+		return 25000;
+	case IFM_40G_CR4:
+	case IFM_40G_SR4:
+	case IFM_40G_LR4:
+	case IFM_40G_KR4:
+#ifdef IFM_40G_ER4
+	case IFM_40G_ER4:
+#endif
+		return 40000;
+	case IFM_50G_CR2:
+	case IFM_50G_KR2:
+#ifdef IFM_50G_SR2
+	case IFM_50G_SR2:
+#endif
+#ifdef IFM_50G_LR2
+	case IFM_50G_LR2:
+#endif
+#ifdef IFM_50G_KR
+	case IFM_50G_KR:
+#endif
+#ifdef IFM_50G_SR
+	case IFM_50G_SR:
+#endif
+#ifdef IFM_50G_CR
+	case IFM_50G_CR:
+#endif
+#ifdef IFM_50G_LR
+	case IFM_50G_LR:
+#endif
+#ifdef IFM_50G_FR
+	case IFM_50G_FR:
+#endif
+		return 50000;
+	case IFM_100G_CR4:
+	case IFM_100G_SR4:
+	case IFM_100G_KR4:
+	case IFM_100G_LR4:
+#ifdef IFM_100G_CR2
+	case IFM_100G_CR2:
+#endif
+#ifdef IFM_100G_SR2
+	case IFM_100G_SR2:
+#endif
+#ifdef IFM_100G_KR2
+	case IFM_100G_KR2:
+#endif
+#ifdef IFM_100G_DR
+	case IFM_100G_DR:
+#endif
+#ifdef IFM_100G_FR
+	case IFM_100G_FR:
+#endif
+#ifdef IFM_100G_LR
+	case IFM_100G_LR:
+#endif
+		return 100000;
+#ifdef IFM_200G_CR4
+	case IFM_200G_CR4:
+#endif
+#ifdef IFM_200G_SR4
+	case IFM_200G_SR4:
+#endif
+#ifdef IFM_200G_KR4
+	case IFM_200G_KR4:
+#endif
+#ifdef IFM_200G_LR4
+	case IFM_200G_LR4:
+#endif
+#ifdef IFM_200G_FR4
+	case IFM_200G_FR4:
+#endif
+#ifdef IFM_200G_DR4
+	case IFM_200G_DR4:
+#endif
+		return 200000;
+#ifdef IFM_400G_CR8
+	case IFM_400G_CR8:
+#endif
+#ifdef IFM_400G_SR8
+	case IFM_400G_SR8:
+#endif
+#ifdef IFM_400G_KR8
+	case IFM_400G_KR8:
+#endif
+#ifdef IFM_400G_LR8
+	case IFM_400G_LR8:
+#endif
+#ifdef IFM_400G_FR8
+	case IFM_400G_FR8:
+#endif
+#ifdef IFM_400G_DR8
+	case IFM_400G_DR8:
+#endif
+#ifdef IFM_400G_CR4
+	case IFM_400G_CR4:
+#endif
+#ifdef IFM_400G_SR4
+	case IFM_400G_SR4:
+#endif
+#ifdef IFM_400G_DR4
+	case IFM_400G_DR4:
+#endif
+#ifdef IFM_400G_FR4
+	case IFM_400G_FR4:
+#endif
+#ifdef IFM_400G_LR4
+	case IFM_400G_LR4:
+#endif
+		return 400000;
+#ifdef IFM_800G_CR8
+	case IFM_800G_CR8:
+#endif
+#ifdef IFM_800G_SR8
+	case IFM_800G_SR8:
+#endif
+#ifdef IFM_800G_DR8
+	case IFM_800G_DR8:
+#endif
+#ifdef IFM_800G_FR8
+	case IFM_800G_FR8:
+#endif
+#ifdef IFM_800G_LR8
+	case IFM_800G_LR8:
+#endif
+		return 800000;
+	default:
+		return 0;
+	}
+}
+
+int
+osdep_iface_link_get(const char *if_name, struct osdep_iface_link *link)
+{
+	struct ifmediareq ifmr;
+	struct ifreq ifr;
+	int if_fd;
+	int subtype;
+
+	memset(link, 0, sizeof(*link));
+
+	if_fd = socket(AF_INET, SOCK_DGRAM, 0);
+	if (if_fd == -1)
+		return -1;
+
+	/* Get interface flags to determine administrative status */
+	memset(&ifr, 0, sizeof(ifr));
+	strlcpy(ifr.ifr_name, if_name, sizeof(ifr.ifr_name));
+	if (ioctl(if_fd, SIOCGIFFLAGS, &ifr) == 0) {
+		if (ifr.ifr_flags & IFF_UP)
+			link->link_status = 1;
+	}
+
+	/* Get media status for speed, duplex, and link state */
+	memset(&ifmr, 0, sizeof(ifmr));
+	strlcpy(ifmr.ifm_name, if_name, sizeof(ifmr.ifm_name));
+
+	if (ioctl(if_fd, SIOCGIFMEDIA, &ifmr) == 0) {
+		/* Check if link is actually active */
+		if (!(ifmr.ifm_status & IFM_ACTIVE))
+			link->link_status = 0;
+
+		/* Only parse media if we have a valid current media type */
+		if (ifmr.ifm_current != 0 && IFM_TYPE(ifmr.ifm_current) == IFM_ETHER) {
+			subtype = IFM_SUBTYPE(ifmr.ifm_current);
+			link->link_speed = media_subtype_to_speed(subtype);
+
+			/* Check duplex - FDX option means full duplex */
+			if (IFM_OPTIONS(ifmr.ifm_current) & IFM_FDX)
+				link->link_duplex = 1;
+			else
+				link->link_duplex = 0;
+		} else {
+			/* Default to full duplex if we can't determine */
+			link->link_duplex = 1;
+		}
+
+		/* Check autonegotiation status */
+		link->link_autoneg = (ifmr.ifm_current & IFM_AUTO) ? 1 : 0;
+	} else {
+		/*
+		 * SIOCGIFMEDIA failed - interface may not support it.
+		 * Default to reasonable values.
+		 */
+		link->link_duplex = 1;  /* Assume full duplex */
+		link->link_autoneg = 0;
+	}
+
+	close(if_fd);
+	return 0;
+}
diff --git a/drivers/net/pcap/pcap_osdep_linux.c b/drivers/net/pcap/pcap_osdep_linux.c
index df976417cb..036c685b50 100644
--- a/drivers/net/pcap/pcap_osdep_linux.c
+++ b/drivers/net/pcap/pcap_osdep_linux.c
@@ -9,6 +9,8 @@
 #include <net/if.h>
 #include <sys/ioctl.h>
 #include <sys/socket.h>
+#include <linux/ethtool.h>
+#include <linux/sockios.h>
 
 #include <rte_string_fns.h>
 
@@ -40,3 +42,110 @@ osdep_iface_mac_get(const char *if_name, struct rte_ether_addr *mac)
 	close(if_fd);
 	return 0;
 }
+
+/*
+ * Get link speed, duplex, and autoneg using ETHTOOL_GLINKSETTINGS.
+ *
+ * ETHTOOL_GLINKSETTINGS was introduced in kernel 4.7 and supports
+ * speeds beyond 65535 Mbps (up to 800 Gbps and beyond).
+ * DPDK requires kernel 4.19 or later, so this interface is always available.
+ *
+ * Returns 0 on success, -1 on failure.
+ */
+static int
+get_link_settings(int fd, struct ifreq *ifr, struct osdep_iface_link *link)
+{
+	struct ethtool_link_settings *req;
+	int nwords;
+
+	/* First call with nwords = 0 to get the required size */
+	req = alloca(sizeof(*req));
+	memset(req, 0, sizeof(*req));
+	req->cmd = ETHTOOL_GLINKSETTINGS;
+	ifr->ifr_data = (void *)req;
+
+	if (ioctl(fd, SIOCETHTOOL, ifr) < 0)
+		return -1;
+
+	/* Kernel returns negative nwords on first call */
+	if (req->link_mode_masks_nwords >= 0)
+		return -1;
+
+	nwords = -req->link_mode_masks_nwords;
+
+	/* Bounds check */
+	if (nwords == 0 || nwords > 127)
+		return -1;
+
+	/* Second call with correct nwords - need space for 3 link mode masks */
+	req = alloca(sizeof(*req) + 3 * nwords * sizeof(uint32_t));
+	memset(req, 0, sizeof(*req));
+	req->cmd = ETHTOOL_GLINKSETTINGS;
+	req->link_mode_masks_nwords = nwords;
+	ifr->ifr_data = (void *)req;
+
+	if (ioctl(fd, SIOCETHTOOL, ifr) < 0)
+		return -1;
+
+	/* Speed is in Mbps, directly usable */
+	link->link_speed = req->speed;
+
+	/* Handle special values */
+	if (link->link_speed == (uint32_t)SPEED_UNKNOWN ||
+	    link->link_speed == (uint32_t)-1)
+		link->link_speed = 0;
+
+	switch (req->duplex) {
+	case DUPLEX_FULL:
+		link->link_duplex = 1;
+		break;
+	case DUPLEX_HALF:
+		link->link_duplex = 0;
+		break;
+	default:
+		link->link_duplex = 1;  /* Default to full duplex */
+		break;
+	}
+
+	link->link_autoneg = (req->autoneg == AUTONEG_ENABLE) ? 1 : 0;
+	return 0;
+}
+
+int
+osdep_iface_link_get(const char *if_name, struct osdep_iface_link *link)
+{
+	struct ifreq ifr;
+	int if_fd;
+
+	memset(link, 0, sizeof(*link));
+
+	if_fd = socket(AF_INET, SOCK_DGRAM, 0);
+	if (if_fd == -1)
+		return -1;
+
+	/* Get interface flags to determine link status */
+	rte_strscpy(ifr.ifr_name, if_name, sizeof(ifr.ifr_name));
+	if (ioctl(if_fd, SIOCGIFFLAGS, &ifr) == 0) {
+		/*
+		 * IFF_UP means administratively up
+		 * IFF_RUNNING means operationally up (carrier detected)
+		 */
+		if ((ifr.ifr_flags & IFF_UP) && (ifr.ifr_flags & IFF_RUNNING))
+			link->link_status = 1;
+	}
+
+	rte_strscpy(ifr.ifr_name, if_name, sizeof(ifr.ifr_name));
+	if (get_link_settings(if_fd, &ifr, link) < 0) {
+		/*
+		 * ethtool failed - interface may not support it
+		 * (e.g., virtual interfaces like veth, lo).
+		 * Use reasonable defaults.
+		 */
+		link->link_speed = 0;
+		link->link_duplex = 1;  /* Assume full duplex */
+		link->link_autoneg = 0;
+	}
+
+	close(if_fd);
+	return 0;
+}
diff --git a/drivers/net/pcap/pcap_osdep_windows.c b/drivers/net/pcap/pcap_osdep_windows.c
index 1d398dc7ed..1b76ae3185 100644
--- a/drivers/net/pcap/pcap_osdep_windows.c
+++ b/drivers/net/pcap/pcap_osdep_windows.c
@@ -61,38 +61,56 @@ osdep_iface_index_get(const char *device_name)
 }
 
 /*
- * libpcap takes device names like "\Device\NPF_{GUID}",
- * GetAdaptersAddresses() returns names in "{GUID}" form.
- * Try to extract GUID from device name, fall back to original device name.
+ * Helper function to get adapter information by name.
+ * Returns adapter info on success, NULL on failure.
+ * Caller must free the returned buffer.
  */
-int
-osdep_iface_mac_get(const char *device_name, struct rte_ether_addr *mac)
+static IP_ADAPTER_ADDRESSES *
+get_adapter_addresses(void)
 {
-	IP_ADAPTER_ADDRESSES *info = NULL, *cur = NULL;
-	ULONG size, sys_ret;
-	const char *adapter_name;
-	int ret = -1;
+	IP_ADAPTER_ADDRESSES *info = NULL;
+	ULONG size;
+	DWORD sys_ret;
 
 	sys_ret = GetAdaptersAddresses(AF_UNSPEC, 0, NULL, NULL, &size);
 	if (sys_ret != ERROR_BUFFER_OVERFLOW) {
 		PMD_LOG(ERR, "GetAdapterAddresses() = %lu, expected %lu\n",
 			sys_ret, ERROR_BUFFER_OVERFLOW);
-		return -1;
+		return NULL;
 	}
 
 	info = (IP_ADAPTER_ADDRESSES *)malloc(size);
 	if (info == NULL) {
 		PMD_LOG(ERR, "Cannot allocate adapter address info\n");
-		return -1;
+		return NULL;
 	}
 
 	sys_ret = GetAdaptersAddresses(AF_UNSPEC, 0, NULL, info, &size);
 	if (sys_ret != ERROR_SUCCESS) {
 		PMD_LOG(ERR, "GetAdapterAddresses() = %lu\n", sys_ret);
 		free(info);
-		return -1;
+		return NULL;
 	}
 
+	return info;
+}
+
+/*
+ * libpcap takes device names like "\Device\NPF_{GUID}",
+ * GetAdaptersAddresses() returns names in "{GUID}" form.
+ * Try to extract GUID from device name, fall back to original device name.
+ */
+int
+osdep_iface_mac_get(const char *device_name, struct rte_ether_addr *mac)
+{
+	IP_ADAPTER_ADDRESSES *info = NULL, *cur = NULL;
+	const char *adapter_name;
+	int ret = -1;
+
+	info = get_adapter_addresses();
+	if (info == NULL)
+		return -1;
+
 	adapter_name = iface_guid(device_name);
 	if (adapter_name == NULL)
 		adapter_name = device_name;
@@ -116,3 +134,56 @@ osdep_iface_mac_get(const char *device_name, struct rte_ether_addr *mac)
 	free(info);
 	return ret;
 }
+
+int
+osdep_iface_link_get(const char *device_name, struct osdep_iface_link *link)
+{
+	IP_ADAPTER_ADDRESSES *info = NULL, *cur = NULL;
+	const char *adapter_name;
+	int ret = -1;
+
+	memset(link, 0, sizeof(*link));
+
+	info = get_adapter_addresses();
+	if (info == NULL)
+		return -1;
+
+	adapter_name = iface_guid(device_name);
+	if (adapter_name == NULL)
+		adapter_name = device_name;
+
+	for (cur = info; cur != NULL; cur = cur->Next) {
+		if (strcmp(cur->AdapterName, adapter_name) == 0) {
+			/* Check operational status */
+			if (cur->OperStatus == IfOperStatusUp)
+				link->link_status = 1;
+			else
+				link->link_status = 0;
+
+			/*
+			 * TransmitLinkSpeed and ReceiveLinkSpeed are in bits/sec.
+			 * Convert to Mbps. Use transmit speed as the link speed.
+			 * For asymmetric links, this is a reasonable approximation.
+			 */
+			if (cur->TransmitLinkSpeed != 0 &&
+			    cur->TransmitLinkSpeed != (ULONG64)-1) {
+				link->link_speed =
+					(uint32_t)(cur->TransmitLinkSpeed / 1000000ULL);
+			}
+
+			/*
+			 * Windows doesn't directly expose duplex/autoneg via
+			 * GetAdaptersAddresses(). Default to full duplex.
+			 * For more detailed info, WMI or OID queries would be needed.
+			 */
+			link->link_duplex = 1;  /* Assume full duplex */
+			link->link_autoneg = 0; /* Cannot determine */
+
+			ret = 0;
+			break;
+		}
+	}
+
+	free(info);
+	return ret;
+}
-- 
2.51.0


  parent reply	other threads:[~2026-01-28 18:42 UTC|newest]

Thread overview: 543+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-01-06 18:26 [PATCH 00/12] net/pcap: cleanups and test Stephen Hemminger
2026-01-06 18:26 ` [PATCH 01/12] net/pcap: avoid using rte_malloc and rte_memcpy Stephen Hemminger
2026-01-06 18:26 ` [PATCH 02/12] net/pcap: support MTU set Stephen Hemminger
2026-01-06 18:26 ` [PATCH 03/12] net/pcap: use bool for flags Stephen Hemminger
2026-01-07 10:28   ` Marat Khalili
2026-01-09  0:23     ` Stephen Hemminger
2026-01-06 18:26 ` [PATCH 04/12] net/pcap: support Tx offloads Stephen Hemminger
2026-01-06 18:26 ` [PATCH 05/12] net/pcap: support nanosecond timestamp precision Stephen Hemminger
2026-01-06 18:26 ` [PATCH 06/12] net/pcap: remove global variables Stephen Hemminger
2026-01-07  9:48   ` Marat Khalili
2026-01-06 18:26 ` [PATCH 07/12] net/pcap: avoid use of volatile Stephen Hemminger
2026-01-07 10:31   ` Marat Khalili
2026-01-06 18:26 ` [PATCH 08/12] net/pcap: optimize calculation of receive timestamp Stephen Hemminger
2026-01-07 10:58   ` Marat Khalili
2026-01-06 18:26 ` [PATCH 09/12] net/pcap: report receive clock Stephen Hemminger
2026-01-06 18:26 ` [PATCH 10/12] net/pcap: cleanup MAC address handling Stephen Hemminger
2026-01-06 18:26 ` [PATCH 11/12] net/pcap: support MAC address set Stephen Hemminger
2026-01-06 18:26 ` [PATCH 12/12] test: add test for pcap PMD Stephen Hemminger
2026-01-09  1:16 ` [PATCH v2 0/9] pcap: cleanup pcap PMD and add test Stephen Hemminger
2026-01-09  1:16   ` [PATCH v2 1/9] net/pcap: avoid using rte_malloc and rte_memcpy Stephen Hemminger
2026-01-09  1:16   ` [PATCH v2 2/9] net/pcap: support MTU set Stephen Hemminger
2026-01-09  1:16   ` [PATCH v2 3/9] net/pcap: use bool for flags Stephen Hemminger
2026-01-09  1:16   ` [PATCH v2 4/9] net/pcap: support Tx offloads Stephen Hemminger
2026-01-09  1:16   ` [PATCH v2 5/9] net/pcap: support nanosecond timestamp precision Stephen Hemminger
2026-01-09  1:16   ` [PATCH v2 6/9] net/pcap: remove global variables Stephen Hemminger
2026-01-09  1:16   ` [PATCH v2 7/9] net/pcap: avoid use of volatile Stephen Hemminger
2026-01-09  1:16   ` [PATCH v2 8/9] net/pcap: support MAC address set Stephen Hemminger
2026-01-09  1:16   ` [PATCH v2 9/9] test: add test for pcap PMD Stephen Hemminger
2026-01-12  0:50   ` [PATCH v2 0/9] pcap: cleanup pcap PMD and add test Stephen Hemminger
2026-01-13 19:23 ` [PATCH v3 0/9] net/pcap: improvements and test coverage Stephen Hemminger
2026-01-13 19:23   ` [PATCH v3 1/9] doc: update features for PCAP PMD Stephen Hemminger
2026-01-13 19:23   ` [PATCH v3 2/9] net/pcap: avoid using rte_malloc and rte_memcpy Stephen Hemminger
2026-01-13 19:23   ` [PATCH v3 3/9] net/pcap: support MTU set Stephen Hemminger
2026-01-13 19:23   ` [PATCH v3 4/9] net/pcap: use bool for flags Stephen Hemminger
2026-01-13 19:23   ` [PATCH v3 5/9] net/pcap: support Tx offloads Stephen Hemminger
2026-01-13 19:23   ` [PATCH v3 6/9] net/pcap: support nanosecond timestamp precision Stephen Hemminger
2026-01-13 19:23   ` [PATCH v3 7/9] net/pcap: remove global variables Stephen Hemminger
2026-01-13 19:23   ` [PATCH v3 8/9] net/pcap: avoid use of volatile Stephen Hemminger
2026-01-13 19:23   ` [PATCH v3 9/9] test: add test for pcap PMD Stephen Hemminger
2026-01-17 21:56 ` [PATCH v4 00/11] PCAP PMD improvements Stephen Hemminger
2026-01-17 21:57   ` [PATCH v4 01/11] doc: update features for PCAP PMD Stephen Hemminger
2026-01-17 21:57   ` [PATCH v4 02/11] net/pcap: avoid using rte_malloc and rte_memcpy Stephen Hemminger
2026-01-17 21:57   ` [PATCH v4 03/11] net/pcap: cleanup transmit of multi segment Stephen Hemminger
2026-01-17 21:57   ` [PATCH v4 04/11] net/pcap: support setting MTU Stephen Hemminger
2026-01-17 21:57   ` [PATCH v4 05/11] net/pcap: use bool for flags Stephen Hemminger
2026-01-19 12:43     ` Marat Khalili
2026-01-17 21:57   ` [PATCH v4 06/11] net/pcap: support VLAN offloads Stephen Hemminger
2026-01-17 21:57   ` [PATCH v4 07/11] net/pcap: support nanosecond timestamp precision Stephen Hemminger
2026-01-17 21:57   ` [PATCH v4 08/11] net/pcap: remove global variables Stephen Hemminger
2026-01-17 21:57   ` [PATCH v4 09/11] net/pcap: avoid use of volatile Stephen Hemminger
2026-01-17 21:57   ` [PATCH v4 10/11] test: add test for pcap PMD Stephen Hemminger
2026-01-17 21:57   ` [PATCH v4 11/11] net/pcap: add release note Stephen Hemminger
2026-01-18 16:58 ` [PATCH v5 00/11] PCAP PMD improvements Stephen Hemminger
2026-01-18 16:58   ` [PATCH v5 01/11] doc: update features for PCAP PMD Stephen Hemminger
2026-01-18 16:58   ` [PATCH v5 02/11] net/pcap: avoid using rte_malloc and rte_memcpy Stephen Hemminger
2026-01-18 16:58   ` [PATCH v5 03/11] net/pcap: cleanup transmit of multi segment Stephen Hemminger
2026-01-18 16:58   ` [PATCH v5 04/11] net/pcap: support setting MTU Stephen Hemminger
2026-01-18 16:58   ` [PATCH v5 05/11] net/pcap: use bool for flags Stephen Hemminger
2026-01-18 16:58   ` [PATCH v5 06/11] net/pcap: support VLAN offloads Stephen Hemminger
2026-01-18 16:58   ` [PATCH v5 07/11] net/pcap: support nanosecond timestamp precision Stephen Hemminger
2026-01-18 16:58   ` [PATCH v5 08/11] net/pcap: remove global variables Stephen Hemminger
2026-01-18 16:58   ` [PATCH v5 09/11] net/pcap: avoid use of volatile Stephen Hemminger
2026-01-18 16:58   ` [PATCH v5 10/11] test: add test for pcap PMD Stephen Hemminger
2026-01-18 16:58   ` [PATCH v5 11/11] net/pcap: add release note Stephen Hemminger
2026-01-25 19:19 ` [PATCH v6 00/13] net/pcap: improvements and new features Stephen Hemminger
2026-01-25 19:19   ` [PATCH v6 01/13] maintainers: update for pcap driver Stephen Hemminger
2026-01-25 19:20   ` [PATCH v6 02/13] doc: update features for PCAP PMD Stephen Hemminger
2026-01-25 19:20   ` [PATCH v6 03/13] net/pcap: include used headers Stephen Hemminger
2026-01-25 19:20   ` [PATCH v6 04/13] net/pcap: remove unnecessary casts Stephen Hemminger
2026-01-25 19:20   ` [PATCH v6 05/13] net/pcap: avoid using rte_malloc and rte_memcpy Stephen Hemminger
2026-01-25 19:20   ` [PATCH v6 06/13] net/pcap: improve multi-segment transmit handling Stephen Hemminger
2026-01-25 19:20   ` [PATCH v6 07/13] net/pcap: support MTU configuration in single interface mode Stephen Hemminger
2026-01-25 19:20   ` [PATCH v6 08/13] net/pcap: consolidate boolean flag handling Stephen Hemminger
2026-01-25 19:20   ` [PATCH v6 09/13] net/pcap: support VLAN insert and strip Stephen Hemminger
2026-01-25 19:20   ` [PATCH v6 10/13] net/pcap: support nanosecond timestamp precision Stephen Hemminger
2026-01-25 19:20   ` [PATCH v6 11/13] net/pcap: reduce scope of file-level variables Stephen Hemminger
2026-01-25 19:20   ` [PATCH v6 12/13] net/pcap: avoid use of volatile Stephen Hemminger
2026-01-25 19:20   ` [PATCH v6 13/13] test: add test for pcap PMD Stephen Hemminger
2026-01-26 18:06 ` [PATCH v7 00/13] net/pcap: improvements and test suite Stephen Hemminger
2026-01-26 18:06   ` [PATCH v7 01/13] maintainers: update for pcap driver Stephen Hemminger
2026-01-26 18:06   ` [PATCH v7 02/13] doc: update features for PCAP PMD Stephen Hemminger
2026-01-26 18:06   ` [PATCH v7 03/13] net/pcap: include used headers Stephen Hemminger
2026-01-26 18:06   ` [PATCH v7 04/13] net/pcap: remove unnecessary casts Stephen Hemminger
2026-01-26 18:06   ` [PATCH v7 05/13] net/pcap: avoid using rte_malloc and rte_memcpy Stephen Hemminger
2026-01-26 18:06   ` [PATCH v7 06/13] net/pcap: improve multi-segment transmit handling Stephen Hemminger
2026-01-26 18:06   ` [PATCH v7 07/13] net/pcap: consolidate boolean flag handling Stephen Hemminger
2026-01-26 18:06   ` [PATCH v7 08/13] net/pcap: support VLAN insert and strip Stephen Hemminger
2026-01-26 18:06   ` [PATCH v7 09/13] net/pcap: add link state and speed for interface mode Stephen Hemminger
2026-01-26 18:06   ` [PATCH v7 10/13] net/pcap: support nanosecond timestamp precision Stephen Hemminger
2026-01-26 18:06   ` [PATCH v7 11/13] net/pcap: reduce scope of file-level variables Stephen Hemminger
2026-01-26 18:06   ` [PATCH v7 12/13] net/pcap: avoid use of volatile Stephen Hemminger
2026-01-26 18:06   ` [PATCH v7 13/13] test: add test for pcap PMD Stephen Hemminger
2026-01-27 17:18 ` [PATCH v8 00/14] net/pcap: improvements and test suite Stephen Hemminger
2026-01-27 17:18   ` [PATCH v8 01/14] maintainers: update for pcap driver Stephen Hemminger
2026-01-27 17:18   ` [PATCH v8 02/14] doc: update features for PCAP PMD Stephen Hemminger
2026-01-27 17:18   ` [PATCH v8 03/14] net/pcap: include used headers Stephen Hemminger
2026-01-27 17:18   ` [PATCH v8 04/14] net/pcap: remove unnecessary casts Stephen Hemminger
2026-01-27 17:18   ` [PATCH v8 05/14] net/pcap: avoid using rte_malloc and rte_memcpy Stephen Hemminger
2026-01-27 17:18   ` [PATCH v8 06/14] net/pcap: improve multi-segment transmit handling Stephen Hemminger
2026-01-27 17:18   ` [PATCH v8 07/14] net/pcap: consolidate boolean flag handling Stephen Hemminger
2026-01-27 17:18   ` [PATCH v8 08/14] net/pcap: support VLAN insert and strip Stephen Hemminger
2026-01-27 17:18   ` [PATCH v8 09/14] net/pcap: add link state and speed for interface mode Stephen Hemminger
2026-01-27 17:18   ` [PATCH v8 10/14] net/pcap: support nanosecond timestamp precision Stephen Hemminger
2026-01-27 17:18   ` [PATCH v8 11/14] net/pcap: reduce scope of file-level variables Stephen Hemminger
2026-01-27 17:18   ` [PATCH v8 12/14] net/pcap: avoid use of volatile Stephen Hemminger
2026-01-27 17:18   ` [PATCH v8 13/14] net/pcap: clarify maximum received packet Stephen Hemminger
2026-01-27 17:18   ` [PATCH v8 14/14] test: add test for pcap PMD Stephen Hemminger
2026-01-28 18:40 ` [PATCH v9 00/15] net/pcap: improvements and test suite Stephen Hemminger
2026-01-28 18:40   ` [PATCH v9 01/15] maintainers: update for pcap driver Stephen Hemminger
2026-01-28 18:40   ` [PATCH v9 02/15] doc: update features for PCAP PMD Stephen Hemminger
2026-01-28 18:40   ` [PATCH v9 03/15] net/pcap: include used headers Stephen Hemminger
2026-01-28 18:40   ` [PATCH v9 04/15] net/pcap: remove unnecessary casts Stephen Hemminger
2026-01-28 18:40   ` [PATCH v9 05/15] net/pcap: avoid using rte_malloc and rte_memcpy Stephen Hemminger
2026-01-28 18:40   ` [PATCH v9 06/15] net/pcap: improve multi-segment transmit handling Stephen Hemminger
2026-01-28 18:40   ` [PATCH v9 07/15] net/pcap: consolidate boolean flag handling Stephen Hemminger
2026-01-28 18:40   ` [PATCH v9 08/15] net/pcap: support VLAN insert and strip Stephen Hemminger
2026-01-28 18:40   ` Stephen Hemminger [this message]
2026-01-28 18:40   ` [PATCH v9 10/15] net/pcap: support nanosecond timestamp precision Stephen Hemminger
2026-01-28 18:40   ` [PATCH v9 11/15] net/pcap: reduce scope of file-level variables Stephen Hemminger
2026-01-28 18:40   ` [PATCH v9 12/15] net/pcap: avoid use of volatile Stephen Hemminger
2026-01-28 18:40   ` [PATCH v9 13/15] net/pcap: clarify maximum received packet Stephen Hemminger
2026-01-28 18:40   ` [PATCH v9 14/15] test: add test for pcap PMD Stephen Hemminger
2026-01-28 18:40   ` [PATCH v9 15/15] net/pcap: add snapshot length devarg Stephen Hemminger
2026-01-30  1:12 ` [PATCH v10 00/19] net/pcap: improvements and test suite Stephen Hemminger
2026-01-30  1:12   ` [PATCH v10 01/19] maintainers: update for pcap driver Stephen Hemminger
2026-01-30  1:12   ` [PATCH v10 02/19] doc: update features for PCAP PMD Stephen Hemminger
2026-01-30  1:12   ` [PATCH v10 03/19] net/pcap: include used headers Stephen Hemminger
2026-01-30  1:12   ` [PATCH v10 04/19] net/pcap: remove unnecessary casts Stephen Hemminger
2026-01-30  1:12   ` [PATCH v10 05/19] net/pcap: avoid using rte_malloc and rte_memcpy Stephen Hemminger
2026-01-30  1:12   ` [PATCH v10 06/19] net/pcap: use bulk free Stephen Hemminger
2026-01-30  1:12   ` [PATCH v10 07/19] net/pcap: allocate Tx bounce buffer Stephen Hemminger
2026-01-30  1:12   ` [PATCH v10 08/19] net/pcap: cleanup transmit buffer handling Stephen Hemminger
2026-01-30  1:12   ` [PATCH v10 09/19] net/pcap: report multi-segment transmit capability Stephen Hemminger
2026-01-30  1:12   ` [PATCH v10 10/19] net/pcap: consolidate boolean flag handling Stephen Hemminger
2026-01-30  1:12   ` [PATCH v10 11/19] net/pcap: support VLAN insert and strip Stephen Hemminger
2026-01-30  1:12   ` [PATCH v10 12/19] net/pcap: add link state and speed for interface mode Stephen Hemminger
2026-01-30  1:12   ` [PATCH v10 13/19] net/pcap: support nanosecond timestamp precision Stephen Hemminger
2026-01-30  1:12   ` [PATCH v10 14/19] net/pcap: reject non-Ethernet interfaces Stephen Hemminger
2026-01-30  1:12   ` [PATCH v10 15/19] net/pcap: reduce scope of file-level variables Stephen Hemminger
2026-01-30  1:12   ` [PATCH v10 16/19] net/pcap: avoid use of volatile Stephen Hemminger
2026-01-30  1:12   ` [PATCH v10 17/19] net/pcap: clarify maximum received packet Stephen Hemminger
2026-01-30  1:12   ` [PATCH v10 18/19] net/pcap: add snapshot length devarg Stephen Hemminger
2026-01-30  1:12   ` [PATCH v10 19/19] test: add test for pcap PMD Stephen Hemminger
2026-01-30 17:33 ` [PATCH v11 00/19] net/pcap: improvements and test suite Stephen Hemminger
2026-01-30 17:33   ` [PATCH v11 01/19] maintainers: update for pcap driver Stephen Hemminger
2026-01-30 17:33   ` [PATCH v11 02/19] doc: update features for PCAP PMD Stephen Hemminger
2026-01-30 17:33   ` [PATCH v11 03/19] net/pcap: include used headers Stephen Hemminger
2026-01-30 17:33   ` [PATCH v11 04/19] net/pcap: remove unnecessary casts Stephen Hemminger
2026-01-30 17:33   ` [PATCH v11 05/19] net/pcap: avoid using rte_malloc and rte_memcpy Stephen Hemminger
2026-01-30 17:33   ` [PATCH v11 06/19] net/pcap: use bulk free Stephen Hemminger
2026-01-30 17:33   ` [PATCH v11 07/19] net/pcap: allocate Tx bounce buffer Stephen Hemminger
2026-01-30 17:33   ` [PATCH v11 08/19] net/pcap: cleanup transmit buffer handling Stephen Hemminger
2026-01-30 17:33   ` [PATCH v11 09/19] net/pcap: report multi-segment transmit capability Stephen Hemminger
2026-01-30 17:33   ` [PATCH v11 10/19] net/pcap: consolidate boolean flag handling Stephen Hemminger
2026-01-30 17:33   ` [PATCH v11 11/19] net/pcap: support VLAN insert and strip Stephen Hemminger
2026-01-30 17:33   ` [PATCH v11 12/19] net/pcap: add link state and speed for interface mode Stephen Hemminger
2026-01-30 17:33   ` [PATCH v11 13/19] net/pcap: support nanosecond timestamp precision Stephen Hemminger
2026-01-30 17:33   ` [PATCH v11 14/19] net/pcap: reject non-Ethernet interfaces Stephen Hemminger
2026-01-30 17:33   ` [PATCH v11 15/19] net/pcap: reduce scope of file-level variables Stephen Hemminger
2026-01-30 17:33   ` [PATCH v11 16/19] net/pcap: avoid use of volatile Stephen Hemminger
2026-01-30 17:33   ` [PATCH v11 17/19] net/pcap: clarify maximum received packet Stephen Hemminger
2026-01-30 17:33   ` [PATCH v11 18/19] net/pcap: add snapshot length devarg Stephen Hemminger
2026-01-30 17:33   ` [PATCH v11 19/19] test: add test for pcap PMD Stephen Hemminger
2026-02-02 23:09 ` [PATCH v12 00/19] net/pcap: improvements and test suite Stephen Hemminger
2026-02-02 23:09   ` [PATCH v12 01/19] maintainers: update for pcap driver Stephen Hemminger
2026-02-02 23:09   ` [PATCH v12 02/19] doc: update features for PCAP PMD Stephen Hemminger
2026-02-02 23:09   ` [PATCH v12 03/19] net/pcap: include used headers Stephen Hemminger
2026-02-02 23:09   ` [PATCH v12 04/19] net/pcap: remove unnecessary casts Stephen Hemminger
2026-02-02 23:09   ` [PATCH v12 05/19] net/pcap: avoid using rte_malloc and rte_memcpy Stephen Hemminger
2026-02-02 23:09   ` [PATCH v12 06/19] net/pcap: use bulk free Stephen Hemminger
2026-02-02 23:09   ` [PATCH v12 07/19] net/pcap: allocate Tx bounce buffer Stephen Hemminger
2026-02-02 23:09   ` [PATCH v12 08/19] net/pcap: cleanup transmit buffer handling Stephen Hemminger
2026-02-02 23:09   ` [PATCH v12 09/19] net/pcap: report multi-segment transmit capability Stephen Hemminger
2026-02-02 23:09   ` [PATCH v12 10/19] net/pcap: consolidate boolean flag handling Stephen Hemminger
2026-02-02 23:09   ` [PATCH v12 11/19] net/pcap: support VLAN insert and strip Stephen Hemminger
2026-02-02 23:09   ` [PATCH v12 12/19] net/pcap: add link state and speed for interface mode Stephen Hemminger
2026-02-02 23:09   ` [PATCH v12 13/19] net/pcap: support nanosecond timestamp precision Stephen Hemminger
2026-02-02 23:09   ` [PATCH v12 14/19] net/pcap: reject non-Ethernet interfaces Stephen Hemminger
2026-02-02 23:09   ` [PATCH v12 15/19] net/pcap: reduce scope of file-level variables Stephen Hemminger
2026-02-02 23:09   ` [PATCH v12 16/19] net/pcap: avoid use of volatile Stephen Hemminger
2026-02-02 23:09   ` [PATCH v12 17/19] net/pcap: clarify maximum received packet Stephen Hemminger
2026-02-02 23:09   ` [PATCH v12 18/19] net/pcap: add snapshot length devarg Stephen Hemminger
2026-02-02 23:09   ` [PATCH v12 19/19] test: add test for pcap PMD Stephen Hemminger
2026-02-10  0:00 ` [PATCH v13 00/16] net/pcap: improvements and test suite Stephen Hemminger
2026-02-10  0:00   ` [PATCH v13 01/16] maintainers: update for pcap driver Stephen Hemminger
2026-02-10  0:00   ` [PATCH v13 02/16] doc: update features for PCAP PMD Stephen Hemminger
2026-02-10  0:00   ` [PATCH v13 03/16] net/pcap: include used headers Stephen Hemminger
2026-02-10  0:00   ` [PATCH v13 04/16] net/pcap: remove unnecessary casts Stephen Hemminger
2026-02-10  0:00   ` [PATCH v13 05/16] net/pcap: avoid using rte_malloc and rte_memcpy Stephen Hemminger
2026-02-10  0:00   ` [PATCH v13 06/16] net/pcap: cleanup transmit burst logic Stephen Hemminger
2026-02-10  0:00   ` [PATCH v13 07/16] net/pcap: consolidate boolean flag handling Stephen Hemminger
2026-02-10  0:00   ` [PATCH v13 08/16] net/pcap: support VLAN insert and strip Stephen Hemminger
2026-02-23 11:34     ` David Marchand
2026-02-10  0:00   ` [PATCH v13 09/16] net/pcap: add link state and speed for interface mode Stephen Hemminger
2026-02-10  0:00   ` [PATCH v13 10/16] net/pcap: support nanosecond timestamp precision Stephen Hemminger
2026-02-10  0:00   ` [PATCH v13 11/16] net/pcap: reject non-Ethernet interfaces Stephen Hemminger
2026-02-10  0:00   ` [PATCH v13 12/16] net/pcap: reduce scope of file-level variables Stephen Hemminger
2026-02-10  0:00   ` [PATCH v13 13/16] net/pcap: avoid use of volatile Stephen Hemminger
2026-02-10  0:00   ` [PATCH v13 14/16] net/pcap: clarify maximum received packet Stephen Hemminger
2026-02-10  0:00   ` [PATCH v13 15/16] net/pcap: add snapshot length devarg Stephen Hemminger
2026-02-10  0:00   ` [PATCH v13 16/16] test: add test for pcap PMD Stephen Hemminger
2026-04-29 15:27     ` David Marchand
2026-02-11 21:09 ` [PATCH v14 00/18] net/pcap: improvements and test suite Stephen Hemminger
2026-02-11 21:09   ` [PATCH v14 01/18] maintainers: update for pcap driver Stephen Hemminger
2026-02-11 21:09   ` [PATCH v14 02/18] doc: update features for PCAP PMD Stephen Hemminger
2026-02-11 21:09   ` [PATCH v14 03/18] net/pcap: include used headers Stephen Hemminger
2026-02-11 21:09   ` [PATCH v14 04/18] net/pcap: remove unnecessary casts Stephen Hemminger
2026-02-11 21:09   ` [PATCH v14 05/18] net/pcap: avoid using rte_malloc and rte_memcpy Stephen Hemminger
2026-02-11 21:09   ` [PATCH v14 06/18] net/pcap: rework transmit burst handling Stephen Hemminger
2026-02-11 21:09   ` [PATCH v14 07/18] net/pcap: consolidate boolean flag handling Stephen Hemminger
2026-02-11 21:09   ` [PATCH v14 08/18] net/pcap: support VLAN strip and insert offloads Stephen Hemminger
2026-02-11 21:09   ` [PATCH v14 09/18] net/pcap: add link state and speed for interface mode Stephen Hemminger
2026-02-11 21:09   ` [PATCH v14 10/18] net/pcap: support nanosecond timestamp precision Stephen Hemminger
2026-02-11 21:09   ` [PATCH v14 11/18] net/pcap: reject non-Ethernet interfaces Stephen Hemminger
2026-02-11 21:09   ` [PATCH v14 12/18] net/pcap: reduce scope of file-level variables Stephen Hemminger
2026-02-11 21:09   ` [PATCH v14 13/18] net/pcap: avoid use of volatile Stephen Hemminger
2026-02-11 21:09   ` [PATCH v14 14/18] net/pcap: clarify maximum received packet Stephen Hemminger
2026-02-11 21:09   ` [PATCH v14 15/18] net/pcap: add snapshot length devarg Stephen Hemminger
2026-02-11 21:09   ` [PATCH v14 16/18] net/pcap: add link status change support for iface mode Stephen Hemminger
2026-02-11 21:09   ` [PATCH v14 17/18] net/pcap: add EOF notification via link status change Stephen Hemminger
2026-02-11 21:09   ` [PATCH v14 18/18] test: add comprehensive test suite for pcap PMD Stephen Hemminger
2026-02-13 17:01 ` [PATCH v15 00/18] net/pcap: improvements and test suite Stephen Hemminger
2026-02-13 17:01   ` [PATCH v15 01/18] maintainers: update for pcap driver Stephen Hemminger
2026-02-13 17:01   ` [PATCH v15 02/18] doc: update features for PCAP PMD Stephen Hemminger
2026-02-13 17:01   ` [PATCH v15 03/18] net/pcap: include used headers Stephen Hemminger
2026-02-13 17:01   ` [PATCH v15 04/18] net/pcap: remove unnecessary casts Stephen Hemminger
2026-02-13 17:01   ` [PATCH v15 05/18] net/pcap: avoid using rte_malloc and rte_memcpy Stephen Hemminger
2026-02-13 17:01   ` [PATCH v15 06/18] net/pcap: rework transmit burst handling Stephen Hemminger
2026-02-16 10:02     ` David Marchand
2026-02-13 17:01   ` [PATCH v15 07/18] net/pcap: consolidate boolean flag handling Stephen Hemminger
2026-02-13 17:01   ` [PATCH v15 08/18] net/pcap: support VLAN strip and insert offloads Stephen Hemminger
2026-02-13 17:01   ` [PATCH v15 09/18] net/pcap: add link state and speed for interface mode Stephen Hemminger
2026-02-13 17:01   ` [PATCH v15 10/18] net/pcap: support nanosecond timestamp precision Stephen Hemminger
2026-02-13 17:01   ` [PATCH v15 11/18] net/pcap: reject non-Ethernet interfaces Stephen Hemminger
2026-02-13 17:01   ` [PATCH v15 12/18] net/pcap: reduce scope of file-level variables Stephen Hemminger
2026-02-13 17:01   ` [PATCH v15 13/18] net/pcap: avoid use of volatile Stephen Hemminger
2026-02-13 17:01   ` [PATCH v15 14/18] net/pcap: clarify maximum received packet Stephen Hemminger
2026-02-13 17:01   ` [PATCH v15 15/18] net/pcap: add snapshot length devarg Stephen Hemminger
2026-02-13 17:01   ` [PATCH v15 16/18] net/pcap: add link status change support for iface mode Stephen Hemminger
2026-02-13 17:01   ` [PATCH v15 17/18] net/pcap: add EOF notification via link status change Stephen Hemminger
2026-02-13 17:01   ` [PATCH v15 18/18] test: add comprehensive test suite for pcap PMD Stephen Hemminger
2026-02-16 18:11 ` [PATCH v16 00/21] net/pcap: improvements and test suite Stephen Hemminger
2026-02-16 18:11   ` [PATCH v16 01/21] maintainers: update for pcap driver Stephen Hemminger
2026-02-16 18:11   ` [PATCH v16 02/21] doc: update features for PCAP PMD Stephen Hemminger
2026-02-16 18:11   ` [PATCH v16 03/21] net/pcap: include used headers Stephen Hemminger
2026-02-16 18:11   ` [PATCH v16 04/21] net/pcap: remove unnecessary casts Stephen Hemminger
2026-02-16 18:12   ` [PATCH v16 05/21] net/pcap: avoid using rte_malloc and rte_memcpy Stephen Hemminger
2026-02-16 18:12   ` [PATCH v16 06/21] net/pcap: advertise Tx multi segment Stephen Hemminger
2026-02-16 18:12   ` [PATCH v16 07/21] net/pcap: replace stack bounce buffer with per-queue allocation Stephen Hemminger
2026-02-16 18:12   ` [PATCH v16 08/21] net/pcap: fix error accounting and backpressure on transmit Stephen Hemminger
2026-02-16 18:12   ` [PATCH v16 09/21] net/pcap: add datapath debug logging Stephen Hemminger
2026-02-16 18:12   ` [PATCH v16 10/21] net/pcap: consolidate boolean flag handling Stephen Hemminger
2026-02-16 18:12   ` [PATCH v16 11/21] net/pcap: support VLAN strip and insert offloads Stephen Hemminger
2026-02-16 18:12   ` [PATCH v16 12/21] net/pcap: add link state and speed for interface mode Stephen Hemminger
2026-02-16 18:12   ` [PATCH v16 13/21] net/pcap: support nanosecond timestamp precision Stephen Hemminger
2026-02-16 18:12   ` [PATCH v16 14/21] net/pcap: reject non-Ethernet interfaces Stephen Hemminger
2026-02-16 18:12   ` [PATCH v16 15/21] net/pcap: reduce scope of file-level variables Stephen Hemminger
2026-02-16 18:12   ` [PATCH v16 16/21] net/pcap: avoid use of volatile Stephen Hemminger
2026-02-16 18:12   ` [PATCH v16 17/21] net/pcap: clarify maximum received packet Stephen Hemminger
2026-02-16 18:12   ` [PATCH v16 18/21] net/pcap: add snapshot length devarg Stephen Hemminger
2026-02-16 18:12   ` [PATCH v16 19/21] net/pcap: add link status change support for iface mode Stephen Hemminger
2026-02-16 18:12   ` [PATCH v16 20/21] net/pcap: add EOF notification via link status change Stephen Hemminger
2026-02-16 18:12   ` [PATCH v16 21/21] test: add comprehensive test suite for pcap PMD Stephen Hemminger
2026-02-20  5:45 ` [PATCH v17 00/23] net/pcap: fixes, test, and ehancements Stephen Hemminger
2026-02-20  5:45   ` [PATCH v17 01/23] maintainers: update for pcap driver Stephen Hemminger
2026-02-20  5:45   ` [PATCH v17 02/23] net/pcap: fix build on Windows Stephen Hemminger
2026-02-20  5:45   ` [PATCH v17 03/23] doc: update features for PCAP PMD Stephen Hemminger
2026-02-20  5:45   ` [PATCH v17 04/23] net/pcap: include used headers Stephen Hemminger
2026-02-20  5:45   ` [PATCH v17 05/23] net/pcap: remove unnecessary casts Stephen Hemminger
2026-02-20  5:45   ` [PATCH v17 06/23] net/pcap: avoid using rte_malloc and rte_memcpy Stephen Hemminger
2026-02-20  5:45   ` [PATCH v17 07/23] net/pcap: advertise Tx multi segment Stephen Hemminger
2026-02-20  5:45   ` [PATCH v17 08/23] net/pcap: replace stack bounce buffer Stephen Hemminger
2026-02-20  5:45   ` [PATCH v17 09/23] net/pcap: fix error accounting and backpressure on transmit Stephen Hemminger
2026-02-20  5:45   ` [PATCH v17 10/23] net/pcap: add datapath debug logging Stephen Hemminger
2026-02-20  5:45   ` [PATCH v17 11/23] net/pcap: consolidate boolean flag handling Stephen Hemminger
2026-02-20  5:45   ` [PATCH v17 12/23] net/pcap: support VLAN strip and insert offloads Stephen Hemminger
2026-02-20  5:45   ` [PATCH v17 13/23] net/pcap: add link state and speed for interface mode Stephen Hemminger
2026-02-20  5:45   ` [PATCH v17 14/23] net/pcap: support nanosecond timestamp precision Stephen Hemminger
2026-02-20  5:45   ` [PATCH v17 15/23] net/pcap: reject non-Ethernet interfaces Stephen Hemminger
2026-02-20  5:45   ` [PATCH v17 16/23] net/pcap: reduce scope of file-level variables Stephen Hemminger
2026-02-20  5:45   ` [PATCH v17 17/23] net/pcap: avoid use of volatile Stephen Hemminger
2026-02-20  5:45   ` [PATCH v17 18/23] net/pcap: clarify maximum received packet Stephen Hemminger
2026-02-20  5:45   ` [PATCH v17 19/23] eal/windows: add wrapper for access function Stephen Hemminger
2026-02-20  5:45   ` [PATCH v17 20/23] net/pcap: add snapshot length devarg Stephen Hemminger
2026-02-20  5:45   ` [PATCH v17 21/23] net/pcap: add link status change support for iface mode Stephen Hemminger
2026-02-20  5:45   ` [PATCH v17 22/23] net/pcap: add EOF notification via link status change Stephen Hemminger
2026-02-20  5:45   ` [PATCH v17 23/23] test: add comprehensive test suite for pcap PMD Stephen Hemminger
2026-03-01  2:05 ` [PATCH v18 00/23] net/pcap: fixes, test, and enhancements Stephen Hemminger
2026-03-01  2:05   ` [PATCH v18 01/23] maintainers: update for pcap driver Stephen Hemminger
2026-03-01  2:05   ` [PATCH v18 02/23] net/pcap: fix build on Windows Stephen Hemminger
2026-03-02  3:28     ` fengchengwen
2026-03-02  8:03     ` David Marchand
2026-03-01  2:05   ` [PATCH v18 03/23] doc: update features for PCAP PMD Stephen Hemminger
2026-03-01  2:05   ` [PATCH v18 04/23] net/pcap: include used headers Stephen Hemminger
2026-03-01  2:05   ` [PATCH v18 05/23] net/pcap: remove unnecessary casts Stephen Hemminger
2026-03-01  2:05   ` [PATCH v18 06/23] net/pcap: avoid using rte_malloc and rte_memcpy Stephen Hemminger
2026-03-01  2:05   ` [PATCH v18 07/23] net/pcap: advertise Tx multi segment Stephen Hemminger
2026-03-01  2:05   ` [PATCH v18 08/23] net/pcap: replace stack bounce buffer Stephen Hemminger
2026-03-01  2:05   ` [PATCH v18 09/23] net/pcap: fix error accounting and backpressure on transmit Stephen Hemminger
2026-03-01  2:05   ` [PATCH v18 10/23] net/pcap: add datapath debug logging Stephen Hemminger
2026-03-01  2:05   ` [PATCH v18 11/23] net/pcap: consolidate boolean flag handling Stephen Hemminger
2026-03-01  2:05   ` [PATCH v18 12/23] net/pcap: support VLAN strip and insert offloads Stephen Hemminger
2026-03-01  2:05   ` [PATCH v18 13/23] net/pcap: add link status for interface mode Stephen Hemminger
2026-03-01  2:05   ` [PATCH v18 14/23] net/pcap: support nanosecond timestamp precision Stephen Hemminger
2026-03-01  2:05   ` [PATCH v18 15/23] net/pcap: reject non-Ethernet interfaces Stephen Hemminger
2026-03-01  2:05   ` [PATCH v18 16/23] net/pcap: reduce scope of file-level variables Stephen Hemminger
2026-03-01  2:05   ` [PATCH v18 17/23] net/pcap: avoid use of volatile Stephen Hemminger
2026-03-01  2:05   ` [PATCH v18 18/23] net/pcap: clarify maximum received packet Stephen Hemminger
2026-03-01  2:05   ` [PATCH v18 19/23] eal/windows: add wrapper for access function Stephen Hemminger
2026-03-01  2:05   ` [PATCH v18 20/23] net/pcap: add snapshot length devarg Stephen Hemminger
2026-03-01  2:05   ` [PATCH v18 21/23] net/pcap: add link status change support for iface mode Stephen Hemminger
2026-03-01  2:05   ` [PATCH v18 22/23] net/pcap: add EOF notification via link status change Stephen Hemminger
2026-03-01  2:05   ` [PATCH v18 23/23] test: add comprehensive test suite for pcap PMD Stephen Hemminger
2026-03-10  2:47 ` [PATCH v19 00/24] net/pcap: fixes, test, and enhancements Stephen Hemminger
2026-03-10  2:47   ` [PATCH v19 01/25] maintainers: update for pcap driver Stephen Hemminger
2026-03-10  2:47   ` [PATCH v19 02/25] net/pcap: fix build on Windows Stephen Hemminger
2026-03-10  2:47   ` [PATCH v19 03/25] doc: update features for PCAP PMD Stephen Hemminger
2026-03-10  2:47   ` [PATCH v19 04/25] net/pcap: include used headers Stephen Hemminger
2026-03-10  2:47   ` [PATCH v19 05/25] net/pcap: remove unnecessary casts Stephen Hemminger
2026-03-10  2:47   ` [PATCH v19 06/25] net/pcap: avoid using rte_malloc and rte_memcpy Stephen Hemminger
2026-03-10  2:47   ` [PATCH v19 07/25] net/pcap: advertise Tx multi segment Stephen Hemminger
2026-03-10  2:47   ` [PATCH v19 08/25] net/pcap: replace stack bounce buffer Stephen Hemminger
2026-03-10  2:47   ` [PATCH v19 09/25] net/pcap: fix error accounting and backpressure on transmit Stephen Hemminger
2026-03-10  2:47   ` [PATCH v19 10/25] net/pcap: add datapath debug logging Stephen Hemminger
2026-03-10  2:47   ` [PATCH v19 11/25] net/pcap: consolidate boolean flag handling Stephen Hemminger
2026-03-10  2:47   ` [PATCH v19 12/25] net/pcap: support VLAN strip and insert offloads Stephen Hemminger
2026-03-10  2:47   ` [PATCH v19 13/25] net/pcap: add link status for interface mode Stephen Hemminger
2026-03-10  2:47   ` [PATCH v19 14/25] net/pcap: support nanosecond timestamp precision Stephen Hemminger
2026-03-10  2:47   ` [PATCH v19 15/25] net/pcap: reject non-Ethernet interfaces Stephen Hemminger
2026-03-10  2:47   ` [PATCH v19 16/25] net/pcap: reduce scope of file-level variables Stephen Hemminger
2026-03-10  2:47   ` [PATCH v19 17/25] net/pcap: avoid use of volatile Stephen Hemminger
2026-03-10  2:47   ` [PATCH v19 18/25] net/pcap: clarify maximum received packet Stephen Hemminger
2026-03-10  2:47   ` [PATCH v19 19/25] eal/windows: add wrapper for access function Stephen Hemminger
2026-03-10  2:47   ` [PATCH v19 20/25] net/pcap: add snapshot length devarg Stephen Hemminger
2026-03-10  2:47   ` [PATCH v19 21/25] net/pcap: add Rx scatter offload Stephen Hemminger
2026-03-10  2:47   ` [PATCH v19 22/25] net/pcap: add link status change support for iface mode Stephen Hemminger
2026-03-10  2:47   ` [PATCH v19 23/25] net/pcap: add EOF notification via link status change Stephen Hemminger
2026-03-10  2:47   ` [PATCH v19 24/25] test: add comprehensive test suite for pcap PMD Stephen Hemminger
2026-03-10  2:48   ` [PATCH v19 25/25] check patch warn in test Stephen Hemminger
2026-03-10 16:09 ` [PATCH v20 00/25] net/pcap: fixes, test, and enhancements Stephen Hemminger
2026-03-10 16:09   ` [PATCH v20 01/25] maintainers: update for pcap driver Stephen Hemminger
2026-03-16 11:07     ` Bruce Richardson
2026-03-10 16:09   ` [PATCH v20 02/25] net/pcap: fix build on Windows Stephen Hemminger
2026-03-10 16:09   ` [PATCH v20 03/25] doc: update features for PCAP PMD Stephen Hemminger
2026-03-16 11:16     ` Bruce Richardson
2026-03-10 16:09   ` [PATCH v20 04/25] net/pcap: include used headers Stephen Hemminger
2026-03-16 11:21     ` Bruce Richardson
2026-03-10 16:09   ` [PATCH v20 05/25] net/pcap: remove unnecessary casts Stephen Hemminger
2026-03-16 11:27     ` Bruce Richardson
2026-03-10 16:09   ` [PATCH v20 06/25] net/pcap: avoid using rte_malloc and rte_memcpy Stephen Hemminger
2026-03-16 11:38     ` Bruce Richardson
2026-03-10 16:09   ` [PATCH v20 07/25] net/pcap: advertise Tx multi segment Stephen Hemminger
2026-03-16 11:39     ` Bruce Richardson
2026-03-10 16:09   ` [PATCH v20 08/25] net/pcap: replace stack bounce buffer Stephen Hemminger
2026-03-16 11:47     ` Bruce Richardson
2026-03-10 16:09   ` [PATCH v20 09/25] net/pcap: fix error accounting and backpressure on transmit Stephen Hemminger
2026-03-16 12:24     ` Bruce Richardson
2026-03-10 16:09   ` [PATCH v20 10/25] net/pcap: add datapath debug logging Stephen Hemminger
2026-03-16 13:50     ` Bruce Richardson
2026-03-10 16:09   ` [PATCH v20 11/25] net/pcap: consolidate boolean flag handling Stephen Hemminger
2026-03-16 14:00     ` Bruce Richardson
2026-03-10 16:09   ` [PATCH v20 12/25] net/pcap: support VLAN strip and insert offloads Stephen Hemminger
2026-03-16 14:04     ` Bruce Richardson
2026-03-24 16:47       ` Stephen Hemminger
2026-03-10 16:09   ` [PATCH v20 13/25] net/pcap: add link status for interface mode Stephen Hemminger
2026-03-16 14:11     ` Bruce Richardson
2026-03-24 16:48       ` Stephen Hemminger
2026-03-10 16:09   ` [PATCH v20 14/25] net/pcap: support nanosecond timestamp precision Stephen Hemminger
2026-03-16 14:16     ` Bruce Richardson
2026-03-10 16:09   ` [PATCH v20 15/25] net/pcap: reject non-Ethernet interfaces Stephen Hemminger
2026-03-10 16:09   ` [PATCH v20 16/25] net/pcap: reduce scope of file-level variables Stephen Hemminger
2026-03-16 14:20     ` Bruce Richardson
2026-03-10 16:09   ` [PATCH v20 17/25] net/pcap: avoid use of volatile Stephen Hemminger
2026-03-16 14:31     ` Bruce Richardson
2026-03-16 15:23       ` Stephen Hemminger
2026-03-10 16:09   ` [PATCH v20 18/25] net/pcap: clarify maximum received packet Stephen Hemminger
2026-03-16 14:32     ` Bruce Richardson
2026-03-10 16:09   ` [PATCH v20 19/25] eal/windows: add wrapper for access function Stephen Hemminger
2026-03-16 14:34     ` Bruce Richardson
2026-03-10 16:09   ` [PATCH v20 20/25] net/pcap: add snapshot length devarg Stephen Hemminger
2026-03-16 14:37     ` Bruce Richardson
2026-03-10 16:09   ` [PATCH v20 21/25] net/pcap: add Rx scatter offload Stephen Hemminger
2026-03-16 15:01     ` Bruce Richardson
2026-03-10 16:10   ` [PATCH v20 22/25] net/pcap: add link status change support for iface mode Stephen Hemminger
2026-03-16 15:02     ` Bruce Richardson
2026-03-10 16:10   ` [PATCH v20 23/25] net/pcap: add EOF notification via link status change Stephen Hemminger
2026-03-16 15:05     ` Bruce Richardson
2026-03-10 16:10   ` [PATCH v20 24/25] test: add comprehensive test suite for pcap PMD Stephen Hemminger
2026-03-16 15:31     ` Bruce Richardson
2026-03-10 16:10   ` [PATCH v20 25/25] app/pdump: preserve VLAN tags in captured packets Stephen Hemminger
2026-03-16 15:33     ` Bruce Richardson
2026-03-16 15:55       ` Morten Brørup
2026-03-16 16:05         ` Bruce Richardson
2026-03-16 16:15           ` Morten Brørup
2026-03-24 17:12         ` Stephen Hemminger
2026-03-25  7:41           ` Morten Brørup
2026-03-25  9:12             ` Bruce Richardson
2026-03-25  9:36               ` Morten Brørup
2026-03-25  9:42                 ` Bruce Richardson
2026-03-25 16:19                 ` Stephen Hemminger
2026-03-25 16:22                   ` Bruce Richardson
2026-03-25 16:52                     ` Stephen Hemminger
2026-03-25 17:09                       ` Bruce Richardson
2026-03-25 17:33                     ` Stephen Hemminger
2026-03-25 17:00               ` Stephen Hemminger
2026-03-25  2:37 ` [PATCH v21 00/25] net/pcap: fixes, test, and enhancements Stephen Hemminger
2026-03-25  2:37   ` [PATCH v21 01/25] maintainers: update for pcap driver Stephen Hemminger
2026-03-25  2:37   ` [PATCH v21 02/25] net/pcap: fix build on Windows Stephen Hemminger
2026-03-25  2:37   ` [PATCH v21 03/25] doc: update features for PCAP PMD Stephen Hemminger
2026-03-25  2:37   ` [PATCH v21 04/25] net/pcap: include used headers Stephen Hemminger
2026-03-25  2:37   ` [PATCH v21 05/25] net/pcap: remove unnecessary casts Stephen Hemminger
2026-03-25  2:37   ` [PATCH v21 06/25] net/pcap: avoid using rte_malloc and rte_memcpy Stephen Hemminger
2026-03-25  2:37   ` [PATCH v21 07/25] net/pcap: advertise Tx multi segment Stephen Hemminger
2026-03-25  2:37   ` [PATCH v21 08/25] net/pcap: replace stack bounce buffer Stephen Hemminger
2026-03-25  2:37   ` [PATCH v21 09/25] net/pcap: fix error accounting and backpressure on transmit Stephen Hemminger
2026-03-25  2:37   ` [PATCH v21 10/25] net/pcap: clean up TX dumper return value and types Stephen Hemminger
2026-03-25  2:37   ` [PATCH v21 11/25] net/pcap: add datapath debug logging Stephen Hemminger
2026-03-25  2:37   ` [PATCH v21 12/25] net/pcap: consolidate boolean flag handling Stephen Hemminger
2026-03-25  2:37   ` [PATCH v21 13/25] net/pcap: support VLAN strip and insert offloads Stephen Hemminger
2026-03-25  2:37   ` [PATCH v21 14/25] app/pdump: preserve VLAN tags in captured packets Stephen Hemminger
2026-03-25  2:37   ` [PATCH v21 15/25] net/pcap: add link status for interface mode Stephen Hemminger
2026-03-25  2:37   ` [PATCH v21 16/25] net/pcap: support nanosecond timestamp precision Stephen Hemminger
2026-03-25  2:37   ` [PATCH v21 17/25] net/pcap: reject non-Ethernet interfaces Stephen Hemminger
2026-03-25  2:37   ` [PATCH v21 18/25] net/pcap: reduce scope of file-level variables Stephen Hemminger
2026-03-25  2:37   ` [PATCH v21 19/25] net/pcap: clarify maximum received packet Stephen Hemminger
2026-03-25  2:37   ` [PATCH v21 20/25] eal/windows: add wrapper for access function Stephen Hemminger
2026-03-25  2:37   ` [PATCH v21 21/25] net/pcap: add snapshot length devarg Stephen Hemminger
2026-03-25  2:37   ` [PATCH v21 22/25] net/pcap: add Rx scatter offload Stephen Hemminger
2026-03-25  2:37   ` [PATCH v21 23/25] net/pcap: add link status change support for iface mode Stephen Hemminger
2026-03-25  2:37   ` [PATCH v21 24/25] net/pcap: add EOF notification via link status change Stephen Hemminger
2026-03-25  2:37   ` [PATCH v21 25/25] test: add comprehensive test suite for pcap PMD Stephen Hemminger
2026-04-14 16:07 ` [PATCH v22 00/24] net/pcap: fixes, test and enhancements Stephen Hemminger
2026-04-14 16:07   ` [PATCH v22 01/24] maintainers: update for pcap driver Stephen Hemminger
2026-04-14 16:07   ` [PATCH v22 02/24] net/pcap: fix build on Windows Stephen Hemminger
2026-04-14 16:07   ` [PATCH v22 03/24] doc: update features for PCAP PMD Stephen Hemminger
2026-04-14 16:07   ` [PATCH v22 04/24] net/pcap: include used headers Stephen Hemminger
2026-04-14 16:07   ` [PATCH v22 05/24] net/pcap: remove unnecessary casts Stephen Hemminger
2026-04-14 16:07   ` [PATCH v22 06/24] net/pcap: avoid using rte_malloc and rte_memcpy Stephen Hemminger
2026-04-14 16:07   ` [PATCH v22 07/24] net/pcap: advertise Tx multi segment Stephen Hemminger
2026-04-14 16:07   ` [PATCH v22 08/24] net/pcap: replace stack bounce buffer Stephen Hemminger
2026-04-14 16:08   ` [PATCH v22 09/24] net/pcap: fix error accounting and backpressure on transmit Stephen Hemminger
2026-04-14 16:08   ` [PATCH v22 10/24] net/pcap: clean up TX dumper return value and types Stephen Hemminger
2026-04-14 16:08   ` [PATCH v22 11/24] net/pcap: add datapath debug logging Stephen Hemminger
2026-04-14 16:08   ` [PATCH v22 12/24] net/pcap: consolidate boolean flag handling Stephen Hemminger
2026-04-14 16:08   ` [PATCH v22 13/24] net/pcap: support VLAN strip and insert offloads Stephen Hemminger
2026-04-14 16:08   ` [PATCH v22 14/24] net/pcap: add link status for interface mode Stephen Hemminger
2026-04-14 16:08   ` [PATCH v22 15/24] net/pcap: support nanosecond timestamp precision Stephen Hemminger
2026-04-14 16:08   ` [PATCH v22 16/24] net/pcap: reject non-Ethernet interfaces Stephen Hemminger
2026-04-14 16:08   ` [PATCH v22 17/24] net/pcap: reduce scope of file-level variables Stephen Hemminger
2026-04-14 16:08   ` [PATCH v22 18/24] net/pcap: clarify maximum received packet Stephen Hemminger
2026-04-14 16:08   ` [PATCH v22 19/24] eal/windows: add wrapper for access function Stephen Hemminger
2026-04-14 16:08   ` [PATCH v22 20/24] net/pcap: add snapshot length devarg Stephen Hemminger
2026-04-14 16:08   ` [PATCH v22 21/24] net/pcap: add Rx scatter offload Stephen Hemminger
2026-04-14 16:08   ` [PATCH v22 22/24] net/pcap: add link status change support for iface mode Stephen Hemminger
2026-04-14 16:08   ` [PATCH v22 23/24] net/pcap: add EOF notification via link status change Stephen Hemminger
2026-04-14 16:08   ` [PATCH v22 24/24] test: add comprehensive test suite for pcap PMD Stephen Hemminger
2026-04-15 14:45 ` [PATCH v23 00/24] net/pcap: fixes, test and enhancements Stephen Hemminger
2026-04-15 14:45   ` [PATCH v23 01/24] maintainers: update for pcap driver Stephen Hemminger
2026-04-15 14:45   ` [PATCH v23 02/24] net/pcap: fix build on Windows Stephen Hemminger
2026-04-15 14:45   ` [PATCH v23 03/24] doc: update features for PCAP PMD Stephen Hemminger
2026-04-15 14:45   ` [PATCH v23 04/24] net/pcap: include used headers Stephen Hemminger
2026-04-15 14:45   ` [PATCH v23 05/24] net/pcap: remove unnecessary casts Stephen Hemminger
2026-04-15 14:45   ` [PATCH v23 06/24] net/pcap: avoid using rte_malloc and rte_memcpy Stephen Hemminger
2026-04-15 14:45   ` [PATCH v23 07/24] net/pcap: advertise Tx multi segment Stephen Hemminger
2026-04-15 14:45   ` [PATCH v23 08/24] net/pcap: replace stack bounce buffer Stephen Hemminger
2026-04-15 14:45   ` [PATCH v23 09/24] net/pcap: fix error accounting and backpressure on transmit Stephen Hemminger
2026-04-15 14:45   ` [PATCH v23 10/24] net/pcap: clean up TX dumper return value and types Stephen Hemminger
2026-04-15 14:46   ` [PATCH v23 11/24] net/pcap: add datapath debug logging Stephen Hemminger
2026-04-15 14:46   ` [PATCH v23 12/24] net/pcap: consolidate boolean flag handling Stephen Hemminger
2026-04-15 14:46   ` [PATCH v23 13/24] net/pcap: support VLAN strip and insert offloads Stephen Hemminger
2026-04-15 14:46   ` [PATCH v23 14/24] net/pcap: add link status for interface mode Stephen Hemminger
2026-04-15 14:46   ` [PATCH v23 15/24] net/pcap: support nanosecond timestamp precision Stephen Hemminger
2026-04-15 14:46   ` [PATCH v23 16/24] net/pcap: reject non-Ethernet interfaces Stephen Hemminger
2026-04-15 14:46   ` [PATCH v23 17/24] net/pcap: reduce scope of file-level variables Stephen Hemminger
2026-04-15 14:46   ` [PATCH v23 18/24] net/pcap: clarify maximum received packet Stephen Hemminger
2026-04-15 14:46   ` [PATCH v23 19/24] eal/windows: add wrapper for access function Stephen Hemminger
2026-04-15 14:46   ` [PATCH v23 20/24] net/pcap: add snapshot length devarg Stephen Hemminger
2026-04-15 14:46   ` [PATCH v23 21/24] net/pcap: add Rx scatter offload Stephen Hemminger
2026-04-15 14:46   ` [PATCH v23 22/24] net/pcap: add link status change support for iface mode Stephen Hemminger
2026-04-15 14:46   ` [PATCH v23 23/24] net/pcap: add EOF notification via link status change Stephen Hemminger
2026-04-15 14:46   ` [PATCH v23 24/24] test: add comprehensive test suite for pcap PMD Stephen Hemminger
2026-04-16 18:45 ` [PATCH v24 00/24] net/pcap: fixes, test and enhancements Stephen Hemminger
2026-04-16 18:45   ` [PATCH v24 01/24] maintainers: update for pcap driver Stephen Hemminger
2026-04-16 18:45   ` [PATCH v24 02/24] net/pcap: fix build on Windows Stephen Hemminger
2026-04-16 18:45   ` [PATCH v24 03/24] doc: update features for PCAP PMD Stephen Hemminger
2026-04-16 18:45   ` [PATCH v24 04/24] net/pcap: include used headers Stephen Hemminger
2026-04-16 18:45   ` [PATCH v24 05/24] net/pcap: remove unnecessary casts Stephen Hemminger
2026-04-16 18:45   ` [PATCH v24 06/24] net/pcap: avoid using rte_malloc and rte_memcpy Stephen Hemminger
2026-04-16 18:45   ` [PATCH v24 07/24] net/pcap: advertise Tx multi segment Stephen Hemminger
2026-04-16 18:45   ` [PATCH v24 08/24] net/pcap: replace stack bounce buffer Stephen Hemminger
2026-04-16 18:45   ` [PATCH v24 09/24] net/pcap: fix error accounting and backpressure on transmit Stephen Hemminger
2026-04-16 18:45   ` [PATCH v24 10/24] net/pcap: clean up TX dumper return value and types Stephen Hemminger
2026-04-16 18:48 ` [PATCH v24 00/24] net/pcap: bug fixes and new features Stephen Hemminger
2026-04-16 18:48   ` [PATCH v24 01/24] maintainers: update for pcap driver Stephen Hemminger
2026-04-16 18:48   ` [PATCH v24 02/24] net/pcap: fix build on Windows Stephen Hemminger
2026-04-16 18:48   ` [PATCH v24 03/24] doc: update features for PCAP PMD Stephen Hemminger
2026-04-16 18:48   ` [PATCH v24 04/24] net/pcap: include used headers Stephen Hemminger
2026-04-16 18:48   ` [PATCH v24 05/24] net/pcap: remove unnecessary casts Stephen Hemminger
2026-04-16 18:48   ` [PATCH v24 06/24] net/pcap: avoid using rte_malloc and rte_memcpy Stephen Hemminger
2026-04-16 18:48   ` [PATCH v24 07/24] net/pcap: advertise Tx multi segment Stephen Hemminger
2026-04-16 18:48   ` [PATCH v24 08/24] net/pcap: replace stack bounce buffer Stephen Hemminger
2026-04-16 18:48   ` [PATCH v24 09/24] net/pcap: fix error accounting and backpressure on transmit Stephen Hemminger
2026-04-16 18:48   ` [PATCH v24 10/24] net/pcap: clean up TX dumper return value and types Stephen Hemminger
2026-04-16 18:48   ` [PATCH v24 11/24] net/pcap: add datapath debug logging Stephen Hemminger
2026-04-16 18:48   ` [PATCH v24 12/24] net/pcap: consolidate boolean flag handling Stephen Hemminger
2026-04-16 18:48   ` [PATCH v24 13/24] net/pcap: support VLAN strip and insert offloads Stephen Hemminger
2026-04-16 18:48   ` [PATCH v24 14/24] net/pcap: add link status for interface mode Stephen Hemminger
2026-04-16 18:48   ` [PATCH v24 15/24] net/pcap: support nanosecond timestamp precision Stephen Hemminger
2026-04-16 18:48   ` [PATCH v24 16/24] net/pcap: reject non-Ethernet interfaces Stephen Hemminger
2026-04-16 18:48   ` [PATCH v24 17/24] net/pcap: reduce scope of file-level variables Stephen Hemminger
2026-04-16 18:48   ` [PATCH v24 18/24] net/pcap: clarify maximum received packet Stephen Hemminger
2026-04-16 18:48   ` [PATCH v24 19/24] eal/windows: add wrapper for access function Stephen Hemminger
2026-04-16 18:48   ` [PATCH v24 20/24] net/pcap: add snapshot length devarg Stephen Hemminger
2026-04-16 18:48   ` [PATCH v24 21/24] net/pcap: add Rx scatter offload Stephen Hemminger
2026-04-16 18:48   ` [PATCH v24 22/24] net/pcap: add link status change support for iface mode Stephen Hemminger
2026-04-16 18:48   ` [PATCH v24 23/24] net/pcap: add EOF notification via link status change Stephen Hemminger
2026-04-16 18:48   ` [PATCH v24 24/24] test: add comprehensive test suite for pcap PMD Stephen Hemminger
2026-04-19 16:09 ` [PATCH v25 00/24] net/pcap: bug fixes and new features Stephen Hemminger
2026-04-19 16:09   ` [PATCH v25 01/24] maintainers: update for pcap driver Stephen Hemminger
2026-04-19 16:09   ` [PATCH v25 02/24] net/pcap: fix build on Windows Stephen Hemminger
2026-04-19 16:09   ` [PATCH v25 03/24] doc: update features for PCAP PMD Stephen Hemminger
2026-04-19 16:09   ` [PATCH v25 04/24] net/pcap: include used headers Stephen Hemminger
2026-04-19 16:09   ` [PATCH v25 05/24] net/pcap: remove unnecessary casts Stephen Hemminger
2026-04-19 16:09   ` [PATCH v25 06/24] net/pcap: avoid using rte_malloc and rte_memcpy Stephen Hemminger
2026-04-19 16:09   ` [PATCH v25 07/24] net/pcap: advertise Tx multi segment Stephen Hemminger
2026-04-19 16:09   ` [PATCH v25 08/24] net/pcap: replace stack bounce buffer Stephen Hemminger
2026-04-19 16:09   ` [PATCH v25 09/24] net/pcap: fix error accounting and backpressure on transmit Stephen Hemminger
2026-04-19 16:09   ` [PATCH v25 10/24] net/pcap: clean up TX dumper return value and types Stephen Hemminger
2026-04-19 16:09   ` [PATCH v25 11/24] net/pcap: add datapath debug logging Stephen Hemminger
2026-04-19 16:09   ` [PATCH v25 12/24] net/pcap: consolidate boolean flag handling Stephen Hemminger
2026-04-19 16:09   ` [PATCH v25 13/24] net/pcap: support VLAN strip and insert offloads Stephen Hemminger
2026-04-19 16:09   ` [PATCH v25 14/24] net/pcap: add link status for interface mode Stephen Hemminger
2026-04-19 16:09   ` [PATCH v25 15/24] net/pcap: support nanosecond timestamp precision Stephen Hemminger
2026-04-19 16:09   ` [PATCH v25 16/24] net/pcap: reject non-Ethernet interfaces Stephen Hemminger
2026-04-19 16:09   ` [PATCH v25 17/24] net/pcap: reduce scope of file-level variables Stephen Hemminger
2026-04-19 16:09   ` [PATCH v25 18/24] net/pcap: clarify maximum received packet Stephen Hemminger
2026-04-19 16:09   ` [PATCH v25 19/24] eal/windows: add wrapper for access function Stephen Hemminger
2026-04-19 16:09   ` [PATCH v25 20/24] net/pcap: add snapshot length devarg Stephen Hemminger
2026-04-19 16:09   ` [PATCH v25 21/24] net/pcap: add Rx scatter offload Stephen Hemminger
2026-04-19 16:09   ` [PATCH v25 22/24] net/pcap: add link status change support for iface mode Stephen Hemminger
2026-04-19 16:09   ` [PATCH v25 23/24] net/pcap: add EOF notification via link status change Stephen Hemminger
2026-04-19 16:09   ` [PATCH v25 24/24] test: add comprehensive test suite for pcap PMD Stephen Hemminger
2026-04-30 17:10   ` [PATCH v25 00/24] net/pcap: bug fixes and new features Stephen Hemminger

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20260128184130.445567-10-stephen@networkplumber.org \
    --to=stephen@networkplumber.org \
    --cc=dev@dpdk.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.