Stephen Hemminger wrote:
> On Tue, 24 Jul 2007 09:50:57 +0530
> Varun Chandramohan <[EMAIL PROTECTED]> wrote:
>
>
>> Stephen Hemminger wrote:
>>
>>> On Mon, 23 Jul 2007 10:13:18 +0530
>>> Varun Chandramohan <[EMAIL PROTECTED]> wrote:
>>>
>>>
>>>
>>>> The age field of the ipv6 route structures are initilized with the current
>>>> timeval at the time of route creation. When the route dump is called
>>>> the route age value stored in the structure is subtracted from the
>>>> present timeval and the difference is passed on as the route age.
>>>>
>>>> Signed-off-by: Varun Chandramohan <[EMAIL PROTECTED]>
>>>> ---
>>>> include/net/ip6_fib.h | 1 +
>>>> include/net/ip6_route.h | 3 +++
>>>> net/ipv6/addrconf.c | 5 +++++
>>>> net/ipv6/route.c | 23 +++++++++++++++++++----
>>>> 4 files changed, 28 insertions(+), 4 deletions(-)
>>>>
>>>> diff --git a/include/net/ip6_fib.h b/include/net/ip6_fib.h
>>>> index c48ea87..e30a1cf 100644
>>>> --- a/include/net/ip6_fib.h
>>>> +++ b/include/net/ip6_fib.h
>>>> @@ -98,6 +98,7 @@ struct rt6_info
>>>>
>>>> u32 rt6i_flags;
>>>> u32 rt6i_metric;
>>>> + time_t rt6i_age;
>>>> atomic_t rt6i_ref;
>>>> struct fib6_table *rt6i_table;
>>>>
>>>> diff --git a/include/net/ip6_route.h b/include/net/ip6_route.h
>>>> index 5456fdd..fc9716c 100644
>>>> --- a/include/net/ip6_route.h
>>>> +++ b/include/net/ip6_route.h
>>>> @@ -36,6 +36,9 @@ struct route_info {
>>>> #define RT6_LOOKUP_F_REACHABLE 0x2
>>>> #define RT6_LOOKUP_F_HAS_SADDR 0x4
>>>>
>>>> +#define RT6_SET_ROUTE_INFO 0x0
>>>> +#define RT6_GET_ROUTE_INFO 0x1
>>>> +
>>>> extern struct rt6_info ip6_null_entry;
>>>>
>>>> #ifdef CONFIG_IPV6_MULTIPLE_TABLES
>>>> diff --git a/net/ipv6/addrconf.c b/net/ipv6/addrconf.c
>>>> index 5a5f8bd..715c766 100644
>>>> --- a/net/ipv6/addrconf.c
>>>> +++ b/net/ipv6/addrconf.c
>>>> @@ -4187,6 +4187,7 @@ EXPORT_SYMBOL(unregister_inet6addr_notif
>>>>
>>>> int __init addrconf_init(void)
>>>> {
>>>> + struct timeval tv;
>>>> int err = 0;
>>>>
>>>> /* The addrconf netdev notifier requires that loopback_dev
>>>> @@ -4214,10 +4215,14 @@ int __init addrconf_init(void)
>>>> if (err)
>>>> return err;
>>>>
>>>> + do_gettimeofday(&tv);
>>>>
>>>>
>>> Better to use ktime_t or timespec in new code.
>>>
>>>
>> You are saying not to use timeval as its going to be removed sometime in
>> future? If not, may i know why should we use timespec or ktime?
>> I need only seconds granularity so i was wondering if that matters.
>>
>>
>
> Timeval isn't going away, but ktime is easier for basic maths.
> If all you need is seconds resolution, just use jiffies. Gettimeofday
>
Thanks stephen for the review. As far as using jiffies (which is my
original implementation) i got a comment saying that on 32bit platform
jiffies wrap every 49 days. That's the reason for the do_gettimeofday()
implementation. However i understand that such calls require expensive
h/w accesses. Considering the fact that jiffies wrap around rather
quickly, can you suggest any other way of doing it?
> (and ktime_get) both require expensive hardware accesses on
> some platforms.
>
> For the specific case IPV6 route ageing, this isn't a big deal it is just
> that people tend to copy code.
> -
> To unsubscribe from this list: send the line "unsubscribe netdev" in
> the body of a message to [EMAIL PROTECTED]
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at http://vger.kernel.org/majordomo-info.html