--- src/sys/net/bridge/if_bridge.c 2007/06/16 15:27:27 1.25 +++ src/sys/net/bridge/if_bridge.c 2007/11/27 11:15:30 1.26 @@ -1780,7 +1780,7 @@ bridge_input(struct ifnet *ifp, struct 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) { @@ -1799,12 +1799,6 @@ bridge_input(struct ifnet *ifp, struct 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