Lines Matching +full:ac +full:- +full:link

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.
51 * packets. This means the link is enabled.
52 * @WLAN_STA_TDLS_INITIATOR: We are the initiator of the TDLS link with this
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.
149 struct sta_info *sta, u8 ac,
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)
366 /* we use only values in the range 0-100, so pick a large precision */
371 * struct mesh_sta - mesh STA information
373 * @llid: Local link ID
374 * @plid: Peer link ID
378 * @plink_state: peer link state
379 * @plink_timeout: timeout of peer link
380 * @plink_timer: peer link watch timer
381 * @plink_sta: peer link watch timer's sta_info
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
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
482 * All link specific sta info are stored here for reference. This can be
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
516 * @pub: public (driver visible) link STA data
517 * TODO Move other link params from sta_info as required for MLD operation
567 * struct sta_info - STA information
575 * @addr: station's MAC address - duplicated from public part to
584 * @rate_ctrl_priv: rate control private per-STA pointer
591 * @ps_tx_buf: buffers (per AC) of frames to transmit to this station
593 * @tx_filtered: buffers (per AC) of frames we already tried to
602 * plus one for non-QoS frames)
603 * @tid_seq: per-TID sequence numbers for sending to this STA
604 * @airtime: per-AC struct airtime_info describing airtime statistics for this
607 * @ampdu_mlme: A-MPDU state machine state
627 * @deflink: This is the default link STA information, for non MLO STA all link
629 * link[0] which points to address of @deflink. For MLO Link STA
630 * the first added link STA will point to deflink.
631 * @link: reference to Link Sta entries. For Non MLO STA, except 1st link,
632 * i.e link[0] all links would be assigned to NULL by default and
633 * would access link information via @deflink or link[0]. For MLO
634 * STA, first link STA being added will point its link pointer to
636 * would be assigned to link[link_id] where link_id is the id assigned
685 /* Plus 1 for non-QoS frames */
712 struct link_sta_info __rcu *link[IEEE80211_MLD_MAX_NUM_LINKS]; member
721 return sta->mesh->plink_state; in sta_plink_state()
732 set_bit(flag, &sta->_flags); in set_sta_flag()
741 clear_bit(flag, &sta->_flags); in clear_sta_flag()
747 return test_bit(flag, &sta->_flags); in test_sta_flag()
756 return test_and_clear_bit(flag, &sta->_flags); in test_and_clear_sta_flag()
765 return test_and_set_bit(flag, &sta->_flags); in test_and_set_sta_flag()
789 return rcu_dereference_protected(sta->ampdu_mlme.tid_tx[tid], in rcu_dereference_protected_tid_tx()
790 lockdep_is_held(&sta->lock) || in rcu_dereference_protected_tid_tx()
791 lockdep_is_held(&sta->ampdu_mlme.mtx)); in rcu_dereference_protected_tid_tx()
794 /* Maximum number of frames to buffer per power saving station per AC */
857 * -EEXIST if (if the same MAC address is already present).
859 * Calling the non-rcu version makes the caller relinquish,
878 * __sta_info_flush - flush matching STA entries from the STA table
888 * sta_info_flush - flush matching STA entries from the STA table
957 r = STA_STATS_FIELD(BW, s->bw); in sta_stats_encode_rate()
959 if (s->enc_flags & RX_ENC_FLAG_SHORT_GI) in sta_stats_encode_rate()
962 switch (s->encoding) { in sta_stats_encode_rate()
965 r |= STA_STATS_FIELD(VHT_NSS, s->nss); in sta_stats_encode_rate()
966 r |= STA_STATS_FIELD(VHT_MCS, s->rate_idx); in sta_stats_encode_rate()
970 r |= STA_STATS_FIELD(HT_MCS, s->rate_idx); in sta_stats_encode_rate()
974 r |= STA_STATS_FIELD(LEGACY_BAND, s->band); in sta_stats_encode_rate()
975 r |= STA_STATS_FIELD(LEGACY_IDX, s->rate_idx); in sta_stats_encode_rate()
979 r |= STA_STATS_FIELD(HE_NSS, s->nss); in sta_stats_encode_rate()
980 r |= STA_STATS_FIELD(HE_MCS, s->rate_idx); in sta_stats_encode_rate()
981 r |= STA_STATS_FIELD(HE_GI, s->he_gi); in sta_stats_encode_rate()
982 r |= STA_STATS_FIELD(HE_RU, s->he_ru); in sta_stats_encode_rate()
983 r |= STA_STATS_FIELD(HE_DCM, s->he_dcm); in sta_stats_encode_rate()