76 lines
2.9 KiB
Diff
76 lines
2.9 KiB
Diff
diff --git a/wpa_supplicant/config.c b/wpa_supplicant/config.c
|
|
index 6a21bbc..10c454f 100644
|
|
--- a/wpa_supplicant/config.c
|
|
+++ b/wpa_supplicant/config.c
|
|
@@ -1157,7 +1157,8 @@ static const struct parse_data ssid_fiel
|
|
#ifdef CONFIG_IEEE80211W
|
|
{ INT_RANGE(ieee80211w, 0, 2) },
|
|
#endif /* CONFIG_IEEE80211W */
|
|
- { INT_RANGE(peerkey, 0, 1) }
|
|
+ { INT_RANGE(peerkey, 0, 1) },
|
|
+ { INT_RANGE(frequency, 0, 10000) }
|
|
};
|
|
|
|
#undef OFFSETdiff --git a/wpa_supplicant/config_ssid.h b/wpa_supplicant/config_ssid.h
|
|
index d4c3654..393f750 100644
|
|
--- a/wpa_supplicant/config_ssid.h
|
|
+++ b/wpa_supplicant/config_ssid.h
|
|
@@ -851,6 +851,18 @@ struct wpa_ssid {
|
|
IEEE80211W_REQUIRED = 2
|
|
} ieee80211w;
|
|
#endif /* CONFIG_IEEE80211W */
|
|
+
|
|
+ /**
|
|
+ * frequency - Channel frequency in megahertz (MHz) for IBSS
|
|
+ *
|
|
+ * This value is used to configure the initial channel for IBSS (adhoc)
|
|
+ * networks, e.g., 2412 = IEEE 802.11b/g channel 1. It is ignored in
|
|
+ * the infrastructure mode. In addition, this value is only used by the
|
|
+ * station that creates the IBSS. If an IBSS network with the
|
|
+ * configured SSID is already present, the frequency of the network
|
|
+ * will be used instead of this configured value.
|
|
+ */
|
|
+ int frequency;
|
|
};
|
|
|
|
int wpa_config_allowed_eap_method(struct wpa_ssid *ssid, int vendor,
|
|
diff --git a/wpa_supplicant/wpa_supplicant.c b/wpa_supplicant/wpa_supplicant.c
|
|
index d5342fe..35ddbcd 100644
|
|
--- a/wpa_supplicant/wpa_supplicant.c
|
|
+++ b/wpa_supplicant/wpa_supplicant.c
|
|
@@ -1468,6 +1468,8 @@ void wpa_supplicant_associate(struct wpa_supplicant *wpa_s,
|
|
params.ssid = ssid->ssid;
|
|
params.ssid_len = ssid->ssid_len;
|
|
}
|
|
+ if (ssid->mode == 1 && ssid->frequency > 0 && params.freq == 0)
|
|
+ params.freq = ssid->frequency; /* Initial channel for IBSS */
|
|
params.wpa_ie = wpa_ie;
|
|
params.wpa_ie_len = wpa_ie_len;
|
|
params.pairwise_suite = cipher_pairwise;
|
|
diff --git a/wpa_supplicant/wpa_supplicant.conf b/wpa_supplicant/wpa_supplicant.conf
|
|
index dce9d87..ec8b0ee 100644
|
|
--- a/wpa_supplicant/wpa_supplicant.conf
|
|
+++ b/wpa_supplicant/wpa_supplicant.conf
|
|
@@ -192,6 +192,13 @@ fast_reauth=1
|
|
# proto=WPA, key_mgmt=WPA-NONE, pairwise=NONE, group=TKIP (or CCMP, but not
|
|
# both), and psk must also be set.
|
|
#
|
|
+# frequency: Channel frequency in megahertz (MHz) for IBSS, e.g.,
|
|
+# 2412 = IEEE 802.11b/g channel 1. This value is used to configure the initial
|
|
+# channel for IBSS (adhoc) networks. It is ignored in the infrastructure mode.
|
|
+# In addition, this value is only used by the station that creates the IBSS. If
|
|
+# an IBSS network with the configured SSID is already present, the frequency of
|
|
+# the network will be used instead of this configured value.
|
|
+#
|
|
# proto: list of accepted protocols
|
|
# WPA = WPA/IEEE 802.11i/D3.0
|
|
# RSN = WPA2/IEEE 802.11i (also WPA2 can be used as an alias for RSN)
|
|
@@ -657,6 +664,7 @@ network={
|
|
network={
|
|
ssid="test adhoc"
|
|
mode=1
|
|
+ frequency=2412
|
|
proto=WPA
|
|
key_mgmt=WPA-NONE
|
|
pairwise=NONE
|