• Jonas Jelonek's avatar
    ath5k: switch to rate table based lookup · a5d862da
    Jonas Jelonek authored
    Switching from legacy usage of ieee80211_get_tx_rates() lookup to direct
    rate table lookup in struct ieee80211_sta->rates.
    
    The current rate control API allows drivers to directly get rates from
    ieee80211_sta->rates. ath5k is currently one of the legacy drivers that
    perform translation/merge with the internal rate table via
    ieee80211_get_tx_rates provided by rate control API.
    For our upcoming changes to rate control API and the implementation of
    transmit power control, this patch changes the behaviour. The call to
    ieee80211_get_tx_rates and subsequent calls are also avoided. ath5k now
    directly reads rates from sta->rates into its internal rate table. Cause
    ath5k does not rely on the rate array in SKB->CB, this is not considered
    anymore except for the first entry (used for probing).
    
    Tested this on a PCEngines ALIX with CMP9-GP miniPCI wifi card (Atheros
    AR5213A). Generated traffic between AP and multiple STAs before and
    after applying the patch and simultaneously measured throughput and
    captured rc_stats. Comparison resulted in same rate selection and no
    performance loss between both runs.
    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>
    Signed-off-by: default avatarKalle Valo <quic_kvalo@quicinc.com>
    Link: https://lore.kernel.org/r/20211215215042.637-1-jelonek.jonas@gmail.com
    a5d862da
base.c 85 KB