Re: The 15 seconds scanning interval too long for ipw2200.



On Monday 11 September 2006 13:56, you wrote:
> What do successive runs if iwlist scan do for _root_?  
> That's what NM is doing.  

I assume that nm is *not* running and that associate=0.
It still depends on the frequency of the scan requests.

If they are 20 seconds apart, they report empty lists.

# while true ; do sleep 20; date; iwlist eth1 scan; done
Mon Sep 11 15:19:34 EDT 2006
eth1:	No scan results
Mon Sep 11 15:19:55 EDT 2006
eth1:	No scan results
Mon Sep 11 15:20:15 EDT 2006
eth1:	No scan results

If they are 10 seconds apart, the first one report an empty list,
and the following ones report a complete list.

# while true ; do sleep 10; date; iwlist eth1 scan; done
Mon Sep 11 15:20:47 EDT 2006
eth1:	No scan results
Mon Sep 11 15:20:57 EDT 2006
eth1:	Scan completed : 
	Cell 01 ......
	Cell 02 ......
	....
	Cell 08 ......
Mon Sep 11 15:21:08 EDT 2006
eth1:	Scan completed : 
	[same thing]

> A possible workaround to this is to backport the netlink code 
> from HEAD that triggers scan events and waits for an SIOCGIWSCAN to come
> back from the driver, and then grab the scan results.  If after _that_
> you don't get any results, the driver is clearly at fault.

I do not know the semantics of SIOCGIWSCAN.

In my version of NetworkManager (0.6.3) the function 
nm_device_802_11_wireless_scan() performs a first SIOCSIWSCAN (around line 1919)
waits 250000 microseconds, and calls get_scan_results() to 
perform a second SIOCSIWSCAN to get the results. 
The ipw2200 can take a lot longer to scan.

Same thing in the 0.6.4 release.

The CVS HEAD in gnome-cvs seems very different.
http://cvs.gnome.org/viewcvs/NetworkManager/src/nm-device-802-11-wireless.c?rev=1.86&view=markup
This one uses a function schedule_scan_results_timeout() to schedule the 
collection of the results 10 seconds after the scan request.
If my analysis is correct, this should work.
You did that on 2006-04-24, but it never made it to the 0_6_0 branch...

Note that is the scan interval is 20 seconds (NM_WIRELESS_SCAN_INTERVAL_ACTIVE)
this is the same as requesting one scan every 10 seconds, since the
collection of the scan results 10 seconds after the scan request
will itself initiate a new scan...

Thanks for all the good work.

- L.











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