]> git.proxmox.com Git - mirror_ubuntu-hirsute-kernel.git/commitdiff
mac80211_hwsim: Fix rate control by correctly reporting transmission counts
authorJavier Cardona <javier@cozybit.com>
Tue, 1 May 2012 10:01:28 +0000 (03:01 -0700)
committerJohn W. Linville <linville@tuxdriver.com>
Tue, 15 May 2012 21:27:27 +0000 (17:27 -0400)
Drivers need to report the number of transmission attempts for each rate
as well as to terminate the rate array with -1.  The in-kernel datapath
of hwsim simulates a perfect medium, therefore the driver only needs to
report that the first transmission attempt was sucessfully completed at
the most favorable rate.

Rate control is working again for this driver.  Tested mesh mode with
minstrel.

Signed-off-by: Javier Cardona <javier@cozybit.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/mac80211_hwsim.c

index 03c0c6b1372ca8cf68e1b464efdf376b8603ed06..fb787df0166699f9c31e7adf8ff25c924c08f7a8 100644 (file)
@@ -746,6 +746,11 @@ static void mac80211_hwsim_tx(struct ieee80211_hw *hw, struct sk_buff *skb)
                hwsim_check_sta_magic(txi->control.sta);
 
        ieee80211_tx_info_clear_status(txi);
+
+       /* frame was transmitted at most favorable rate at first attempt */
+       txi->control.rates[0].count = 1;
+       txi->control.rates[1].idx = -1;
+
        if (!(txi->flags & IEEE80211_TX_CTL_NO_ACK) && ack)
                txi->flags |= IEEE80211_TX_STAT_ACK;
        ieee80211_tx_status_irqsafe(hw, skb);