mac80211_hwsim: Fix RX status reporting for HT
authorJouni Malinen <j@w1.fi>
Sat, 6 Aug 2011 20:07:00 +0000 (23:07 +0300)
committerJohn W. Linville <linville@tuxdriver.com>
Wed, 10 Aug 2011 18:07:41 +0000 (14:07 -0400)
RX_FLAG_HT must be included when reporting MCS rates. Without
this, mac80211 ended up dropping any frame sent at MCS index 12
or higher and that resulted in oddly random looking errors in
mac80211_hwsim tests.

Signed-off-by: Jouni Malinen <j@w1.fi>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/mac80211_hwsim.c

index 031cd89b17682825177499303b94a80f3a84e97a..34b79fc91e39995398f9074fdfcdf4950978a8d4 100644 (file)
@@ -612,6 +612,12 @@ static bool mac80211_hwsim_tx_frame_no_nl(struct ieee80211_hw *hw,
        rx_status.freq = data->channel->center_freq;
        rx_status.band = data->channel->band;
        rx_status.rate_idx = info->control.rates[0].idx;
+       if (info->control.rates[0].flags & IEEE80211_TX_RC_MCS)
+               rx_status.flag |= RX_FLAG_HT;
+       if (info->control.rates[0].flags & IEEE80211_TX_RC_40_MHZ_WIDTH)
+               rx_status.flag |= RX_FLAG_40MHZ;
+       if (info->control.rates[0].flags & IEEE80211_TX_RC_SHORT_GI)
+               rx_status.flag |= RX_FLAG_SHORT_GI;
        /* TODO: simulate real signal strength (and optional packet loss) */
        rx_status.signal = data->power_level - 50;