From: Benoit PAPILLAULT <benoit.papillault@free.fr>
To: "Luis R. Rodriguez" <mcgrof@gmail.com>
Cc: linux-wireless@vger.kernel.org
Subject: Re: Issue connecting to an HT40 AP that sends a Country IE
Date: Sat, 02 Jan 2010 10:21:20 +0100 [thread overview]
Message-ID: <4B3F1010.3070906@free.fr> (raw)
In-Reply-To: <43e72e891001011524r190950c8pdfc89e765afb205d@mail.gmail.com>
Luis R. Rodriguez a écrit :
> On Fri, Jan 1, 2010 at 4:07 AM, Benoit PAPILLAULT
> <benoit.papillault@free.fr> wrote:
>
>> Hello,
>>
>> I'd like to report an issue I have when trying to connect a laptop
>> running ath9k to a 802.11n AP in HT40 mode. What happens is that the
>> laptop cannot associate if the AP is running in HT40 mode. Association
>> is OK if the AP is running in HT20 mode. Here is an excerpt from syslog :
>>
>> [ 577.166241] wlan0: associate with AP 00:15:6d:e8:88:84 (try 1)
>> [ 577.167448] wlan0: RX AssocResp from 00:15:6d:e8:88:84 (capab=0x411
>> status=10 aid=257)
>> [ 577.167451] wlan0: AP denied association (code=10)
>> [ 577.167460] wlan0: deauthenticating from 00:15:6d:e8:88:84 by local
>> choice (reason=3)
>>
>> What's wrong is that the Associate Request (built by
>> ieee80211_send_assoc) does not set the bit in HT Capabilities IE saying
>> : "The station supports both HT20 & HT40".
>>
>> Looking into the code, it appears that both (flags &
>> IEEE80211_CHAN_NO_HT40PLUS) and (flags & IEEE80211_CHAN_NO_HT40MINUS)
>> are true, thus disabling the IEEE80211_HT_CAP_SUP_WIDTH_20_40 which is
>> the culprit mentioned above.
>>
>> Digging further down, both flags are set in reg.c by :
>> if (freq_range->max_bandwidth_khz < MHZ_TO_KHZ(40))
>> bw_flags = IEEE80211_CHAN_NO_HT40;
>>
>> Indeed, at this stage, max_bandwidth_khz is 20 MHz only... Looking up in
>> my syslog, I found this :
>>
>> [ 506.036923] cfg80211: Received country IE:
>> [ 506.036927] cfg80211: Regulatory domain: FR
>> [ 506.036928] (start_freq - end_freq @ bandwidth),
>> (max_antenna_gain, max_eirp)
>> [ 506.036931] (5170000 KHz - 5190000 KHz @ 40000 KHz), (10000 mBi,
>> 10000 mBm)
>> [ 506.036933] (5190000 KHz - 5210000 KHz @ 40000 KHz), (10000 mBi,
>> 10000 mBm)
>> [ 506.036936] (5210000 KHz - 5230000 KHz @ 40000 KHz), (10000 mBi,
>> 10000 mBm)
>> [ 506.036938] (5230000 KHz - 5250000 KHz @ 40000 KHz), (10000 mBi,
>> 10000 mBm)
>> [ 506.036940] (5250000 KHz - 5270000 KHz @ 40000 KHz), (10000 mBi,
>> 10000 mBm)
>> [ 506.036943] (5270000 KHz - 5290000 KHz @ 40000 KHz), (10000 mBi,
>> 10000 mBm)
>> [ 506.036945] (5290000 KHz - 5310000 KHz @ 40000 KHz), (10000 mBi,
>> 10000 mBm)
>> [ 506.036948] (5310000 KHz - 5330000 KHz @ 40000 KHz), (10000 mBi,
>> 10000 mBm)
>> [ 506.036950] (5490000 KHz - 5510000 KHz @ 40000 KHz), (10000 mBi,
>> 10000 mBm)
>> [ 506.036952] (5510000 KHz - 5530000 KHz @ 40000 KHz), (10000 mBi,
>> 10000 mBm)
>> [ 506.036955] (5530000 KHz - 5550000 KHz @ 40000 KHz), (10000 mBi,
>> 10000 mBm)
>> [ 506.036957] (5550000 KHz - 5570000 KHz @ 40000 KHz), (10000 mBi,
>> 10000 mBm)
>> [ 506.036959] (5570000 KHz - 5590000 KHz @ 40000 KHz), (10000 mBi,
>> 10000 mBm)
>> [ 506.036962] (5590000 KHz - 5610000 KHz @ 40000 KHz), (10000 mBi,
>> 10000 mBm)
>> [ 506.036964] (5610000 KHz - 5630000 KHz @ 40000 KHz), (10000 mBi,
>> 10000 mBm)
>> [ 506.036966] (5630000 KHz - 5650000 KHz @ 40000 KHz), (10000 mBi,
>> 10000 mBm)
>> [ 506.036969] (5650000 KHz - 5670000 KHz @ 40000 KHz), (10000 mBi,
>> 10000 mBm)
>> [ 506.036971] (5670000 KHz - 5690000 KHz @ 40000 KHz), (10000 mBi,
>> 10000 mBm)
>> [ 506.036974] (5690000 KHz - 5710000 KHz @ 40000 KHz), (10000 mBi,
>> 10000 mBm)
>>
>> [ 506.036975] cfg80211: CRDA thinks this should applied:
>> [ 506.036976] cfg80211: Regulatory domain: FR
>> [ 506.036978] (start_freq - end_freq @ bandwidth),
>> (max_antenna_gain, max_eirp)
>> [ 506.036980] (2402000 KHz - 2482000 KHz @ 40000 KHz), (N/A, 2000 mBm)
>> [ 506.036982] (5170000 KHz - 5250000 KHz @ 40000 KHz), (N/A, 2000 mBm)
>> [ 506.036984] (5250000 KHz - 5330000 KHz @ 40000 KHz), (N/A, 2000 mBm)
>> [ 506.036987] (5490000 KHz - 5710000 KHz @ 40000 KHz), (N/A, 2700 mBm)
>>
>> [ 506.036988] cfg80211: We intersect both of these and get:
>> [ 506.037005] cfg80211: Regulatory domain: 98
>> [ 506.037006] (start_freq - end_freq @ bandwidth),
>> (max_antenna_gain, max_eirp)
>> [ 506.037008] (5170000 KHz - 5190000 KHz @ 20000 KHz), (N/A, 2000 mBm)
>> [ 506.037011] (5190000 KHz - 5210000 KHz @ 20000 KHz), (N/A, 2000 mBm)
>> [ 506.037013] (5210000 KHz - 5230000 KHz @ 20000 KHz), (N/A, 2000 mBm)
>> [ 506.037015] (5230000 KHz - 5250000 KHz @ 20000 KHz), (N/A, 2000 mBm)
>> [ 506.037017] (5250000 KHz - 5270000 KHz @ 20000 KHz), (N/A, 2000 mBm)
>> [ 506.037019] (5270000 KHz - 5290000 KHz @ 20000 KHz), (N/A, 2000 mBm)
>> [ 506.037021] (5290000 KHz - 5310000 KHz @ 20000 KHz), (N/A, 2000 mBm)
>> [ 506.037024] (5310000 KHz - 5330000 KHz @ 20000 KHz), (N/A, 2000 mBm)
>> [ 506.037026] (5490000 KHz - 5510000 KHz @ 20000 KHz), (N/A, 2700 mBm)
>> [ 506.037028] (5510000 KHz - 5530000 KHz @ 20000 KHz), (N/A, 2700 mBm)
>> [ 506.037030] (5530000 KHz - 5550000 KHz @ 20000 KHz), (N/A, 2700 mBm)
>> [ 506.037032] (5550000 KHz - 5570000 KHz @ 20000 KHz), (N/A, 2700 mBm)
>> [ 506.037035] (5570000 KHz - 5590000 KHz @ 20000 KHz), (N/A, 2700 mBm)
>> [ 506.037037] (5590000 KHz - 5610000 KHz @ 20000 KHz), (N/A, 2700 mBm)
>> [ 506.037039] (5610000 KHz - 5630000 KHz @ 20000 KHz), (N/A, 2700 mBm)
>> [ 506.037041] (5630000 KHz - 5650000 KHz @ 20000 KHz), (N/A, 2700 mBm)
>> [ 506.037043] (5650000 KHz - 5670000 KHz @ 20000 KHz), (N/A, 2700 mBm)
>> [ 506.037045] (5670000 KHz - 5690000 KHz @ 20000 KHz), (N/A, 2700 mBm)
>> [ 506.037047] (5690000 KHz - 5710000 KHz @ 20000 KHz), (N/A, 2700 mBm)
>>
>> So, at this stage, max_bandwidth_khz is indeed 20 MHz!
>>
>> What's the real meaning of max_bandwidth_khz? If this is just the
>> difference between the upper/lower frequency of each channels, then it's
>> useless. If it is a capability features saying 40 MHz channel wide are
>> allowed, then it should be left to 40 MHz even if upper/lower
>> frequencies are only 20 MHz apart (since the ability to use 40 MHz
>> depends on the list of all frequencies, not a single frequency).
>>
>
> Your AP is sending a country IE channel triplet for each channel it
> allows. Its the first time I see an AP do this and its good that you
> report this. What AP do you have?
>
> reg.c treats each triplet as a regulatory rule though and since you
> have a rule for each channel it will restrict this to the triplet
> range which is just one channel and as such 20 MHz only makes sense. A
> fix would be to expand on the ht40 checks to check connecting
> frequency rules.
>
> Luis
>
Hello,
My AP is a NanoStation M5 configured with Country "FR" and 40 MHz.
Could you detail the fix you are proposing?
On my side, I would propose to leave max_bandwidth_khz to 40 MHz and use
it as a capability features. This way we would consider valid the case
where upper/lower frequencies are just 20 MHz apart but
max_bandwidth_khz is 40 MHz.
Regards,
Benoit
next prev parent reply other threads:[~2010-01-02 9:21 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-01-01 9:07 Issue connecting to an HT40 AP that sends a Country IE Benoit PAPILLAULT
2010-01-01 23:24 ` Luis R. Rodriguez
2010-01-02 9:21 ` Benoit PAPILLAULT [this message]
2010-01-02 18:04 ` Luis R. Rodriguez
2010-01-07 1:39 ` Luis R. Rodriguez
2010-01-07 7:22 ` Benoit PAPILLAULT
2010-01-07 15:43 ` Luis R. Rodriguez
2010-01-07 21:08 ` Benoit PAPILLAULT
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=4B3F1010.3070906@free.fr \
--to=benoit.papillault@free.fr \
--cc=linux-wireless@vger.kernel.org \
--cc=mcgrof@gmail.com \
/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).