---
name: "enum_ieee80211_hw_flags"
section: "9"
platform: "linux"
package: "linux-manual-3.16"
version: "3.16.56-1+deb8u1"
release: "Debian 8 (Jessie)"
platforms: ["linux"]
url: "https://new.carta.tech/enum_ieee80211_hw_flags"
---

# enum\_ieee80211\_hw\_flags(9)

hardware flags

## NAME

enum\_ieee80211\_hw\_flags - hardware flags

## SYNOPSIS

```
enum ieee80211_hw_flags {
  IEEE80211_HW_HAS_RATE_CONTROL,
  IEEE80211_HW_RX_INCLUDES_FCS,
  IEEE80211_HW_HOST_BROADCAST_PS_BUFFERING,
  IEEE80211_HW_2GHZ_SHORT_SLOT_INCAPABLE,
  IEEE80211_HW_2GHZ_SHORT_PREAMBLE_INCAPABLE,
  IEEE80211_HW_SIGNAL_UNSPEC,
  IEEE80211_HW_SIGNAL_DBM,
  IEEE80211_HW_NEED_DTIM_BEFORE_ASSOC,
  IEEE80211_HW_SPECTRUM_MGMT,
  IEEE80211_HW_AMPDU_AGGREGATION,
  IEEE80211_HW_SUPPORTS_PS,
  IEEE80211_HW_PS_NULLFUNC_STACK,
  IEEE80211_HW_SUPPORTS_DYNAMIC_PS,
  IEEE80211_HW_MFP_CAPABLE,
  IEEE80211_HW_WANT_MONITOR_VIF,
  IEEE80211_HW_SUPPORTS_STATIC_SMPS,
  IEEE80211_HW_SUPPORTS_DYNAMIC_SMPS,
  IEEE80211_HW_SUPPORTS_UAPSD,
  IEEE80211_HW_REPORTS_TX_ACK_STATUS,
  IEEE80211_HW_CONNECTION_MONITOR,
  IEEE80211_HW_QUEUE_CONTROL,
  IEEE80211_HW_SUPPORTS_PER_STA_GTK,
  IEEE80211_HW_AP_LINK_PS,
  IEEE80211_HW_TX_AMPDU_SETUP_IN_HW,
  IEEE80211_HW_SUPPORTS_RC_TABLE,
  IEEE80211_HW_P2P_DEV_ADDR_FOR_INTF,
  IEEE80211_HW_TIMING_BEACON_ONLY,
  IEEE80211_HW_SUPPORTS_HT_CCK_RATES,
  IEEE80211_HW_CHANCTX_STA_CSA,
  IEEE80211_HW_CHANGE_RUNNING_CHANCTX
};
```

## CONSTANTS

IEEE80211\_HW\_HAS\_RATE\_CONTROL

The hardware or firmware includes rate control, and cannot be controlled by the stack. As such, no rate control algorithm should be instantiated, and the TX rate reported to userspace will be taken from the TX status instead of the rate control algorithm. Note that this requires that the driver implement a number of callbacks so it has the correct information, it needs to have the *set\_rts\_threshold* callback and must look at the BSS config *use\_cts\_prot* for G/N protection, *use\_short\_slot* for slot timing in 2.4 GHz and *use\_short\_preamble* for preambles for CCK frames.

IEEE80211\_HW\_RX\_INCLUDES\_FCS

Indicates that received frames passed to the stack include the FCS at the end.

IEEE80211\_HW\_HOST\_BROADCAST\_PS\_BUFFERING

Some wireless LAN chipsets buffer broadcast/multicast frames for power saving stations in the hardware/firmware and others rely on the host system for such buffering. This option is used to configure the IEEE 802.11 upper layer to buffer broadcast and multicast frames when there are power saving stations so that the driver can fetch them with **ieee80211\_get\_buffered\_bc**.

IEEE80211\_HW\_2GHZ\_SHORT\_SLOT\_INCAPABLE

Hardware is not capable of short slot operation on the 2.4 GHz band.

IEEE80211\_HW\_2GHZ\_SHORT\_PREAMBLE\_INCAPABLE

Hardware is not capable of receiving frames with short preamble on the 2.4 GHz band.

IEEE80211\_HW\_SIGNAL\_UNSPEC

Hardware can provide signal values but we don't know its units. We expect values between 0 and *max\_signal*. If possible please provide dB or dBm instead.

IEEE80211\_HW\_SIGNAL\_DBM

Hardware gives signal values in dBm, decibel difference from one milliwatt. This is the preferred method since it is standardized between different devices. *max\_signal* does not need to be set.

