Message ID | 20210407180332.29775-1-andrea.mayer@uniroma2.it |
---|---|
Headers | show |
Series | seg6: Counters for SRv6 Behaviors | expand |
On Wed, 7 Apr 2021 20:03:32 +0200 Andrea Mayer wrote: > This patch provides counters for SRv6 Behaviors as defined in [1], section > 6. For each SRv6 Behavior instance, the 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; > > In addition, we introduces a new counter that counts the number of packets > that have NOT been properly processed (i.e. errors) by an SRv6 Behavior > instance. > > Each SRv6 Behavior instance can be configured, at the time of its creation, > to make use of counters. > This is done through iproute2 which allows the user to create an SRv6 > Behavior instance specifying the optional "count" attribute as shown in the > following example: > > $ ip -6 route add 2001:db8::1 encap seg6local action End count dev eth0 > > per-behavior counters can be shown by adding "-s" to the iproute2 command > line, i.e.: > > $ ip -s -6 route show 2001:db8::1 > 2001:db8::1 encap seg6local action End packets 0 bytes 0 errors 0 dev eth0 > > [1] https://www.rfc-editor.org/rfc/rfc8986.html#name-counters > > Signed-off-by: Andrea Mayer <andrea.mayer@uniroma2.it> > +static int put_nla_counters(struct sk_buff *skb, struct seg6_local_lwt *slwt) > +{ > + struct seg6_local_counters counters = { 0, 0, 0 }; > + struct nlattr *nla; > + int i; > + > + nla = nla_reserve(skb, SEG6_LOCAL_COUNTERS, sizeof(counters)); > + if (!nla) > + return -EMSGSIZE; nla_reserve_64bit(), IIUC netlink guarantees alignment of 64 bit values.
Since this is a single patch set, just put this good cover letter content as the message in the patch.
On Wed, 7 Apr 2021 13:24:04 -0700 Jakub Kicinski <kuba@kernel.org> wrote: > On Wed, 7 Apr 2021 20:03:32 +0200 Andrea Mayer wrote: > > This patch provides counters for SRv6 Behaviors as defined in [1], section > > 6. For each SRv6 Behavior instance, the 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; > > > > In addition, we introduces a new counter that counts the number of packets > > that have NOT been properly processed (i.e. errors) by an SRv6 Behavior > > instance. > > > > Each SRv6 Behavior instance can be configured, at the time of its creation, > > to make use of counters. > > This is done through iproute2 which allows the user to create an SRv6 > > Behavior instance specifying the optional "count" attribute as shown in the > > following example: > > > > $ ip -6 route add 2001:db8::1 encap seg6local action End count dev eth0 > > > > per-behavior counters can be shown by adding "-s" to the iproute2 command > > line, i.e.: > > > > $ ip -s -6 route show 2001:db8::1 > > 2001:db8::1 encap seg6local action End packets 0 bytes 0 errors 0 dev eth0 > > > > [1] https://www.rfc-editor.org/rfc/rfc8986.html#name-counters > > > > Signed-off-by: Andrea Mayer <andrea.mayer@uniroma2.it> > > > +static int put_nla_counters(struct sk_buff *skb, struct seg6_local_lwt *slwt) > > +{ > > + struct seg6_local_counters counters = { 0, 0, 0 }; > > + struct nlattr *nla; > > + int i; > > + > > + nla = nla_reserve(skb, SEG6_LOCAL_COUNTERS, sizeof(counters)); > > + if (!nla) > > + return -EMSGSIZE; > > nla_reserve_64bit(), IIUC netlink guarantees alignment of 64 bit values. Hi Jakub, thanks for your review! Yes, we should guarantee alignment of 64 bit values. I will definitely follow your advice. Andrea