STRUCT WIRELESS_DEV(9) Device registration STRUCT WIRELESS_DEV(9)NAMEstruct_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;
struct work_struct cleanup_work;
bool use_4addr;
bool p2p_started;
u8 address[ETH_ALEN] __aligned(sizeof(u16));
u8 ssid[IEEE80211_MAX_SSID_LEN];
u8 ssid_len;
u8 mesh_id_len;
u8 mesh_id_up_len;
enum wext;
#endif
};
MEMBERS
wiphy
pointer to hardware description
iftype
interface type
list
(private) Used to collect the interfaces
netdev
(private) Used to reference back to the netdev, may be NULL
identifier
(private) Identifier used in nl80211 to identify this wireless
device if it has no netdev
mgmt_registrations
list of registrations for management frames
mgmt_registrations_lock
lock for the list
mtx
mutex used to lock data in this struct
cleanup_work
work struct used for cleanup that can't be done directly
use_4addr
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
p2p_started
true if this is a P2P Device that has been started
address[ETH_ALEN] __aligned(sizeof(u16))
The address for this device, valid only if netdev is NULL
ssid[IEEE80211_MAX_SSID_LEN]
(private) Used by the internal configuration code
ssid_len
(private) Used by the internal configuration code
mesh_id_len
(private) Used by the internal configuration code
mesh_id_up_len
(private) Used by the internal configuration code
wext
(private) Used by the internal wireless extensions compat code
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>
Author.
COPYRIGHTKernel Hackers Manual 3.8. June 2014 STRUCT WIRELESS_DEV(9)