]> asedeno.scripts.mit.edu Git - linux.git/blobdiff - net/mac80211/sta_info.h
Merge git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf
[linux.git] / net / mac80211 / sta_info.h
index 369c2dddce528358351ec25bf9a5c8952e116fa8..ad5d8a4ae56d1e8eac382c7eb1e700d859e47860 100644 (file)
@@ -127,13 +127,21 @@ enum ieee80211_agg_stop_reason {
 /* Debugfs flags to enable/disable use of RX/TX airtime in scheduler */
 #define AIRTIME_USE_TX         BIT(0)
 #define AIRTIME_USE_RX         BIT(1)
+#define AIRTIME_USE_AQL                BIT(2)
 
 struct airtime_info {
        u64 rx_airtime;
        u64 tx_airtime;
        s64 deficit;
+       atomic_t aql_tx_pending; /* Estimated airtime for frames pending */
+       u32 aql_limit_low;
+       u32 aql_limit_high;
 };
 
+void ieee80211_sta_update_pending_airtime(struct ieee80211_local *local,
+                                         struct sta_info *sta, u8 ac,
+                                         u16 tx_airtime, bool tx_completed);
+
 struct sta_info;
 
 /**
@@ -725,6 +733,10 @@ struct sta_info *sta_info_get(struct ieee80211_sub_if_data *sdata,
 struct sta_info *sta_info_get_bss(struct ieee80211_sub_if_data *sdata,
                                  const u8 *addr);
 
+/* user must hold sta_mtx or be in RCU critical section */
+struct sta_info *sta_info_get_by_addrs(struct ieee80211_local *local,
+                                      const u8 *sta_addr, const u8 *vif_addr);
+
 #define for_each_sta_info(local, _addr, _sta, _tmp)                    \
        rhl_for_each_entry_rcu(_sta, _tmp,                              \
                               sta_info_hash_lookup(local, _addr), hash_node)