Hi, I've take a closer look at the AQL implementation, and I found some corner cases that need to be addressed soon: - AQL estimated airtime does not take into account A-MPDU, so it is significantly overestimating airtime use for aggregated traffic, especially on high rates. My proposed solution would be to check for a running aggregation session and set estimated tx time to something like: expected_airtime(16 * skb->len) / 16. - We need an API that allows the driver to change the pending airtime values, e.g. subtract estimated tx time for a packet. mt76 an ath9k can queue packets inside the driver that are not currently in the hardware queues. Typically if the txqs have more data than what gets put into the hardware queue, both drivers will pull an extra frame and queue it in its private txq struct. This frame will get used on the next txq scheduling round for that particular station. If you have lots of stations doing traffic (or having driver buffered frames in powersave mode), this could use up a sizable chunk of the AQL budget. While removing the airtime of those packages would lead to AQL temporarily underestimating airtime, I think it would be better than overestimating it. I will work on some patches. What do you think about these issues and my proposed fixes? - Felix