On Thu, May 22, 2008 at 9:34 PM, Dan Williams <dcbw@xxxxxxxxxx> wrote: > On Thu, 2008-05-22 at 19:56 +0200, Johannes Berg wrote: >> > memset(&iwe, 0, sizeof(iwe)); >> > iwe.cmd = SIOCGIWFREQ; >> > - iwe.u.freq.m = bss->freq; >> > - iwe.u.freq.e = 6; >> > + iwe.u.freq.m = ieee80211_frequency_to_channel(bss->freq); >> > + iwe.u.freq.e = 0; >> > current_ev = iwe_stream_add_event(current_ev, end_buf, &iwe, >> > IW_EV_FREQ_LEN); >> > >> > memset(&iwe, 0, sizeof(iwe)); >> > iwe.cmd = SIOCGIWFREQ; >> > - iwe.u.freq.m = ieee80211_frequency_to_channel(bss->freq); >> > - iwe.u.freq.e = 0; >> > + iwe.u.freq.m = bss->freq; >> > + iwe.u.freq.e = 6; >> > current_ev = iwe_stream_add_event(current_ev, end_buf, &iwe, >> > IW_EV_FREQ_LEN); >> >> That doesn't make any sense, can you explain? > > Explanation: > > wpa_supplicant cannot handle A-band channel #s. Thus, with the previous > code, the FREQ+frequency was sent first, and the FREQ+channel was sent > second. Sending the FREQ+channel second made the supplicant overwrite > the value it already parsed from the FREQ+frequency for that BSSID. But > since the supplicant can't handle A-band channel #s, you end up with 0. > > Reversing the order of these two makes it work, but it's a total hack. > That may be what's needed right now though until everyone fixes their > supplicant. There's overlap on A-band channels 7 - 12 (5035MHz -> > 5060MHz) with B/G band channel #s. Obviously WEXT falls over here > because the band isn't passed. > > But what's the best fix to the supplicant? It could just parse A-band > channels and where the numbers overlap, assume B/G band. Or, it could > be patched to prefer FREQ+frequency over FREQ+channel if it received > both. That's probably the best solution. > Thanks for clearing this fog. Actually we've also tried to removing FREQ+channel part and it has worked. So wpa_supplicant won't get into this dilemma. Although I have never seen anyone used 7-12 channels in 5.2 band. My patch just restored the code that was present before it has broken. >From what you wrote it looks like the problem is rather in wext then in wpa_supplicant. I will sent and official patch if some more people confirms it solves their problem. Patch that broke it is below so I guess the bug is in everything form 2.6.25 and up. ' commit 8318d78a44d49ac1edf2bdec7299de3617c4232e Author: Johannes Berg <johannes@xxxxxxxxxxxxxxxx> Date: Thu Jan 24 19:38:38 2008 +0100 cfg80211 API for channels/bitrates, mac80211 and driver conversion ' Tomas -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html