Index: net/route.c =================================================================== RCS file: /cvs/src/sys/net/route.c,v retrieving revision 1.379 diff -u -p -r1.379 route.c --- net/route.c 23 Nov 2018 16:24:11 -0000 1.379 +++ net/route.c 5 Feb 2019 02:56:58 -0000 @@ -1042,7 +1042,7 @@ rt_ifa_add(struct ifaddr *ifa, int flags memset(&info, 0, sizeof(info)); info.rti_ifa = ifa; - info.rti_flags = flags | RTF_MPATH; + info.rti_flags = flags; info.rti_info[RTAX_DST] = dst; if (flags & RTF_LLINFO) info.rti_info[RTAX_GATEWAY] = sdltosa(ifp->if_sadl); @@ -1146,7 +1146,7 @@ int rt_ifa_addlocal(struct ifaddr *ifa) { struct rtentry *rt; - u_int flags = RTF_HOST|RTF_LOCAL; + u_int flags = RTF_HOST|RTF_LOCAL|RTF_MPATH; int error = 0; /* Index: netinet/in.c =================================================================== RCS file: /cvs/src/sys/netinet/in.c,v retrieving revision 1.160 diff -u -p -r1.160 in.c --- netinet/in.c 11 Jul 2018 21:18:23 -0000 1.160 +++ netinet/in.c 5 Feb 2019 02:56:58 -0000 @@ -694,7 +694,7 @@ in_purgeaddr(struct ifaddr *ifa) int in_addhost(struct in_ifaddr *ia, struct sockaddr_in *dst) { - return rt_ifa_add(&ia->ia_ifa, RTF_HOST, sintosa(dst)); + return rt_ifa_add(&ia->ia_ifa, RTF_HOST | RTF_MPATH, sintosa(dst)); } int @@ -712,12 +712,13 @@ in_insert_prefix(struct in_ifaddr *ia) struct ifaddr *ifa = &ia->ia_ifa; int error; - error = rt_ifa_add(ifa, RTF_CLONING | RTF_CONNECTED, ifa->ifa_addr); + error = rt_ifa_add(ifa, RTF_CLONING | RTF_CONNECTED | RTF_MPATH, + ifa->ifa_addr); if (error) return (error); if (ia->ia_broadaddr.sin_addr.s_addr != 0) - error = rt_ifa_add(ifa, RTF_HOST | RTF_BROADCAST, + error = rt_ifa_add(ifa, RTF_HOST | RTF_BROADCAST | RTF_MPATH, ifa->ifa_broadaddr); return (error); Index: netinet/ip_mroute.c =================================================================== RCS file: /cvs/src/sys/netinet/ip_mroute.c,v retrieving revision 1.123 diff -u -p -r1.123 ip_mroute.c --- netinet/ip_mroute.c 10 Oct 2018 11:46:59 -0000 1.123 +++ netinet/ip_mroute.c 5 Feb 2019 02:56:58 -0000 @@ -1308,7 +1308,7 @@ rt_mcast_add(struct ifnet *ifp, struct s return (NULL); } - rv = rt_ifa_add(ifa, RTF_HOST | RTF_MULTICAST, group); + rv = rt_ifa_add(ifa, RTF_HOST | RTF_MULTICAST | RTF_MPATH, group); if (rv != 0) { DPRINTF("rt_ifa_add failed (%d)", rv); return (NULL); Index: netinet6/in6.c =================================================================== RCS file: /cvs/src/sys/netinet6/in6.c,v retrieving revision 1.228 diff -u -p -r1.228 in6.c --- netinet6/in6.c 5 Oct 2018 07:06:09 -0000 1.228 +++ netinet6/in6.c 5 Feb 2019 02:56:58 -0000 @@ -376,7 +376,8 @@ in6_ioctl_change_ifaddr(u_long cmd, cadd break; /* No need to install a connected route. */ } - error = rt_ifa_add(&ia6->ia_ifa, RTF_CLONING | RTF_CONNECTED, + error = rt_ifa_add(&ia6->ia_ifa, + RTF_CLONING | RTF_CONNECTED | RTF_MPATH, ia6->ia_ifa.ifa_addr); if (error) { in6_purgeaddr(&ia6->ia_ifa); @@ -982,7 +983,8 @@ in6_ifinit(struct ifnet *ifp, struct in6 if ((ifp->if_flags & IFF_POINTOPOINT) && plen == 128 && ia6->ia_dstaddr.sin6_family == AF_INET6) { ifa = &ia6->ia_ifa; - error = rt_ifa_add(ifa, RTF_HOST, ifa->ifa_dstaddr); + error = rt_ifa_add(ifa, RTF_HOST | RTF_MPATH, + ifa->ifa_dstaddr); if (error != 0) return (error); ia6->ia_flags |= IFA_ROUTE; Index: netinet6/in6_ifattach.c =================================================================== RCS file: /cvs/src/sys/netinet6/in6_ifattach.c,v retrieving revision 1.111 diff -u -p -r1.111 in6_ifattach.c --- netinet6/in6_ifattach.c 5 Oct 2018 07:06:09 -0000 1.111 +++ netinet6/in6_ifattach.c 5 Feb 2019 02:56:58 -0000 @@ -374,7 +374,7 @@ in6_ifattach_linklocal(struct ifnet *ifp return (0); /* No need to install a connected route. */ } - flags = RTF_CONNECTED; + flags = RTF_CONNECTED | RTF_MPATH; if ((ifp->if_flags & IFF_POINTOPOINT) == 0) flags |= RTF_CLONING; Index: netinet6/ip6_mroute.c =================================================================== RCS file: /cvs/src/sys/netinet6/ip6_mroute.c,v retrieving revision 1.116 diff -u -p -r1.116 ip6_mroute.c --- netinet6/ip6_mroute.c 10 Oct 2018 11:46:59 -0000 1.116 +++ netinet6/ip6_mroute.c 5 Feb 2019 02:56:58 -0000 @@ -381,7 +381,7 @@ mrt6_rtwalk_mf6csysctl(struct rtentry *r return 0; /* Skip non-multicast routes. */ - if (ISSET(rt->rt_flags, RTF_HOST | RTF_MULTICAST) != + if (ISSET(rt->rt_flags, RTF_HOST | RTF_MULTICAST | RTF_MPATH) != (RTF_HOST | RTF_MULTICAST)) return 0;