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