Message ID | 529451F0.1060707@cn.fujitsu.com |
---|---|
State | Accepted, archived |
Delegated to: | David Miller |
Headers | show |
On Tue, Nov 26, 2013 at 03:46:56PM +0800, Duan Jiong wrote: > > when dealing with a RA message, if accept_ra_defrtr is false, > the kernel will not add the default route, and then deal with > the following route information options. Unfortunately, those > options maybe contain default route, so let's judge the > accept_ra_defrtr before calling rt6_route_rcv. > > Signed-off-by: Duan Jiong <duanj.fnst@cn.fujitsu.com> I am ambivalent regarding this change. accept_ra_defrtr protected against adding default routers without routing options and accept_ra_rt_info_max_plen == -1 disables the acceptance of any routing options in router advertisments. I don't have an idea why we need this distinction altough I once used it for testing. But because this change makes it more understandable for users I am ok with that. Greetings, Hannes -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
From: Hannes Frederic Sowa <hannes@stressinduktion.org> Date: Fri, 29 Nov 2013 07:09:45 +0100 > On Tue, Nov 26, 2013 at 03:46:56PM +0800, Duan Jiong wrote: >> >> when dealing with a RA message, if accept_ra_defrtr is false, >> the kernel will not add the default route, and then deal with >> the following route information options. Unfortunately, those >> options maybe contain default route, so let's judge the >> accept_ra_defrtr before calling rt6_route_rcv. >> >> Signed-off-by: Duan Jiong <duanj.fnst@cn.fujitsu.com> > > I am ambivalent regarding this change. > > accept_ra_defrtr protected against adding default routers without routing > options and accept_ra_rt_info_max_plen == -1 disables the acceptance of any > routing options in router advertisments. > > I don't have an idea why we need this distinction altough I once used it for > testing. But because this change makes it more understandable for users I am > ok with that. I've applied this, thanks everyone. -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/net/ipv6/ndisc.c b/net/ipv6/ndisc.c index 3512177..3008651 100644 --- a/net/ipv6/ndisc.c +++ b/net/ipv6/ndisc.c @@ -1277,6 +1277,9 @@ skip_linkparms: ri->prefix_len == 0) continue; #endif + if (ri->prefix_len == 0 && + !in6_dev->cnf.accept_ra_defrtr) + continue; if (ri->prefix_len > in6_dev->cnf.accept_ra_rt_info_max_plen) continue; rt6_route_rcv(skb->dev, (u8*)p, (p->nd_opt_len) << 3,
when dealing with a RA message, if accept_ra_defrtr is false, the kernel will not add the default route, and then deal with the following route information options. Unfortunately, those options maybe contain default route, so let's judge the accept_ra_defrtr before calling rt6_route_rcv. Signed-off-by: Duan Jiong <duanj.fnst@cn.fujitsu.com> --- net/ipv6/ndisc.c | 3 +++ 1 file changed, 3 insertions(+)