summaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
authorEugenia Emantayev2017-07-17 12:47:07 +0200
committerSaeed Mahameed2018-01-09 06:40:48 +0100
commitc5a9f6f0ab4054082dd5ce9bbdaa8e8ff05cf365 (patch)
treef3815ac136ebecb49b9ea73a20b290981c61c7ff /net
parentnet/mlx5e: IPoIB, Fix spelling mistake "functionts" -> "functions" (diff)
downloadkernel-qcow2-linux-c5a9f6f0ab4054082dd5ce9bbdaa8e8ff05cf365.tar.gz
kernel-qcow2-linux-c5a9f6f0ab4054082dd5ce9bbdaa8e8ff05cf365.tar.xz
kernel-qcow2-linux-c5a9f6f0ab4054082dd5ce9bbdaa8e8ff05cf365.zip
net/core: Add drop counters to VF statistics
Modern hardware can decide to drop packets going to/from a VF. Add receive and transmit drop counters to be displayed at hypervisor layer in iproute2 per VF statistics. Signed-off-by: Eugenia Emantayev <eugenia@mellanox.com> Signed-off-by: Saeed Mahameed <saeedm@mellanox.com>
Diffstat (limited to 'net')
-rw-r--r--net/core/rtnetlink.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/net/core/rtnetlink.c b/net/core/rtnetlink.c
index c688dc564b11..5421a3fd3ba1 100644
--- a/net/core/rtnetlink.c
+++ b/net/core/rtnetlink.c
@@ -904,6 +904,10 @@ static inline int rtnl_vfinfo_size(const struct net_device *dev,
nla_total_size_64bit(sizeof(__u64)) +
/* IFLA_VF_STATS_MULTICAST */
nla_total_size_64bit(sizeof(__u64)) +
+ /* IFLA_VF_STATS_RX_DROPPED */
+ nla_total_size_64bit(sizeof(__u64)) +
+ /* IFLA_VF_STATS_TX_DROPPED */
+ nla_total_size_64bit(sizeof(__u64)) +
nla_total_size(sizeof(struct ifla_vf_trust)));
return size;
} else
@@ -1258,7 +1262,11 @@ static noinline_for_stack int rtnl_fill_vfinfo(struct sk_buff *skb,
nla_put_u64_64bit(skb, IFLA_VF_STATS_BROADCAST,
vf_stats.broadcast, IFLA_VF_STATS_PAD) ||
nla_put_u64_64bit(skb, IFLA_VF_STATS_MULTICAST,
- vf_stats.multicast, IFLA_VF_STATS_PAD)) {
+ vf_stats.multicast, IFLA_VF_STATS_PAD) ||
+ nla_put_u64_64bit(skb, IFLA_VF_STATS_RX_DROPPED,
+ vf_stats.rx_dropped, IFLA_VF_STATS_PAD) ||
+ nla_put_u64_64bit(skb, IFLA_VF_STATS_TX_DROPPED,
+ vf_stats.tx_dropped, IFLA_VF_STATS_PAD)) {
nla_nest_cancel(skb, vfstats);
goto nla_put_vf_failure;
}