diff options
author | Tobias Klauser <tklauser@distanz.ch> | 2015-08-04 14:17:03 +0200 |
---|---|---|
committer | Tobias Klauser <tklauser@distanz.ch> | 2015-08-06 15:20:07 +0200 |
commit | 665c63d4e75e0cda65e9ef52d7828ff44e028449 (patch) | |
tree | 6ac6f64ff2320c0188ff9315e6ffffdcaa02c62f | |
parent | 30946f2d783dc0ef0aeef3b5bc91f581fcea2fc4 (diff) |
Add additional IPv6 link stats
Hook up additional IPv6 link statistics counters available since libnl
v3.2.25. Also add compatibility defines, so bmon can still be compiled
against older libnl versions.
Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
-rw-r--r-- | src/in_netlink.c | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/src/in_netlink.c b/src/in_netlink.c index d71ee9a..2c51888 100644 --- a/src/in_netlink.c +++ b/src/in_netlink.c @@ -49,6 +49,17 @@ static struct bmon_module netlink_ops; #include <netlink/route/classifier.h> #include <netlink/route/qdisc/htb.h> +/* These counters are not available prior to libnl 3.2.25. Set them to -1 so + * rtnl_link_get_stat() won't be called for them. */ +#if LIBNL_CURRENT < 220 +# define RTNL_LINK_ICMP6_CSUMERRORS -1 +# define RTNL_LINK_IP6_CSUMERRORS -1 +# define RTNL_LINK_IP6_NOECTPKTS -1 +# define RTNL_LINK_IP6_ECT1PKTS -1 +# define RTNL_LINK_IP6_ECT0PKTS -1 +# define RTNL_LINK_IP6_CEPKTS -1 +#endif + static struct attr_map link_attrs[] = { { .name = "bytes", @@ -283,6 +294,14 @@ static struct attr_map link_attrs[] = { .txid = RTNL_LINK_ICMP6_OUTERRORS, }, { + .name = "icmp6csumerr", + .type = ATTR_TYPE_COUNTER, + .unit = UNIT_NUMBER, + .description = "ICMPv6 Checksum Errors", + .rxid = RTNL_LINK_ICMP6_CSUMERRORS, + .txid = -1, +}, +{ .name = "ip6inhdrerr", .type = ATTR_TYPE_COUNTER, .unit = UNIT_NUMBER, @@ -323,6 +342,14 @@ static struct attr_map link_attrs[] = { .txid = -1, }, { + .name = "ip6csumerr", + .type = ATTR_TYPE_COUNTER, + .unit = UNIT_NUMBER, + .description = "Ip6 Checksum Error", + .rxid = RTNL_LINK_IP6_CSUMERRORS, + .txid = -1, +}, +{ .name = "ip6reasmtimeo", .type = ATTR_TYPE_COUNTER, .unit = UNIT_NUMBER, @@ -353,6 +380,38 @@ static struct attr_map link_attrs[] = { .description = "Ip6 Reasm/Frag Requests", .rxid = RTNL_LINK_IP6_REASMREQDS, .txid = RTNL_LINK_IP6_FRAGCREATES, +}, +{ + .name = "ip6noectpkts", + .type = ATTR_TYPE_COUNTER, + .unit = UNIT_NUMBER, + .description = "Ip6 Non-ECT Packets", + .rxid = RTNL_LINK_IP6_NOECTPKTS, + .txid = -1, +}, +{ + .name = "ip6ect1pkts", + .type = ATTR_TYPE_COUNTER, + .unit = UNIT_NUMBER, + .description = "Ip6 ECT(1) Packets", + .rxid = RTNL_LINK_IP6_ECT1PKTS, + .txid = -1, +}, +{ + .name = "ip6ect0pkts", + .type = ATTR_TYPE_COUNTER, + .unit = UNIT_NUMBER, + .description = "Ip6 ECT(0) Packets", + .rxid = RTNL_LINK_IP6_ECT0PKTS, + .txid = -1, +}, +{ + .name = "ip6cepkts", + .type = ATTR_TYPE_COUNTER, + .unit = UNIT_NUMBER, + .description = "Ip6 CE Packets", + .rxid = RTNL_LINK_IP6_CEPKTS, + .txid = -1, } }; |