FreeBSD kernel WLAN code
|
Go to the source code of this file.
Data Structures | |
struct | ieee80211_ies |
struct | ieee80211_node |
struct | ieee80211_node_table |
Macros | |
#define | IEEE80211_INACT_WAIT 15 /* inactivity interval (secs) */ |
#define | IEEE80211_INACT_INIT (30/IEEE80211_INACT_WAIT) /* initial */ |
#define | IEEE80211_INACT_AUTH (180/IEEE80211_INACT_WAIT) /* associated but not authorized */ |
#define | IEEE80211_INACT_RUN (300/IEEE80211_INACT_WAIT) /* authorized */ |
#define | IEEE80211_INACT_PROBE (30/IEEE80211_INACT_WAIT) /* probe */ |
#define | IEEE80211_INACT_SCAN (300/IEEE80211_INACT_WAIT) /* scanned */ |
#define | IEEE80211_TRANS_WAIT 2 /* mgt frame tx timer (secs) */ |
#define | IEEE80211_NONERP_PRESENT_AGE msecs_to_ticks(60*1000) |
#define | IEEE80211_NODE_HASHSIZE 32 /* NB: hash size must be pow2 */ |
#define | IEEE80211_NODE_HASH(ic, addr) |
#define | IEEE80211_MESH_MLSTATE_BITS "\20\1IDLE\2OPENSNT\2OPENRCV\3CONFIRMRCV\4ESTABLISHED\5HOLDING" |
#define | IEEE80211_NODE_AUTH 0x000001 /* authorized for data */ |
#define | IEEE80211_NODE_QOS 0x000002 /* QoS enabled */ |
#define | IEEE80211_NODE_ERP 0x000004 /* ERP enabled */ |
#define | IEEE80211_NODE_PWR_MGT 0x000010 /* power save mode enabled */ |
#define | IEEE80211_NODE_AREF 0x000020 /* authentication ref held */ |
#define | IEEE80211_NODE_HT 0x000040 /* HT enabled */ |
#define | IEEE80211_NODE_HTCOMPAT 0x000080 /* HT setup w/ vendor OUI's */ |
#define | IEEE80211_NODE_WPS 0x000100 /* WPS association */ |
#define | IEEE80211_NODE_TSN 0x000200 /* TSN association */ |
#define | IEEE80211_NODE_AMPDU_RX 0x000400 /* AMPDU rx enabled */ |
#define | IEEE80211_NODE_AMPDU_TX 0x000800 /* AMPDU tx enabled */ |
#define | IEEE80211_NODE_MIMO_PS 0x001000 /* MIMO power save enabled */ |
#define | IEEE80211_NODE_MIMO_RTS 0x002000 /* send RTS in MIMO PS */ |
#define | IEEE80211_NODE_RIFS 0x004000 /* RIFS enabled */ |
#define | IEEE80211_NODE_SGI20 0x008000 /* Short GI in HT20 enabled */ |
#define | IEEE80211_NODE_SGI40 0x010000 /* Short GI in HT40 enabled */ |
#define | IEEE80211_NODE_ASSOCID 0x020000 /* xmit requires associd */ |
#define | IEEE80211_NODE_AMSDU_RX 0x040000 /* AMSDU rx enabled */ |
#define | IEEE80211_NODE_AMSDU_TX 0x080000 /* AMSDU tx enabled */ |
#define | IEEE80211_NODE_VHT 0x100000 /* VHT enabled */ |
#define | IEEE80211_NODE_LDPC 0x200000 /* LDPC enabled */ |
#define | IEEE80211_NODE_UAPSD 0x400000 /* U-APSD power save enabled */ |
#define | IEEE80211_NODE_TURBOP 0x0001 /* Turbo prime enable */ |
#define | IEEE80211_NODE_COMP 0x0002 /* Compresssion enable */ |
#define | IEEE80211_NODE_FF 0x0004 /* Fast Frame capable */ |
#define | IEEE80211_NODE_XR 0x0008 /* Atheros WME enable */ |
#define | IEEE80211_NODE_AR 0x0010 /* AR capable */ |
#define | IEEE80211_NODE_BOOST 0x0080 /* Dynamic Turbo boosted */ |
#define | IEEE80211_NODE_ATH (IEEE80211_NODE_FF | IEEE80211_NODE_TURBOP) |
#define | IEEE80211_NODE_AMPDU (IEEE80211_NODE_AMPDU_RX | IEEE80211_NODE_AMPDU_TX) |
#define | IEEE80211_NODE_AMSDU (IEEE80211_NODE_AMSDU_RX | IEEE80211_NODE_AMSDU_TX) |
#define | IEEE80211_NODE_HT_ALL |
#define | IEEE80211_NODE_BITS |
#define | IEEE80211_NODE_AID(ni) IEEE80211_AID(ni->ni_associd) |
#define | IEEE80211_NODE_STAT(ni, stat) (ni->ni_stats.ns_##stat++) |
#define | IEEE80211_NODE_STAT_ADD(ni, stat, v) (ni->ni_stats.ns_##stat += v) |
#define | IEEE80211_NODE_STAT_SET(ni, stat, v) (ni->ni_stats.ns_##stat = v) |
#define | IEEE80211_RSSI_LPF_LEN 10 |
#define | IEEE80211_RSSI_DUMMY_MARKER 127 |
#define | IEEE80211_RSSI_EP_MULTIPLIER (1<<7) |
#define | IEEE80211_RSSI_IN(x) ((x) * IEEE80211_RSSI_EP_MULTIPLIER) |
#define | _IEEE80211_RSSI_LPF(x, y, len) (((x) != IEEE80211_RSSI_DUMMY_MARKER) ? (((x) * ((len) - 1) + (y)) / (len)) : (y)) |
#define | IEEE80211_RSSI_LPF(x, y) |
#define | IEEE80211_RSSI_EP_RND(x, mul) ((((x) % (mul)) >= ((mul)/2)) ? ((x) + ((mul) - 1)) / (mul) : (x)/(mul)) |
#define | IEEE80211_RSSI_GET(x) IEEE80211_RSSI_EP_RND(x, IEEE80211_RSSI_EP_MULTIPLIER) |
#define | ieee80211_ies_setie(_ies, _ie, _off) |
Typedefs | |
typedef void | ieee80211_iter_func(void *, struct ieee80211_node *) |
Enumerations | |
enum | ieee80211_mesh_mlstate { IEEE80211_NODE_MESH_IDLE = 0 , IEEE80211_NODE_MESH_OPENSNT = 1 , IEEE80211_NODE_MESH_OPENRCV = 2 , IEEE80211_NODE_MESH_CONFIRMRCV = 3 , IEEE80211_NODE_MESH_ESTABLISHED = 4 , IEEE80211_NODE_MESH_HOLDING = 5 } |
#define _IEEE80211_RSSI_LPF | ( | x, | |
y, | |||
len | |||
) | (((x) != IEEE80211_RSSI_DUMMY_MARKER) ? (((x) * ((len) - 1) + (y)) / (len)) : (y)) |
Definition at line 311 of file ieee80211_node.h.
#define ieee80211_ies_setie | ( | _ies, | |
_ie, | |||
_off | |||
) |
Definition at line 377 of file ieee80211_node.h.
#define IEEE80211_INACT_AUTH (180/IEEE80211_INACT_WAIT) /* associated but not authorized */ |
Definition at line 51 of file ieee80211_node.h.
#define IEEE80211_INACT_INIT (30/IEEE80211_INACT_WAIT) /* initial */ |
Definition at line 50 of file ieee80211_node.h.
#define IEEE80211_INACT_PROBE (30/IEEE80211_INACT_WAIT) /* probe */ |
Definition at line 53 of file ieee80211_node.h.
#define IEEE80211_INACT_RUN (300/IEEE80211_INACT_WAIT) /* authorized */ |
Definition at line 52 of file ieee80211_node.h.
#define IEEE80211_INACT_SCAN (300/IEEE80211_INACT_WAIT) /* scanned */ |
Definition at line 54 of file ieee80211_node.h.
#define IEEE80211_INACT_WAIT 15 /* inactivity interval (secs) */ |
Definition at line 49 of file ieee80211_node.h.
#define IEEE80211_MESH_MLSTATE_BITS "\20\1IDLE\2OPENSNT\2OPENRCV\3CONFIRMRCV\4ESTABLISHED\5HOLDING" |
Definition at line 110 of file ieee80211_node.h.
#define IEEE80211_NODE_AID | ( | ni | ) | IEEE80211_AID(ni->ni_associd) |
Definition at line 286 of file ieee80211_node.h.
#define IEEE80211_NODE_AMPDU (IEEE80211_NODE_AMPDU_RX | IEEE80211_NODE_AMPDU_TX) |
Definition at line 271 of file ieee80211_node.h.
#define IEEE80211_NODE_AMPDU_RX 0x000400 /* AMPDU rx enabled */ |
Definition at line 137 of file ieee80211_node.h.
#define IEEE80211_NODE_AMPDU_TX 0x000800 /* AMPDU tx enabled */ |
Definition at line 138 of file ieee80211_node.h.
#define IEEE80211_NODE_AMSDU (IEEE80211_NODE_AMSDU_RX | IEEE80211_NODE_AMSDU_TX) |
Definition at line 273 of file ieee80211_node.h.
#define IEEE80211_NODE_AMSDU_RX 0x040000 /* AMSDU rx enabled */ |
Definition at line 145 of file ieee80211_node.h.
#define IEEE80211_NODE_AMSDU_TX 0x080000 /* AMSDU tx enabled */ |
Definition at line 146 of file ieee80211_node.h.
#define IEEE80211_NODE_AR 0x0010 /* AR capable */ |
Definition at line 160 of file ieee80211_node.h.
#define IEEE80211_NODE_AREF 0x000020 /* authentication ref held */ |
Definition at line 132 of file ieee80211_node.h.
#define IEEE80211_NODE_ASSOCID 0x020000 /* xmit requires associd */ |
Definition at line 144 of file ieee80211_node.h.
#define IEEE80211_NODE_ATH (IEEE80211_NODE_FF | IEEE80211_NODE_TURBOP) |
Definition at line 270 of file ieee80211_node.h.
#define IEEE80211_NODE_AUTH 0x000001 /* authorized for data */ |
Definition at line 127 of file ieee80211_node.h.
#define IEEE80211_NODE_BITS |
Definition at line 281 of file ieee80211_node.h.
#define IEEE80211_NODE_BOOST 0x0080 /* Dynamic Turbo boosted */ |
Definition at line 161 of file ieee80211_node.h.
#define IEEE80211_NODE_COMP 0x0002 /* Compresssion enable */ |
Definition at line 157 of file ieee80211_node.h.
#define IEEE80211_NODE_ERP 0x000004 /* ERP enabled */ |
Definition at line 129 of file ieee80211_node.h.
#define IEEE80211_NODE_FF 0x0004 /* Fast Frame capable */ |
Definition at line 158 of file ieee80211_node.h.
#define IEEE80211_NODE_HASH | ( | ic, | |
addr | |||
) |
Definition at line 63 of file ieee80211_node.h.
#define IEEE80211_NODE_HASHSIZE 32 /* NB: hash size must be pow2 */ |
Definition at line 61 of file ieee80211_node.h.
#define IEEE80211_NODE_HT 0x000040 /* HT enabled */ |
Definition at line 133 of file ieee80211_node.h.
#define IEEE80211_NODE_HT_ALL |
Definition at line 275 of file ieee80211_node.h.
#define IEEE80211_NODE_HTCOMPAT 0x000080 /* HT setup w/ vendor OUI's */ |
Definition at line 134 of file ieee80211_node.h.
#define IEEE80211_NODE_LDPC 0x200000 /* LDPC enabled */ |
Definition at line 148 of file ieee80211_node.h.
#define IEEE80211_NODE_MIMO_PS 0x001000 /* MIMO power save enabled */ |
Definition at line 139 of file ieee80211_node.h.
#define IEEE80211_NODE_MIMO_RTS 0x002000 /* send RTS in MIMO PS */ |
Definition at line 140 of file ieee80211_node.h.
#define IEEE80211_NODE_PWR_MGT 0x000010 /* power save mode enabled */ |
Definition at line 131 of file ieee80211_node.h.
#define IEEE80211_NODE_QOS 0x000002 /* QoS enabled */ |
Definition at line 128 of file ieee80211_node.h.
#define IEEE80211_NODE_RIFS 0x004000 /* RIFS enabled */ |
Definition at line 141 of file ieee80211_node.h.
#define IEEE80211_NODE_SGI20 0x008000 /* Short GI in HT20 enabled */ |
Definition at line 142 of file ieee80211_node.h.
#define IEEE80211_NODE_SGI40 0x010000 /* Short GI in HT40 enabled */ |
Definition at line 143 of file ieee80211_node.h.
#define IEEE80211_NODE_STAT | ( | ni, | |
stat | |||
) | (ni->ni_stats.ns_##stat++) |
Definition at line 288 of file ieee80211_node.h.
#define IEEE80211_NODE_STAT_ADD | ( | ni, | |
stat, | |||
v | |||
) | (ni->ni_stats.ns_##stat += v) |
Definition at line 289 of file ieee80211_node.h.
#define IEEE80211_NODE_STAT_SET | ( | ni, | |
stat, | |||
v | |||
) | (ni->ni_stats.ns_##stat = v) |
Definition at line 290 of file ieee80211_node.h.
#define IEEE80211_NODE_TSN 0x000200 /* TSN association */ |
Definition at line 136 of file ieee80211_node.h.
#define IEEE80211_NODE_TURBOP 0x0001 /* Turbo prime enable */ |
Definition at line 156 of file ieee80211_node.h.
#define IEEE80211_NODE_UAPSD 0x400000 /* U-APSD power save enabled */ |
Definition at line 149 of file ieee80211_node.h.
#define IEEE80211_NODE_VHT 0x100000 /* VHT enabled */ |
Definition at line 147 of file ieee80211_node.h.
#define IEEE80211_NODE_WPS 0x000100 /* WPS association */ |
Definition at line 135 of file ieee80211_node.h.
#define IEEE80211_NODE_XR 0x0008 /* Atheros WME enable */ |
Definition at line 159 of file ieee80211_node.h.
#define IEEE80211_NONERP_PRESENT_AGE msecs_to_ticks(60*1000) |
Definition at line 59 of file ieee80211_node.h.
#define IEEE80211_RSSI_DUMMY_MARKER 127 |
Definition at line 307 of file ieee80211_node.h.
#define IEEE80211_RSSI_EP_MULTIPLIER (1<<7) |
Definition at line 309 of file ieee80211_node.h.
#define IEEE80211_RSSI_EP_RND | ( | x, | |
mul | |||
) | ((((x) % (mul)) >= ((mul)/2)) ? ((x) + ((mul) - 1)) / (mul) : (x)/(mul)) |
Definition at line 319 of file ieee80211_node.h.
#define IEEE80211_RSSI_GET | ( | x | ) | IEEE80211_RSSI_EP_RND(x, IEEE80211_RSSI_EP_MULTIPLIER) |
Definition at line 321 of file ieee80211_node.h.
#define IEEE80211_RSSI_IN | ( | x | ) | ((x) * IEEE80211_RSSI_EP_MULTIPLIER) |
Definition at line 310 of file ieee80211_node.h.
#define IEEE80211_RSSI_LPF | ( | x, | |
y | |||
) |
Definition at line 313 of file ieee80211_node.h.
#define IEEE80211_RSSI_LPF_LEN 10 |
Definition at line 306 of file ieee80211_node.h.
#define IEEE80211_TRANS_WAIT 2 /* mgt frame tx timer (secs) */ |
Definition at line 56 of file ieee80211_node.h.
typedef void ieee80211_iter_func(void *, struct ieee80211_node *) |
Definition at line 478 of file ieee80211_node.h.
Enumerator | |
---|---|
IEEE80211_NODE_MESH_IDLE | |
IEEE80211_NODE_MESH_OPENSNT | |
IEEE80211_NODE_MESH_OPENRCV | |
IEEE80211_NODE_MESH_CONFIRMRCV | |
IEEE80211_NODE_MESH_ESTABLISHED | |
IEEE80211_NODE_MESH_HOLDING |
Definition at line 102 of file ieee80211_node.h.
struct ieee80211_node * ieee80211_add_neighbor | ( | struct ieee80211vap * | vap, |
const struct ieee80211_frame * | wh, | ||
const struct ieee80211_scanparams * | sp | ||
) |
Definition at line 1894 of file ieee80211_node.c.
References ieee80211_frame::i_addr2, ieee80211com::ic_newassoc, IEEE80211_DPRINTF, ieee80211_dup_bss(), ieee80211_init_neighbor(), ieee80211_iserp_rateset(), IEEE80211_MSG_ASSOC, ieee80211_node_authorize(), IEEE80211_NODE_ERP, ieee80211_node_setuptxparms(), ieee80211_ratectl_node_init(), ieee80211vap::iv_ic, ieee80211_node::ni_flags, and ieee80211_node::ni_rates.
Referenced by adhoc_recv_mgmt(), and mesh_recv_mgmt().
struct ieee80211_node * ieee80211_alloc_node | ( | struct ieee80211_node_table * | nt, |
struct ieee80211vap * | vap, | ||
const uint8_t | macaddr[IEEE80211_ADDR_LEN] | ||
) |
Definition at line 1388 of file ieee80211_node.c.
References _ieee80211_free_node(), ieee80211com::ic_curchan, ieee80211com::ic_node_alloc, ieee80211com::ic_node_init, ieee80211com::ic_txpowlimit, ieee80211_add_node_nt(), IEEE80211_ADDR_COPY, IEEE80211_AUTH_OPEN, ieee80211_chan2mode(), IEEE80211_CHAN_ANYC, ieee80211_crypto_resetkey(), IEEE80211_DPRINTF, IEEE80211_KEYIX_NONE, IEEE80211_M_MBSS, ieee80211_mesh_node_init(), IEEE80211_MSG_INACT, IEEE80211_MSG_NODE, ieee80211_node_initref, IEEE80211_NODE_LOCK, IEEE80211_NODE_UNLOCK, IEEE80211_NOTE, ieee80211_psq_cleanup(), ieee80211_psq_init(), ieee80211_ratectl_node_deinit(), IEEE80211_RSSI_DUMMY_MARKER, ieee80211_stats::is_rx_nodealloc, ieee80211vap::iv_opmode, ieee80211vap::iv_stats, ieee80211vap::iv_txparms, ieee80211_node::ni_ath_defkeyix, ieee80211_node::ni_authmode, ieee80211_node::ni_avgrssi, ieee80211_node::ni_chan, ieee80211_node::ni_ic, ieee80211_node::ni_inact, ieee80211_node::ni_inact_reload, ieee80211_node::ni_macaddr, ieee80211_node::ni_psq, ieee80211_node::ni_txparms, ieee80211_node::ni_txpower, ieee80211_node::ni_ucastkey, ieee80211_node::ni_vap, ieee80211_node_table::nt_ic, ieee80211_node_table::nt_inact_init, and ieee80211_node_table::nt_name.
Referenced by ieee80211_create_ibss(), ieee80211_dup_bss(), ieee80211_node_create_wds(), ieee80211_reset_bss(), and ieee80211_sta_join().
void ieee80211_create_ibss | ( | struct ieee80211vap * | vap, |
struct ieee80211_channel * | chan | ||
) |
Definition at line 332 of file ieee80211_node.c.
References copy_bss(), ieee80211com::ic_bintval, ieee80211com::ic_bsschan, ieee80211com::ic_curmode, ieee80211_channel::ic_flags, ieee80211_channel::ic_freq, ieee80211com::ic_phytype, ieee80211com::ic_sta, ieee80211_addbasicrates(), IEEE80211_ADDR_COPY, IEEE80211_ADDR_LEN, ieee80211_alloc_node(), IEEE80211_C_TDMA, IEEE80211_CAPINFO_IBSS, IEEE80211_CAPINFO_PRIVACY, ieee80211_chan2ieee(), ieee80211_chan2mode(), IEEE80211_CHAN_ANYC, ieee80211_channel_type_char(), ieee80211_dfs_cac_clear(), IEEE80211_DPRINTF, IEEE80211_F_DESBSSID, IEEE80211_F_PRIVACY, IEEE80211_F_PUREG, ieee80211_ht_node_init(), IEEE80211_IS_CHAN_ANYG, IEEE80211_IS_CHAN_B, IEEE80211_IS_CHAN_CACDONE, IEEE80211_IS_CHAN_FULL, IEEE80211_IS_CHAN_HT, IEEE80211_IS_CHAN_VHT, IEEE80211_M_AHDEMO, IEEE80211_M_IBSS, IEEE80211_M_MBSS, IEEE80211_MODE_11A, IEEE80211_MODE_11B, IEEE80211_MODE_11G, IEEE80211_MSG_SCAN, ieee80211_node_set_chan(), ieee80211_opmode_name, ieee80211_ref_node(), ieee80211_setbasicrates(), ieee80211_sta_join1(), IEEE80211_T_FH, ieee80211_vht_node_init(), ieee80211vap::iv_bss, ieee80211vap::iv_caps, ieee80211vap::iv_des_bssid, ieee80211vap::iv_des_ssid, ieee80211vap::iv_flags, ieee80211vap::iv_ic, ieee80211vap::iv_mesh, ieee80211vap::iv_myaddr, ieee80211vap::iv_opmode, ieee80211_scan_ssid::len, ieee80211_mesh_state::ms_id, ieee80211_mesh_state::ms_idlen, net80211_get_random_bytes(), ieee80211_node::ni_bssid, ieee80211_node::ni_capinfo, ieee80211_node::ni_chan, ieee80211_node::ni_essid, ieee80211_node::ni_esslen, ieee80211_node::ni_fhdwell, ieee80211_node::ni_fhindex, ieee80211_node::ni_intval, ieee80211_node::ni_meshid, ieee80211_node::ni_meshidlen, ieee80211_node::ni_rates, and ieee80211_scan_ssid::ssid.
Referenced by adhoc_newstate(), adhoc_pick_bss(), ap_end(), hostap_newstate(), mesh_newstate(), and monitor_newstate().
void ieee80211_dump_node | ( | struct ieee80211_node_table * | , |
struct ieee80211_node * | |||
) |
void ieee80211_dump_nodes | ( | struct ieee80211_node_table * | nt | ) |
Definition at line 2657 of file ieee80211_node.c.
References ieee80211_dump_node(), and ieee80211_iterate_nodes().
struct ieee80211_node * ieee80211_dup_bss | ( | struct ieee80211vap * | vap, |
const uint8_t | macaddr[IEEE80211_ADDR_LEN] | ||
) |
Definition at line 1495 of file ieee80211_node.c.
References copy_bss(), ieee80211com::ic_sta, IEEE80211_ADDR_COPY, ieee80211_alloc_node(), ieee80211_node_set_chan(), ieee80211vap::iv_bss, ieee80211vap::iv_ic, ieee80211_node::ni_bssid, and ieee80211_node::ni_chan.
Referenced by hostap_auth_open(), hostap_auth_shared(), ieee80211_add_neighbor(), and ieee80211_fakeup_adhoc_node().
struct ieee80211_node * ieee80211_fakeup_adhoc_node | ( | struct ieee80211vap * | vap, |
const uint8_t | macaddr[IEEE80211_ADDR_LEN] | ||
) |
Definition at line 1688 of file ieee80211_node.c.
References ieee80211com::ic_newassoc, IEEE80211_DPRINTF, ieee80211_dup_bss(), IEEE80211_F_FF, IEEE80211_F_WME, ieee80211_iserp_rateset(), IEEE80211_M_AHDEMO, IEEE80211_M_IBSS, IEEE80211_MSG_ASSOC, IEEE80211_MSG_NODE, ieee80211_node_authorize(), IEEE80211_NODE_ERP, IEEE80211_NODE_FF, IEEE80211_NODE_QOS, ieee80211_node_setuptxparms(), ieee80211_ratectl_node_init(), ieee80211_send_probereq(), ieee80211vap::iv_bss, ieee80211vap::iv_flags, ieee80211vap::iv_ic, ieee80211vap::iv_myaddr, ieee80211vap::iv_opmode, ieee80211_node::ni_bssid, ieee80211_node::ni_essid, ieee80211_node::ni_esslen, ieee80211_node::ni_flags, ieee80211_node::ni_macaddr, and ieee80211_node::ni_rates.
Referenced by adhoc_input(), and ieee80211_find_txnode().
struct ieee80211_node * ieee80211_find_node | ( | struct ieee80211_node_table * | nt, |
const uint8_t | macaddr[IEEE80211_ADDR_LEN] | ||
) |
Definition at line 1616 of file ieee80211_node.c.
References ieee80211_find_node_locked(), IEEE80211_NODE_LOCK, and IEEE80211_NODE_UNLOCK.
struct ieee80211_node * ieee80211_find_node_locked | ( | struct ieee80211_node_table * | nt, |
const uint8_t | macaddr[IEEE80211_ADDR_LEN] | ||
) |
Definition at line 1585 of file ieee80211_node.c.
References IEEE80211_ADDR_EQ, IEEE80211_DPRINTF, IEEE80211_MSG_NODE, IEEE80211_NODE_HASH, IEEE80211_NODE_LOCK_ASSERT, ieee80211_node_refcnt, ieee80211_ref_node(), ieee80211_node::ni_macaddr, ieee80211_node::ni_vap, and ieee80211_node_table::nt_ic.
Referenced by _find_rxnode(), ieee80211_create_wds(), ieee80211_find_node(), ieee80211_find_txnode(), setmlme_common(), and setmlme_dropsta().
struct ieee80211_node * ieee80211_find_rxnode | ( | struct ieee80211com * | ic, |
const struct ieee80211_frame_min * | wh | ||
) |
Definition at line 1945 of file ieee80211_node.c.
References _find_rxnode(), ieee80211com::ic_sta, IEEE80211_NODE_LOCK, and IEEE80211_NODE_UNLOCK.
struct ieee80211_node * ieee80211_find_rxnode_withkey | ( | struct ieee80211com * | ic, |
const struct ieee80211_frame_min * | wh, | ||
uint16_t | keyix | ||
) |
Definition at line 1974 of file ieee80211_node.c.
References _find_rxnode(), ieee80211com::ic_sta, IEEE80211_DPRINTF, IEEE80211_MSG_NODE, IEEE80211_NODE_LOCK, ieee80211_node_refcnt, IEEE80211_NODE_UNLOCK, ieee80211_ref_node(), IS_BCAST_PROBEREQ, ieee80211_node::ni_macaddr, ieee80211_node::ni_ucastkey, ieee80211_node::ni_vap, ieee80211_node_table::nt_keyixmap, and ieee80211_key::wk_rxkeyix.
struct ieee80211_node * ieee80211_find_txnode | ( | struct ieee80211vap * | vap, |
const uint8_t | macaddr[IEEE80211_ADDR_LEN] | ||
) |
Definition at line 2029 of file ieee80211_node.c.
References ieee80211com::ic_sta, ieee80211_fakeup_adhoc_node(), ieee80211_find_node_locked(), IEEE80211_IS_MULTICAST, IEEE80211_M_AHDEMO, IEEE80211_M_IBSS, IEEE80211_M_STA, IEEE80211_M_WDS, IEEE80211_MSG_OUTPUT, IEEE80211_NODE_LOCK, IEEE80211_NODE_UNLOCK, IEEE80211_NOTE_MAC, ieee80211_ref_node(), ieee80211_stats::is_tx_nonode, ieee80211vap::iv_bss, ieee80211vap::iv_ic, ieee80211vap::iv_opmode, and ieee80211vap::iv_stats.
Referenced by hwmp_discover(), ieee80211_dwds_mcast(), ieee80211_mesh_find_txnode(), ieee80211_output(), and ieee80211_start_pkt().
struct ieee80211_node * ieee80211_find_vap_node | ( | struct ieee80211_node_table * | nt, |
const struct ieee80211vap * | vap, | ||
const uint8_t | macaddr[IEEE80211_ADDR_LEN] | ||
) |
Definition at line 1668 of file ieee80211_node.c.
References ieee80211_find_vap_node_locked(), IEEE80211_NODE_LOCK, and IEEE80211_NODE_UNLOCK.
Referenced by hostap_deliver_data(), ieee80211_ioctl_delkey(), ieee80211_ioctl_getkey(), ieee80211_ioctl_getstainfo(), ieee80211_ioctl_getstastats(), ieee80211_ioctl_getstatxpow(), ieee80211_ioctl_getstavlan(), ieee80211_ioctl_getwpaie(), ieee80211_ioctl_setkey(), ieee80211_ioctl_setstastats(), ieee80211_ioctl_setstatxpow(), and ieee80211_ioctl_setstavlan().
struct ieee80211_node * ieee80211_find_vap_node_locked | ( | struct ieee80211_node_table * | nt, |
const struct ieee80211vap * | vap, | ||
const uint8_t | macaddr[IEEE80211_ADDR_LEN] | ||
) |
Definition at line 1634 of file ieee80211_node.c.
References IEEE80211_ADDR_EQ, IEEE80211_DPRINTF, IEEE80211_MSG_NODE, IEEE80211_NODE_HASH, IEEE80211_NODE_LOCK_ASSERT, ieee80211_node_refcnt, ieee80211_ref_node(), ieee80211_node::ni_macaddr, ieee80211_node::ni_vap, and ieee80211_node_table::nt_ic.
Referenced by ieee80211_find_vap_node(), and setmlme_common().
void ieee80211_free_node | ( | struct ieee80211_node * | ni | ) |
Definition at line 2130 of file ieee80211_node.c.
References _ieee80211_free_node(), IEEE80211_DPRINTF, IEEE80211_MSG_NODE, ieee80211_node_dectestref(), IEEE80211_NODE_LOCK, ieee80211_node_refcnt, IEEE80211_NODE_UNLOCK, ieee80211_node::ni_macaddr, ieee80211_node::ni_table, ieee80211_node::ni_vap, and node_clear_keyixmap().
Referenced by ageq_mfree(), getstainfo_common(), hostap_deliver_data(), ht_send_action_ba_addba(), ht_send_action_ba_delba(), ht_send_action_ht_txchwidth(), hwmp_send_action(), ieee80211_create_wds(), ieee80211_drain_ifq(), ieee80211_dwds_mcast(), ieee80211_flush_ifq(), ieee80211_ht_update_beacon(), ieee80211_input_mimo_all(), ieee80211_ioctl_delkey(), ieee80211_ioctl_getkey(), ieee80211_ioctl_getstastats(), ieee80211_ioctl_getstatxpow(), ieee80211_ioctl_getstavlan(), ieee80211_ioctl_getwpaie(), ieee80211_ioctl_setkey(), ieee80211_ioctl_setstastats(), ieee80211_ioctl_setstatxpow(), ieee80211_ioctl_setstavlan(), ieee80211_iterate_nodes_vap(), ieee80211_mgmt_output(), ieee80211_node_deauth(), ieee80211_node_delucastkey(), ieee80211_node_leave(), ieee80211_node_vdetach(), ieee80211_output(), ieee80211_parent_xmitpkt(), ieee80211_raw_output(), ieee80211_reset_bss(), ieee80211_send_bar(), ieee80211_send_error(), ieee80211_send_mgmt(), ieee80211_send_nulldata(), ieee80211_send_probereq(), ieee80211_send_proberesp(), ieee80211_start_pkt(), ieee80211_tx_complete(), ieee80211_vap_pkt_send_dest(), mesh_send_action(), mesh_send_action_meshgate(), mesh_send_action_meshlmetric(), mesh_send_action_meshpeering_close(), mesh_send_action_meshpeering_confirm(), mesh_send_action_meshpeering_open(), psq_mfree(), setmlme_common(), and setmlme_dropsta().
int8_t ieee80211_getrssi | ( | struct ieee80211vap * | vap | ) |
Definition at line 3065 of file ieee80211_node.c.
References get_adhoc_rssi(), get_hostap_rssi(), ieee80211com::ic_node_getrssi, ieee80211com::ic_sta, ieee80211_iterate_nodes_vap(), IEEE80211_M_AHDEMO, IEEE80211_M_HOSTAP, IEEE80211_M_IBSS, IEEE80211_M_MBSS, IEEE80211_M_MONITOR, IEEE80211_M_STA, ieee80211vap::iv_bss, ieee80211vap::iv_ic, ieee80211vap::iv_opmode, NZ, rssiinfo::rssi_samples, and rssiinfo::rssi_total.
Referenced by ieee80211_getsignal().
void ieee80211_getsignal | ( | struct ieee80211vap * | vap, |
int8_t * | rssi, | ||
int8_t * | noise | ||
) |
Definition at line 3102 of file ieee80211_node.c.
References ieee80211com::ic_node_getsignal, ieee80211_getrssi(), IEEE80211_M_STA, ieee80211vap::iv_bss, ieee80211vap::iv_ic, and ieee80211vap::iv_opmode.
int ieee80211_ibss_merge | ( | struct ieee80211_node * | ni | ) |
Definition at line 672 of file ieee80211_node.c.
References IEEE80211_DPRINTF, IEEE80211_F_SHPREAMBLE, IEEE80211_F_SHSLOT, IEEE80211_F_USEPROT, ieee80211_ibss_merge_check(), IEEE80211_MSG_ASSOC, ieee80211_ref_node(), ieee80211_sta_join1(), ieee80211vap::iv_flags, ieee80211_node::ni_bssid, and ieee80211_node::ni_vap.
int ieee80211_ibss_merge_check | ( | struct ieee80211_node * | ni | ) |
Definition at line 579 of file ieee80211_node.c.
References check_bss(), IEEE80211_ADDR_EQ, IEEE80211_DPRINTF, IEEE80211_MSG_ASSOC, ieee80211_stats::is_ibss_capmismatch, ieee80211vap::iv_bss, ieee80211vap::iv_stats, ieee80211_node::ni_bssid, and ieee80211_node::ni_vap.
Referenced by ieee80211_ibss_merge().
int ieee80211_ibss_node_check_new | ( | struct ieee80211_node * | ni, |
const struct ieee80211_scanparams * | scan | ||
) |
Definition at line 615 of file ieee80211_node.c.
References ieee80211vap::iv_des_nssid, ieee80211vap::iv_des_ssid, ieee80211_scan_ssid::len, ieee80211_node::ni_vap, ieee80211_scan_ssid::ssid, and ieee80211_scanparams::ssid.
Referenced by adhoc_recv_mgmt().
void ieee80211_ies_cleanup | ( | struct ieee80211_ies * | ies | ) |
Definition at line 1120 of file ieee80211_node.c.
References ieee80211_ies::data, and IEEE80211_FREE.
Referenced by adhoc_age(), node_free(), and sta_flush_table().
void ieee80211_ies_expand | ( | struct ieee80211_ies * | ies | ) |
Definition at line 1132 of file ieee80211_node.c.
References ieee80211_ies::apchanrep_ie, ieee80211_ies::ath_ie, ieee80211_ies::bssload_ie, ieee80211_ies::data, ieee80211_ies::htcap_ie, ieee80211_ies::htinfo_ie, IEEE80211_ELEMID_APCHANREP, IEEE80211_ELEMID_BSSLOAD, IEEE80211_ELEMID_HTCAP, IEEE80211_ELEMID_HTINFO, IEEE80211_ELEMID_MESHID, IEEE80211_ELEMID_RSN, IEEE80211_ELEMID_VENDOR, IEEE80211_ELEMID_VHT_CAP, IEEE80211_ELEMID_VHT_OPMODE, IEEE80211_ELEMID_VHT_PWR_ENV, isatherosoui(), istdmaoui(), iswmeoui(), iswpaoui(), ieee80211_ies::len, ieee80211_ies::meshid_ie, ieee80211_ies::rsn_ie, ieee80211_ies::tdma_ie, ieee80211_ies::vhtcap_ie, ieee80211_ies::vhtopmode_ie, ieee80211_ies::vhtpwrenv_ie, ieee80211_ies::wme_ie, and ieee80211_ies::wpa_ie.
Referenced by ieee80211_init_neighbor(), ieee80211_sta_join(), and select_bss().
int ieee80211_ies_init | ( | struct ieee80211_ies * | ies, |
const uint8_t * | data, | ||
int | len | ||
) |
Definition at line 1093 of file ieee80211_node.c.
References ieee80211_ies::data, ieee80211_node::data, IEEE80211_FREE, IEEE80211_M_NOWAIT, IEEE80211_M_ZERO, IEEE80211_MALLOC, and ieee80211_ies::len.
Referenced by hostap_recv_mgmt(), ieee80211_init_neighbor(), ieee80211_sta_join(), and sta_add().
void ieee80211_init_neighbor | ( | struct ieee80211_node * | ni, |
const struct ieee80211_frame * | wh, | ||
const struct ieee80211_scanparams * | sp | ||
) |
Definition at line 1768 of file ieee80211_node.c.
References ieee80211_ies::ath_ie, ieee80211_scanparams::bintval, ieee80211_scanparams::capinfo, ieee80211_node::data, ieee80211_scanparams::erp, ieee80211_scanparams::fhdwell, ieee80211_scanparams::fhindex, ieee80211_ies::htcap_ie, ieee80211_ies::htinfo_ie, ieee80211_frame::i_addr3, ieee80211com::ic_curchan, ieee80211com::ic_newassoc, IEEE80211_ADDR_COPY, IEEE80211_DPRINTF, IEEE80211_F_DOBRS, IEEE80211_F_DODEL, IEEE80211_F_DOFRATE, IEEE80211_F_DONEGO, IEEE80211_F_DOSORT, IEEE80211_F_JOIN, IEEE80211_FHT_HT, IEEE80211_FVHT_VHT, ieee80211_ht_node_init(), ieee80211_ht_updateparams(), ieee80211_ht_updateparams_final(), ieee80211_ies_expand(), ieee80211_ies_init(), IEEE80211_IS_CHAN_2GHZ, IEEE80211_M_MBSS, ieee80211_mesh_init_neighbor(), IEEE80211_MSG_ASSOC, IEEE80211_NODE_QOS, ieee80211_node_setuptxparms(), ieee80211_parse_ath(), ieee80211_parse_htcap(), ieee80211_parse_htinfo(), ieee80211_parse_vhtcap(), ieee80211_parse_vhtopmode(), ieee80211_ratectl_node_init(), ieee80211_setup_basic_htrates(), ieee80211_setup_htrates(), ieee80211_setup_rates(), ieee80211_setup_vht_rates(), ieee80211_vht_node_init(), ieee80211_vht_updateparams(), ieee80211_scanparams::ies, ieee80211_scanparams::ies_len, ieee80211vap::iv_flags_ht, ieee80211vap::iv_flags_vht, ieee80211vap::iv_opmode, ieee80211_node::ni_bssid, ieee80211_node::ni_capinfo, ieee80211_node::ni_chan, ieee80211_node::ni_erp, ieee80211_node::ni_essid, ieee80211_node::ni_esslen, ieee80211_node::ni_fhdwell, ieee80211_node::ni_fhindex, ieee80211_node::ni_flags, ieee80211_node::ni_ic, ieee80211_node::ni_ies, ieee80211_node::ni_intval, ieee80211_node::ni_macaddr, ieee80211_node::ni_timoff, ieee80211_node::ni_tstamp, ieee80211_node::ni_vap, ieee80211_scanparams::rates, ieee80211_scanparams::ssid, ieee80211_scanparams::timoff, ieee80211_scanparams::tstamp, ieee80211_ies::vhtcap_ie, ieee80211_ies::vhtopmode_ie, ieee80211_ies::wme_ie, and ieee80211_scanparams::xrates.
Referenced by adhoc_recv_mgmt(), and ieee80211_add_neighbor().
void ieee80211_iterate_nodes | ( | struct ieee80211_node_table * | nt, |
ieee80211_iter_func * | f, | ||
void * | arg | ||
) |
Definition at line 2614 of file ieee80211_node.c.
References ieee80211_iterate_nodes_vap().
Referenced by ieee80211_crypto_reload_keys(), ieee80211_dump_nodes(), ieee80211_ratectl_sysctl_stats(), ieee80211_timeout_stations(), mesh_generateid(), mesh_newstate(), mesh_vdetach(), and setmlme_dropsta().
int ieee80211_iterate_nodes_vap | ( | struct ieee80211_node_table * | nt, |
struct ieee80211vap * | vap, | ||
ieee80211_iter_func * | f, | ||
void * | arg | ||
) |
Definition at line 2560 of file ieee80211_node.c.
References IEEE80211_FREE, ieee80211_free_node(), IEEE80211_M_NOWAIT, IEEE80211_M_ZERO, IEEE80211_MALLOC, IEEE80211_NODE_LOCK, IEEE80211_NODE_UNLOCK, ieee80211_ref_node(), ieee80211_node::ni_vap, and ieee80211_node_table::nt_count.
Referenced by adhoc_newstate(), amrr_tx_update(), getstainfo_common(), hostap_newstate(), ieee80211_getrssi(), and ieee80211_iterate_nodes().
void ieee80211_node_attach | ( | struct ieee80211com * | ic | ) |
Definition at line 108 of file ieee80211_node.c.
References ieee80211com::ic_flags_ext, ieee80211com::ic_inact, ieee80211com::ic_max_keyix, ieee80211com::ic_node_age, ieee80211com::ic_node_alloc, ieee80211com::ic_node_cleanup, ieee80211com::ic_node_drain, ieee80211com::ic_node_free, ieee80211com::ic_node_getmimoinfo, ieee80211com::ic_node_getrssi, ieee80211com::ic_node_getsignal, ieee80211com::ic_node_init, ieee80211com::ic_sta, ieee80211com::ic_stageq, ieee80211_ageq_init(), IEEE80211_FEXT_INACT, IEEE80211_INACT_INIT, IEEE80211_INACT_WAIT, ieee80211_node_table_init(), ieee80211_node_timeout(), node_age(), node_alloc(), node_cleanup(), node_free(), node_getmimoinfo(), node_getrssi(), node_getsignal(), and node_init().
Referenced by ieee80211_ifattach().
void ieee80211_node_authorize | ( | struct ieee80211_node * | ni | ) |
Definition at line 213 of file ieee80211_node.c.
References IEEE80211_MSG_INACT, IEEE80211_NODE_AUTH, IEEE80211_NOTE, ieee80211vap::iv_inact_run, ieee80211_node::ni_flags, ieee80211_node::ni_inact, ieee80211_node::ni_inact_reload, and ieee80211_node::ni_vap.
Referenced by adhoc_newstate(), hostap_auth_open(), hostap_auth_shared(), hostap_newstate(), ieee80211_add_neighbor(), ieee80211_create_wds(), ieee80211_fakeup_adhoc_node(), mesh_newstate(), monitor_newstate(), setmlme_common(), and sta_newstate().
struct ieee80211_node * ieee80211_node_create_wds | ( | struct ieee80211vap * | vap, |
const uint8_t | bssid[IEEE80211_ADDR_LEN], | ||
struct ieee80211_channel * | chan | ||
) |
Definition at line 1522 of file ieee80211_node.c.
References copy_bss(), ieee80211_channel::ic_flags, ieee80211_channel::ic_freq, ieee80211com::ic_htcaps, ieee80211com::ic_sta, IEEE80211_ADDR_COPY, ieee80211_alloc_node(), IEEE80211_CHAN_HT, IEEE80211_F_FF, IEEE80211_F_WME, IEEE80211_FHT_HT, ieee80211_find_channel(), IEEE80211_FVHT_VHT, ieee80211_ht_wds_init(), IEEE80211_HTC_HT, IEEE80211_NODE_FF, IEEE80211_NODE_QOS, ieee80211_node_set_chan(), ieee80211vap::iv_bss, ieee80211vap::iv_des_ssid, ieee80211vap::iv_flags, ieee80211vap::iv_flags_ht, ieee80211vap::iv_flags_vht, ieee80211vap::iv_ic, ieee80211_scan_ssid::len, ieee80211_node::ni_bssid, ieee80211_node::ni_chan, ieee80211_node::ni_essid, ieee80211_node::ni_esslen, ieee80211_node::ni_flags, ieee80211_node::ni_wdsvap, and ieee80211_scan_ssid::ssid.
Referenced by ieee80211_create_wds().
void ieee80211_node_deauth | ( | struct ieee80211_node * | ni, |
int | reason | ||
) |
Definition at line 1060 of file ieee80211_node.c.
References IEEE80211_FC0_SUBTYPE_DEAUTH, ieee80211_free_node(), ieee80211_node_leave(), ieee80211_ref_node(), IEEE80211_SEND_MGMT, and ieee80211_node::ni_associd.
Referenced by wpa_assocreq().
int ieee80211_node_delucastkey | ( | struct ieee80211_node * | ni | ) |
Definition at line 2161 of file ieee80211_node.c.
References ieee80211com::ic_sta, ieee80211_crypto_delkey(), IEEE80211_DPRINTF, ieee80211_free_node(), IEEE80211_KEYIX_NONE, IEEE80211_MSG_NODE, IEEE80211_NODE_IS_LOCKED, IEEE80211_NODE_LOCK, ieee80211_node_refcnt, IEEE80211_NODE_UNLOCK, ieee80211_node::ni_ic, ieee80211_node::ni_macaddr, ieee80211_node::ni_ucastkey, ieee80211_node::ni_vap, ieee80211_node_table::nt_keyixmap, ieee80211_key::wk_keyix, and ieee80211_key::wk_rxkeyix.
Referenced by ieee80211_ioctl_delkey(), and node_cleanup().
void ieee80211_node_detach | ( | struct ieee80211com * | ic | ) |
Definition at line 137 of file ieee80211_node.c.
References ieee80211com::ic_inact, ieee80211com::ic_sta, ieee80211com::ic_stageq, ieee80211_ageq_cleanup(), ieee80211_ageq_drain(), and ieee80211_node_table_cleanup().
Referenced by ieee80211_ifdetach().
|
static |
Definition at line 346 of file ieee80211_node.h.
References IEEE80211_NODE_AUTH, and ieee80211_node::ni_flags.
Referenced by adhoc_input(), get_sta_info(), hostap_deliver_data(), hostap_input(), sta_input(), and wds_input().
void ieee80211_node_join | ( | struct ieee80211_node * | ni, |
int | resp | ||
) |
Definition at line 2753 of file ieee80211_node.c.
References ieee80211_authenticator::ia_node_join, ieee80211com::ic_bsschan, ieee80211com::ic_newassoc, IEEE80211_AID_ISSET, IEEE80211_AID_SET, IEEE80211_ATH_CAP, IEEE80211_F_SHPREAMBLE, IEEE80211_F_SHSLOT, IEEE80211_F_USEPROT, IEEE80211_FC0_SUBTYPE_ASSOC_RESP, ieee80211_ht_node_join(), IEEE80211_IS_CHAN_ANYG, IEEE80211_IS_CHAN_FULL, IEEE80211_IS_CHAN_HT, IEEE80211_IS_CHAN_VHT, IEEE80211_LOCK, IEEE80211_MSG_ASSOC, IEEE80211_MSG_DEBUG, IEEE80211_NODE_AID, IEEE80211_NODE_AMPDU, IEEE80211_NODE_AMSDU, IEEE80211_NODE_FF, IEEE80211_NODE_HT, ieee80211_node_join_11g(), ieee80211_node_leave(), IEEE80211_NODE_MIMO_PS, IEEE80211_NODE_MIMO_RTS, IEEE80211_NODE_QOS, IEEE80211_NODE_RIFS, ieee80211_node_setuptxparms(), IEEE80211_NODE_TURBOP, IEEE80211_NOTE, ieee80211_notify_node_join(), ieee80211_ratectl_node_init(), IEEE80211_SEND_MGMT, IEEE80211_STATUS_SUCCESS, IEEE80211_STATUS_TOOMANY, IEEE80211_UNLOCK, ieee80211_vht_node_join(), ieee80211vap::iv_aid_bitmap, ieee80211vap::iv_auth, ieee80211vap::iv_flags, ieee80211vap::iv_max_aid, ieee80211vap::iv_sta_assoc, ieee80211_node::ni_associd, ieee80211_node::ni_chw, ieee80211_node::ni_flags, ieee80211_node::ni_ic, ieee80211_node::ni_jointime, and ieee80211_node::ni_vap.
Referenced by hostap_recv_mgmt().
void ieee80211_node_lateattach | ( | struct ieee80211com * | ) |
void ieee80211_node_latevattach | ( | struct ieee80211vap * | vap | ) |
Definition at line 165 of file ieee80211_node.c.
References IEEE80211_AID_MIN, ieee80211_authenticator_get(), IEEE80211_M_HOSTAP, IEEE80211_M_NOWAIT, IEEE80211_M_ZERO, IEEE80211_MALLOC, ieee80211_reset_bss(), ieee80211vap::iv_aid_bitmap, ieee80211vap::iv_auth, ieee80211vap::iv_bss, ieee80211vap::iv_ifp, ieee80211vap::iv_max_aid, ieee80211vap::iv_opmode, and ieee80211_node::ni_authmode.
Referenced by ieee80211_vap_attach().
void ieee80211_node_leave | ( | struct ieee80211_node * | ni | ) |
Definition at line 2944 of file ieee80211_node.c.
References ieee80211_authenticator::ia_node_leave, ieee80211com::ic_bsschan, IEEE80211_AID_CLR, ieee80211_free_node(), ieee80211_ht_node_leave(), IEEE80211_IS_CHAN_ANYG, IEEE80211_IS_CHAN_FULL, IEEE80211_IS_CHAN_HT, IEEE80211_IS_CHAN_VHT, IEEE80211_LOCK, IEEE80211_M_STA, IEEE80211_MSG_ASSOC, IEEE80211_MSG_DEBUG, IEEE80211_NODE_AID, ieee80211_node_leave_11g(), IEEE80211_NODE_LOCK, IEEE80211_NODE_UNLOCK, IEEE80211_NOTE, ieee80211_sta_leave(), IEEE80211_UNLOCK, ieee80211_vht_node_leave(), ieee80211vap::iv_auth, ieee80211vap::iv_opmode, ieee80211vap::iv_sta_assoc, ieee80211_node::ni_associd, ieee80211_node::ni_ic, ieee80211_node::ni_table, ieee80211_node::ni_vap, and node_reclaim().
Referenced by capinfomismatch(), domlme(), hostap_recv_mgmt(), htcapmismatch(), ieee80211_node_deauth(), ieee80211_node_join(), ratesetmismatch(), setmlme_common(), sta_disassoc(), sta_drop(), sta_leave(), and timeout_stations().
void ieee80211_node_set_chan | ( | struct ieee80211_node * | ni, |
struct ieee80211_channel * | chan | ||
) |
Definition at line 284 of file ieee80211_node.c.
References ieee80211_chan2mode(), IEEE80211_CHAN_ANYC, IEEE80211_F_PUREG, IEEE80211_FHT_PUREN, ieee80211_get_suphtrates(), ieee80211_get_suprates(), IEEE80211_IS_CHAN_HT, IEEE80211_MODE_11A, IEEE80211_MODE_11B, IEEE80211_MODE_11G, IEEE80211_MODE_11NA, IEEE80211_MODE_11NG, ieee80211vap::iv_flags, ieee80211vap::iv_flags_ht, ieee80211vap::iv_txparms, ieee80211_node::ni_chan, ieee80211_node::ni_htrates, ieee80211_node::ni_ic, ieee80211_node::ni_rates, ieee80211_node::ni_txparms, and ieee80211_node::ni_vap.
Referenced by hostap_newstate(), ieee80211_create_ibss(), ieee80211_dup_bss(), ieee80211_node_create_wds(), ieee80211_tmp_node(), and mesh_newstate().
void ieee80211_node_setuptxparms | ( | struct ieee80211_node * | ni | ) |
Definition at line 244 of file ieee80211_node.c.
References IEEE80211_IS_CHAN_108G, IEEE80211_IS_CHAN_5GHZ, IEEE80211_IS_CHAN_A, IEEE80211_IS_CHAN_HALF, IEEE80211_IS_CHAN_QUARTER, IEEE80211_IS_CHAN_ST, IEEE80211_MODE_11A, IEEE80211_MODE_11B, IEEE80211_MODE_11G, IEEE80211_MODE_11NA, IEEE80211_MODE_11NG, IEEE80211_MODE_HALF, IEEE80211_MODE_QUARTER, IEEE80211_MODE_STURBO_A, IEEE80211_MODE_VHT_2GHZ, IEEE80211_MODE_VHT_5GHZ, IEEE80211_NODE_ERP, IEEE80211_NODE_HT, IEEE80211_NODE_VHT, ieee80211vap::iv_txparms, ieee80211_node::ni_chan, ieee80211_node::ni_flags, ieee80211_node::ni_txparms, and ieee80211_node::ni_vap.
Referenced by ieee80211_add_neighbor(), ieee80211_fakeup_adhoc_node(), ieee80211_init_neighbor(), ieee80211_node_join(), ieee80211_sta_join(), and sta_recv_mgmt().
void ieee80211_node_timeout | ( | void * | arg | ) |
Definition at line 2528 of file ieee80211_node.c.
References ieee80211com::ic_flags, ieee80211com::ic_inact, ieee80211com::ic_stageq, ieee80211_ageq_age(), IEEE80211_F_CSAPENDING, IEEE80211_INACT_WAIT, IEEE80211_LOCK, ieee80211_node_timeout(), ieee80211_scan_timeout(), ieee80211_timeout_stations(), IEEE80211_UNLOCK, and ieee80211_vap_timeout().
Referenced by ieee80211_node_attach(), and ieee80211_node_timeout().
void ieee80211_node_unauthorize | ( | struct ieee80211_node * | ni | ) |
Definition at line 226 of file ieee80211_node.c.
References IEEE80211_MSG_INACT, IEEE80211_NOTE, ieee80211vap::iv_inact_auth, ieee80211_node::ni_flags, ieee80211_node::ni_inact, ieee80211_node::ni_inact_reload, and ieee80211_node::ni_vap.
Referenced by ieee80211_send_mgmt(), and setmlme_common().
void ieee80211_node_vattach | ( | struct ieee80211vap * | vap | ) |
Definition at line 147 of file ieee80211_node.c.
References IEEE80211_AID_DEF, IEEE80211_DPRINTF, IEEE80211_INACT_AUTH, IEEE80211_INACT_INIT, IEEE80211_INACT_PROBE, IEEE80211_INACT_RUN, IEEE80211_MSG_INACT, ieee80211vap::iv_inact_auth, ieee80211vap::iv_inact_init, ieee80211vap::iv_inact_probe, ieee80211vap::iv_inact_run, and ieee80211vap::iv_max_aid.
Referenced by ieee80211_vap_setup().
void ieee80211_node_vdetach | ( | struct ieee80211vap * | vap | ) |
Definition at line 193 of file ieee80211_node.c.
References ieee80211com::ic_sta, IEEE80211_FREE, ieee80211_free_node(), ieee80211_node_table_reset(), ieee80211vap::iv_aid_bitmap, ieee80211vap::iv_bss, and ieee80211vap::iv_ic.
Referenced by ieee80211_vap_detach().
void ieee80211_notify_erp_locked | ( | struct ieee80211com * | ic | ) |
Definition at line 2669 of file ieee80211_node.c.
References IEEE80211_BEACON_ERP, ieee80211_beacon_notify(), IEEE80211_LOCK_ASSERT, IEEE80211_M_HOSTAP, and ieee80211vap::iv_opmode.
Referenced by vap_update_erp_protmode(), and vap_update_preamble().
|
static |
Definition at line 325 of file ieee80211_node.h.
References ieee80211_node_incref.
Referenced by hostap_auth_open(), hostap_auth_shared(), ht_send_action_ba_addba(), ht_send_action_ba_delba(), ht_send_action_ht_txchwidth(), hwmp_send_action(), ieee80211_create_ibss(), ieee80211_create_wds(), ieee80211_find_node_locked(), ieee80211_find_rxnode_withkey(), ieee80211_find_txnode(), ieee80211_find_vap_node_locked(), ieee80211_ht_update_beacon(), ieee80211_ibss_merge(), ieee80211_input_mimo_all(), ieee80211_ioctl_delkey(), ieee80211_ioctl_getstavlan(), ieee80211_ioctl_setkey(), ieee80211_ioctl_setstavlan(), ieee80211_iterate_nodes_vap(), ieee80211_node_deauth(), ieee80211_output(), ieee80211_recv_pspoll(), ieee80211_reset_bss(), ieee80211_send_bar(), ieee80211_send_mgmt(), ieee80211_send_probereq(), ieee80211_send_proberesp(), ieee80211_sta_join(), ieee80211_sta_pwrsave(), mesh_forward(), mesh_send_action_meshgate(), mesh_send_action_meshlmetric(), mesh_send_action_meshpeering_close(), mesh_send_action_meshpeering_confirm(), mesh_send_action_meshpeering_open(), setmlme_common(), and timeout_stations().
void ieee80211_reset_bss | ( | struct ieee80211vap * | vap | ) |
Definition at line 445 of file ieee80211_node.c.
References copy_bss(), ieee80211com::ic_bintval, ieee80211com::ic_sta, IEEE80211_ADDR_COPY, ieee80211_alloc_node(), ieee80211_free_node(), ieee80211_node_table_reset(), ieee80211_ref_node(), ieee80211_vap_reset_erp(), ieee80211vap::iv_bss, ieee80211vap::iv_ic, ieee80211vap::iv_myaddr, ieee80211_node::ni_bssid, and ieee80211_node::ni_intval.
Referenced by adhoc_newstate(), hostap_newstate(), ieee80211_node_latevattach(), mesh_newstate(), sta_newstate(), and wds_newstate().
void ieee80211_setcurchan | ( | struct ieee80211com * | ic, |
struct ieee80211_channel * | c | ||
) |
Definition at line 820 of file ieee80211_node.c.
References ieee80211com::ic_chan_task, ieee80211_runtask(), and ieee80211_setupcurchan().
Referenced by ieee80211_csa_completeswitch(), ieee80211_sta_join1(), and setcurchan().
void ieee80211_setupcurchan | ( | struct ieee80211com * | ic, |
struct ieee80211_channel * | c | ||
) |
Definition at line 784 of file ieee80211_node.c.
References gethtadjustflags(), getvhtadjustflags(), ieee80211com::ic_bsschan, ieee80211com::ic_curchan, ieee80211com::ic_curmode, ieee80211com::ic_htcaps, ieee80211com::ic_rt, ieee80211com::ic_vhtcaps, ieee80211_chan2mode(), ieee80211_get_ratetable(), ieee80211_ht_adjust_channel(), IEEE80211_HTC_HT, ieee80211_htchanflags(), ieee80211_vht_adjust_channel(), and ieee80211_vhtchanflags().
Referenced by ieee80211_setcurchan(), ieee80211_update_chw(), and scan_end().
int ieee80211_sta_join | ( | struct ieee80211vap * | vap, |
struct ieee80211_channel * | chan, | ||
const struct ieee80211_scan_entry * | se | ||
) |
Definition at line 910 of file ieee80211_node.c.
References ieee80211_ies::ath_ie, ieee80211_ies::data, ieee80211_ies::htcap_ie, ieee80211_ies::htinfo_ie, ieee80211com::ic_sta, IEEE80211_ADDR_COPY, ieee80211_alloc_node(), IEEE80211_F_DOBRS, IEEE80211_F_DOSORT, IEEE80211_F_JOIN, IEEE80211_FHT_HT, IEEE80211_FVHT_VHT, ieee80211_ht_node_init(), ieee80211_ht_updateparams(), ieee80211_ht_updateparams_final(), ieee80211_ies_expand(), ieee80211_ies_init(), IEEE80211_IS_CHAN_2GHZ, ieee80211_iserp_rateset(), IEEE80211_M_STA, IEEE80211_NODE_ASSOCID, IEEE80211_NODE_ERP, ieee80211_node_setuptxparms(), ieee80211_parse_ath(), ieee80211_parse_htcap(), ieee80211_parse_htinfo(), ieee80211_parse_meshid(), ieee80211_parse_tdma(), ieee80211_parse_vhtcap(), ieee80211_parse_vhtopmode(), ieee80211_ratectl_node_init(), ieee80211_ref_node(), IEEE80211_RSSI_LPF, ieee80211_setup_basic_htrates(), ieee80211_setup_htrates(), ieee80211_setup_rates(), ieee80211_setup_vht_rates(), ieee80211_sta_join1(), ieee80211_vht_node_init(), ieee80211_vht_updateparams(), ieee80211vap::iv_dtim_count, ieee80211vap::iv_dtim_period, ieee80211vap::iv_flags_ht, ieee80211vap::iv_flags_vht, ieee80211vap::iv_ic, ieee80211vap::iv_opmode, ieee80211_ies::len, ieee80211_ies::meshid_ie, ieee80211_node::ni_avgrssi, ieee80211_node::ni_bssid, ieee80211_node::ni_capinfo, ieee80211_node::ni_chan, ieee80211_node::ni_erp, ieee80211_node::ni_essid, ieee80211_node::ni_esslen, ieee80211_node::ni_fhdwell, ieee80211_node::ni_fhindex, ieee80211_node::ni_flags, ieee80211_node::ni_ies, ieee80211_node::ni_intval, ieee80211_node::ni_macaddr, ieee80211_node::ni_noise, ieee80211_node::ni_rates, ieee80211_node::ni_timoff, ieee80211_node::ni_tstamp, ieee80211_scan_entry::se_bssid, ieee80211_scan_entry::se_capinfo, ieee80211_scan_entry::se_dtimperiod, ieee80211_scan_entry::se_erp, ieee80211_scan_entry::se_fhdwell, ieee80211_scan_entry::se_fhindex, ieee80211_scan_entry::se_ies, ieee80211_scan_entry::se_intval, ieee80211_scan_entry::se_macaddr, ieee80211_scan_entry::se_noise, ieee80211_scan_entry::se_rates, ieee80211_scan_entry::se_rssi, ieee80211_scan_entry::se_ssid, ieee80211_scan_entry::se_timoff, ieee80211_scan_entry::se_tstamp, ieee80211_scan_entry::se_xrates, ieee80211_ies::tdma_ie, ieee80211_node::tsf, ieee80211_scan_entry::tsf, ieee80211_ies::vhtcap_ie, and ieee80211_ies::vhtopmode_ie.
Referenced by adhoc_pick_bss(), setmlme_assoc_sta(), sta_pick_bss(), and sta_roam_check().
void ieee80211_sta_leave | ( | struct ieee80211_node * | ni | ) |
Definition at line 1048 of file ieee80211_node.c.
References ieee80211com::ic_node_cleanup, ieee80211_notify_node_leave(), and ieee80211_node::ni_ic.
Referenced by ieee80211_node_leave(), and sta_newstate().
void ieee80211_sync_curchan | ( | struct ieee80211com * | ic | ) |
Definition at line 761 of file ieee80211_node.c.
References gethtadjustflags(), getvhtadjustflags(), ieee80211com::ic_curchan, ieee80211com::ic_curmode, ieee80211com::ic_rt, ieee80211com::ic_set_channel, ieee80211_chan2mode(), ieee80211_get_ratetable(), ieee80211_ht_adjust_channel(), IEEE80211_LOCK, ieee80211_radiotap_chan_change(), IEEE80211_UNLOCK, and ieee80211_vht_adjust_channel().
Referenced by sta_newstate().
struct ieee80211_node * ieee80211_tmp_node | ( | struct ieee80211vap * | vap, |
const uint8_t | macaddr[IEEE80211_ADDR_LEN] | ||
) |
Definition at line 1448 of file ieee80211_node.c.
References _ieee80211_free_node(), ieee80211com::ic_node_alloc, ieee80211com::ic_node_init, IEEE80211_ADDR_COPY, ieee80211_crypto_resetkey(), IEEE80211_DPRINTF, IEEE80211_KEYIX_NONE, IEEE80211_MSG_NODE, ieee80211_node_initref, ieee80211_node_set_chan(), ieee80211_psq_cleanup(), ieee80211_psq_init(), ieee80211_ratectl_node_deinit(), ieee80211_ratectl_node_init(), ieee80211_stats::is_rx_nodealloc, ieee80211vap::iv_bss, ieee80211vap::iv_ic, ieee80211vap::iv_stats, ieee80211_node::ni_bssid, ieee80211_node::ni_chan, ieee80211_node::ni_ic, ieee80211_node::ni_macaddr, ieee80211_node::ni_psq, ieee80211_node::ni_table, ieee80211_node::ni_txpower, ieee80211_node::ni_ucastkey, and ieee80211_node::ni_vap.
Referenced by ieee80211_send_error().
|
static |
Definition at line 332 of file ieee80211_node.h.
References ieee80211_node_decref.
Referenced by ieee80211_send_nulldata().
void ieee80211_update_chw | ( | struct ieee80211com * | ic | ) |
Definition at line 827 of file ieee80211_node.c.
References ieee80211com::ic_chw_task, ieee80211com::ic_curchan, ieee80211_runtask(), and ieee80211_setupcurchan().
Referenced by adhoc_recv_mgmt(), and sta_recv_mgmt().
MALLOC_DECLARE | ( | M_80211_NODE | ) |
MALLOC_DECLARE | ( | M_80211_NODE_IE | ) |