---
name: "struct_ieee80211_hw"
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/struct_ieee80211_hw"
---

# struct\_ieee80211\_hw(9)

hardware information and state

## NAME

struct\_ieee80211\_hw - hardware information and state

## SYNOPSIS

```
struct ieee80211_hw {
  struct ieee80211_conf conf;
  struct wiphy * wiphy;
  const char * rate_control_algorithm;
  void * priv;
  u32 flags;
  unsigned int extra_tx_headroom;
  unsigned int extra_beacon_tailroom;
  int vif_data_size;
  int sta_data_size;
  int chanctx_data_size;
  u16 queues;
  u16 max_listen_interval;
  s8 max_signal;
  u8 max_rates;
  u8 max_report_rates;
  u8 max_rate_tries;
  u8 max_rx_aggregation_subframes;
  u8 max_tx_aggregation_subframes;
  u8 offchannel_tx_hw_queue;
  u8 radiotap_mcs_details;
  u16 radiotap_vht_details;
  netdev_features_t netdev_features;
  u8 uapsd_queues;
  u8 uapsd_max_sp_len;
  u8 n_cipher_schemes;
  const struct ieee80211_cipher_scheme * cipher_schemes;
};
```

## MEMBERS

conf

struct ieee80211\_conf, device configuration, don't use.

wiphy

This points to the struct wiphy allocated for this 802.11 PHY. You must fill in the *perm\_addr* and *dev* members of this structure using **SET\_IEEE80211\_DEV** and **SET\_IEEE80211\_PERM\_ADDR**. Additionally, all supported bands (with channels, bitrates) are registered here.

rate\_control\_algorithm

rate control algorithm for this hardware. If unset (NULL), the default algorithm will be used. Must be set before calling **ieee80211\_register\_hw**.

priv

pointer to private area that was allocated for driver use along with this structure.

flags

hardware flags, see enum ieee80211\_hw\_flags.

extra\_tx\_headroom

headroom to reserve in each transmit skb for use by the driver (e.g. for transmit headers.)

extra\_beacon\_tailroom

tailroom to reserve in each beacon tx skb. Can be used by drivers to add extra IEs.

vif\_data\_size

size (in bytes) of the drv\_priv data area within struct ieee80211\_vif.

sta\_data\_size

size (in bytes) of the drv\_priv data area within struct ieee80211\_sta.

chanctx\_data\_size

size (in bytes) of the drv\_priv data area within struct ieee80211\_chanctx\_conf.

queues

number of available hardware transmit queues for data packets. WMM/QoS requires at least four, these queues need to have configurable access parameters.

max\_listen\_interval

max listen interval in units of beacon interval that HW supports

max\_signal

Maximum value for signal (rssi) in RX information, used only when *IEEE80211\_HW\_SIGNAL\_UNSPEC* or *IEEE80211\_HW\_SIGNAL\_DB*

max\_rates

maximum number of alternate rate retry stages the hw can handle.

max\_report\_rates

maximum number of alternate rate retry stages the hw can report back.

max\_rate\_tries

maximum number of tries for each stage

max\_rx\_aggregation\_subframes

maximum buffer size (number of sub-frames) to be used for A-MPDU block ack receiver aggregation. This is only relevant if the device has restrictions on the number of subframes, if it relies on mac80211 to do reordering it shouldn't be set.

max\_tx\_aggregation\_subframes

maximum number of subframes in an aggregate an HT driver will transmit, used by the peer as a hint to size its reorder buffer.

offchannel\_tx\_hw\_queue

HW queue ID to use for offchannel TX (if **IEEE80211\_HW\_QUEUE\_CONTROL** is set)

radiotap\_mcs\_details

lists which MCS information can the HW reports, by default it is set to \_MCS, \_GI and \_BW but doesn't include \_FMT. Use **IEEE80211\_RADIOTAP\_MCS\_HAVE\_**\* values, only adding \_BW is supported today.

radiotap\_vht\_details

lists which VHT MCS information the HW reports, the default is \_GI \| \_BANDWIDTH. Use the **IEEE80211\_RADIOTAP\_VHT\_KNOWN\_**\* values.

netdev\_features

netdev features to be set in each netdev created from this HW. Note only HW checksum features are currently compatible with mac80211. Other feature bits will be rejected.

uapsd\_queues

This bitmap is included in (re)association frame to indicate for each access category if it is uAPSD trigger-enabled and delivery- enabled. Use IEEE80211\_WMM\_IE\_STA\_QOSINFO\_AC\_\* to set this bitmap. Each bit corresponds to different AC. Value '1' in specific bit means that corresponding AC is both trigger- and delivery-enabled. '0' means neither enabled.

uapsd\_max\_sp\_len

maximum number of total buffered frames the WMM AP may deliver to a WMM STA during any Service Period triggered by the WMM STA. Use IEEE80211\_WMM\_IE\_STA\_QOSINFO\_SP\_\* for correct values.

n\_cipher\_schemes

a size of an array of cipher schemes definitions.

cipher\_schemes

a pointer to an array of cipher scheme definitions supported by HW.

## DESCRIPTION

This structure contains the configuration and hardware information for an 802.11 PHY.

## AUTHOR

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

Author.

## COPYRIGHT
