struct sta_info
Prev | Programming information | Next

## Name

struct sta_info — STA information

## Synopsis

    struct sta_info {
      struct list_head list;
      struct rcu_head rcu_head;
      struct sta_info __rcu * hnext;
      struct ieee80211_local * local;
      struct ieee80211_sub_if_data * sdata;
      struct ieee80211_key __rcu * gtk[NUM_DEFAULT_KEYS + NUM_DEFAULT_MGMT_KEYS];
      struct ieee80211_key __rcu * ptk;
      struct rate_control_ref * rate_ctrl;
      void * rate_ctrl_priv;
      spinlock_t lock;
      struct work_struct drv_unblock_wk;
      u16 listen_interval;
      bool dead;
      bool uploaded;
      enum ieee80211_sta_state sta_state;
      unsigned long _flags;
      spinlock_t ps_lock;
      struct sk_buff_head ps_tx_buf[IEEE80211_NUM_ACS];
      struct sk_buff_head tx_filtered[IEEE80211_NUM_ACS];
      unsigned long driver_buffered_tids;
      unsigned long rx_packets;
      u64 rx_bytes;
      unsigned long wep_weak_iv_count;
      unsigned long last_rx;
      long last_connected;
      unsigned long num_duplicates;
      unsigned long rx_fragments;
      unsigned long rx_dropped;
      int last_signal;
      struct ewma avg_signal;
      int last_ack_signal;
      u8 chains;
      s8 chain_signal_last[IEEE80211_MAX_CHAINS];
      struct ewma chain_signal_avg[IEEE80211_MAX_CHAINS];
      __le16 last_seq_ctrl[IEEE80211_NUM_TIDS + 1];
      unsigned long tx_filtered_count;
      unsigned long tx_retry_failed;
      unsigned long tx_retry_count;
      unsigned int fail_avg;
      u32 tx_fragments;
      u64 tx_packets[IEEE80211_NUM_ACS];
      u64 tx_bytes[IEEE80211_NUM_ACS];
      struct ieee80211_tx_rate last_tx_rate;
      int last_rx_rate_idx;
      u32 last_rx_rate_flag;
      u8 last_rx_rate_vht_nss;
      u16 tid_seq[IEEE80211_QOS_CTL_TID_MASK + 1];
      struct sta_ampdu_mlme ampdu_mlme;
      u8 timer_to_tid[IEEE80211_NUM_TIDS];
    #ifdef CONFIG_MAC80211_MESH
      __le16 llid;
      __le16 plid;
      __le16 reason;
      u8 plink_retries;
      bool ignore_plink_timer;
      enum nl80211_plink_state plink_state;
      u32 plink_timeout;
      struct timer_list plink_timer;
      s64 t_offset;
      s64 t_offset_setpoint;
      enum nl80211_mesh_power_mode local_pm;
      enum nl80211_mesh_power_mode peer_pm;
      enum nl80211_mesh_power_mode nonpeer_pm;
    #endif
    #ifdef CONFIG_MAC80211_DEBUGFS
      struct sta_info_debugfsdentries debugfs;
    #endif
      enum ieee80211_sta_rx_bandwidth cur_max_bandwidth;
      unsigned int lost_packets;
      unsigned int beacon_loss_count;
      enum ieee80211_smps_mode known_smps_mode;
      struct ieee80211_sta sta;
    };

## Members

list

  global linked list entry

rcu_head

  RCU head used for freeing this station struct

hnext

  hash table linked list pointer

local

  pointer to the global information

sdata

  virtual interface this station belongs to

gtk[NUM_DEFAULT_KEYS + NUM_DEFAULT_MGMT_KEYS]

  group keys negotiated with this station, if any

ptk

  peer key negotiated with this station, if any

rate_ctrl

  rate control algorithm reference

rate_ctrl_priv

  rate control private per-STA pointer

lock

  used for locking all fields that require locking, see comments in the header file.

drv_unblock_wk

  used for driver PS unblocking

