Re: in.c autoadding prefix route

From: Ruslan Ermilov (ru_at_freebsd.org)
Date: 11/12/04

  • Next message: Ruslan Ermilov: "Re: in.c autoadding prefix route"
    Date: Fri, 12 Nov 2004 10:30:14 +0200
    To: Max Laier <max@love2party.net>
    
    
    

    Hi Max,

    On Thu, Nov 11, 2004 at 09:24:05PM +0100, Max Laier wrote:
    > I know I have sent this a couple of times before, but never got anywhere. This
    > time I am set to commit!
    >
    Hey, you did it! ;)

    > The attached patch (http://people.freebsd.org/~mlaier/in.c.patch) derived from
    > WIDE via OpenBSD in.c, rev 1.21 improves the handling of automatic prefix
    > routes.
    >
    > Right now you can't have two legs into the same network. If you want to, you
    > must give on of the interfaces a host address only (netmask /32). This way it
    > is not possible to hand over the route if one of the interfaces is
    > "removed" (however this is done in the special case).
    >
    > The patch allows to add more than on IPv4 address with the same prefix. In the
    > case that there is a route already, we leave it alone and add the new address
    > without the IFA_ROUTE flag. When we remove an address later on, that has a
    > route associated, we try to find an alternative address to use for the route
    > and hand it over.
    >
    I cannot give your patch a thorough review at the moment, but I like the
    algorithm, and I don't see how it can hurt anything.

    > --- ../dist/sys/netinet/in.c Sat Nov 6 21:01:08 2004
    > +++ sys/netinet/in.c Mon Nov 8 02:05:17 2004
    > @@ -654,14 +684,7 @@
    > register struct ifnet *ifp;
    > register struct in_ifaddr *ia;
    > {
    > -
    > - if ((ia->ia_flags & IFA_ROUTE) == 0)
    > - return;
    > - if (ifp->if_flags & (IFF_LOOPBACK|IFF_POINTOPOINT))
    > - rtinit(&(ia->ia_ifa), (int)RTM_DELETE, RTF_HOST);
    > - else
    > - rtinit(&(ia->ia_ifa), (int)RTM_DELETE, 0);
    > - ia->ia_flags &= ~IFA_ROUTE;
    > + in_scrubprefix(ia);
    > }
    >
    Looks like "ifp" argument is no longer needed for in_ifscrub(),
    perhaps it should be killed then.

    Also, there are a lot of style bugs (besides those that others
    have already mentioned), the most annoying is comments -- they
    should be written as per style(9) (make them look like the real
    sentences).

    Cheers,

    -- 
    Ruslan Ermilov
    ru@FreeBSD.org
    FreeBSD committer
    
    



  • Next message: Ruslan Ermilov: "Re: in.c autoadding prefix route"

    Relevant Pages

    • in.c autoadding prefix route
      ... rev 1.21 improves the handling of automatic prefix ... must give on of the interfaces a host address only. ... The patch allows to add more than on IPv4 address with the same prefix. ... case that there is a route already, we leave it alone and add the new address ...
      (freebsd-arch)
    • in.c autoadding prefix route
      ... rev 1.21 improves the handling of automatic prefix ... must give on of the interfaces a host address only. ... The patch allows to add more than on IPv4 address with the same prefix. ... case that there is a route already, we leave it alone and add the new address ...
      (freebsd-arch)
    • in.c autoadding prefix route
      ... rev 1.21 improves the handling of automatic prefix ... must give on of the interfaces a host address only. ... The patch allows to add more than on IPv4 address with the same prefix. ... case that there is a route already, we leave it alone and add the new address ...
      (freebsd-net)
    • Re: Multicast problems [PATCH]
      ... If this patch solves your problems without resorting to adding a 224/4 ... route then I shall commit it to -CURRENT. ... The quagga issue I have with the OSPF multicast address landing up ...
      (freebsd-current)
    • Re: in.c autoadding prefix route
      ... > time I am set to commit! ... rev 1.21 improves the handling of automatic prefix ... > The patch allows to add more than on IPv4 address with the same prefix. ... > case that there is a route already, we leave it alone and add the new address ...
      (freebsd-arch)