[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <C42FBC0B-C41E-4C4D-A07D-A7FA6BDDB920@mellanox.com>
Date: Wed, 20 Apr 2016 20:57:42 +0000
From: Elad Raz <eladr@...lanox.com>
To: Roopa Prabhu <roopa@...ulusnetworks.com>
CC: "netdev@...r.kernel.org" <netdev@...r.kernel.org>,
"jhs@...atatu.com" <jhs@...atatu.com>,
"davem@...emloft.net" <davem@...emloft.net>,
"tgraf@...g.ch" <tgraf@...g.ch>,
"nicolas.dichtel@...nd.com" <nicolas.dichtel@...nd.com>,
"nikolay@...ulusnetworks.com" <nikolay@...ulusnetworks.com>
Subject: Re: [PATCH net-next v6] rtnetlink: add new RTM_GETSTATS message to
dump link stats
> On 20 Apr 2016, at 6:43 PM, Roopa Prabhu <roopa@...ulusnetworks.com> wrote:
>
> From: Roopa Prabhu <roopa@...ulusnetworks.com>
>
> This patch adds a new RTM_GETSTATS message to query link stats via netlink
> from the kernel. RTM_NEWLINK also dumps stats today, but RTM_NEWLINK
> returns a lot more than just stats and is expensive in some cases when
> frequent polling for stats from userspace is a common operation.
>
> RTM_GETSTATS is an attempt to provide a light weight netlink message
> to explicity query only link stats from the kernel on an interface.
> The idea is to also keep it extensible so that new kinds of stats can be
> added to it in the future.
>
> This patch adds the following attribute for NETDEV stats:
> struct nla_policy ifla_stats_policy[IFLA_STATS_MAX + 1] = {
> [IFLA_STATS_LINK_64] = { .len = sizeof(struct rtnl_link_stats64) },
> };
>
> Like any other rtnetlink message, RTM_GETSTATS can be used to get stats of
> a single interface or all interfaces with NLM_F_DUMP.
>
> Future possible new types of stat attributes:
> link af stats:
> - IFLA_STATS_LINK_IPV6 (nested. for ipv6 stats)
> - IFLA_STATS_LINK_MPLS (nested. for mpls/mdev stats)
> extended stats:
> - IFLA_STATS_LINK_EXTENDED (nested. extended software netdev stats like bridge,
> vlan, vxlan etc)
> - IFLA_STATS_LINK_HW_EXTENDED (nested. extended hardware stats which are
> available via ethtool today)
I think that it’s better to have IFLA_STATS_LINK_CPU_ONLY attribute. The default stat should be aggregation of HW only packets and packets that got trapped to CPU together.
>
> This patch also declares a filter mask for all stat attributes.
> User has to provide a mask of stats attributes to query. filter mask
> can be specified in the new hdr 'struct if_stats_msg' for stats messages.
> Other important field in the header is the ifindex.
>
> This api can also include attributes for global stats (eg tcp) in the future.
> When global stats are included in a stats msg, the ifindex in the header
> must be zero. A single stats message cannot contain both global and
> netdev specific stats. To easily distinguish them, netdev specific stat
> attributes name are prefixed with IFLA_STATS_LINK_
>
> Without any attributes in the filter_mask, no stats will be returned.
>
> This patch has been tested with mofified iproute2 ifstat.
>
> Suggested-by: Jamal Hadi Salim <jhs@...atatu.com>
> Signed-off-by: Roopa Prabhu <roopa@...ulusnetworks.com>
Nice work! Thank you Roopa!
Powered by blists - more mailing lists