All of lore.kernel.org
 help / color / mirror / Atom feed
From: <jerinj@marvell.com>
To: Jerin Jacob <jerinj@marvell.com>,
	Kiran Kumar K <kirankumark@marvell.com>
Cc: <dev@dpdk.org>, <thomas@monjalon.net>,
	<david.marchand@redhat.com>, <mdr@ashroe.eu>,
	<mattias.ronnblom@ericsson.com>, <pbhagavatula@marvell.com>,
	<ndabilpuram@marvell.com>, <xiao.w.wang@intel.com>
Subject: [dpdk-dev]  [PATCH v4 02/29] graph: implement node registration
Date: Sun, 5 Apr 2020 14:25:46 +0530	[thread overview]
Message-ID: <20200405085613.1336841-3-jerinj@marvell.com> (raw)
In-Reply-To: <20200405085613.1336841-1-jerinj@marvell.com>

From: Jerin Jacob <jerinj@marvell.com>

Adding rte_node_register() API implementation includes allocating
memory for node object, check for duplicate node name and
add the allocated node to STAILQ node_list for future use.

Signed-off-by: Jerin Jacob <jerinj@marvell.com>
Signed-off-by: Kiran Kumar K <kirankumark@marvell.com>
Signed-off-by: Pavan Nikhilesh <pbhagavatula@marvell.com>
Signed-off-by: Nithin Dabilpuram <ndabilpuram@marvell.com>
---
 lib/librte_graph/Makefile              |   1 +
 lib/librte_graph/graph.c               |  18 +++-
 lib/librte_graph/graph_private.h       |  75 ++++++++++++++++
 lib/librte_graph/meson.build           |   2 +-
 lib/librte_graph/node.c                | 113 +++++++++++++++++++++++++
 lib/librte_graph/rte_graph_version.map |   4 +
 6 files changed, 211 insertions(+), 2 deletions(-)
 create mode 100644 lib/librte_graph/graph_private.h
 create mode 100644 lib/librte_graph/node.c

diff --git a/lib/librte_graph/Makefile b/lib/librte_graph/Makefile
index 26fe514f3..933d0ee49 100644
--- a/lib/librte_graph/Makefile
+++ b/lib/librte_graph/Makefile
@@ -14,6 +14,7 @@ LDLIBS += -lrte_eal
 EXPORT_MAP := rte_graph_version.map
 
 # all source are stored in SRCS-y
+SRCS-$(CONFIG_RTE_LIBRTE_GRAPH) += node.c
 SRCS-$(CONFIG_RTE_LIBRTE_GRAPH) += graph.c
 
 # install header files
diff --git a/lib/librte_graph/graph.c b/lib/librte_graph/graph.c
index a55bf443a..a9c124896 100644
--- a/lib/librte_graph/graph.c
+++ b/lib/librte_graph/graph.c
@@ -2,4 +2,20 @@
  * Copyright(C) 2020 Marvell International Ltd.
  */
 
