From: Hannes Frederic Sowa <hannes@stressinduktion.org>
To: nicolas.dichtel@6wind.com
Cc: netdev@vger.kernel.org, Eric Dumazet <eric.dumazet@gmail.com>,
Vlad Yasevich <vyasevich@gmail.com>
Subject: Re: [PATCH RFC 1/6] ipv6: also increase fib6_node sernum on deletion events
Date: Tue, 16 Sep 2014 23:05:50 +0200 [thread overview]
Message-ID: <1410901550.32691.18.camel@localhost> (raw)
In-Reply-To: <541862ED.8090600@6wind.com>
On Di, 2014-09-16 at 18:18 +0200, Nicolas Dichtel wrote:
> Le 12/09/2014 01:21, Hannes Frederic Sowa a écrit :
> > fib6_add increases the fn_sernum of fib6_nodes while it traverses the
> > tree. This serial number is used by ip6_dst_check to judge whether a
> > relookup for the socket cache should be done (e.g. a better route is
> > available).
> >
> > We didn't do so for fib6_del, so we missed relookups on ipv6 address
> > deletion events. Because this caused trouble in the SCTP stack, instead
> > the genid for ipv6 was bumped. Also TCP connections used old source
> > addresses, which were not available anymore.
> >
> > Because we have static rt6_nodes in the tree (no RTF_GATEWAY,
> > RTF_NONEXTHOP nor RTF_CACHE nodes but still DST_HOST) flag, we ended up
> > in a situation where the genid of the routing node was always smaller
> > than the published genid in the namespace. That caused ip6_dst_check to
> > always discard the current dst_entry and a relookup happend.
> >
> > This patch prepares for the removal of the ipv6 genid by also modifying
> > the fn_sernum on route deletion.
> >
> > Thanks to Eric Dumazet who noticed this problem!
> >
> > Cc: Eric Dumazet <eric.dumazet@gmail.com>
> > Cc: Vlad Yasevich <vyasevich@gmail.com>
> > Cc: Nicolas Dichtel <nicolas.dichtel@6wind.com>
> > Signed-off-by: Hannes Frederic Sowa <hannes@stressinduktion.org>
> This serie looks good to me. Thank you for working on this topic!
Thanks a lot for your review, Nicolas! I'll do some more build tests I
got all the module handling correct and will send the formal submission.
Bye,
Hannes
next prev parent reply other threads:[~2014-09-16 21:05 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-09-11 23:21 [PATCH RFC 0/6] ipv6: dst_entry socket caching improvments Hannes Frederic Sowa
2014-09-11 23:21 ` [PATCH RFC 1/6] ipv6: also increase fib6_node sernum on deletion events Hannes Frederic Sowa
2014-09-16 16:18 ` Nicolas Dichtel
2014-09-16 21:05 ` Hannes Frederic Sowa [this message]
2014-09-17 22:48 ` Hannes Frederic Sowa
2014-09-11 23:21 ` [PATCH RFC 2/6] ipv6: no need to bump rt_genid_ipv6 on address change anymore Hannes Frederic Sowa
2014-09-11 23:21 ` [PATCH RFC 3/6] ipv6: if no function for cleaner is specified only visit nodes Hannes Frederic Sowa
2014-09-11 23:21 ` [PATCH RFC 4/6] ipv6: new function fib6_flush_trees and use it instead of bumping removed rt6_genid Hannes Frederic Sowa
2014-09-11 23:21 ` [PATCH RFC 5/6] ipv6: keep rt_sernum per namespace to reduce number of flushes Hannes Frederic Sowa
2014-09-11 23:21 ` [PATCH RFC 6/6] ipv6: switch rt_sernum to atomic_t and clean up types 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=1410901550.32691.18.camel@localhost \
--to=hannes@stressinduktion.org \
--cc=eric.dumazet@gmail.com \
--cc=netdev@vger.kernel.org \
--cc=nicolas.dichtel@6wind.com \
--cc=vyasevich@gmail.com \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox