FreeBSD kernel WLAN code
|
#include <sys/cdefs.h>
#include "opt_inet.h"
#include "opt_wlan.h"
#include <sys/param.h>
#include <sys/kernel.h>
#include <sys/malloc.h>
#include <sys/systm.h>
#include <sys/endian.h>
#include <sys/socket.h>
#include <net/if.h>
#include <net/if_var.h>
#include <net/if_media.h>
#include <net/ethernet.h>
#include <net80211/ieee80211_var.h>
#include <net80211/ieee80211_action.h>
#include <net80211/ieee80211_input.h>
Go to the source code of this file.
Data Structures | |
struct | printranges |
Macros | |
#define | ADDRATE(x) |
#define | PROCESS 0 /* caller should process frame */ |
#define | CONSUMED 1 /* frame consumed, caller does nothing */ |
#define | PROCESS 0 /* caller should process frame */ |
#define | CONSUMED 1 /* frame consumed, caller does nothing */ |
#define | OPMODE(x) _IEEE80211_SHIFTMASK(x, IEEE80211_HTINFO_OPMODE) |
#define | senderr(_x, _v) do { vap->iv_stats._v++; ret = _x; goto bad; } while (0) |
#define | ADDSHORT(frm, v) |
#define | ADDSHORT(frm, v) |
#define | ADDSHORT(frm, v) |
#define | PROTMODE (IEEE80211_HTINFO_OPMODE|IEEE80211_HTINFO_NONHT_PRESENT) |
Functions | |
__FBSDID ("$FreeBSD$") | |
SYSCTL_PROC (_net_wlan, OID_AUTO, ampdu_age, CTLTYPE_INT|CTLFLAG_RW|CTLFLAG_NEEDGIANT, &ieee80211_ampdu_age, 0, ieee80211_sysctl_msecs_ticks, "I", "AMPDU max reorder age (ms)") | |
SYSCTL_INT (_net_wlan, OID_AUTO, recv_bar, CTLFLAG_RW, &ieee80211_recv_bar_ena, 0, "BAR frame processing (ena/dis)") | |
SYSCTL_PROC (_net_wlan, OID_AUTO, addba_timeout, CTLTYPE_INT|CTLFLAG_RW|CTLFLAG_NEEDGIANT, &ieee80211_addba_timeout, 0, ieee80211_sysctl_msecs_ticks, "I", "ADDBA request timeout (ms)") | |
SYSCTL_PROC (_net_wlan, OID_AUTO, addba_backoff, CTLTYPE_INT|CTLFLAG_RW|CTLFLAG_NEEDGIANT, &ieee80211_addba_backoff, 0, ieee80211_sysctl_msecs_ticks, "I", "ADDBA request backoff (ms)") | |
SYSCTL_INT (_net_wlan, OID_AUTO, addba_maxtries, CTLFLAG_RW, &ieee80211_addba_maxtries, 0, "max ADDBA requests sent before backoff") | |
static void | ieee80211_ht_init (void) |
SYSINIT (wlan_ht, SI_SUB_DRIVERS, SI_ORDER_FIRST, ieee80211_ht_init, NULL) | |
static int | ieee80211_ampdu_enable (struct ieee80211_node *ni, struct ieee80211_tx_ampdu *tap) |
static int | ieee80211_addba_request (struct ieee80211_node *ni, struct ieee80211_tx_ampdu *tap, int dialogtoken, int baparamset, int batimeout) |
static int | ieee80211_addba_response (struct ieee80211_node *ni, struct ieee80211_tx_ampdu *tap, int code, int baparamset, int batimeout) |
static void | ieee80211_addba_stop (struct ieee80211_node *ni, struct ieee80211_tx_ampdu *tap) |
static void | null_addba_response_timeout (struct ieee80211_node *ni, struct ieee80211_tx_ampdu *tap) |
static void | ieee80211_bar_response (struct ieee80211_node *ni, struct ieee80211_tx_ampdu *tap, int status) |
static void | ampdu_tx_stop (struct ieee80211_tx_ampdu *tap) |
static void | bar_stop_timer (struct ieee80211_tx_ampdu *tap) |
static int | ampdu_rx_start (struct ieee80211_node *, struct ieee80211_rx_ampdu *, int baparamset, int batimeout, int baseqctl) |
static void | ampdu_rx_stop (struct ieee80211_node *, struct ieee80211_rx_ampdu *) |
void | ieee80211_ht_attach (struct ieee80211com *ic) |
void | ieee80211_ht_detach (struct ieee80211com *ic) |
void | ieee80211_ht_vattach (struct ieee80211vap *vap) |
void | ieee80211_ht_vdetach (struct ieee80211vap *vap) |
static int | ht_getrate (struct ieee80211com *ic, int index, enum ieee80211_phymode mode, int ratetype) |
static void | ht_rateprint (struct ieee80211com *ic, enum ieee80211_phymode mode, int ratetype) |
static void | ht_announce (struct ieee80211com *ic, enum ieee80211_phymode mode) |
void | ieee80211_ht_announce (struct ieee80211com *ic) |
void | ieee80211_init_suphtrates (struct ieee80211com *ic) |
struct mbuf * | ieee80211_decap_amsdu (struct ieee80211_node *ni, struct mbuf *m) |
static void | ampdu_rx_purge_slot (struct ieee80211_rx_ampdu *rap, int i) |
static int | ampdu_rx_add_slot (struct ieee80211_rx_ampdu *rap, int off, int tid, ieee80211_seq rxseq, struct ieee80211_node *ni, struct mbuf *m, const struct ieee80211_rx_stats *rxs) |
static void | ampdu_rx_purge (struct ieee80211_rx_ampdu *rap) |
static void | ieee80211_ampdu_rx_init_rap (struct ieee80211_node *ni, struct ieee80211_rx_ampdu *rap) |
int | ieee80211_ampdu_rx_start_ext (struct ieee80211_node *ni, int tid, int seq, int baw) |
void | ieee80211_ampdu_rx_stop_ext (struct ieee80211_node *ni, int tid) |
static __inline void | ampdu_dispatch (struct ieee80211_node *ni, struct mbuf *m) |
static int | ampdu_dispatch_slot (struct ieee80211_rx_ampdu *rap, struct ieee80211_node *ni, int i) |
static void | ampdu_rx_moveup (struct ieee80211_rx_ampdu *rap, struct ieee80211_node *ni, int i, int winstart) |
static void | ampdu_rx_dispatch (struct ieee80211_rx_ampdu *rap, struct ieee80211_node *ni) |
static void | ampdu_rx_flush (struct ieee80211_node *ni, struct ieee80211_rx_ampdu *rap) |
static void | ampdu_rx_flush_upto (struct ieee80211_node *ni, struct ieee80211_rx_ampdu *rap, ieee80211_seq winstart) |
int | ieee80211_ampdu_reorder (struct ieee80211_node *ni, struct mbuf *m, const struct ieee80211_rx_stats *rxs) |
void | ieee80211_recv_bar (struct ieee80211_node *ni, struct mbuf *m0) |
void | ieee80211_ht_node_init (struct ieee80211_node *ni) |
void | ieee80211_ht_node_cleanup (struct ieee80211_node *ni) |
void | ieee80211_ht_node_age (struct ieee80211_node *ni) |
static struct ieee80211_channel * | findhtchan (struct ieee80211com *ic, struct ieee80211_channel *c, int htflags) |
struct ieee80211_channel * | ieee80211_ht_adjust_channel (struct ieee80211com *ic, struct ieee80211_channel *chan, int flags) |
void | ieee80211_ht_wds_init (struct ieee80211_node *ni) |
void | ieee80211_htinfo_notify (struct ieee80211vap *vap) |
static void | htinfo_update (struct ieee80211vap *vap) |
void | ieee80211_ht_node_join (struct ieee80211_node *ni) |
void | ieee80211_ht_node_leave (struct ieee80211_node *ni) |
void | ieee80211_htprot_update (struct ieee80211vap *vap, int protmode) |
void | ieee80211_ht_timeout (struct ieee80211vap *vap) |
void | ieee80211_parse_htcap (struct ieee80211_node *ni, const uint8_t *ie) |
static void | htinfo_parse (struct ieee80211_node *ni, const struct ieee80211_ie_htinfo *htinfo) |
void | ieee80211_parse_htinfo (struct ieee80211_node *ni, const uint8_t *ie) |
static int | htinfo_update_chw (struct ieee80211_node *ni, int htflags, int vhtflags) |
static __inline int | htcap_update_mimo_ps (struct ieee80211_node *ni) |
static __inline void | htcap_update_shortgi (struct ieee80211_node *ni) |
static __inline void | htcap_update_ldpc (struct ieee80211_node *ni) |
void | ieee80211_ht_updateparams (struct ieee80211_node *ni, const uint8_t *htcapie, const uint8_t *htinfoie) |
static uint32_t | ieee80211_vht_get_vhtflags (struct ieee80211_node *ni, uint32_t htflags) |
int | ieee80211_ht_updateparams_final (struct ieee80211_node *ni, const uint8_t *htcapie, const uint8_t *htinfoie) |
void | ieee80211_ht_updatehtcap (struct ieee80211_node *ni, const uint8_t *htcapie) |
void | ieee80211_ht_updatehtcap_final (struct ieee80211_node *ni) |
int | ieee80211_setup_htrates (struct ieee80211_node *ni, const uint8_t *ie, int flags) |
void | ieee80211_setup_basic_htrates (struct ieee80211_node *ni, const uint8_t *ie) |
static void | ampdu_tx_setup (struct ieee80211_tx_ampdu *tap) |
static void | addba_timeout (void *arg) |
static void | addba_start_timeout (struct ieee80211_tx_ampdu *tap) |
static void | addba_stop_timeout (struct ieee80211_tx_ampdu *tap) |
int | ieee80211_ampdu_tx_request_ext (struct ieee80211_node *ni, int tid) |
int | ieee80211_ampdu_tx_request_active_ext (struct ieee80211_node *ni, int tid, int status) |
static int | ht_recv_action_ba_addba_request (struct ieee80211_node *ni, const struct ieee80211_frame *wh, const uint8_t *frm, const uint8_t *efrm) |
static int | ht_recv_action_ba_addba_response (struct ieee80211_node *ni, const struct ieee80211_frame *wh, const uint8_t *frm, const uint8_t *efrm) |
static int | ht_recv_action_ba_delba (struct ieee80211_node *ni, const struct ieee80211_frame *wh, const uint8_t *frm, const uint8_t *efrm) |
static int | ht_recv_action_ht_txchwidth (struct ieee80211_node *ni, const struct ieee80211_frame *wh, const uint8_t *frm, const uint8_t *efrm) |
static int | ht_recv_action_ht_mimopwrsave (struct ieee80211_node *ni, const struct ieee80211_frame *wh, const uint8_t *frm, const uint8_t *efrm) |
int | ieee80211_ampdu_request (struct ieee80211_node *ni, struct ieee80211_tx_ampdu *tap) |
void | ieee80211_ampdu_stop (struct ieee80211_node *ni, struct ieee80211_tx_ampdu *tap, int reason) |
static void | bar_start_timer (struct ieee80211_tx_ampdu *tap) |
static void | bar_timeout (void *arg) |
static void | bar_tx_complete (struct ieee80211_node *ni, void *arg, int status) |
int | ieee80211_send_bar (struct ieee80211_node *ni, struct ieee80211_tx_ampdu *tap, ieee80211_seq seq) |
static int | ht_action_output (struct ieee80211_node *ni, struct mbuf *m) |
static int | ht_send_action_ba_addba (struct ieee80211_node *ni, int category, int action, void *arg0) |
static int | ht_send_action_ba_delba (struct ieee80211_node *ni, int category, int action, void *arg0) |
static int | ht_send_action_ht_txchwidth (struct ieee80211_node *ni, int category, int action, void *arg0) |
static void | ieee80211_set_mcsset (struct ieee80211com *ic, uint8_t *frm) |
static uint8_t * | ieee80211_add_htcap_body (uint8_t *frm, struct ieee80211_node *ni) |
uint8_t * | ieee80211_add_htcap (uint8_t *frm, struct ieee80211_node *ni) |
static uint8_t * | ieee80211_add_htcap_body_ch (uint8_t *frm, struct ieee80211vap *vap, struct ieee80211_channel *c) |
uint8_t * | ieee80211_add_htcap_ch (uint8_t *frm, struct ieee80211vap *vap, struct ieee80211_channel *c) |
uint8_t * | ieee80211_add_htcap_vendor (uint8_t *frm, struct ieee80211_node *ni) |
static void | ieee80211_set_basic_htrates (uint8_t *frm, const struct ieee80211_htrateset *rs) |
void | ieee80211_ht_update_beacon (struct ieee80211vap *vap, struct ieee80211_beacon_offsets *bo) |
static uint8_t * | ieee80211_add_htinfo_body (uint8_t *frm, struct ieee80211_node *ni) |
uint8_t * | ieee80211_add_htinfo (uint8_t *frm, struct ieee80211_node *ni) |
uint8_t * | ieee80211_add_htinfo_vendor (uint8_t *frm, struct ieee80211_node *ni) |
Variables | |
const struct ieee80211_mcs_rates | ieee80211_htrates [IEEE80211_HTRATE_MAXSIZE] |
static int | ieee80211_ampdu_age = -1 |
static int | ieee80211_recv_bar_ena = 1 |
static int | ieee80211_addba_timeout = -1 |
static int | ieee80211_addba_backoff = -1 |
static int | ieee80211_addba_maxtries = 3 |
static int | ieee80211_bar_timeout = -1 |
static int | ieee80211_bar_maxtries = 50 |
static ieee80211_recv_action_func | ht_recv_action_ba_addba_request |
static ieee80211_recv_action_func | ht_recv_action_ba_addba_response |
static ieee80211_recv_action_func | ht_recv_action_ba_delba |
static ieee80211_recv_action_func | ht_recv_action_ht_mimopwrsave |
static ieee80211_recv_action_func | ht_recv_action_ht_txchwidth |
static ieee80211_send_action_func | ht_send_action_ba_addba |
static ieee80211_send_action_func | ht_send_action_ba_delba |
static ieee80211_send_action_func | ht_send_action_ht_txchwidth |
static struct printranges | ranges [] |
#define ADDRATE | ( | x | ) |
#define ADDSHORT | ( | frm, | |
v | |||
) |
Definition at line 3034 of file ieee80211_ht.c.
#define ADDSHORT | ( | frm, | |
v | |||
) |
Definition at line 3034 of file ieee80211_ht.c.
#define ADDSHORT | ( | frm, | |
v | |||
) |
Definition at line 3034 of file ieee80211_ht.c.
#define CONSUMED 1 /* frame consumed, caller does nothing */ |
#define CONSUMED 1 /* frame consumed, caller does nothing */ |
#define OPMODE | ( | x | ) | _IEEE80211_SHIFTMASK(x, IEEE80211_HTINFO_OPMODE) |
#define PROCESS 0 /* caller should process frame */ |
#define PROCESS 0 /* caller should process frame */ |
#define PROTMODE (IEEE80211_HTINFO_OPMODE|IEEE80211_HTINFO_NONHT_PRESENT) |
#define senderr | ( | _x, | |
_v | |||
) | do { vap->iv_stats._v++; ret = _x; goto bad; } while (0) |
__FBSDID | ( | "$FreeBSD$" | ) |
|
static |
Definition at line 2247 of file ieee80211_ht.c.
References addba_timeout(), ieee80211_addba_timeout, IEEE80211_AGGR_XCHGPEND, ieee80211_tx_ampdu::txa_flags, ieee80211_tx_ampdu::txa_nextrequest, and ieee80211_tx_ampdu::txa_timer.
Referenced by ieee80211_addba_request(), and ieee80211_ampdu_tx_request_ext().
|
static |
Definition at line 2257 of file ieee80211_ht.c.
References IEEE80211_AGGR_XCHGPEND, ieee80211_tx_ampdu::txa_flags, and ieee80211_tx_ampdu::txa_timer.
Referenced by ieee80211_addba_response(), ieee80211_addba_stop(), and ieee80211_ampdu_tx_request_active_ext().
|
static |
Definition at line 2234 of file ieee80211_ht.c.
References ieee80211com::ic_addba_response_timeout, ieee80211_node::ni_ic, ieee80211_tx_ampdu::txa_attempts, ieee80211_tx_ampdu::txa_flags, and ieee80211_tx_ampdu::txa_ni.
Referenced by addba_start_timeout().
|
static |
Definition at line 806 of file ieee80211_ht.c.
References ieee80211_input, and M_AMPDU_MPDU.
Referenced by ampdu_dispatch_slot(), and ieee80211_ampdu_reorder().
|
static |
Definition at line 814 of file ieee80211_ht.c.
References ampdu_dispatch(), ieee80211_rx_ampdu::rxa_mq, ieee80211_rx_ampdu::rxa_qbytes, and ieee80211_rx_ampdu::rxa_qframes.
Referenced by ampdu_rx_dispatch(), ampdu_rx_flush(), and ampdu_rx_flush_upto().
|
static |
Definition at line 543 of file ieee80211_ht.c.
References ieee80211_rx_stats::c_pktflags, CONSUMED, ieee80211_check_rxseq_amsdu(), ieee80211_check_rxseq_amsdu_more(), IEEE80211_DISCARD_MAC, ieee80211_get_rx_params_ptr(), IEEE80211_MSG_11N, IEEE80211_MSG_INPUT, IEEE80211_NODE_STAT, IEEE80211_SEQ_ADD, ieee80211_stats::is_ampdu_rx_reorder, ieee80211_stats::is_rx_dup, ieee80211vap::iv_stats, ieee80211_node::ni_macaddr, ieee80211_node::ni_vap, ieee80211_rx_ampdu::rxa_mq, ieee80211_rx_ampdu::rxa_qbytes, ieee80211_rx_ampdu::rxa_qframes, ieee80211_rx_ampdu::rxa_start, and ieee80211_rx_ampdu::rxa_wnd.
Referenced by ieee80211_ampdu_reorder().
|
static |
Definition at line 877 of file ieee80211_ht.c.
References ampdu_dispatch_slot(), ampdu_rx_moveup(), IEEE80211_MSG_11N, IEEE80211_NOTE, IEEE80211_SEQ_ADD, ieee80211_stats::is_ampdu_rx_oor, ieee80211vap::iv_stats, ieee80211_node::ni_vap, ieee80211_rx_ampdu::rxa_start, and ieee80211_rx_ampdu::rxa_wnd.
Referenced by ieee80211_ampdu_reorder().
|
static |
Definition at line 913 of file ieee80211_ht.c.
References ampdu_dispatch_slot(), IEEE80211_MSG_11N, IEEE80211_NOTE, ieee80211_stats::is_ampdu_rx_oor, ieee80211vap::iv_stats, ieee80211_node::ni_vap, ieee80211_rx_ampdu::rxa_qframes, ieee80211_rx_ampdu::rxa_start, and ieee80211_rx_ampdu::rxa_wnd.
Referenced by ieee80211_ampdu_reorder(), and ieee80211_ht_node_age().
|
static |
Definition at line 941 of file ieee80211_ht.c.
References ampdu_dispatch_slot(), ampdu_rx_moveup(), IEEE80211_MSG_11N, IEEE80211_NOTE, IEEE80211_SEQ_BA_BEFORE, IEEE80211_SEQ_INC, ieee80211_stats::is_ampdu_rx_oor, ieee80211vap::iv_stats, ieee80211_node::ni_vap, ieee80211_rx_ampdu::rxa_mq, ieee80211_rx_ampdu::rxa_start, and ieee80211_rx_ampdu::rxa_wnd.
Referenced by ieee80211_ampdu_reorder(), and ieee80211_recv_bar().
|
static |
Definition at line 835 of file ieee80211_ht.c.
References IEEE80211_SEQ_ADD, ieee80211_stats::is_ampdu_rx_copy, ieee80211vap::iv_stats, ieee80211_node::ni_vap, ieee80211_rx_ampdu::rxa_mq, ieee80211_rx_ampdu::rxa_qframes, ieee80211_rx_ampdu::rxa_start, and ieee80211_rx_ampdu::rxa_wnd.
Referenced by ampdu_rx_dispatch(), and ampdu_rx_flush_upto().
|
static |
Definition at line 668 of file ieee80211_ht.c.
References ampdu_rx_purge_slot(), ieee80211_rx_ampdu::rxa_qbytes, ieee80211_rx_ampdu::rxa_qframes, and ieee80211_rx_ampdu::rxa_wnd.
Referenced by ampdu_rx_start(), ampdu_rx_stop(), and ieee80211_ampdu_rx_start_ext().
|
static |
Definition at line 520 of file ieee80211_ht.c.
References ieee80211_rx_ampdu::rxa_mq, ieee80211_rx_ampdu::rxa_qbytes, and ieee80211_rx_ampdu::rxa_qframes.
Referenced by ampdu_rx_purge().
|
static |
Definition at line 698 of file ieee80211_ht.c.
References _IEEE80211_MASKSHIFT, ampdu_rx_purge(), IEEE80211_AGGR_AMSDU, IEEE80211_AGGR_BAWMAX, IEEE80211_AGGR_RUNNING, IEEE80211_AGGR_XCHGPEND, ieee80211_ampdu_rx_init_rap(), IEEE80211_BAPS_AMSDU, IEEE80211_BAPS_BUFSIZ, IEEE80211_BASEQ_START, IEEE80211_HTC_RX_AMSDU_AMPDU, ieee80211vap::iv_htcaps, ieee80211_node::ni_vap, ieee80211_rx_ampdu::rxa_flags, ieee80211_rx_ampdu::rxa_start, and ieee80211_rx_ampdu::rxa_wnd.
Referenced by ieee80211_ht_attach().
|
static |
Definition at line 790 of file ieee80211_ht.c.
References ampdu_rx_purge(), IEEE80211_AGGR_RUNNING, IEEE80211_AGGR_WAITRX, IEEE80211_AGGR_XCHGPEND, and ieee80211_rx_ampdu::rxa_flags.
Referenced by ieee80211_ampdu_rx_stop_ext(), and ieee80211_ht_attach().
|
static |
Definition at line 2186 of file ieee80211_ht.c.
References IEEE80211_AGGR_SETUP, ieee80211_tx_ampdu::txa_flags, ieee80211_tx_ampdu::txa_lastsample, and ieee80211_tx_ampdu::txa_timer.
Referenced by ieee80211_ampdu_request(), and ieee80211_ampdu_tx_request_ext().
|
static |
Definition at line 2194 of file ieee80211_ht.c.
References bar_stop_timer(), ieee80211com::ic_addba_stop, IEEE80211_AGGR_NAK, IEEE80211_AGGR_SETUP, IEEE80211_MSG_11N, IEEE80211_NOTE, ieee80211_txampdu_init_pps(), ieee80211_node::ni_ic, ieee80211_node::ni_vap, TID_TO_WME_AC, ieee80211_tx_ampdu::txa_flags, ieee80211_tx_ampdu::txa_ni, and ieee80211_tx_ampdu::txa_tid.
Referenced by ieee80211_ht_node_cleanup().
|
static |
Definition at line 2842 of file ieee80211_ht.c.
References bar_timeout(), ieee80211_bar_timeout, IEEE80211_MSG_11N, IEEE80211_NOTE, ieee80211_node::ni_vap, ieee80211_tx_ampdu::txa_ni, and ieee80211_tx_ampdu::txa_timer.
Referenced by bar_timeout(), and ieee80211_send_bar().
|
static |
Definition at line 2852 of file ieee80211_ht.c.
References IEEE80211_MSG_11N, IEEE80211_NOTE, ieee80211_node::ni_vap, ieee80211_tx_ampdu::txa_ni, and ieee80211_tx_ampdu::txa_timer.
Referenced by ampdu_tx_stop(), bar_tx_complete(), and ieee80211_send_bar().
|
static |
Definition at line 2790 of file ieee80211_ht.c.
References bar_start_timer(), ieee80211com::ic_bar_response, IEEE80211_AGGR_BARPEND, IEEE80211_AGGR_XCHGPEND, ieee80211_ampdu_stop(), ieee80211_bar_maxtries, IEEE80211_MSG_11N, IEEE80211_NOTE, IEEE80211_REASON_TIMEOUT, ieee80211_send_bar(), ieee80211_stats::is_ampdu_bar_tx_fail, ieee80211_stats::is_ampdu_bar_tx_retry, ieee80211vap::iv_stats, ieee80211_node::ni_ic, ieee80211_node::ni_vap, ieee80211_tx_ampdu::txa_attempts, ieee80211_tx_ampdu::txa_flags, ieee80211_tx_ampdu::txa_ni, ieee80211_tx_ampdu::txa_seqpending, and ieee80211_tx_ampdu::txa_tid.
Referenced by bar_start_timer().
|
static |
Definition at line 2862 of file ieee80211_ht.c.
References bar_stop_timer(), ieee80211com::ic_bar_response, IEEE80211_AGGR_BARPEND, IEEE80211_MSG_11N, IEEE80211_NOTE, ieee80211_stats::is_ampdu_bar_tx, ieee80211vap::iv_stats, ieee80211_node::ni_ic, ieee80211_node::ni_vap, ieee80211_tx_ampdu::txa_flags, ieee80211_tx_ampdu::txa_tid, and ieee80211_tx_ampdu::txa_timer.
Referenced by ieee80211_send_bar().
|
static |
Definition at line 1409 of file ieee80211_ht.c.
References ieee80211_channel::ic_flags, ieee80211_channel::ic_freq, IEEE80211_CHAN_HT, and ieee80211_find_channel().
Referenced by htinfo_update_chw(), ieee80211_add_htcap_body(), and ieee80211_ht_adjust_channel().
|
static |
Definition at line 3020 of file ieee80211_ht.c.
References ieee80211_bpf_params::ibp_power, ieee80211_bpf_params::ibp_pri, ieee80211_bpf_params::ibp_rate0, ieee80211_bpf_params::ibp_try0, IEEE80211_FC0_SUBTYPE_ACTION, ieee80211_mgmt_output(), ieee80211_txparam::maxretry, ieee80211_txparam::mgmtrate, ieee80211_node::ni_txparms, ieee80211_node::ni_txpower, and WME_AC_VO.
Referenced by ht_send_action_ba_addba(), ht_send_action_ba_delba(), and ht_send_action_ht_txchwidth().
|
static |
Definition at line 394 of file ieee80211_ht.c.
References ht_rateprint(), ieee80211com::ic_htcaps, ic_printf(), IEEE80211_HTCAP_CHWIDTH40, IEEE80211_HTCAP_SHORTGI20, IEEE80211_HTCAP_SHORTGI40, and ieee80211_phymode_name.
Referenced by ieee80211_ht_announce().
|
static |
Definition at line 322 of file ieee80211_ht.c.
References ieee80211_mcs_rates::ht20_rate_400ns, ieee80211_mcs_rates::ht20_rate_800ns, ieee80211_mcs_rates::ht40_rate_400ns, ieee80211_mcs_rates::ht40_rate_800ns, ieee80211_htrates, ieee80211_rate2media(), and IEEE80211_RATE_MCS.
Referenced by ht_rateprint().
|
static |
Definition at line 366 of file ieee80211_ht.c.
References ht_getrate(), printranges::htcapflags, ieee80211com::ic_htcaps, ic_printf(), ieee80211com::ic_txstream, printranges::maxmcs, maxrate(), printranges::minmcs, ranges, printranges::ratetype, and printranges::txstream.
Referenced by ht_announce().
|
static |
Definition at line 2405 of file ieee80211_ht.c.
References _IEEE80211_MASKSHIFT, _IEEE80211_SHIFTMASK, ieee80211com::ic_ampdu_rx_start, ieee80211com::ic_send_action, IEEE80211_ACTION_BA_ADDBA_RESPONSE, IEEE80211_ACTION_CAT_BA, IEEE80211_BAPS_AMSDU, IEEE80211_BAPS_BUFSIZ, IEEE80211_BAPS_POLICY_IMMEDIATE, IEEE80211_BAPS_TID, IEEE80211_BASEQ_FRAG, IEEE80211_BASEQ_START, IEEE80211_FHT_AMPDU_RX, IEEE80211_HTC_RX_AMSDU_AMPDU, IEEE80211_MSG_11N, IEEE80211_MSG_ACTION, IEEE80211_NODE_AMPDU_RX, IEEE80211_NODE_AMSDU_RX, IEEE80211_NOTE, IEEE80211_STATUS_SUCCESS, IEEE80211_STATUS_UNSPECIFIED, ieee80211_stats::is_addba_reject, ieee80211vap::iv_flags_ht, ieee80211vap::iv_htcaps, ieee80211vap::iv_stats, ieee80211_node::ni_flags, ieee80211_node::ni_ic, ieee80211_node::ni_rx_ampdu, ieee80211_node::ni_vap, and ieee80211_rx_ampdu::rxa_wnd.
|
static |
Definition at line 2482 of file ieee80211_ht.c.
References _IEEE80211_MASKSHIFT, ieee80211com::ic_addba_response, IEEE80211_AGGR_BAWMAX, IEEE80211_AGGR_IMMEDIATE, IEEE80211_AGGR_XCHGPEND, IEEE80211_BAPS_AMSDU, IEEE80211_BAPS_BUFSIZ, IEEE80211_BAPS_POLICY, IEEE80211_BAPS_TID, IEEE80211_DISCARD_MAC, IEEE80211_MSG_11N, IEEE80211_MSG_ACTION, IEEE80211_NOTE, ieee80211_stats::is_addba_badpolicy, ieee80211_stats::is_addba_badtoken, ieee80211_stats::is_addba_norequest, ieee80211vap::iv_stats, ieee80211_node::ni_ic, ieee80211_node::ni_macaddr, ieee80211_node::ni_tx_ampdu, ieee80211_node::ni_vap, ieee80211_tx_ampdu::txa_flags, and ieee80211_tx_ampdu::txa_token.
|
static |
Definition at line 2565 of file ieee80211_ht.c.
References _IEEE80211_MASKSHIFT, ieee80211com::ic_addba_stop, ieee80211com::ic_ampdu_rx_stop, IEEE80211_DELBAPS_INIT, IEEE80211_DELBAPS_TID, IEEE80211_MSG_11N, IEEE80211_MSG_ACTION, IEEE80211_NOTE, ieee80211_node::ni_ic, ieee80211_node::ni_rx_ampdu, ieee80211_node::ni_tx_ampdu, and ieee80211_node::ni_vap.
|
static |
Definition at line 2621 of file ieee80211_ht.c.
References ieee80211_action_ht_mimopowersave::am_control, IEEE80211_A_HT_MIMOPWRSAVE_ENA, IEEE80211_A_HT_MIMOPWRSAVE_MODE, IEEE80211_MSG_11N, IEEE80211_MSG_ACTION, IEEE80211_NODE_MIMO_PS, IEEE80211_NODE_MIMO_RTS, IEEE80211_NOTE, ieee80211_node::ni_flags, and ieee80211_node::ni_vap.
|
static |
Definition at line 2601 of file ieee80211_ht.c.
References IEEE80211_A_HT_TXCHWIDTH_2040, IEEE80211_MSG_11N, IEEE80211_MSG_ACTION, IEEE80211_NOTE, ieee80211_node::ni_chw, and ieee80211_node::ni_vap.
|
static |
Definition at line 3046 of file ieee80211_ht.c.
References _IEEE80211_MASKSHIFT, ADDSHORT, ht_action_output(), ieee80211com::ic_headroom, IEEE80211_ACTION_BA_ADDBA_REQUEST, IEEE80211_ACTION_BA_ADDBA_RESPONSE, IEEE80211_BAPS_AMSDU, IEEE80211_BAPS_TID, IEEE80211_DPRINTF, ieee80211_free_node(), ieee80211_getmgtframe(), IEEE80211_MSG_11N, IEEE80211_MSG_ACTION, IEEE80211_MSG_NODE, ieee80211_node_refcnt, IEEE80211_NOTE, ieee80211_ref_node(), ieee80211_stats::is_tx_nobuf, ieee80211vap::iv_stats, ieee80211_node::ni_ic, ieee80211_node::ni_macaddr, and ieee80211_node::ni_vap.
|
static |
Definition at line 3095 of file ieee80211_ht.c.
References _IEEE80211_SHIFTMASK, ADDSHORT, ht_action_output(), ieee80211com::ic_headroom, IEEE80211_DELBAPS_TID, IEEE80211_DPRINTF, ieee80211_free_node(), ieee80211_getmgtframe(), IEEE80211_MSG_11N, IEEE80211_MSG_ACTION, IEEE80211_MSG_NODE, ieee80211_node_refcnt, IEEE80211_NOTE, ieee80211_reason_to_string(), ieee80211_ref_node(), ieee80211_stats::is_tx_nobuf, ieee80211vap::iv_stats, ieee80211_node::ni_ic, ieee80211_node::ni_macaddr, and ieee80211_node::ni_vap.
|
static |
Definition at line 3138 of file ieee80211_ht.c.
References ht_action_output(), ieee80211com::ic_headroom, IEEE80211_A_HT_TXCHWIDTH_20, IEEE80211_A_HT_TXCHWIDTH_2040, IEEE80211_DPRINTF, ieee80211_free_node(), ieee80211_getmgtframe(), IEEE80211_IS_CHAN_HT40, IEEE80211_MSG_11N, IEEE80211_MSG_ACTION, IEEE80211_MSG_NODE, ieee80211_node_refcnt, IEEE80211_NOTE, ieee80211_ref_node(), ieee80211_stats::is_tx_nobuf, ieee80211vap::iv_stats, ieee80211_node::ni_chan, ieee80211_node::ni_ic, ieee80211_node::ni_macaddr, and ieee80211_node::ni_vap.
|
static |
Definition at line 1884 of file ieee80211_ht.c.
References IEEE80211_FHT_LDPC_TX, IEEE80211_HTCAP_LDPC, IEEE80211_NODE_LDPC, ieee80211vap::iv_flags_ht, ieee80211_node::ni_flags, ieee80211_node::ni_htcap, and ieee80211_node::ni_vap.
Referenced by ieee80211_ht_updatehtcap(), and ieee80211_ht_updateparams().
|
static |
Definition at line 1839 of file ieee80211_ht.c.
References IEEE80211_HTCAP_SMPS, IEEE80211_HTCAP_SMPS_DYNAMIC, IEEE80211_HTCAP_SMPS_ENA, IEEE80211_HTCAP_SMPS_OFF, IEEE80211_NODE_MIMO_PS, IEEE80211_NODE_MIMO_RTS, ieee80211_node::ni_flags, and ieee80211_node::ni_htcap.
Referenced by ieee80211_ht_updatehtcap(), and ieee80211_ht_updateparams().
|
static |
Definition at line 1866 of file ieee80211_ht.c.
References IEEE80211_FHT_SHORTGI20, IEEE80211_FHT_SHORTGI40, IEEE80211_HTCAP_SHORTGI20, IEEE80211_HTCAP_SHORTGI40, IEEE80211_NODE_SGI20, IEEE80211_NODE_SGI40, ieee80211vap::iv_flags_ht, ieee80211_node::ni_flags, ieee80211_node::ni_htcap, and ieee80211_node::ni_vap.
Referenced by ieee80211_ht_updatehtcap(), and ieee80211_ht_updateparams().
|
static |
Definition at line 1692 of file ieee80211_ht.c.
References _IEEE80211_SHIFTMASK, ieee80211_ie_htinfo::hi_byte1, ieee80211_ie_htinfo::hi_byte2, ieee80211_ie_htinfo::hi_byte45, ieee80211_ie_htinfo::hi_ctrlchannel, IEEE80211_HTINFO_2NDCHAN, IEEE80211_HTINFO_BASIC_STBCMCS, IEEE80211_HTINFO_OPMODE, ieee80211_node::ni_ht2ndchan, ieee80211_node::ni_htctlchan, ieee80211_node::ni_htopmode, and ieee80211_node::ni_htstbc.
Referenced by ieee80211_ht_updateparams(), and ieee80211_parse_htinfo().
|
static |
Definition at line 1548 of file ieee80211_ht.c.
References ieee80211com::ic_bsschan, IEEE80211_CHAN_ANYC, IEEE80211_FHT_NONHT_PR, IEEE80211_HTINFO_NONHT_PRESENT, IEEE80211_HTINFO_OPMODE_HT20PR, IEEE80211_HTINFO_OPMODE_MIXED, IEEE80211_HTINFO_OPMODE_PROTOPT, IEEE80211_HTINFO_OPMODE_PURE, IEEE80211_IS_CHAN_HT40, ieee80211_vap_update_ht_protmode(), ieee80211vap::iv_curhtprotmode, ieee80211vap::iv_flags_ht, ieee80211vap::iv_ht40_sta_assoc, ieee80211vap::iv_ht_sta_assoc, ieee80211vap::iv_ic, and ieee80211vap::iv_sta_assoc.
Referenced by ieee80211_ht_node_join(), ieee80211_ht_node_leave(), and ieee80211_ht_timeout().
|
static |
Definition at line 1732 of file ieee80211_ht.c.
References chanflags, findhtchan(), ieee80211_channel::ic_flags, ieee80211_channel::ic_freq, IEEE80211_CHAN_HT, IEEE80211_CHAN_HT20, IEEE80211_CHAN_HT40, IEEE80211_CHAN_VHT, IEEE80211_CONF_VHT, ieee80211_find_channel(), IEEE80211_IS_CHAN_HT, IEEE80211_IS_CHAN_HT40, IEEE80211_IS_CHAN_VHT, IEEE80211_IS_CHAN_VHT80, IEEE80211_MSG_11N, IEEE80211_MSG_ASSOC, IEEE80211_NOTE, ieee80211_node::ni_chan, ieee80211_node::ni_chw, ieee80211_node::ni_ic, ieee80211_node::ni_vap, ieee80211_node::ni_vht_chanwidth, and ieee80211_node::ni_vhtcap.
Referenced by ieee80211_ht_updatehtcap_final(), and ieee80211_ht_updateparams_final().
uint8_t * ieee80211_add_htcap | ( | uint8_t * | frm, |
struct ieee80211_node * | ni | ||
) |
Definition at line 3360 of file ieee80211_ht.c.
References ieee80211_add_htcap_body(), and IEEE80211_ELEMID_HTCAP.
Referenced by ieee80211_alloc_proberesp(), ieee80211_beacon_construct(), and ieee80211_send_mgmt().
|
static |
Definition at line 3227 of file ieee80211_ht.c.
References _IEEE80211_MASKSHIFT, _IEEE80211_SHIFTMASK, ADDSHORT, findhtchan(), ieee80211_ie_htcap::hc_txbf, IEEE80211_CHAN_ANYC, IEEE80211_CHAN_HT40D, IEEE80211_CHAN_HT40U, IEEE80211_DPRINTF, IEEE80211_FHT_LDPC_RX, IEEE80211_FHT_SHORTGI20, IEEE80211_FHT_SHORTGI40, IEEE80211_FHT_STBC_RX, IEEE80211_FHT_USEHT40, IEEE80211_HTCAP_CHWIDTH40, IEEE80211_HTCAP_MAXRXAMPDU, IEEE80211_HTCAP_MPDUDENSITY, IEEE80211_IS_CHAN_HT40, IEEE80211_M_STA, IEEE80211_MSG_11N, ieee80211_set_mcsset(), ieee80211vap::iv_ampdu_density, ieee80211vap::iv_ampdu_rxmax, ieee80211vap::iv_flags_ht, ieee80211vap::iv_htcaps, ieee80211vap::iv_htextcaps, ieee80211vap::iv_opmode, ieee80211_node::ni_chan, ieee80211_node::ni_htparam, ieee80211_node::ni_ic, and ieee80211_node::ni_vap.
Referenced by ieee80211_add_htcap(), and ieee80211_add_htcap_vendor().
|
static |
Definition at line 3372 of file ieee80211_ht.c.
References _IEEE80211_SHIFTMASK, ADDSHORT, ieee80211_ie_htcap::hc_txbf, IEEE80211_FHT_SHORTGI20, IEEE80211_FHT_SHORTGI40, IEEE80211_HTCAP_CHWIDTH40, IEEE80211_HTCAP_MAXRXAMPDU, IEEE80211_HTCAP_MPDUDENSITY, IEEE80211_IS_CHAN_HT40, ieee80211_set_mcsset(), ieee80211vap::iv_ampdu_density, ieee80211vap::iv_ampdu_rxmax, ieee80211vap::iv_flags_ht, ieee80211vap::iv_htcaps, ieee80211vap::iv_htextcaps, and ieee80211vap::iv_ic.
Referenced by ieee80211_add_htcap_ch().
uint8_t * ieee80211_add_htcap_ch | ( | uint8_t * | frm, |
struct ieee80211vap * | vap, | ||
struct ieee80211_channel * | c | ||
) |
Definition at line 3449 of file ieee80211_ht.c.
References ieee80211_add_htcap_body_ch(), and IEEE80211_ELEMID_HTCAP.
Referenced by ieee80211_probereq_ie().
uint8_t * ieee80211_add_htcap_vendor | ( | uint8_t * | frm, |
struct ieee80211_node * | ni | ||
) |
Definition at line 3462 of file ieee80211_ht.c.
References BCM_OUI, BCM_OUI_HTCAP, ieee80211_add_htcap_body(), and IEEE80211_ELEMID_VENDOR.
Referenced by ieee80211_alloc_proberesp(), ieee80211_beacon_construct(), and ieee80211_send_mgmt().
uint8_t * ieee80211_add_htinfo | ( | uint8_t * | frm, |
struct ieee80211_node * | ni | ||
) |
Definition at line 3590 of file ieee80211_ht.c.
References ieee80211_add_htinfo_body(), and IEEE80211_ELEMID_HTINFO.
Referenced by ieee80211_alloc_proberesp(), ieee80211_beacon_construct(), and ieee80211_send_mgmt().
|
static |
Definition at line 3547 of file ieee80211_ht.c.
References ieee80211_ie_htinfo::hi_basicmcsset, ieee80211_chan2ieee(), IEEE80211_FHT_RIFS, IEEE80211_HTINFO_2NDCHAN_ABOVE, IEEE80211_HTINFO_2NDCHAN_BELOW, IEEE80211_HTINFO_2NDCHAN_NONE, IEEE80211_HTINFO_RIFSMODE_PERM, IEEE80211_HTINFO_RIFSMODE_PROH, IEEE80211_HTINFO_TXWIDTH_2040, IEEE80211_IS_CHAN_HT40, IEEE80211_IS_CHAN_HT40D, IEEE80211_IS_CHAN_HT40U, ieee80211_set_basic_htrates(), ieee80211vap::iv_curhtprotmode, ieee80211vap::iv_flags_ht, ieee80211_node::ni_chan, ieee80211_node::ni_htrates, ieee80211_node::ni_ic, and ieee80211_node::ni_vap.
Referenced by ieee80211_add_htinfo(), and ieee80211_add_htinfo_vendor().
uint8_t * ieee80211_add_htinfo_vendor | ( | uint8_t * | frm, |
struct ieee80211_node * | ni | ||
) |
Definition at line 3602 of file ieee80211_ht.c.
References BCM_OUI, BCM_OUI_HTINFO, ieee80211_add_htinfo_body(), and IEEE80211_ELEMID_VENDOR.
Referenced by ieee80211_alloc_proberesp(), ieee80211_beacon_construct(), and ieee80211_send_mgmt().
|
static |
Definition at line 2278 of file ieee80211_ht.c.
References _IEEE80211_MASKSHIFT, addba_start_timeout(), IEEE80211_AGGR_BAWMAX, IEEE80211_AGGR_IMMEDIATE, IEEE80211_BAPS_BUFSIZ, ieee80211_tx_ampdu::txa_flags, ieee80211_tx_ampdu::txa_token, and ieee80211_tx_ampdu::txa_wnd.
Referenced by ieee80211_ht_attach().
|
static |
Definition at line 2349 of file ieee80211_ht.c.
References _IEEE80211_MASKSHIFT, addba_stop_timeout(), IEEE80211_AGGR_AMSDU, IEEE80211_AGGR_BAWMAX, IEEE80211_AGGR_NAK, IEEE80211_AGGR_RUNNING, IEEE80211_BAPS_AMSDU, IEEE80211_BAPS_BUFSIZ, IEEE80211_BAPS_TID, IEEE80211_HTC_TX_AMSDU_AMPDU, IEEE80211_NODE_AMSDU_TX, IEEE80211_STATUS_SUCCESS, ieee80211vap::iv_htcaps, ieee80211_node::ni_flags, ieee80211_node::ni_vap, ieee80211_tx_ampdu::txa_attempts, ieee80211_tx_ampdu::txa_flags, and ieee80211_tx_ampdu::txa_wnd.
Referenced by ieee80211_ht_attach().
|
static |
Definition at line 2387 of file ieee80211_ht.c.
References addba_stop_timeout(), IEEE80211_AGGR_AMSDU, IEEE80211_AGGR_RUNNING, ieee80211_tx_ampdu::txa_attempts, and ieee80211_tx_ampdu::txa_flags.
Referenced by ieee80211_ht_attach().
|
static |
Definition at line 2659 of file ieee80211_ht.c.
References ieee80211_addba_maxtries, IEEE80211_MSG_11N, IEEE80211_NOTE, ieee80211_time_after, ieee80211_wme_acnames, ieee80211vap::iv_ampdu_mintraffic, ieee80211_node::ni_vap, TID_TO_WME_AC, ieee80211_tx_ampdu::txa_attempts, ieee80211_tx_ampdu::txa_avgpps, ieee80211_tx_ampdu::txa_nextrequest, ieee80211_tx_ampdu::txa_pkts, and ieee80211_tx_ampdu::txa_tid.
Referenced by ieee80211_ht_attach().
int ieee80211_ampdu_reorder | ( | struct ieee80211_node * | ni, |
struct mbuf * | m, | ||
const struct ieee80211_rx_stats * | rxs | ||
) |
Definition at line 1002 of file ieee80211_ht.c.
References ampdu_dispatch(), ampdu_rx_add_slot(), ampdu_rx_dispatch(), ampdu_rx_flush(), ampdu_rx_flush_upto(), CONSUMED, ieee80211_qosframe::i_addr1, ieee80211_qosframe::i_fc, ieee80211_qosframe::i_seq, IEEE80211_AGGR_WAITRX, IEEE80211_AGGR_XCHGPEND, ieee80211_ampdu_age, ieee80211_check_rxseq_amsdu(), ieee80211_check_rxseq_amsdu_more(), IEEE80211_DISCARD_MAC, IEEE80211_FC0_QOSDATA, IEEE80211_FC1_RETRY, ieee80211_getqos(), IEEE80211_IS_MULTICAST, IEEE80211_MSG_11N, IEEE80211_MSG_INPUT, IEEE80211_NODE_HT, IEEE80211_NODE_STAT, IEEE80211_NOTE, IEEE80211_QOS_TID, IEEE80211_SEQ_ADD, IEEE80211_SEQ_BA_RANGE, IEEE80211_SEQ_FRAG_MASK, IEEE80211_SEQ_INC, IEEE80211_SEQ_SEQ_SHIFT, IEEE80211_SEQ_SUB, ieee80211_stats::is_ampdu_rx_age, ieee80211_stats::is_ampdu_rx_drop, ieee80211_stats::is_ampdu_rx_move, ieee80211vap::iv_stats, M_AMPDU, M_AMPDU_MPDU, ieee80211_node::ni_flags, ieee80211_node::ni_macaddr, ieee80211_node::ni_rx_ampdu, ieee80211_node::ni_vap, PROCESS, ieee80211_rx_ampdu::rxa_age, ieee80211_rx_ampdu::rxa_flags, ieee80211_rx_ampdu::rxa_mq, ieee80211_rx_ampdu::rxa_nframes, ieee80211_rx_ampdu::rxa_qframes, ieee80211_rx_ampdu::rxa_start, and ieee80211_rx_ampdu::rxa_wnd.
Referenced by adhoc_input(), hostap_input(), sta_input(), and wds_input().
int ieee80211_ampdu_request | ( | struct ieee80211_node * | ni, |
struct ieee80211_tx_ampdu * | tap | ||
) |
Definition at line 2690 of file ieee80211_ht.c.
References _IEEE80211_SHIFTMASK, ampdu_tx_setup(), ieee80211com::ic_addba_request, ieee80211com::ic_send_action, IEEE80211_ACTION_BA_ADDBA_REQUEST, IEEE80211_ACTION_CAT_BA, ieee80211_addba_backoff, ieee80211_addba_maxtries, IEEE80211_AGGR_BAWMAX, IEEE80211_AGGR_SETUP, IEEE80211_BAPS_AMSDU, IEEE80211_BAPS_BUFSIZ, IEEE80211_BAPS_POLICY_IMMEDIATE, IEEE80211_BAPS_TID, IEEE80211_BASEQ_FRAG, IEEE80211_BASEQ_START, IEEE80211_HTC_TX_AMSDU_AMPDU, IEEE80211_MSG_11N, IEEE80211_NODE_AMSDU_TX, IEEE80211_NOTE, ieee80211vap::iv_htcaps, ieee80211_node::ni_flags, ieee80211_node::ni_ic, ieee80211_node::ni_txseqs, ieee80211_node::ni_vap, TID_TO_WME_AC, ieee80211_tx_ampdu::txa_attempts, ieee80211_tx_ampdu::txa_flags, ieee80211_tx_ampdu::txa_nextrequest, ieee80211_tx_ampdu::txa_start, and ieee80211_tx_ampdu::txa_tid.
Referenced by ieee80211_vap_pkt_send_dest().
|
static |
Definition at line 683 of file ieee80211_ht.c.
References IEEE80211_AGGR_BAWMAX, and ieee80211_rx_ampdu::rxa_mq.
Referenced by ampdu_rx_start(), ieee80211_ampdu_rx_start_ext(), and ieee80211_ht_node_init().
int ieee80211_ampdu_rx_start_ext | ( | struct ieee80211_node * | ni, |
int | tid, | ||
int | seq, | ||
int | baw | ||
) |
Definition at line 731 of file ieee80211_ht.c.
References ampdu_rx_purge(), IEEE80211_AGGR_BAWMAX, IEEE80211_AGGR_RUNNING, IEEE80211_AGGR_WAITRX, IEEE80211_AGGR_XCHGPEND, ieee80211_ampdu_rx_init_rap(), IEEE80211_MSG_11N, IEEE80211_NOTE, ieee80211_node::ni_rx_ampdu, ieee80211_node::ni_vap, ieee80211_rx_ampdu::rxa_flags, ieee80211_rx_ampdu::rxa_start, and ieee80211_rx_ampdu::rxa_wnd.
void ieee80211_ampdu_rx_stop_ext | ( | struct ieee80211_node * | ni, |
int | tid | ||
) |
Definition at line 777 of file ieee80211_ht.c.
References ampdu_rx_stop(), and ieee80211_node::ni_rx_ampdu.
void ieee80211_ampdu_stop | ( | struct ieee80211_node * | ni, |
struct ieee80211_tx_ampdu * | tap, | ||
int | reason | ||
) |
Definition at line 2755 of file ieee80211_ht.c.
References ieee80211com::ic_addba_stop, ieee80211com::ic_send_action, IEEE80211_ACTION_BA_DELBA, IEEE80211_ACTION_CAT_BA, IEEE80211_AMPDU_RUNNING, IEEE80211_DELBAPS_INIT, IEEE80211_MSG_11N, IEEE80211_MSG_ACTION, IEEE80211_NOTE, ieee80211_reason_to_string(), ieee80211_stats::is_ampdu_stop, ieee80211_stats::is_ampdu_stop_failed, ieee80211vap::iv_stats, ieee80211_node::ni_ic, ieee80211_node::ni_vap, ieee80211_tx_ampdu::txa_flags, and ieee80211_tx_ampdu::txa_tid.
Referenced by bar_timeout().
int ieee80211_ampdu_tx_request_active_ext | ( | struct ieee80211_node * | ni, |
int | tid, | ||
int | status | ||
) |
Definition at line 2322 of file ieee80211_ht.c.
References addba_stop_timeout(), IEEE80211_AGGR_NAK, IEEE80211_AGGR_RUNNING, ieee80211_node::ni_tx_ampdu, ieee80211_tx_ampdu::txa_attempts, and ieee80211_tx_ampdu::txa_flags.
int ieee80211_ampdu_tx_request_ext | ( | struct ieee80211_node * | ni, |
int | tid | ||
) |
Definition at line 2299 of file ieee80211_ht.c.
References addba_start_timeout(), ampdu_tx_setup(), IEEE80211_AGGR_SETUP, ieee80211_node::ni_tx_ampdu, and ieee80211_tx_ampdu::txa_flags.
|
static |
Definition at line 2885 of file ieee80211_ht.c.
References IEEE80211_MSG_11N, IEEE80211_NOTE, IEEE80211_SEQ_ADD, ieee80211_node::ni_vap, ieee80211_tx_ampdu::txa_flags, ieee80211_tx_ampdu::txa_ni, ieee80211_tx_ampdu::txa_qframes, ieee80211_tx_ampdu::txa_seqpending, ieee80211_tx_ampdu::txa_start, ieee80211_tx_ampdu::txa_tid, and ieee80211_tx_ampdu::txa_wnd.
Referenced by ieee80211_ht_attach().
struct mbuf * ieee80211_decap_amsdu | ( | struct ieee80211_node * | ni, |
struct mbuf * | m | ||
) |
Definition at line 471 of file ieee80211_ht.c.
References ieee80211_decap1(), IEEE80211_DISCARD_MAC, IEEE80211_MSG_ANY, ieee80211_stats::is_amsdu_decap, ieee80211_stats::is_amsdu_split, ieee80211_stats::is_amsdu_tooshort, ieee80211vap::iv_deliver_data, ieee80211vap::iv_stats, ieee80211_node::ni_macaddr, and ieee80211_node::ni_vap.
Referenced by adhoc_input(), hostap_input(), mesh_input(), sta_input(), and wds_input().
struct ieee80211_channel * ieee80211_ht_adjust_channel | ( | struct ieee80211com * | ic, |
struct ieee80211_channel * | chan, | ||
int | flags | ||
) |
Definition at line 1419 of file ieee80211_ht.c.
References findhtchan(), ieee80211_channel::ic_flags, ieee80211_channel::ic_freq, IEEE80211_CHAN_HT, IEEE80211_CHAN_HT20, IEEE80211_CHAN_HT40D, IEEE80211_CHAN_HT40U, IEEE80211_FHT_HT, IEEE80211_FHT_USEHT40, ieee80211_find_channel(), IEEE80211_IS_CHAN_HT, IEEE80211_IS_CHAN_HT20, and IEEE80211_IS_CHAN_HT40.
Referenced by adhoc_newstate(), adhoc_pick_bss(), ap_end(), hostap_newstate(), ieee80211_ht_wds_init(), ieee80211_probereq_ie(), ieee80211_setupcurchan(), ieee80211_sync_curchan(), and mesh_newstate().
void ieee80211_ht_announce | ( | struct ieee80211com * | ic | ) |
Definition at line 416 of file ieee80211_ht.c.
References ht_announce(), ieee80211com::ic_modecaps, ic_printf(), ieee80211com::ic_rxstream, ieee80211com::ic_txstream, IEEE80211_MODE_11NA, and IEEE80211_MODE_11NG.
Referenced by ieee80211_announce().
void ieee80211_ht_attach | ( | struct ieee80211com * | ic | ) |
Definition at line 231 of file ieee80211_ht.c.
References ampdu_rx_start(), ampdu_rx_stop(), ieee80211com::ic_addba_request, ieee80211com::ic_addba_response, ieee80211com::ic_addba_response_timeout, ieee80211com::ic_addba_stop, ieee80211com::ic_ampdu_enable, ieee80211com::ic_ampdu_rx_start, ieee80211com::ic_ampdu_rx_stop, ieee80211com::ic_bar_response, ieee80211com::ic_curhtprotmode, ieee80211com::ic_htprotmode, ieee80211com::ic_recv_action, ieee80211com::ic_send_action, ieee80211_addba_request(), ieee80211_addba_response(), ieee80211_addba_stop(), ieee80211_ampdu_enable(), ieee80211_bar_response(), IEEE80211_HTINFO_OPMODE_PURE, IEEE80211_PROT_RTSCTS, ieee80211_recv_action(), ieee80211_send_action(), and null_addba_response_timeout().
Referenced by ieee80211_ifattach().
void ieee80211_ht_detach | ( | struct ieee80211com * | ic | ) |
Definition at line 250 of file ieee80211_ht.c.
Referenced by ieee80211_ifdetach().
|
static |
Definition at line 175 of file ieee80211_ht.c.
References ht_recv_action_ba_addba_request, ht_recv_action_ba_addba_response, ht_recv_action_ba_delba, ht_recv_action_ht_mimopwrsave, ht_recv_action_ht_txchwidth, ht_send_action_ba_addba, ht_send_action_ba_delba, ht_send_action_ht_txchwidth, IEEE80211_ACTION_BA_ADDBA_REQUEST, IEEE80211_ACTION_BA_ADDBA_RESPONSE, IEEE80211_ACTION_BA_DELBA, IEEE80211_ACTION_CAT_BA, IEEE80211_ACTION_CAT_HT, IEEE80211_ACTION_HT_MIMOPWRSAVE, IEEE80211_ACTION_HT_TXCHWIDTH, ieee80211_addba_backoff, ieee80211_addba_timeout, ieee80211_ampdu_age, ieee80211_bar_timeout, ieee80211_recv_action_register(), ieee80211_send_action_register(), and msecs_to_ticks.
void ieee80211_ht_node_age | ( | struct ieee80211_node * | ni | ) |
Definition at line 1377 of file ieee80211_ht.c.
References ampdu_rx_flush(), IEEE80211_AGGR_XCHGPEND, ieee80211_ampdu_age, IEEE80211_NODE_HT, ieee80211_stats::is_ampdu_rx_age, ieee80211vap::iv_stats, ieee80211_node::ni_flags, ieee80211_node::ni_rx_ampdu, ieee80211_node::ni_vap, ieee80211_rx_ampdu::rxa_age, ieee80211_rx_ampdu::rxa_flags, ieee80211_rx_ampdu::rxa_qframes, and WME_NUM_TID.
Referenced by node_age().
void ieee80211_ht_node_cleanup | ( | struct ieee80211_node * | ni | ) |
Definition at line 1348 of file ieee80211_ht.c.
References ampdu_tx_stop(), ieee80211com::ic_ampdu_rx_stop, IEEE80211_AGGR_SETUP, IEEE80211_MSG_11N, IEEE80211_NODE_HT, IEEE80211_NOTE, ieee80211_node::ni_flags, ieee80211_node::ni_htcap, ieee80211_node::ni_ic, ieee80211_node::ni_rx_ampdu, ieee80211_node::ni_tx_ampdu, ieee80211_node::ni_vap, ieee80211_tx_ampdu::txa_flags, and WME_NUM_TID.
Referenced by hostap_recv_mgmt(), ieee80211_ht_node_init(), and node_cleanup().
void ieee80211_ht_node_init | ( | struct ieee80211_node * | ni | ) |
Definition at line 1308 of file ieee80211_ht.c.
References ieee80211_ampdu_rx_init_rap(), ieee80211_ht_node_cleanup(), IEEE80211_MSG_11N, IEEE80211_NODE_AMPDU, IEEE80211_NODE_AMSDU, IEEE80211_NODE_HT, IEEE80211_NOTE, ieee80211_txampdu_init_pps(), ieee80211_node::ni_flags, ieee80211_node::ni_rx_ampdu, ieee80211_node::ni_tx_ampdu, ieee80211_node::ni_vap, ieee80211_tx_ampdu::txa_ni, ieee80211_tx_ampdu::txa_tid, and WME_NUM_TID.
Referenced by hostap_recv_mgmt(), ieee80211_create_ibss(), ieee80211_init_neighbor(), ieee80211_sta_join(), and sta_recv_mgmt().
void ieee80211_ht_node_join | ( | struct ieee80211_node * | ni | ) |
Definition at line 1577 of file ieee80211_ht.c.
References htinfo_update(), IEEE80211_LOCK_ASSERT, IEEE80211_NODE_HT, ieee80211vap::iv_ht40_sta_assoc, ieee80211vap::iv_ht_sta_assoc, ieee80211vap::iv_ic, ieee80211_node::ni_chw, ieee80211_node::ni_flags, and ieee80211_node::ni_vap.
Referenced by ieee80211_node_join().
void ieee80211_ht_node_leave | ( | struct ieee80211_node * | ni | ) |
Definition at line 1595 of file ieee80211_ht.c.
References htinfo_update(), IEEE80211_LOCK_ASSERT, IEEE80211_NODE_HT, ieee80211vap::iv_ht40_sta_assoc, ieee80211vap::iv_ht_sta_assoc, ieee80211vap::iv_ic, ieee80211_node::ni_chw, ieee80211_node::ni_flags, and ieee80211_node::ni_vap.
Referenced by ieee80211_node_leave().
void ieee80211_ht_timeout | ( | struct ieee80211vap * | vap | ) |
Definition at line 1655 of file ieee80211_ht.c.
References htinfo_update(), IEEE80211_DPRINTF, IEEE80211_FHT_NONHT_PR, IEEE80211_LOCK_ASSERT, IEEE80211_MSG_11N, IEEE80211_NONHT_PRESENT_AGE, ieee80211_time_after, ieee80211vap::iv_flags_ht, ieee80211vap::iv_ic, and ieee80211vap::iv_lastnonht.
Referenced by ieee80211_vap_timeout().
void ieee80211_ht_update_beacon | ( | struct ieee80211vap * | vap, |
struct ieee80211_beacon_offsets * | bo | ||
) |
Definition at line 3496 of file ieee80211_ht.c.
References ieee80211_beacon_offsets::bo_htinfo, ieee80211_ie_htinfo::hi_byte1, ieee80211_ie_htinfo::hi_byte2, ieee80211_ie_htinfo::hi_ctrlchannel, ieee80211com::ic_curhtprotmode, ieee80211_chan2ieee(), IEEE80211_FHT_RIFS, ieee80211_free_node(), IEEE80211_HTINFO_2NDCHAN_ABOVE, IEEE80211_HTINFO_2NDCHAN_BELOW, IEEE80211_HTINFO_2NDCHAN_NONE, IEEE80211_HTINFO_RIFSMODE_PERM, IEEE80211_HTINFO_RIFSMODE_PROH, IEEE80211_HTINFO_TXWIDTH_2040, IEEE80211_IS_CHAN_HT40, IEEE80211_IS_CHAN_HT40D, IEEE80211_IS_CHAN_HT40U, ieee80211_ref_node(), ieee80211vap::iv_bss, ieee80211vap::iv_flags_ht, ieee80211vap::iv_ic, and ieee80211_node::ni_chan.
Referenced by ieee80211_beacon_update().
void ieee80211_ht_updatehtcap | ( | struct ieee80211_node * | ni, |
const uint8_t * | htcapie | ||
) |
Definition at line 2058 of file ieee80211_ht.c.
References htcap_update_ldpc(), htcap_update_mimo_ps(), htcap_update_shortgi(), IEEE80211_HTC_SMPS, ieee80211_parse_htcap(), ieee80211vap::iv_htcaps, and ieee80211_node::ni_vap.
Referenced by hostap_recv_mgmt().
void ieee80211_ht_updatehtcap_final | ( | struct ieee80211_node * | ni | ) |
Definition at line 2075 of file ieee80211_ht.c.
References htinfo_update_chw(), IEEE80211_CHAN_HT20, IEEE80211_CHAN_HT40D, IEEE80211_CHAN_HT40U, IEEE80211_FHT_HT, IEEE80211_FHT_USEHT40, IEEE80211_HTCAP_CHWIDTH40, IEEE80211_IS_CHAN_HT40D, IEEE80211_IS_CHAN_HT40U, ieee80211_vht_get_vhtflags(), ieee80211vap::iv_bss, ieee80211vap::iv_flags_ht, ieee80211_node::ni_chan, ieee80211_node::ni_htcap, and ieee80211_node::ni_vap.
Referenced by hostap_recv_mgmt().
void ieee80211_ht_updateparams | ( | struct ieee80211_node * | ni, |
const uint8_t * | htcapie, | ||
const uint8_t * | htinfoie | ||
) |
Definition at line 1903 of file ieee80211_ht.c.
References ieee80211_ie_htinfo::hi_byte1, htcap_update_ldpc(), htcap_update_mimo_ps(), htcap_update_shortgi(), htinfo_parse(), IEEE80211_ELEMID_VENDOR, IEEE80211_FHT_RIFS, IEEE80211_HTC_SMPS, IEEE80211_HTINFO_RIFSMODE_PERM, IEEE80211_NODE_RIFS, ieee80211_parse_htcap(), ieee80211vap::iv_flags_ht, ieee80211vap::iv_htcaps, ieee80211_node::ni_flags, and ieee80211_node::ni_vap.
Referenced by adhoc_recv_mgmt(), ieee80211_init_neighbor(), ieee80211_sta_join(), and sta_recv_mgmt().
int ieee80211_ht_updateparams_final | ( | struct ieee80211_node * | ni, |
const uint8_t * | htcapie, | ||
const uint8_t * | htinfoie | ||
) |
Definition at line 2016 of file ieee80211_ht.c.
References ieee80211_ie_htinfo::hi_byte1, htinfo_update_chw(), IEEE80211_CHAN_HT20, IEEE80211_CHAN_HT40D, IEEE80211_CHAN_HT40U, IEEE80211_FHT_HT, IEEE80211_FHT_USEHT40, IEEE80211_HTINFO_2NDCHAN_ABOVE, IEEE80211_HTINFO_2NDCHAN_BELOW, IEEE80211_HTINFO_TXWIDTH_2040, ieee80211_vht_get_vhtflags(), ieee80211vap::iv_flags_ht, ieee80211_node::ni_ht2ndchan, and ieee80211_node::ni_vap.
Referenced by adhoc_recv_mgmt(), ieee80211_init_neighbor(), ieee80211_sta_join(), and sta_recv_mgmt().
void ieee80211_ht_vattach | ( | struct ieee80211vap * | vap | ) |
Definition at line 255 of file ieee80211_ht.c.
References IEEE80211_FEXT_WDSLEGACY, IEEE80211_FHT_AMPDU_RX, IEEE80211_FHT_AMPDU_TX, IEEE80211_FHT_AMSDU_RX, IEEE80211_FHT_AMSDU_TX, IEEE80211_FHT_HT, IEEE80211_FHT_HTCOMPAT, IEEE80211_FHT_LDPC_RX, IEEE80211_FHT_LDPC_TX, IEEE80211_FHT_RIFS, IEEE80211_FHT_SHORTGI20, IEEE80211_FHT_SHORTGI40, IEEE80211_FHT_STBC_RX, IEEE80211_FHT_STBC_TX, IEEE80211_FHT_USEHT40, IEEE80211_HTC_AMPDU, IEEE80211_HTC_AMSDU, IEEE80211_HTC_HT, IEEE80211_HTC_RIFS, IEEE80211_HTC_TXLDPC, IEEE80211_HTCAP_CHWIDTH40, IEEE80211_HTCAP_LDPC, IEEE80211_HTCAP_MAXAMSDU, IEEE80211_HTCAP_MAXRXAMPDU_8K, IEEE80211_HTCAP_MPDUDENSITY_NA, IEEE80211_HTCAP_RXSTBC, IEEE80211_HTCAP_SHORTGI20, IEEE80211_HTCAP_SHORTGI40, IEEE80211_HTCAP_TXSTBC, IEEE80211_HTINFO_OPMODE_PURE, IEEE80211_PROT_RTSCTS, ieee80211vap::iv_ampdu_density, ieee80211vap::iv_ampdu_limit, ieee80211vap::iv_ampdu_mintraffic, ieee80211vap::iv_ampdu_rxmax, ieee80211vap::iv_amsdu_limit, ieee80211vap::iv_curhtprotmode, ieee80211vap::iv_flags_ext, ieee80211vap::iv_flags_ht, ieee80211vap::iv_htcaps, ieee80211vap::iv_htprotmode, WME_AC_BE, WME_AC_BK, WME_AC_VI, and WME_AC_VO.
Referenced by ieee80211_vap_setup().
void ieee80211_ht_vdetach | ( | struct ieee80211vap * | vap | ) |
Definition at line 317 of file ieee80211_ht.c.
Referenced by ieee80211_vap_detach().
void ieee80211_ht_wds_init | ( | struct ieee80211_node * | ni | ) |
Definition at line 1458 of file ieee80211_ht.c.
References ieee80211_channel::ic_ieee, IEEE80211_FHT_HT, IEEE80211_FHT_RIFS, IEEE80211_FHT_SHORTGI20, IEEE80211_FHT_SHORTGI40, ieee80211_ht_adjust_channel(), IEEE80211_HTCAP_CHWIDTH40, IEEE80211_HTCAP_SHORTGI20, IEEE80211_HTCAP_SHORTGI40, ieee80211_htchanflags(), IEEE80211_HTINFO_2NDCHAN_ABOVE, IEEE80211_HTINFO_2NDCHAN_BELOW, IEEE80211_HTINFO_2NDCHAN_NONE, IEEE80211_IS_CHAN_HT40, IEEE80211_IS_CHAN_HT40D, IEEE80211_IS_CHAN_HT40U, IEEE80211_NODE_AMPDU, IEEE80211_NODE_AMSDU, IEEE80211_NODE_HT, IEEE80211_NODE_RIFS, ieee80211_txampdu_init_pps(), ieee80211vap::iv_flags_ht, ieee80211_node::ni_chan, ieee80211_node::ni_chw, ieee80211_node::ni_flags, ieee80211_node::ni_ht2ndchan, ieee80211_node::ni_htcap, ieee80211_node::ni_htctlchan, ieee80211_node::ni_htopmode, ieee80211_node::ni_htstbc, ieee80211_node::ni_ic, ieee80211_node::ni_tx_ampdu, ieee80211_node::ni_vap, ieee80211_tx_ampdu::txa_tid, and WME_NUM_TID.
Referenced by ieee80211_node_create_wds().
void ieee80211_htinfo_notify | ( | struct ieee80211vap * | vap | ) |
Definition at line 1517 of file ieee80211_ht.c.
References IEEE80211_BEACON_HTINFO, ieee80211_beacon_notify(), IEEE80211_FHT_NONHT_PR, IEEE80211_IS_CHAN_HT, IEEE80211_LOCK_ASSERT, IEEE80211_M_HOSTAP, IEEE80211_MSG_11N, IEEE80211_MSG_ASSOC, IEEE80211_NOTE, IEEE80211_S_RUN, ieee80211vap::iv_bss, ieee80211vap::iv_curhtprotmode, ieee80211vap::iv_flags_ht, ieee80211vap::iv_ht40_sta_assoc, ieee80211vap::iv_ht_sta_assoc, ieee80211vap::iv_ic, ieee80211vap::iv_opmode, ieee80211vap::iv_sta_assoc, ieee80211vap::iv_state, and ieee80211_node::ni_chan.
Referenced by vap_update_ht_protmode().
void ieee80211_htprot_update | ( | struct ieee80211vap * | vap, |
int | protmode | ||
) |
Definition at line 1623 of file ieee80211_ht.c.
References IEEE80211_FHT_NONHT_PR, IEEE80211_HTINFO_NONHT_PRESENT, IEEE80211_HTINFO_OPMODE_MIXED, IEEE80211_HTINFO_OPMODE_PROTOPT, IEEE80211_LOCK, IEEE80211_UNLOCK, ieee80211_vap_update_ht_protmode(), ieee80211vap::iv_curhtprotmode, ieee80211vap::iv_flags_ht, ieee80211vap::iv_ic, ieee80211vap::iv_lastnonht, and OPMODE.
Referenced by hostap_recv_mgmt().
void ieee80211_init_suphtrates | ( | struct ieee80211com * | ic | ) |
Definition at line 429 of file ieee80211_ht.c.
References ADDRATE, ieee80211com::ic_htcaps, ieee80211com::ic_sup_htrates, ieee80211com::ic_txstream, IEEE80211_HTC_TXMCS32, IEEE80211_HTC_TXUNEQUAL, and IEEE80211_HTCAP_CHWIDTH40.
Referenced by ieee80211_chan_init().
void ieee80211_parse_htcap | ( | struct ieee80211_node * | ni, |
const uint8_t * | ie | ||
) |
Definition at line 1673 of file ieee80211_ht.c.
References IEEE80211_ELEMID_VENDOR, IEEE80211_NODE_HTCOMPAT, ieee80211_node::ni_flags, ieee80211_node::ni_htcap, and ieee80211_node::ni_htparam.
Referenced by ieee80211_ht_updatehtcap(), ieee80211_ht_updateparams(), ieee80211_init_neighbor(), and ieee80211_sta_join().
void ieee80211_parse_htinfo | ( | struct ieee80211_node * | ni, |
const uint8_t * | ie | ||
) |
Definition at line 1712 of file ieee80211_ht.c.
References htinfo_parse(), and IEEE80211_ELEMID_VENDOR.
Referenced by ieee80211_init_neighbor(), and ieee80211_sta_join().
void ieee80211_recv_bar | ( | struct ieee80211_node * | ni, |
struct mbuf * | m0 | ||
) |
Definition at line 1228 of file ieee80211_ht.c.
References _IEEE80211_MASKSHIFT, ampdu_rx_flush_upto(), ieee80211_frame_bar::i_ctl, ieee80211_frame_bar::i_fc, ieee80211_frame_bar::i_seq, IEEE80211_AGGR_XCHGPEND, IEEE80211_BAR_TID, IEEE80211_DISCARD_MAC, IEEE80211_FC1_RETRY, IEEE80211_MSG_11N, IEEE80211_MSG_INPUT, IEEE80211_NODE_STAT, IEEE80211_NOTE, ieee80211_recv_bar_ena, IEEE80211_SEQ_ADD, IEEE80211_SEQ_BA_RANGE, IEEE80211_SEQ_SEQ_SHIFT, IEEE80211_SEQ_SUB, ieee80211_stats::is_ampdu_bar_bad, ieee80211_stats::is_ampdu_bar_move, ieee80211_stats::is_ampdu_bar_oow, ieee80211_stats::is_ampdu_bar_rx, ieee80211vap::iv_stats, ieee80211_node::ni_macaddr, ieee80211_node::ni_rx_ampdu, ieee80211_node::ni_vap, ieee80211_rx_ampdu::rxa_flags, ieee80211_rx_ampdu::rxa_qframes, ieee80211_rx_ampdu::rxa_start, and ieee80211_rx_ampdu::rxa_wnd.
Referenced by adhoc_recv_ctl(), hostap_recv_ctl(), mesh_recv_ctl(), and sta_recv_ctl().
int ieee80211_send_bar | ( | struct ieee80211_node * | ni, |
struct ieee80211_tx_ampdu * | tap, | ||
ieee80211_seq | seq | ||
) |
Definition at line 2915 of file ieee80211_ht.c.
References _IEEE80211_SHIFTMASK, bar_start_timer(), bar_stop_timer(), bar_tx_complete(), ieee80211_frame_bar::i_ctl, ieee80211_frame_bar::i_fc, ieee80211_frame_bar::i_ra, ieee80211_frame_bar::i_seq, ieee80211_frame_bar::i_ta, ieee80211com::ic_headroom, ieee80211_add_callback(), IEEE80211_ADDR_COPY, IEEE80211_AGGR_BARPEND, IEEE80211_AGGR_IMMEDIATE, IEEE80211_AGGR_RUNNING, IEEE80211_BAR_COMP, IEEE80211_BAR_NOACK, IEEE80211_BAR_SEQ_START, IEEE80211_BAR_TID, IEEE80211_FC0_SUBTYPE_BAR, IEEE80211_FC0_TYPE_CTL, IEEE80211_FC0_VERSION_0, ieee80211_free_node(), ieee80211_getmgtframe(), IEEE80211_MSG_11N, IEEE80211_MSG_DEBUG, IEEE80211_NODE_STAT, IEEE80211_NOTE, ieee80211_raw_output(), ieee80211_ref_node(), IEEE80211_TX_LOCK, IEEE80211_TX_UNLOCK, ieee80211_stats::is_ampdu_bar_tx_fail, ieee80211vap::iv_myaddr, ieee80211vap::iv_stats, M_WME_SETAC, ieee80211_node::ni_ic, ieee80211_node::ni_macaddr, ieee80211_node::ni_vap, senderr, ieee80211_tx_ampdu::txa_attempts, ieee80211_tx_ampdu::txa_flags, ieee80211_tx_ampdu::txa_ni, ieee80211_tx_ampdu::txa_seqpending, ieee80211_tx_ampdu::txa_tid, and WME_AC_VO.
Referenced by bar_timeout().
|
static |
Definition at line 3478 of file ieee80211_ht.c.
References IEEE80211_HTRATE_MAXSIZE, IEEE80211_RATE_BASIC, IEEE80211_RATE_VAL, ieee80211_htrateset::rs_nrates, and ieee80211_htrateset::rs_rates.
Referenced by ieee80211_add_htinfo_body().
|
static |
Definition at line 3182 of file ieee80211_ht.c.
References ieee80211com::ic_htcaps, ieee80211com::ic_rxstream, ieee80211com::ic_txstream, IEEE80211_HTC_RXMCS32, IEEE80211_HTC_RXUNEQUAL, IEEE80211_HTC_TXUNEQUAL, and IEEE80211_HTCAP_CHWIDTH40.
Referenced by ieee80211_add_htcap_body(), and ieee80211_add_htcap_body_ch().
void ieee80211_setup_basic_htrates | ( | struct ieee80211_node * | ni, |
const uint8_t * | ie | ||
) |
Definition at line 2160 of file ieee80211_ht.c.
References ieee80211_ie_htinfo::hi_basicmcsset, IEEE80211_ELEMID_VENDOR, IEEE80211_HTRATE_MAXSIZE, IEEE80211_MSG_11N, IEEE80211_MSG_XRATE, IEEE80211_NOTE, IEEE80211_RATE_BASIC, IEEE80211_RATE_VAL, ieee80211_node::ni_htrates, ieee80211_node::ni_vap, ieee80211_htrateset::rs_nrates, and ieee80211_htrateset::rs_rates.
Referenced by ieee80211_init_neighbor(), ieee80211_sta_join(), and sta_recv_mgmt().
int ieee80211_setup_htrates | ( | struct ieee80211_node * | ni, |
const uint8_t * | ie, | ||
int | flags | ||
) |
Definition at line 2106 of file ieee80211_ht.c.
References ieee80211_ie_htcap::hc_mcsset, ieee80211com::ic_htcaps, ieee80211com::ic_txstream, IEEE80211_ELEMID_VENDOR, ieee80211_fix_rate(), IEEE80211_HTC_TXMCS32, IEEE80211_HTC_TXUNEQUAL, IEEE80211_HTRATE_MAXSIZE, IEEE80211_MSG_11N, IEEE80211_MSG_XRATE, IEEE80211_NOTE, ieee80211_stats::is_rx_rstoobig, ieee80211vap::iv_stats, ieee80211_node::ni_htrates, ieee80211_node::ni_ic, ieee80211_node::ni_vap, ieee80211_htrateset::rs_nrates, and ieee80211_htrateset::rs_rates.
Referenced by hostap_recv_mgmt(), ieee80211_init_neighbor(), ieee80211_sta_join(), and sta_recv_mgmt().
|
static |
Definition at line 1933 of file ieee80211_ht.c.
References _IEEE80211_MASKSHIFT, IEEE80211_CHAN_HT20, IEEE80211_CHAN_HT40D, IEEE80211_CHAN_HT40U, IEEE80211_CHAN_VHT160, IEEE80211_CHAN_VHT20, IEEE80211_CHAN_VHT40D, IEEE80211_CHAN_VHT40U, IEEE80211_CHAN_VHT80, IEEE80211_CHAN_VHT80P80, IEEE80211_FVHT_USEVHT160, IEEE80211_FVHT_USEVHT40, IEEE80211_FVHT_USEVHT80, IEEE80211_FVHT_USEVHT80P80, IEEE80211_FVHT_VHT, IEEE80211_NODE_VHT, IEEE80211_VHT_CHANWIDTH_160MHZ, IEEE80211_VHT_CHANWIDTH_80MHZ, IEEE80211_VHT_CHANWIDTH_80P80MHZ, IEEE80211_VHT_CHANWIDTH_USE_HT, IEEE80211_VHTCAP_SUPP_CHAN_WIDTH_MASK, ieee80211vap::iv_flags_vht, ieee80211vap::iv_vhtcaps, ieee80211_node::ni_flags, ieee80211_node::ni_vap, and ieee80211_node::ni_vht_chanwidth.
Referenced by ieee80211_ht_updatehtcap_final(), and ieee80211_ht_updateparams_final().
|
static |
Definition at line 2267 of file ieee80211_ht.c.
Referenced by ieee80211_ht_attach().
SYSCTL_INT | ( | _net_wlan | , |
OID_AUTO | , | ||
addba_maxtries | , | ||
CTLFLAG_RW | , | ||
& | ieee80211_addba_maxtries, | ||
0 | , | ||
"max ADDBA requests sent before backoff" | |||
) |
SYSCTL_INT | ( | _net_wlan | , |
OID_AUTO | , | ||
recv_bar | , | ||
CTLFLAG_RW | , | ||
& | ieee80211_recv_bar_ena, | ||
0 | , | ||
"BAR frame processing (ena/dis)" | |||
) |
SYSCTL_PROC | ( | _net_wlan | , |
OID_AUTO | , | ||
addba_backoff | , | ||
CTLTYPE_INT|CTLFLAG_RW| | CTLFLAG_NEEDGIANT, | ||
& | ieee80211_addba_backoff, | ||
0 | , | ||
ieee80211_sysctl_msecs_ticks | , | ||
"I" | , | ||
"ADDBA request backoff (ms)" | |||
) |
SYSCTL_PROC | ( | _net_wlan | , |
OID_AUTO | , | ||
addba_timeout | , | ||
CTLTYPE_INT|CTLFLAG_RW| | CTLFLAG_NEEDGIANT, | ||
& | ieee80211_addba_timeout, | ||
0 | , | ||
ieee80211_sysctl_msecs_ticks | , | ||
"I" | , | ||
"ADDBA request timeout (ms)" | |||
) |
SYSCTL_PROC | ( | _net_wlan | , |
OID_AUTO | , | ||
ampdu_age | , | ||
CTLTYPE_INT|CTLFLAG_RW| | CTLFLAG_NEEDGIANT, | ||
& | ieee80211_ampdu_age, | ||
0 | , | ||
ieee80211_sysctl_msecs_ticks | , | ||
"I" | , | ||
"AMPDU max reorder age (ms)" | |||
) |
SYSINIT | ( | wlan_ht | , |
SI_SUB_DRIVERS | , | ||
SI_ORDER_FIRST | , | ||
ieee80211_ht_init | , | ||
NULL | |||
) |
|
static |
Definition at line 164 of file ieee80211_ht.c.
Referenced by ieee80211_ht_init().
|
static |
Definition at line 165 of file ieee80211_ht.c.
Referenced by ieee80211_ht_init().
|
static |
Definition at line 166 of file ieee80211_ht.c.
Referenced by ieee80211_ht_init().
|
static |
Definition at line 167 of file ieee80211_ht.c.
Referenced by ieee80211_ht_init().
|
static |
Definition at line 168 of file ieee80211_ht.c.
Referenced by ieee80211_ht_init().
|
static |
Definition at line 170 of file ieee80211_ht.c.
Referenced by ieee80211_ht_init().
|
static |
Definition at line 171 of file ieee80211_ht.c.
Referenced by ieee80211_ht_init().
|
static |
Definition at line 172 of file ieee80211_ht.c.
Referenced by ieee80211_ht_init().
|
static |
Definition at line 152 of file ieee80211_ht.c.
Referenced by ieee80211_ampdu_request(), and ieee80211_ht_init().
|
static |
Definition at line 157 of file ieee80211_ht.c.
Referenced by ieee80211_ampdu_enable(), and ieee80211_ampdu_request().
|
static |
Definition at line 147 of file ieee80211_ht.c.
Referenced by addba_start_timeout(), and ieee80211_ht_init().
|
static |
Definition at line 137 of file ieee80211_ht.c.
Referenced by ieee80211_ampdu_reorder(), ieee80211_ht_init(), and ieee80211_ht_node_age().
|
static |
Definition at line 162 of file ieee80211_ht.c.
Referenced by bar_timeout().
|
static |
Definition at line 161 of file ieee80211_ht.c.
Referenced by bar_start_timer(), and ieee80211_ht_init().
const struct ieee80211_mcs_rates ieee80211_htrates[IEEE80211_HTRATE_MAXSIZE] |
Definition at line 57 of file ieee80211_ht.c.
Referenced by get_sta_info(), ht_getrate(), ieee80211_media_setup(), and maxrate().
|
static |
Definition at line 143 of file ieee80211_ht.c.
Referenced by ieee80211_recv_bar().
|
static |
Referenced by ht_rateprint().