STRUCT WIRELESS_DEV(9) | Device registration | STRUCT WIRELESS_DEV(9) |
NAME¶
struct_wireless_dev - wireless device state
SYNOPSIS¶
struct wireless_dev {
struct wiphy * wiphy;
enum nl80211_iftype iftype;
struct list_head list;
struct net_device * netdev;
u32 identifier;
struct list_head mgmt_registrations;
spinlock_t mgmt_registrations_lock;
struct mutex mtx;
bool use_4addr;
bool is_running;
u8 address[ETH_ALEN];
u8 ssid[IEEE80211_MAX_SSID_LEN];
u8 ssid_len;
u8 mesh_id_len;
u8 mesh_id_up_len;
struct cfg80211_conn * conn;
struct cfg80211_cached_keys * connect_keys;
enum ieee80211_bss_type conn_bss_type;
u32 conn_owner_nlportid;
struct work_struct disconnect_wk;
u8 disconnect_bssid[ETH_ALEN];
struct list_head event_list;
spinlock_t event_lock;
struct cfg80211_internal_bss * current_bss;
struct cfg80211_chan_def preset_chandef;
struct cfg80211_chan_def chandef;
bool ibss_fixed;
bool ibss_dfs_possible;
bool ps;
int ps_timeout;
int beacon_interval;
u32 ap_unexpected_nlportid;
u32 owner_nlportid;
bool nl_owner_dead;
bool cac_started;
unsigned long cac_start_time;
unsigned int cac_time_ms; #ifdef CONFIG_CFG80211_WEXT
struct wext; #endif
struct cfg80211_cqm_config * cqm_config;
struct list_head pmsr_list;
spinlock_t pmsr_lock;
struct work_struct pmsr_free_wk; };
MEMBERS¶
wiphy
iftype
list
netdev
identifier
mgmt_registrations
mgmt_registrations_lock
mtx
use_4addr
is_running
address[ETH_ALEN]
ssid[IEEE80211_MAX_SSID_LEN]
ssid_len
mesh_id_len
mesh_id_up_len
conn
connect_keys
conn_bss_type
conn_owner_nlportid
disconnect_wk
disconnect_bssid[ETH_ALEN]
event_list
event_lock
current_bss
preset_chandef
chandef
ibss_fixed
ibss_dfs_possible
ps
ps_timeout
beacon_interval
ap_unexpected_nlportid
owner_nlportid
nl_owner_dead
cac_started
cac_start_time
cac_time_ms
wext
cqm_config
pmsr_list
pmsr_lock
pmsr_free_wk
DESCRIPTION¶
For netdevs, this structure must be allocated by the driver that uses the ieee80211_ptr field in struct net_device (this is intentional so it can be allocated along with the netdev.) It need not be registered then as netdev registration will be intercepted by cfg80211 to see the new wireless device.
For non-netdev uses, it must also be allocated by the driver in response to the cfg80211 callbacks that require it, as there's no netdev registration in that case it may not be allocated outside of callback operations that return it.
AUTHOR¶
Johannes Berg <johannes@sipsolutions.net>
COPYRIGHT¶
June 2024 | Kernel Hackers Manual 3.10 |