Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 3 Aug 2011 11:11:56 -0400
From:      Andrew Boyer <aboyer@averesystems.com>
To:        Svatopluk Kraus <onwahe@gmail.com>
Cc:        Jeremiah Lott <jlott@averesystems.com>, freebsd-current@freebsd.org
Subject:   Re: [patch] Problem with two NIC on same NET (in_scrubprefix: err=17, new prefix add failed)
Message-ID:  <92B5D566-9816-4134-9358-2306D0F7DAFC@averesystems.com>
In-Reply-To: <CAFHCsPUpkr-vne%2B9cLnovUXDGeVrOzHrKp1YAub=TjJW_3aVtg@mail.gmail.com>
References:  <CAFHCsPUpkr-vne%2B9cLnovUXDGeVrOzHrKp1YAub=TjJW_3aVtg@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
We found and fixed a similar issue with an identical patch.  It has been =
working fine for us under stable/8.

Unfortunately I am weeks and weeks behind on pushing fixes back to the =
tree, so you had to duplicate the work.  If it can be committed (and =
MFC'd to 8, please) it would save others the trouble.

-Andrew

On Aug 3, 2011, at 10:51 AM, Svatopluk Kraus wrote:

> I have two NIC on same NET (both are up). If a NIC which installs
> network route is going down then an error happens during network route
> replacement (in_scrubprefix: err=3D17, new prefix add failed).
>=20
>  I've done a little bit investigation. In rtinit1(), before
> rtrequest1_fib() is called, info.rti_flags is initialized by flags
> (function argument) or-ed with ifa->ifa_flags. Both NIC has a loopback
> route to itself, so IFA_RTSELF is set on ifa(s). As IFA_RTSELF is
> defined by RTF_HOST, rtrequest1_fib() is called with RTF_HOST flag
> even if netmask is not NULL. Consequently, netmask is set to zero in
> rtrequest1_fib(), and request to add network route is changed under
> hands to request to add host route. It is the reason of logged info
> and my problem.
>=20
>  When I've done more investigation, it looks similar to
> http://svnweb.freebsd.org/base?view=3Drevision&revision=3D201543. So, =
I
> propose the following patch.
>=20
> Index: sys/net/route.c
> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
> --- sys/net/route.c	(revision 224635)
> +++ sys/net/route.c	(working copy)
> @@ -1478,7 +1478,7 @@
> 		 */
> 		bzero((caddr_t)&info, sizeof(info));
> 		info.rti_ifa =3D ifa;
> -		info.rti_flags =3D flags | ifa->ifa_flags;
> +		info.rti_flags =3D flags | (ifa->ifa_flags & =
~IFA_RTSELF);
> 		info.rti_info[RTAX_DST] =3D dst;
> 		/*
> 		 * doing this for compatibility reason
>=20
>=20
>  Is the patch sufficient?
>=20
>      Svata
> _______________________________________________
> freebsd-current@freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-current
> To unsubscribe, send any mail to =
"freebsd-current-unsubscribe@freebsd.org"

--------------------------------------------------
Andrew Boyer	aboyer@averesystems.com







Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?92B5D566-9816-4134-9358-2306D0F7DAFC>