IEEE80211\_HW\_NEED\_DTIM\_BEFORE\_ASSOC

This device needs to get data from beacon before association (i.e. dtim\_period).

IEEE80211\_HW\_SPECTRUM\_MGMT

Hardware supports spectrum management defined in 802.11h Measurement, Channel Switch, Quieting, TPC

IEEE80211\_HW\_AMPDU\_AGGREGATION

Hardware supports 11n A-MPDU aggregation.

IEEE80211\_HW\_SUPPORTS\_PS

Hardware has power save support (i.e. can go to sleep).

IEEE80211\_HW\_PS\_NULLFUNC\_STACK

Hardware requires nullfunc frame handling in stack, implies stack support for dynamic PS.

IEEE80211\_HW\_SUPPORTS\_DYNAMIC\_PS

Hardware has support for dynamic PS.

IEEE80211\_HW\_MFP\_CAPABLE

Hardware supports management frame protection (MFP, IEEE 802.11w).

IEEE80211\_HW\_WANT\_MONITOR\_VIF

The driver would like to be informed of a virtual monitor interface when monitor interfaces are the only active interfaces.

IEEE80211\_HW\_SUPPORTS\_STATIC\_SMPS

Hardware supports static spatial multiplexing powersave, ie. can turn off all but one chain even on HT connections that should be using more chains.

IEEE80211\_HW\_SUPPORTS\_DYNAMIC\_SMPS

Hardware supports dynamic spatial multiplexing powersave, ie. can turn off all but one chain and then wake the rest up as required after, for example, rts/cts handshake.

IEEE80211\_HW\_SUPPORTS\_UAPSD

Hardware supports Unscheduled Automatic Power Save Delivery (U-APSD) in managed mode. The mode is configured with **conf\_tx** operation.

IEEE80211\_HW\_REPORTS\_TX\_ACK\_STATUS

Hardware can provide ack status reports of Tx frames to the stack.

IEEE80211\_HW\_CONNECTION\_MONITOR

The hardware performs its own connection monitoring, including periodic keep-alives to the AP and probing the AP on beacon loss.

IEEE80211\_HW\_QUEUE\_CONTROL

The driver wants to control per-interface queue mapping in order to use different queues (not just one per AC) for different virtual interfaces. See the doc section on HW queue control for more details.

IEEE80211\_HW\_SUPPORTS\_PER\_STA\_GTK

The device's crypto engine supports per-station GTKs as used by IBSS RSN or during fast transition. If the device doesn't support per-station GTKs, but can be asked not to decrypt group addressed frames, then IBSS RSN support is still possible but software crypto will be used. Advertise the wiphy flag only in that case.

IEEE80211\_HW\_AP\_LINK\_PS

When operating in AP mode the device autonomously manages the PS status of connected stations. When this flag is set mac80211 will not trigger PS mode for connected stations based on the PM bit of incoming frames. Use **ieee80211\_start\_ps**/**ieee8021\_end\_ps** to manually configure the PS mode of connected stations.

IEEE80211\_HW\_TX\_AMPDU\_SETUP\_IN\_HW

The device handles TX A-MPDU session setup strictly in HW. mac80211 should not attempt to do this in software.

IEEE80211\_HW\_SUPPORTS\_RC\_TABLE

The driver supports using a rate selection table provided by the rate control algorithm.

IEEE80211\_HW\_P2P\_DEV\_ADDR\_FOR\_INTF

Use the P2P Device address for any P2P Interface. This will be honoured even if more than one interface is supported.

IEEE80211\_HW\_TIMING\_BEACON\_ONLY

Use sync timing from beacon frames only, to allow getting TBTT of a DTIM beacon.

IEEE80211\_HW\_SUPPORTS\_HT\_CCK\_RATES

Hardware supports mixing HT/CCK rates and can cope with CCK rates in an aggregation session (e.g. by not using aggregation for such frames.)

IEEE80211\_HW\_CHANCTX\_STA\_CSA

Support 802.11h based channel-switch (CSA) for a single active channel while using channel contexts. When support is not enabled the default action is to disconnect when getting the CSA frame.

IEEE80211\_HW\_CHANGE\_RUNNING\_CHANCTX

The hardware can change a channel context on-the-fly. This is needed for channel switch on single-channel hardware. It can also be used as an optimization in certain channel switch cases with multi-channel.

## DESCRIPTION

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

## AUTHOR

**Johannes Berg** \<johannes@sipsolutions.net\>

Author.

## COPYRIGHT
