Lines Matching +full:send +full:- +full:flush +full:- +full:out +full:- +full:sequence

1 /* SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause */
3 * Copyright (C) 2012-2014, 2018-2024 Intel Corporation
4 * Copyright (C) 2013-2014 Intel Mobile Communications GmbH
5 * Copyright (C) 2015-2016 Intel Deutschland GmbH
14 #include "iwl-trans.h" /* for IWL_MAX_TID_COUNT */
15 #include "fw-api.h" /* IWL_MVM_STATION_COUNT_MAX */
22 * DOC: DQA - Dynamic Queue Allocation -introduction
25 * driver to allow dynamic allocation of queues on-demand, rather than allocate
27 * per RA/TID, thus allowing an AP - for example - to send BE traffic to STA2
28 * even if it also needs to send traffic to a sleeping STA1, without being
33 * TXQ #0 - command queue
34 * TXQ #1 - aux frames
35 * TXQ #2 - P2P device frames
36 * TXQ #3 - P2P GO/SoftAP GCAST/BCAST frames
37 * TXQ #4 - BSS DATA frames queue
38 * TXQ #5-8 - Non-QoS and MGMT frames queue pool
39 * TXQ #9 - P2P GO/SoftAP probe responses
40 * TXQ #10-31 - DATA frames queue pool
48 * %mvm->add_stream_wk later allocates the queues and TXes the deferred frames.
65 * TIDs become inactive and are removed - only then can the queue be
76 * DOC: station table - introduction
88 * (sequence numbers, Block-ack state machine, etc...). The stations are
100 * DOC: station table - locking
107 * The station holds the sequence number per tid. So this data needs to be
108 * accessed in the Tx path (which is softIRQ). It also holds the Block-Ack
119 * If a station is deleted while it still has packets in its A-MPDU queues,
125 * DOC: station table - internal stations
145 * DOC: station table - AP Station in STA mode
157 * DOC: station table - Drain vs. Flush
159 * Flush means that all the frames in the SCD queue are dumped regardless the
161 * we remove the STA of the AP. The flush can be done synchronously against the
168 * DOC: station table - fw restart
176 * means that the stations being re-added after the reset will have the same
179 * are not added by mac80211 will be re-added in the init flow that is called
185 * DOC: AP mode - PS
188 * shared queues (i.e. non-aggregation queues) to that station will be dropped
195 * When a trigger frame is received, mac80211 tells the driver to send frames
196 * from the AMPDU queues or sends frames to non-aggregation queues itself,
197 * depending on which ACs are delivery-enabled and what TID has frames to
198 * transmit. Note that mac80211 has all the knowledge since all the non-agg
200 * frames). The driver needs to tell the fw to let frames out even if the
226 * @IWL_EMPTYING_HW_QUEUE_ADDBA: establishing a BA session - waiting for the
228 * @IWL_EMPTYING_HW_QUEUE_DELBA: tearing down a BA session - waiting for the
241 * struct iwl_mvm_tid_data - holds the states for each RA / TID
242 * @seq_number: the next WiFi sequence number to use
243 * @next_reclaimed: the WiFi sequence number of the next packet to be acked.
248 * @amsdu_in_ampdu_allowed: true if A-MSDU in A-MPDU is allowed.
255 * @tx_time: medium time consumed by this A-MPDU
285 * enum iwl_mvm_rxq_notif_type - Internal message identifier
296 * struct iwl_mvm_internal_rxq_notif - Internal representation of the data sent
317 * struct iwl_mvm_rxq_dup_data - per station per rx queue data
318 * @last_seq: last sequence per tid for duplicate packet detection
327 * struct iwl_mvm_link_sta - link specific parameters of a station
331 * the driver - %rs_drv or in the FW - %rs_fw.
356 * struct iwl_mvm_tpt_counter - per-queue MPDU counter
359 * @per_link: per-link counters.
360 * @window_start: timestamp of the counting-window start
369 * struct iwl_mvm_sta - representation of a station in the driver
373 * @tid_disable_agg: bitmap: if bit(tid) is set, the fw won't send ampdus for
379 * @next_status_eosp: the next reclaimed packet is a PS-Poll response and
398 * @sleep_tx_count: the number of frames that we told the firmware to let out
403 * @ptk_pn: per-queue PTK PN data structures
409 * @deflink: the default link station, for non-MLO STA, all link specific data
412 * @link: per link sta entries. For non-MLO only link[0] holds data. For MLO,
417 * When mac80211 creates a station it reserves some space (hw->sta_data_size)
464 return (void *)sta->drv_priv;
468 * struct iwl_mvm_int_sta - representation of an internal station (auxiliary or
481 * iwl_mvm_sta_send_to_fw - Send the STA info to the FW.
616 * struct iwl_mvm_sta_state_ops - callbacks for the sta_state() ops
619 * non-MLD versions of sta_state() is these function calls,
620 * each version will send its specific function calls to