---
name: "struct_ieee80211_sta"
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_sta"
---

# struct\_ieee80211\_sta(9)

station table entry

## NAME

struct\_ieee80211\_sta - station table entry

## SYNOPSIS

```
struct ieee80211_sta {
  u32 supp_rates[IEEE80211_NUM_BANDS];
  u8 addr[ETH_ALEN];
  u16 aid;
  struct ieee80211_sta_ht_cap ht_cap;
  struct ieee80211_sta_vht_cap vht_cap;
  bool wme;
  u8 uapsd_queues;
  u8 max_sp;
  u8 rx_nss;
  enum ieee80211_sta_rx_bandwidth bandwidth;
  enum ieee80211_smps_mode smps_mode;
  struct ieee80211_sta_rates __rcu * rates;
  bool tdls;
  u8 drv_priv[0];
};
```

## MEMBERS

supp\_rates\[IEEE80211\_NUM\_BANDS\]

Bitmap of supported rates (per band)

addr\[ETH\_ALEN\]

MAC address

aid

AID we assigned to the station if we're an AP

ht\_cap

HT capabilities of this STA; restricted to our own capabilities

vht\_cap

VHT capabilities of this STA; restricted to our own capabilities

wme

indicates whether the STA supports WME. Only valid during AP-mode.

uapsd\_queues

bitmap of queues configured for uapsd. Only valid if wme is supported.

max\_sp

max Service Period. Only valid if wme is supported.

rx\_nss

in HT/VHT, the maximum number of spatial streams the station can receive at the moment, changed by operating mode notifications and capabilities. The value is only valid after the station moves to associated state.

bandwidth

current bandwidth the station can receive with

smps\_mode

current SMPS mode (off, static or dynamic)

rates

rate control selection table

tdls

indicates whether the STA is a TDLS peer

drv\_priv\[0\]

data area for driver use, will always be aligned to sizeof(void \*), size is determined in hw information.

## DESCRIPTION

A station table entry represents a station we are possibly communicating with. Since stations are RCU-managed in mac80211, any ieee80211\_sta pointer you get access to must either be protected by **rcu\_read\_lock** explicitly or implicitly, or you must take good care to not use such a pointer after a call to your sta\_remove callback that removed it.

## AUTHOR

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

Author.

## COPYRIGHT
