Re: Limit on number of APs? Some way to force-rescan?



Quoting Dan Williams <dcbw redhat com>:

It pulls them down and enlarges the buffer a few times before failing
out if the buffer required is too large.  But I don't think you're
hitting this for a number of reasons:

1) if ((errno == E2BIG) && (buflen < 100000)) <---- that means NM will
stop trying to get results of the required buffer is greater than 100K.
That should _never_ happen unless you have LOTS of APs, like probably >
100.  An AP record is 99% of the time be less than 200 bytes.

2) You should be seeing the message "unknown error, or the card returned
too much scan info" in the logs if NM truncates scan results

Here's what I see:

[root cliodev ~]# grep -i scan /var/log/messages | tail
Jul 12 15:53:55 cliodev NetworkManager: <information>   wpa_supplicant(11966):
Received 2988 bytes of scan results (21 BSSes)
Jul 12 15:53:55 cliodev NetworkManager: <information>   wpa_supplicant(11966):
Scan results: 21
Jul 12 16:27:09 cliodev NetworkManager: <information>   SUP: sending command
'AP_SCAN 1'
Jul 12 16:27:19 cliodev NetworkManager: <information>   wpa_supplicant(12144):
Setting scan request: 0 sec 100000 usec
Jul 12 16:27:19 cliodev NetworkManager: <information> wpa_supplicant(12144): 41 50 5f 53 43 41 4e 20 31 AP_SCAN 1
Jul 12 16:27:19 cliodev NetworkManager: <information>   wpa_supplicant(12144):
Setting scan request: 0 sec 0 usec
Jul 12 16:27:19 cliodev NetworkManager: <information>   wpa_supplicant(12144):
State: DISCONNECTED -> SCANNING
Jul 12 16:27:19 cliodev NetworkManager: <information>   wpa_supplicant(12144):
Starting AP scan (broadcast SSID)
Jul 12 16:27:19 cliodev NetworkManager: <information>   wpa_supplicant(12144):
Received 3479 bytes of scan results (24 BSSes)
Jul 12 16:27:19 cliodev NetworkManager: <information>   wpa_supplicant(12144):
Scan results: 24

3) ipw2200 can do just fine with > 30 access points, which tells me that
the buffer being not large enough for all the results is just not the
problem

Yeah.  It certainly looks like the scan data is under 3KB..   On the other
hand all the logs are about wpa_supplicant scan results.  NM itself isn't
reporting anything.

You can try to do something like this to print out the results (for
HEAD):

I'm not running head.  I'm running 0.6.3.  Will this patch apply to
0.6.3, too?  (I can try to add it to the SRPM and test it).

--- nm-device-802-11-wireless.c.foo	2006-07-12 15:58:35.000000000 -0400
+++ nm-device-802-11-wireless.c	2006-07-12 16:00:19.000000000 -0400
@@ -3443,6 +3443,9 @@
				/* New AP with some defaults */
				ap = nm_ap_new ();
nm_ap_set_address (ap, (const struct ether_addr *)(iwe->u.ap_addr.sa_data));
+#define MAC2STR(a) (a)[0], (a)[1], (a)[2], (a)[3], (a)[4], (a)[5]
+#define MACSTR "%02x:%02x:%02x:%02x:%02x:%02x"
+nm_debug("New AP found: " MACSTR "\n", MAC2STR(iwe->u.ap_addr.sa_data));
				break;
			case SIOCGIWMODE:
				switch (iwe->u.mode)

Dan

Is the scan logged anywhere by NM?

A new AP showed up in my list..  And it's #1 in my scan list.   So I'm
still thinking that NM isn't seeing the full scan results.

-derek

--
      Derek Atkins, SB '93 MIT EE, SM '95 MIT Media Laboratory
      Member, MIT Student Information Processing Board  (SIPB)
      URL: http://web.mit.edu/warlord/    PP-ASEL-IA     N1NWH
      warlord MIT EDU                        PGP key available




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