diff options
author | Alexander V. Chernikov <melifaro@FreeBSD.org> | 2020-04-26 18:07:35 +0000 |
---|---|---|
committer | Alexander V. Chernikov <melifaro@FreeBSD.org> | 2020-04-26 18:07:35 +0000 |
commit | 49c9f84f54a193b42ed9a1dbfafd609181bf9fa4 (patch) | |
tree | 04ed98a7eb2e91583f43eb39c3620878cb60f91b /sys/netinet6/in6_src.c | |
parent | df03977dd83c5040004be18ab507b799ad4ad67b (diff) | |
download | src-49c9f84f54a193b42ed9a1dbfafd609181bf9fa4.tar.gz src-49c9f84f54a193b42ed9a1dbfafd609181bf9fa4.zip |
Fix IPv6 link-local operations with RADIX_MPATH.
It was broken by r360292 as fib6_lookup() assumes de-embedded addresses
while rtalloc_mpath_fib() requires sockaddr with embedded ones.
New fib6_lookup() transparently supports multipath, hence
remove old RADIX_MPATH condition.
Notes
Notes:
svn path=/head/; revision=360348
Diffstat (limited to 'sys/netinet6/in6_src.c')
-rw-r--r-- | sys/netinet6/in6_src.c | 9 |
1 files changed, 1 insertions, 8 deletions
diff --git a/sys/netinet6/in6_src.c b/sys/netinet6/in6_src.c index 9ecf2474ba4a..74a4c283388a 100644 --- a/sys/netinet6/in6_src.c +++ b/sys/netinet6/in6_src.c @@ -93,9 +93,6 @@ __FBSDID("$FreeBSD$"); #include <net/route.h> #include <net/route/nhop.h> #include <net/if_llatbl.h> -#ifdef RADIX_MPATH -#include <net/radix_mpath.h> -#endif #include <netinet/in.h> #include <netinet/in_var.h> @@ -773,13 +770,9 @@ selectroute(struct sockaddr_in6 *dstsock, struct ip6_pktopts *opts, } -#ifdef RADIX_MPATH - rtalloc_mpath_fib((struct route *)ro, - ntohl(sa6->sin6_addr.s6_addr32[3]), fibnum); -#else ro->ro_nh = fib6_lookup(fibnum, &sa6->sin6_addr, scopeid, NHR_REF, flowid); -#endif + if (IN6_IS_SCOPE_LINKLOCAL(&sa6->sin6_addr)) sa6->sin6_addr.s6_addr16[1] = htons(scopeid); } |