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

Reply via email to