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