From 4733958e41f683c6ed960cc437f91fb458f4a579 Mon Sep 17 00:00:00 2001 From: thompsa Date: Wed, 21 Dec 2005 09:39:59 +0000 Subject: As of r1.21 all broadcast packets are reprocessed by ether_input as arriving on the bridge, this caused these packets to show up twice via bpf. Do not process them twice with BPF_TAP. MFC after: 3 days --- sys/net/if_bridge.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'sys/net/if_bridge.c') diff --git a/sys/net/if_bridge.c b/sys/net/if_bridge.c index fa76cdf..a91adbd 100644 --- a/sys/net/if_bridge.c +++ b/sys/net/if_bridge.c @@ -1757,8 +1757,12 @@ bridge_forward(struct bridge_softc *sc, struct mbuf *m) } if (dst_if == NULL) { - /* tap off packets passing the bridge */ - BPF_MTAP(ifp, m); + /* + * Tap off packets passing the bridge. Broadcast packets will + * already be tapped as they are reinjected into ether_input. + */ + if ((m->m_flags & (M_BCAST|M_MCAST)) == 0) + BPF_MTAP(ifp, m); bridge_broadcast(sc, src_if, m, 1); return; -- cgit v1.1