All of lore.kernel.org
 help / color / mirror / Atom feed
From: Nicolas Dichtel <nicolas.dichtel@6wind.com>
To: hannes@stressinduktion.org
Cc: netdev@vger.kernel.org, yoshfuji@linux-ipv6.org,
	petrus.lt@gmail.com, davem@davemloft.net
Subject: Re: [PATCH RFC] ipv6: fix route selection if kernel is not compiled with CONFIG_IPV6_ROUTER_PREF
Date: Thu, 11 Jul 2013 10:07:52 +0200	[thread overview]
Message-ID: <51DE67D8.9060904@6wind.com> (raw)
In-Reply-To: <20130710163537.GJ15411@order.stressinduktion.org>

Le 10/07/2013 18:35, Hannes Frederic Sowa a écrit :
> On Wed, Jul 10, 2013 at 05:59:04PM +0200, Hannes Frederic Sowa wrote:
>> On Wed, Jul 10, 2013 at 05:20:01PM +0200, Hannes Frederic Sowa wrote:
>>> On Wed, Jul 10, 2013 at 04:10:58PM +0200, Nicolas Dichtel wrote:
>>>> Le 10/07/2013 15:21, Hannes Frederic Sowa a écrit :
>>>>> On Wed, Jul 10, 2013 at 02:22:55PM +0200, Nicolas Dichtel wrote:
>>>>>> Le 10/07/2013 12:53, Hannes Frederic Sowa a écrit :
>>>>> The route with rt6i_gateway does actually expire because I got it from
>>>>> autoconf and ip -6 r l confirms this, too. It seems this is only the cached
>>>>> route (I will confirm shortly). Is this still ok?
>>>> I wonder why expires is 0. Even if this route is cached, the flag
>>>> RTF_EXPIRES should be set. Am I wrong?
>>>
>>> It seems it is possible cached route gets its expiration updated. As
>>> such it is not counted in the iteration but it is found as a sibling and its
>>> nsiblings count is updated again.
>>
>> ip6_link_failure is the problem. We need to remove the route directly instead
>> of calling rt6_update_expires:
>>
>> static void ip6_link_failure(struct sk_buff *skb)
>> {
>>          struct rt6_info *rt;
>>
>>          icmpv6_send(skb, ICMPV6_DEST_UNREACH, ICMPV6_ADDR_UNREACH, 0);
>>
>>          rt = (struct rt6_info *) skb_dst(skb);
>>          if (rt) {
>>                  if (rt->rt6i_flags & RTF_CACHE)
>>                          rt6_update_expires(rt, 0);
>>                  else if (rt->rt6i_node && (rt->rt6i_flags & RTF_DEFAULT))
>>                          rt->rt6i_node->fn_sernum = -1;
>>          }
>> }
>
> With this patch I do not get the panic any more and the routing table
> stabilizes and discarded all NUD nonavailable routes. I'll need to review
> it myself, first. Thanks for your help!

Good catch!
Thank you.

  reply	other threads:[~2013-07-11  8:07 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-07-07 17:30 [PATCH RFC] ipv6: fix route selection if kernel is not compiled with CONFIG_IPV6_ROUTER_PREF Hannes Frederic Sowa
2013-07-09 21:57 ` Hannes Frederic Sowa
2013-07-10  7:54   ` Nicolas Dichtel
2013-07-10  9:28     ` Nicolas Dichtel
2013-07-10 10:53       ` Hannes Frederic Sowa
2013-07-10 12:22         ` Nicolas Dichtel
2013-07-10 13:21           ` Hannes Frederic Sowa
2013-07-10 14:10             ` Nicolas Dichtel
2013-07-10 15:20               ` Hannes Frederic Sowa
2013-07-10 15:59                 ` Hannes Frederic Sowa
2013-07-10 16:35                   ` Hannes Frederic Sowa
2013-07-11  8:07                     ` Nicolas Dichtel [this message]
2013-07-10 21:21               ` Hannes Frederic Sowa
2013-07-11  8:04                 ` Nicolas Dichtel
2013-07-11 10:24                   ` Hannes Frederic Sowa
2013-07-11 14:46                     ` Hannes Frederic Sowa
2013-07-11 14:57                       ` Nicolas Dichtel
2013-07-12  8:51                         ` Hannes Frederic Sowa
2013-07-12 12:04                           ` Nicolas Dichtel
2013-07-12 16:19                             ` Hannes Frederic Sowa
2013-07-12 19:01                               ` Nicolas Dichtel
2013-07-12 19:20                                 ` Hannes Frederic Sowa
2013-07-12 21:48                                   ` Hannes Frederic Sowa
2013-07-10 11:15     ` Hannes Frederic Sowa
2013-07-10 11:40       ` Hannes Frederic Sowa
2013-07-10 12:08       ` Nicolas Dichtel
2013-07-10 13:17         ` Hannes Frederic Sowa
2013-07-10 13:49           ` Hannes Frederic Sowa
2013-07-10 14:30             ` Nicolas Dichtel
2013-07-10 14:34               ` Hannes Frederic Sowa

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=51DE67D8.9060904@6wind.com \
    --to=nicolas.dichtel@6wind.com \
    --cc=davem@davemloft.net \
    --cc=hannes@stressinduktion.org \
    --cc=netdev@vger.kernel.org \
    --cc=petrus.lt@gmail.com \
    --cc=yoshfuji@linux-ipv6.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.