linux-wireless.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Larry Finger <larry.finger@lwfinger.net>
To: James Ketrenos <jketreno@linux.intel.com>
Cc: Jiri Benc <jbenc@suse.cz>, linux-wireless@vger.kernel.org
Subject: Re: [PATCH] mac80211: Add module parameter for setting initial rate  in rc80211_simple
Date: Tue, 05 Jun 2007 07:40:32 -0500	[thread overview]
Message-ID: <466559C0.30900@lwfinger.net> (raw)
In-Reply-To: <46645478.20002@linux.intel.com>

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



  reply	other threads:[~2007-06-05 12:40 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-06-02 18:51 [PATCH] mac80211: Add module parameter for setting initial rate in rc80211_simple Larry Finger
2007-06-03 10:33 ` Olivier Cornu
2007-06-03 10:45   ` Michael Buesch
2007-06-03 10:50     ` stefano.brivio
2007-06-03 19:14     ` Larry Finger
2007-06-03 18:51   ` Larry Finger
2007-06-04 11:44 ` Johannes Berg
2007-06-04 17:36 ` James Ketrenos
2007-06-04 18:05   ` James Ketrenos
2007-06-05 12:40     ` Larry Finger [this message]
2007-06-07 20:19 ` Jiri Benc
2007-06-07 20:21   ` [PATCH] mac80211: allow changing of rate control algorithm Jiri Benc
2007-06-07 20:22     ` [PATCH] mac80211: rc80211_lowest, a dumb " Jiri Benc
2007-06-07 20:54       ` Jouni Malinen
2007-06-07 21:06         ` Jiri Benc
2007-06-08  0:50       ` Larry Finger
2007-06-08  8:59         ` Jiri Benc
2007-06-08  9:04           ` Johannes Berg
2007-06-08  9:06           ` Johannes Berg
2007-06-08 12:27             ` Larry Finger
2007-06-07 21:22   ` [PATCH] mac80211: Add module parameter for setting initial rate in rc80211_simple Larry Finger
2007-06-07 22:19     ` Jiri Benc

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=466559C0.30900@lwfinger.net \
    --to=larry.finger@lwfinger.net \
    --cc=jbenc@suse.cz \
    --cc=jketreno@linux.intel.com \
    --cc=linux-wireless@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).