-#include "rte_graph.h"
+#include <rte_spinlock.h>
+
+#include "graph_private.h"
+
+static rte_spinlock_t graph_lock = RTE_SPINLOCK_INITIALIZER;
+
+void
+graph_spinlock_lock(void)
+{
+	rte_spinlock_lock(&graph_lock);
+}
+
+void
+graph_spinlock_unlock(void)
+{
+	rte_spinlock_unlock(&graph_lock);
+}
diff --git a/lib/librte_graph/graph_private.h b/lib/librte_graph/graph_private.h
new file mode 100644
index 000000000..8b9ff5292
--- /dev/null
+++ b/lib/librte_graph/graph_private.h
@@ -0,0 +1,75 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2020 Marvell International Ltd.
+ */
+
+#ifndef _RTE_GRAPH_PRIVATE_H_
+#define _RTE_GRAPH_PRIVATE_H_
+
+#include <inttypes.h>
+#include <sys/queue.h>
+
+#include <rte_common.h>
+#include <rte_eal.h>
+
+#include "rte_graph.h"
+
+/**
+ * @internal
+ *
+ * Structure that holds node internal data.
+ */
+struct node {
+	STAILQ_ENTRY(node) next;      /**< Next node in the list. */
+	char name[RTE_NODE_NAMESIZE]; /**< Name of the node. */
+	uint64_t flags;		      /**< Node configuration flag. */
+	rte_node_process_t process;   /**< Node process function. */
+	rte_node_init_t init;         /**< Node init function. */
+	rte_node_fini_t fini;	      /**< Node fini function. */
+	rte_node_t id;		      /**< Allocated identifier for the node. */
+	rte_node_t parent_id;	      /**< Parent node identifier. */
+	rte_edge_t nb_edges;	      /**< Number of edges from this node. */
+	char next_nodes[][RTE_NODE_NAMESIZE]; /**< Names of next nodes. */
+};
+
+/* Node functions */
+STAILQ_HEAD(node_head, node);
+
+/**
+ * @internal
+ *
+ * Get the head of the node list.
+ *
+ * @return
+ *   Pointer to the node head.
+ */
+struct node_head *node_list_head_get(void);
+
+/**
+ * @internal
+ *
+ * Get node pointer from node name.
+ *
+ * @param name
+ *   Pointer to character string containing the node name.
+ *
+ * @return
+ *   Pointer to the node.
+ */
+struct node *node_from_name(const char *name);
+
+/* Lock functions */
+/**
+ * @internal
+ *
+ * Take a lock on the graph internal spin lock.
+ */
+void graph_spinlock_lock(void);
+
+/**
+ * @internal
+ *
+ * Release a lock on the graph internal spin lock.
+ */
+void graph_spinlock_unlock(void);
+
+#endif /* _RTE_GRAPH_PRIVATE_H_ */
diff --git a/lib/librte_graph/meson.build b/lib/librte_graph/meson.build
index 455cf2ba5..5754ac23b 100644
--- a/lib/librte_graph/meson.build
+++ b/lib/librte_graph/meson.build
@@ -4,7 +4,7 @@
 
 name = 'graph'
 
-sources = files('graph.c')
+sources = files('node.c', 'graph.c')
 headers = files('rte_graph.h')
 allow_experimental_apis = true
 
diff --git a/lib/librte_graph/node.c b/lib/librte_graph/node.c
new file mode 100644
index 000000000..336cd1c94
--- /dev/null
+++ b/lib/librte_graph/node.c
@@ -0,0 +1,113 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(C) 2020 Marvell International Ltd.
+ */
+
+#include <stdbool.h>
+#include <stdio.h>
+#include <string.h>
+
+#include <rte_common.h>
+#include <rte_debug.h>
+#include <rte_eal.h>
+#include <rte_errno.h>
+#include <rte_string_fns.h>
+
+#include "graph_private.h"
+
+static struct node_head node_list = STAILQ_HEAD_INITIALIZER(node_list);
+static rte_node_t node_id;
+
+/* Private functions */
+struct node_head *
+node_list_head_get(void)
+{
+	return &node_list;
+}
+
+struct node *
+node_from_name(const char *name)
+{
+	struct node *node;
+
+	STAILQ_FOREACH(node, &node_list, next)
+		if (strncmp(node->name, name, RTE_NODE_NAMESIZE) == 0)
+			return node;
+
+	return NULL;
+}
+
+static bool
+node_has_duplicate_entry(const char *name)
+{
+	struct node *node;
+
+	/* Is duplicate name registered */
+	STAILQ_FOREACH(node, &node_list, next) {
+		if (strncmp(node->name, name, RTE_NODE_NAMESIZE) == 0) {
+			rte_errno = EEXIST;
+			return 1;
+		}
+	}
+	return 0;
+}
+
+/* Public functions */
+rte_node_t
+__rte_node_register(const struct rte_node_register *reg)
+{
+	struct node *node;
+	rte_edge_t i;
+	size_t sz;
+
+	graph_spinlock_lock();
+
+	/* Check sanity */
+	if (reg == NULL || reg->process == NULL) {
+		rte_errno = EINVAL;
+		goto fail;
+	}
+
+	/* Check for duplicate name */
+	if (node_has_duplicate_entry(reg->name))
+		goto fail;
+
+	sz = sizeof(struct node) + (reg->nb_edges * RTE_NODE_NAMESIZE);
+	node = calloc(1, sz);
+	if (node == NULL) {
+		rte_errno = ENOMEM;
+		goto fail;
+	}
+
+	/* Initialize the node */
+	if (rte_strscpy(node->name, reg->name, RTE_NODE_NAMESIZE) < 0) {
+		rte_errno = E2BIG;
+		goto free;
+	}
+	node->flags = reg->flags;
+	node->process = reg->process;
+	node->init = reg->init;
+	node->fini = reg->fini;
+	node->nb_edges = reg->nb_edges;
+	node->parent_id = reg->parent_id;
+	for (i = 0; i < reg->nb_edges; i++) {
+		if (rte_strscpy(node->next_nodes[i], reg->next_nodes[i],
+				RTE_NODE_NAMESIZE) < 0) {
+			rte_errno = E2BIG;
+			goto free;
+		}
+	}
+
+	node->id = node_id++;
+
+	/* Add the node at tail */
+	STAILQ_INSERT_TAIL(&node_list, node, next);
+	graph_spinlock_unlock();
+
+	return node->id;
+free:
+	free(node);
+fail:
+	graph_spinlock_unlock();
+	return RTE_NODE_ID_INVALID;
+}
+
diff --git a/lib/librte_graph/rte_graph_version.map b/lib/librte_graph/rte_graph_version.map
index 55ef35df5..0884c09f1 100644
--- a/lib/librte_graph/rte_graph_version.map
+++ b/lib/librte_graph/rte_graph_version.map
@@ -1,3 +1,7 @@
 EXPERIMENTAL {
+	global:
 
+	__rte_node_register;
+
+	local: *;
 };
