can't associate

Marcelo Tosatti marcelo at kvack.org
Sun Feb 18 10:59:04 EST 2007


Hi Holger,

On Sun, Feb 18, 2007 at 10:10:23AM +0100, Holger Schurig wrote:
> > Can you please try to associate with the following patch:
> 
> Sorry, it did not work with this patch.
> 
> 
> Can't you reproduce my problem easily when you set your AP to a
> high channel?  Because the unpatched usb8xxx scans at channel 1
> and 2 (and bandwith problems), my USB dongle detects the AP on
> channels 1..4 (on channels 3 and 4 with a smaller signal, but
> anyway). However, when I put my AP at channel 8 it's far enought
> away to notget detected by the scan. That should be easy to
> reproduce.
> 
> 
> If your patch attached, debug_libertas=0 (because it outputs toooo much
> debug, the debug comes more into the way than beeing helpful) but some
> debug statements I saw this:
> 
> 10:44:43 kernel: usb8xxx: eth1: Marvell Wlan 802.11 adapter
> 10:44:43 kernel: usbcore: registered new interface driver usb8xxx
> 10:44:46 root: ifconfig eth1 up
> 10:44:49 root: iwconfig eth1 essid MRVTEST
> 10:44:50 kernel: //HS libertas_send_specific_SSID_scan: calling wlan_scan_networks with full_scan
> 10:44:50 kernel: //HS wlan_scan_create_channel_list: nextchan 0, chanidx 0
> 10:44:50 kernel: //HS wlan_scan_create_channel_list: nextchan 1, chanidx 1
> 10:44:50 kernel: //HS wlan_scan_create_channel_list: nextchan 2, chanidx 2
> 10:44:50 kernel: //HS wlan_scan_create_channel_list: nextchan 3, chanidx 3
> 10:44:50 kernel: //HS wlan_scan_create_channel_list: nextchan 4, chanidx 4
> 10:44:50 kernel: //HS wlan_scan_create_channel_list: nextchan 5, chanidx 5
> 10:44:50 kernel: //HS wlan_scan_create_channel_list: nextchan 6, chanidx 6
> 10:44:50 kernel: //HS wlan_scan_create_channel_list: nextchan 7, chanidx 7
> 10:44:50 kernel: //HS wlan_scan_create_channel_list: nextchan 8, chanidx 8
> 10:44:50 kernel: //HS wlan_scan_create_channel_list: nextchan 9, chanidx 9
> 10:44:50 kernel: //HS wlan_scan_create_channel_list: nextchan 10, chanidx 10
> 10:44:50 kernel: //HS wlan_scan_channel_list: full_scan 1, last_scanned_channel 0
> 10:44:50 kernel: //HS wlan_scan_channel_list: scan chan 1
> 10:44:50 kernel: //HS wlan_scan_channel_list: scan chan 2
> 
> So, you patch inside libertas_send_specific_SSID_scan() set's full_scan
> to 1. But this part of the patch
> 
> > -		if (scanned >= 2) {
> > +		if (scanned >= 2 && full_scan) {
> >  	    	priv->adapter->last_scanned_channel = ptmpchan->channumber;
> >  	    	return 0;
> >  		}
> > +        scanned = 0;
> >
> >  	}
> 
> then keeps the code path at this place the same as before. I think you need
> to test for    && !full_scan    here. 
> 
> At least it worked with this modification:
> 
> ...
> 10:57:57 kernel: //HS wlan_scan_channel_list: full_scan 1, last_scanned_channel 0
> 10:57:57 kernel: //HS wlan_scan_channel_list: scan chan 1
> 10:57:57 kernel: //HS wlan_scan_channel_list: scan chan 2
> 10:57:57 kernel: //HS wlan_scan_channel_list: scan chan 3
> 10:57:57 kernel: //HS wlan_scan_channel_list: scan chan 4
> 10:57:57 kernel: //HS wlan_scan_channel_list: scan chan 5
> 10:57:57 kernel: //HS wlan_scan_channel_list: scan chan 6
> 10:57:57 kernel: //HS wlan_scan_channel_list: scan chan 7
> 10:57:57 kernel: //HS wlan_scan_channel_list: scan chan 8
> 10:57:57 kernel: //HS wlan_scan_channel_list: scan chan 9
> 10:57:57 kernel: //HS wlan_scan_channel_list: scan chan 10
> 10:57:57 kernel: //HS wlan_scan_channel_list: scan chan 11
> 
> And then:
> 
> # iwconfig eth1
> eth1      MRVL-USB8388  ESSID:"MRVTEST"  Nickname:""
>           Mode:Managed  Frequency:2.447 GHz  Access Point: 00:15:0C:A8:BF:24
>           Bit Rate:1 Mb/s   Tx-Power=18 dBm
>           Retry limit:8   RTS thr=2347 B   Fragment thr=2346 B
>           Encryption key:off
>           Power Management:off
>           Link Quality=100/100  Signal level=-2 dBm  Noise level=-2 dBm
>           Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
>           Tx excessive retries:0  Invalid misc:0   Missed beacon:0
> 
> 
> Voila!

Right, the test should be for "!full_scan" instead of "full_scan". My bad.

> I'm not sure about implications with debugfs/extscan or debugfs/setuserscan
> here. When I do things like
> 
> echo "probes=2 dur=2000" >setuserscan
> echo "probes=2 dur=2000 types=3" >setuserscan
> echo "probes=2 dur=2000 types=3" >setuserscan
> echo "essid=XX" >setuserscan
> echo "essid=MRVTEST" >setuserscan
> echo XX >extscan
> echo MRVTEST >extscan
> iwconfig eth1 essid any
> 
> All of this scanning methods call wlan_scan_channel_list() with
> full_scan 1 and last_scanned_channel 0.

The test should be reserved as you mention. I'll commit the fixed version.

Thanks!




More information about the libertas-dev mailing list