diff options
author | thompsa <thompsa@FreeBSD.org> | 2007-03-19 19:13:02 +0000 |
---|---|---|
committer | thompsa <thompsa@FreeBSD.org> | 2007-03-19 19:13:02 +0000 |
commit | 62bb42c44ceb26ecd9bd0d1b042dae9bb1229608 (patch) | |
tree | 470beebc5d14e33294da22346169295289dbee62 /sys/net | |
parent | 9ddf9fc256bef4d4f4e4cd02d7da59c4b86eca2a (diff) | |
download | FreeBSD-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')
-rw-r--r-- | sys/net/if_bridge.c | 8 |
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 |