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>
This commit is contained in:
parent
4312782479
commit
c5a9f6f0ab
@ -13,6 +13,8 @@ struct ifla_vf_stats {
|
|||||||
__u64 tx_bytes;
|
__u64 tx_bytes;
|
||||||
__u64 broadcast;
|
__u64 broadcast;
|
||||||
__u64 multicast;
|
__u64 multicast;
|
||||||
|
__u64 rx_dropped;
|
||||||
|
__u64 tx_dropped;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct ifla_vf_info {
|
struct ifla_vf_info {
|
||||||
|
@ -732,6 +732,8 @@ enum {
|
|||||||
IFLA_VF_STATS_BROADCAST,
|
IFLA_VF_STATS_BROADCAST,
|
||||||
IFLA_VF_STATS_MULTICAST,
|
IFLA_VF_STATS_MULTICAST,
|
||||||
IFLA_VF_STATS_PAD,
|
IFLA_VF_STATS_PAD,
|
||||||
|
IFLA_VF_STATS_RX_DROPPED,
|
||||||
|
IFLA_VF_STATS_TX_DROPPED,
|
||||||
__IFLA_VF_STATS_MAX,
|
__IFLA_VF_STATS_MAX,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -904,6 +904,10 @@ static inline int rtnl_vfinfo_size(const struct net_device *dev,
|
|||||||
nla_total_size_64bit(sizeof(__u64)) +
|
nla_total_size_64bit(sizeof(__u64)) +
|
||||||
/* IFLA_VF_STATS_MULTICAST */
|
/* IFLA_VF_STATS_MULTICAST */
|
||||||
nla_total_size_64bit(sizeof(__u64)) +
|
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)));
|
nla_total_size(sizeof(struct ifla_vf_trust)));
|
||||||
return size;
|
return size;
|
||||||
} else
|
} 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,
|
nla_put_u64_64bit(skb, IFLA_VF_STATS_BROADCAST,
|
||||||
vf_stats.broadcast, IFLA_VF_STATS_PAD) ||
|
vf_stats.broadcast, IFLA_VF_STATS_PAD) ||
|
||||||
nla_put_u64_64bit(skb, IFLA_VF_STATS_MULTICAST,
|
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);
|
nla_nest_cancel(skb, vfstats);
|
||||||
goto nla_put_vf_failure;
|
goto nla_put_vf_failure;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user