diff options
| author | Lexi Winter <ivy@FreeBSD.org> | 2025-05-19 12:27:55 +0100 |
|---|---|---|
| committer | Lexi Winter <ivy@FreeBSD.org> | 2025-05-20 19:56:00 +0100 |
| commit | 2112e12fd6cf367c4d3b08ee3f9bffe802741b2e (patch) | |
| tree | 89638fab5060aa531c412e61f55431c8f18cc7c7 | |
| parent | 084046ad8f859d270a3cf900a82c5254153afcac (diff) | |
nd6: don't force inet6 params off for bridgelf/dev/bridge-inet6-params
currently, nd6 forces ND6_IFF_AUTO_LINKLOCAL and ND6_IFF_ACCEPT_RTADV to
be disabled for IFT_BRIDGE interfaces. delete this, as there is no
reason to behave this way.
in the past, this might have made sense when adding IP addresses to a
bridge could create strange behaviour, in particular relating to
link-local scope violations as described in the "IPv6 support" section
of bridge(4).
however, nowadays the only reason IPv6 would be enabled on a bridge is
because the admin explicitly enabled that, in which case they will
expect this to work like any other interface.
PR: 254445
Reported by: John W. O'Brien <john@saltant.com>
| -rw-r--r-- | sys/netinet6/nd6.c | 15 |
1 files changed, 3 insertions, 12 deletions
diff --git a/sys/netinet6/nd6.c b/sys/netinet6/nd6.c index 887da1ebe21a..fb95dac29c12 100644 --- a/sys/netinet6/nd6.c +++ b/sys/netinet6/nd6.c @@ -297,23 +297,14 @@ nd6_ifattach(struct ifnet *ifp) nd->flags |= ND6_IFF_IFDISABLED; /* A loopback interface always has ND6_IFF_AUTO_LINKLOCAL. - * XXXHRS: Clear ND6_IFF_AUTO_LINKLOCAL on an IFT_BRIDGE interface by - * default regardless of the V_ip6_auto_linklocal configuration to - * give a reasonable default behavior. */ - if ((V_ip6_auto_linklocal && ifp->if_type != IFT_BRIDGE && - ifp->if_type != IFT_WIREGUARD) || (ifp->if_flags & IFF_LOOPBACK)) + if ((V_ip6_auto_linklocal && ifp->if_type != IFT_WIREGUARD) || + (ifp->if_flags & IFF_LOOPBACK)) nd->flags |= ND6_IFF_AUTO_LINKLOCAL; /* * A loopback interface does not need to accept RTADV. - * XXXHRS: Clear ND6_IFF_ACCEPT_RTADV on an IFT_BRIDGE interface by - * default regardless of the V_ip6_accept_rtadv configuration to - * prevent the interface from accepting RA messages arrived - * on one of the member interfaces with ND6_IFF_ACCEPT_RTADV. */ - if (V_ip6_accept_rtadv && - !(ifp->if_flags & IFF_LOOPBACK) && - (ifp->if_type != IFT_BRIDGE)) { + if (V_ip6_accept_rtadv && !(ifp->if_flags & IFF_LOOPBACK)) { nd->flags |= ND6_IFF_ACCEPT_RTADV; /* If we globally accept rtadv, assume IPv6 on. */ nd->flags &= ~ND6_IFF_IFDISABLED; |
