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