• Felix Fietkau's avatar
    ath9k: fix powersave frame filtering/buffering in AP mode · 5519541d
    Felix Fietkau authored
    This patch fixes a long standing issue of pending packets in the queue being
    sent (and retransmitted many times) to sleeping stations.
    This was made worse by aggregation through driver-internal retransmitting
    of A-MDPU subframes.
    Previously the hardware tx filter was cleared unconditionally for every
    single packet - with this patch it uses the IEEE80211_TX_CTL_CLEAR_PS_FILT
    for unaggregated frames.
    A sta_notify driver op is added to stop aggregation for stations when they
    enter powersave mode. Subframes stay buffered inside the driver, to ensure
    that the BlockAck window keeps a sane state.
    Since the driver uses software aggregation, the clearing of the tx filter
    needs to be handled by the driver instead of mac80211 for aggregated frames.
    Signed-off-by: default avatarFelix Fietkau <nbd@openwrt.org>
    Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
    5519541d
ar9003_mac.c 18.2 KB