IBSS: Add fixed_freq network parameter
Add fixed_freq=<0/1> network block parameter and pass it to the driver when starting or joining an IBSS. If this flag is set, IBSS should not try to look for other IBSS networks to merge with on different channels. Signed-off-by: Janusz Dziedzic <janusz.dziedzic@tieto.com>
This commit is contained in:
parent
6f5e1b0bf6
commit
4d9e6fba2a
6 changed files with 22 additions and 0 deletions
|
@ -766,6 +766,14 @@ struct wpa_driver_associate_params {
|
|||
*/
|
||||
int fixed_bssid;
|
||||
|
||||
/**
|
||||
* fixed_freq - Fix control channel in IBSS mode
|
||||
* 0 = don't fix control channel (default)
|
||||
* 1 = fix control channel; this prevents IBSS merging with another
|
||||
* channel
|
||||
*/
|
||||
int fixed_freq;
|
||||
|
||||
/**
|
||||
* disable_ht - Disable HT (IEEE 802.11n) for this connection
|
||||
*/
|
||||
|
|
|
@ -4378,6 +4378,12 @@ retry:
|
|||
goto fail;
|
||||
}
|
||||
|
||||
if (params->fixed_freq) {
|
||||
wpa_printf(MSG_DEBUG, " * fixed_freq");
|
||||
if (nla_put_flag(msg, NL80211_ATTR_FREQ_FIXED))
|
||||
goto fail;
|
||||
}
|
||||
|
||||
if (params->key_mgmt_suite == WPA_KEY_MGMT_IEEE8021X ||
|
||||
params->key_mgmt_suite == WPA_KEY_MGMT_PSK ||
|
||||
params->key_mgmt_suite == WPA_KEY_MGMT_IEEE8021X_SHA256 ||
|
||||
|
|
|
@ -1896,6 +1896,7 @@ static const struct parse_data ssid_fields[] = {
|
|||
{ INT_RANGE(peerkey, 0, 1) },
|
||||
{ INT_RANGE(mixed_cell, 0, 1) },
|
||||
{ INT_RANGE(frequency, 0, 65000) },
|
||||
{ INT_RANGE(fixed_freq, 0, 1) },
|
||||
#ifdef CONFIG_MESH
|
||||
{ FUNC(mesh_basic_rates) },
|
||||
{ INT(dot11MeshMaxRetries) },
|
||||
|
|
|
@ -736,6 +736,7 @@ static void wpa_config_write_network(FILE *f, struct wpa_ssid *ssid)
|
|||
#endif /* IEEE8021X_EAPOL */
|
||||
INT(mode);
|
||||
INT(frequency);
|
||||
INT(fixed_freq);
|
||||
write_int(f, "proactive_key_caching", ssid->proactive_key_caching, -1);
|
||||
INT(disabled);
|
||||
INT(peerkey);
|
||||
|
|
|
@ -419,6 +419,11 @@ struct wpa_ssid {
|
|||
*/
|
||||
int frequency;
|
||||
|
||||
/**
|
||||
* fixed_freq - Use fixed frequency for IBSS
|
||||
*/
|
||||
int fixed_freq;
|
||||
|
||||
/**
|
||||
* mesh_basic_rates - BSS Basic rate set for mesh network
|
||||
*
|
||||
|
|
|
@ -2122,6 +2122,7 @@ static void wpas_start_assoc_cb(struct wpa_radio_work *work, int deinit)
|
|||
ibss_mesh_setup_freq(wpa_s, ssid, ¶ms.freq);
|
||||
|
||||
if (ssid->mode == WPAS_MODE_IBSS) {
|
||||
params.fixed_freq = ssid->fixed_freq;
|
||||
if (ssid->beacon_int)
|
||||
params.beacon_int = ssid->beacon_int;
|
||||
else
|
||||
|
|
Loading…
Reference in a new issue