Thread (3 messages) 3 messages, 3 authors, 2021-04-29

Re: [net-next] seg6: add counters support for SRv6 Behaviors

From: David Ahern <hidden>
Date: 2021-04-29 02:03:32
Also in: lkml

On 4/27/21 9:44 AM, Andrea Mayer wrote:
This patch provides counters for SRv6 Behaviors as defined in [1],
section 6. For each SRv6 Behavior instance, counters defined in [1] are:

 - the total number of packets that have been correctly processed;
 - the total amount of traffic in bytes of all packets that have been
   correctly processed;
...
Results of tests are shown in the following table:

Scenario (1): average 1504764,81 pps (~1504,76 kpps); std. dev 3956,82 pps
Scenario (2): average 1501469,78 pps (~1501,47 kpps); std. dev 2979,85 pps
Scenario (3): average 1501315,13 pps (~1501,32 kpps); std. dev 2956,00 pps

As can be observed, throughputs achieved in scenarios (2),(3) did not
suffer any observable degradation compared to scenario (1).

Thanks to Jakub Kicinski and David Ahern for their valuable suggestions
and comments provided during the discussion of the proposed RFCs.

[2] https://www.cloudlab.us

Signed-off-by: Andrea Mayer <andrea.mayer@uniroma2.it>
---
 include/uapi/linux/seg6_local.h |  30 +++++
 net/ipv6/seg6_local.c           | 198 +++++++++++++++++++++++++++++++-
 2 files changed, 226 insertions(+), 2 deletions(-)
Thanks for the detailed commit message and stats on performance impact.
quoted hunk ↗ jump to hunk
@@ -977,7 +1044,14 @@ static int seg6_local_input(struct sk_buff *skb)
 	slwt = seg6_local_lwtunnel(orig_dst->lwtstate);
 	desc = slwt->desc;
 
-	return desc->input(skb, slwt);
+	rc = desc->input(skb, slwt);
+
+	if (!seg6_lwtunnel_counters_enabled(slwt))
+		return rc;
+
+	seg6_local_update_counters(slwt, len, rc);
+
+	return rc;
Nit: This would be simpler as

	if (seg6_lwtunnel_counters_enabled(slwt))
		seg6_local_update_counters(slwt, len, rc);

	return rc;

but not worth a re-do since net-next is about to close, so:

Reviewed-by: David Ahern <dsahern@kernel.org>
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help