1ENUM IEEE80211_HW_FL(9) The basic mac80211 driver inte ENUM IEEE80211_HW_FL(9)
2
3
4

NAME

6       enum_ieee80211_hw_flags - hardware flags
7

SYNOPSIS

9       enum ieee80211_hw_flags {
10         IEEE80211_HW_HAS_RATE_CONTROL,
11         IEEE80211_HW_RX_INCLUDES_FCS,
12         IEEE80211_HW_HOST_BROADCAST_PS_BUFFERING,
13         IEEE80211_HW_SIGNAL_UNSPEC,
14         IEEE80211_HW_SIGNAL_DBM,
15         IEEE80211_HW_NEED_DTIM_BEFORE_ASSOC,
16         IEEE80211_HW_SPECTRUM_MGMT,
17         IEEE80211_HW_AMPDU_AGGREGATION,
18         IEEE80211_HW_SUPPORTS_PS,
19         IEEE80211_HW_PS_NULLFUNC_STACK,
20         IEEE80211_HW_SUPPORTS_DYNAMIC_PS,
21         IEEE80211_HW_MFP_CAPABLE,
22         IEEE80211_HW_WANT_MONITOR_VIF,
23         IEEE80211_HW_NO_AUTO_VIF,
24         IEEE80211_HW_SW_CRYPTO_CONTROL,
25         IEEE80211_HW_SUPPORT_FAST_XMIT,
26         IEEE80211_HW_REPORTS_TX_ACK_STATUS,
27         IEEE80211_HW_CONNECTION_MONITOR,
28         IEEE80211_HW_QUEUE_CONTROL,
29         IEEE80211_HW_SUPPORTS_PER_STA_GTK,
30         IEEE80211_HW_AP_LINK_PS,
31         IEEE80211_HW_TX_AMPDU_SETUP_IN_HW,
32         IEEE80211_HW_SUPPORTS_RC_TABLE,
33         IEEE80211_HW_P2P_DEV_ADDR_FOR_INTF,
34         IEEE80211_HW_TIMING_BEACON_ONLY,
35         IEEE80211_HW_SUPPORTS_HT_CCK_RATES,
36         IEEE80211_HW_CHANCTX_STA_CSA,
37         IEEE80211_HW_SUPPORTS_CLONED_SKBS,
38         IEEE80211_HW_SINGLE_SCAN_ON_ALL_BANDS,
39         IEEE80211_HW_TDLS_WIDER_BW,
40         IEEE80211_HW_SUPPORTS_AMSDU_IN_AMPDU,
41         IEEE80211_HW_BEACON_TX_STATUS,
42         IEEE80211_HW_NEEDS_UNIQUE_STA_ADDR,
43         IEEE80211_HW_SUPPORTS_REORDERING_BUFFER,
44         IEEE80211_HW_USES_RSS,
45         IEEE80211_HW_TX_AMSDU,
46         IEEE80211_HW_TX_FRAG_LIST,
47         IEEE80211_HW_REPORTS_LOW_ACK,
48         IEEE80211_HW_SUPPORTS_TX_FRAG,
49         NUM_IEEE80211_HW_FLAGS
50       };
51

CONSTANTS

