Date: Sun, 26 Apr 2020 18:07:36 +0000 (UTC) From: "Alexander V. Chernikov" <melifaro@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r360348 - head/sys/netinet6 Message-ID: <202004261807.03QI7aab064372@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: melifaro Date: Sun Apr 26 18:07:35 2020 New Revision: 360348 URL: https://svnweb.freebsd.org/changeset/base/360348 Log: 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. Modified: head/sys/netinet6/in6_src.c Modified: head/sys/netinet6/in6_src.c ============================================================================== --- head/sys/netinet6/in6_src.c Sun Apr 26 16:30:00 2020 (r360347) +++ head/sys/netinet6/in6_src.c Sun Apr 26 18:07:35 2020 (r360348) @@ -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_p } -#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); }
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202004261807.03QI7aab064372>