STRUCT WIPHY

Section: Device registration (9)
Updated: February 2011
Index Return to Main Contents
 

NAME

struct_wiphy - wireless hardware description  

SYNOPSIS

struct wiphy {
  u8 perm_addr[ETH_ALEN];
  u8 addr_mask[ETH_ALEN];
  struct mac_address * addresses;
  const struct ieee80211_txrx_stypes * mgmt_stypes;
  u16 n_addresses;
  u16 interface_modes;
  u32 flags;
  enum cfg80211_signal_type signal_type;
  int bss_priv_size;
  u8 max_scan_ssids;
  u16 max_scan_ie_len;
  int n_cipher_suites;
  const u32 * cipher_suites;
  u8 retry_short;
  u8 retry_long;
  u32 frag_threshold;
  u32 rts_threshold;
  u8 coverage_class;
  char fw_version[ETHTOOL_BUSINFO_LEN];
  u32 hw_version;
  u8 max_num_pmkids;
  const void * privid;
  struct ieee80211_supported_band * bands[IEEE80211_NUM_BANDS];
  int (* reg_notifier) (struct wiphy *wiphy,struct regulatory_request *request);
  const struct ieee80211_regdomain * regd;
  struct device dev;
  struct dentry * debugfsdir;
#ifdef CONFIG_NET_NS
  struct net * _net;
#endif
#ifdef CONFIG_CFG80211_WEXT
  const struct iw_handler_def * wext;
#endif
  char priv[0] __attribute__((__aligned__(NETDEV_ALIGN)));
};  
 

MEMBERS

perm_addr[ETH_ALEN]

permanent MAC address of this device

addr_mask[ETH_ALEN]

If the device supports multiple MAC addresses by masking, set this to a mask with variable bits set to 1, e.g. if the last

addresses

If the device has more than one address, set this pointer to a list of addresses (6 bytes each). The first one will be used by default for perm_addr. In this case, the mask should be set to all-zeroes. In this case it is assumed that the device can handle the same number of arbitrary MAC addresses.

mgmt_stypes

bitmasks of frame subtypes that can be subscribed to or transmitted through nl80211, points to an array indexed by interface type

n_addresses

number of addresses in addresses.

interface_modes

bitmask of interfaces types valid for this wiphy, must be set by driver

flags

wiphy flags, see enum wiphy_flags

signal_type

signal type reported in struct cfg80211_bss.

bss_priv_size

each BSS struct has private data allocated with it, this variable determines its size

max_scan_ssids

maximum number of SSIDs the device can scan for in any given scan

max_scan_ie_len

maximum length of user-controlled IEs device can add to probe request frames transmitted during a scan, must not include fixed IEs like supported rates

n_cipher_suites

number of supported cipher suites

cipher_suites

supported cipher suites

retry_short

Retry limit for short frames (dot11ShortRetryLimit)

retry_long

Retry limit for long frames (dot11LongRetryLimit)

frag_threshold

Fragmentation threshold (dot11FragmentationThreshold); -1 = fragmentation disabled, only odd values >= 256 used

rts_threshold

RTS threshold (dot11RTSThreshold); -1 = RTS/CTS disabled

coverage_class

current coverage class

fw_version[ETHTOOL_BUSINFO_LEN]

firmware version for ethtool reporting

hw_version

hardware version for ethtool reporting

max_num_pmkids

maximum number of PMKIDs supported by device

privid

a pointer that drivers can use to identify if an arbitrary wiphy is theirs, e.g. in global notifiers

bands[IEEE80211_NUM_BANDS]

information about bands/channels supported by this device

reg_notifier

the driver's regulatory notification callback

regd

the driver's regulatory domain, if one was requested via the regulatory_hint API. This can be used by the driver on the reg_notifier if it chooses to ignore future regulatory domain changes caused by other drivers.

dev

(virtual) struct device for this wiphy

debugfsdir

debugfs directory used for this wiphy, will be renamed automatically on wiphy renames

_net

the network namespace this wiphy currently lives in

wext

wireless extension handlers

priv[0] __attribute__((__aligned__(NETDEV_ALIGN)))

driver private data (sized according to wiphy_new parameter)
 

FOUR BITS ARE VARIABLE THEN SET IT TO 00

...:00:0f. The actual variable bits shall be determined by the interfaces added, with interfaces not matching the mask being rejected to be brought up.  

AUTHOR

Johannes Berg <johannes@sipsolutions.net>

Author.
 

COPYRIGHT