Add a configration parameter for sched_scan interval
authorSheng Fang <fsheng@codeaurora.org>
Tue, 7 May 2013 09:41:14 +0000 (12:41 +0300)
committerJouni Malinen <j@w1.fi>
Tue, 7 May 2013 09:41:14 +0000 (12:41 +0300)
The new sched_scan_interval parameter can be used to set the default
sched_scan interval, e.g., for power saving purposes.

Signed-hostap: Jouni Malinen <jouni@qca.qualcomm.com>

wpa_supplicant/config.c
wpa_supplicant/config.h
wpa_supplicant/config_file.c
wpa_supplicant/scan.c

index aceaa02..b25e0f6 100644 (file)
@@ -3105,6 +3105,7 @@ static const struct global_parse_data global_fields[] = {
        { FUNC(ap_vendor_elements), 0 },
        { INT_RANGE(ignore_old_scan_res, 0, 1), 0 },
        { FUNC(freq_list), 0 },
+       { INT(sched_scan_interval), 0 },
 };
 
 #undef FUNC
index cdaaa89..a1a5239 100644 (file)
@@ -862,6 +862,11 @@ struct wpa_config {
         * allowing it to update the internal BSS table.
         */
        int ignore_old_scan_res;
+
+       /**
+        * sched_scan_interval -  schedule scan interval
+        */
+       unsigned int sched_scan_interval;
 };
 
 
index ed6b3f2..8ff4285 100644 (file)
@@ -1025,6 +1025,10 @@ static void wpa_config_write_global(FILE *f, struct wpa_config *config)
                }
                fprintf(f, "\n");
        }
+
+       if (config->sched_scan_interval)
+               fprintf(f, "sched_scan_interval=%u\n",
+                       config->sched_scan_interval);
 }
 
 #endif /* CONFIG_NO_CONFIG_WRITE */
index 8d4c7f1..2399692 100644 (file)
@@ -1019,7 +1019,9 @@ int wpa_supplicant_req_sched_scan(struct wpa_supplicant *wpa_s)
 
        if (!ssid || !wpa_s->prev_sched_ssid) {
                wpa_dbg(wpa_s, MSG_DEBUG, "Beginning of SSID list");
-
+               if (wpa_s->conf->sched_scan_interval)
+                       wpa_s->sched_scan_interval =
+                               wpa_s->conf->sched_scan_interval;
                if (wpa_s->sched_scan_interval == 0)
                        wpa_s->sched_scan_interval = 10;
                wpa_s->sched_scan_timeout = max_sched_scan_ssids * 2;