2009/4/15 Gábor Stefanik <netrolller.3d@xxxxxxxxx>: > 2009/4/15 Johannes Berg <johannes@xxxxxxxxxxxxxxxx>: >> On Wed, 2009-04-15 at 00:34 +0200, Gábor Stefanik wrote: >>> Set the total count of TX tries to 1 if IEEE80211_TX_CTL_NO_ACK is >>> set. This fixes a bug where mac80211 allowed the RC algo to request >>> drivers to forcibly retransmit NO_ACK (e.g. multicast) frames until >>> the excessive-retries limit is reached. >> >> Why not fix the rate control algorithms to use the no-ack flag instead >> of is_multicast? > > I was thinking about that originally, but we have 5 RC algorithms > (minstrel, pid, iwl-3945-rs, iwl-agn-rs & ath9k-rs) right now, with > possibly more to come for future N-based devices. Fixing them all > one-by-one would be much more tedious, and we will still not be > future-proof (that is, there is always the risk of getting a new > driver released with its own, specific RC algorithm that suffers from > this bug). This way, if e.g. Whatevercom releases a driver for its > WhateWIFI UltraMIMO1337 chipset with its own, buggy "whatever-rs" > algorithm, NO_ACK will still work properly for that driver. BTW, Minstrel specifically forces NO_ACK packets to be retried the maximal allowed number of times. rc80211_minstrel.c, line 246: > if (!sta || !mi || use_low_rate(skb)) { > ar[0].idx = rate_lowest_index(sband, sta); > ar[0].count = mp->max_retry; > return; > } mp->max_retry = hw->max_rate_tries, or 7 if hw->max_rate_tries is 0. The use_low_rate function is basically a check for NO_ACK. -- Vista: [V]iruses, [I]ntruders, [S]pyware, [T]rojans and [A]dware. :-) -- 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