summaryrefslogtreecommitdiff
path: root/lib/route/link/inet6.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/route/link/inet6.c')
-rw-r--r--lib/route/link/inet6.c72
1 files changed, 37 insertions, 35 deletions
diff --git a/lib/route/link/inet6.c b/lib/route/link/inet6.c
index cca308f..cfb0e44 100644
--- a/lib/route/link/inet6.c
+++ b/lib/route/link/inet6.c
@@ -76,16 +76,18 @@ static int inet6_parse_protinfo(struct rtnl_link *link, struct nlattr *attr,
uint64_t *cnt = nla_data(tb[IFLA_INET6_STATS]);
int i;
- for (i = 1; i < __IPSTATS_MIB_MAX; i++)
- rtnl_link_set_stat(link, RTNL_LINK_INPKTS, cnt[i-1]);
+ for (i = 1; i <= __IPSTATS_MIB_MAX; i++)
+ rtnl_link_set_stat(link, RTNL_LINK_IP6_INPKTS + i - 1,
+ cnt[i]);
}
if (tb[IFLA_INET6_ICMP6STATS]) {
- uint64_t *cnt = nla_data(tb[IFLA_INET6_STATS]);
+ uint64_t *cnt = nla_data(tb[IFLA_INET6_ICMP6STATS]);
int i;
- for (i = 1; i < __ICMP6_MIB_MAX; i++)
- rtnl_link_set_stat(link, RTNL_LINK_ICMP6_INMSGS, cnt[i-1]);
+ for (i = 1; i <= __ICMP6_MIB_MAX; i++)
+ rtnl_link_set_stat(link, RTNL_LINK_ICMP6_INMSGS + i - 1,
+ cnt[i]);
}
return 0;
@@ -230,9 +232,9 @@ static void inet6_dump_stats(struct rtnl_link *link,
nl_dump(p, " IPv6: InPkts InOctets "
" InDiscards InDelivers\n");
- nl_dump(p, " %18llu ", link->l_stats[RTNL_LINK_INPKTS]);
+ nl_dump(p, " %18llu ", link->l_stats[RTNL_LINK_IP6_INPKTS]);
- octets = nl_cancel_down_bytes(link->l_stats[RTNL_LINK_INOCTETS],
+ octets = nl_cancel_down_bytes(link->l_stats[RTNL_LINK_IP6_INOCTETS],
&octetsUnit);
if (octets)
nl_dump(p, "%14.2f %3s ", octets, octetsUnit);
@@ -240,15 +242,15 @@ static void inet6_dump_stats(struct rtnl_link *link,
nl_dump(p, "%16llu B ", 0);
nl_dump(p, "%18llu %18llu\n",
- link->l_stats[RTNL_LINK_INDISCARDS],
- link->l_stats[RTNL_LINK_INDELIVERS]);
+ link->l_stats[RTNL_LINK_IP6_INDISCARDS],
+ link->l_stats[RTNL_LINK_IP6_INDELIVERS]);
nl_dump(p, " OutPkts OutOctets "
" OutDiscards OutForwards\n");
- nl_dump(p, " %18llu ", link->l_stats[RTNL_LINK_OUTPKTS]);
+ nl_dump(p, " %18llu ", link->l_stats[RTNL_LINK_IP6_OUTPKTS]);
- octets = nl_cancel_down_bytes(link->l_stats[RTNL_LINK_OUTOCTETS],
+ octets = nl_cancel_down_bytes(link->l_stats[RTNL_LINK_IP6_OUTOCTETS],
&octetsUnit);
if (octets)
nl_dump(p, "%14.2f %3s ", octets, octetsUnit);
@@ -256,23 +258,23 @@ static void inet6_dump_stats(struct rtnl_link *link,
nl_dump(p, "%16llu B ", 0);
nl_dump(p, "%18llu %18llu\n",
- link->l_stats[RTNL_LINK_OUTDISCARDS],
- link->l_stats[RTNL_LINK_OUTFORWDATAGRAMS]);
+ link->l_stats[RTNL_LINK_IP6_OUTDISCARDS],
+ link->l_stats[RTNL_LINK_IP6_OUTFORWDATAGRAMS]);
nl_dump(p, " InMcastPkts InMcastOctets "
" InBcastPkts InBcastOctests\n");
- nl_dump(p, " %18llu ", link->l_stats[RTNL_LINK_INMCASTPKTS]);
+ nl_dump(p, " %18llu ", link->l_stats[RTNL_LINK_IP6_INMCASTPKTS]);
- octets = nl_cancel_down_bytes(link->l_stats[RTNL_LINK_INMCASTOCTETS],
+ octets = nl_cancel_down_bytes(link->l_stats[RTNL_LINK_IP6_INMCASTOCTETS],
&octetsUnit);
if (octets)
nl_dump(p, "%14.2f %3s ", octets, octetsUnit);
else
nl_dump(p, "%16llu B ", 0);
- nl_dump(p, "%18llu ", link->l_stats[RTNL_LINK_INBCASTPKTS]);
- octets = nl_cancel_down_bytes(link->l_stats[RTNL_LINK_INBCASTOCTETS],
+ nl_dump(p, "%18llu ", link->l_stats[RTNL_LINK_IP6_INBCASTPKTS]);
+ octets = nl_cancel_down_bytes(link->l_stats[RTNL_LINK_IP6_INBCASTOCTETS],
&octetsUnit);
if (octets)
nl_dump(p, "%14.2f %3s\n", octets, octetsUnit);
@@ -282,17 +284,17 @@ static void inet6_dump_stats(struct rtnl_link *link,
nl_dump(p, " OutMcastPkts OutMcastOctets "
" OutBcastPkts OutBcastOctests\n");
- nl_dump(p, " %18llu ", link->l_stats[RTNL_LINK_OUTMCASTPKTS]);
+ nl_dump(p, " %18llu ", link->l_stats[RTNL_LINK_IP6_OUTMCASTPKTS]);
- octets = nl_cancel_down_bytes(link->l_stats[RTNL_LINK_OUTMCASTOCTETS],
+ octets = nl_cancel_down_bytes(link->l_stats[RTNL_LINK_IP6_OUTMCASTOCTETS],
&octetsUnit);
if (octets)
nl_dump(p, "%14.2f %3s ", octets, octetsUnit);
else
nl_dump(p, "%16llu B ", 0);
- nl_dump(p, "%18llu ", link->l_stats[RTNL_LINK_OUTBCASTPKTS]);
- octets = nl_cancel_down_bytes(link->l_stats[RTNL_LINK_OUTBCASTOCTETS],
+ nl_dump(p, "%18llu ", link->l_stats[RTNL_LINK_IP6_OUTBCASTPKTS]);
+ octets = nl_cancel_down_bytes(link->l_stats[RTNL_LINK_IP6_OUTBCASTOCTETS],
&octetsUnit);
if (octets)
nl_dump(p, "%14.2f %3s\n", octets, octetsUnit);
@@ -302,32 +304,32 @@ static void inet6_dump_stats(struct rtnl_link *link,
nl_dump(p, " ReasmOKs ReasmFails "
" ReasmReqds ReasmTimeout\n");
nl_dump(p, " %18llu %18llu %18llu %18llu\n",
- link->l_stats[RTNL_LINK_REASMOKS],
- link->l_stats[RTNL_LINK_REASMFAILS],
- link->l_stats[RTNL_LINK_REASMREQDS],
- link->l_stats[RTNL_LINK_REASMTIMEOUT]);
+ link->l_stats[RTNL_LINK_IP6_REASMOKS],
+ link->l_stats[RTNL_LINK_IP6_REASMFAILS],
+ link->l_stats[RTNL_LINK_IP6_REASMREQDS],
+ link->l_stats[RTNL_LINK_IP6_REASMTIMEOUT]);
nl_dump(p, " FragOKs FragFails "
" FragCreates\n");
nl_dump(p, " %18llu %18llu %18llu\n",
- link->l_stats[RTNL_LINK_FRAGOKS],
- link->l_stats[RTNL_LINK_FRAGFAILS],
- link->l_stats[RTNL_LINK_FRAGCREATES]);
+ link->l_stats[RTNL_LINK_IP6_FRAGOKS],
+ link->l_stats[RTNL_LINK_IP6_FRAGFAILS],
+ link->l_stats[RTNL_LINK_IP6_FRAGCREATES]);
nl_dump(p, " InHdrErrors InTooBigErrors "
" InNoRoutes InAddrErrors\n");
nl_dump(p, " %18llu %18llu %18llu %18llu\n",
- link->l_stats[RTNL_LINK_INHDRERRORS],
- link->l_stats[RTNL_LINK_INTOOBIGERRORS],
- link->l_stats[RTNL_LINK_INNOROUTES],
- link->l_stats[RTNL_LINK_INADDRERRORS]);
+ link->l_stats[RTNL_LINK_IP6_INHDRERRORS],
+ link->l_stats[RTNL_LINK_IP6_INTOOBIGERRORS],
+ link->l_stats[RTNL_LINK_IP6_INNOROUTES],
+ link->l_stats[RTNL_LINK_IP6_INADDRERRORS]);
nl_dump(p, " InUnknownProtos InTruncatedPkts "
" OutNoRoutes\n");
nl_dump(p, " %18llu %18llu %18llu\n",
- link->l_stats[RTNL_LINK_INUNKNOWNPROTOS],
- link->l_stats[RTNL_LINK_INTRUNCATEDPKTS],
- link->l_stats[RTNL_LINK_OUTNOROUTES]);
+ link->l_stats[RTNL_LINK_IP6_INUNKNOWNPROTOS],
+ link->l_stats[RTNL_LINK_IP6_INTRUNCATEDPKTS],
+ link->l_stats[RTNL_LINK_IP6_OUTNOROUTES]);
nl_dump(p, " ICMPv6: InMsgs InErrors "
" OutMsgs OutErrors\n");