53       IEEE80211_HW_HAS_RATE_CONTROL
54           The hardware or firmware includes rate control, and cannot be
55           controlled by the stack. As such, no rate control algorithm should
56           be instantiated, and the TX rate reported to userspace will be
57           taken from the TX status instead of the rate control algorithm.
58           Note that this requires that the driver implement a number of
59           callbacks so it has the correct information, it needs to have the
60           set_rts_threshold callback and must look at the BSS config
61           use_cts_prot for G/N protection, use_short_slot for slot timing in
62           2.4 GHz and use_short_preamble for preambles for CCK frames.
63
64       IEEE80211_HW_RX_INCLUDES_FCS
65           Indicates that received frames passed to the stack include the FCS
66           at the end.
67
68       IEEE80211_HW_HOST_BROADCAST_PS_BUFFERING
69           Some wireless LAN chipsets buffer broadcast/multicast frames for
70           power saving stations in the hardware/firmware and others rely on
71           the host system for such buffering. This option is used to
72           configure the IEEE 802.11 upper layer to buffer broadcast and
73           multicast frames when there are power saving stations so that the
74           driver can fetch them with ieee80211_get_buffered_bc.
75
76       IEEE80211_HW_SIGNAL_UNSPEC
77           Hardware can provide signal values but we don't know its units. We
78           expect values between 0 and max_signal. If possible please provide
79           dB or dBm instead.
80
81       IEEE80211_HW_SIGNAL_DBM
82           Hardware gives signal values in dBm, decibel difference from one
83           milliwatt. This is the preferred method since it is standardized
84           between different devices.  max_signal does not need to be set.
85
86       IEEE80211_HW_NEED_DTIM_BEFORE_ASSOC
87           This device needs to get data from beacon before association (i.e.
88           dtim_period).
89
90       IEEE80211_HW_SPECTRUM_MGMT
91           Hardware supports spectrum management defined in 802.11h
92           Measurement, Channel Switch, Quieting, TPC
93
94       IEEE80211_HW_AMPDU_AGGREGATION
95           Hardware supports 11n A-MPDU aggregation.
96
97       IEEE80211_HW_SUPPORTS_PS
98           Hardware has power save support (i.e. can go to sleep).
99
100       IEEE80211_HW_PS_NULLFUNC_STACK
101           Hardware requires nullfunc frame handling in stack, implies stack
102           support for dynamic PS.
103
104       IEEE80211_HW_SUPPORTS_DYNAMIC_PS
105           Hardware has support for dynamic PS.
106
107       IEEE80211_HW_MFP_CAPABLE
108           Hardware supports management frame protection (MFP, IEEE 802.11w).
109
110       IEEE80211_HW_WANT_MONITOR_VIF
111           The driver would like to be informed of a virtual monitor interface
112           when monitor interfaces are the only active interfaces.
113
114       IEEE80211_HW_NO_AUTO_VIF
115           The driver would like for no wlanX to be created. It is expected
116           user-space will create vifs as desired (and thus have them named as
117           desired).
118
119       IEEE80211_HW_SW_CRYPTO_CONTROL
120           The driver wants to control which of the crypto algorithms can be
121           done in software - so don't automatically try to fall back to it if
122           hardware crypto fails, but do so only if the driver returns 1. This
123           also forces the driver to advertise its supported cipher suites.
124
125       IEEE80211_HW_SUPPORT_FAST_XMIT
126           The driver/hardware supports fast-xmit, this currently requires
127           only the ability to calculate the duration for frames.
128
129       IEEE80211_HW_REPORTS_TX_ACK_STATUS
130           Hardware can provide ack status reports of Tx frames to the stack.
131
132       IEEE80211_HW_CONNECTION_MONITOR
133           The hardware performs its own connection monitoring, including
134           periodic keep-alives to the AP and probing the AP on beacon loss.
135
136       IEEE80211_HW_QUEUE_CONTROL
137           The driver wants to control per-interface queue mapping in order to
138           use different queues (not just one per AC) for different virtual
139           interfaces. See the doc section on HW queue control for more
140           details.
141
142       IEEE80211_HW_SUPPORTS_PER_STA_GTK
143           The device's crypto engine supports per-station GTKs as used by
144           IBSS RSN or during fast transition. If the device doesn't support
145           per-station GTKs, but can be asked not to decrypt group addressed
146           frames, then IBSS RSN support is still possible but software crypto
147           will be used. Advertise the wiphy flag only in that case.
148
149       IEEE80211_HW_AP_LINK_PS
150           When operating in AP mode the device autonomously manages the PS
151           status of connected stations. When this flag is set mac80211 will
152           not trigger PS mode for connected stations based on the PM bit of
153           incoming frames. Use ieee80211_start_ps/ieee8021_end_ps to manually
154           configure the PS mode of connected stations.
155
156       IEEE80211_HW_TX_AMPDU_SETUP_IN_HW
157           The device handles TX A-MPDU session setup strictly in HW. mac80211
158           should not attempt to do this in software.
159
160       IEEE80211_HW_SUPPORTS_RC_TABLE
161           The driver supports using a rate selection table provided by the
162           rate control algorithm.
163
164       IEEE80211_HW_P2P_DEV_ADDR_FOR_INTF
165           Use the P2P Device address for any P2P Interface. This will be
166           honoured even if more than one interface is supported.
167
168       IEEE80211_HW_TIMING_BEACON_ONLY
169           Use sync timing from beacon frames only, to allow getting TBTT of a
170           DTIM beacon.
171
172       IEEE80211_HW_SUPPORTS_HT_CCK_RATES
173           Hardware supports mixing HT/CCK rates and can cope with CCK rates
174           in an aggregation session (e.g. by not using aggregation for such
175           frames.)
176
177       IEEE80211_HW_CHANCTX_STA_CSA
178           Support 802.11h based channel-switch (CSA) for a single active
179           channel while using channel contexts. When support is not enabled
180           the default action is to disconnect when getting the CSA frame.
181
182       IEEE80211_HW_SUPPORTS_CLONED_SKBS
183           The driver will never modify the payload or tailroom of TX skbs
184           without copying them first.
185
186       IEEE80211_HW_SINGLE_SCAN_ON_ALL_BANDS
187           The HW supports scanning on all bands in one command, mac80211
188           doesn't have to run separate scans per band.
189
190       IEEE80211_HW_TDLS_WIDER_BW
191           The device/driver supports wider bandwidth than then BSS bandwidth
192           for a TDLS link on the base channel.
193
194       IEEE80211_HW_SUPPORTS_AMSDU_IN_AMPDU
195           The driver supports receiving A-MSDUs within A-MPDU.
196
197       IEEE80211_HW_BEACON_TX_STATUS
198           The device/driver provides TX status for sent beacons.
199
200       IEEE80211_HW_NEEDS_UNIQUE_STA_ADDR
201           Hardware (or driver) requires that each station has a unique
202           address, i.e. each station entry can be identified by just its MAC
203           address; this prevents, for example, the same station from
204           connecting to two virtual AP interfaces at the same time.
205
206       IEEE80211_HW_SUPPORTS_REORDERING_BUFFER
207           Hardware (or driver) manages the reordering buffer internally,
208           guaranteeing mac80211 receives frames in order and does not need to
209           manage its own reorder buffer or BA session timeout.
210
211       IEEE80211_HW_USES_RSS
212           The device uses RSS and thus requires parallel RX, which implies
213           using per-CPU station statistics.
214
215       IEEE80211_HW_TX_AMSDU
216           Hardware (or driver) supports software aggregated A-MSDU frames.
217           Requires software tx queueing and fast-xmit support. When not using
218           minstrel/minstrel_ht rate control, the driver must limit the
219           maximum A-MSDU size based on the current tx rate by setting
220           max_rc_amsdu_len in struct ieee80211_sta.
221
222       IEEE80211_HW_TX_FRAG_LIST
223           Hardware (or driver) supports sending frag_list skbs, needed for
224           zero-copy software A-MSDU.
225
226       IEEE80211_HW_REPORTS_LOW_ACK
227           The driver (or firmware) reports low ack event by
228           ieee80211_report_low_ack based on its own algorithm. For such
229           drivers, mac80211 packet loss mechanism will not be triggered and
230           driver is completely depending on firmware event for station
231           kickout.
232
233       IEEE80211_HW_SUPPORTS_TX_FRAG
234           Hardware does fragmentation by itself. The stack will not do
235           fragmentation. The callback for set_frag_threshold should be set as
236           well.
237
238       NUM_IEEE80211_HW_FLAGS
239           number of hardware flags, used for sizing arrays
240

DESCRIPTION

242       These flags are used to indicate hardware capabilities to the stack.
243       Generally, flags here should have their meaning done in a way that the
244       simplest hardware doesn't need setting any particular flags. There are
245       some exceptions to this rule, however, so you are advised to review
246       these flags carefully.
247

AUTHOR

249       Johannes Berg <johannes@sipsolutions.net>
250           Author.
251
253Kernel Hackers Manual 3.10         June 2019           ENUM IEEE80211_HW_FL(9)
Impressum