On Wed, Mar 28, 2012 at 2:17 AM, Timo Lindhorst <tlnd@xxxxxxxxx> wrote: > Assuming an ideal channel, always the first transmission is considered > successful if an ACK is received. If no ACK is received, the > rates/attempts are reported as set by the rate control. > > Signed-off-by: Timo Lindhorst <tlnd@xxxxxxxxx> I just tested this patch and rate control in hwsim seems to be operational once again. Attached you'll find a rate plot that shows the data rate evolution over time. I believe the periodic dips in data rate are due to minstrel sampling different rates, although I'm not certain about that... Signed-off-by: Javier Cardona <javier@xxxxxxxxxxx> Cheers, Javier > --- > drivers/net/wireless/mac80211_hwsim.c | 15 +++++++++++++++ > 1 files changed, 15 insertions(+), 0 deletions(-) > > diff --git a/drivers/net/wireless/mac80211_hwsim.c > b/drivers/net/wireless/mac80211_hwsim.c > index b7ce6a6..64adb3c 100644 > --- a/drivers/net/wireless/mac80211_hwsim.c > +++ b/drivers/net/wireless/mac80211_hwsim.c > @@ -698,6 +698,8 @@ static void mac80211_hwsim_tx(struct ieee80211_hw *hw, > struct sk_buff *skb) > bool ack; > struct ieee80211_tx_info *txi; > u32 _pid; > + u8 tx_count[IEEE80211_TX_MAX_RATES]; > + int i; > struct ieee80211_mgmt *mgmt = (struct ieee80211_mgmt *) skb->data; > struct mac80211_hwsim_data *data = hw->priv; > > @@ -734,9 +736,22 @@ static void mac80211_hwsim_tx(struct ieee80211_hw *hw, > struct sk_buff *skb) > if (txi->control.sta) > hwsim_check_sta_magic(txi->control.sta); > > + if (!ack) > + for (i = 0; i < IEEE80211_TX_MAX_RATES; i++) > + tx_count[i] = txi->control.rates[i].count; > + > ieee80211_tx_info_clear_status(txi); > if (!(txi->flags & IEEE80211_TX_CTL_NO_ACK) && ack) > txi->flags |= IEEE80211_TX_STAT_ACK; > + > + if (ack) { > + txi->status.rates[0].count = 1; > + txi->status.rates[1].idx = -1; > + } else { > + for (i = 0; i < IEEE80211_TX_MAX_RATES; i++) > + txi->control.rates[i].count = tx_count[i]; > + } > + > ieee80211_tx_status_irqsafe(hw, skb); > } > > -- > 1.7.9.1 > > -- > To unsubscribe from this list: send the line "unsubscribe linux-wireless" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html -- Javier Cardona cozybit Inc. http://www.cozybit.com
Attachment:
rate.png
Description: PNG image