All of lore.kernel.org
 help / color / mirror / Atom feed
* 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.