On 9/13/2023 5:04 PM, Johannes Berg wrote:
On Wed, 2023-09-06 at 06:34 -0400, Wen Gong wrote:
Currently for MLO connection, only deflink's rx_nss is set to correct
value. The others links' rx_nss of struct ieee80211_link_sta is
value 0 in ieee80211_set_associated(), because they are not pass into
ieee80211_sta_set_rx_nss() in mac80211 except the deflink in
rate_control_rate_init(). This leads driver get NSS = 0 for other links.
Add the ieee80211_sta_set_rx_nss() in ieee80211_assoc_config_link(),
then the other links' rx_nss will be set to the correct value.
This is pretty much true, but I also think it's problematic the way you
phrase it. Software rate control is pretty much, at least currently,
_not_ supported for MLO (and I don't really see how to support it, if
firmware picks the link to transmit on, as it probably should).
I searched all the folder wireless, I only found 5 places have the
handler of rate_init below,
and the functions are all empty. Is it means no driver support rate_init
currently?
drivers/net/wireless/realtek/rtlwifi/rc.c:304: .rate_init =
rtl_rate_init,
drivers/net/wireless/intel/iwlwifi/mvm/rs.c:4098: .rate_init =
rs_rate_init_ops,
drivers/net/wireless/intel/iwlwifi/dvm/rs.c:3276: .rate_init =
rs_rate_init_stub,
drivers/net/wireless/intel/iwlegacy/4965-rs.c:2779: .rate_init =
il4965_rs_rate_init_stub,
drivers/net/wireless/intel/iwlegacy/3945-rs.c:867: .rate_init =
il3945_rs_rate_init_stub,
[...]