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
_______________________________________________
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"