Search Linux Wireless

Re: [RFC 1/3] mac80211: WIP - add operating BSSID to device configuration struct

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

 



ext Johannes Berg wrote:
On Fri, 2009-10-16 at 15:27 +0300, Luciano Coelho wrote:

@@ -2405,7 +2411,15 @@ int ieee80211_mgd_auth(struct ieee80211_sub_if_data *sdata,
 	 *	to sleep and then change channel etc.
 	 */
 	sdata->local->oper_channel = req->bss->channel;
-	ieee80211_hw_config(sdata->local, 0);
+
+	if (memcmp(sdata->local->hw.conf.oper_bssid,
+		   req->bss->bssid, ETH_ALEN)) {
+		config_changed |= IEEE80211_CONF_CHANGE_OPER_BSSID;
+		memcpy(sdata->local->hw.conf.oper_bssid,
+		       req->bss->bssid, ETH_ALEN);
+	}
+
+	ieee80211_hw_config(sdata->local, config_changed);

Is this really necessary before you can auth?

As we discussed on IRC, it is really needed. We must always provide a BSSID when changing channels in preparation for an association. For this reason (and others) the wl1271 with the current firmware does not support promiscuous mode or frame injections.

I'll ask TI next time we meet them, if there is any possibility to remove the need for the BSSID at this point, so things will be greatly simplified. There is a very slight chance that this could be possible for wl1271, but for wl1251 I think there's no hope to change it anymore. So in any case, we will need to support this on the stack if we want to have wl1251 to work correctly. :(

Also, I'm not 100% sure, but IIRC Kalle has mentioned that the at76c50x-usb card also needs this feature.


If it is, you're going to have to do a lot more work and go all the way
up to userspace so wpa_supplicant with -Dnl80211 knows about this too,
and doesn't try to authenticate twice or do FT-OTA.

Thanks a lot for pointing this out. I think I understand it better after our discussion on IRC. I'll have to study more the authentication mechanism and figure out how to deal with multiple authentications, as you pointed out.

These are definitely details that I'll need to sort out. But in principle, do you agree with the idea of passing the "operating" BSSID down to the driver in the hw_config op? And saving it as a hardware configuration parameter in local->hw.conf?

Once again, I really appreciate your help and the time you spend discussing and explaining these things in detail to me! :)

--
Cheers,
Luca.
--
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

[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Device Mapper]
  Powered by Linux