Ping6 application presumes a constant hop limit is set by Ipv6L3Protocol
Line 272 of ping6.cc is:
" Hop Count = " << (uint16_t) (64 - hdr.GetHopLimit ()));
This presumes that the initial hop count was 64. This is the 'DefaultTtl' in Ipv6L3Protocol, but doesn't have to be; a user may set it to some other value (128 and 255 are in use outside of Linux).
Instead, I think this app should manually set its TTL and remember it for this subtraction. There is already Socket::SetIpv6HopLimit (uint8_t ipHopLimit) but it is not being used here.
Once this is fixed, then the second step will be to add the tracing support similar to what was added for IPv4 in commit dfd0983, as was recommended in MR !352 (closed)