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