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 – 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_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> </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> 164