[RFC 1/2] Support fixing the BSSID in IBSS mode.
Nicolas Cavallari
Nicolas.Cavallari
Wed Jan 25 09:52:34 PST 2012
When the "bssid=" option is set for an IBSS network and ap_scan = 2,
ask the driver to fix this BSSID, if possible.
Previously, any "bssid=" option were ignored in IBSS mode when ap_scan=2.
Signed-hostap: Nicolas Cavallari <cavallar at lri.fr>
---
Whould like to know if it is the right approach, driver-wise and
configuration-wise.
I'm not aware of any program specifying a BSSID when creating an IBSS
network, except NetworkManager that does it only when the user
requests it.
src/drivers/driver.h | 7 +++++++
wpa_supplicant/wpa_supplicant.c | 7 +++++++
2 files changed, 14 insertions(+), 0 deletions(-)
diff --git a/src/drivers/driver.h b/src/drivers/driver.h
index d72c83b..d0cddd4 100644
--- a/src/drivers/driver.h
+++ b/src/drivers/driver.h
@@ -516,6 +516,13 @@ struct wpa_driver_associate_params {
* STA mode: bits 0..3 UAPSD enabled for VO,VI,BK,BE
*/
int uapsd;
+
+ /**
+ * fixed_bssid - Whether to force this BSSID in IBSS Mode.
+ * 1 = Fix this BSSID and prevent merges.
+ * 0 = Do not fix BSSID.
+ */
+ int fixed_bssid;
};
enum hide_ssid {
diff --git a/wpa_supplicant/wpa_supplicant.c b/wpa_supplicant/wpa_supplicant.c
index 68b80b9..47366e1 100644
--- a/wpa_supplicant/wpa_supplicant.c
+++ b/wpa_supplicant/wpa_supplicant.c
@@ -1364,6 +1364,13 @@ void wpa_supplicant_associate(struct wpa_supplicant *wpa_s,
params.ssid = ssid->ssid;
params.ssid_len = ssid->ssid_len;
}
+
+ if (ssid->mode == WPAS_MODE_IBSS && ssid->bssid_set
+ && wpa_s->conf->ap_scan == 2) {
+ params.bssid = ssid->bssid;
+ params.fixed_bssid = 1;
+ }
+
if (ssid->mode == WPAS_MODE_IBSS && ssid->frequency > 0 &&
params.freq == 0)
params.freq = ssid->frequency; /* Initial channel for IBSS */
--
1.7.8.3
More information about the Hostap
mailing list