{
struct ieee80211_dfs_state *dfs = &ic->ic_dfs;
+#ifdef __FreeBSD__
callout_init_mtx(&dfs->nol_timer, IEEE80211_LOCK_OBJ(ic), 0);
callout_init_mtx(&dfs->cac_timer, IEEE80211_LOCK_OBJ(ic), 0);
+#endif
+ callout_init(&dfs->nol_timer);
+ callout_init(&dfs->cac_timer);
}
void
}
if (oldest != now) {
/* arrange to process next channel up for a status change */
- callout_schedule(&dfs->nol_timer, oldest + NOL_TIMEOUT - now);
+ callout_reset(&dfs->nol_timer, oldest + NOL_TIMEOUT - now,
+ dfs_timeout, ic);
}
}
announce_radar(ic->ic_ifp, chan, dfs->newchan);
+#ifdef notyet
if (callout_pending(&dfs->cac_timer))
- callout_schedule(&dfs->cac_timer, 0);
+ callout_reset(&dfs->cac_timer, 0, cac_timeout, vap);
else if (dfs->newchan != NULL) {
/* XXX mode 1, switch count 2 */
/* XXX calculate switch count based on max
*/
/*XXX*/
}
+#endif
} else {
/*
* Issue rate-limited console msgs.
space = pktlen + align;
if (space < MINCLSIZE)
n = m_gethdr(MB_DONTWAIT, MT_DATA);
+#ifdef notyet
else {
n = m_getjcl(MB_DONTWAIT, MT_DATA, M_PKTHDR,
space <= MCLBYTES ? MCLBYTES :
#endif
space <= MJUM9BYTES ? MJUM9BYTES : MJUM16BYTES);
}
+#endif
if (__predict_true(n != NULL)) {
m_move_pkthdr(n, m);
n->m_data = (caddr_t)(ALIGN(n->m_data + align) - align);
* vap. This flag is used by drivers to prepare radiotap
* state only when needed.
*/
+#ifdef notyet
if (attach) {
ieee80211_syncflag_ext(vap, IEEE80211_FEXT_BPF);
if (vap->iv_opmode == IEEE80211_M_MONITOR)
if (vap->iv_opmode == IEEE80211_M_MONITOR)
atomic_subtract_int(&vap->iv_ic->ic_montaps, 1);
}
+#endif
}
}
#include <sys/systm.h>
#include <net/if.h>
+#include <net/if_var.h>
#include <net/if_dl.h>
#include <net/if_media.h>
#include <net/ethernet.h>
IEEE80211_NODE_STAT(ni, tx_novlantag);
return 1;
}
+#ifdef __FreeBSD__
if (EVL_VLANOFTAG(m->m_pkthdr.ether_vlantag) !=
EVL_VLANOFTAG(ni->ni_vlan)) {
IEEE80211_NODE_STAT(ni, tx_vlanmismatch);
}
/* map vlan priority to AC */
v_wme_ac = TID_TO_WME_AC(EVL_PRIOFTAG(ni->ni_vlan));
+#endif
}
/* XXX m_copydata may be too slow for fast path */
* a writable mbuf chain.
* XXX handle SWMIC specially
*/
+#ifdef __FreeBSD__
if (key->wk_flags & (IEEE80211_KEY_SWENCRYPT|IEEE80211_KEY_SWENMIC)) {
m = m_unshare(m, M_NOWAIT);
if (m == NULL) {
return NULL;
}
}
+#endif
}
/*
* We know we are called just before stripping an Ethernet
len = le16toh(rh->it_len);
if (vap0->iv_flags_ext & IEEE80211_FEXT_BPF)
- bpf_mtap2(vap0->iv_rawbpf, rh, len, m);
+ bpf_ptap(vap0->iv_rawbpf, m, rh, len);
/*
* Spam monitor mode vaps with unicast frames. Multicast
* frames are handled by passing through ieee80211_input_all
TAILQ_FOREACH(vap, &ic->ic_vaps, iv_next) {
if (ieee80211_radiotap_active_vap(vap) &&
vap->iv_state != IEEE80211_S_INIT)
- bpf_mtap2(vap->iv_rawbpf, rh, len, m);
+ bpf_ptap(vap->iv_rawbpf, m, rh, len);
}
}
ic->ic_scan = NULL;
return;
}
- callout_init_mtx(&ss->ss_scan_timer, IEEE80211_LOCK_OBJ(ic), 0);
#ifdef __FreeBSD__
+ callout_init_mtx(&ss->ss_scan_timer, IEEE80211_LOCK_OBJ(ic), 0);
cv_init(&ss->ss_scan_cv, "scan");
#endif
+ callout_init(&ss->ss_scan_timer);
TASK_INIT(&ss->ss_scan_task, 0, scan_task, ss);
ic->ic_scan = &ss->base;
ss->base.ss_ic = ic;