[Differential] D9451: Constrain IPv6 interface routes to each FIB

jhujhiti_adjectivism.org (Erick Turnquist) phabric-noreply at FreeBSD.org
Fri Mar 3 00:47:57 UTC 2017


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


More information about the freebsd-net mailing list