[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20210409144314.bfdc37b91cee99d1761a84a4@uniroma2.it>
Date: Fri, 9 Apr 2021 14:43:14 +0200
From: Andrea Mayer <andrea.mayer@...roma2.it>
To: Jakub Kicinski <kuba@...nel.org>
Cc: "David S. Miller" <davem@...emloft.net>,
Hideaki YOSHIFUJI <yoshfuji@...ux-ipv6.org>,
David Ahern <dsahern@...nel.org>, linux-kernel@...r.kernel.org,
netdev@...r.kernel.org,
Stefano Salsano <stefano.salsano@...roma2.it>,
Paolo Lungaroni <paolo.lungaroni@...roma2.it>,
Ahmed Abdelsalam <ahabdels.dev@...il.com>,
Andrea Mayer <andrea.mayer@...roma2.it>
Subject: Re: [RFC net-next 1/1] seg6: add counters support for SRv6
Behaviors
On Wed, 7 Apr 2021 13:24:04 -0700
Jakub Kicinski <kuba@...nel.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@...roma2.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
Powered by blists - more mailing lists