diff --git a/sys/net/if_bridge.c b/sys/net/if_bridge.c --- a/sys/net/if_bridge.c +++ b/sys/net/if_bridge.c @@ -2473,6 +2473,20 @@ bifp = sc->sc_ifp; vlan = VLANTAGOF(m); + /* + * If we have been hooked by netmap give it the packet and indicate to + * the caller that we took it. + */ + if (bifp->if_capenable & IFCAP_NETMAP) { + m->m_pkthdr.rcvif = bifp; + + if_inc_counter(bifp, IFCOUNTER_IPACKETS, 1); + if_inc_counter(bifp, IFCOUNTER_IBYTES, m->m_pkthdr.len); + + bifp->if_input(bifp, m); + return (NULL); + } + /* * Implement support for bridge monitoring. If this flag has been * set on this interface, discard the packet once we push it through