diff options
author | Martin Pieuchot <mpi@cvs.openbsd.org> | 2016-06-07 08:32:14 +0000 |
---|---|---|
committer | Martin Pieuchot <mpi@cvs.openbsd.org> | 2016-06-07 08:32:14 +0000 |
commit | 1d47a1290b7a085df4722ff6eea8a165e36b3c81 (patch) | |
tree | c5b4115096c736466bb2ab0477d0cd3aad7637b0 /sys/net | |
parent | 996b6a0c1583b1f352638e2c5b879bb19e862f16 (diff) |
Multicast packet are already duplicated in bridge_process() so
no need to loop another copy on the receiving interface.
Reported by and ok uebayasi@
Diffstat (limited to 'sys/net')
-rw-r--r-- | sys/net/if_bridge.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/sys/net/if_bridge.c b/sys/net/if_bridge.c index bc87a19f1e2..de644d0beeb 100644 --- a/sys/net/if_bridge.c +++ b/sys/net/if_bridge.c @@ -1,4 +1,4 @@ -/* $OpenBSD: if_bridge.c,v 1.279 2016/05/30 12:56:16 mpi Exp $ */ +/* $OpenBSD: if_bridge.c,v 1.280 2016/06/07 08:32:13 mpi Exp $ */ /* * Copyright (c) 1999, 2000 Jason L. Wright (jason@thought.net) @@ -1129,7 +1129,7 @@ bridge_process(struct ifnet *ifp, struct mbuf *m) } else #endif /* NGIF */ bridge_ifinput(ifp, mc); - + bridgeintr_frame(sc, ifp, m); return; } @@ -1225,14 +1225,15 @@ bridge_broadcast(struct bridge_softc *sc, struct ifnet *ifp, if (bridge_filterrule(&p->bif_brlout, eh, m) == BRL_ACTION_BLOCK) continue; - bridge_localbroadcast(sc, dst_if, eh, m); - /* * Don't retransmit out of the same interface where * the packet was received from. */ if (dst_if->if_index == ifp->if_index) continue; + + bridge_localbroadcast(sc, dst_if, eh, m); + #if NMPW > 0 /* * Split horizon: avoid broadcasting messages from wire to |