hc
2023-12-09 b22da3d8526a935aa31e086e63f60ff3246cb61c
kernel/drivers/net/wireless/intel/iwlwifi/mvm/sta.h
....@@ -8,7 +8,7 @@
88 * Copyright(c) 2012 - 2014 Intel Corporation. All rights reserved.
99 * Copyright(c) 2013 - 2014 Intel Mobile Communications GmbH
1010 * Copyright(c) 2015 - 2016 Intel Deutschland GmbH
11
- * Copyright(c) 2018 Intel Corporation
11
+ * Copyright(c) 2018 - 2020 Intel Corporation
1212 *
1313 * This program is free software; you can redistribute it and/or modify
1414 * it under the terms of version 2 of the GNU General Public License as
....@@ -31,7 +31,7 @@
3131 * Copyright(c) 2012 - 2014 Intel Corporation. All rights reserved.
3232 * Copyright(c) 2013 - 2014 Intel Mobile Communications GmbH
3333 * Copyright(c) 2015 - 2016 Intel Deutschland GmbH
34
- * Copyright(c) 2018 Intel Corporation
34
+ * Copyright(c) 2018 - 2020 Intel Corporation
3535 * All rights reserved.
3636 *
3737 * Redistribution and use in source and binary forms, with or without
....@@ -70,7 +70,7 @@
7070 #include <linux/wait.h>
7171
7272 #include "iwl-trans.h" /* for IWL_MAX_TID_COUNT */
73
-#include "fw-api.h" /* IWL_MVM_STATION_COUNT */
73
+#include "fw-api.h" /* IWL_MVM_STATION_COUNT_MAX */
7474 #include "rs.h"
7575
7676 struct iwl_mvm;
....@@ -297,7 +297,6 @@
297297
298298 /**
299299 * struct iwl_mvm_tid_data - holds the states for each RA / TID
300
- * @deferred_tx_frames: deferred TX frames for this RA/TID
301300 * @seq_number: the next WiFi sequence number to use
302301 * @next_reclaimed: the WiFi sequence number of the next packet to be acked.
303302 * This is basically (last acked packet++).
....@@ -312,16 +311,12 @@
312311 * Basically when next_reclaimed reaches ssn, we can tell mac80211 that
313312 * we are ready to finish the Tx AGG stop / start flow.
314313 * @tx_time: medium time consumed by this A-MPDU
315
- * @is_tid_active: has this TID sent traffic in the last
316
- * %IWL_MVM_DQA_QUEUE_TIMEOUT time period. If %txq_id is invalid, this
317
- * field should be ignored.
318314 * @tpt_meas_start: time of the throughput measurements start, is reset every HZ
319315 * @tx_count_last: number of frames transmitted during the last second
320316 * @tx_count: counts the number of frames transmitted since the last reset of
321317 * tpt_meas_start
322318 */
323319 struct iwl_mvm_tid_data {
324
- struct sk_buff_head deferred_tx_frames;
325320 u16 seq_number;
326321 u16 next_reclaimed;
327322 /* The rest is Tx AGG related */
....@@ -332,7 +327,6 @@
332327 u16 txq_id;
333328 u16 ssn;
334329 u16 tx_time;
335
- bool is_tid_active;
336330 unsigned long tpt_meas_start;
337331 u32 tx_count_last;
338332 u32 tx_count;
....@@ -349,9 +343,17 @@
349343 u32 baid;
350344 } __packed;
351345
352
-struct iwl_mvm_delba_notif {
346
+struct iwl_mvm_nssn_sync_data {
347
+ u32 baid;
348
+ u32 nssn;
349
+} __packed;
350
+
351
+struct iwl_mvm_rss_sync_notif {
353352 struct iwl_mvm_internal_rxq_notif metadata;
354
- struct iwl_mvm_delba_data delba;
353
+ union {
354
+ struct iwl_mvm_delba_data delba;
355
+ struct iwl_mvm_nssn_sync_data nssn_sync;
356
+ };
355357 } __packed;
356358
357359 /**
....@@ -392,6 +394,9 @@
392394 * @amsdu_enabled: bitmap of TX AMSDU allowed TIDs.
393395 * In case TLC offload is not active it is either 0xFFFF or 0.
394396 * @max_amsdu_len: max AMSDU length
397
+ * @orig_amsdu_len: used to save the original amsdu_len when it is changed via
398
+ * debugfs. If it's set to 0, it means that it is it's not set via
399
+ * debugfs.
395400 * @agg_tids: bitmap of tids whose status is operational aggregated (IWL_AGG_ON)
396401 * @sleep_tx_count: the number of frames that we told the firmware to let out
397402 * even when that station is asleep. This is useful in case the queue
....@@ -401,6 +406,9 @@
401406 * @ptk_pn: per-queue PTK PN data structures
402407 * @dup_data: per queue duplicate packet detection data
403408 * @deferred_traffic_tid_map: indication bitmap of deferred traffic per-TID
409
+ * @tx_ant: the index of the antenna to use for data tx to this station. Only
410
+ * used during connection establishment (e.g. for the 4 way handshake
411
+ * exchange).
404412 *
405413 * When mac80211 creates a station it reserves some space (hw->sta_data_size)
406414 * in the structure for use by driver. This structure is placed in that
....@@ -428,8 +436,6 @@
428436 struct iwl_mvm_key_pn __rcu *ptk_pn[4];
429437 struct iwl_mvm_rxq_dup_data *dup_data;
430438
431
- u16 deferred_traffic_tid_map;
432
-
433439 u8 reserved_queue;
434440
435441 /* Temporary, until the new TLC will control the Tx protection */
....@@ -439,10 +445,12 @@
439445 bool disable_tx;
440446 u16 amsdu_enabled;
441447 u16 max_amsdu_len;
448
+ u16 orig_amsdu_len;
442449 bool sleeping;
443450 u8 agg_tids;
444451 u8 sleep_tx_count;
445452 u8 avg_energy;
453
+ u8 tx_ant;
446454 };
447455
448456 u16 iwl_mvm_tid_queued(struct iwl_mvm *mvm, struct iwl_mvm_tid_data *tid_data);
....@@ -532,8 +540,8 @@
532540 int iwl_mvm_sta_tx_agg(struct iwl_mvm *mvm, struct ieee80211_sta *sta,
533541 int tid, u8 queue, bool start);
534542
535
-int iwl_mvm_add_aux_sta(struct iwl_mvm *mvm);
536
-void iwl_mvm_del_aux_sta(struct iwl_mvm *mvm);
543
+int iwl_mvm_add_aux_sta(struct iwl_mvm *mvm, u32 lmac_id);
544
+int iwl_mvm_rm_aux_sta(struct iwl_mvm *mvm);
537545
538546 int iwl_mvm_alloc_bcast_sta(struct iwl_mvm *mvm, struct ieee80211_vif *vif);
539547 int iwl_mvm_send_add_bcast_sta(struct iwl_mvm *mvm, struct ieee80211_vif *vif);
....@@ -571,9 +579,7 @@
571579 bool disable);
572580 void iwl_mvm_csa_client_absent(struct iwl_mvm *mvm, struct ieee80211_vif *vif);
573581 void iwl_mvm_add_new_dqa_stream_wk(struct work_struct *wk);
574
-
575
-int iwl_mvm_scd_queue_redirect(struct iwl_mvm *mvm, int queue, int tid,
576
- int ac, int ssn, unsigned int wdg_timeout,
577
- bool force);
578
-
582
+int iwl_mvm_add_pasn_sta(struct iwl_mvm *mvm, struct ieee80211_vif *vif,
583
+ struct iwl_mvm_int_sta *sta, u8 *addr, u32 cipher,
584
+ u8 *key, u32 key_len);
579585 #endif /* __sta_h__ */