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-2024 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 * @tid_rx: aggregation info for Rx per TID -- RCU protected
276 * by wiphy mutex but also sta->lock
306 * struct ieee80211_fast_tx - TX fastpath information
317 * header length of 8 like for CCMP/GCMP) fits into a single 64-byte
332 * struct ieee80211_fast_rx - RX fastpath information
334 * @vif_type: (P2P-less) interface type of the original sdata (sdata->vif.type)
335 * @vif_addr: interface address
363 /* we use only values in the range 0-100, so pick a large precision */
368 * struct mesh_sta - mesh STA information
382 * @local_pm: local link-specific power save mode
383 * @peer_pm: peer-specific power save mode towards local STA
384 * @nonpeer_pm: STA power save mode towards non-peer neighbors
413 /* mesh power save */
442 * IEEE 802.11-2016 (10.6 "Defragmentation") recommends support for "concurrent
470 * The bandwidth threshold below which the per-station CoDel parameters will be
478 * struct link_sta_info - Link STA information
480 * a single entry for non-MLD STA or multiple entries for MLD STA
481 * @addr: Link MAC address - Can be same as MLD STA mac address and is always
482 * same for non-MLD STA. This is used as key for searching link STA
483 * @link_id: Link ID uniquely identifying the link STA. This is 0 for non-MLD
498 * @rx_stats_avg.chain_signal: averaged per-chain signal
499 * @pcpu_rx_stats: per-CPU RX statistics, assigned only if the driver needs
573 * struct sta_info - STA information
581 * @addr: station's MAC address - duplicated from public part to
590 * @rate_ctrl_priv: rate control private per-STA pointer
608 * plus one for non-QoS frames)
609 * @tid_seq: per-TID sequence numbers for sending to this STA
610 * @airtime: per-AC struct airtime_info describing airtime statistics for this
613 * @ampdu_mlme: A-MPDU state machine state
624 * @amsdu_mesh_control: track the mesh A-MSDU format used by the peer:
626 * * -1: not yet known
627 * * 0: non-mesh A-MSDU length field
628 * * 1: big-endian mesh A-MSDU length field
629 * * 2: little-endian mesh A-MSDU length field
640 * link[0] which points to address of @deflink. For MLO Link STA
646 * @deflink address and remaining would be allocated and the address
696 /* Plus 1 for non-QoS frames */
733 return sta->sta.valid_links ? __ffs(sta->sta.valid_links) : 0; in ieee80211_tdls_sta_link_id()
739 return sta->mesh->plink_state; in sta_plink_state()
750 set_bit(flag, &sta->_flags); in set_sta_flag()
759 clear_bit(flag, &sta->_flags); in clear_sta_flag()
765 return test_bit(flag, &sta->_flags); in test_sta_flag()
774 return test_and_clear_bit(flag, &sta->_flags); in test_and_clear_sta_flag()
783 return test_and_set_bit(flag, &sta->_flags); in test_and_set_sta_flag()
805 rcu_dereference_protected((sta)->ampdu_mlme.tid_tx[tid], \
806 lockdep_is_held(&(sta)->lock) || \
807 lockdep_is_held(&(sta)->local->hw.wiphy->mtx));
872 * -EEXIST if (if the same MAC address is already present).
874 * Calling the non-rcu version makes the caller relinquish,
893 * __sta_info_flush - flush matching STA entries from the STA table
900 * will be removed. If -1 is passed, all STA entries will be
907 * sta_info_flush - flush matching STA entries from the STA table
913 * will be removed. If -1 is passed, all STA entries will be
987 r = STA_STATS_FIELD(BW, s->bw); in sta_stats_encode_rate()
989 if (s->enc_flags & RX_ENC_FLAG_SHORT_GI) in sta_stats_encode_rate()
992 switch (s->encoding) { in sta_stats_encode_rate()
995 r |= STA_STATS_FIELD(VHT_NSS, s->nss); in sta_stats_encode_rate()
996 r |= STA_STATS_FIELD(VHT_MCS, s->rate_idx); in sta_stats_encode_rate()
1000 r |= STA_STATS_FIELD(HT_MCS, s->rate_idx); in sta_stats_encode_rate()
1004 r |= STA_STATS_FIELD(LEGACY_BAND, s->band); in sta_stats_encode_rate()
1005 r |= STA_STATS_FIELD(LEGACY_IDX, s->rate_idx); in sta_stats_encode_rate()
1009 r |= STA_STATS_FIELD(HE_NSS, s->nss); in sta_stats_encode_rate()
1010 r |= STA_STATS_FIELD(HE_MCS, s->rate_idx); in sta_stats_encode_rate()
1011 r |= STA_STATS_FIELD(HE_GI, s->he_gi); in sta_stats_encode_rate()
1012 r |= STA_STATS_FIELD(HE_RU, s->he_ru); in sta_stats_encode_rate()
1013 r |= STA_STATS_FIELD(HE_DCM, s->he_dcm); in sta_stats_encode_rate()
1017 r |= STA_STATS_FIELD(EHT_NSS, s->nss); in sta_stats_encode_rate()
1018 r |= STA_STATS_FIELD(EHT_MCS, s->rate_idx); in sta_stats_encode_rate()
1019 r |= STA_STATS_FIELD(EHT_GI, s->eht.gi); in sta_stats_encode_rate()
1020 r |= STA_STATS_FIELD(EHT_RU, s->eht.ru); in sta_stats_encode_rate()