<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta content="text/html; charset=ISO-8859-1"
http-equiv="Content-Type">
</head>
<body text="#000000" bgcolor="#ffffff">
On 04/07/2011 12:19 PM, Akemi Yagi wrote:
<blockquote
cite="mid:BANLkTinJbj1DRRgV9f+117KK=ceYs6_U=w@mail.gmail.com"
type="cite">
<pre wrap="">Changing the subject line for good ...
On Thu, Apr 7, 2011 at 8:58 AM, Lamar Owen <a class="moz-txt-link-rfc2396E" href="mailto:lowen@pari.edu"><lowen@pari.edu></a> wrote:
</pre>
<blockquote type="cite">
<pre wrap="">On Thursday, April 07, 2011 11:23:51 AM Brunner, Brian T. wrote:
</pre>
<blockquote type="cite">
<pre wrap="">AIUI: In previous releases, RH distributed source + patches. Starting
6.0 RH releases patched source. This makes backing out a patch, or
backporting patches from future development in Fedora (e.g.) far more
nightmarish than before.
</pre>
</blockquote>
<pre wrap="">
This one doesn't impact the CentOS core rebuild. It would/could impact CentOSPlus.
</pre>
</blockquote>
<pre wrap="">
Yes, it _could_ affect the centosplus kernel. This point was addressed
early on when RHEL-6 was released back in Nov 2010. See:
<a class="moz-txt-link-freetext" href="http://bugs.centos.org/view.php?id=4586">http://bugs.centos.org/view.php?id=4586</a>
Point 2 (note 12051) is the one that is relevant. I welcome any
feedback / suggestions for the proposed method I outlined there.
While you are there, look also at the issues described for Point 3
(note 12052). Anyone can help in there as well. :)
So far, "luckily" centosplus kernels are "ahead of" the distro kernel
in that they have been built and are available for testing (see note
12502).
</pre>
</blockquote>
Hi Akemi,<br>
<br>
Two questions:<br>
1) Is there a step by step documentation on rebuilding the
centosplus kernels that includes what the environment should be.<br>
<br>
2) Is it possible to get upstream patches from newer kernels
included or must on do it themselves.<br>
<br>
I am specifically interested in the following 2 patches that let
linux behave according to <br>
Basic Requirements for IPv6 Customer Edge Routers<br>
draft-ietf-v6ops-ipv6-cpe-router-09<br>
<tt><br>
The current </tt>kernel-2.6.32-71.18.2.el6 does not have these
patches - which prevents using it as<br>
a customer edge router for ipv6.<br>
<tt><br>
From: Thomas Graf<br>
Subject: [PATCH] ipv6: add special mode accept_ra=2 to accept RA
while configured as router<br>
Date: Friday, September 3, 2010 - 5:59 am<br>
<br>
The current IPv6 behavior is to not accept router advertisements
while<br>
forwarding, i.e. configured as router.<br>
<br>
This does make sense, a router is typically not supposed to be
auto<br>
configured. However there are exceptions and we should allow the<br>
current behavior to be overwritten.<br>
<br>
Therefore this patch enables the user to overrule the "if
forwarding<br>
enabled then don't listen to RAs" rule by setting accept_ra to the<br>
special value of 2.<br>
<br>
An alternative would be to ignore the forwarding switch
alltogether<br>
and solely accept RAs based on the value of accept_ra. However, I<br>
found that if not intended, accepting RAs as a router can lead to<br>
strange unwanted behavior therefore we it seems wise to only do so<br>
if the user explicitely asks for this behavior.<br>
<br>
Signed-off-by: Thomas Graf <a class="moz-txt-link-rfc2396E" href="mailto:tgraf@infradead.org"><tgraf@infradead.org></a><br>
<br>
Index: net-2.6/net/ipv6/ndisc.c<br>
===================================================================<br>
--- net-2.6.orig/net/ipv6/ndisc.c<br>
+++ net-2.6/net/ipv6/ndisc.c<br>
@@ -1105,6 +1105,18 @@ errout:<br>
rtnl_set_sk_err(net, RTNLGRP_ND_USEROPT, err);<br>
}<br>
<br>
+static inline int accept_ra(struct inet6_dev *in6_dev)<br>
+{<br>
+ /*<br>
+ * If forwarding is enabled, RA are not accepted unless the
special<br>
+ * hybrid mode (accept_ra=2) is enabled.<br>
+ */<br>
+ if (in6_dev->cnf.forwarding &&
in6_dev->cnf.accept_ra < 2)<br>
+ return 0;<br>
+<br>
+ return in6_dev->cnf.accept_ra;<br>
+}<br>
+<br>
static void ndisc_router_discovery(struct sk_buff *skb)<br>
{<br>
struct ra_msg *ra_msg = (struct ra_msg
*)skb_transport_header(skb);<br>
@@ -1158,8 +1170,7 @@ static void ndisc_router_discovery(struc<br>
return;<br>
}<br>
<br>
- /* skip route and link configuration on routers */<br>
- if (in6_dev->cnf.forwarding || !in6_dev->cnf.accept_ra)<br>
+ if (!accept_ra(in6_dev))<br>
goto skip_linkparms;<br>
<br>
#ifdef CONFIG_IPV6_NDISC_NODETYPE<br>
@@ -1309,8 +1320,7 @@ skip_linkparms:<br>
NEIGH_UPDATE_F_ISROUTER);<br>
}<br>
<br>
- /* skip route and link configuration on routers */<br>
- if (in6_dev->cnf.forwarding || !in6_dev->cnf.accept_ra)<br>
+ if (!accept_ra(in6_dev))<br>
goto out;<br>
<br>
#ifdef CONFIG_IPV6_ROUTE_INFO<br>
<br>
Similar to accepting router advertisement, the IPv6 stack does not
send router<br>
solicitations if forwarding is enabled.<br>
<br>
This patch enables this behavior to be overruled by setting
forwarding to the<br>
special value 2.<br>
<br>
Signed-off-by: Thomas Graf <tgraf@xxxxxxxxxxxxx><br>
<br>
Index: net-2.6/net/ipv6/addrconf.c<br>
===================================================================<br>
--- net-2.6.orig/net/ipv6/addrconf.c<br>
+++ net-2.6/net/ipv6/addrconf.c<br>
@@ -2964,7 +2964,8 @@ static void addrconf_dad_completed(struc<br>
start sending router solicitations.<br>
*/<br>
<br>
- if (ifp->idev->cnf.forwarding == 0 &&<br>
+ if ((ifp->idev->cnf.forwarding == 0 ||<br>
+ ifp->idev->cnf.forwarding == 2) &&<br>
ifp->idev->cnf.rtr_solicits > 0 &&<br>
(dev->flags&IFF_LOOPBACK) == 0 &&<br>
(ipv6_addr_type(&ifp->addr) &
IPV6_ADDR_LINKLOCAL)) {<br>
<br>
</tt><br>
<br>
<div class="moz-signature">-- <br>
Stephen Clark<br>
<b>NetWolves</b><br>
Sr. Software Engineer III<br>
Phone: 813-579-3200<br>
Fax: 813-882-0209<br>
Email: <a class="moz-txt-link-abbreviated" href="mailto:steve.clark@netwolves.com">steve.clark@netwolves.com</a><br>
<a class="moz-txt-link-freetext" href="http://www.netwolves.com">http://www.netwolves.com</a><br>
</div>
</body>
</html>