aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLexi Winter <ivy@FreeBSD.org>2025-05-19 12:27:55 +0100
committerLexi Winter <ivy@FreeBSD.org>2025-05-20 19:56:00 +0100
commit2112e12fd6cf367c4d3b08ee3f9bffe802741b2e (patch)
tree89638fab5060aa531c412e61f55431c8f18cc7c7
parent084046ad8f859d270a3cf900a82c5254153afcac (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.c15
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;