Date: Fri, 3 Mar 2017 00:47:57 +0000 From: "jhujhiti_adjectivism.org (Erick Turnquist)" <phabric-noreply@FreeBSD.org> To: freebsd-net@freebsd.org Subject: [Differential] D9451: Constrain IPv6 interface routes to each FIB Message-ID: <3d82b26400f65e528b4806338d3cb080@localhost.localdomain> In-Reply-To: <differential-rev-PHID-DREV-xl62ljmjgot45obmsgfw-req@FreeBSD.org> References: <differential-rev-PHID-DREV-xl62ljmjgot45obmsgfw-req@FreeBSD.org>
next in thread | previous in thread | raw e-mail | index | archive | help
jhujhiti_adjectivism.org added inline comments. INLINE COMMENTS > asomers wrote in nd6.c:1295 > Remember, the interface fib only matters for forwarding packets. It's totally valid for an interface to have multiple addresses assigned, each of which is on a different fib. So, to correctly determine whether `addr` is a neighbor of `ifp`, we must either > > 1. Loop over all fibs, and check whether `addr` is a neighbor of `ifp` on any of them, or > 2. Loop over all addresses assigned to `ifp`, and check whether `addr` is a neighbor of `ifp` on that address's fib. I'm guessing that this will be the slower option, because an interface can have arbitrarily many addresses > It's totally valid for an interface to have multiple addresses assigned, each of which is on a different fib. Is this true? I'm not aware of a way this could happen. Interface routes are added to the FIB associated with the interface, and of course there is only one FIB per interface. For instance in6_newaddrmsg() provides no mechanism by which to assign the route for the interface's address to anything other than the interface FIB. REPOSITORY rS FreeBSD src repository REVISION DETAIL https://reviews.freebsd.org/D9451 EMAIL PREFERENCES https://reviews.freebsd.org/settings/panel/emailpreferences/ To: jhujhiti_adjectivism.org, #network, bz, asomers Cc: jch, bz, imp, ae, freebsd-net-list
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3d82b26400f65e528b4806338d3cb080>
