summaryrefslogtreecommitdiffstats
path: root/sys/netinet6
diff options
context:
space:
mode:
authorthompsa <thompsa@FreeBSD.org>2005-09-06 21:11:59 +0000
committerthompsa <thompsa@FreeBSD.org>2005-09-06 21:11:59 +0000
commitab218f3cd35ce291d5f9853770cfc43cabe27013 (patch)
tree33a2d3e2740f951499953f550f362d27db5f4d6a /sys/netinet6
parent72540a43caf90d67d277898c0be2efd658236454 (diff)
downloadFreeBSD-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.c5
-rw-r--r--sys/netinet6/nd6.c2
-rw-r--r--sys/netinet6/nd6_nbr.c1
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:
OpenPOWER on IntegriCloud