[Prism54-users] Default channel is unsupported?

Bjørn Mork bjorn@mork.no
Tue, 11 Nov 2003 14:58:33 +0100


First let me say thay I'm really impressed by the speed the driver is
currently improving.  Thanks for all the hard work.  Let's hope the
licensing issue is resolved soon.

I have been using a SMC2802W as an accesspoint with the old (islpci)
version of the driver for a while.  This works fine as long as I run
'setoid eth1 17000019 long 5'.  I thought that was needed because the
client is 802.11b only, but experimenting with the newer driver from
CVS makes me suspect that the real reason is a bad choice of default
channel.

Note that I don't know anything about how the card/driver do scanning
in different modes, so my observations may be based on totally wrong
assumptions.

This is what I have noticed: After loading prism54 with all settings
(both compile time and run time) set to default, I get a client
scanning all the 2.4 GHz channels for an accesspoint, as expected:

canardo:/home/bjorn# /usr/local/src/wireless_tools.26/iwconfig eth1
eth1      PRISM Duette  Mode:Managed  Frequency:2.427GHz  
          Access Point: 00:00:00:00:00:00  Bit Rate:0kb/s   Sensitivity=20/200  
          Retry min limit:8   RTS thr:2347 B   Fragment thr:2346 B   
          Encryption key:off
          Link Quality:0  Signal level:0  Noise level:235
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:0   Missed beacon:0


But I notice that the list of supported frequencies also include the 
5.15 - 5.35 GHz band:

canardo:/home/bjorn# /usr/local/src/wireless_tools.26/iwlist eth1 freq
eth1      26 channels in total; available frequencies :
          Channel 00 : 5.17 GHz
          Channel 01 : 5.18 GHz
          Channel 02 : 5.19 GHz
          Channel 03 : 5.2 GHz
          Channel 04 : 5.21 GHz
          Channel 05 : 5.22 GHz
          Channel 06 : 5.23 GHz
          Channel 07 : 5.24 GHz
          Channel 08 : 5.26 GHz
          Channel 09 : 5.28 GHz
          Channel 10 : 5.3 GHz
          Channel 11 : 5.32 GHz
          Channel 12 : 2.412 GHz
          Channel 13 : 2.417 GHz
          Channel 14 : 2.422 GHz
          Channel 15 : 2.427 GHz
          Channel 16 : 2.432 GHz
          Channel 17 : 2.437 GHz
          Channel 18 : 2.442 GHz
          Channel 19 : 2.447 GHz
          Channel 20 : 2.452 GHz
          Channel 21 : 2.457 GHz
          Channel 22 : 2.462 GHz
          Channel 23 : 2.467 GHz
          Channel 24 : 2.472 GHz
          Channel 25 : 2.484 GHz
          Current Frequency:2.432GHz (channel 16)

A comment in isl_ioctl.c explains why:

        /* Request the device for the supported frequencies
         * not really revelant since some devices will report the 5 GHz band
         * frequencies even if they don't support them.
         */

I also notice that the channels are enumerated with the 5 GHz band
listed first, and that this makes channel numbers rather meaningless.
More specifically, these channel numbers are in no way related to the
802.11a/b channel numbering.

But no real problem so far.

The problems start when I change to master mode, which makes the
driver change to channel 03 (why? the default is supposed to be 6?)
according to the above enumeration, i.e. 5.2 GHz (channel 40 according
to 802.11a).  That doesn't make much sense with a 802.11g card...

canardo:/home/bjorn# /usr/local/src/wireless_tools.26/iwconfig eth1     
eth1      PRISM Duette  ESSID:"default"  
          Mode:Master  Frequency:5.2GHz  Access Point: 00:04:E2:64:53:A0  
          Bit Rate:54Mb/s   Sensitivity=20/200  
          Retry min limit:8   RTS thr:2347 B   Fragment thr:2346 B   
          Encryption key:off
          Link Quality:192  Signal level:0  Noise level:64
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:0   Missed beacon:0

Naturally, I can't get any client to connect at this point.  Well,
802.11b clients at least - I don't really have any 802.11a clients to
test with.

But if I try setting the channel, then suddenly the driver (or
iwconfig?  I'm a bit confused here) uses 802.11b channel numbers 
(ch 5 => 2432 MHz):

canardo:/home/bjorn# /usr/local/src/wireless_tools.26/iwconfig eth1 channel 5
canardo:/home/bjorn# /usr/local/src/wireless_tools.26/iwconfig eth1 
eth1      PRISM Duette  ESSID:"default"  
          Mode:Master  Frequency:2.432GHz  Access Point: 00:04:E2:64:53:A0  
          Bit Rate:54Mb/s   Sensitivity=20/200  
          Retry min limit:8   RTS thr:2347 B   Fragment thr:2346 B   
          Encryption key:off
          Link Quality:31  Signal level:0  Noise level:225
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:0   Missed beacon:0


But still not when listing the available channels.  Note the channel
number listed after "Current Frequency":

canardo:/home/bjorn# /usr/local/src/wireless_tools.26/iwlist eth1 freq
eth1      26 channels in total; available frequencies :
          Channel 00 : 5.17 GHz
          Channel 01 : 5.18 GHz
          Channel 02 : 5.19 GHz
          Channel 03 : 5.2 GHz
          Channel 04 : 5.21 GHz
          Channel 05 : 5.22 GHz
          Channel 06 : 5.23 GHz
          Channel 07 : 5.24 GHz
          Channel 08 : 5.26 GHz
          Channel 09 : 5.28 GHz
          Channel 10 : 5.3 GHz
          Channel 11 : 5.32 GHz
          Channel 12 : 2.412 GHz
          Channel 13 : 2.417 GHz
          Channel 14 : 2.422 GHz
          Channel 15 : 2.427 GHz
          Channel 16 : 2.432 GHz
          Channel 17 : 2.437 GHz
          Channel 18 : 2.442 GHz
          Channel 19 : 2.447 GHz
          Channel 20 : 2.452 GHz
          Channel 21 : 2.457 GHz
          Channel 22 : 2.462 GHz
          Channel 23 : 2.467 GHz
          Channel 24 : 2.472 GHz
          Channel 25 : 2.484 GHz
          Current Frequency:2.432GHz (channel 16)

However, at this point things seem to be working. iwconfig interpretes
channels 1 - 14 as they are specificed in 802.11b and refuses to set
channel 0 or 15 - 25.  But the card can still be set to a nonworking
mode by specifiying 802.11a channels:

canardo:/home/bjorn# /usr/local/src/wireless_tools.26/iwconfig eth1 channel 36
canardo:/home/bjorn# /usr/local/src/wireless_tools.26/iwconfig eth1 
eth1      PRISM Duette  ESSID:"default"  
          Mode:Master  Frequency:5.18GHz  Access Point: 00:04:E2:64:53:A0  
          Bit Rate:54Mb/s   Sensitivity=20/200  
          Retry min limit:8   RTS thr:2347 B   Fragment thr:2346 B   
          Encryption key:off
          Link Quality:190  Signal level:0  Noise level:66
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:0   Missed beacon:0


So my question is: Can iwlist list the standard 802.11a/b channel
numbers as expected by iwconfig? And more important: Is there some
way to ensure that a working channel is used by default?  Why do I end
ut with channel 40 as default on a 802.11g card?


Bjørn