>Number:         150481
>Category:       kern
>Synopsis:       freebsd 8.1 - ifdown - ifup - loopback route keeps
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Sat Sep 11 01:40:03 UTC 2010
>Closed-Date:
>Last-Modified:
>Originator:     Ingo Flaschberger
>Release:        8.1 stable
>Organization:
crossip communications gmbh
>Environment:
FreeBSD xxx 8.1-STABLE FreeBSD 8.1-STABLE
>Description:
in raw_ip.c when a interface comes up with IFF_UP at the new added loopback 
interface the IFA_RTSELF is not set.
(13 year old bug!)


>How-To-Repeat:
without multipath:
ifconfig em3 10.40.40.3/24
ifconfig down em3
# all ok
ifconfig up em4 
# all ok
ifconfig down em4
# loopback route not deleted (not tested)

with multipath:
ifconfig em3 10.40.40.3/24
ifconfig down em3
# all ok
ifconfig up em4 
# all ok
ifconfig down em4
# loopback route not deleted 
ifconfig up em4
# 2 loopback routes
..

and when setting only a /32 ost route at the interface,
freebsd crashes after the 2nd ifconfig up
>Fix:
see attached patch

Patch attached with submission follows:

--- /usr/src/sys/netinet/raw_ip.c       2010-05-02 16:36:15.000000000 +0000
+++ /router/usr/src/sys/netinet/raw_ip.c        2010-09-11 01:28:24.000000000 
+0000
@@ -755,6 +755,8 @@
                if (err == 0)
                        ia->ia_flags |= IFA_ROUTE;
                err = ifa_add_loopback_route((struct ifaddr *)ia, sa);
+               if (err == 0)
+                       ia->ia_flags |= IFA_RTSELF;
                ifa_free(&ia->ia_ifa);
                break;
        }


>Release-Note:
>Audit-Trail:
>Unformatted:
_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-bugs
To unsubscribe, send any mail to "[email protected]"

Reply via email to