summaryrefslogtreecommitdiffstats
path: root/sys/net80211/ieee80211_hostap.c
diff options
context:
space:
mode:
authorsam <sam@FreeBSD.org>2009-06-02 00:33:28 +0000
committersam <sam@FreeBSD.org>2009-06-02 00:33:28 +0000
commit35d42ca22fe811992438e1615568d4e7635edba0 (patch)
treeccf8dc084c04cab525bd2e37c6e5fc02f735b98b /sys/net80211/ieee80211_hostap.c
parent97e535876ee2651cea94436136470eb9445e3f95 (diff)
downloadFreeBSD-src-35d42ca22fe811992438e1615568d4e7635edba0.zip
FreeBSD-src-35d42ca22fe811992438e1615568d4e7635edba0.tar.gz
Fix monitor mode vaps to work as intended:
o track # bpf taps on monitor mode vaps instead of # monitor mode vaps o spam monitor mode taps on tx/rx o fix ieee80211_radiotap_rx_all to dispatch frames only if the vap is up o while here print radiotap (and superg) state in show com
Diffstat (limited to 'sys/net80211/ieee80211_hostap.c')
-rw-r--r--sys/net80211/ieee80211_hostap.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/sys/net80211/ieee80211_hostap.c b/sys/net80211/ieee80211_hostap.c
index ee83eace..eec52f9 100644
--- a/sys/net80211/ieee80211_hostap.c
+++ b/sys/net80211/ieee80211_hostap.c
@@ -302,6 +302,9 @@ hostap_deliver_data(struct ieee80211vap *vap,
struct ether_header *eh = mtod(m, struct ether_header *);
struct ifnet *ifp = vap->iv_ifp;
+ /* clear driver/net80211 flags before passing up */
+ m->m_flags &= ~(M_80211_RX | M_MCAST | M_BCAST);
+
KASSERT(vap->iv_opmode == IEEE80211_M_HOSTAP,
("gack, opmode %d", vap->iv_opmode));
/*
@@ -316,9 +319,6 @@ hostap_deliver_data(struct ieee80211vap *vap,
} else
IEEE80211_NODE_STAT(ni, rx_ucast);
- /* clear driver/net80211 flags before passing up */
- m->m_flags &= ~M_80211_RX;
-
/* perform as a bridge within the AP */
if ((vap->iv_flags & IEEE80211_F_NOBRIDGE) == 0) {
struct mbuf *mcopy = NULL;
OpenPOWER on IntegriCloud