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 &gt;= 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