diff options
author | Alexander V. Chernikov <melifaro@FreeBSD.org> | 2015-01-09 12:56:51 +0000 |
---|---|---|
committer | Alexander V. Chernikov <melifaro@FreeBSD.org> | 2015-01-09 12:56:51 +0000 |
commit | d63e657c04f52c0f43feabaf03b11709afd90a49 (patch) | |
tree | f80a2774895bac255448ceb6da55ba33bc47f3aa | |
parent | 40c1416a62a4f529fd3462a1ec5b983e08bc6b6f (diff) |
Notes
-rw-r--r-- | sys/net/if_arcsubr.c | 5 | ||||
-rw-r--r-- | sys/netinet/if_ether.c | 2 | ||||
-rw-r--r-- | sys/netinet6/nd6.c | 13 |
3 files changed, 5 insertions, 15 deletions
diff --git a/sys/net/if_arcsubr.c b/sys/net/if_arcsubr.c index 46fbf5b6232d..6205117ba85f 100644 --- a/sys/net/if_arcsubr.c +++ b/sys/net/if_arcsubr.c @@ -167,7 +167,10 @@ arc_output(struct ifnet *ifp, struct mbuf *m, const struct sockaddr *dst, #endif #ifdef INET6 case AF_INET6: - error = nd6_storelladdr(ifp, m, dst, (u_char *)&adst, NULL); + if ((m->m_flags & M_MCAST) != NULL) + adst = arcbroadcastaddr; /* ARCnet broadcast address */ + else + error = nd6_storelladdr(ifp, m, dst, (u_char *)&adst, NULL); if (error) return (error); atype = ARCTYPE_INET6; diff --git a/sys/netinet/if_ether.c b/sys/netinet/if_ether.c index 840598d3042f..5011fc418d83 100644 --- a/sys/netinet/if_ether.c +++ b/sys/netinet/if_ether.c @@ -317,7 +317,7 @@ arpresolve(struct ifnet *ifp, int is_gw, struct mbuf *m, ifp->if_broadcastaddr, ifp->if_addrlen); return (0); } - if (m->m_flags & M_MCAST && ifp->if_type != IFT_ARCNET) { + if (m->m_flags & M_MCAST) { /* multicast */ ETHER_MAP_IP_MULTICAST(&SIN(dst)->sin_addr, desten); return (0); diff --git a/sys/netinet6/nd6.c b/sys/netinet6/nd6.c index 5e4a4f09d3cf..8bcca398f09c 100644 --- a/sys/netinet6/nd6.c +++ b/sys/netinet6/nd6.c @@ -2213,8 +2213,6 @@ nd6_storelladdr(struct ifnet *ifp, struct mbuf *m, *pflags = 0; IF_AFDATA_UNLOCK_ASSERT(ifp); if (m != NULL && m->m_flags & M_MCAST) { - int i; - switch (ifp->if_type) { case IFT_ETHER: case IFT_FDDI: @@ -2229,17 +2227,6 @@ nd6_storelladdr(struct ifnet *ifp, struct mbuf *m, ETHER_MAP_IPV6_MULTICAST(&SIN6(dst)->sin6_addr, desten); return (0); - case IFT_IEEE1394: - /* - * netbsd can use if_broadcastaddr, but we don't do so - * to reduce # of ifdef. - */ - for (i = 0; i < ifp->if_addrlen; i++) - desten[i] = ~0; - return (0); - case IFT_ARCNET: - *desten = 0; - return (0); default: m_freem(m); return (EAFNOSUPPORT); |