summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander V. Chernikov <melifaro@FreeBSD.org>2015-01-09 12:56:51 +0000
committerAlexander V. Chernikov <melifaro@FreeBSD.org>2015-01-09 12:56:51 +0000
commitd63e657c04f52c0f43feabaf03b11709afd90a49 (patch)
treef80a2774895bac255448ceb6da55ba33bc47f3aa
parent40c1416a62a4f529fd3462a1ec5b983e08bc6b6f (diff)
Notes
-rw-r--r--sys/net/if_arcsubr.c5
-rw-r--r--sys/netinet/if_ether.c2
-rw-r--r--sys/netinet6/nd6.c13
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);