On Thu, 11 Oct 2018 14:24:03 +0200 Lorenzo Bianconi <lorenzo.bianc...@redhat.com> wrote:
> > > iproute2 walks through the list of available tunnels using netlink > > > protocol in order to get device info instead of reading > > > them from proc filesystem. However the kernel reports device statistics > > > using IFLA_INET6_STATS/IFLA_INET6_ICMP6STATS attributes nested in > > > IFLA_PROTINFO one but iproutes expects these info in > > > IFLA_STATS64/IFLA_STATS attributes. > > > The issue can be triggered with the following reproducer: > > > > > > $ip link add ip6d0 type ip6tnl mode ip6ip6 local 1111::1 remote 2222::1 > > > $ip -6 -d -s tunnel show ip6d0 > > > ip6d0: ipv6/ipv6 remote 2222::1 local 1111::1 encaplimit 4 hoplimit 64 > > > tclass 0x00 flowlabel 0x00000 (flowinfo 0x00000000) > > > Dump terminated > > > > > > Fix the issue introducing IFLA_INET6_STATS attribute parsing > > > > > > Fixes: 3e953938717f ("iptunnel/ip6tunnel: Use netlink to walk through > > > tunnels list") > > > > > > Signed-off-by: Lorenzo Bianconi <lorenzo.bianc...@redhat.com> > > > > Can't we fix the kernel to report statistics properly, rather than > > starting iproute2 doing more /proc interfaces. > > > > Hi Stephen, > > sorry, I did not get what you mean. Current iproute implementation > walks through tunnels list using netlink protocol and parses device > statistics in the kernel netlink message. However it does not take > into account the actual netlink message layout since the statistic > attribute is nested in IFLA_PROTINFO one. > Moreover AFAIU the related kernel code has not changed since iproute > commit 3e953938717f, so I guess we should fix the issue in iproute code > instead in the kernel one. Do you agree? > > Regards, > Lorenzo Applied to current iproute2.