MCPcopy Create free account
hub / github.com/F-Stack/f-stack / bridge_transmit

Function bridge_transmit

freebsd/net/if_bridge.c:2155–2176  ·  view source on GitHub ↗

* bridge_transmit: * * Do output on a bridge. * */

Source from the content-addressed store, hash-verified

2153 *
2154 */
2155static int
2156bridge_transmit(struct ifnet *ifp, struct mbuf *m)
2157{
2158 struct bridge_softc *sc;
2159 struct ether_header *eh;
2160 struct ifnet *dst_if;
2161 int error = 0;
2162
2163 sc = ifp->if_softc;
2164
2165 ETHER_BPF_MTAP(ifp, m);
2166
2167 eh = mtod(m, struct ether_header *);
2168
2169 if (((m->m_flags & (M_BCAST|M_MCAST)) == 0) &&
2170 (dst_if = bridge_rtlookup(sc, eh->ether_dhost, 1)) != NULL) {
2171 error = bridge_enqueue(sc, dst_if, m);
2172 } else
2173 bridge_broadcast(sc, ifp, m, 0);
2174
2175 return (error);
2176}
2177
2178/*
2179 * The ifp->if_qflush entry point for if_bridge(4) is no-op.

Callers

nothing calls this directly

Calls 3

bridge_rtlookupFunction · 0.85
bridge_enqueueFunction · 0.85
bridge_broadcastFunction · 0.85

Tested by

no test coverage detected