'\" t .\" Title: struct wireless_dev .\" Author: .\" Generator: DocBook XSL Stylesheets v1.78.1 .\" Date: January 2017 .\" Manual: Device registration .\" Source: Kernel Hackers Manual 4.8.15 .\" Language: English .\" .TH "STRUCT WIRELESS_DEV" "9" "January 2017" "Kernel Hackers Manual 4\&.8\&." "Device registration" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .\" http://bugs.debian.org/507673 .\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- .\" disable hyphenation .nh .\" disable justification (adjust text to left margin only) .ad l .\" ----------------------------------------------------------------- .\" * MAIN CONTENT STARTS HERE * .\" ----------------------------------------------------------------- .SH "NAME" struct_wireless_dev \- wireless device state .SH "SYNOPSIS" .sp .nf 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 p2p_started; 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; 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; bool cac_started; unsigned long cac_start_time; unsigned int cac_time_ms; u32 owner_nlportid; #ifdef CONFIG_CFG80211_WEXT struct wext; #endif }; .fi .SH "MEMBERS" .PP wiphy .RS 4 pointer to hardware description .RE .PP iftype .RS 4 interface type .RE .PP list .RS 4 (private) Used to collect the interfaces .RE .PP netdev .RS 4 (private) Used to reference back to the netdev, may be \fBNULL\fR .RE .PP identifier .RS 4 (private) Identifier used in nl80211 to identify this wireless device if it has no netdev .RE .PP mgmt_registrations .RS 4 list of registrations for management frames .RE .PP mgmt_registrations_lock .RS 4 lock for the list .RE .PP mtx .RS 4 mutex used to lock data in this struct, may be used by drivers and some API functions require it held .RE .PP use_4addr .RS 4 indicates 4addr mode is used on this interface, must be set by driver (if supported) on add_interface BEFORE registering the netdev and may otherwise be used by driver read\-only, will be update by cfg80211 on change_interface .RE .PP p2p_started .RS 4 true if this is a P2P Device that has been started .RE .PP address[ETH_ALEN] .RS 4 The address for this device, valid only if \fInetdev\fR is \fBNULL\fR .RE .PP ssid[IEEE80211_MAX_SSID_LEN] .RS 4 (private) Used by the internal configuration code .RE .PP ssid_len .RS 4 (private) Used by the internal configuration code .RE .PP mesh_id_len .RS 4 (private) Used by the internal configuration code .RE .PP mesh_id_up_len .RS 4 (private) Used by the internal configuration code .RE .PP conn .RS 4 (private) cfg80211 software SME connection state machine data .RE .PP connect_keys .RS 4 (private) keys to set after connection is established .RE .PP conn_bss_type .RS 4 connecting/connected BSS type .RE .PP event_list .RS 4 (private) list for internal event processing .RE .PP event_lock .RS 4 (private) lock for event list .RE .PP current_bss .RS 4 (private) Used by the internal configuration code .RE .PP preset_chandef .RS 4 (private) Used by the internal configuration code to track the channel to be used for AP later .RE .PP chandef .RS 4 (private) Used by the internal configuration code to track the user\-set channel definition\&. .RE .PP ibss_fixed .RS 4 (private) IBSS is using fixed BSSID .RE .PP ibss_dfs_possible .RS 4 (private) IBSS may change to a DFS channel .RE .PP ps .RS 4 powersave mode is enabled .RE .PP ps_timeout .RS 4 dynamic powersave timeout .RE .PP beacon_interval .RS 4 beacon interval used on this device for transmitting beacons, 0 when not valid .RE .PP ap_unexpected_nlportid .RS 4 (private) netlink port ID of application registered for unexpected class 3 frames (AP mode) .RE .PP cac_started .RS 4 true if DFS channel availability check has been started .RE .PP cac_start_time .RS 4 timestamp (jiffies) when the dfs state was entered\&. .RE .PP cac_time_ms .RS 4 CAC time in ms .RE .PP owner_nlportid .RS 4 (private) owner socket port ID .RE .PP wext .RS 4 (private) Used by the internal wireless extensions compat code .RE .SH "DESCRIPTION" .PP .PP 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\&. .PP For non\-netdev uses, it must also be allocated by the driver in response to the cfg80211 callbacks that require it, as there\*(Aqs no netdev registration in that case it may not be allocated outside of callback operations that return it\&. .SH "AUTHOR" .PP \fBJohannes Berg\fR <\&johannes@sipsolutions.net\&> .RS 4 Author. .RE .SH "COPYRIGHT" .br