1<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>struct ieee80211_hw</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="basics.html" title="Chapter 1. Basic hardware handling"><link rel="prev" href="basics.html" title="Chapter 1. Basic hardware handling"><link rel="next" href="API-enum-ieee80211-hw-flags.html" title="enum ieee80211_hw_flags"></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 ieee80211_hw</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="basics.html">Prev</a> </td><th width="60%" align="center">Chapter 1. Basic hardware handling</th><td width="20%" align="right"> <a accesskey="n" href="API-enum-ieee80211-hw-flags.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-struct-ieee80211-hw"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>struct ieee80211_hw — 
2  hardware information and state
3 </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
4struct ieee80211_hw {
5  struct ieee80211_conf conf;
6  struct wiphy * wiphy;
7  const char * rate_control_algorithm;
8  void * priv;
9  unsigned long flags[BITS_TO_LONGS(NUM_IEEE80211_HW_FLAGS)];
10  unsigned int extra_tx_headroom;
11  unsigned int extra_beacon_tailroom;
12  int vif_data_size;
13  int sta_data_size;
14  int chanctx_data_size;
15  int txq_data_size;
16  u16 queues;
17  u16 max_listen_interval;
18  s8 max_signal;
19  u8 max_rates;
20  u8 max_report_rates;
21  u8 max_rate_tries;
22  u8 max_rx_aggregation_subframes;
23  u8 max_tx_aggregation_subframes;
24  u8 offchannel_tx_hw_queue;
25  u8 radiotap_mcs_details;
26  u16 radiotap_vht_details;
27  netdev_features_t netdev_features;
28  u8 uapsd_queues;
29  u8 uapsd_max_sp_len;
30  u8 n_cipher_schemes;
31  const struct ieee80211_cipher_scheme * cipher_schemes;
32  int txq_ac_max_pending;
33};  </pre></div><div class="refsect1"><a name="id-1.3.3.3.7.5"></a><h2>Members</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term">conf</span></dt><dd><p>
34<span class="structname"><a class="link" href="API-struct-ieee80211-conf.html" title="struct ieee80211_conf">struct ieee80211_conf</a></span>, device configuration, don't use.
35      </p></dd><dt><span class="term">wiphy</span></dt><dd><p>
36This points to the <span class="structname"><a class="link" href="API-struct-wiphy.html" title="struct wiphy">struct wiphy</a></span> allocated for this
37802.11 PHY. You must fill in the <em class="parameter"><code>perm_addr</code></em> and <em class="parameter"><code>dev</code></em>
38members of this structure using <code class="function"><a class="link" href="API-SET-IEEE80211-DEV.html" title="SET_IEEE80211_DEV">SET_IEEE80211_DEV</a></code>
39and <code class="function"><a class="link" href="API-SET-IEEE80211-PERM-ADDR.html" title="SET_IEEE80211_PERM_ADDR">SET_IEEE80211_PERM_ADDR</a></code>. Additionally, all supported
40bands (with channels, bitrates) are registered here.
41      </p></dd><dt><span class="term">rate_control_algorithm</span></dt><dd><p>
42rate control algorithm for this hardware.
43If unset (NULL), the default algorithm will be used. Must be
44set before calling <code class="function"><a class="link" href="API-ieee80211-register-hw.html" title="ieee80211_register_hw">ieee80211_register_hw</a></code>.
45      </p></dd><dt><span class="term">priv</span></dt><dd><p>
46pointer to private area that was allocated for driver use
47along with this structure.
48      </p></dd><dt><span class="term">flags[BITS_TO_LONGS(NUM_IEEE80211_HW_FLAGS)]</span></dt><dd><p>
49hardware flags, see <span class="structname">enum</span> ieee80211_hw_flags.
50      </p></dd><dt><span class="term">extra_tx_headroom</span></dt><dd><p>
51headroom to reserve in each transmit skb
52for use by the driver (e.g. for transmit headers.)
53      </p></dd><dt><span class="term">extra_beacon_tailroom</span></dt><dd><p>
54tailroom to reserve in each beacon tx skb.
55Can be used by drivers to add extra IEs.
56      </p></dd><dt><span class="term">vif_data_size</span></dt><dd><p>
57size (in bytes) of the drv_priv data area
58within <span class="structname"><a class="link" href="API-struct-ieee80211-vif.html" title="struct ieee80211_vif">struct ieee80211_vif</a></span>.
59      </p></dd><dt><span class="term">sta_data_size</span></dt><dd><p>
60size (in bytes) of the drv_priv data area
61within <span class="structname"><a class="link" href="API-struct-ieee80211-sta.html" title="struct ieee80211_sta">struct ieee80211_sta</a></span>.
62      </p></dd><dt><span class="term">chanctx_data_size</span></dt><dd><p>
63size (in bytes) of the drv_priv data area
64within <span class="structname">struct ieee80211_chanctx_conf</span>.
65      </p></dd><dt><span class="term">txq_data_size</span></dt><dd><p>
66size (in bytes) of the drv_priv data area
67within <em class="parameter"><code>struct</code></em> ieee80211_txq.
68      </p></dd><dt><span class="term">queues</span></dt><dd><p>
69number of available hardware transmit queues for
70data packets. WMM/QoS requires at least four, these
71queues need to have configurable access parameters.
72      </p></dd><dt><span class="term">max_listen_interval</span></dt><dd><p>
73max listen interval in units of beacon interval
74that HW supports
75      </p></dd><dt><span class="term">max_signal</span></dt><dd><p>
76Maximum value for signal (rssi) in RX information, used
77only when <em class="parameter"><code>IEEE80211_HW_SIGNAL_UNSPEC</code></em> or <em class="parameter"><code>IEEE80211_HW_SIGNAL_DB</code></em>
78      </p></dd><dt><span class="term">max_rates</span></dt><dd><p>
79maximum number of alternate rate retry stages the hw
80can handle.
81      </p></dd><dt><span class="term">max_report_rates</span></dt><dd><p>
82maximum number of alternate rate retry stages
83the hw can report back.
84      </p></dd><dt><span class="term">max_rate_tries</span></dt><dd><p>
85maximum number of tries for each stage
86      </p></dd><dt><span class="term">max_rx_aggregation_subframes</span></dt><dd><p>
87maximum buffer size (number of
88sub-frames) to be used for A-MPDU block ack receiver
89aggregation.
90This is only relevant if the device has restrictions on the
91number of subframes, if it relies on mac80211 to do reordering
92it shouldn't be set.
93      </p></dd><dt><span class="term">max_tx_aggregation_subframes</span></dt><dd><p>
94maximum number of subframes in an
95aggregate an HT driver will transmit. Though ADDBA will advertise
96a constant value of 64 as some older APs can crash if the window
97size is smaller (an example is LinkSys WRT120N with FW v1.0.07
98build 002 Jun 18 2012).
99      </p></dd><dt><span class="term">offchannel_tx_hw_queue</span></dt><dd><p>
100HW queue ID to use for offchannel TX
101(if <code class="constant">IEEE80211_HW_QUEUE_CONTROL</code> is set)
102      </p></dd><dt><span class="term">radiotap_mcs_details</span></dt><dd><p>
103lists which MCS information can the HW
104reports, by default it is set to _MCS, _GI and _BW but doesn't
105include _FMT. Use <code class="constant">IEEE80211_RADIOTAP_MCS_HAVE_</code>* values, only
106adding _BW is supported today.
107      </p></dd><dt><span class="term">radiotap_vht_details</span></dt><dd><p>
108lists which VHT MCS information the HW reports,
109the default is _GI | _BANDWIDTH.
110Use the <code class="constant">IEEE80211_RADIOTAP_VHT_KNOWN_</code>* values.
111      </p></dd><dt><span class="term">netdev_features</span></dt><dd><p>
112netdev features to be set in each netdev created
113from this HW. Note that not all features are usable with mac80211,
114other features will be rejected during HW registration.
115      </p></dd><dt><span class="term">uapsd_queues</span></dt><dd><p>
116This bitmap is included in (re)association frame to indicate
117for each access category if it is uAPSD trigger-enabled and delivery-
118enabled. Use IEEE80211_WMM_IE_STA_QOSINFO_AC_* to set this bitmap.
119Each bit corresponds to different AC. Value '1' in specific bit means
120that corresponding AC is both trigger- and delivery-enabled. '0' means
121neither enabled.
122      </p></dd><dt><span class="term">uapsd_max_sp_len</span></dt><dd><p>
123maximum number of total buffered frames the WMM AP may
124deliver to a WMM STA during any Service Period triggered by the WMM STA.
125Use IEEE80211_WMM_IE_STA_QOSINFO_SP_* for correct values.
126      </p></dd><dt><span class="term">n_cipher_schemes</span></dt><dd><p>
127a size of an array of cipher schemes definitions.
128      </p></dd><dt><span class="term">cipher_schemes</span></dt><dd><p>
129a pointer to an array of cipher scheme definitions
130supported by HW.
131      </p></dd><dt><span class="term">txq_ac_max_pending</span></dt><dd><p>
132maximum number of frames per AC pending in all txq
133entries for a vif.
134      </p></dd></dl></div></div><div class="refsect1"><a name="id-1.3.3.3.7.6"></a><h2>Description</h2><p>
135   </p><p>
136
137   This structure contains the configuration and hardware
138   information for an 802.11 PHY.
139</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="basics.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="basics.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="API-enum-ieee80211-hw-flags.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">Chapter 1. Basic hardware handling </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">enum ieee80211_hw_flags</span></td></tr></table></div></body></html>
140