-- 
2.25.1


  parent reply	other threads:[~2020-04-05  8:56 UTC|newest]

Thread overview: 219+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-03-18 21:35 [dpdk-dev] [PATCH v1 00/26] graph: introduce graph subsystem jerinj
2020-03-18 21:35 ` [dpdk-dev] [PATCH v1 01/26] graph: define the public API for graph support jerinj
2020-03-18 21:35 ` [dpdk-dev] [PATCH v1 02/26] graph: implement node registration jerinj
2020-03-18 21:35 ` [dpdk-dev] [PATCH v1 03/26] graph: implement node operations jerinj
2020-03-18 21:35 ` [dpdk-dev] [PATCH v1 04/26] graph: implement node debug routines jerinj
2020-03-18 21:35 ` [dpdk-dev] [PATCH v1 05/26] graph: implement internal graph operation helpers jerinj
2020-03-18 21:35 ` [dpdk-dev] [PATCH v1 06/26] graph: populate fastpath memory for graph reel jerinj
2020-03-18 21:35 ` [dpdk-dev] [PATCH v1 07/26] graph: implement create and destroy APIs jerinj
2020-03-18 21:35 ` [dpdk-dev] [PATCH v1 08/26] graph: implement graph operation APIs jerinj
2020-03-18 21:35 ` [dpdk-dev] [PATCH v1 09/26] graph: implement Graphviz export jerinj
2020-03-18 21:35 ` [dpdk-dev] [PATCH v1 10/26] graph: implement debug routines jerinj
2020-03-18 21:35 ` [dpdk-dev] [PATCH v1 11/26] graph: implement stats support jerinj
2020-03-18 21:35 ` [dpdk-dev] [PATCH v1 12/26] graph: implement fastpath API routines jerinj
2020-03-18 21:35 ` [dpdk-dev] [PATCH v1 13/26] graph: add unit test case jerinj
2020-03-18 21:35 ` [dpdk-dev] [PATCH v1 14/26] graph: add performance testcase jerinj
2020-03-18 21:35 ` [dpdk-dev] [PATCH v1 15/26] node: add log infra and null node jerinj
2020-03-18 21:35 ` [dpdk-dev] [PATCH v1 16/26] node: add ethdev Rx node jerinj
2020-03-18 21:35 ` [dpdk-dev] [PATCH v1 17/26] node: add ethdev Tx node jerinj
2020-03-18 21:35 ` [dpdk-dev] [PATCH v1 18/26] node: add ethdev Rx and Tx node ctrl API jerinj
2020-03-18 21:35 ` [dpdk-dev] [PATCH v1 19/26] node: ipv4 lookup for arm64 jerinj
2020-03-18 21:35 ` [dpdk-dev] [PATCH v1 20/26] node: ipv4 lookup for x86 jerinj
2020-03-19 12:25   ` Ray Kinsella
2020-03-19 14:22     ` [dpdk-dev] [EXT] " Pavan Nikhilesh Bhagavatula
2020-03-19 15:50       ` Ray Kinsella
2020-03-19 16:13         ` Pavan Nikhilesh Bhagavatula
2020-03-20  9:14           ` Ray Kinsella
2020-03-24  9:40             ` Pavan Nikhilesh Bhagavatula
2020-03-24 14:38               ` Ray Kinsella
2020-03-26  9:56                 ` Pavan Nikhilesh Bhagavatula
2020-03-26 16:54                   ` Ray Kinsella
2020-03-18 21:35 ` [dpdk-dev] [PATCH v1 21/26] node: add ipv4 rewrite node jerinj
2020-03-18 21:35 ` [dpdk-dev] [PATCH v1 22/26] node: add ipv4 rewrite and lookup ctrl API jerinj
2020-03-18 21:35 ` [dpdk-dev] [PATCH v1 23/26] node: add pkt drop node jerinj
2020-03-18 21:35 ` [dpdk-dev] [PATCH v1 24/26] l3fwd-graph: add graph based l3fwd skeleton jerinj
2020-03-18 21:35 ` [dpdk-dev] [PATCH v1 25/26] l3fwd-graph: add ethdev configuration changes jerinj
2020-03-18 21:35 ` [dpdk-dev] [PATCH v1 26/26] l3fwd-graph: add graph config and main loop jerinj
2020-03-26 16:56 ` [dpdk-dev] [PATCH v2 00/28] graph: introduce graph subsystem jerinj
2020-03-26 16:56   ` [dpdk-dev] [PATCH v2 01/28] graph: define the public API for graph support jerinj
2020-03-26 16:56   ` [dpdk-dev] [PATCH v2 02/28] graph: implement node registration jerinj
2020-03-26 16:56   ` [dpdk-dev] [PATCH v2 03/28] graph: implement node operations jerinj
2020-03-26 16:56   ` [dpdk-dev] [PATCH v2 04/28] graph: implement node debug routines jerinj
2020-03-26 16:56   ` [dpdk-dev] [PATCH v2 05/28] graph: implement internal graph operation helpers jerinj
2020-03-26 16:56   ` [dpdk-dev] [PATCH v2 06/28] graph: populate fastpath memory for graph reel jerinj
2020-03-26 16:56   ` [dpdk-dev] [PATCH v2 07/28] graph: implement create and destroy APIs jerinj
2020-03-26 16:56   ` [dpdk-dev] [PATCH v2 08/28] graph: implement graph operation APIs jerinj
2020-03-26 16:56   ` [dpdk-dev] [PATCH v2 09/28] graph: implement Graphviz export jerinj
2020-03-26 16:56   ` [dpdk-dev] [PATCH v2 10/28] graph: implement debug routines jerinj
2020-03-26 16:56   ` [dpdk-dev] [PATCH v2 11/28] graph: implement stats support jerinj
2020-03-26 16:56   ` [dpdk-dev] [PATCH v2 12/28] graph: implement fastpath API routines jerinj
2020-03-26 16:56   ` [dpdk-dev] [PATCH v2 13/28] graph: add unit test case jerinj
2020-03-26 16:56   ` [dpdk-dev] [PATCH v2 14/28] graph: add performance testcase jerinj
2020-03-26 16:56   ` [dpdk-dev] [PATCH v2 15/28] node: add log infra and null node jerinj
2020-03-26 16:56   ` [dpdk-dev] [PATCH v2 16/28] node: add ethdev Rx node jerinj
2020-03-26 16:56   ` [dpdk-dev] [PATCH v2 17/28] node: add ethdev Tx node jerinj
2020-03-26 16:56   ` [dpdk-dev] [PATCH v2 18/28] node: add ethdev Rx and Tx node ctrl API jerinj
2020-03-26 16:56   ` [dpdk-dev] [PATCH v2 19/28] node: ipv4 lookup for arm64 jerinj
2020-03-26 16:56   ` [dpdk-dev] [PATCH v2 20/28] node: ipv4 lookup for x86 jerinj
2020-03-27  8:40     ` Jerin Jacob
2020-03-26 16:56   ` [dpdk-dev] [PATCH v2 21/28] node: add ipv4 rewrite node jerinj
2020-03-26 16:56   ` [dpdk-dev] [PATCH v2 22/28] node: add ipv4 rewrite and lookup ctrl API jerinj
2020-03-26 16:56   ` [dpdk-dev] [PATCH v2 23/28] node: add pkt drop node jerinj
2020-03-26 16:56   ` [dpdk-dev] [PATCH v2 24/28] l3fwd-graph: add graph based l3fwd skeleton jerinj
2020-03-26 16:56   ` [dpdk-dev] [PATCH v2 25/28] l3fwd-graph: add ethdev configuration changes jerinj
2020-03-26 16:56   ` [dpdk-dev] [PATCH v2 26/28] l3fwd-graph: add graph config and main loop jerinj
2020-03-26 16:56   ` [dpdk-dev] [PATCH v2 27/28] doc: add graph library programmer's guide guide jerinj
2020-03-26 16:56   ` [dpdk-dev] [PATCH v2 28/28] doc: add l3fwd graph application user guide jerinj
2020-03-27  6:49   ` [dpdk-dev] [PATCH v2 00/28] graph: introduce graph subsystem Jerin Jacob
2020-03-27 10:42     ` Thomas Monjalon
2020-03-31 19:29   ` [dpdk-dev] [PATCH v3 00/29] " jerinj
2020-03-31 19:29     ` [dpdk-dev] [PATCH v3 01/29] graph: define the public API for graph support jerinj
2020-04-03  9:26       ` Wang, Xiao W
2020-04-04 12:15         ` Jerin Jacob
2020-04-06 12:36       ` Andrzej Ostruszka
2020-04-06 14:59         ` Jerin Jacob
2020-04-06 16:09           ` Andrzej Ostruszka
2020-04-07 10:27             ` Jerin Jacob
2020-03-31 19:29     ` [dpdk-dev] [PATCH v3 02/29] graph: implement node registration jerinj
2020-04-03 10:44       ` Wang, Xiao W
2020-04-04 12:29         ` Jerin Jacob
2020-03-31 19:29     ` [dpdk-dev] [PATCH v3 03/29] graph: implement node operations jerinj
2020-04-03 10:54       ` Wang, Xiao W
2020-04-04 13:07         ` Jerin Jacob
2020-03-31 19:29     ` [dpdk-dev] [PATCH v3 04/29] graph: implement node debug routines jerinj
2020-04-04  7:57       ` Wang, Xiao W
2020-04-04 13:12         ` Jerin Jacob
2020-03-31 19:29     ` [dpdk-dev] [PATCH v3 05/29] graph: implement internal graph operation helpers jerinj
2020-04-06 13:47       ` Wang, Xiao W
2020-04-06 14:08         ` Jerin Jacob
2020-03-31 19:29     ` [dpdk-dev] [PATCH v3 06/29] graph: populate fastpath memory for graph reel jerinj
2020-03-31 19:29     ` [dpdk-dev] [PATCH v3 07/29] graph: implement create and destroy APIs jerinj
2020-03-31 19:29     ` [dpdk-dev] [PATCH v3 08/29] graph: implement graph operation APIs jerinj
2020-03-31 19:29     ` [dpdk-dev] [PATCH v3 09/29] graph: implement Graphviz export jerinj
2020-03-31 19:29     ` [dpdk-dev] [PATCH v3 10/29] graph: implement debug routines jerinj
2020-03-31 19:29     ` [dpdk-dev] [PATCH v3 11/29] graph: implement stats support jerinj
2020-03-31 19:29     ` [dpdk-dev] [PATCH v3 12/29] graph: implement fastpath API routines jerinj
2020-03-31 19:29     ` [dpdk-dev] [PATCH v3 13/29] graph: add unit test case jerinj
2020-03-31 19:29     ` [dpdk-dev] [PATCH v3 14/29] graph: add performance testcase jerinj
2020-03-31 19:29     ` [dpdk-dev] [PATCH v3 15/29] node: add log infra and null node jerinj
2020-03-31 19:29     ` [dpdk-dev] [PATCH v3 16/29] node: add ethdev Rx node jerinj
2020-03-31 19:29     ` [dpdk-dev] [PATCH v3 17/29] node: add ethdev Tx node jerinj
2020-03-31 19:29     ` [dpdk-dev] [PATCH v3 18/29] node: add ethdev Rx and Tx node ctrl API jerinj
2020-03-31 19:29     ` [dpdk-dev] [PATCH v3 19/29] node: add generic ipv4 lookup node jerinj
2020-03-31 19:29     ` [dpdk-dev] [PATCH v3 20/29] node: ipv4 lookup for arm64 jerinj
2020-03-31 19:29     ` [dpdk-dev] [PATCH v3 21/29] node: ipv4 lookup for x86 jerinj
2020-03-31 19:29     ` [dpdk-dev] [PATCH v3 22/29] node: add ipv4 rewrite node jerinj
2020-03-31 19:29     ` [dpdk-dev] [PATCH v3 23/29] node: add ipv4 rewrite and lookup ctrl API jerinj
2020-03-31 19:29     ` [dpdk-dev] [PATCH v3 24/29] node: add packet drop node jerinj
2020-03-31 19:29     ` [dpdk-dev] [PATCH v3 25/29] l3fwd-graph: add graph based l3fwd skeleton jerinj
2020-03-31 19:29     ` [dpdk-dev] [PATCH v3 26/29] l3fwd-graph: add ethdev configuration changes jerinj
2020-03-31 19:29     ` [dpdk-dev] [PATCH v3 27/29] l3fwd-graph: add graph config and main loop jerinj
2020-03-31 19:29     ` [dpdk-dev] [PATCH v3 28/29] doc: add graph library programmer's guide guide jerinj
2020-03-31 19:29     ` [dpdk-dev] [PATCH v3 29/29] doc: add l3fwd graph application user guide jerinj
2020-04-05  8:55     ` [dpdk-dev] [PATCH v4 00/29] graph: introduce graph subsystem jerinj
2020-04-05  8:55       ` [dpdk-dev] [PATCH v4 01/29] graph: define the public API for graph support jerinj
2020-04-05  8:55       ` jerinj [this message]
2020-04-05  8:55       ` [dpdk-dev] [PATCH v4 03/29] graph: implement node operations jerinj
2020-04-06 17:57         ` Andrzej Ostruszka
2020-04-07  2:43           ` [dpdk-dev] [EXT] " Kiran Kumar Kokkilagadda
2020-04-07  8:47             ` Andrzej Ostruszka
2020-04-07 10:20             ` Jerin Jacob
2020-04-05  8:55       ` [dpdk-dev] [PATCH v4 04/29] graph: implement node debug routines jerinj
2020-04-06 18:17         ` Andrzej Ostruszka
2020-04-07 10:22           ` Jerin Jacob
2020-04-07 11:50             ` Andrzej Ostruszka
2020-04-07 12:09               ` Jerin Jacob
2020-04-07 12:50                 ` Andrzej Ostruszka
2020-04-05  8:55       ` [dpdk-dev] [PATCH v4 05/29] graph: implement internal graph operation helpers jerinj
2020-04-07 12:16         ` Andrzej Ostruszka
2020-04-07 12:27           ` Jerin Jacob
2020-04-07 12:54             ` Andrzej Ostruszka
2020-04-07 13:31               ` Jerin Jacob
2020-04-05  8:55       ` [dpdk-dev] [PATCH v4 06/29] graph: populate fastpath memory for graph reel jerinj
2020-04-08 17:30         ` Andrzej Ostruszka
2020-04-09  2:44           ` Kiran Kumar Kokkilagadda
2020-04-05  8:55       ` [dpdk-dev] [PATCH v4 07/29] graph: implement create and destroy APIs jerinj
2020-04-08 16:57         ` Andrzej Ostruszka
2020-04-08 17:23           ` Jerin Jacob
2020-04-05  8:55       ` [dpdk-dev] [PATCH v4 08/29] graph: implement graph operation APIs jerinj
2020-04-08 17:49         ` Andrzej Ostruszka
2020-04-08 19:18           ` Jerin Jacob
2020-04-05  8:55       ` [dpdk-dev] [PATCH v4 09/29] graph: implement Graphviz export jerinj
2020-04-05  8:55       ` [dpdk-dev] [PATCH v4 10/29] graph: implement debug routines jerinj
2020-04-05  8:55       ` [dpdk-dev] [PATCH v4 11/29] graph: implement stats support jerinj
2020-04-05  8:55       ` [dpdk-dev] [PATCH v4 12/29] graph: implement fastpath API routines jerinj
2020-04-09 23:07         ` Andrzej Ostruszka
2020-04-10  9:18           ` Jerin Jacob
2020-04-05  8:55       ` [dpdk-dev] [PATCH v4 13/29] graph: add unit test case jerinj
2020-04-05  8:55       ` [dpdk-dev] [PATCH v4 14/29] graph: add performance testcase jerinj
2020-04-05  8:55       ` [dpdk-dev] [PATCH v4 15/29] node: add log infra and null node jerinj
2020-04-05  8:56       ` [dpdk-dev] [PATCH v4 16/29] node: add ethdev Rx node jerinj
2020-04-09 23:05         ` Andrzej Ostruszka
2020-04-10  7:00           ` Nithin Dabilpuram
2020-04-05  8:56       ` [dpdk-dev] [PATCH v4 17/29] node: add ethdev Tx node jerinj
2020-04-05  8:56       ` [dpdk-dev] [PATCH v4 18/29] node: add ethdev Rx and Tx node ctrl API jerinj
2020-04-09 23:07         ` Andrzej Ostruszka
2020-04-10  5:09           ` Nithin Dabilpuram
2020-04-10  8:22             ` Nithin Dabilpuram
2020-04-10 12:52             ` Andrzej Ostruszka
2020-04-10 14:54               ` [dpdk-dev] [EXT] " Nithin Dabilpuram
2020-04-05  8:56       ` [dpdk-dev] [PATCH v4 19/29] node: add generic ipv4 lookup node jerinj
2020-04-09 23:07         ` Andrzej Ostruszka
2020-04-10 10:20           ` Nithin Dabilpuram
2020-04-10 14:41             ` Nithin Dabilpuram
2020-04-10 15:17               ` Andrzej Ostruszka
2020-04-05  8:56       ` [dpdk-dev] [PATCH v4 20/29] node: ipv4 lookup for arm64 jerinj
2020-04-05  8:56       ` [dpdk-dev] [PATCH v4 21/29] node: ipv4 lookup for x86 jerinj
2020-04-05  8:56       ` [dpdk-dev] [PATCH v4 22/29] node: add ipv4 rewrite node jerinj
2020-04-05  8:56       ` [dpdk-dev] [PATCH v4 23/29] node: add ipv4 rewrite and lookup ctrl API jerinj
2020-04-09 23:04         ` Andrzej Ostruszka
2020-04-10  7:24           ` Nithin Dabilpuram
2020-04-05  8:56       ` [dpdk-dev] [PATCH v4 24/29] node: add packet drop node jerinj
2020-04-05  8:56       ` [dpdk-dev] [PATCH v4 25/29] l3fwd-graph: add graph based l3fwd skeleton jerinj
2020-04-09 23:04         ` Andrzej Ostruszka
2020-04-10  8:23           ` Nithin Dabilpuram
2020-04-05  8:56       ` [dpdk-dev] [PATCH v4 26/29] l3fwd-graph: add ethdev configuration changes jerinj
2020-04-05  8:56       ` [dpdk-dev] [PATCH v4 27/29] l3fwd-graph: add graph config and main loop jerinj
2020-04-09 23:04         ` Andrzej Ostruszka
2020-04-10  9:29           ` Nithin Dabilpuram
2020-04-05  8:56       ` [dpdk-dev] [PATCH v4 28/29] doc: add graph library programmer's guide guide jerinj
2020-04-05  8:56       ` [dpdk-dev] [PATCH v4 29/29] doc: add l3fwd graph application user guide jerinj
2020-04-09 23:13       ` [dpdk-dev] [PATCH v4 00/29] graph: introduce graph subsystem Andrzej Ostruszka
2020-04-10  9:07         ` Jerin Jacob
2020-04-11 14:13       ` [dpdk-dev] [PATCH v5 " jerinj
2020-04-11 14:14         ` [dpdk-dev] [PATCH v5 01/29] graph: define the public API for graph support jerinj
2020-04-11 14:14         ` [dpdk-dev] [PATCH v5 02/29] graph: implement node registration jerinj
2020-04-11 14:14         ` [dpdk-dev] [PATCH v5 03/29] graph: implement node operations jerinj
2020-04-11 14:14         ` [dpdk-dev] [PATCH v5 04/29] graph: implement node debug routines jerinj
2020-04-11 14:14         ` [dpdk-dev] [PATCH v5 05/29] graph: implement internal graph operation helpers jerinj
2020-04-11 14:14         ` [dpdk-dev] [PATCH v5 06/29] graph: populate fastpath memory for graph reel jerinj
2020-04-11 14:14         ` [dpdk-dev] [PATCH v5 07/29] graph: implement create and destroy APIs jerinj
2020-04-11 14:14         ` [dpdk-dev] [PATCH v5 08/29] graph: implement graph operation APIs jerinj
2020-04-11 14:14         ` [dpdk-dev] [PATCH v5 09/29] graph: implement Graphviz export jerinj
2020-04-11 14:14         ` [dpdk-dev] [PATCH v5 10/29] graph: implement debug routines jerinj
2020-04-11 14:14         ` [dpdk-dev] [PATCH v5 11/29] graph: implement stats support jerinj
2020-04-11 14:14         ` [dpdk-dev] [PATCH v5 12/29] graph: implement fastpath API routines jerinj
2020-04-11 14:14         ` [dpdk-dev] [PATCH v5 13/29] graph: add unit test case jerinj
2020-04-11 14:14         ` [dpdk-dev] [PATCH v5 14/29] graph: add performance testcase jerinj
2020-04-11 14:14         ` [dpdk-dev] [PATCH v5 15/29] node: add log infra and null node jerinj
2020-04-11 14:14         ` [dpdk-dev] [PATCH v5 16/29] node: add ethdev Rx node jerinj
2020-04-11 14:14         ` [dpdk-dev] [PATCH v5 17/29] node: add ethdev Tx node jerinj
2020-04-11 14:14         ` [dpdk-dev] [PATCH v5 18/29] node: add ethdev Rx and Tx node ctrl API jerinj
2020-04-11 14:14         ` [dpdk-dev] [PATCH v5 19/29] node: add generic ipv4 lookup node jerinj
2020-04-11 14:14         ` [dpdk-dev] [PATCH v5 20/29] node: ipv4 lookup for arm64 jerinj
2020-05-12  9:31           ` David Marchand
2020-05-12  9:50             ` [dpdk-dev] [EXT] " Nithin Dabilpuram
2020-04-11 14:14         ` [dpdk-dev] [PATCH v5 21/29] node: ipv4 lookup for x86 jerinj
2020-04-11 14:14         ` [dpdk-dev] [PATCH v5 22/29] node: add ipv4 rewrite node jerinj
2020-04-11 14:14         ` [dpdk-dev] [PATCH v5 23/29] node: add ipv4 rewrite and lookup ctrl API jerinj
2020-04-11 14:14         ` [dpdk-dev] [PATCH v5 24/29] node: add packet drop node jerinj
2020-04-11 14:14         ` [dpdk-dev] [PATCH v5 25/29] l3fwd-graph: add graph based l3fwd skeleton jerinj
2020-04-11 14:14         ` [dpdk-dev] [PATCH v5 26/29] l3fwd-graph: add ethdev configuration changes jerinj
2020-04-11 14:14         ` [dpdk-dev] [PATCH v5 27/29] l3fwd-graph: add graph config and main loop jerinj
2020-04-11 14:14         ` [dpdk-dev] [PATCH v5 28/29] doc: add graph library programmer's guide guide jerinj
2020-05-11  9:27           ` David Marchand
2020-05-11  9:30             ` Jerin Jacob
2020-04-11 14:14         ` [dpdk-dev] [PATCH v5 29/29] doc: add l3fwd graph application user guide jerinj
2020-04-30  8:07         ` [dpdk-dev] [PATCH v5 00/29] graph: introduce graph subsystem Tom Barbette
2020-04-30  8:42           ` Jerin Jacob
2020-05-05 21:44         ` Thomas Monjalon

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=20200405085613.1336841-3-jerinj@marvell.com \
    --to=jerinj@marvell.com \
    --cc=david.marchand@redhat.com \
    --cc=dev@dpdk.org \
    --cc=kirankumark@marvell.com \
    --cc=mattias.ronnblom@ericsson.com \
    --cc=mdr@ashroe.eu \
    --cc=ndabilpuram@marvell.com \
    --cc=pbhagavatula@marvell.com \
    --cc=thomas@monjalon.net \
    --cc=xiao.w.wang@intel.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.