diff options
author | thompsa <thompsa@FreeBSD.org> | 2005-09-06 21:11:59 +0000 |
---|---|---|
committer | thompsa <thompsa@FreeBSD.org> | 2005-09-06 21:11:59 +0000 |
commit | ab218f3cd35ce291d5f9853770cfc43cabe27013 (patch) | |
tree | 33a2d3e2740f951499953f550f362d27db5f4d6a /sys/netinet6 | |
parent | 72540a43caf90d67d277898c0be2efd658236454 (diff) | |
download | FreeBSD-src-ab218f3cd35ce291d5f9853770cfc43cabe27013.zip FreeBSD-src-ab218f3cd35ce291d5f9853770cfc43cabe27013.tar.gz |
Add support for multicast to the bridge and allow inet6 addresses to be
assigned to the interface.
IPv6 auto-configuration is disabled. An IPv6 link-local address has a
link-local scope within one link, the spec is unclear for the bridge case and
it may cause scope violation.
An address can be assigned in the usual way;
ifconfig bridge0 inet6 xxxx:...
Tested by: bmah
Reviewed by: ume (netinet6)
Approved by: mlaier (mentor)
MFC after: 1 week
Diffstat (limited to 'sys/netinet6')
-rw-r--r-- | sys/netinet6/in6_ifattach.c | 5 | ||||
-rw-r--r-- | sys/netinet6/nd6.c | 2 | ||||
-rw-r--r-- | sys/netinet6/nd6_nbr.c | 1 |
3 files changed, 4 insertions, 4 deletions
diff --git a/sys/netinet6/in6_ifattach.c b/sys/netinet6/in6_ifattach.c index 7fb499a..f401896 100644 --- a/sys/netinet6/in6_ifattach.c +++ b/sys/netinet6/in6_ifattach.c @@ -667,9 +667,6 @@ in6_ifattach(ifp, altifp) /* some of the interfaces are inherently not IPv6 capable */ switch (ifp->if_type) { -#ifdef IFT_BRIDGE /* OpenBSD 2.8, NetBSD 1.6 */ - case IFT_BRIDGE: -#endif case IFT_PFLOG: case IFT_PFSYNC: case IFT_CARP: @@ -719,7 +716,7 @@ in6_ifattach(ifp, altifp) /* * assign a link-local address, if there's none. */ - if (ip6_auto_linklocal) { + if (ip6_auto_linklocal && ifp->if_type != IFT_BRIDGE) { ia = in6ifa_ifpforlinklocal(ifp, 0); if (ia == NULL) { if (in6_ifattach_linklocal(ifp, altifp) == 0) { diff --git a/sys/netinet6/nd6.c b/sys/netinet6/nd6.c index fbc53cc..6b9f734 100644 --- a/sys/netinet6/nd6.c +++ b/sys/netinet6/nd6.c @@ -2014,6 +2014,7 @@ nd6_need_cache(ifp) case IFT_CARP: #endif case IFT_GIF: /* XXX need more cases? */ + case IFT_BRIDGE: return (1); default: return (0); @@ -2044,6 +2045,7 @@ nd6_storelladdr(ifp, rt0, m, dst, desten) #ifdef IFT_IEEE80211 case IFT_IEEE80211: #endif + case IFT_BRIDGE: case IFT_ISO88025: ETHER_MAP_IPV6_MULTICAST(&SIN6(dst)->sin6_addr, desten); diff --git a/sys/netinet6/nd6_nbr.c b/sys/netinet6/nd6_nbr.c index db6cde4..41a58bb 100644 --- a/sys/netinet6/nd6_nbr.c +++ b/sys/netinet6/nd6_nbr.c @@ -1028,6 +1028,7 @@ nd6_ifptomac(ifp) #ifdef IFT_CARP case IFT_CARP: #endif + case IFT_BRIDGE: case IFT_ISO88025: return IF_LLADDR(ifp); default: |