summaryrefslogtreecommitdiff
path: root/sys/net
diff options
context:
space:
mode:
authorMartin Pieuchot <mpi@cvs.openbsd.org>2016-06-07 08:32:14 +0000
committerMartin Pieuchot <mpi@cvs.openbsd.org>2016-06-07 08:32:14 +0000
commit1d47a1290b7a085df4722ff6eea8a165e36b3c81 (patch)
treec5b4115096c736466bb2ab0477d0cd3aad7637b0 /sys/net
parent996b6a0c1583b1f352638e2c5b879bb19e862f16 (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.c9
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