From: Stephen Hemminger <stephen@networkplumber.org>
To: Gagandeep Singh <g.singh@nxp.com>
Cc: dev@dpdk.org, hemant.agrawal@nxp.com
Subject: Re: [PATCH v12 15/15] net/enetc4: add WRR Tx scheduler devarg for VF rings
Date: Mon, 24 Aug 2026 11:10:09 -0700 [thread overview]
Message-ID: <20260824111009.420e4187@phoenix.local> (raw)
In-Reply-To: <20260821055643.1359277-16-g.singh@nxp.com>
On Fri, 21 Aug 2026 11:26:43 +0530
Gagandeep Singh <g.singh@nxp.com> wrote:
> @@ -71,7 +72,46 @@ parse_txq_prior(const char *key __rte_unused, const char *value, void *opaque)
>
> str = strtok(input_str, "|");
> while (str != NULL && i < hw->max_tx_queues) {
> - hw->txq_prior[i++] = (uint32_t)atoi(str);
> + hw->txq_prior[i++] = atoi(str) & ENETC_TBMR_PRIO_MASK;
> + str = strtok(NULL, "|");
> + }
> +
> + free(input_str);
> + return 0;
> +}
The arg parsing in this driver has lots of usage of functions that are on
the naughty list like: atoi, atof, and strtok.
Suggest reworking this to use strtok_r and strtoul and strtod.
Not a fan of so many nerd knobs either. These kind of queue configurations really
need to be under ethdev but that is more work.
Something like this?
diff --git a/drivers/net/enetc/enetc4_ethdev.c b/drivers/net/enetc/enetc4_ethdev.c
index bb579a0b90..3e13542302 100644
--- a/drivers/net/enetc/enetc4_ethdev.c
+++ b/drivers/net/enetc/enetc4_ethdev.c
@@ -2,7 +2,9 @@
* Copyright 2024-2026 NXP
*/
+#include <errno.h>
#include <stdbool.h>
+#include <stdlib.h>
#include <rte_kvargs.h>
#include <rte_random.h>
#include <dpaax_iova_table.h>
@@ -49,85 +51,172 @@ static uint64_t dev_tx_offloads_sup =
#define ENETC4_NC_MEMORY "nc"
+/* Tx ring WRR weight range; ENETC_TBMR_WRR() encodes it as (weight - 1). */
+#define ENETC4_TXQ_WRR_MIN 1
+#define ENETC4_TXQ_WRR_MAX 8
+
+static const char * const enetc4_valid_args[] = {
+ ENETC4_TXQ_PRIORITIES,
+ ENETC4_TXQ_WRR,
+ ENETC4_NC_MEMORY,
+ NULL,
+};
+
+/*
+ * Parse one unsigned decimal value, rejecting empty strings, signs, trailing
+ * garbage and values outside [min, max]. atoi() reports none of these: it
+ * returns 0 for any non-numeric string and is undefined on overflow.
+ */
static int
-parse_txq_prior(const char *key __rte_unused, const char *value, void *opaque)
+enetc4_parse_uint(const char *str, uint32_t min, uint32_t max, uint32_t *val)
{
- struct rte_eth_dev *dev = (struct rte_eth_dev *)opaque;
- struct enetc_eth_hw *hw =
- ENETC_DEV_PRIVATE_TO_HW(dev->data->dev_private);
- char *input_str;
- char *str;
- uint32_t i = 0;
+ unsigned long res;
+ char *endptr;
+
+ if (str == NULL || *str == '\0')
+ return -EINVAL;
+
+ /* strtoul() silently wraps a leading '-', so reject signs up front. */
+ if (*str == '-' || *str == '+')
+ return -EINVAL;
+
+ errno = 0;
+ res = strtoul(str, &endptr, 10);
+ if (errno != 0 || endptr == str || *endptr != '\0')
+ return -EINVAL;
+
+ if (res < min || res > max)
+ return -ERANGE;
+
+ *val = (uint32_t)res;
+ return 0;
+}
+
+/*
+ * Parse a "v0|v1|..." list into vals[], validating every field against
+ * [min, max]. Returns the number of values parsed, or a negative errno.
+ */
+static int
+enetc4_parse_uint_list(const char *key, const char *value, uint32_t min,
+ uint32_t max, uint32_t *vals, uint32_t max_vals)
+{
+ char *input_str, *str, *saveptr;
+ uint32_t n = 0;
+ int ret;
+
+ if (value == NULL) {
+ ENETC_PMD_ERR("%s: missing value", key);
+ return -EINVAL;
+ }
input_str = strdup(value);
- if (!input_str)
+ if (input_str == NULL)
return -ENOMEM;
- rte_free(hw->txq_prior);
- hw->txq_prior = rte_zmalloc(NULL, hw->max_tx_queues * sizeof(uint32_t), 0);
- if (!hw->txq_prior) {
- free(input_str);
- return -ENOMEM;
+ for (str = strtok_r(input_str, "|", &saveptr); str != NULL;
+ str = strtok_r(NULL, "|", &saveptr)) {
+ if (n == max_vals) {
+ ENETC_PMD_ERR("%s: too many values, at most %u supported",
+ key, max_vals);
+ ret = -EINVAL;
+ goto out;
+ }
+
+ ret = enetc4_parse_uint(str, min, max, &vals[n]);
+ if (ret != 0) {
+ ENETC_PMD_ERR("%s: invalid value '%s' at index %u, expected %u..%u",
+ key, str, n, min, max);
+ goto out;
+ }
+ n++;
}
- str = strtok(input_str, "|");
- while (str != NULL && i < hw->max_tx_queues) {
- hw->txq_prior[i++] = atoi(str) & ENETC_TBMR_PRIO_MASK;
- str = strtok(NULL, "|");
+ if (n == 0) {
+ ENETC_PMD_ERR("%s: empty value list", key);
+ ret = -EINVAL;
+ goto out;
}
+ ret = n;
+out:
free(input_str);
+ return ret;
+}
+
+/* Parse enetc4_txq_prior="p0|p1|..." devarg; priority 0..7 per ring. */
+static int
+parse_txq_prior(const char *key, const char *value, void *opaque)
+{
+ struct rte_eth_dev *dev = opaque;
+ struct enetc_eth_hw *hw =
+ ENETC_DEV_PRIVATE_TO_HW(dev->data->dev_private);
+ uint32_t *prior;
+ int ret;
+
+ prior = rte_zmalloc(NULL, hw->max_tx_queues * sizeof(uint32_t), 0);
+ if (prior == NULL)
+ return -ENOMEM;
+
+ ret = enetc4_parse_uint_list(key, value, 0, ENETC_TBMR_PRIO_MASK,
+ prior, hw->max_tx_queues);
+ if (ret < 0) {
+ rte_free(prior);
+ return ret;
+ }
+
+ /* Only swap in the new table once the whole list is known good. */
+ rte_free(hw->txq_prior);
+ hw->txq_prior = prior;
+
return 0;
}
/* Parse enetc4_txq_wrr="w0|w1|..." devarg; weight 1..8 per ring. */
-static int parse_txq_wrr(const char *key __rte_unused, const char *value,
- void *opaque)
+static int
+parse_txq_wrr(const char *key, const char *value, void *opaque)
{
- struct rte_eth_dev *dev = (struct rte_eth_dev *)opaque;
+ struct rte_eth_dev *dev = opaque;
struct enetc_eth_hw *hw =
ENETC_DEV_PRIVATE_TO_HW(dev->data->dev_private);
- char *input_str;
- char *str;
- uint32_t i = 0;
- int w;
+ uint32_t *wrr;
+ int n, i;
- input_str = strdup(value);
- if (!input_str)
+ wrr = rte_zmalloc(NULL, hw->max_tx_queues * sizeof(uint32_t), 0);
+ if (wrr == NULL)
return -ENOMEM;
- rte_free(hw->txq_wrr);
- hw->txq_wrr = rte_zmalloc(NULL,
- hw->max_tx_queues * sizeof(uint32_t), 0);
- if (!hw->txq_wrr) {
- free(input_str);
- return -ENOMEM;
+ n = enetc4_parse_uint_list(key, value, ENETC4_TXQ_WRR_MIN,
+ ENETC4_TXQ_WRR_MAX, wrr, hw->max_tx_queues);
+ if (n < 0) {
+ rte_free(wrr);
+ return n;
}
- str = strtok(input_str, "|");
- while (str != NULL && i < hw->max_tx_queues) {
- w = atoi(str);
- if (w < 1)
- w = 1;
- if (w > 8)
- w = 8;
- hw->txq_wrr[i++] = ENETC_TBMR_WRR(w);
- str = strtok(NULL, "|");
- }
+ for (i = 0; i < n; i++)
+ wrr[i] = ENETC_TBMR_WRR(wrr[i]);
+
+ /* Only swap in the new table once the whole list is known good. */
+ rte_free(hw->txq_wrr);
+ hw->txq_wrr = wrr;
- free(input_str);
return 0;
}
static int
-parse_nc(const char *key __rte_unused, const char *value, void *extra_args)
+parse_nc(const char *key, const char *value, void *extra_args)
{
struct rte_eth_dev *dev = extra_args;
struct enetc_eth_hw *hw =
ENETC_DEV_PRIVATE_TO_HW(dev->data->dev_private);
+ uint32_t val;
+
+ if (enetc4_parse_uint(value, 0, 1, &val) != 0) {
+ ENETC_PMD_ERR("%s: invalid value '%s', expected 0 or 1",
+ key, value ? value : "(null)");
+ return -EINVAL;
+ }
- if (value && atoi(value) == 1)
- hw->nc_mode = 1;
+ hw->nc_mode = val;
return 0;
}
@@ -135,45 +224,41 @@ parse_nc(const char *key __rte_unused, const char *value, void *extra_args)
static int
enetc4_get_devargs(struct rte_eth_dev *dev, const char *key)
{
+ static const struct {
+ const char *key;
+ arg_handler_t handler;
+ } handlers[] = {
+ { ENETC4_TXQ_PRIORITIES, parse_txq_prior },
+ { ENETC4_TXQ_WRR, parse_txq_wrr },
+ { ENETC4_NC_MEMORY, parse_nc },
+ };
struct rte_devargs *devargs = dev->device->devargs;
struct rte_kvargs *kvlist;
+ unsigned int i;
+ int ret = 0;
- if (!devargs)
+ if (devargs == NULL)
return 0;
- kvlist = rte_kvargs_parse(devargs->args, NULL);
- if (!kvlist)
- return 0;
-
- if (!rte_kvargs_count(kvlist, key)) {
- rte_kvargs_free(kvlist);
- return 0;
+ /* Passing the key list makes a mistyped devarg an error, not a no-op. */
+ kvlist = rte_kvargs_parse(devargs->args, enetc4_valid_args);
+ if (kvlist == NULL) {
+ ENETC_PMD_ERR("Invalid device arguments '%s'", devargs->args);
+ return -EINVAL;
}
- if (!strcmp(key, ENETC4_TXQ_PRIORITIES)) {
- if (rte_kvargs_process(kvlist, key,
- parse_txq_prior, (void *)dev) < 0) {
- rte_kvargs_free(kvlist);
- return 0;
- }
- }
- if (!strcmp(key, ENETC4_TXQ_WRR)) {
- if (rte_kvargs_process(kvlist, key,
- parse_txq_wrr, (void *)dev) < 0) {
- rte_kvargs_free(kvlist);
- return 0;
- }
- }
- if (!strcmp(key, ENETC4_NC_MEMORY)) {
- if (rte_kvargs_process(kvlist, key,
- parse_nc, (void *)dev) < 0) {
- rte_kvargs_free(kvlist);
- return 0;
- }
- }
+ if (rte_kvargs_count(kvlist, key) == 0)
+ goto out;
+ for (i = 0; i < RTE_DIM(handlers); i++) {
+ if (strcmp(key, handlers[i].key) != 0)
+ continue;
+ ret = rte_kvargs_process(kvlist, key, handlers[i].handler, dev);
+ break;
+ }
+out:
rte_kvargs_free(kvlist);
- return 0;
+ return ret;
}
static int
@@ -1129,9 +1214,13 @@ enetc4_dev_configure(struct rte_eth_dev *dev)
enetc4_txbdr_wr(enetc_hw, i, ENETC_TBMR, ENETC_BMR_RESET);
hw->nc_mode = 0;
- enetc4_get_devargs(dev, ENETC4_TXQ_PRIORITIES);
- enetc4_get_devargs(dev, ENETC4_TXQ_WRR);
- enetc4_get_devargs(dev, ENETC4_NC_MEMORY);
+ ret = enetc4_get_devargs(dev, ENETC4_TXQ_PRIORITIES);
+ if (ret == 0)
+ ret = enetc4_get_devargs(dev, ENETC4_TXQ_WRR);
+ if (ret == 0)
+ ret = enetc4_get_devargs(dev, ENETC4_NC_MEMORY);
+ if (ret != 0)
+ return ret;
if (dev->data->nb_rx_queues <= 1)
return 0;
@@ -1538,8 +1627,13 @@ enetc4_dev_init(struct rte_eth_dev *eth_dev)
hw->max_rx_queues = (si_cap >> 16) & ENETC_SICAPR0_BDR_MASK;
hw->nc_mode = 0;
- enetc4_get_devargs(eth_dev, ENETC4_TXQ_PRIORITIES);
- enetc4_get_devargs(eth_dev, ENETC4_NC_MEMORY);
+ error = enetc4_get_devargs(eth_dev, ENETC4_TXQ_PRIORITIES);
+ if (error == 0)
+ error = enetc4_get_devargs(eth_dev, ENETC4_NC_MEMORY);
+ if (error != 0) {
+ ENETC_PMD_ERR("Invalid device arguments");
+ return error;
+ }
if (hw->nc_mode) {
eth_dev->rx_pkt_burst = &enetc_recv_pkts_nc;
eth_dev->tx_pkt_burst = &enetc_xmit_pkts_nc;
next prev parent reply other threads:[~2026-08-24 18:10 UTC|newest]
Thread overview: 199+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-08-06 11:28 [PATCH 00/14] net/enetc: add new features for ENETC4 VF on i.MX95 Gagandeep Singh
2026-08-06 11:28 ` [PATCH 01/14] net/enetc: add KEEP_CRC offload support for ENETC4 Gagandeep Singh
2026-08-06 11:28 ` [PATCH 02/14] net/enetc: add TSO support for ENETC4 VF Gagandeep Singh
2026-08-06 11:28 ` [PATCH 03/14] net/enetc: add RSC (hardware LRO) support for ENETC4 Gagandeep Singh
2026-08-06 11:28 ` [PATCH 04/14] net/enetc: extend link speed code field to 8-bit for PF-to-VF message Gagandeep Singh
2026-08-06 11:28 ` [PATCH 05/14] net/enetc: support firmware version get for VF Gagandeep Singh
2026-08-06 11:28 ` [PATCH 06/14] net/enetc: support registers dump Gagandeep Singh
2026-08-06 11:28 ` [PATCH 07/14] net/enetc: support ethtool ring parameters Gagandeep Singh
2026-08-06 11:28 ` [PATCH 08/14] net/enetc: refresh link speed on VF link-up interrupt Gagandeep Singh
2026-08-06 11:28 ` [PATCH 09/14] net/enetc: support stats reset for VF Gagandeep Singh
2026-08-06 11:28 ` [PATCH 10/14] net/enetc4: add per-queue Rx interrupt support " Gagandeep Singh
2026-08-06 11:28 ` [PATCH 11/14] net/enetc4: add SI-based port VLAN insertion and removal Gagandeep Singh
2026-08-06 11:28 ` [PATCH 12/14] net/enetc4: update VF link status to bitmask encoding Gagandeep Singh
2026-08-06 11:28 ` [PATCH 13/14] net/enetc4: enable TX PAUSE via VF RX congestion mode Gagandeep Singh
2026-08-06 11:28 ` [PATCH 14/14] net/enetc4: add WRR Tx scheduler devarg for VF rings Gagandeep Singh
2026-08-06 17:00 ` [PATCH 00/14] net/enetc: add new features for ENETC4 VF on i.MX95 Stephen Hemminger
2026-08-07 3:48 ` [PATCH v2 00/14] net/enetc: add new features for ENETC4 VF on i.MX9 Gagandeep Singh
2026-08-07 3:48 ` [PATCH v2 01/14] net/enetc: add KEEP_CRC offload support for ENETC4 Gagandeep Singh
2026-08-07 3:48 ` [PATCH v2 02/14] net/enetc: add TSO support for ENETC4 VF Gagandeep Singh
2026-08-07 3:48 ` [PATCH v2 03/14] net/enetc: add RSC (hardware LRO) support for ENETC4 Gagandeep Singh
2026-08-07 3:48 ` [PATCH v2 04/14] net/enetc: extend link speed code field to 8-bit for PF-to-VF message Gagandeep Singh
2026-08-07 3:48 ` [PATCH v2 05/14] net/enetc: support firmware version get for VF Gagandeep Singh
2026-08-07 3:48 ` [PATCH v2 06/14] net/enetc: support registers dump Gagandeep Singh
2026-08-07 3:48 ` [PATCH v2 07/14] net/enetc: support ethtool ring parameters Gagandeep Singh
2026-08-07 3:48 ` [PATCH v2 08/14] net/enetc: refresh link speed on VF link-up interrupt Gagandeep Singh
2026-08-07 3:48 ` [PATCH v2 09/14] net/enetc: support stats reset for VF Gagandeep Singh
2026-08-07 3:48 ` [PATCH v2 10/14] net/enetc4: add per-queue Rx interrupt support " Gagandeep Singh
2026-08-07 3:48 ` [PATCH v2 11/14] net/enetc4: add SI-based port VLAN insertion and removal Gagandeep Singh
2026-08-07 3:48 ` [PATCH v2 12/14] net/enetc4: update VF link status to bitmask encoding Gagandeep Singh
2026-08-07 3:48 ` [PATCH v2 13/14] net/enetc4: enable TX PAUSE via VF RX congestion mode Gagandeep Singh
2026-08-07 3:48 ` [PATCH v2 14/14] net/enetc4: add WRR Tx scheduler devarg for VF rings Gagandeep Singh
2026-08-07 7:02 ` [PATCH v3 00/14] net/enetc: add new features for ENETC4 VF on i.MX9 Gagandeep Singh
2026-08-07 7:02 ` [PATCH v3 01/14] net/enetc: add KEEP_CRC offload support for ENETC4 Gagandeep Singh
2026-08-07 7:02 ` [PATCH v3 02/14] net/enetc: add TSO support for ENETC4 VF Gagandeep Singh
2026-08-07 7:02 ` [PATCH v3 03/14] net/enetc: add RSC (hardware LRO) support for ENETC4 Gagandeep Singh
2026-08-07 7:02 ` [PATCH v3 04/14] net/enetc: extend link speed code field to 8-bit for PF-to-VF message Gagandeep Singh
2026-08-07 7:02 ` [PATCH v3 05/14] net/enetc: support firmware version get for VF Gagandeep Singh
2026-08-07 7:02 ` [PATCH v3 06/14] net/enetc: support registers dump Gagandeep Singh
2026-08-07 7:02 ` [PATCH v3 07/14] net/enetc: support ethtool ring parameters Gagandeep Singh
2026-08-07 7:02 ` [PATCH v3 08/14] net/enetc: refresh link speed on VF link-up interrupt Gagandeep Singh
2026-08-07 7:02 ` [PATCH v3 09/14] net/enetc: support stats reset for VF Gagandeep Singh
2026-08-07 7:02 ` [PATCH v3 10/14] net/enetc4: add per-queue Rx interrupt support " Gagandeep Singh
2026-08-07 7:02 ` [PATCH v3 11/14] net/enetc4: add SI-based port VLAN insertion and removal Gagandeep Singh
2026-08-07 7:02 ` [PATCH v3 12/14] net/enetc4: update VF link status to bitmask encoding Gagandeep Singh
2026-08-07 7:02 ` [PATCH v3 13/14] net/enetc4: enable TX PAUSE via VF RX congestion mode Gagandeep Singh
2026-08-07 7:02 ` [PATCH v3 14/14] net/enetc4: add WRR Tx scheduler devarg for VF rings Gagandeep Singh
2026-08-07 11:26 ` [PATCH v4 00/14] net/enetc: add new features for ENETC4 on i.MX95 Gagandeep Singh
2026-08-07 11:26 ` [PATCH v4 01/14] net/enetc: add KEEP_CRC offload support for ENETC4 Gagandeep Singh
2026-08-07 11:26 ` [PATCH v4 02/14] net/enetc: add TSO support for ENETC4 VF Gagandeep Singh
2026-08-07 11:26 ` [PATCH v4 03/14] net/enetc: add RSC (hardware LRO) support for ENETC4 Gagandeep Singh
2026-08-07 11:26 ` [PATCH v4 04/14] net/enetc: extend link speed code field to 8-bit for PF-to-VF message Gagandeep Singh
2026-08-07 11:26 ` [PATCH v4 05/14] net/enetc: support firmware version get for VF Gagandeep Singh
2026-08-07 11:26 ` [PATCH v4 06/14] net/enetc: support registers dump Gagandeep Singh
2026-08-07 11:26 ` [PATCH v4 07/14] net/enetc: support ethtool ring parameters Gagandeep Singh
2026-08-07 11:26 ` [PATCH v4 08/14] net/enetc: refresh link speed on VF link-up interrupt Gagandeep Singh
2026-08-07 11:26 ` [PATCH v4 09/14] net/enetc: support stats reset for VF Gagandeep Singh
2026-08-07 11:26 ` [PATCH v4 10/14] net/enetc4: add per-queue Rx interrupt support " Gagandeep Singh
2026-08-07 11:26 ` [PATCH v4 11/14] net/enetc4: add SI-based port VLAN insertion and removal Gagandeep Singh
2026-08-07 11:26 ` [PATCH v4 12/14] net/enetc4: update VF link status to bitmask encoding Gagandeep Singh
2026-08-07 11:26 ` [PATCH v4 13/14] net/enetc4: enable TX PAUSE via VF RX congestion mode Gagandeep Singh
2026-08-07 11:26 ` [PATCH v4 14/14] net/enetc4: add WRR Tx scheduler devarg for VF rings Gagandeep Singh
2026-08-09 21:00 ` [PATCH v4 00/14] net/enetc: add new features for ENETC4 on i.MX95 Stephen Hemminger
2026-08-10 10:58 ` Gagandeep Singh
2026-08-10 10:48 ` [PATCH v5 " Gagandeep Singh
2026-08-10 10:48 ` [PATCH v5 01/14] net/enetc: add keep-CRC Rx offload for ENETC4 Gagandeep Singh
2026-08-10 10:48 ` [PATCH v5 02/14] net/enetc: add TSO support for ENETC4 VF Gagandeep Singh
2026-08-10 10:48 ` [PATCH v5 03/14] net/enetc: add RSC (hardware LRO) support for ENETC4 Gagandeep Singh
2026-08-10 10:48 ` [PATCH v5 04/14] net/enetc: extend PF-VF link speed field to 8 bits Gagandeep Singh
2026-08-10 10:48 ` [PATCH v5 05/14] net/enetc: support firmware version get for VF Gagandeep Singh
2026-08-10 10:48 ` [PATCH v5 06/14] net/enetc: support registers dump Gagandeep Singh
2026-08-10 10:48 ` [PATCH v5 07/14] net/enetc: support ethtool ring parameters Gagandeep Singh
2026-08-10 10:48 ` [PATCH v5 08/14] net/enetc: refresh link speed on VF link-up interrupt Gagandeep Singh
2026-08-10 10:48 ` [PATCH v5 09/14] net/enetc: support stats reset for VF Gagandeep Singh
2026-08-10 10:48 ` [PATCH v5 10/14] net/enetc4: add per-queue Rx interrupt support " Gagandeep Singh
2026-08-10 10:48 ` [PATCH v5 11/14] net/enetc4: add SI-based port VLAN insertion and removal Gagandeep Singh
2026-08-10 10:48 ` [PATCH v5 12/14] net/enetc4: update VF link status to bitmask encoding Gagandeep Singh
2026-08-10 10:48 ` [PATCH v5 13/14] net/enetc4: enable Tx PAUSE via VF Rx congestion mode Gagandeep Singh
2026-08-10 10:48 ` [PATCH v5 14/14] net/enetc4: add WRR Tx scheduler devarg for VF rings Gagandeep Singh
2026-08-10 15:25 ` [PATCH v5 00/14] net/enetc: add new features for ENETC4 on i.MX95 Stephen Hemminger
2026-08-10 15:40 ` Stephen Hemminger
2026-08-11 7:40 ` [PATCH v6 00/13] " Gagandeep Singh
2026-08-11 7:40 ` [PATCH v6 01/13] net/enetc: add keep-CRC Rx offload for ENETC4 Gagandeep Singh
2026-08-11 7:40 ` [PATCH v6 02/13] net/enetc: add TSO support for ENETC4 VF Gagandeep Singh
2026-08-11 7:40 ` [PATCH v6 03/13] net/enetc: add RSC (hardware LRO) support for ENETC4 Gagandeep Singh
2026-08-11 7:40 ` [PATCH v6 04/13] net/enetc: extend PF-VF link speed field to 8 bits Gagandeep Singh
2026-08-11 7:40 ` [PATCH v6 05/13] net/enetc: support firmware version get for VF Gagandeep Singh
2026-08-11 7:40 ` [PATCH v6 06/13] net/enetc: support registers dump Gagandeep Singh
2026-08-11 7:40 ` [PATCH v6 07/13] net/enetc: support ethtool ring parameters Gagandeep Singh
2026-08-11 7:40 ` [PATCH v6 08/13] net/enetc: refresh link speed on VF link-up interrupt Gagandeep Singh
2026-08-11 7:40 ` [PATCH v6 09/13] net/enetc: support stats reset for VF Gagandeep Singh
2026-08-11 7:40 ` [PATCH v6 10/13] net/enetc4: add per-queue Rx interrupt support " Gagandeep Singh
2026-08-11 7:40 ` [PATCH v6 11/13] net/enetc4: add SI-based port VLAN insertion and removal Gagandeep Singh
2026-08-11 7:40 ` [PATCH v6 12/13] net/enetc4: update VF link status to bitmask encoding Gagandeep Singh
2026-08-11 7:40 ` [PATCH v6 13/13] net/enetc4: enable Tx PAUSE via VF Rx congestion mode Gagandeep Singh
2026-08-11 7:47 ` [PATCH v7 00/14] net/enetc: add new features for ENETC4 on i.MX95 Gagandeep Singh
2026-08-11 7:47 ` [PATCH v7 01/14] net/enetc: add keep-CRC Rx offload for ENETC4 Gagandeep Singh
2026-08-11 7:47 ` [PATCH v7 02/14] net/enetc: add TSO support for ENETC4 VF Gagandeep Singh
2026-08-11 7:47 ` [PATCH v7 03/14] net/enetc: add RSC (hardware LRO) support for ENETC4 Gagandeep Singh
2026-08-11 7:47 ` [PATCH v7 04/14] net/enetc: extend PF-VF link speed field to 8 bits Gagandeep Singh
2026-08-11 7:47 ` [PATCH v7 05/14] net/enetc: support firmware version get for VF Gagandeep Singh
2026-08-11 7:47 ` [PATCH v7 06/14] net/enetc: support registers dump Gagandeep Singh
2026-08-11 7:47 ` [PATCH v7 07/14] net/enetc: support ethtool ring parameters Gagandeep Singh
2026-08-11 7:47 ` [PATCH v7 08/14] net/enetc: refresh link speed on VF link-up interrupt Gagandeep Singh
2026-08-11 7:47 ` [PATCH v7 09/14] net/enetc: support stats reset for VF Gagandeep Singh
2026-08-11 7:47 ` [PATCH v7 10/14] net/enetc4: add per-queue Rx interrupt support " Gagandeep Singh
2026-08-11 7:47 ` [PATCH v7 11/14] net/enetc4: add SI-based port VLAN insertion and removal Gagandeep Singh
2026-08-11 7:47 ` [PATCH v7 12/14] net/enetc4: update VF link status to bitmask encoding Gagandeep Singh
2026-08-11 7:47 ` [PATCH v7 13/14] net/enetc4: enable Tx PAUSE via VF Rx congestion mode Gagandeep Singh
2026-08-11 7:47 ` [PATCH v7 14/14] net/enetc4: add WRR Tx scheduler devarg for VF rings Gagandeep Singh
2026-08-11 15:39 ` [PATCH v7 00/14] net/enetc: add new features for ENETC4 on i.MX95 Stephen Hemminger
2026-08-12 11:33 ` [PATCH v8 " Gagandeep Singh
2026-08-12 11:33 ` [PATCH v8 01/14] net/enetc: add keep-CRC Rx offload for ENETC4 Gagandeep Singh
2026-08-12 11:33 ` [PATCH v8 02/14] net/enetc: add TSO support for ENETC4 VF Gagandeep Singh
2026-08-12 11:33 ` [PATCH v8 03/14] net/enetc: add RSC (hardware LRO) support for ENETC4 Gagandeep Singh
2026-08-12 11:33 ` [PATCH v8 04/14] net/enetc: extend PF-VF link speed field to 8 bits Gagandeep Singh
2026-08-12 11:33 ` [PATCH v8 05/14] net/enetc: support firmware version get for VF Gagandeep Singh
2026-08-12 11:33 ` [PATCH v8 06/14] net/enetc: support registers dump Gagandeep Singh
2026-08-12 11:33 ` [PATCH v8 07/14] net/enetc: support ethtool ring parameters Gagandeep Singh
2026-08-12 11:33 ` [PATCH v8 08/14] net/enetc: refresh link speed on VF link-up interrupt Gagandeep Singh
2026-08-12 11:33 ` [PATCH v8 09/14] net/enetc: support stats reset for VF Gagandeep Singh
2026-08-12 11:33 ` [PATCH v8 10/14] net/enetc4: add per-queue Rx interrupt support " Gagandeep Singh
2026-08-12 11:33 ` [PATCH v8 11/14] net/enetc4: add SI-based port VLAN insertion and removal Gagandeep Singh
2026-08-12 11:33 ` [PATCH v8 12/14] net/enetc4: update VF link status to bitmask encoding Gagandeep Singh
2026-08-12 11:33 ` [PATCH v8 13/14] net/enetc4: enable Tx PAUSE via VF Rx congestion mode Gagandeep Singh
2026-08-12 11:33 ` [PATCH v8 14/14] net/enetc4: add WRR Tx scheduler devarg for VF rings Gagandeep Singh
2026-08-13 2:00 ` [PATCH v8 00/14] net/enetc: add new features for ENETC4 on i.MX95 Stephen Hemminger
2026-08-13 12:13 ` [PATCH v9-1 " Gagandeep Singh
2026-08-13 12:13 ` [PATCH v9-1 01/14] net/enetc: add keep-CRC Rx offload for ENETC4 Gagandeep Singh
2026-08-13 12:13 ` [PATCH v9-1 02/14] net/enetc: add TSO support for ENETC4 VF Gagandeep Singh
2026-08-13 12:13 ` [PATCH v9-1 03/14] net/enetc: add RSC (hardware LRO) support for ENETC4 Gagandeep Singh
2026-08-13 12:13 ` [PATCH v9-1 04/14] net/enetc: extend PF-VF link speed field to 8 bits Gagandeep Singh
2026-08-13 12:13 ` [PATCH v9-1 05/14] net/enetc: support firmware version get for VF Gagandeep Singh
2026-08-13 12:13 ` [PATCH v9-1 06/14] net/enetc: support registers dump Gagandeep Singh
2026-08-13 12:13 ` [PATCH v9-1 07/14] net/enetc: support ethtool ring parameters Gagandeep Singh
2026-08-13 12:13 ` [PATCH v9-1 08/14] net/enetc: refresh link speed on VF link-up interrupt Gagandeep Singh
2026-08-13 12:13 ` [PATCH v9-1 09/14] net/enetc: support stats reset for VF Gagandeep Singh
2026-08-13 12:13 ` [PATCH v9-1 10/14] net/enetc4: add per-queue Rx interrupt support " Gagandeep Singh
2026-08-13 12:13 ` [PATCH v9-1 11/14] net/enetc4: add SI-based port VLAN insertion and removal Gagandeep Singh
2026-08-13 12:13 ` [PATCH v9-1 12/14] net/enetc4: update VF link status to bitmask encoding Gagandeep Singh
2026-08-13 12:13 ` [PATCH v9-1 13/14] net/enetc4: enable Tx PAUSE via VF Rx congestion mode Gagandeep Singh
2026-08-13 12:13 ` [PATCH v9-1 14/14] net/enetc4: add WRR Tx scheduler devarg for VF rings Gagandeep Singh
2026-08-15 15:17 ` [PATCH v9-1 00/14] net/enetc: add new features for ENETC4 on i.MX95 Stephen Hemminger
2026-08-17 6:36 ` Gagandeep Singh
2026-08-17 6:34 ` [PATCH v10 " Gagandeep Singh
2026-08-17 6:34 ` [PATCH v10 01/14] net/enetc: add keep-CRC Rx offload for ENETC4 Gagandeep Singh
2026-08-17 6:34 ` [PATCH v10 02/14] net/enetc: add TSO support for ENETC4 VF Gagandeep Singh
2026-08-17 6:34 ` [PATCH v10 03/14] net/enetc: add RSC (hardware LRO) support for ENETC4 Gagandeep Singh
2026-08-17 6:34 ` [PATCH v10 04/14] net/enetc: extend PF-VF link speed field to 8 bits Gagandeep Singh
2026-08-17 6:34 ` [PATCH v10 05/14] net/enetc: support firmware version get for VF Gagandeep Singh
2026-08-17 6:34 ` [PATCH v10 06/14] net/enetc: support registers dump Gagandeep Singh
2026-08-17 6:34 ` [PATCH v10 07/14] net/enetc: support ethtool ring parameters Gagandeep Singh
2026-08-17 6:34 ` [PATCH v10 08/14] net/enetc: refresh link speed on VF link-up interrupt Gagandeep Singh
2026-08-17 6:34 ` [PATCH v10 09/14] net/enetc: support stats reset for VF Gagandeep Singh
2026-08-17 6:34 ` [PATCH v10 10/14] net/enetc4: add per-queue Rx interrupt support " Gagandeep Singh
2026-08-17 6:34 ` [PATCH v10 11/14] net/enetc4: add SI-based port VLAN insertion and removal Gagandeep Singh
2026-08-17 6:34 ` [PATCH v10 12/14] net/enetc4: update VF link status to bitmask encoding Gagandeep Singh
2026-08-17 6:34 ` [PATCH v10 13/14] net/enetc4: enable Tx PAUSE via VF Rx congestion mode Gagandeep Singh
2026-08-17 6:34 ` [PATCH v10 14/14] net/enetc4: add WRR Tx scheduler devarg for VF rings Gagandeep Singh
2026-08-18 2:28 ` [PATCH v10 00/14] net/enetc: add new features for ENETC4 on i.MX95 Stephen Hemminger
2026-08-19 5:34 ` [PATCH v11 00/15] " Gagandeep Singh
2026-08-19 5:34 ` [PATCH v11 01/15] net/enetc: add keep-CRC Rx offload for ENETC4 Gagandeep Singh
2026-08-19 5:34 ` [PATCH v11 02/15] net/enetc: add TSO support for ENETC4 VF Gagandeep Singh
2026-08-19 5:34 ` [PATCH v11 03/15] net/enetc: add RSC (hardware LRO) support for ENETC4 Gagandeep Singh
2026-08-19 5:34 ` [PATCH v11 04/15] net/enetc: extend PF-VF link speed field to 8 bits Gagandeep Singh
2026-08-19 5:34 ` [PATCH v11 05/15] net/enetc: add VF supported features file Gagandeep Singh
2026-08-19 5:34 ` [PATCH v11 06/15] net/enetc: support firmware version get for VF Gagandeep Singh
2026-08-19 5:34 ` [PATCH v11 07/15] net/enetc: support registers dump Gagandeep Singh
2026-08-19 5:34 ` [PATCH v11 08/15] net/enetc: support ethtool ring parameters Gagandeep Singh
2026-08-19 5:34 ` [PATCH v11 09/15] net/enetc: refresh link speed on VF link-up interrupt Gagandeep Singh
2026-08-19 5:34 ` [PATCH v11 10/15] net/enetc: support stats reset for VF Gagandeep Singh
2026-08-19 5:34 ` [PATCH v11 11/15] net/enetc4: add per-queue Rx interrupt support " Gagandeep Singh
2026-08-19 5:34 ` [PATCH v11 12/15] net/enetc4: add SI-based port VLAN insertion and removal Gagandeep Singh
2026-08-19 5:34 ` [PATCH v11 13/15] net/enetc4: update VF link status to bitmask encoding Gagandeep Singh
2026-08-19 5:34 ` [PATCH v11 14/15] net/enetc4: enable Tx PAUSE via VF Rx congestion mode Gagandeep Singh
2026-08-19 5:34 ` [PATCH v11 15/15] net/enetc4: add WRR Tx scheduler devarg for VF rings Gagandeep Singh
2026-08-19 20:23 ` [PATCH v11 00/15] net/enetc: add new features for ENETC4 on i.MX95 Stephen Hemminger
2026-08-20 5:37 ` Hemant Agrawal
2026-08-21 5:56 ` [PATCH v12 00/15] et/enetc: " Gagandeep Singh
2026-08-21 5:56 ` [PATCH v12 01/15] net/enetc: add keep-CRC Rx offload for ENETC4 Gagandeep Singh
2026-08-21 5:56 ` [PATCH v12 02/15] net/enetc: add TSO support for ENETC4 VF Gagandeep Singh
2026-08-21 5:56 ` [PATCH v12 03/15] net/enetc: add RSC (hardware LRO) support for ENETC4 Gagandeep Singh
2026-08-21 5:56 ` [PATCH v12 04/15] net/enetc: extend PF-VF link speed field to 8 bits Gagandeep Singh
2026-08-21 5:56 ` [PATCH v12 05/15] net/enetc: add VF supported features file Gagandeep Singh
2026-08-21 5:56 ` [PATCH v12 06/15] net/enetc: support firmware version get for VF Gagandeep Singh
2026-08-21 5:56 ` [PATCH v12 07/15] net/enetc: support registers dump Gagandeep Singh
2026-08-21 5:56 ` [PATCH v12 08/15] net/enetc: support ethtool ring parameters Gagandeep Singh
2026-08-21 5:56 ` [PATCH v12 09/15] net/enetc: refresh link speed on VF link-up interrupt Gagandeep Singh
2026-08-21 5:56 ` [PATCH v12 10/15] net/enetc: support stats reset for VF Gagandeep Singh
2026-08-21 5:56 ` [PATCH v12 11/15] net/enetc4: add per-queue Rx interrupt support " Gagandeep Singh
2026-08-21 5:56 ` [PATCH v12 12/15] net/enetc4: add SI-based port VLAN insertion and removal Gagandeep Singh
2026-08-21 5:56 ` [PATCH v12 13/15] net/enetc4: update VF link status to bitmask encoding Gagandeep Singh
2026-08-21 5:56 ` [PATCH v12 14/15] net/enetc4: enable Tx PAUSE via VF Rx congestion mode Gagandeep Singh
2026-08-21 5:56 ` [PATCH v12 15/15] net/enetc4: add WRR Tx scheduler devarg for VF rings Gagandeep Singh
2026-08-24 18:10 ` Stephen Hemminger [this message]
2026-08-21 15:49 ` [PATCH v12 00/15] et/enetc: add new features for ENETC4 on i.MX95 Stephen Hemminger
2026-08-24 7:52 ` Gagandeep Singh
2026-08-24 16:41 ` Stephen Hemminger
2026-08-24 18:14 ` Stephen Hemminger
2026-08-24 20:38 ` 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=20260824111009.420e4187@phoenix.local \
--to=stephen@networkplumber.org \
--cc=dev@dpdk.org \
--cc=g.singh@nxp.com \
--cc=hemant.agrawal@nxp.com \
/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