> > -----Original Message----- > > From: pbhagavat...@marvell.com <pbhagavat...@marvell.com> > > Sent: Thursday, February 22, 2024 8:24 PM > > To: jer...@marvell.com; ndabilpu...@marvell.com; > kirankum...@marvell.com; > > Yan, Zhirun <zhirun....@intel.com>; Pavan Nikhilesh > > <pbhagavat...@marvell.com>; Ruifeng Wang <ruifeng.w...@arm.com>; > > Richardson, Bruce <bruce.richard...@intel.com>; Konstantin Ananyev > > <konstantin.v.anan...@yandex.ru> > > Cc: dev@dpdk.org > > Subject: [24.11 PATCH v3 4/5] node: add error stats for ip4 lookup node > > > > From: Pavan Nikhilesh <pbhagavat...@marvell.com> > > > > Add error counters for ip4 LPM lookup failures in ip4_lookup node. > > > > Signed-off-by: Pavan Nikhilesh <pbhagavat...@marvell.com> > > --- > > lib/node/ip4_lookup.c | 9 +++++++++ > > lib/node/ip4_lookup_neon.h | 5 +++++ > > lib/node/ip4_lookup_sse.h | 6 ++++++ > > lib/node/node_private.h | 8 ++++++++ > > 4 files changed, 28 insertions(+) > > > > diff --git a/lib/node/ip4_lookup.c b/lib/node/ip4_lookup.c index > > 18955971f6..5a7921db75 100644 > > --- a/lib/node/ip4_lookup.c > > +++ b/lib/node/ip4_lookup.c > > @@ -86,6 +86,7 @@ ip4_lookup_node_process_scalar(struct rte_graph > *graph, > > struct rte_node *node, > > rc = rte_lpm_lookup(lpm, rte_be_to_cpu_32(ipv4_hdr- > > >dst_addr), > > &next_hop); > > next_hop = (rc == 0) ? next_hop : drop_nh; > > + NODE_INCREMENT_ERROR_ID(node, 0, (rc != 0), 1); > > > > node_mbuf_priv1(mbuf, dyn)->nh = (uint16_t)next_hop; > > next_hop = next_hop >> 16; > > @@ -219,11 +220,19 @@ ip4_lookup_node_init(const struct rte_graph > *graph, > > struct rte_node *node) > > return 0; > > } > > > > +static struct rte_node_errors ip4_lookup_errors = { > > + .nb_errors = 1, > > + .err_desc = { > > + [0] = "ip4_lookup_error", > > Here, if one node has a list of err_desc, should we add a table for counting?
A more complex node can have a table of errors, the lookup node has only one type of failure i.e. lpm lookup failure. The id to increment can be selected by NODE_INCREMENT_ERROR_ID(node, 0, (rc != 0), 1); -> increments id 0 error NODE_INCREMENT_ERROR_ID(node, 1, (rc != 0), 1); -> increments id 1 error > like: > err_type count > type_a 1 > type_b 2 > type_c 3 > > or we can report the total number of failed pkts for one node only.