1<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>enum ieee80211_hw_flags</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="API-struct-ieee80211-hw.html" title="struct ieee80211_hw"><link rel="next" href="API-SET-IEEE80211-DEV.html" title="SET_IEEE80211_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">enum ieee80211_hw_flags</span></th></tr><tr><td width="20%" align="left"><a accesskey="p" href="API-struct-ieee80211-hw.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-SET-IEEE80211-DEV.html">Next</a></td></tr></table><hr></div><div class="refentry"><a name="API-enum-ieee80211-hw-flags"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>enum ieee80211_hw_flags — 
2  hardware flags
3 </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="programlisting">
4enum ieee80211_hw_flags {
5  IEEE80211_HW_HAS_RATE_CONTROL,
6  IEEE80211_HW_RX_INCLUDES_FCS,
7  IEEE80211_HW_HOST_BROADCAST_PS_BUFFERING,
8  IEEE80211_HW_SIGNAL_UNSPEC,
9  IEEE80211_HW_SIGNAL_DBM,
10  IEEE80211_HW_NEED_DTIM_BEFORE_ASSOC,
11  IEEE80211_HW_SPECTRUM_MGMT,
12  IEEE80211_HW_AMPDU_AGGREGATION,
13  IEEE80211_HW_SUPPORTS_PS,
14  IEEE80211_HW_PS_NULLFUNC_STACK,
15  IEEE80211_HW_SUPPORTS_DYNAMIC_PS,
16  IEEE80211_HW_MFP_CAPABLE,
17  IEEE80211_HW_WANT_MONITOR_VIF,
18  IEEE80211_HW_NO_AUTO_VIF,
19  IEEE80211_HW_SW_CRYPTO_CONTROL,
20  IEEE80211_HW_SUPPORT_FAST_XMIT,
21  IEEE80211_HW_REPORTS_TX_ACK_STATUS,
22  IEEE80211_HW_CONNECTION_MONITOR,
23  IEEE80211_HW_QUEUE_CONTROL,
24  IEEE80211_HW_SUPPORTS_PER_STA_GTK,
25  IEEE80211_HW_AP_LINK_PS,
26  IEEE80211_HW_TX_AMPDU_SETUP_IN_HW,
27  IEEE80211_HW_SUPPORTS_RC_TABLE,
28  IEEE80211_HW_P2P_DEV_ADDR_FOR_INTF,
29  IEEE80211_HW_TIMING_BEACON_ONLY,
30  IEEE80211_HW_SUPPORTS_HT_CCK_RATES,
31  IEEE80211_HW_CHANCTX_STA_CSA,
32  IEEE80211_HW_SUPPORTS_CLONED_SKBS,
33  IEEE80211_HW_SINGLE_SCAN_ON_ALL_BANDS,
34  IEEE80211_HW_TDLS_WIDER_BW,
35  IEEE80211_HW_SUPPORTS_AMSDU_IN_AMPDU,
36  IEEE80211_HW_BEACON_TX_STATUS,
37  NUM_IEEE80211_HW_FLAGS
38};  </pre></div><div class="refsect1"><a name="id-1.3.3.3.8.5"></a><h2>Constants</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term">IEEE80211_HW_HAS_RATE_CONTROL</span></dt><dd><p>
39The hardware or firmware includes rate control, and cannot be
40controlled by the stack. As such, no rate control algorithm
41should be instantiated, and the TX rate reported to userspace
42will be taken from the TX status instead of the rate control
43algorithm.
44Note that this requires that the driver implement a number of
45callbacks so it has the correct information, it needs to have
46the <em class="parameter"><code>set_rts_threshold</code></em> callback and must look at the BSS config
47<em class="parameter"><code>use_cts_prot</code></em> for G/N protection, <em class="parameter"><code>use_short_slot</code></em> for slot
48timing in 2.4 GHz and <em class="parameter"><code>use_short_preamble</code></em> for preambles for
49CCK frames.
50      </p></dd><dt><span class="term">IEEE80211_HW_RX_INCLUDES_FCS</span></dt><dd><p>
51Indicates that received frames passed to the stack include
52the FCS at the end.
53      </p></dd><dt><span class="term">IEEE80211_HW_HOST_BROADCAST_PS_BUFFERING</span></dt><dd><p>
54Some wireless LAN chipsets buffer broadcast/multicast frames
55for power saving stations in the hardware/firmware and others
56rely on the host system for such buffering. This option is used
57to configure the IEEE 802.11 upper layer to buffer broadcast and
58multicast frames when there are power saving stations so that
59the driver can fetch them with <code class="function"><a class="link" href="API-ieee80211-get-buffered-bc.html" title="ieee80211_get_buffered_bc">ieee80211_get_buffered_bc</a></code>.
60      </p></dd><dt><span class="term">IEEE80211_HW_SIGNAL_UNSPEC</span></dt><dd><p>
61Hardware can provide signal values but we don't know its units. We
62expect values between 0 and <em class="parameter"><code>max_signal</code></em>.
63If possible please provide dB or dBm instead.
64      </p></dd><dt><span class="term">IEEE80211_HW_SIGNAL_DBM</span></dt><dd><p>
65Hardware gives signal values in dBm, decibel difference from
66one milliwatt. This is the preferred method since it is standardized
67between different devices. <em class="parameter"><code>max_signal</code></em> does not need to be set.
68      </p></dd><dt><span class="term">IEEE80211_HW_NEED_DTIM_BEFORE_ASSOC</span></dt><dd><p>
69This device needs to get data from beacon before association (i.e.
70dtim_period).
71      </p></dd><dt><span class="term">IEEE80211_HW_SPECTRUM_MGMT</span></dt><dd><p>
72Hardware supports spectrum management defined in 802.11h
73Measurement, Channel Switch, Quieting, TPC
74      </p></dd><dt><span class="term">IEEE80211_HW_AMPDU_AGGREGATION</span></dt><dd><p>
75Hardware supports 11n A-MPDU aggregation.
76      </p></dd><dt><span class="term">IEEE80211_HW_SUPPORTS_PS</span></dt><dd><p>
77Hardware has power save support (i.e. can go to sleep).
78      </p></dd><dt><span class="term">IEEE80211_HW_PS_NULLFUNC_STACK</span></dt><dd><p>
79Hardware requires nullfunc frame handling in stack, implies
80stack support for dynamic PS.
81      </p></dd><dt><span class="term">IEEE80211_HW_SUPPORTS_DYNAMIC_PS</span></dt><dd><p>
82Hardware has support for dynamic PS.
83      </p></dd><dt><span class="term">IEEE80211_HW_MFP_CAPABLE</span></dt><dd><p>
84Hardware supports management frame protection (MFP, IEEE 802.11w).
85      </p></dd><dt><span class="term">IEEE80211_HW_WANT_MONITOR_VIF</span></dt><dd><p>
86The driver would like to be informed of
87a virtual monitor interface when monitor interfaces are the only
88active interfaces.
89      </p></dd><dt><span class="term">IEEE80211_HW_NO_AUTO_VIF</span></dt><dd><p>
90The driver would like for no wlanX to
91be created.  It is expected user-space will create vifs as
92desired (and thus have them named as desired).
93      </p></dd><dt><span class="term">IEEE80211_HW_SW_CRYPTO_CONTROL</span></dt><dd><p>
94The driver wants to control which of the
95crypto algorithms can be done in software - so don't automatically
96try to fall back to it if hardware crypto fails, but do so only if
97the driver returns 1. This also forces the driver to advertise its
98supported cipher suites.
99      </p></dd><dt><span class="term">IEEE80211_HW_SUPPORT_FAST_XMIT</span></dt><dd><p>
100The driver/hardware supports fast-xmit,
101this currently requires only the ability to calculate the duration
102for frames.
103      </p></dd><dt><span class="term">IEEE80211_HW_REPORTS_TX_ACK_STATUS</span></dt><dd><p>
104Hardware can provide ack status reports of Tx frames to
105the stack.
106      </p></dd><dt><span class="term">IEEE80211_HW_CONNECTION_MONITOR</span></dt><dd><p>
107The hardware performs its own connection monitoring, including
108periodic keep-alives to the AP and probing the AP on beacon loss.
109      </p></dd><dt><span class="term">IEEE80211_HW_QUEUE_CONTROL</span></dt><dd><p>
110The driver wants to control per-interface
111queue mapping in order to use different queues (not just one per AC)
112for different virtual interfaces. See the doc section on HW queue
113control for more details.
114      </p></dd><dt><span class="term">IEEE80211_HW_SUPPORTS_PER_STA_GTK</span></dt><dd><p>
115The device's crypto engine supports
116per-station GTKs as used by IBSS RSN or during fast transition. If
117the device doesn't support per-station GTKs, but can be asked not
118to decrypt group addressed frames, then IBSS RSN support is still
119possible but software crypto will be used. Advertise the wiphy flag
120only in that case.
121      </p></dd><dt><span class="term">IEEE80211_HW_AP_LINK_PS</span></dt><dd><p>
122When operating in AP mode the device
123autonomously manages the PS status of connected stations. When
124this flag is set mac80211 will not trigger PS mode for connected
125stations based on the PM bit of incoming frames.
126Use <code class="function">ieee80211_start_ps</code>/<code class="function">ieee8021_end_ps</code> to manually configure
127the PS mode of connected stations.
128      </p></dd><dt><span class="term">IEEE80211_HW_TX_AMPDU_SETUP_IN_HW</span></dt><dd><p>
129The device handles TX A-MPDU session
130setup strictly in HW. mac80211 should not attempt to do this in
131software.
132      </p></dd><dt><span class="term">IEEE80211_HW_SUPPORTS_RC_TABLE</span></dt><dd><p>
133The driver supports using a rate
134selection table provided by the rate control algorithm.
135      </p></dd><dt><span class="term">IEEE80211_HW_P2P_DEV_ADDR_FOR_INTF</span></dt><dd><p>
136Use the P2P Device address for any
137P2P Interface. This will be honoured even if more than one interface
138is supported.
139      </p></dd><dt><span class="term">IEEE80211_HW_TIMING_BEACON_ONLY</span></dt><dd><p>
140Use sync timing from beacon frames
141only, to allow getting TBTT of a DTIM beacon.
142      </p></dd><dt><span class="term">IEEE80211_HW_SUPPORTS_HT_CCK_RATES</span></dt><dd><p>
143Hardware supports mixing HT/CCK rates
144and can cope with CCK rates in an aggregation session (e.g. by not
145using aggregation for such frames.)
146      </p></dd><dt><span class="term">IEEE80211_HW_CHANCTX_STA_CSA</span></dt><dd><p>
147Support 802.11h based channel-switch (CSA)
148for a single active channel while using channel contexts. When support
149is not enabled the default action is to disconnect when getting the
150CSA frame.
151      </p></dd><dt><span class="term">IEEE80211_HW_SUPPORTS_CLONED_SKBS</span></dt><dd><p>
152The driver will never modify the payload
153or tailroom of TX skbs without copying them first.
154      </p></dd><dt><span class="term">IEEE80211_HW_SINGLE_SCAN_ON_ALL_BANDS</span></dt><dd><p>
155The HW supports scanning on all bands
156in one command, mac80211 doesn't have to run separate scans per band.
157      </p></dd><dt><span class="term">IEEE80211_HW_TDLS_WIDER_BW</span></dt><dd><p>
158The device/driver supports wider bandwidth
159than then BSS bandwidth for a TDLS link on the base channel.
160      </p></dd><dt><span class="term">IEEE80211_HW_SUPPORTS_AMSDU_IN_AMPDU</span></dt><dd><p>
161The driver supports receiving A-MSDUs
162within A-MPDU.
163      </p></dd><dt><span class="term">IEEE80211_HW_BEACON_TX_STATUS</span></dt><dd><p>
164The device/driver provides TX status
165for sent beacons.
166      </p></dd><dt><span class="term">NUM_IEEE80211_HW_FLAGS</span></dt><dd><p>
167number of hardware flags, used for sizing arrays
168      </p></dd></dl></div></div><div class="refsect1"><a name="id-1.3.3.3.8.6"></a><h2>Description</h2><p>
169   </p><p>
170
171   These flags are used to indicate hardware capabilities to
172   the stack. Generally, flags here should have their meaning
173   done in a way that the simplest hardware doesn't need setting
174   any particular flags. There are some exceptions to this rule,
175   however, so you are advised to review these flags carefully.
176</p></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="API-struct-ieee80211-hw.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-SET-IEEE80211-DEV.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top"><span class="phrase">struct ieee80211_hw</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">SET_IEEE80211_DEV</span></td></tr></table></div></body></html>
177