mesh: Use the shared function with IBSS to determine channel parameters
authorJouni Malinen <j@w1.fi>
Sat, 10 Jan 2015 11:03:45 +0000 (13:03 +0200)
committerJouni Malinen <j@w1.fi>
Sat, 10 Jan 2015 15:35:53 +0000 (17:35 +0200)
Automatically enable HT20, HT40+, HT40-, or VHT, based on driver
capabilities. This obsoletes the mesh_ht_mode network block parameter
that was previously used to configure HT parameters.

Signed-off-by: Jouni Malinen <j@w1.fi>
wpa_supplicant/mesh.c
wpa_supplicant/wpa_supplicant.c
wpa_supplicant/wpa_supplicant_i.h

index 6d3c19a..5fdf4e0 100644 (file)
@@ -318,23 +318,8 @@ int wpa_supplicant_join_mesh(struct wpa_supplicant *wpa_s,
        os_memset(&params, 0, sizeof(params));
        params.meshid = ssid->ssid;
        params.meshid_len = ssid->ssid_len;
-       params.freq = ssid->frequency;
-       wpa_s->mesh_ht_enabled = ssid->mesh_ht_mode > CHAN_NO_HT;
-       switch (ssid->mesh_ht_mode) {
-       case CHAN_HT20:
-               params.freq.ht_enabled = 1;
-               break;
-       case CHAN_HT40PLUS:
-               params.freq.ht_enabled = 1;
-               params.freq.sec_channel_offset = 1;
-               break;
-       case CHAN_HT40MINUS:
-               params.freq.ht_enabled = 1;
-               params.freq.sec_channel_offset = -1;
-               break;
-       default:
-               break;
-       }
+       ibss_mesh_setup_freq(wpa_s, ssid, &params.freq);
+       wpa_s->mesh_ht_enabled = !!params.freq.ht_enabled;
        if (ssid->beacon_int > 0)
                params.beacon_int = ssid->beacon_int;
        else if (wpa_s->conf->beacon_int > 0)
index 8a77909..87f9f3f 100644 (file)
@@ -1650,9 +1650,9 @@ void wpa_supplicant_associate(struct wpa_supplicant *wpa_s,
 }
 
 
-static void ibss_mesh_setup_freq(struct wpa_supplicant *wpa_s,
-                                const struct wpa_ssid *ssid,
-                                struct hostapd_freq_params *freq)
+void ibss_mesh_setup_freq(struct wpa_supplicant *wpa_s,
+                         const struct wpa_ssid *ssid,
+                         struct hostapd_freq_params *freq)
 {
        enum hostapd_hw_mode hw_mode;
        struct hostapd_hw_modes *mode = NULL;
index 68bdf51..e396a5d 100644 (file)
@@ -1075,6 +1075,10 @@ int wpa_supplicant_ctrl_iface_ctrl_rsp_handle(struct wpa_supplicant *wpa_s,
                                              const char *field,
                                              const char *value);
 
+void ibss_mesh_setup_freq(struct wpa_supplicant *wpa_s,
+                         const struct wpa_ssid *ssid,
+                         struct hostapd_freq_params *freq);
+
 /* events.c */
 void wpa_supplicant_mark_disassoc(struct wpa_supplicant *wpa_s);
 int wpa_supplicant_connect(struct wpa_supplicant *wpa_s,