Lines Matching +full:save +full:- +full:mac +full:- +full:address
1 /* SPDX-License-Identifier: GPL-2.0-only */
3 * Copyright 2002-2005, Devicescape Software, Inc.
4 * Copyright 2013-2014 Intel Mobile Communications GmbH
5 * Copyright(c) 2015-2017 Intel Deutschland GmbH
6 * Copyright(c) 2020-2022 Intel Corporation
24 * enum ieee80211_sta_info_flags - Stations flags
31 * @WLAN_STA_PS_STA: Station is in power-save mode
35 * @WLAN_STA_SHORT_PREAMBLE: Station is capable of receiving short-preamble
45 * power-save mode logically to flush frames that might still
47 * @WLAN_STA_PSPOLL: Station sent PS-poll while driver was keeping
48 * station in power-save mode, reply when the driver unblocks.
54 * @WLAN_STA_TDLS_CHAN_SWITCH: This TDLS peer supports TDLS channel-switching
55 * @WLAN_STA_TDLS_OFF_CHANNEL: The local STA is currently off-channel with this
60 * keeping station in power-save mode, reply when the driver
63 * reply to other uAPSD trigger frames or PS-Poll.
64 * @WLAN_STA_4ADDR_EVENT: 4-addr event was already sent for this frame.
155 * struct tid_ampdu_tx - TID aggregation information (Tx).
158 * @session_timer: check if we keep Tx-ing on the TID (by timeout value)
160 * @pending: pending frames queue -- use sta's spinlock to protect
171 * @bar_pending: BAR needs to be re-sent
172 * @amsdu: support A-MSDU withing A-MDPU
178 * The TX path can access it under RCU lock-free if, and
181 * and re-check the state, see comments in the tx code
206 * struct tid_ampdu_rx - TID aggregation information (Rx).
209 * A-MSDU with individually reported subframes.
213 * @session_timer: check if peer keeps Tx-ing on the TID (by timeout value)
220 * @buf_size: buffer size for incoming A-MPDUs
260 * struct sta_ampdu_mlme - STA aggregation information.
262 * @mtx: mutex to protect all TX data (except non-NULL assignments
264 * tid_start_tx is also protected by sta->lock.
265 * @tid_rx: aggregation info for Rx per TID -- RCU protected
309 * struct ieee80211_fast_tx - TX fastpath information
320 * header length of 8 like for CCMP/GCMP) fits into a single 64-byte
335 * struct ieee80211_fast_rx - RX fastpath information
337 * @vif_type: (P2P-less) interface type of the original sdata (sdata->vif.type)
338 * @vif_addr: interface address
366 /* we use only values in the range 0-100, so pick a large precision */
371 * struct mesh_sta - mesh STA information
385 * @local_pm: local link-specific power save mode
386 * @peer_pm: peer-specific power save mode towards local STA
387 * @nonpeer_pm: STA power save mode towards non-peer neighbors
416 /* mesh power save */
445 * IEEE 802.11-2016 (10.6 "Defragmentation") recommends support for "concurrent
473 * The bandwidth threshold below which the per-station CoDel parameters will be
481 * struct link_sta_info - Link STA information
483 * a single entry for non-MLD STA or multiple entries for MLD STA
484 * @addr: Link MAC address - Can be same as MLD STA mac address and is always
485 * same for non-MLD STA. This is used as key for searching link STA
486 * @link_id: Link ID uniquely identifying the link STA. This is 0 for non-MLD
499 * @rx_stats_avg.chain_signal: averaged per-chain signal
500 * @pcpu_rx_stats: per-CPU RX statistics, assigned only if the driver needs
572 * struct sta_info - STA information
580 * @addr: station's MAC address - duplicated from public part to
589 * @rate_ctrl_priv: rate control private per-STA pointer
607 * plus one for non-QoS frames)
608 * @tid_seq: per-TID sequence numbers for sending to this STA
609 * @airtime: per-AC struct airtime_info describing airtime statistics for this
612 * @ampdu_mlme: A-MPDU state machine state
625 * @amsdu_mesh_control: track the mesh A-MSDU format used by the peer:
627 * * -1: not yet known
628 * * 0: non-mesh A-MSDU length field
629 * * 1: big-endian mesh A-MSDU length field
630 * * 2: little-endian mesh A-MSDU length field
641 * link[0] which points to address of @deflink. For MLO Link STA
647 * @deflink address and remaining would be allocated and the address
697 /* Plus 1 for non-QoS frames */
734 return sta->mesh->plink_state; in sta_plink_state()
745 set_bit(flag, &sta->_flags); in set_sta_flag()
754 clear_bit(flag, &sta->_flags); in clear_sta_flag()
760 return test_bit(flag, &sta->_flags); in test_sta_flag()
769 return test_and_clear_bit(flag, &sta->_flags); in test_and_clear_sta_flag()
778 return test_and_set_bit(flag, &sta->_flags); in test_and_set_sta_flag()
802 return rcu_dereference_protected(sta->ampdu_mlme.tid_tx[tid], in rcu_dereference_protected_tid_tx()
803 lockdep_is_held(&sta->lock) || in rcu_dereference_protected_tid_tx()
804 lockdep_is_held(&sta->ampdu_mlme.mtx)); in rcu_dereference_protected_tid_tx()
870 * -EEXIST if (if the same MAC address is already present).
872 * Calling the non-rcu version makes the caller relinquish,
891 * __sta_info_flush - flush matching STA entries from the STA table
901 * sta_info_flush - flush matching STA entries from the STA table
977 r = STA_STATS_FIELD(BW, s->bw); in sta_stats_encode_rate()
979 if (s->enc_flags & RX_ENC_FLAG_SHORT_GI) in sta_stats_encode_rate()
982 switch (s->encoding) { in sta_stats_encode_rate()
985 r |= STA_STATS_FIELD(VHT_NSS, s->nss); in sta_stats_encode_rate()
986 r |= STA_STATS_FIELD(VHT_MCS, s->rate_idx); in sta_stats_encode_rate()
990 r |= STA_STATS_FIELD(HT_MCS, s->rate_idx); in sta_stats_encode_rate()
994 r |= STA_STATS_FIELD(LEGACY_BAND, s->band); in sta_stats_encode_rate()
995 r |= STA_STATS_FIELD(LEGACY_IDX, s->rate_idx); in sta_stats_encode_rate()
999 r |= STA_STATS_FIELD(HE_NSS, s->nss); in sta_stats_encode_rate()
1000 r |= STA_STATS_FIELD(HE_MCS, s->rate_idx); in sta_stats_encode_rate()
1001 r |= STA_STATS_FIELD(HE_GI, s->he_gi); in sta_stats_encode_rate()
1002 r |= STA_STATS_FIELD(HE_RU, s->he_ru); in sta_stats_encode_rate()
1003 r |= STA_STATS_FIELD(HE_DCM, s->he_dcm); in sta_stats_encode_rate()
1007 r |= STA_STATS_FIELD(EHT_NSS, s->nss); in sta_stats_encode_rate()
1008 r |= STA_STATS_FIELD(EHT_MCS, s->rate_idx); in sta_stats_encode_rate()
1009 r |= STA_STATS_FIELD(EHT_GI, s->eht.gi); in sta_stats_encode_rate()
1010 r |= STA_STATS_FIELD(EHT_RU, s->eht.ru); in sta_stats_encode_rate()