1<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>struct wiphy</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"><link rel="home" href="index.html" title="The 802.11 subsystems – for kernel developers"><link rel="up" href="bk01ch01.html" title="Chapter 1. Device registration"><link rel="prev" href="API-enum-wiphy-flags.html" title="enum wiphy_flags"><link rel="next" href="API-struct-wireless-dev.html" title="struct wireless_dev"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center"><span class="phrase">struct wiphy</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-enum-wiphy-flags.html">Prev</a> </td><th width="60%" align="center">Chapter 1. Device registration</th><td width="20%" align="right"> <a accesskey="n" href="API-struct-wireless-dev.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-struct-wiphy"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>struct wiphy — 2 wireless hardware description 3 </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting"> 4struct wiphy { 5 u8 perm_addr[ETH_ALEN]; 6 u8 addr_mask[ETH_ALEN]; 7 struct mac_address * addresses; 8 const struct ieee80211_txrx_stypes * mgmt_stypes; 9 const struct ieee80211_iface_combination * iface_combinations; 10 int n_iface_combinations; 11 u16 software_iftypes; 12 u16 n_addresses; 13 u16 interface_modes; 14 u16 max_acl_mac_addrs; 15 u32 flags; 16 u32 regulatory_flags; 17 u32 features; 18 u8 ext_features[DIV_ROUND_UP(NUM_NL80211_EXT_FEATURES# 8)]; 19 u32 ap_sme_capa; 20 enum cfg80211_signal_type signal_type; 21 int bss_priv_size; 22 u8 max_scan_ssids; 23 u8 max_sched_scan_ssids; 24 u8 max_match_sets; 25 u16 max_scan_ie_len; 26 u16 max_sched_scan_ie_len; 27 u32 max_sched_scan_plans; 28 u32 max_sched_scan_plan_interval; 29 u32 max_sched_scan_plan_iterations; 30 int n_cipher_suites; 31 const u32 * cipher_suites; 32 u8 retry_short; 33 u8 retry_long; 34 u32 frag_threshold; 35 u32 rts_threshold; 36 u8 coverage_class; 37 char fw_version[ETHTOOL_FWVERS_LEN]; 38 u32 hw_version; 39#ifdef CONFIG_PM 40 const struct wiphy_wowlan_support * wowlan; 41 struct cfg80211_wowlan * wowlan_config; 42#endif 43 u16 max_remain_on_channel_duration; 44 u8 max_num_pmkids; 45 u32 available_antennas_tx; 46 u32 available_antennas_rx; 47 u32 probe_resp_offload; 48 const u8 * extended_capabilities; 49 const u8 * extended_capabilities_mask; 50 u8 extended_capabilities_len; 51 const void * privid; 52 struct ieee80211_supported_band * bands[IEEE80211_NUM_BANDS]; 53 void (* reg_notifier) (struct wiphy *wiphy,struct regulatory_request *request); 54 const struct ieee80211_regdomain __rcu * regd; 55 struct device dev; 56 bool registered; 57 struct dentry * debugfsdir; 58 const struct ieee80211_ht_cap * ht_capa_mod_mask; 59 const struct ieee80211_vht_cap * vht_capa_mod_mask; 60 possible_net_t _net; 61#ifdef CONFIG_CFG80211_WEXT 62 const struct iw_handler_def * wext; 63#endif 64 const struct wiphy_coalesce_support * coalesce; 65 const struct wiphy_vendor_command * vendor_commands; 66 const struct nl80211_vendor_cmd_info * vendor_events; 67 int n_vendor_commands; 68 int n_vendor_events; 69 u16 max_ap_assoc_sta; 70 u8 max_num_csa_counters; 71 u8 max_adj_channel_rssi_comp; 72 char priv[0]; 73}; </pre></div><div class="refsect1"><a name="id-1.2.2.16.5"></a><h2>Members</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term">perm_addr[ETH_ALEN]</span></dt><dd><p> 74permanent MAC address of this device 75 </p></dd><dt><span class="term">addr_mask[ETH_ALEN]</span></dt><dd><p> 76If the device supports multiple MAC addresses by masking, 77set this to a mask with variable bits set to 1, e.g. if the last 78four bits are variable then set it to 00-00-00-00-00-0f. The actual 79variable bits shall be determined by the interfaces added, with 80interfaces not matching the mask being rejected to be brought up. 81 </p></dd><dt><span class="term">addresses</span></dt><dd><p> 82If the device has more than one address, set this pointer 83to a list of addresses (6 bytes each). The first one will be used 84by default for perm_addr. In this case, the mask should be set to 85all-zeroes. In this case it is assumed that the device can handle 86the same number of arbitrary MAC addresses. 87 </p></dd><dt><span class="term">mgmt_stypes</span></dt><dd><p> 88bitmasks of frame subtypes that can be subscribed to or 89transmitted through nl80211, points to an array indexed by interface 90type 91 </p></dd><dt><span class="term">iface_combinations</span></dt><dd><p> 92Valid interface combinations array, should not 93list single interface types. 94 </p></dd><dt><span class="term">n_iface_combinations</span></dt><dd><p> 95number of entries in <em class="parameter"><code>iface_combinations</code></em> array. 96 </p></dd><dt><span class="term">software_iftypes</span></dt><dd><p> 97bitmask of software interface types, these are not 98subject to any restrictions since they are purely managed in SW. 99 </p></dd><dt><span class="term">n_addresses</span></dt><dd><p> 100number of addresses in <em class="parameter"><code>addresses</code></em>. 101 </p></dd><dt><span class="term">interface_modes</span></dt><dd><p> 102bitmask of interfaces types valid for this wiphy, 103must be set by driver 104 </p></dd><dt><span class="term">max_acl_mac_addrs</span></dt><dd><p> 105Maximum number of MAC addresses that the device 106supports for ACL. 107 </p></dd><dt><span class="term">flags</span></dt><dd><p> 108wiphy flags, see <span class="structname">enum</span> wiphy_flags 109 </p></dd><dt><span class="term">regulatory_flags</span></dt><dd><p> 110wiphy regulatory flags, see 111<span class="structname">enum</span> ieee80211_regulatory_flags 112 </p></dd><dt><span class="term">features</span></dt><dd><p> 113features advertised to nl80211, see <span class="structname">enum</span> nl80211_feature_flags. 114 </p></dd><dt><span class="term">ext_features[DIV_ROUND_UP(NUM_NL80211_EXT_FEATURES# 8)]</span></dt><dd><p> 115extended features advertised to nl80211, see 116<span class="structname">enum</span> nl80211_ext_feature_index. 117 </p></dd><dt><span class="term">ap_sme_capa</span></dt><dd><p> 118AP SME capabilities, flags from <span class="structname">enum</span> nl80211_ap_sme_features. 119 </p></dd><dt><span class="term">signal_type</span></dt><dd><p> 120signal type reported in <span class="structname"><a class="link" href="API-struct-cfg80211-bss.html" title="struct cfg80211_bss">struct cfg80211_bss</a></span>. 121 </p></dd><dt><span class="term">bss_priv_size</span></dt><dd><p> 122each BSS struct has private data allocated with it, 123this variable determines its size 124 </p></dd><dt><span class="term">max_scan_ssids</span></dt><dd><p> 125maximum number of SSIDs the device can scan for in 126any given scan 127 </p></dd><dt><span class="term">max_sched_scan_ssids</span></dt><dd><p> 128maximum number of SSIDs the device can scan 129for in any given scheduled scan 130 </p></dd><dt><span class="term">max_match_sets</span></dt><dd><p> 131maximum number of match sets the device can handle 132when performing a scheduled scan, 0 if filtering is not 133supported. 134 </p></dd><dt><span class="term">max_scan_ie_len</span></dt><dd><p> 135maximum length of user-controlled IEs device can 136add to probe request frames transmitted during a scan, must not 137include fixed IEs like supported rates 138 </p></dd><dt><span class="term">max_sched_scan_ie_len</span></dt><dd><p> 139same as max_scan_ie_len, but for scheduled 140scans 141 </p></dd><dt><span class="term">max_sched_scan_plans</span></dt><dd><p> 142maximum number of scan plans (scan interval and number 143of iterations) for scheduled scan supported by the device. 144 </p></dd><dt><span class="term">max_sched_scan_plan_interval</span></dt><dd><p> 145maximum interval (in seconds) for a 146single scan plan supported by the device. 147 </p></dd><dt><span class="term">max_sched_scan_plan_iterations</span></dt><dd><p> 148maximum number of iterations for a single 149scan plan supported by the device. 150 </p></dd><dt><span class="term">n_cipher_suites</span></dt><dd><p> 151number of supported cipher suites 152 </p></dd><dt><span class="term">cipher_suites</span></dt><dd><p> 153supported cipher suites 154 </p></dd><dt><span class="term">retry_short</span></dt><dd><p> 155Retry limit for short frames (dot11ShortRetryLimit) 156 </p></dd><dt><span class="term">retry_long</span></dt><dd><p> 157Retry limit for long frames (dot11LongRetryLimit) 158 </p></dd><dt><span class="term">frag_threshold</span></dt><dd><p> 159Fragmentation threshold (dot11FragmentationThreshold); 160-1 = fragmentation disabled, only odd values >= 256 used 161 </p></dd><dt><span class="term">rts_threshold</span></dt><dd><p> 162RTS threshold (dot11RTSThreshold); -1 = RTS/CTS disabled 163 </p></dd><dt><span class="term">coverage_class</span></dt><dd><p> 164current coverage class 165 </p></dd><dt><span class="term">fw_version[ETHTOOL_FWVERS_LEN]</span></dt><dd><p> 166firmware version for ethtool reporting 167 </p></dd><dt><span class="term">hw_version</span></dt><dd><p> 168hardware version for ethtool reporting 169 </p></dd><dt><span class="term">wowlan</span></dt><dd><p> 170WoWLAN support information 171 </p></dd><dt><span class="term">wowlan_config</span></dt><dd><p> 172current WoWLAN configuration; this should usually not be 173used since access to it is necessarily racy, use the parameter passed 174to the <code class="function">suspend</code> operation instead. 175 </p></dd><dt><span class="term">max_remain_on_channel_duration</span></dt><dd><p> 176Maximum time a remain-on-channel operation 177may request, if implemented. 178 </p></dd><dt><span class="term">max_num_pmkids</span></dt><dd><p> 179maximum number of PMKIDs supported by device 180 </p></dd><dt><span class="term">available_antennas_tx</span></dt><dd><p> 181bitmap of antennas which are available to be 182configured as TX antennas. Antenna configuration commands will be 183rejected unless this or <em class="parameter"><code>available_antennas_rx</code></em> is set. 184 </p></dd><dt><span class="term">available_antennas_rx</span></dt><dd><p> 185bitmap of antennas which are available to be 186configured as RX antennas. Antenna configuration commands will be 187rejected unless this or <em class="parameter"><code>available_antennas_tx</code></em> is set. 188 </p></dd><dt><span class="term">probe_resp_offload</span></dt><dd><p> 189Bitmap of supported protocols for probe response offloading. 190See <span class="structname">enum</span> nl80211_probe_resp_offload_support_attr. Only valid 191when the wiphy flag <em class="parameter"><code>WIPHY_FLAG_AP_PROBE_RESP_OFFLOAD</code></em> is set. 192 </p></dd><dt><span class="term">extended_capabilities</span></dt><dd><p> 193extended capabilities supported by the driver, 194additional capabilities might be supported by userspace; these are 195the 802.11 extended capabilities (<span class="quote">“<span class="quote">Extended Capabilities element</span>”</span>) 196and are in the same format as in the information element. See 197802.11-2012 8.4.2.29 for the defined fields. 198 </p></dd><dt><span class="term">extended_capabilities_mask</span></dt><dd><p> 199mask of the valid values 200 </p></dd><dt><span class="term">extended_capabilities_len</span></dt><dd><p> 201length of the extended capabilities 202 </p></dd><dt><span class="term">privid</span></dt><dd><p> 203a pointer that drivers can use to identify if an arbitrary 204wiphy is theirs, e.g. in global notifiers 205 </p></dd><dt><span class="term">bands[IEEE80211_NUM_BANDS]</span></dt><dd><p> 206information about bands/channels supported by this device 207 </p></dd><dt><span class="term">reg_notifier</span></dt><dd><p> 208the driver's regulatory notification callback, 209note that if your driver uses <code class="function"><a class="link" href="API-wiphy-apply-custom-regulatory.html" title="wiphy_apply_custom_regulatory">wiphy_apply_custom_regulatory</a></code> 210the reg_notifier's request can be passed as NULL 211 </p></dd><dt><span class="term">regd</span></dt><dd><p> 212the driver's regulatory domain, if one was requested via 213the <code class="function"><a class="link" href="API-regulatory-hint.html" title="regulatory_hint">regulatory_hint</a></code> API. This can be used by the driver 214on the <code class="function">reg_notifier</code> if it chooses to ignore future 215regulatory domain changes caused by other drivers. 216 </p></dd><dt><span class="term">dev</span></dt><dd><p> 217(virtual) struct device for this wiphy 218 </p></dd><dt><span class="term">registered</span></dt><dd><p> 219helps synchronize suspend/resume with wiphy unregister 220 </p></dd><dt><span class="term">debugfsdir</span></dt><dd><p> 221debugfs directory used for this wiphy, will be renamed 222automatically on wiphy renames 223 </p></dd><dt><span class="term">ht_capa_mod_mask</span></dt><dd><p> 224Specify what ht_cap values can be over-ridden. 225If null, then none can be over-ridden. 226 </p></dd><dt><span class="term">vht_capa_mod_mask</span></dt><dd><p> 227Specify what VHT capabilities can be over-ridden. 228If null, then none can be over-ridden. 229 </p></dd><dt><span class="term">_net</span></dt><dd><p> 230the network namespace this wiphy currently lives in 231 </p></dd><dt><span class="term">wext</span></dt><dd><p> 232wireless extension handlers 233 </p></dd><dt><span class="term">coalesce</span></dt><dd><p> 234packet coalescing support information 235 </p></dd><dt><span class="term">vendor_commands</span></dt><dd><p> 236array of vendor commands supported by the hardware 237 </p></dd><dt><span class="term">vendor_events</span></dt><dd><p> 238array of vendor events supported by the hardware 239 </p></dd><dt><span class="term">n_vendor_commands</span></dt><dd><p> 240number of vendor commands 241 </p></dd><dt><span class="term">n_vendor_events</span></dt><dd><p> 242number of vendor events 243 </p></dd><dt><span class="term">max_ap_assoc_sta</span></dt><dd><p> 244maximum number of associated stations supported in AP mode 245(including P2P GO) or 0 to indicate no such limit is advertised. The 246driver is allowed to advertise a theoretical limit that it can reach in 247some cases, but may not always reach. 248 </p></dd><dt><span class="term">max_num_csa_counters</span></dt><dd><p> 249Number of supported csa_counters in beacons 250and probe responses. This value should be set if the driver 251wishes to limit the number of csa counters. Default (0) means 252infinite. 253 </p></dd><dt><span class="term">max_adj_channel_rssi_comp</span></dt><dd><p> 254max offset of between the channel on which the 255frame was sent and the channel on which the frame was heard for which 256the reported rssi is still valid. If a driver is able to compensate the 257low rssi when a frame is heard on different channel, then it should set 258this variable to the maximal offset for which it can compensate. 259This value should be set in MHz. 260 </p></dd><dt><span class="term">priv[0]</span></dt><dd><p> 261driver private data (sized according to <code class="function"><a class="link" href="API-wiphy-new.html" title="wiphy_new">wiphy_new</a></code> parameter) 262 </p></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-enum-wiphy-flags.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="bk01ch01.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-struct-wireless-dev.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">enum wiphy_flags</span> </td><td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td><td width="40%" align="right" valign="top"> <span class="phrase">struct wireless_dev</span></td></tr></table></div></body></html> 263