<!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>