FreeBSD kernel WLAN code
|
Go to the source code of this file.
Data Structures | |
struct | ieee80211_scan_ssid |
struct | ieee80211_scan_methods |
struct | ieee80211_scan_state |
struct | ieee80211_scanparams |
struct | ieee80211_scan_entry |
struct | ieee80211_scanner |
Macros | |
#define | IEEE80211_SCAN_MAX IEEE80211_CHAN_MAX |
#define | IEEE80211_SCAN_MAX_SSID 1 /* max # ssid's to probe */ |
#define | IEEE80211_SCAN_NOPICK 0x0001 /* scan only, no selection */ |
#define | IEEE80211_SCAN_ACTIVE 0x0002 /* active scan (probe req) */ |
#define | IEEE80211_SCAN_PICK1ST 0x0004 /* ``hey sailor'' mode */ |
#define | IEEE80211_SCAN_BGSCAN 0x0008 /* bg scan, exit ps at end */ |
#define | IEEE80211_SCAN_ONCE 0x0010 /* do one complete pass */ |
#define | IEEE80211_SCAN_NOBCAST 0x0020 /* no broadcast probe req */ |
#define | IEEE80211_SCAN_NOJOIN 0x0040 /* no auto-sequencing */ |
#define | IEEE80211_SCAN_GOTPICK 0x1000 /* got candidate, can stop */ |
#define | IEEE80211_SCAN_FLUSH 0x00010000 /* flush candidate table */ |
#define | IEEE80211_SCAN_NOSSID 0x80000000 /* don't update ssid list */ |
#define | IEEE80211_SCAN_FOREVER 0x7fffffff |
Typedefs | |
typedef void | ieee80211_scan_iter_func(void *, const struct ieee80211_scan_entry *) |
Enumerations | |
enum | { IEEE80211_SCAN_FAIL_TIMEOUT = 1 , IEEE80211_SCAN_FAIL_STATUS = 2 } |
enum | { IEEE80211_BPARSE_BADIELEN = 0x01 , IEEE80211_BPARSE_RATES_INVALID = 0x02 , IEEE80211_BPARSE_XRATES_INVALID = 0x04 , IEEE80211_BPARSE_SSID_INVALID = 0x08 , IEEE80211_BPARSE_CHAN_INVALID = 0x10 , IEEE80211_BPARSE_OFFCHAN = 0x20 , IEEE80211_BPARSE_BINTVAL_INVALID = 0x40 , IEEE80211_BPARSE_CSA_INVALID = 0x80 } |
#define IEEE80211_SCAN_ACTIVE 0x0002 /* active scan (probe req) */ |
Definition at line 133 of file ieee80211_scan.h.
#define IEEE80211_SCAN_BGSCAN 0x0008 /* bg scan, exit ps at end */ |
Definition at line 135 of file ieee80211_scan.h.
#define IEEE80211_SCAN_FLUSH 0x00010000 /* flush candidate table */ |
Definition at line 157 of file ieee80211_scan.h.
#define IEEE80211_SCAN_FOREVER 0x7fffffff |
Definition at line 168 of file ieee80211_scan.h.
#define IEEE80211_SCAN_GOTPICK 0x1000 /* got candidate, can stop */ |
Definition at line 139 of file ieee80211_scan.h.
#define IEEE80211_SCAN_MAX IEEE80211_CHAN_MAX |
Definition at line 74 of file ieee80211_scan.h.
#define IEEE80211_SCAN_MAX_SSID 1 /* max # ssid's to probe */ |
Definition at line 82 of file ieee80211_scan.h.
#define IEEE80211_SCAN_NOBCAST 0x0020 /* no broadcast probe req */ |
Definition at line 137 of file ieee80211_scan.h.
#define IEEE80211_SCAN_NOJOIN 0x0040 /* no auto-sequencing */ |
Definition at line 138 of file ieee80211_scan.h.
#define IEEE80211_SCAN_NOPICK 0x0001 /* scan only, no selection */ |
Definition at line 132 of file ieee80211_scan.h.
#define IEEE80211_SCAN_NOSSID 0x80000000 /* don't update ssid list */ |
Definition at line 158 of file ieee80211_scan.h.
#define IEEE80211_SCAN_ONCE 0x0010 /* do one complete pass */ |
Definition at line 136 of file ieee80211_scan.h.
#define IEEE80211_SCAN_PICK1ST 0x0004 /* ``hey sailor'' mode */ |
Definition at line 134 of file ieee80211_scan.h.
typedef void ieee80211_scan_iter_func(void *, const struct ieee80211_scan_entry *) |
Definition at line 203 of file ieee80211_scan.h.
anonymous enum |
Enumerator | |
---|---|
IEEE80211_SCAN_FAIL_TIMEOUT | |
IEEE80211_SCAN_FAIL_STATUS |
Definition at line 194 of file ieee80211_scan.h.
anonymous enum |
Definition at line 207 of file ieee80211_scan.h.
void ieee80211_add_scan | ( | struct ieee80211vap * | vap, |
struct ieee80211_channel * | curchan, | ||
const struct ieee80211_scanparams * | sp, | ||
const struct ieee80211_frame * | wh, | ||
int | subtype, | ||
int | rssi, | ||
int | noise | ||
) |
Definition at line 581 of file ieee80211_scan.c.
References ieee80211com::ic_scan_methods, ieee80211vap::iv_ic, and ieee80211_scan_methods::sc_add_scan.
Referenced by adhoc_recv_mgmt(), hostap_recv_mgmt(), mesh_recv_mgmt(), and sta_recv_mgmt().
int ieee80211_bg_scan | ( | struct ieee80211vap * | vap, |
int | flags | ||
) |
Definition at line 425 of file ieee80211_scan.c.
References ieee80211com::ic_scan_methods, IEEE80211_DPRINTF, IEEE80211_MSG_SCAN, ieee80211_scanner_get(), ieee80211vap::iv_ic, ieee80211vap::iv_opmode, and ieee80211_scan_methods::sc_bg_scan.
Referenced by sta_recv_mgmt(), and sta_roam_check().
void ieee80211_cancel_anyscan | ( | struct ieee80211vap * | vap | ) |
Definition at line 467 of file ieee80211_scan.c.
References ieee80211com::ic_scan_methods, ieee80211vap::iv_ic, and ieee80211_scan_methods::sc_cancel_anyscan.
Referenced by ieee80211_start_pkt().
void ieee80211_cancel_scan | ( | struct ieee80211vap * | vap | ) |
Definition at line 453 of file ieee80211_scan.c.
References ieee80211com::ic_scan_methods, ieee80211vap::iv_ic, and ieee80211_scan_methods::sc_cancel_scan.
Referenced by adhoc_newstate(), hostap_newstate(), ieee80211_ioctl_set80211(), ieee80211_new_state_locked(), mesh_newstate(), sta_newstate(), and wds_newstate().
int ieee80211_check_scan | ( | struct ieee80211vap * | vap, |
int | flags, | ||
u_int | duration, | ||
u_int | mindwell, | ||
u_int | maxdwell, | ||
u_int | nssid, | ||
const struct ieee80211_scan_ssid | ssids[] | ||
) |
Definition at line 354 of file ieee80211_scan.c.
References ieee80211com::ic_scan, ieee80211com::ic_scan_methods, IEEE80211_DPRINTF, IEEE80211_LOCK, IEEE80211_MSG_SCAN, IEEE80211_SCAN_ACTIVE, IEEE80211_SCAN_FLUSH, IEEE80211_SCAN_NOJOIN, IEEE80211_SCAN_NOPICK, IEEE80211_SCAN_ONCE, IEEE80211_SCAN_PICK1ST, ieee80211_scan_update_locked(), ieee80211_scanner_get(), IEEE80211_UNLOCK, ieee80211vap::iv_ic, ieee80211vap::iv_opmode, ieee80211_scan_methods::sc_check_scan, and ieee80211_scan_state::ss_ops.
Referenced by adhoc_newstate(), hostap_newstate(), ieee80211_check_scan_current(), ieee80211_scanreq(), mesh_newstate(), and sta_newstate().
int ieee80211_check_scan_current | ( | struct ieee80211vap * | vap | ) |
Definition at line 412 of file ieee80211_scan.c.
References ieee80211_check_scan(), IEEE80211_SCAN_ACTIVE, IEEE80211_SCAN_FOREVER, ieee80211vap::iv_des_nssid, and ieee80211vap::iv_des_ssid.
Referenced by adhoc_newstate(), hostap_newstate(), mesh_newstate(), sta_authretry(), sta_newstate(), and wds_newstate().
void ieee80211_probe_curchan | ( | struct ieee80211vap * | vap, |
int | force | ||
) |
Definition at line 517 of file ieee80211_scan.c.
References ieee80211com::ic_curchan, ieee80211_channel::ic_flags, ieee80211com::ic_flags_ext, ieee80211com::ic_scan_methods, IEEE80211_CHAN_PASSIVE, IEEE80211_FEXT_PROBECHAN, ieee80211vap::iv_ic, and ieee80211_scan_methods::sc_scan_probe_curchan.
Referenced by adhoc_recv_mgmt(), hostap_recv_mgmt(), mesh_recv_mgmt(), scan_curchan(), and sta_recv_mgmt().
void ieee80211_scan_assoc_fail | ( | struct ieee80211vap * | , |
const uint8_t | mac[IEEE80211_ADDR_LEN], | ||
int | reason | ||
) |
void ieee80211_scan_assoc_success | ( | struct ieee80211vap * | , |
const uint8_t | mac[IEEE80211_ADDR_LEN] | ||
) |
void ieee80211_scan_attach | ( | struct ieee80211com * | ic | ) |
Definition at line 76 of file ieee80211_scan.c.
References ieee80211com::ic_scan_methods, ieee80211_swscan_attach(), and ieee80211_scan_methods::sc_attach.
Referenced by ieee80211_ifattach().
void ieee80211_scan_copy_ssid | ( | struct ieee80211vap * | vap, |
struct ieee80211_scan_state * | ss, | ||
int | nssid, | ||
const struct ieee80211_scan_ssid | ssids[] | ||
) |
Definition at line 311 of file ieee80211_scan.c.
References IEEE80211_DPRINTF, IEEE80211_MSG_SCAN, IEEE80211_SCAN_MAX_SSID, ieee80211_scan_state::ss_nssid, and ieee80211_scan_state::ss_ssid.
Referenced by ieee80211_swscan_check_scan(), and ieee80211_swscan_start_scan_locked().
void ieee80211_scan_detach | ( | struct ieee80211com * | ic | ) |
Definition at line 89 of file ieee80211_scan.c.
References ieee80211com::ic_scan_methods, and ieee80211_scan_methods::sc_detach.
Referenced by ieee80211_ifdetach().
void ieee80211_scan_done | ( | struct ieee80211vap * | vap | ) |
Definition at line 493 of file ieee80211_scan.c.
References ieee80211com::ic_scan, ieee80211com::ic_scan_methods, IEEE80211_DPRINTF, IEEE80211_LOCK, IEEE80211_MSG_SCAN, IEEE80211_UNLOCK, ieee80211vap::iv_ic, ieee80211_scan_methods::sc_scan_done, ieee80211_scan_state::ss_last, and ieee80211_scan_state::ss_next.
void ieee80211_scan_dump | ( | struct ieee80211_scan_state * | ss | ) |
Referenced by ieee80211_swscan_bg_scan(), and ieee80211_swscan_start_scan_locked().
void ieee80211_scan_dump_channels | ( | const struct ieee80211_scan_state * | ss | ) |
Definition at line 281 of file ieee80211_scan.c.
References ieee80211_chan2ieee(), ieee80211_channel_type_char(), ieee80211_scan_state::ss_chans, ieee80211_scan_state::ss_ic, and ieee80211_scan_state::ss_next.
void ieee80211_scan_dump_probe_beacon | ( | uint8_t | subtype, |
int | isnew, | ||
const uint8_t | mac[IEEE80211_ADDR_LEN], | ||
const struct ieee80211_scanparams * | sp, | ||
int | rssi | ||
) |
void ieee80211_scan_flush | ( | struct ieee80211vap * | vap | ) |
Definition at line 654 of file ieee80211_scan.c.
References ieee80211com::ic_scan, IEEE80211_DPRINTF, IEEE80211_MSG_SCAN, ieee80211vap::iv_ic, ieee80211_scanner::scan_flush, ieee80211_scan_state::ss_ops, and ieee80211_scan_state::ss_vap.
Referenced by ieee80211_ioctl_setchanlist(), ieee80211_newstate_cb(), and ieee80211_setregdomain().
void ieee80211_scan_iterate | ( | struct ieee80211vap * | , |
ieee80211_scan_iter_func | , | ||
void * | |||
) |
void ieee80211_scan_next | ( | struct ieee80211vap * | vap | ) |
Definition at line 480 of file ieee80211_scan.c.
References ieee80211com::ic_scan_methods, ieee80211vap::iv_ic, and ieee80211_scan_methods::sc_scan_next.
struct ieee80211_channel * ieee80211_scan_pickchannel | ( | struct ieee80211com * | ic, |
int | flags | ||
) |
Definition at line 669 of file ieee80211_scan.c.
References ieee80211com::ic_scan, IEEE80211_DPRINTF, IEEE80211_LOCK_ASSERT, IEEE80211_MSG_SCAN, ieee80211vap::iv_opmode, ieee80211_scanner::scan_pickchan, ieee80211_scan_state::ss_ops, and ieee80211_scan_state::ss_vap.
Referenced by ieee80211_dfs_pickchannel().
void ieee80211_scan_timeout | ( | struct ieee80211com * | ic | ) |
Definition at line 598 of file ieee80211_scan.c.
References ieee80211com::ic_scan, ieee80211_scanner::scan_age, and ieee80211_scan_state::ss_ops.
Referenced by ieee80211_node_timeout().
void ieee80211_scan_update_locked | ( | struct ieee80211vap * | vap, |
const struct ieee80211_scanner * | scan | ||
) |
Definition at line 235 of file ieee80211_scan.c.
References ieee80211com::ic_scan, IEEE80211_DPRINTF, IEEE80211_LOCK_ASSERT, IEEE80211_MSG_SCAN, ieee80211_opmode_name, ieee80211vap::iv_ic, ieee80211vap::iv_ifp, ieee80211vap::iv_opmode, ieee80211_scanner::scan_attach, ieee80211_scanner::scan_detach, ieee80211_scan_state::ss_ops, and ieee80211_scan_state::ss_vap.
Referenced by ieee80211_check_scan(), ieee80211_swscan_bg_scan(), and ieee80211_swscan_start_scan_locked().
void ieee80211_scan_vattach | ( | struct ieee80211vap * | vap | ) |
Definition at line 130 of file ieee80211_scan.c.
References defroam, ieee80211com::ic_modecaps, ieee80211com::ic_scan_methods, IEEE80211_BGSCAN_IDLE_DEFAULT, IEEE80211_BGSCAN_INTVAL_DEFAULT, IEEE80211_MODE_AUTO, IEEE80211_MODE_MAX, IEEE80211_ROAMING_AUTO, IEEE80211_SCAN_VALID_DEFAULT, ieee80211vap::iv_bgscanidle, ieee80211vap::iv_bgscanintvl, ieee80211vap::iv_ic, ieee80211vap::iv_roaming, ieee80211vap::iv_roamparms, ieee80211vap::iv_scanvalid, and ieee80211_scan_methods::sc_vattach.
Referenced by ieee80211_vap_setup().
void ieee80211_scan_vdetach | ( | struct ieee80211vap * | vap | ) |
Definition at line 153 of file ieee80211_scan.c.
References ieee80211com::ic_scan, ieee80211com::ic_scan_methods, IEEE80211_LOCK, IEEE80211_UNLOCK, ieee80211vap::iv_ic, ieee80211_scan_methods::sc_vdetach, ieee80211_scanner::scan_detach, ieee80211_scan_state::ss_ops, and ieee80211_scan_state::ss_vap.
Referenced by ieee80211_vap_detach().
const struct ieee80211_scanner * ieee80211_scanner_get | ( | enum | ieee80211_opmode | ) |
Definition at line 188 of file ieee80211_scan.c.
References ieee80211_load_module(), IEEE80211_OPMODE_MAX, scan_modnames, and scanners.
Referenced by ieee80211_bg_scan(), ieee80211_check_scan(), and ieee80211_start_scan().
void ieee80211_scanner_register | ( | enum | ieee80211_opmode, |
const struct ieee80211_scanner * | scan | ||
) |
Definition at line 198 of file ieee80211_scan.c.
References IEEE80211_OPMODE_MAX, and scanners.
void ieee80211_scanner_unregister | ( | enum | ieee80211_opmode, |
const struct ieee80211_scanner * | scan | ||
) |
Definition at line 207 of file ieee80211_scan.c.
References IEEE80211_OPMODE_MAX, and scanners.
void ieee80211_scanner_unregister_all | ( | const struct ieee80211_scanner * | scan | ) |
Definition at line 217 of file ieee80211_scan.c.
References IEEE80211_OPMODE_MAX, and scanners.
int ieee80211_start_scan | ( | struct ieee80211vap * | vap, |
int | flags, | ||
u_int | duration, | ||
u_int | mindwell, | ||
u_int | maxdwell, | ||
u_int | nssid, | ||
const struct ieee80211_scan_ssid | ssids[] | ||
) |
Definition at line 329 of file ieee80211_scan.c.
References ieee80211com::ic_scan_methods, IEEE80211_DPRINTF, IEEE80211_MSG_SCAN, ieee80211_opmode_name, ieee80211_scanner_get(), ieee80211vap::iv_ic, ieee80211vap::iv_opmode, and ieee80211_scan_methods::sc_start_scan.
Referenced by ieee80211_ioctl_set80211(), and ieee80211_scanreq().
MALLOC_DECLARE | ( | M_80211_SCAN | ) |