• Jonas Jelonek's avatar
    ath9k: switch to rate table based lookup · 7f3a6f5d
    Jonas Jelonek authored
    This patch changes mac80211 rate control for the ath9k driver.  The rate lookup
    per packet is changed from legacy usage of ieee80211_get_tx_rates() to the new
    rate table based lookup in struct ieee80211_sta->rates.
    
    The most recent rate control API, introduced with commit 0d528d85
    
    
    ("mac80211: improve the rate control API"), allows drivers to directly get
    rates from ieee80211_sta->rates. This is not used by every driver yet, the
    translation/merge is currently performed in ieee80211_get_tx_rates.  This patch
    changes the behaviour and avoids the call to ieee80211_get_tx_rates and
    subsequent calls. ath9k now directly reads rates from sta->rates into its rate
    table. Cause ath9k does not expect rate selection in SKB->CB, the table merge
    does not consider rate array in SKB->CB except for the first entry (used for
    probing).
    
    Tested with a 8devices Rambutan with QCA9558 SoC by performing two runs, one
    without the patch and one with. Generated traffic between AP and multiple STAs
    in each run, measured throughput and captured rc_stats.  Comparison of both
    runs resulted in same rate selection and no performance loss or other negative
    effects.
    Co-developed-by: default avatarThomas Huehn <thomas.huehn@hs-nordhausen.de>
    Signed-off-by: default avatarThomas Huehn <thomas.huehn@hs-nordhausen.de>
    Signed-off-by: default avatarJonas Jelonek <jelonek.jonas@gmail.com>
    Acked-by: default avatarToke Høiland-Jørgensen <toke@redhat.com>
    Signed-off-by: default avatarKalle Valo <quic_kvalo@quicinc.com>
    Link: https://lore.kernel.org/r/20211128090753.958-1-jelonek.jonas@gmail.com
    7f3a6f5d
xmit.c 74.2 KB