On 23/10/2022 18:53, Johannes Berg wrote: > Hi, > >> I thought it's like this: >> 1) don't set HAS_RATE_CONTROL > > yes > >> 2) tell the chip to use the rate from tx_info->control.rates[0] > > I'd prefer you didn't, that's also very limited :-) > >> 3) report if the frame was acked or not > > Kind of. > > It'd be better if new drivers used sta_rate_tbl_update method, so it'd > be something like > > 1) don't set HAS_RATE_CONTROL > 2) implement sta_rate_tbl_update(), using the table of rates given > there to instruct the device to transmit frames at those rates > 3) on TX success/failure, fill in a struct ieee80211_rate_status array > that indicates which rates were used and how many times until the > eventual success or failure; this is in struct ieee80211_tx_status > 3) alternatively, fill in the tx_info rates array the same way and > report it that way, but that's less flexible > > > johannes I got it to work! But I had to use tx_info->control.rates[0] when IEEE80211_TX_CTL_RATE_CTRL_PROBE is set, otherwise the rate table only contains MCS0.