Search Linux Wireless

Re: [PATCH] mac80211: Add module parameter for setting initial rate in rc80211_simple

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



James Ketrenos wrote:
James Ketrenos wrote:
Larry Finger wrote:
The initial rate for STA's using rc80211_simple is set to the last
rate in the rate table. This is too fast for the bcm43xx-mac80211
driver.
To correct this situation without affecting any other driver,
an initial_rate parameter is added to the rc80211_simple module. This
parameter is set to 10 times the desired initial rate. If the parameter
is zero or not set, the original behavior is kept. If the parameter
does not match a valid rate, the first rate in the table will be set.

Initial rate selection should be based on the RSSI of the last frame(s) received from the target network. One way to do that would be for the driver to map a minimum RSSI value to each rate. If the RSSI for the target network is greater than the value listed, that rate could be used for initial selection. The ieee80211_rate with the highest 'rate', which is in the supported rates mask and with a min_rssi <= the AP's reported RSSI, is selected.

The mechanism by which the magic values for min_rssi are determined for each rate is more observational than scientific--and is vendor specific. You can pick a set of values, but different hardware and environments will yield different levels of success / failure. Some hardware can be very lenient if it has automatic hardware retry. Other hardware will need to be very conservative (since, as you point out, the first few frames Tx/Rx'd are important)

I didn't state it above -- doing what is described requires adding one unsigned char (min_rssi) to ieee80211_rate in mac80211.h and then modifying rc80211_simple to take advantage of that information (so if you're grepping for min_rssi and can't find it, that's why...)

I agree that the initial rate selection should be based on the RSSI of the last frame(s), but that will take a long time to develop - both to get the necessary code into mac80211 and the driver support for min_rssi. I'm not sure we who work with bcm43xx have that time. Although the mac80211 version of our driver is not yet in mainline, it has been included in FC7, which changes the nature and the skills of the users. For many users, me included, the driver cannot associate and authenticate with the "out of the box" version of mac80211. I posted a private patch on the bcm43xx mailing list that set the initial rate to 1 Mbs, which allowed my system to connect. A number of others reported back that this change also allowed them to connect much more reliably. I considered submitting that patch, but decided that the new module parameter would be better for at least two reasons: (1) any driver that has no difficulty connecting with the current scheme would not be affected, and (2) it is a lot easier for users to edit /etc/modprobe.conf.local and add the line "options rc80211_simple initial_rate=10" than it would be to download the kernel sources, patch them for the equivalent change, and build the revised kernel.

I'm still waiting for one of the mac80211 developers to comment on whether starting at 1 Mbs would place an undue speed penalty on a device that is capable of operating at 54 Mbs.

Larry


-
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

[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Device Mapper]
  Powered by Linux