lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Message-Id: <1470777912-2227-3-git-send-email-jiri@resnulli.us> Date: Tue, 9 Aug 2016 23:25:11 +0200 From: Jiri Pirko <jiri@...nulli.us> To: netdev@...r.kernel.org Cc: davem@...emloft.net, nogahf@...lanox.com, idosch@...lanox.com, eladr@...lanox.com, yotamg@...lanox.com, ogerlitz@...lanox.com, roopa@...ulusnetworks.com, nikolay@...ulusnetworks.com, linville@...driver.com, tgraf@...g.ch, gospo@...ulusnetworks.com, sfeldma@...il.com, sd@...asysnail.net, eranbe@...lanox.com, ast@...mgrid.com, edumazet@...gle.com, hannes@...essinduktion.org, f.fainelli@...il.com, dsa@...ulusnetworks.com Subject: [patch net-next v6 2/3] net: core: add SW stats to if_stats_msg From: Nogah Frankel <nogahf@...lanox.com> Add a nested attribute of SW stats to if_stats_msg under IFLA_STATS_LINK_SW_64. Signed-off-by: Nogah Frankel <nogahf@...lanox.com> Reviewed-by: Ido Schimmel <idosch@...lanox.com> Signed-off-by: Jiri Pirko <jiri@...lanox.com> --- include/uapi/linux/if_link.h | 1 + net/core/rtnetlink.c | 21 +++++++++++++++++++++ 2 files changed, 22 insertions(+) diff --git a/include/uapi/linux/if_link.h b/include/uapi/linux/if_link.h index a1b5202..1c9b808 100644 --- a/include/uapi/linux/if_link.h +++ b/include/uapi/linux/if_link.h @@ -825,6 +825,7 @@ enum { IFLA_STATS_LINK_64, IFLA_STATS_LINK_XSTATS, IFLA_STATS_LINK_XSTATS_SLAVE, + IFLA_STATS_LINK_SW_64, __IFLA_STATS_MAX, }; diff --git a/net/core/rtnetlink.c b/net/core/rtnetlink.c index 189cc78..910f802 100644 --- a/net/core/rtnetlink.c +++ b/net/core/rtnetlink.c @@ -3583,6 +3583,21 @@ static int rtnl_fill_statsinfo(struct sk_buff *skb, struct net_device *dev, dev_get_stats(dev, sp); } + if (stats_attr_valid(filter_mask, IFLA_STATS_LINK_SW_64, *idxattr)) { + if (dev_have_sw_stats(dev)) { + struct rtnl_link_stats64 *sp; + + attr = nla_reserve_64bit(skb, IFLA_STATS_LINK_SW_64, + sizeof(struct rtnl_link_stats64), + IFLA_STATS_UNSPEC); + if (!attr) + goto nla_put_failure; + + sp = nla_data(attr); + dev_get_sw_stats(dev, sp); + } + } + if (stats_attr_valid(filter_mask, IFLA_STATS_LINK_XSTATS, *idxattr)) { const struct rtnl_link_ops *ops = dev->rtnl_link_ops; @@ -3644,6 +3659,7 @@ nla_put_failure: static const struct nla_policy ifla_stats_policy[IFLA_STATS_MAX + 1] = { [IFLA_STATS_LINK_64] = { .len = sizeof(struct rtnl_link_stats64) }, + [IFLA_STATS_LINK_SW_64] = { .len = sizeof(struct rtnl_link_stats64) }, }; static size_t if_nlmsg_stats_size(const struct net_device *dev, @@ -3685,6 +3701,11 @@ static size_t if_nlmsg_stats_size(const struct net_device *dev, } } + if (stats_attr_valid(filter_mask, IFLA_STATS_LINK_SW_64, 0)) { + if (dev_have_sw_stats(dev)) + size += nla_total_size_64bit(sizeof(struct rtnl_link_stats64)); + } + return size; } -- 2.5.5
Powered by blists - more mailing lists