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>