]> git.ipfire.org Git - thirdparty/hostap.git/commitdiff
RRM: Filter scan results by parent TSF only if driver supports it
authorAvraham Stern <avraham.stern@intel.com>
Thu, 8 Jun 2017 08:17:56 +0000 (11:17 +0300)
committerJouni Malinen <j@w1.fi>
Sat, 8 Jul 2017 13:06:38 +0000 (16:06 +0300)
Scan results with parent TSF older than the scan start TSF are not added
to the beacon report since they are considered as scan results from
previous scans. However, for drivers that report the scan start TSF but
not the parent TSF of each scan result, the parent TSF will be zero so
valid scan results will be dropped.

Fix this by filtering scan results by the parent TSF only if the
driver supports reporting the parent TSF for each scan result.

Signed-off-by: Avraham Stern <avraham.stern@intel.com>
wpa_supplicant/rrm.c

index 18d4907d88e0de81b887a0b4cef97e8d188a7722..6b297d06f181741e000e6f926ff649a9e90ee741 100644 (file)
@@ -1376,6 +1376,10 @@ int wpas_beacon_rep_scan_process(struct wpa_supplicant *wpa_s,
                        continue;
                }
 
+               /*
+                * Don't report results that were not received during the
+                * current measurement.
+                */
                if (!(wpa_s->drv_rrm_flags &
                      WPA_DRIVER_FLAGS_SUPPORT_BEACON_REPORT)) {
                        struct os_reltime update_time, diff;
@@ -1402,14 +1406,10 @@ int wpas_beacon_rep_scan_process(struct wpa_supplicant *wpa_s,
                                           (unsigned int) diff.usec);
                                continue;
                        }
-               }
-
-               /*
-                * Don't report results that were not received during the
-                * current measurement.
-                */
-               if (info->scan_start_tsf > scan_res->res[i]->parent_tsf)
+               } else if (info->scan_start_tsf >
+                          scan_res->res[i]->parent_tsf) {
                        continue;
+               }
 
                if (wpas_add_beacon_rep(wpa_s, &buf, bss, info->scan_start_tsf,
                                        scan_res->res[i]->parent_tsf) < 0)