summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas Graf <tgraf@suug.ch>2015-11-15 18:09:42 -0800
committerThomas Graf <tgraf@suug.ch>2015-11-15 18:09:42 -0800
commit559e31e62f2dbbb3b6f415070bf459a98614cf0e (patch)
treee1d2f6538bfb96a8daa96d77be2fc50de34f349a
parent9a69cb6d596413c1d80f432b3eb0362a7e42b8a7 (diff)
parent665c63d4e75e0cda65e9ef52d7828ff44e028449 (diff)
Merge pull request #30 from tklauser/ip6-link-stats
Add additional IPv6 link stats
-rw-r--r--src/in_netlink.c59
1 files changed, 59 insertions, 0 deletions
diff --git a/src/in_netlink.c b/src/in_netlink.c
index 683e05f..84a841a 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,
}
};