summaryrefslogtreecommitdiffstats
path: root/sys/net/if_bridge.c
diff options
context:
space:
mode:
authorthompsa <thompsa@FreeBSD.org>2007-03-19 19:13:02 +0000
committerthompsa <thompsa@FreeBSD.org>2007-03-19 19:13:02 +0000
commit62bb42c44ceb26ecd9bd0d1b042dae9bb1229608 (patch)
tree470beebc5d14e33294da22346169295289dbee62 /sys/net/if_bridge.c
parent9ddf9fc256bef4d4f4e4cd02d7da59c4b86eca2a (diff)
downloadFreeBSD-src-62bb42c44ceb26ecd9bd0d1b042dae9bb1229608.zip
FreeBSD-src-62bb42c44ceb26ecd9bd0d1b042dae9bb1229608.tar.gz
M_BCAST & M_MCAST are now set by ether_input before passing to the bridge.
Diffstat (limited to 'sys/net/if_bridge.c')
-rw-r--r--sys/net/if_bridge.c8
1 files changed, 1 insertions, 7 deletions
diff --git a/sys/net/if_bridge.c b/sys/net/if_bridge.c
index 8768557..68aeeea 100644
--- a/sys/net/if_bridge.c
+++ b/sys/net/if_bridge.c
@@ -2053,7 +2053,7 @@ bridge_input(struct ifnet *ifp, struct mbuf *m)
bridge_span(sc, m);
- if (ETHER_IS_MULTICAST(eh->ether_dhost)) {
+ if (m->m_flags & (M_BCAST|M_MCAST)) {
/* Tap off 802.1D packets; they do not get forwarded. */
if (memcmp(eh->ether_dhost, bstp_etheraddr,
ETHER_ADDR_LEN) == 0) {
@@ -2070,12 +2070,6 @@ bridge_input(struct ifnet *ifp, struct mbuf *m)
return (m);
}
- if (bcmp(etherbroadcastaddr, eh->ether_dhost,
- sizeof(etherbroadcastaddr)) == 0)
- m->m_flags |= M_BCAST;
- else
- m->m_flags |= M_MCAST;
-
/*
* Make a deep copy of the packet and enqueue the copy
* for bridge processing; return the original packet for
OpenPOWER on IntegriCloud