in.c autoadding prefix route
Ruslan Ermilov
ru at freebsd.org
Fri Nov 12 00:30:43 PST 2004
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 at FreeBSD.org
FreeBSD committer
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 187 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/freebsd-net/attachments/20041112/db6dc058/attachment.bin
More information about the freebsd-net
mailing list