listen_interval

  listen interval of this station, when we're acting as AP

dead

  set to true when sta is unlinked

uploaded

  set to true when sta is uploaded to the driver

sta_state

  duplicates information about station state (for debug)

_flags

  STA flags, see enum ieee80211_sta_info_flags, do not use directly

ps_lock

  used for powersave (when mac80211 is the AP) related locking

ps_tx_buf[IEEE80211_NUM_ACS]

  buffers (per AC) of frames to transmit to this station when it leaves power saving state or polls

tx_filtered[IEEE80211_NUM_ACS]

  buffers (per AC) of frames we already tried to transmit but were filtered by hardware due to STA having entered power saving state, these are also delivered to the station when it leaves powersave or polls for frames

driver_buffered_tids

  bitmap of TIDs the driver has data buffered on

rx_packets

  Number of MSDUs received from this STA

rx_bytes

  Number of bytes received from this STA

wep_weak_iv_count

  number of weak WEP IVs received from this station

last_rx

  time (in jiffies) when last frame was received from this STA

last_connected

  time (in seconds) when a station got connected

num_duplicates

  number of duplicate frames received from this STA

rx_fragments

  number of received MPDUs

rx_dropped

  number of dropped MPDUs from this STA

last_signal

  signal of last received frame from this STA

avg_signal

  moving average of signal of received frames from this STA

last_ack_signal

  signal of last received Ack frame from this STA

chains

  chains ever used for RX from this station

chain_signal_last[IEEE80211_MAX_CHAINS]

  last signal (per chain)

chain_signal_avg[IEEE80211_MAX_CHAINS]

  signal average (per chain)

last_seq_ctrl[IEEE80211_NUM_TIDS + 1]

  last received seq/frag number from this STA (per RX queue)

tx_filtered_count

  number of frames the hardware filtered for this STA

tx_retry_failed

  number of frames that failed retry

tx_retry_count

  total number of retries for frames to this STA

fail_avg

  moving percentage of failed MSDUs

tx_fragments

  number of transmitted MPDUs

tx_packets[IEEE80211_NUM_ACS]

  number of RX/TX MSDUs

tx_bytes[IEEE80211_NUM_ACS]

  number of bytes transmitted to this STA

last_tx_rate

  rate used for last transmit, to report to userspace as “the” transmit rate

last_rx_rate_idx

  rx status rate index of the last data packet

last_rx_rate_flag

  rx status flag of the last data packet

last_rx_rate_vht_nss

  rx status nss of last data packet

tid_seq[IEEE80211_QOS_CTL_TID_MASK + 1]

  per-TID sequence numbers for sending to this STA

ampdu_mlme

  A-MPDU state machine state

timer_to_tid[IEEE80211_NUM_TIDS]

  identity mapping to ID timers

llid

  Local link ID

plid

  Peer link ID

reason

  Cancel reason on PLINK_HOLDING state

plink_retries

  Retries in establishment

ignore_plink_timer

  ignore the peer-link timer (used internally)

plink_state

  peer link state

plink_timeout

  timeout of peer link

plink_timer

  peer link watch timer

t_offset

  timing offset relative to this host

t_offset_setpoint

  reference timing offset of this sta to be used when calculating clockdrift

local_pm

  local link-specific power save mode

peer_pm

  peer-specific power save mode towards local STA

nonpeer_pm

  STA power save mode towards non-peer neighbors

debugfs

  debug filesystem info

cur_max_bandwidth

  maximum bandwidth to use for TX to the station, taken from HT/VHT capabilities or VHT operating mode notification

lost_packets

  number of consecutive lost packets

beacon_loss_count

  number of times beacon loss has triggered

known_smps_mode

  the smps_mode the client thinks we are in. Relevant for AP only.

sta

  station information we share with the driver

## Description

This structure collects information about a station that mac80211 is communicating with.

Prev | Up | Next
Chapter 22. Station info handling | Home | enum ieee80211_sta_info_flags