From 64d3d42694ffd6bd745c9efa400a223e2bdd0c28 Mon Sep 17 00:00:00 2001 From: thompsa Date: Mon, 28 Aug 2006 02:54:14 +0000 Subject: [PATCH] MFC r1.218 Move the bridge hook after the loopback check so that IFF_SIMPLEX is honoured on member interfaces. --- sys/net/if_ethersubr.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/sys/net/if_ethersubr.c b/sys/net/if_ethersubr.c index febe45477649..3fad65e78a4d 100644 --- a/sys/net/if_ethersubr.c +++ b/sys/net/if_ethersubr.c @@ -292,14 +292,6 @@ ether_output(struct ifnet *ifp, struct mbuf *m, (void)memcpy(eh->ether_shost, IFP2ENADDR(ifp), sizeof(eh->ether_shost)); - /* - * Bridges require special output handling. - */ - if (ifp->if_bridge) { - BRIDGE_OUTPUT(ifp, m, error); - return (error); - } - /* * If a simplex interface, and the packet is being sent to our * Ethernet address or a broadcast address, loopback a copy. @@ -338,6 +330,14 @@ ether_output(struct ifnet *ifp, struct mbuf *m, } } + /* + * Bridges require special output handling. + */ + if (ifp->if_bridge) { + BRIDGE_OUTPUT(ifp, m, error); + return (error); + } + #ifdef DEV_CARP if (ifp->if_carp && (error = carp_output(ifp, m, dst, NULL)))