ipv6: Expose reachable and retrans timer values as msecs

Expose reachable and retrans timer values in msecs instead of jiffies.
Both timer values are already exposed as msecs in the neighbour table
netlink interface.

The creation timestamp format with increased precision is kept but
cleaned up.

Signed-off-by: Thomas Graf <tgraf@infradead.org>
Cc: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
Signed-off-by: David S. Miller <davem@davemloft.net>

authored by Thomas Graf and committed by David S. Miller 18a31e1e 07bfa524

+10 -9
+10 -9
net/ipv6/addrconf.c
··· 98 98 #endif 99 99 100 100 #define INFINITY_LIFE_TIME 0xFFFFFFFF 101 - #define TIME_DELTA(a, b) ((unsigned long)((long)(a) - (long)(b))) 101 + 102 + static inline u32 cstamp_delta(unsigned long cstamp) 103 + { 104 + return (cstamp - INITIAL_JIFFIES) * 100UL / HZ; 105 + } 102 106 103 107 #define ADDRCONF_TIMER_FUZZ_MINUS (HZ > 50 ? HZ/50 : 1) 104 108 #define ADDRCONF_TIMER_FUZZ (HZ / 4) ··· 3448 3444 { 3449 3445 struct ifa_cacheinfo ci; 3450 3446 3451 - ci.cstamp = (u32)(TIME_DELTA(cstamp, INITIAL_JIFFIES) / HZ * 100 3452 - + TIME_DELTA(cstamp, INITIAL_JIFFIES) % HZ * 100 / HZ); 3453 - ci.tstamp = (u32)(TIME_DELTA(tstamp, INITIAL_JIFFIES) / HZ * 100 3454 - + TIME_DELTA(tstamp, INITIAL_JIFFIES) % HZ * 100 / HZ); 3447 + ci.cstamp = cstamp_delta(cstamp); 3448 + ci.tstamp = cstamp_delta(tstamp); 3455 3449 ci.ifa_prefered = preferred; 3456 3450 ci.ifa_valid = valid; 3457 3451 ··· 3934 3932 NLA_PUT_U32(skb, IFLA_INET6_FLAGS, idev->if_flags); 3935 3933 3936 3934 ci.max_reasm_len = IPV6_MAXPLEN; 3937 - ci.tstamp = (__u32)(TIME_DELTA(idev->tstamp, INITIAL_JIFFIES) / HZ * 100 3938 - + TIME_DELTA(idev->tstamp, INITIAL_JIFFIES) % HZ * 100 / HZ); 3939 - ci.reachable_time = idev->nd_parms->reachable_time; 3940 - ci.retrans_time = idev->nd_parms->retrans_time; 3935 + ci.tstamp = cstamp_delta(idev->tstamp); 3936 + ci.reachable_time = jiffies_to_msecs(idev->nd_parms->reachable_time); 3937 + ci.retrans_time = jiffies_to_msecs(idev->nd_parms->retrans_time); 3941 3938 NLA_PUT(skb, IFLA_INET6_CACHEINFO, sizeof(ci), &ci); 3942 3939 3943 3940 nla = nla_reserve(skb, IFLA_INET6_CONF, DEVCONF_MAX * sizeof(s32));