Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 18a31e1e authored by Thomas Graf's avatar Thomas Graf Committed by David S. Miller
Browse files

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: default avatarThomas Graf <tgraf@infradead.org>
Cc: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 07bfa524
Loading
Loading
Loading
Loading
+10 −9
Original line number Original line Diff line number Diff line
@@ -98,7 +98,11 @@
#endif
#endif


#define	INFINITY_LIFE_TIME	0xFFFFFFFF
#define	INFINITY_LIFE_TIME	0xFFFFFFFF
#define TIME_DELTA(a, b) ((unsigned long)((long)(a) - (long)(b)))

static inline u32 cstamp_delta(unsigned long cstamp)
{
	return (cstamp - INITIAL_JIFFIES) * 100UL / HZ;
}


#define ADDRCONF_TIMER_FUZZ_MINUS	(HZ > 50 ? HZ/50 : 1)
#define ADDRCONF_TIMER_FUZZ_MINUS	(HZ > 50 ? HZ/50 : 1)
#define ADDRCONF_TIMER_FUZZ		(HZ / 4)
#define ADDRCONF_TIMER_FUZZ		(HZ / 4)
@@ -3444,10 +3448,8 @@ static int put_cacheinfo(struct sk_buff *skb, unsigned long cstamp,
{
{
	struct ifa_cacheinfo ci;
	struct ifa_cacheinfo ci;


	ci.cstamp = (u32)(TIME_DELTA(cstamp, INITIAL_JIFFIES) / HZ * 100
	ci.cstamp = cstamp_delta(cstamp);
			+ TIME_DELTA(cstamp, INITIAL_JIFFIES) % HZ * 100 / HZ);
	ci.tstamp = cstamp_delta(tstamp);
	ci.tstamp = (u32)(TIME_DELTA(tstamp, INITIAL_JIFFIES) / HZ * 100
			+ TIME_DELTA(tstamp, INITIAL_JIFFIES) % HZ * 100 / HZ);
	ci.ifa_prefered = preferred;
	ci.ifa_prefered = preferred;
	ci.ifa_valid = valid;
	ci.ifa_valid = valid;


@@ -3932,10 +3934,9 @@ static int inet6_fill_ifinfo(struct sk_buff *skb, struct inet6_dev *idev,
	NLA_PUT_U32(skb, IFLA_INET6_FLAGS, idev->if_flags);
	NLA_PUT_U32(skb, IFLA_INET6_FLAGS, idev->if_flags);


	ci.max_reasm_len = IPV6_MAXPLEN;
	ci.max_reasm_len = IPV6_MAXPLEN;
	ci.tstamp = (__u32)(TIME_DELTA(idev->tstamp, INITIAL_JIFFIES) / HZ * 100
	ci.tstamp = cstamp_delta(idev->tstamp);
		    + TIME_DELTA(idev->tstamp, INITIAL_JIFFIES) % HZ * 100 / HZ);
	ci.reachable_time = jiffies_to_msecs(idev->nd_parms->reachable_time);
	ci.reachable_time = idev->nd_parms->reachable_time;
	ci.retrans_time = jiffies_to_msecs(idev->nd_parms->retrans_time);
	ci.retrans_time = idev->nd_parms->retrans_time;
	NLA_PUT(skb, IFLA_INET6_CACHEINFO, sizeof(ci), &ci);
	NLA_PUT(skb, IFLA_INET6_CACHEINFO, sizeof(ci), &ci);


	nla = nla_reserve(skb, IFLA_INET6_CONF, DEVCONF_MAX * sizeof(s32));
	nla = nla_reserve(skb, IFLA_INET6_CONF, DEVCONF_MAX * sizeof(s32));