* timer expiry check at icmp.c in ipv6
@ 2012-07-16 13:44 BALAKUMARAN KANNAN
2012-07-16 14:33 ` Eric Dumazet
0 siblings, 1 reply; 4+ messages in thread
From: BALAKUMARAN KANNAN @ 2012-07-16 13:44 UTC (permalink / raw)
To: netdev
Dear all,
In kernel-3.0.26 code net/ipv6/icmp.c, while sending ICMP reply where it checks for the timer expiry. It should check the value given by a router advertisement. I think the expiry value is stored in rt->rt6_expires in ndisc.c (line no: 1284). Then while sending an ICMP reply, it should check with the expiry timer right? Where that check is happening? Please somebody explain me.
Thank you.
--Regards,
K.Balakumaran
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: timer expiry check at icmp.c in ipv6
2012-07-16 13:44 timer expiry check at icmp.c in ipv6 BALAKUMARAN KANNAN
@ 2012-07-16 14:33 ` Eric Dumazet
2012-07-17 5:11 ` BALAKUMARAN KANNAN
0 siblings, 1 reply; 4+ messages in thread
From: Eric Dumazet @ 2012-07-16 14:33 UTC (permalink / raw)
To: BALAKUMARAN KANNAN; +Cc: netdev
On Mon, 2012-07-16 at 13:44 +0000, BALAKUMARAN KANNAN wrote:
> Dear all,
>
> In kernel-3.0.26 code net/ipv6/icmp.c, while sending ICMP reply where
> it checks for the timer expiry. It should check the value given by a
> router advertisement. I think the expiry value is stored in
> rt->rt6_expires in ndisc.c (line no: 1284). Then while sending an ICMP
> reply, it should check with the expiry timer right? Where that check
> is happening? Please somebody explain me.
>
> Thank you.
Its probably done in net/ipv6/ip6_fib.c
fib6_gc_timer_cb() -> fib6_run_gc()
Every 30 seconds.
(you can change /proc/sys/net/ipv6/route/gc_interval )
^ permalink raw reply [flat|nested] 4+ messages in thread
* RE: timer expiry check at icmp.c in ipv6
2012-07-16 14:33 ` Eric Dumazet
@ 2012-07-17 5:11 ` BALAKUMARAN KANNAN
2012-07-17 5:39 ` Eric Dumazet
0 siblings, 1 reply; 4+ messages in thread
From: BALAKUMARAN KANNAN @ 2012-07-17 5:11 UTC (permalink / raw)
To: Eric Dumazet; +Cc: netdev
Dear Eric,
Can you please explain it into bit further. Actually what I want to know is how the preferred lifetime value of a router advertisement is processed?, Where it is stored? and while sending the ICMP_REPLY how that preferred lifetime value considered before actually sending the packet? I cannot able to find the relation between icmpv6_echo_reply and fib6_run_gc(). I am very new to kernel source. Kindly help me.
thank you.
________________________________________
From: netdev-owner@vger.kernel.org [netdev-owner@vger.kernel.org] on behalf of Eric Dumazet [eric.dumazet@gmail.com]
Sent: Monday, July 16, 2012 8:03 PM
To: BALAKUMARAN KANNAN
Cc: netdev@vger.kernel.org
Subject: Re: timer expiry check at icmp.c in ipv6
On Mon, 2012-07-16 at 13:44 +0000, BALAKUMARAN KANNAN wrote:
> Dear all,
>
> In kernel-3.0.26 code net/ipv6/icmp.c, while sending ICMP reply where
> it checks for the timer expiry. It should check the value given by a
> router advertisement. I think the expiry value is stored in
> rt->rt6_expires in ndisc.c (line no: 1284). Then while sending an ICMP
> reply, it should check with the expiry timer right? Where that check
> is happening? Please somebody explain me.
>
> Thank you.
Its probably done in net/ipv6/ip6_fib.c
fib6_gc_timer_cb() -> fib6_run_gc()
Every 30 seconds.
(you can change /proc/sys/net/ipv6/route/gc_interval )
^ permalink raw reply [flat|nested] 4+ messages in thread
* RE: timer expiry check at icmp.c in ipv6
2012-07-17 5:11 ` BALAKUMARAN KANNAN
@ 2012-07-17 5:39 ` Eric Dumazet
0 siblings, 0 replies; 4+ messages in thread
From: Eric Dumazet @ 2012-07-17 5:39 UTC (permalink / raw)
To: BALAKUMARAN KANNAN; +Cc: netdev
On Tue, 2012-07-17 at 05:11 +0000, BALAKUMARAN KANNAN wrote:
> Dear Eric,
> Can you please explain it into bit further. Actually what I want
> to know is how the preferred lifetime value of a router advertisement
> is processed?, Where it is stored? and while sending the ICMP_REPLY
> how that preferred lifetime value considered before actually sending
> the packet? I cannot able to find the relation between
> icmpv6_echo_reply and fib6_run_gc(). I am very new to kernel source.
> Kindly help me.
# find net/ipv6|xargs grep -n RTF_EXPIRES
net/ipv6/ip6_fib.c:675: if (!(iter->rt6i_flags & RTF_EXPIRES))
net/ipv6/ip6_fib.c:677: if (!(rt->rt6i_flags & RTF_EXPIRES))
net/ipv6/ip6_fib.c:740: (rt->rt6i_flags & (RTF_EXPIRES | RTF_CACHE)))
net/ipv6/ip6_fib.c:1545: if (rt->rt6i_flags & RTF_EXPIRES && rt->dst.expires) {
net/ipv6/route.c:307: if (!(rt->rt6i_flags & RTF_EXPIRES) && dst->from)
net/ipv6/route.c:370: if (rt->rt6i_flags & RTF_EXPIRES) {
net/ipv6/route.c:375: return (ort->rt6i_flags & RTF_EXPIRES) &&
net/ipv6/route.c:1397: if (cfg->fc_flags & RTF_EXPIRES)
net/ipv6/route.c:1908: RTF_UP | RTF_EXPIRES | RTF_PREF(pref),
net/ipv6/route.c:2476: if (!(rt->rt6i_flags & RTF_EXPIRES))
net/ipv6/addrconf.c:805: } else if (!(rt->rt6i_flags & RTF_EXPIRES)) {
net/ipv6/addrconf.c:1902: flags |= RTF_EXPIRES;
net/ipv6/addrconf.c:2212: flags = RTF_EXPIRES;
net/ipv6/addrconf.c:3420: flags = RTF_EXPIRES;
net/ipv6/ip6_fib.c.orig:675: if (!(iter->rt6i_flags & RTF_EXPIRES))
net/ipv6/ip6_fib.c.orig:677: if (!(rt->rt6i_flags & RTF_EXPIRES))
net/ipv6/ip6_fib.c.orig:740: (rt->rt6i_flags & (RTF_EXPIRES | RTF_CACHE)))
net/ipv6/ip6_fib.c.orig:1545: if (rt->rt6i_flags & RTF_EXPIRES && rt->dst.expires) {
What are the expected preferred lifetimes of a router ?
If granularity is one second, the garbage collection done every 30
seconds is not good.
But if its one hour, or one day, having a 30 seconds delay at the end of
the period isnt critical.
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2012-07-17 5:39 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-07-16 13:44 timer expiry check at icmp.c in ipv6 BALAKUMARAN KANNAN
2012-07-16 14:33 ` Eric Dumazet
2012-07-17 5:11 ` BALAKUMARAN KANNAN
2012-07-17 5:39 ` Eric Dumazet
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.