From: Harman Kalra <hkalra@marvell.com>
To: Nithin Dabilpuram <ndabilpuram@marvell.com>,
Kiran Kumar K <kirankumark@marvell.com>,
Sunil Kumar Kori <skori@marvell.com>,
Satha Rao <skoteshwar@marvell.com>,
Harman Kalra <hkalra@marvell.com>
Cc: <dev@dpdk.org>
Subject: [PATCH v4 04/23] net/cnxk: eswitch devargs parsing
Date: Wed, 28 Feb 2024 00:45:31 +0530 [thread overview]
Message-ID: <20240227191550.137687-5-hkalra@marvell.com> (raw)
In-Reply-To: <20240227191550.137687-1-hkalra@marvell.com>
Implementing the devargs parsing logic via which the representors
pattern is provided. These patterns define for which representies
representors shall be created.
Signed-off-by: Harman Kalra <hkalra@marvell.com>
---
drivers/net/cnxk/cnxk_eswitch.c | 88 +++++++++++++++++
drivers/net/cnxk/cnxk_eswitch.h | 52 ++++++++++
drivers/net/cnxk/cnxk_eswitch_devargs.c | 124 ++++++++++++++++++++++++
drivers/net/cnxk/meson.build | 1 +
4 files changed, 265 insertions(+)
create mode 100644 drivers/net/cnxk/cnxk_eswitch_devargs.c
diff --git a/drivers/net/cnxk/cnxk_eswitch.c b/drivers/net/cnxk/cnxk_eswitch.c
index 810e7c9c25..687bb7d146 100644
--- a/drivers/net/cnxk/cnxk_eswitch.c
+++ b/drivers/net/cnxk/cnxk_eswitch.c
@@ -388,6 +388,7 @@ nix_lf_setup(struct cnxk_eswitch_dev *eswitch_dev)
plt_err("Failed to get rep cnt, rc=%d(%s)", rc, roc_error_msg_get(rc));
goto free_cqs;
}
+ eswitch_dev->repr_cnt.max_repr = eswitch_dev->nix.rep_cnt;
/* Allocating an NIX LF */
nb_rxq = CNXK_ESWITCH_MAX_RXQ;
@@ -525,11 +526,73 @@ eswitch_hw_rsrc_setup(struct cnxk_eswitch_dev *eswitch_dev, struct rte_pci_devic
return rc;
}
+int
+cnxk_eswitch_representor_info_get(struct cnxk_eswitch_dev *eswitch_dev,
+ struct rte_eth_representor_info *info)
+{
+ struct cnxk_eswitch_devargs *esw_da;
+ int rc = 0, n_entries, i, j = 0, k = 0;
+
+ for (i = 0; i < eswitch_dev->nb_esw_da; i++) {
+ for (j = 0; j < eswitch_dev->esw_da[i].nb_repr_ports; j++)
+ k++;
+ }
+ n_entries = k;
+
+ if (info == NULL)
+ goto out;
+
+ if ((uint32_t)n_entries > info->nb_ranges_alloc)
+ n_entries = info->nb_ranges_alloc;
+
+ k = 0;
+ info->controller = 0;
+ info->pf = 0;
+ for (i = 0; i < eswitch_dev->nb_esw_da; i++) {
+ esw_da = &eswitch_dev->esw_da[i];
+ info->ranges[k].type = esw_da->da.type;
+ switch (esw_da->da.type) {
+ case RTE_ETH_REPRESENTOR_PF:
+ info->ranges[k].controller = 0;
+ info->ranges[k].pf = esw_da->repr_hw_info[0].pfvf;
+ info->ranges[k].vf = 0;
+ info->ranges[k].id_base = info->ranges[i].pf;
+ info->ranges[k].id_end = info->ranges[i].pf;
+ snprintf(info->ranges[k].name, sizeof(info->ranges[k].name), "pf%d",
+ info->ranges[k].pf);
+ k++;
+ break;
+ case RTE_ETH_REPRESENTOR_VF:
+ for (j = 0; j < esw_da->nb_repr_ports; j++) {
+ info->ranges[k].controller = 0;
+ info->ranges[k].pf = esw_da->da.ports[0];
+ info->ranges[k].vf = esw_da->repr_hw_info[j].pfvf;
+ info->ranges[k].id_base = esw_da->repr_hw_info[j].port_id;
+ info->ranges[k].id_end = esw_da->repr_hw_info[j].port_id;
+ snprintf(info->ranges[k].name, sizeof(info->ranges[k].name),
+ "pf%dvf%d", info->ranges[k].pf, info->ranges[k].vf);
+ k++;
+ }
+ break;
+ default:
+ plt_err("Invalid type %d", esw_da->da.type);
+ rc = 0;
+ goto fail;
+ };
+ }
+ info->nb_ranges = k;
+fail:
+ return rc;
+out:
+ return n_entries;
+}
+
static int
cnxk_eswitch_dev_probe(struct rte_pci_driver *pci_drv, struct rte_pci_device *pci_dev)
{
struct cnxk_eswitch_dev *eswitch_dev;
const struct rte_memzone *mz = NULL;
+ uint16_t num_reps;
int rc = -ENOMEM;
RTE_SET_USED(pci_drv);
@@ -562,12 +625,37 @@ cnxk_eswitch_dev_probe(struct rte_pci_driver *pci_drv, struct rte_pci_device *pc
}
}
+ if (pci_dev->device.devargs) {
+ rc = cnxk_eswitch_repr_devargs(pci_dev, eswitch_dev);
+ if (rc)
+ goto rsrc_cleanup;
+ }
+
+ if (eswitch_dev->repr_cnt.nb_repr_created > eswitch_dev->repr_cnt.max_repr) {
+ plt_err("Representors to be created %d can be greater than max allowed %d",
+ eswitch_dev->repr_cnt.nb_repr_created, eswitch_dev->repr_cnt.max_repr);
+ rc = -EINVAL;
+ goto rsrc_cleanup;
+ }
+
+ num_reps = eswitch_dev->repr_cnt.nb_repr_created;
+ if (!num_reps) {
+ plt_err("No representors enabled");
+ goto fail;
+ }
+
+ plt_esw_dbg("Max no of reps %d reps to be created %d Eswtch pfunc %x",
+ eswitch_dev->repr_cnt.max_repr, eswitch_dev->repr_cnt.nb_repr_created,
+ roc_nix_get_pf_func(&eswitch_dev->nix));
+
/* Spinlock for synchronization between representors traffic and control
* messages
*/
rte_spinlock_init(&eswitch_dev->rep_lock);
return rc;
+rsrc_cleanup:
+ eswitch_hw_rsrc_cleanup(eswitch_dev, pci_dev);
free_mem:
rte_memzone_free(mz);
fail:
diff --git a/drivers/net/cnxk/cnxk_eswitch.h b/drivers/net/cnxk/cnxk_eswitch.h
index d1b4fa8761..6ff296399e 100644
--- a/drivers/net/cnxk/cnxk_eswitch.h
+++ b/drivers/net/cnxk/cnxk_eswitch.h
@@ -25,6 +25,47 @@
#define CNXK_ESWITCH_QUEUE_STATE_STARTED 2
#define CNXK_ESWITCH_QUEUE_STATE_STOPPED 3
+enum cnxk_esw_da_pattern_type {
+ CNXK_ESW_DA_TYPE_LIST = 0,
+ CNXK_ESW_DA_TYPE_PFVF,
+};
+
+struct cnxk_esw_repr_hw_info {
+ /* Representee pcifunc value */
+ uint16_t hw_func;
+ /* rep id in sync with kernel */
+ uint16_t rep_id;
+ /* pf or vf id */
+ uint16_t pfvf;
+ /* representor port id assigned to representee */
+ uint16_t port_id;
+};
+
+/* Structure representing per devarg information - this can be per representee
+ * or range of representee
+ */
+struct cnxk_eswitch_devargs {
+ /* Devargs populated */
+ struct rte_eth_devargs da;
+ /* HW info of representee */
+ struct cnxk_esw_repr_hw_info *repr_hw_info;
+ /* No of representor ports */
+ uint16_t nb_repr_ports;
+ /* Devargs pattern type */
+ enum cnxk_esw_da_pattern_type type;
+};
+
+struct cnxk_eswitch_repr_cnt {
+ /* Max possible representors */
+ uint16_t max_repr;
+ /* Representors to be created as per devargs passed */
+ uint16_t nb_repr_created;
+ /* Representors probed successfully */
+ uint16_t nb_repr_probed;
+ /* Representors started representing a representee */
+ uint16_t nb_repr_started;
+};
+
struct cnxk_rep_info {
struct rte_eth_dev *rep_eth_dev;
};
@@ -70,6 +111,14 @@ struct cnxk_eswitch_dev {
uint16_t rep_cnt;
uint8_t configured;
+ /* Eswitch Representors Devargs */
+ uint16_t nb_esw_da;
+ uint16_t last_probed;
+ struct cnxk_eswitch_devargs esw_da[RTE_MAX_ETHPORTS];
+
+ /* No of representors */
+ struct cnxk_eswitch_repr_cnt repr_cnt;
+
/* Port representor fields */
rte_spinlock_t rep_lock;
uint16_t switch_domain_id;
@@ -90,6 +139,9 @@ cnxk_eswitch_pmd_priv(void)
}
int cnxk_eswitch_nix_rsrc_start(struct cnxk_eswitch_dev *eswitch_dev);
+int cnxk_eswitch_repr_devargs(struct rte_pci_device *pci_dev, struct cnxk_eswitch_dev *eswitch_dev);
+int cnxk_eswitch_representor_info_get(struct cnxk_eswitch_dev *eswitch_dev,
+ struct rte_eth_representor_info *info);
int cnxk_eswitch_txq_setup(struct cnxk_eswitch_dev *eswitch_dev, uint16_t qid, uint16_t nb_desc,
const struct rte_eth_txconf *tx_conf);
int cnxk_eswitch_txq_release(struct cnxk_eswitch_dev *eswitch_dev, uint16_t qid);
diff --git a/drivers/net/cnxk/cnxk_eswitch_devargs.c b/drivers/net/cnxk/cnxk_eswitch_devargs.c
new file mode 100644
index 0000000000..58383fb835
--- /dev/null
+++ b/drivers/net/cnxk/cnxk_eswitch_devargs.c
@@ -0,0 +1,124 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2024 Marvell.
+ */
+
+#include <cnxk_eswitch.h>
+
+#define PF_SHIFT 10
+static inline int
+get_hw_func(uint16_t pf, uint16_t vf)
+{
+ return (pf << PF_SHIFT) | vf;
+}
+
+static int
+populate_repr_hw_info(struct cnxk_eswitch_dev *eswitch_dev, struct rte_eth_devargs *eth_da,
+ uint16_t idx)
+{
+ struct cnxk_eswitch_devargs *esw_da = &eswitch_dev->esw_da[idx];
+ uint16_t nb_repr_ports, hw_func;
+ int rc, i, j;
+
+ if (eth_da->type == RTE_ETH_REPRESENTOR_NONE) {
+ plt_err("No representor type found");
+ return -EINVAL;
+ }
+
+ if (eth_da->type != RTE_ETH_REPRESENTOR_VF && eth_da->type != RTE_ETH_REPRESENTOR_PF &&
+ eth_da->type != RTE_ETH_REPRESENTOR_SF) {
+ plt_err("unsupported representor type %d\n", eth_da->type);
+ return -ENOTSUP;
+ }
+
+ nb_repr_ports = (eth_da->type == RTE_ETH_REPRESENTOR_PF) ? eth_da->nb_ports :
+ eth_da->nb_representor_ports;
+ esw_da->nb_repr_ports = nb_repr_ports;
+ /* If plain list is provided as representor pattern */
+ if (eth_da->nb_ports == 0)
+ return 0;
+
+ esw_da->repr_hw_info = plt_zmalloc(nb_repr_ports * sizeof(struct cnxk_esw_repr_hw_info), 0);
+ if (!esw_da->repr_hw_info) {
+ plt_err("Failed to allocate memory");
+ rc = -ENOMEM;
+ goto fail;
+ }
+
+ plt_esw_dbg("Representor param %d has %d pfvf", idx, nb_repr_ports);
+ /* Check if representor can be created for PFVF and populating HW func list */
+ for (i = 0; i < nb_repr_ports; i++) {
+ if (eth_da->type == RTE_ETH_REPRESENTOR_PF)
+ hw_func = get_hw_func(eth_da->ports[i], 0);
+ else
+ hw_func = get_hw_func(eth_da->ports[0], eth_da->representor_ports[i] + 1);
+
+ for (j = 0; j < eswitch_dev->repr_cnt.max_repr; j++) {
+ if (eswitch_dev->nix.rep_pfvf_map[j] == hw_func)
+ break;
+ }
+
+ /* HW func which doesn not match the map table received from AF, no
+ * representor port is assigned.
+ */
+ if (j == eswitch_dev->repr_cnt.max_repr) {
+ plt_err("Representor port can't be created for PF%dVF%d", eth_da->ports[0],
+ eth_da->representor_ports[i]);
+ rc = -EINVAL;
+ goto fail;
+ }
+
+ esw_da->repr_hw_info[i].hw_func = hw_func;
+ esw_da->repr_hw_info[i].rep_id = j;
+ esw_da->repr_hw_info[i].pfvf = (eth_da->type == RTE_ETH_REPRESENTOR_PF) ?
+ eth_da->ports[0] :
+ eth_da->representor_ports[i];
+ plt_esw_dbg(" HW func %x index %d type %d", hw_func, j, eth_da->type);
+ }
+
+ esw_da->type = CNXK_ESW_DA_TYPE_PFVF;
+
+ return 0;
+fail:
+ return rc;
+}
+
+int
+cnxk_eswitch_repr_devargs(struct rte_pci_device *pci_dev, struct cnxk_eswitch_dev *eswitch_dev)
+{
+ struct rte_devargs *devargs = pci_dev->device.devargs;
+ struct rte_eth_devargs eth_da[RTE_MAX_ETHPORTS];
+ int rc, i, j, count;
+
+ if (devargs == NULL) {
+ plt_err("No devargs passed");
+ rc = -EINVAL;
+ goto fail;
+ }
+
+ /* Parse devargs passed to ESW device */
+ rc = rte_eth_devargs_parse(devargs->args, eth_da, RTE_MAX_ETHPORTS);
+ if (rc < 0) {
+ plt_err("Failed to parse devargs, err %d", rc);
+ goto fail;
+ }
+
+ count = rc;
+ j = eswitch_dev->nb_esw_da;
+ for (i = 0; i < count; i++) {
+ rc = populate_repr_hw_info(eswitch_dev, ð_da[i], j);
+ if (rc) {
+ plt_err("Failed to populate representer hw funcs, err %d", rc);
+ goto fail;
+ }
+
+ rte_memcpy(&eswitch_dev->esw_da[j].da, ð_da[i], sizeof(struct rte_eth_devargs));
+ /* No of representor ports to be created */
+ eswitch_dev->repr_cnt.nb_repr_created += eswitch_dev->esw_da[j].nb_repr_ports;
+ j++;
+ }
+ eswitch_dev->nb_esw_da += count;
+
+ return 0;
+fail:
+ return rc;
+}
diff --git a/drivers/net/cnxk/meson.build b/drivers/net/cnxk/meson.build
index 012d098f80..ea7e363e89 100644
--- a/drivers/net/cnxk/meson.build
+++ b/drivers/net/cnxk/meson.build
@@ -29,6 +29,7 @@ sources = files(
'cnxk_ethdev_telemetry.c',
'cnxk_ethdev_sec_telemetry.c',
'cnxk_eswitch.c',
+ 'cnxk_eswitch_devargs.c',
'cnxk_link.c',
'cnxk_lookup.c',
'cnxk_ptp.c',
--
2.18.0
next prev parent reply other threads:[~2024-02-27 19:16 UTC|newest]
Thread overview: 142+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-08-11 16:34 [PATCH 0/9] net/cnxk: support for port representors Harman Kalra
2023-08-11 16:34 ` [PATCH 1/9] common/cnxk: debug log type for representors Harman Kalra
2023-08-11 16:34 ` [PATCH 2/9] net/cnxk: probing representor ports Harman Kalra
2023-08-11 16:34 ` [PATCH 3/9] common/cnxk: maintaining representor state Harman Kalra
2023-08-11 16:34 ` [PATCH 4/9] net/cnxk: callbacks for " Harman Kalra
2023-08-11 16:34 ` [PATCH 5/9] net/cnxk: add representor control plane Harman Kalra
2023-08-11 16:34 ` [PATCH 6/9] net/cnxk: representor ethdev ops Harman Kalra
2023-08-11 16:34 ` [PATCH 7/9] net/cnxk: representor flow ops Harman Kalra
2023-08-11 16:34 ` [PATCH 8/9] common/cnxk: support represented port for cnxk Harman Kalra
2023-08-11 16:34 ` [PATCH 9/9] net/cnxk: add " Harman Kalra
2023-12-19 17:39 ` [PATCH v2 00/24] net/cnxk: support for port representors Harman Kalra
2023-12-19 17:39 ` [PATCH v2 01/24] common/cnxk: add support for representors Harman Kalra
2023-12-19 17:39 ` [PATCH v2 02/24] net/cnxk: implementing eswitch device Harman Kalra
2024-01-04 12:30 ` Jerin Jacob
2023-12-19 17:39 ` [PATCH v2 03/24] net/cnxk: eswitch HW resource configuration Harman Kalra
2024-01-04 12:34 ` Jerin Jacob
2023-12-19 17:39 ` [PATCH v2 04/24] net/cnxk: eswitch devargs parsing Harman Kalra
2023-12-19 17:39 ` [PATCH v2 05/24] net/cnxk: probing representor ports Harman Kalra
2023-12-19 17:39 ` [PATCH v2 06/24] common/cnxk: common NPC changes for eswitch Harman Kalra
2023-12-19 17:39 ` [PATCH v2 07/24] common/cnxk: interface to update VLAN TPID Harman Kalra
2024-01-04 12:47 ` Jerin Jacob
2023-12-19 17:39 ` [PATCH v2 08/24] net/cnxk: eswitch flow configurations Harman Kalra
2023-12-19 17:39 ` [PATCH v2 09/24] net/cnxk: eswitch fastpath routines Harman Kalra
2023-12-19 17:39 ` [PATCH v2 10/24] net/cnxk: add representor control plane Harman Kalra
2023-12-19 17:39 ` [PATCH v2 11/24] common/cnxk: representee notification callback Harman Kalra
2023-12-19 17:39 ` [PATCH v2 12/24] net/cnxk: handling representee notification Harman Kalra
2023-12-19 17:39 ` [PATCH v2 13/24] net/cnxk: representor ethdev ops Harman Kalra
2023-12-19 17:39 ` [PATCH v2 14/24] common/cnxk: get representees ethernet stats Harman Kalra
2023-12-19 17:39 ` [PATCH v2 15/24] net/cnxk: ethernet statistic for representor Harman Kalra
2023-12-19 17:39 ` [PATCH v2 16/24] common/cnxk: base support for eswitch VF Harman Kalra
2023-12-19 17:39 ` [PATCH v2 17/24] net/cnxk: eswitch VF as ethernet device Harman Kalra
2023-12-19 17:39 ` [PATCH v2 18/24] common/cnxk: support port representor and represented port Harman Kalra
2023-12-19 17:39 ` [PATCH v2 19/24] net/cnxk: add represented port pattern and action Harman Kalra
2023-12-19 17:39 ` [PATCH v2 20/24] net/cnxk: add port representor " Harman Kalra
2023-12-19 17:40 ` [PATCH v2 21/24] net/cnxk: generalize flow operation APIs Harman Kalra
2023-12-19 17:40 ` [PATCH v2 22/24] net/cnxk: flow create on representor ports Harman Kalra
2023-12-19 17:40 ` [PATCH v2 23/24] net/cnxk: other flow operations Harman Kalra
2023-12-19 17:40 ` [PATCH v2 24/24] doc: port representors in cnxk Harman Kalra
2023-12-20 9:37 ` Thomas Monjalon
2023-12-21 13:28 ` [EXT] " Harman Kalra
2023-12-21 18:33 ` Thomas Monjalon
2024-01-11 6:48 ` Harman Kalra
2024-02-01 13:07 ` [PATCH v3 00/23] net/cnxk: support for port representors Harman Kalra
2024-02-01 13:07 ` [PATCH v3 01/23] common/cnxk: add support for representors Harman Kalra
2024-02-01 13:07 ` [PATCH v3 02/23] net/cnxk: implementing eswitch device Harman Kalra
2024-02-01 13:07 ` [PATCH v3 03/23] net/cnxk: eswitch HW resource configuration Harman Kalra
2024-02-01 13:07 ` [PATCH v3 04/23] net/cnxk: eswitch devargs parsing Harman Kalra
2024-02-01 13:07 ` [PATCH v3 05/23] net/cnxk: probing representor ports Harman Kalra
2024-02-01 13:07 ` [PATCH v3 06/23] common/cnxk: common NPC changes for eswitch Harman Kalra
2024-02-01 13:07 ` [PATCH v3 07/23] common/cnxk: interface to update VLAN TPID Harman Kalra
2024-02-01 13:07 ` [PATCH v3 08/23] net/cnxk: eswitch flow configurations Harman Kalra
2024-02-01 13:07 ` [PATCH v3 09/23] net/cnxk: eswitch fastpath routines Harman Kalra
2024-02-01 13:07 ` [PATCH v3 10/23] net/cnxk: add representor control plane Harman Kalra
2024-02-01 13:07 ` [PATCH v3 11/23] common/cnxk: representee notification callback Harman Kalra
2024-02-01 13:07 ` [PATCH v3 12/23] net/cnxk: handling representee notification Harman Kalra
2024-02-01 13:07 ` [PATCH v3 13/23] net/cnxk: representor ethdev ops Harman Kalra
2024-02-01 13:07 ` [PATCH v3 14/23] common/cnxk: get representees ethernet stats Harman Kalra
2024-02-01 13:07 ` [PATCH v3 15/23] net/cnxk: ethernet statistic for representor Harman Kalra
2024-02-01 13:07 ` [PATCH v3 16/23] common/cnxk: base support for eswitch VF Harman Kalra
2024-02-01 13:07 ` [PATCH v3 17/23] net/cnxk: eswitch VF as ethernet device Harman Kalra
2024-02-01 13:07 ` [PATCH v3 18/23] common/cnxk: support port representor and represented port Harman Kalra
2024-02-01 13:07 ` [PATCH v3 19/23] net/cnxk: add represented port pattern and action Harman Kalra
2024-02-01 13:07 ` [PATCH v3 20/23] net/cnxk: add representor " Harman Kalra
2024-02-01 13:07 ` [PATCH v3 21/23] net/cnxk: generalise flow operation APIs Harman Kalra
2024-02-01 13:07 ` [PATCH v3 22/23] net/cnxk: flow create on representor ports Harman Kalra
2024-02-01 13:07 ` [PATCH v3 23/23] net/cnxk: other flow operations Harman Kalra
2024-02-27 19:15 ` [PATCH v4 00/23] net/cnxk: support for port representors Harman Kalra
2024-02-27 19:15 ` [PATCH v4 01/23] common/cnxk: add support for representors Harman Kalra
2024-02-27 19:15 ` [PATCH v4 02/23] net/cnxk: implementing eswitch device Harman Kalra
2024-03-01 9:31 ` Jerin Jacob
2024-02-27 19:15 ` [PATCH v4 03/23] net/cnxk: eswitch HW resource configuration Harman Kalra
2024-02-27 19:15 ` Harman Kalra [this message]
2024-02-27 19:15 ` [PATCH v4 05/23] net/cnxk: probing representor ports Harman Kalra
2024-02-27 19:15 ` [PATCH v4 06/23] common/cnxk: common NPC changes for eswitch Harman Kalra
2024-02-27 19:15 ` [PATCH v4 07/23] common/cnxk: interface to update VLAN TPID Harman Kalra
2024-02-27 19:15 ` [PATCH v4 08/23] net/cnxk: eswitch flow configurations Harman Kalra
2024-02-27 19:15 ` [PATCH v4 09/23] net/cnxk: eswitch fastpath routines Harman Kalra
2024-02-27 19:15 ` [PATCH v4 10/23] net/cnxk: add representor control plane Harman Kalra
2024-02-27 19:15 ` [PATCH v4 11/23] common/cnxk: representee notification callback Harman Kalra
2024-02-27 19:15 ` [PATCH v4 12/23] net/cnxk: handling representee notification Harman Kalra
2024-02-27 19:15 ` [PATCH v4 13/23] net/cnxk: representor ethdev ops Harman Kalra
2024-02-27 19:15 ` [PATCH v4 14/23] common/cnxk: get representees ethernet stats Harman Kalra
2024-02-27 19:15 ` [PATCH v4 15/23] net/cnxk: ethernet statistics for representor Harman Kalra
2024-02-27 19:15 ` [PATCH v4 16/23] common/cnxk: base support for eswitch VF Harman Kalra
2024-02-27 19:15 ` [PATCH v4 17/23] net/cnxk: eswitch VF as ethernet device Harman Kalra
2024-02-27 19:15 ` [PATCH v4 18/23] common/cnxk: support port representor and represented port Harman Kalra
2024-02-27 19:15 ` [PATCH v4 19/23] net/cnxk: add represented port pattern and action Harman Kalra
2024-02-27 19:15 ` [PATCH v4 20/23] net/cnxk: add representor " Harman Kalra
2024-02-27 19:15 ` [PATCH v4 21/23] net/cnxk: generalise flow operation APIs Harman Kalra
2024-02-27 19:15 ` [PATCH v4 22/23] net/cnxk: flow create on representor ports Harman Kalra
2024-02-27 19:15 ` [PATCH v4 23/23] net/cnxk: other flow operations Harman Kalra
2024-03-01 9:35 ` Jerin Jacob
2024-03-01 19:14 ` [PATCH v5 00/23] net/cnxk: support for port representors Harman Kalra
2024-03-01 19:14 ` [PATCH v5 01/23] common/cnxk: add support for representors Harman Kalra
2024-03-01 19:14 ` [PATCH v5 02/23] net/cnxk: implementing eswitch device Harman Kalra
2024-03-01 19:14 ` [PATCH v5 03/23] net/cnxk: eswitch HW resource configuration Harman Kalra
2024-03-01 19:14 ` [PATCH v5 04/23] net/cnxk: eswitch devargs parsing Harman Kalra
2024-03-01 19:14 ` [PATCH v5 05/23] net/cnxk: probing representor ports Harman Kalra
2024-03-01 19:14 ` [PATCH v5 06/23] common/cnxk: common NPC changes for eswitch Harman Kalra
2024-03-01 19:14 ` [PATCH v5 07/23] common/cnxk: interface to update VLAN TPID Harman Kalra
2024-03-01 19:14 ` [PATCH v5 08/23] net/cnxk: eswitch flow configurations Harman Kalra
2024-03-01 19:14 ` [PATCH v5 09/23] net/cnxk: eswitch fastpath routines Harman Kalra
2024-03-01 19:14 ` [PATCH v5 10/23] net/cnxk: add representor control plane Harman Kalra
2024-03-01 19:14 ` [PATCH v5 11/23] common/cnxk: representee notification callback Harman Kalra
2024-03-01 19:14 ` [PATCH v5 12/23] net/cnxk: handling representee notification Harman Kalra
2024-03-01 19:14 ` [PATCH v5 13/23] net/cnxk: representor ethdev ops Harman Kalra
2024-03-01 19:14 ` [PATCH v5 14/23] common/cnxk: get representees ethernet stats Harman Kalra
2024-03-01 19:14 ` [PATCH v5 15/23] net/cnxk: ethernet statistics for representor Harman Kalra
2024-03-01 19:14 ` [PATCH v5 16/23] common/cnxk: base support for eswitch VF Harman Kalra
2024-03-01 19:14 ` [PATCH v5 17/23] net/cnxk: eswitch VF as ethernet device Harman Kalra
2024-03-01 19:14 ` [PATCH v5 18/23] common/cnxk: support port representor and represented port Harman Kalra
2024-03-01 19:14 ` [PATCH v5 19/23] net/cnxk: add represented port pattern and action Harman Kalra
2024-03-01 19:14 ` [PATCH v5 20/23] net/cnxk: add representor " Harman Kalra
2024-03-01 19:14 ` [PATCH v5 21/23] net/cnxk: generalise flow operation APIs Harman Kalra
2024-03-03 14:50 ` Jerin Jacob
2024-03-01 19:14 ` [PATCH v5 22/23] net/cnxk: flow create on representor ports Harman Kalra
2024-03-01 19:14 ` [PATCH v5 23/23] net/cnxk: other flow operations Harman Kalra
2024-03-03 17:38 ` [PATCH v6 00/23] net/cnxk: support for port representors Harman Kalra
2024-03-03 17:38 ` [PATCH v6 01/23] common/cnxk: add support for representors Harman Kalra
2024-03-03 17:38 ` [PATCH v6 02/23] net/cnxk: implementing eswitch device Harman Kalra
2024-03-03 17:38 ` [PATCH v6 03/23] net/cnxk: eswitch HW resource configuration Harman Kalra
2024-03-03 17:38 ` [PATCH v6 04/23] net/cnxk: eswitch devargs parsing Harman Kalra
2024-03-03 17:38 ` [PATCH v6 05/23] net/cnxk: probing representor ports Harman Kalra
2024-03-03 17:38 ` [PATCH v6 06/23] common/cnxk: common NPC changes for eswitch Harman Kalra
2024-03-03 17:38 ` [PATCH v6 07/23] common/cnxk: interface to update VLAN TPID Harman Kalra
2024-03-03 17:38 ` [PATCH v6 08/23] net/cnxk: eswitch flow configurations Harman Kalra
2024-03-03 17:38 ` [PATCH v6 09/23] net/cnxk: eswitch fastpath routines Harman Kalra
2024-03-03 17:38 ` [PATCH v6 10/23] net/cnxk: add representor control plane Harman Kalra
2024-03-03 17:38 ` [PATCH v6 11/23] common/cnxk: representee notification callback Harman Kalra
2024-03-03 17:38 ` [PATCH v6 12/23] net/cnxk: handling representee notification Harman Kalra
2024-03-03 17:38 ` [PATCH v6 13/23] net/cnxk: representor ethdev ops Harman Kalra
2024-03-03 17:38 ` [PATCH v6 14/23] common/cnxk: get representees ethernet stats Harman Kalra
2024-03-03 17:38 ` [PATCH v6 15/23] net/cnxk: ethernet statistics for representor Harman Kalra
2024-03-03 17:38 ` [PATCH v6 16/23] common/cnxk: base support for eswitch VF Harman Kalra
2024-03-03 17:38 ` [PATCH v6 17/23] net/cnxk: eswitch VF as ethernet device Harman Kalra
2024-03-03 17:38 ` [PATCH v6 18/23] common/cnxk: support port representor and represented port Harman Kalra
2024-03-03 17:38 ` [PATCH v6 19/23] net/cnxk: add represented port pattern and action Harman Kalra
2024-03-03 17:38 ` [PATCH v6 20/23] net/cnxk: add representor " Harman Kalra
2024-03-03 17:38 ` [PATCH v6 21/23] net/cnxk: generalise flow operation APIs Harman Kalra
2024-03-03 17:38 ` [PATCH v6 22/23] net/cnxk: flow create on representor ports Harman Kalra
2024-03-03 17:38 ` [PATCH v6 23/23] net/cnxk: other flow operations Harman Kalra
2024-03-04 7:57 ` Jerin Jacob
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=20240227191550.137687-5-hkalra@marvell.com \
--to=hkalra@marvell.com \
--cc=dev@dpdk.org \
--cc=kirankumark@marvell.com \
--cc=ndabilpuram@marvell.com \
--cc=skori@marvell.com \
--cc=skoteshwar@marvell.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;
as well as URLs for NNTP newsgroup(s).