On Monday 09 October 2006 20:26, Max Laier wrote: > On Monday 09 October 2006 19:53, Andrew N. Below wrote: > > Hi. > > > > [..] > > > > > You can try using ap_scan=2 or whatever it is in the > > > wpa_supplicant.conf file. This causes wpa_supplicant to use > > > directed broadcasts msgs to each ap listed in the file. > > > > In my case setting ap_scan to 2 doesn't help. > > > > BTW, I got successfull connection some time ago when I > > start to use /etc/rc.d/netif start iwi0 instead of manual > > running of wpa_supplicant: > > > > defanbook# ifconfig iwi0 > > iwi0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 > > inet 213.189.198.75 netmask 0xfffffff0 broadcast > > 213.189.198.79 ether 00:12:f0:3d:cd:58 > > media: IEEE 802.11 Wireless Ethernet autoselect mode 11b > > (DS/11Mbps) status: associated > > ssid ZENON-RADIO channel 11 bssid 00:07:0e:b8:d8:ee > > authmode WPA privacy ON deftxkey UNDEF TKIP 2:128-bit TKIP > > 3:128-bit txpowmax 100 bmiss 10 protmode CTS roaming MANUAL bintval > > 100 > > > > I wrote bssid value to /etc/wpa_supplicant.conf and run > > /etc/rc.d/netif. > > > > Then I drop connection (netif stop iwi0) and tried to start it again. > > I got "associated" state in 5-6 minutes. > > > > In rc.conf I have: > > > > ifconfig_iwi0="ssid MY-SSID channel 11 WPA > > > > How can I get "-dd" output from wpa_supplicant started with netif? > > It could be interesting. > > No idea, but a bit more stress testing did reveal a similar problem > here. After I associated with the AP w/ hidden SSID I changed the > channel via webinterface. The disconnect resulted in the exact problem > you were having. Only stopping and restarting wpa_supplicant fixed the > issue and I got associated on the new channel. Not sure what happens > there yet, but something seems to get stuck in an undefined state.
Could you try the attached - untested - patch? It seems - from looking at the linux driver - that we have to remind the firmware of the ESSID before doing a directed scan. That explains why it would sometimes work (whenever we are coming straight from iwi_config) and sometimes not. Let me know if that improves things for you. Thanks. -- /"\ Best regards, | [EMAIL PROTECTED] \ / Max Laier | ICQ #67774661 X http://pf4freebsd.love2party.net/ | [EMAIL PROTECTED] / \ ASCII Ribbon Campaign | Against HTML Mail and News
Index: if_iwi.c =================================================================== RCS file: /usr/store/mlaier/fcvs/src/sys/dev/iwi/if_iwi.c,v retrieving revision 1.39 diff -u -r1.39 if_iwi.c --- if_iwi.c 26 Jul 2006 03:09:32 -0000 1.39 +++ if_iwi.c 10 Oct 2006 02:55:52 -0000 @@ -2699,7 +2699,7 @@ struct ieee80211com *ic = &sc->sc_ic; const struct ieee80211_channel *c; struct iwi_scan_ext scan; - int i, ix, start, scan_type; + int i, ix, start, scan_type, error; memset(&scan, 0, sizeof scan); @@ -2710,8 +2710,22 @@ scan.full_scan_index = htole32(ic->ic_scan.nt_scangen); - scan_type = (ic->ic_des_esslen != 0) ? IWI_SCAN_TYPE_BDIRECTED : - IWI_SCAN_TYPE_BROADCAST; + if (ic->ic_des_esslen != 0) { + scan_type = IWI_SCAN_TYPE_BDIRECTED; +#ifdef IWI_DEBUG + if (iwi_debug > 0) { + printf("Setting desired ESSID to "); + ieee80211_print_essid(ic->ic_des_essid, + ic->ic_des_esslen); + printf("\n"); + } +#endif + error = iwi_cmd(sc, IWI_CMD_SET_ESSID, ic->ic_des_essid, + ic->ic_des_esslen); + if (error != 0) + return error; + } else + scan_type = IWI_SCAN_TYPE_BROADCAST; ix = 0; if (ic->ic_modecaps & IEEE80211_MODE_5GHZ) {
pgpqkiqboHHXg.pgp
Description: PGP signature