This is now needed to make sure local addresses can be used even if the interface their are configured on is down.
ok? Index: net/route.c =================================================================== RCS file: /cvs/src/sys/net/route.c,v retrieving revision 1.242 diff -u -p -r1.242 route.c --- net/route.c 23 Sep 2015 08:49:46 -0000 1.242 +++ net/route.c 24 Sep 2015 11:32:15 -0000 @@ -1743,6 +1743,12 @@ rt_if_linkstate_change(struct rtentry *r (rt->rt_ifa == NULL || rt->rt_ifa->ifa_ifp != ifp)) return (0); + /* Local routes are always usable. */ + if (rt->rt_flags & RTF_LOCAL) { + rt->rt_flags |= RTF_UP; + return (0); + } + if (LINK_STATE_IS_UP(ifp->if_link_state) && ifp->if_flags & IFF_UP) { if (!(rt->rt_flags & RTF_UP)) { /* bring route up */ Index: netinet/ip_input.c =================================================================== RCS file: /cvs/src/sys/netinet/ip_input.c,v retrieving revision 1.255 diff -u -p -r1.255 ip_input.c --- netinet/ip_input.c 11 Sep 2015 19:34:20 -0000 1.255 +++ netinet/ip_input.c 24 Sep 2015 11:31:38 -0000 @@ -725,7 +725,7 @@ in_ouraddr(struct mbuf *m, struct ifnet m->m_flags |= M_BCAST; } - return (ISSET(ia->ia_ifp->if_flags, IFF_UP)); + return (1); } /*