diff options
author | sam <sam@FreeBSD.org> | 2009-06-02 00:33:28 +0000 |
---|---|---|
committer | sam <sam@FreeBSD.org> | 2009-06-02 00:33:28 +0000 |
commit | 35d42ca22fe811992438e1615568d4e7635edba0 (patch) | |
tree | ccf8dc084c04cab525bd2e37c6e5fc02f735b98b /sys/net80211/ieee80211_var.h | |
parent | 97e535876ee2651cea94436136470eb9445e3f95 (diff) | |
download | FreeBSD-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_var.h')
-rw-r--r-- | sys/net80211/ieee80211_var.h | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/sys/net80211/ieee80211_var.h b/sys/net80211/ieee80211_var.h index 31037fe..3e999c8 100644 --- a/sys/net80211/ieee80211_var.h +++ b/sys/net80211/ieee80211_var.h @@ -215,7 +215,7 @@ struct ieee80211com { void *ic_txchan; /* channel state in ic_th */ struct ieee80211_radiotap_header *ic_rh;/* rx radiotap headers */ void *ic_rxchan; /* channel state in ic_rh */ - int ic_monvaps; /* # monitor mode vaps */ + int ic_montaps; /* active monitor mode taps */ /* virtual ap create/delete */ struct ieee80211vap* (*ic_vap_create)(struct ieee80211com *, @@ -669,7 +669,8 @@ ieee80211_radiotap_active(const struct ieee80211com *ic) static __inline int ieee80211_radiotap_active_vap(const struct ieee80211vap *vap) { - return (vap->iv_flags_ext & IEEE80211_FEXT_BPF) != 0; + return (vap->iv_flags_ext & IEEE80211_FEXT_BPF) || + vap->iv_ic->ic_montaps != 0; } /* |