FreeBSD kernel WLAN code
|
#include <sys/cdefs.h>
#include "opt_wlan.h"
#include <sys/param.h>
#include <sys/systm.h>
#include <sys/mbuf.h>
#include <sys/malloc.h>
#include <sys/kernel.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_input.h>
#include <net80211/ieee80211_wds.h>
#include <net80211/ieee80211_mesh.h>
#include <net80211/ieee80211_ratectl.h>
#include <net80211/ieee80211_vht.h>
#include <net/bpf.h>
Go to the source code of this file.
Data Structures | |
struct | rssiinfo |
Macros | |
#define | IEEE80211_AID_SET(_vap, b) |
#define | IEEE80211_AID_CLR(_vap, b) |
#define | IEEE80211_AID_ISSET(_vap, b) ((_vap)->iv_aid_bitmap[IEEE80211_AID(b) / 32] & (1 << (IEEE80211_AID(b) % 32))) |
#define | IS_PROBEREQ(wh) |
#define | IS_BCAST_PROBEREQ(wh) |
#define | NZ(x) ((x) == 0 ? 1 : (x)) |
#define IEEE80211_AID_CLR | ( | _vap, | |
b | |||
) |
Definition at line 73 of file ieee80211_node.c.
#define IEEE80211_AID_ISSET | ( | _vap, | |
b | |||
) | ((_vap)->iv_aid_bitmap[IEEE80211_AID(b) / 32] & (1 << (IEEE80211_AID(b) % 32))) |
Definition at line 76 of file ieee80211_node.c.
#define IEEE80211_AID_SET | ( | _vap, | |
b | |||
) |
Definition at line 70 of file ieee80211_node.c.
#define IS_BCAST_PROBEREQ | ( | wh | ) |
Definition at line 1922 of file ieee80211_node.c.
#define IS_PROBEREQ | ( | wh | ) |
Definition at line 1919 of file ieee80211_node.c.
#define NZ | ( | x | ) | ((x) == 0 ? 1 : (x)) |
__FBSDID | ( | "$FreeBSD$" | ) |
|
static |
Definition at line 1927 of file ieee80211_node.c.
References ieee80211_frame_min::i_addr2, ieee80211_find_node_locked(), and IS_BCAST_PROBEREQ.
Referenced by ieee80211_find_rxnode(), and ieee80211_find_rxnode_withkey().
|
static |
Definition at line 2078 of file ieee80211_node.c.
References ieee80211com::ic_node_free, IEEE80211_AID_CLR, ieee80211_del_node_nt(), IEEE80211_DPRINTF, IEEE80211_MSG_NODE, ieee80211vap::iv_aid_bitmap, ieee80211_node::ni_associd, ieee80211_node::ni_ic, ieee80211_node::ni_macaddr, ieee80211_node::ni_table, ieee80211_node::ni_vap, and ieee80211_node_table::nt_name.
Referenced by ieee80211_alloc_node(), ieee80211_free_node(), ieee80211_tmp_node(), and node_reclaim().
|
static |
Definition at line 484 of file ieee80211_node.c.
References ieee80211com::ic_chan_active, IEEE80211_ADDR_EQ, IEEE80211_CAPINFO_ESS, IEEE80211_CAPINFO_IBSS, IEEE80211_CAPINFO_PRIVACY, ieee80211_chan2ieee(), IEEE80211_F_DESBSSID, IEEE80211_F_DOFRATE, IEEE80211_F_DONEGO, IEEE80211_F_JOIN, IEEE80211_F_PRIVACY, ieee80211_fix_rate(), IEEE80211_M_IBSS, IEEE80211_RATE_BASIC, ieee80211vap::iv_des_bssid, ieee80211vap::iv_des_nssid, ieee80211vap::iv_des_ssid, ieee80211vap::iv_flags, ieee80211vap::iv_opmode, match_ssid(), ieee80211_node::ni_bssid, ieee80211_node::ni_capinfo, ieee80211_node::ni_chan, ieee80211_node::ni_ic, and ieee80211_node::ni_rates.
Referenced by ieee80211_ibss_merge_check().
|
static |
Definition at line 321 of file ieee80211_node.c.
References ieee80211_node::ni_authmode, ieee80211_node::ni_txpower, and ieee80211_node::ni_vlan.
Referenced by ieee80211_create_ibss(), ieee80211_dup_bss(), ieee80211_node_create_wds(), ieee80211_reset_bss(), and ieee80211_sta_join1().
CTASSERT | ( | (IEEE80211_NODE_HASHSIZE &(IEEE80211_NODE_HASHSIZE-1)) | = =0 | ) |
|
static |
Definition at line 2833 of file ieee80211_node.c.
References ieee80211com::ic_caps, IEEE80211_C_SHPREAMBLE, IEEE80211_F_SHPREAMBLE, IEEE80211_FEXT_NONERP_PR, ieee80211_vap_update_erp_protmode(), ieee80211_vap_update_preamble(), ieee80211vap::iv_flags, ieee80211vap::iv_flags_ext, ieee80211vap::iv_ic, and ieee80211vap::iv_nonerpsta.
Referenced by ieee80211_node_leave_11g(), and ieee80211_vap_erp_timeout().
|
static |
Definition at line 3028 of file ieee80211_node.c.
References ieee80211com::ic_node_getrssi, IEEE80211_CAPINFO_IBSS, ieee80211vap::iv_ic, ieee80211_node::ni_capinfo, ieee80211_node::ni_vap, rssiinfo::rssi_samples, and rssiinfo::rssi_total.
Referenced by ieee80211_getrssi().
|
static |
Definition at line 3011 of file ieee80211_node.c.
References ieee80211com::ic_node_getrssi, ieee80211vap::iv_ic, ieee80211_node::ni_associd, ieee80211_node::ni_vap, rssiinfo::rssi_samples, and rssiinfo::rssi_total.
Referenced by ieee80211_getrssi().
|
static |
Definition at line 696 of file ieee80211_node.c.
References ieee80211_htchanflags(), IEEE80211_M_AHDEMO, IEEE80211_M_HOSTAP, IEEE80211_M_IBSS, IEEE80211_M_MBSS, IEEE80211_M_STA, IEEE80211_M_WDS, IEEE80211_S_RUN, ieee80211vap::iv_bss, ieee80211vap::iv_opmode, ieee80211vap::iv_state, and ieee80211_node::ni_chan.
Referenced by ieee80211_setupcurchan(), and ieee80211_sync_curchan().
|
static |
Definition at line 727 of file ieee80211_node.c.
References IEEE80211_M_AHDEMO, IEEE80211_M_HOSTAP, IEEE80211_M_IBSS, IEEE80211_M_MBSS, IEEE80211_M_STA, IEEE80211_M_WDS, IEEE80211_S_RUN, ieee80211_vhtchanflags(), ieee80211vap::iv_bss, ieee80211vap::iv_opmode, ieee80211vap::iv_state, and ieee80211_node::ni_chan.
Referenced by ieee80211_setupcurchan(), and ieee80211_sync_curchan().
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().
|
static |
Definition at line 1356 of file ieee80211_node.c.
References IEEE80211_NODE_HASH, IEEE80211_NODE_LOCK_ASSERT, ieee80211_node::ni_macaddr, ieee80211_node::ni_table, ieee80211_node_table::nt_count, and ieee80211_node_table::nt_ic.
Referenced by ieee80211_alloc_node().
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().
|
static |
Definition at line 1373 of file ieee80211_node.c.
References IEEE80211_NODE_LOCK_ASSERT, ieee80211_node::ni_table, and ieee80211_node_table::nt_count.
Referenced by _ieee80211_free_node(), and node_reclaim().
void ieee80211_drain | ( | struct ieee80211com * | ic | ) |
Definition at line 2465 of file ieee80211_node.c.
References ieee80211com::ic_node_drain, ieee80211com::ic_sta, IEEE80211_M_HOSTAP, IEEE80211_M_STA, IEEE80211_NODE_AREF, IEEE80211_NODE_LOCK, IEEE80211_NODE_UNLOCK, IEEE80211_S_RUN, ieee80211vap::iv_opmode, ieee80211vap::iv_state, ieee80211_node::ni_flags, ieee80211_node::ni_rxfrag, and ieee80211_node::ni_vap.
void ieee80211_dump_node | ( | struct ieee80211_node_table *nt | __unused, |
struct ieee80211_node * | ni | ||
) |
Definition at line 2622 of file ieee80211_node.c.
References ieee80211_channel::ic_flags, ieee80211_channel::ic_freq, ieee80211_node_refcnt, IEEE80211_NONQOS_TID, IEEE80211_SEQ_FRAG_MASK, IEEE80211_SEQ_SEQ_SHIFT, ieee80211_node::ni_associd, ieee80211_node::ni_authmode, ieee80211_node::ni_bssid, ieee80211_node::ni_capinfo, ieee80211_node::ni_chan, ieee80211_node::ni_chw, ieee80211_node::ni_essid, ieee80211_node::ni_esslen, ieee80211_node::ni_flags, ieee80211_node::ni_ht2ndchan, ieee80211_node::ni_htcap, ieee80211_node::ni_htctlchan, ieee80211_node::ni_htopmode, ieee80211_node::ni_htparam, ieee80211_node::ni_htstbc, ieee80211_node::ni_inact, ieee80211_node::ni_inact_reload, ieee80211_node::ni_intval, ieee80211_node::ni_macaddr, ieee80211_node::ni_noise, ieee80211_node::ni_rxfragstamp, ieee80211_node::ni_rxseqs, ieee80211_node::ni_txpower, ieee80211_node::ni_txrate, ieee80211_node::ni_txseqs, ieee80211_node::ni_vht_basicmcs, ieee80211_node::ni_vht_chan1, ieee80211_node::ni_vht_chan2, ieee80211_node::ni_vhtcap, ieee80211_node::ni_vlan, and node_getrssi().
Referenced by ieee80211_dump_nodes().
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, | ||
ieee80211_keyix | 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().
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().
|
static |
Definition at line 2684 of file ieee80211_node.c.
References ieee80211com::ic_bsschan, IEEE80211_CAPINFO_SHORT_PREAMBLE, IEEE80211_CAPINFO_SHORT_SLOTTIME, IEEE80211_DPRINTF, IEEE80211_F_USEBARKER, IEEE80211_F_USEPROT, IEEE80211_FEXT_NONERP_PR, IEEE80211_IS_CHAN_108G, ieee80211_iserp_rateset(), IEEE80211_LOCK_ASSERT, IEEE80211_MSG_ASSOC, IEEE80211_NODE_ERP, IEEE80211_NOTE, IEEE80211_PROT_NONE, ieee80211_vap_set_shortslottime(), ieee80211_vap_update_erp_protmode(), ieee80211_vap_update_preamble(), ieee80211vap::iv_flags, ieee80211vap::iv_flags_ext, ieee80211vap::iv_longslotsta, ieee80211vap::iv_nonerpsta, ieee80211vap::iv_protmode, ieee80211_node::ni_capinfo, ieee80211_node::ni_flags, ieee80211_node::ni_ic, ieee80211_node::ni_rates, and ieee80211_node::ni_vap.
Referenced by ieee80211_node_join().
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().
|
static |
Definition at line 2856 of file ieee80211_node.c.
References disable_protection(), ieee80211com::ic_bsschan, ieee80211com::ic_caps, ieee80211_channel::ic_flags, ieee80211_channel::ic_freq, ieee80211com::ic_opmode, IEEE80211_C_SHSLOT, IEEE80211_CAPINFO_SHORT_SLOTTIME, IEEE80211_DPRINTF, IEEE80211_FEXT_NONERP_PR, IEEE80211_IS_CHAN_ANYG, IEEE80211_LOCK_ASSERT, IEEE80211_M_IBSS, IEEE80211_MSG_ASSOC, IEEE80211_NODE_ERP, IEEE80211_NOTE, ieee80211_vap_set_shortslottime(), ieee80211vap::iv_flags_ext, ieee80211vap::iv_longslotsta, ieee80211vap::iv_nonerpsta, ieee80211_node::ni_capinfo, ieee80211_node::ni_flags, ieee80211_node::ni_ic, and ieee80211_node::ni_vap.
Referenced by ieee80211_node_leave().
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().
|
static |
Definition at line 2312 of file ieee80211_node.c.
References IEEE80211_FREE, IEEE80211_NODE_LOCK_DESTROY, ieee80211_node_table_reset(), ieee80211_node_table::nt_keyixmap, ieee80211_node_table::nt_keyixmax, and ieee80211_node_table::nt_name.
Referenced by ieee80211_node_detach().
|
static |
Definition at line 2249 of file ieee80211_node.c.
References ieee80211com::ic_name, ic_printf(), IEEE80211_M_NOWAIT, IEEE80211_M_ZERO, IEEE80211_MALLOC, IEEE80211_NODE_LOCK_INIT, ieee80211_node_table::nt_count, ieee80211_node_table::nt_ic, ieee80211_node_table::nt_inact_init, ieee80211_node_table::nt_keyixmap, ieee80211_node_table::nt_keyixmax, and ieee80211_node_table::nt_name.
Referenced by ieee80211_node_attach().
|
static |
Definition at line 2275 of file ieee80211_node.c.
References ieee80211_authenticator::ia_node_leave, IEEE80211_AID_CLR, IEEE80211_M_WDS, IEEE80211_NODE_LOCK, IEEE80211_NODE_UNLOCK, ieee80211vap::iv_aid_bitmap, ieee80211vap::iv_auth, ieee80211vap::iv_opmode, ieee80211_node::ni_associd, ieee80211_node::ni_vap, ieee80211_node::ni_wdsvap, and node_reclaim().
Referenced by ieee80211_node_table_cleanup(), ieee80211_node_vdetach(), and ieee80211_reset_bss().
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().
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().
|
static |
Definition at line 839 of file ieee80211_node.c.
References copy_bss(), IEEE80211_ADDR_EQ, IEEE80211_DPRINTF, IEEE80211_F_DODEL, IEEE80211_F_JOIN, IEEE80211_FC0_SUBTYPE_DEAUTH, ieee80211_fix_rate(), IEEE80211_M_STA, IEEE80211_MSG_AUTH, ieee80211_new_state(), ieee80211_node_decref, IEEE80211_NODE_LOCK, IEEE80211_NODE_UNLOCK, IEEE80211_S_ASSOC, IEEE80211_S_AUTH, IEEE80211_S_RUN, ieee80211_setcurchan(), ieee80211_vap_reset_erp(), ieee80211_wme_initparams(), ieee80211vap::iv_bss, ieee80211vap::iv_opmode, ieee80211vap::iv_state, ieee80211_node::ni_chan, ieee80211_node::ni_ic, ieee80211_node::ni_macaddr, ieee80211_node::ni_rates, ieee80211_node::ni_table, ieee80211_node::ni_vap, and node_reclaim().
Referenced by ieee80211_create_ibss(), ieee80211_ibss_merge(), and ieee80211_sta_join().
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().
|
static |
Definition at line 2453 of file ieee80211_node.c.
References ieee80211com::ic_sta, ieee80211_iterate_nodes(), and timeout_stations().
Referenced by ieee80211_node_timeout().
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().
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().
|
static |
Definition at line 2924 of file ieee80211_node.c.
References disable_protection(), IEEE80211_DPRINTF, IEEE80211_FEXT_NONERP_PR, IEEE80211_LOCK_ASSERT, IEEE80211_MSG_ASSOC, IEEE80211_NONERP_PRESENT_AGE, ieee80211_time_after, ieee80211vap::iv_flags_ext, ieee80211vap::iv_ic, ieee80211vap::iv_lastnonerp, and ieee80211vap::iv_nonerpsta.
Referenced by ieee80211_vap_timeout().
|
static |
Definition at line 2514 of file ieee80211_node.c.
References ieee80211_ht_timeout(), IEEE80211_LOCK_ASSERT, ieee80211_vap_erp_timeout(), ieee80211_vht_timeout(), and ieee80211vap::iv_ic.
Referenced by ieee80211_node_timeout().
MALLOC_DEFINE | ( | M_80211_NODE | , |
"80211node" | , | ||
"802.11 node state" | |||
) |
MALLOC_DEFINE | ( | M_80211_NODE_IE | , |
"80211nodeie" | , | ||
"802.11 node ie" | |||
) |
|
static |
Definition at line 467 of file ieee80211_node.c.
References ieee80211_scan_ssid::len, ieee80211_node::ni_essid, ieee80211_node::ni_esslen, and ieee80211_scan_ssid::ssid.
Referenced by check_bss().
|
static |
Definition at line 1291 of file ieee80211_node.c.
References ieee80211_ht_node_age(), IEEE80211_NODE_HT, ieee80211_node_psq_age(), ieee80211vap::iv_set_tim, ieee80211_node::ni_associd, ieee80211_node::ni_flags, ieee80211_node::ni_psq, ieee80211_node::ni_vap, and ieee80211_psq::psq_len.
Referenced by ieee80211_node_attach().
|
static |
Definition at line 1071 of file ieee80211_node.c.
References IEEE80211_M_NOWAIT, IEEE80211_M_ZERO, and IEEE80211_MALLOC.
Referenced by ieee80211_node_attach().
|
static |
Definition at line 1197 of file ieee80211_node.c.
References ieee80211com::ic_stageq, ieee80211_ageq_drain_node(), ieee80211_ff_node_cleanup(), IEEE80211_FREE, ieee80211_ht_node_cleanup(), IEEE80211_M_MBSS, IEEE80211_M_STA, ieee80211_mesh_node_cleanup(), IEEE80211_MSG_POWER, IEEE80211_NODE_AREF, IEEE80211_NODE_ASSOCID, ieee80211_node_delucastkey(), IEEE80211_NODE_HT, ieee80211_node_psq_drain(), IEEE80211_NODE_PWR_MGT, IEEE80211_NODE_VHT, IEEE80211_NOTE, ieee80211_vht_node_cleanup(), ieee80211vap::iv_opmode, ieee80211vap::iv_ps_sta, ieee80211vap::iv_set_tim, ieee80211_node::ni_associd, ieee80211_node::ni_challenge, ieee80211_node::ni_flags, ieee80211_node::ni_ic, ieee80211_node::ni_rxfrag, and ieee80211_node::ni_vap.
Referenced by ieee80211_node_attach().
|
static |
Definition at line 2108 of file ieee80211_node.c.
References IEEE80211_DPRINTF, IEEE80211_MSG_NODE, ieee80211_node_decref, ieee80211_node::ni_macaddr, ieee80211_node::ni_ucastkey, ieee80211_node::ni_vap, ieee80211_node_table::nt_keyixmap, and ieee80211_key::wk_rxkeyix.
Referenced by ieee80211_free_node(), and node_reclaim().
|
static |
Definition at line 1279 of file ieee80211_node.c.
References ieee80211com::ic_node_cleanup, IEEE80211_FREE, ieee80211_ies_cleanup(), ieee80211_psq_cleanup(), ieee80211_ratectl_node_deinit(), ieee80211_node::ni_ic, ieee80211_node::ni_ies, and ieee80211_node::ni_psq.
Referenced by ieee80211_node_attach().
|
static |
Definition at line 1329 of file ieee80211_node.c.
References ieee80211_mimo_info::ch, IEEE80211_MAX_CHAINS, IEEE80211_RSSI_DUMMY_MARKER, IEEE80211_RSSI_GET, ieee80211_node::ni_mimo_chains, ieee80211_node::ni_mimo_noise_ctl, ieee80211_node::ni_mimo_rssi_ctl, ieee80211_mimo_chan_info::noise, and ieee80211_mimo_chan_info::rssi.
Referenced by ieee80211_node_attach().
|
static |
Definition at line 1310 of file ieee80211_node.c.
References IEEE80211_RSSI_DUMMY_MARKER, IEEE80211_RSSI_GET, and ieee80211_node::ni_avgrssi.
Referenced by ieee80211_dump_node(), ieee80211_node_attach(), and node_getsignal().
|
static |
Definition at line 1322 of file ieee80211_node.c.
References ieee80211_node::ni_noise, and node_getrssi().
Referenced by ieee80211_node_attach().
|
static |
Definition at line 1081 of file ieee80211_node.c.
Referenced by ieee80211_node_attach().
|
static |
Definition at line 2215 of file ieee80211_node.c.
References _ieee80211_free_node(), ieee80211_del_node_nt(), IEEE80211_DPRINTF, IEEE80211_MSG_NODE, ieee80211_node_dectestref(), IEEE80211_NODE_LOCK_ASSERT, ieee80211_node_refcnt, ieee80211_node::ni_macaddr, ieee80211_node::ni_vap, node_clear_keyixmap(), and ieee80211_node_table::nt_name.
Referenced by ieee80211_node_leave(), ieee80211_node_table_reset(), and ieee80211_sta_join1().
|
static |
Definition at line 2331 of file ieee80211_node.c.
References ieee80211com::ic_node_age, IEEE80211_FC0_SUBTYPE_DEAUTH, IEEE80211_FEXT_INACT, IEEE80211_M_AHDEMO, IEEE80211_M_HOSTAP, IEEE80211_M_IBSS, IEEE80211_M_STA, IEEE80211_MSG_INACT, IEEE80211_MSG_NODE, IEEE80211_NODE_AREF, ieee80211_node_leave(), ieee80211_node_refcnt, IEEE80211_NOTE, IEEE80211_REASON_AUTH_EXPIRE, ieee80211_ref_node(), IEEE80211_S_RUN, IEEE80211_SEND_MGMT, ieee80211_send_nulldata(), ieee80211_stats::is_node_timeout, ieee80211vap::iv_bss, ieee80211vap::iv_flags_ext, ieee80211vap::iv_inact_probe, ieee80211vap::iv_opmode, ieee80211vap::iv_state, ieee80211vap::iv_stats, ieee80211_node::ni_associd, ieee80211_node::ni_flags, ieee80211_node::ni_ic, ieee80211_node::ni_inact, ieee80211_node::ni_inact_reload, ieee80211_node::ni_rates, ieee80211_node::ni_rxfrag, ieee80211_node::ni_rxfragstamp, ieee80211_node::ni_vap, and ieee80211_rateset::rs_nrates.
Referenced by ieee80211_timeout_stations().