This patchset records per-interface packet stats in the MPLS forwarding path and exports them using a nest of attributes root at a new IFLA_STATS_AF_SPEC attribute as part of RTM_GETSTATS messages:
[IFLA_STATS_AF_SPEC] -> [AF_MPLS] -> [MPLS_STATS_LINK] -> struct mpls_link_stats The first patch adds the rtnl infrastructure for this, including a new callbacks to per-AF ops of fill_stats_af and get_stats_af_size. The second patch records MPLS stats and makes use of the infrastructure to export them. The rtnl infrastructure could also be used to export IPv6 stats in the future. Robert Shearman (2): net: AF-specific RTM_GETSTATS attributes mpls: Packet stats include/net/rtnetlink.h | 4 + include/uapi/linux/if_link.h | 1 + include/uapi/linux/mpls.h | 30 ++++++++ net/core/rtnetlink.c | 50 ++++++++++++ net/mpls/af_mpls.c | 179 +++++++++++++++++++++++++++++++++++++------ net/mpls/internal.h | 58 +++++++++++++- net/mpls/mpls_iptunnel.c | 11 ++- 7 files changed, 305 insertions(+), 28 deletions(-) -- 2.1.4