From: Stephen Hemminger <stephen@networkplumber.org>
To: dev@dpdk.org
Cc: Stephen Hemminger <stephen@networkplumber.org>
Subject: [PATCH v8 09/14] net/pcap: add link state and speed for interface mode
Date: Tue, 27 Jan 2026 09:18:50 -0800 [thread overview]
Message-ID: <20260127172128.124473-10-stephen@networkplumber.org> (raw)
In-Reply-To: <20260127172128.124473-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
next prev parent reply other threads:[~2026-01-27 17:22 UTC|newest]
Thread overview: 430+ 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 ` Stephen Hemminger [this message]
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 ` [PATCH v9 09/15] net/pcap: add link state and speed for interface mode Stephen Hemminger
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-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
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=20260127172128.124473-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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox