3
0
mirror of https://git.kernel.org/pub/scm/network/wireless/iwd.git synced 2025-03-04 07:00:49 +01:00
Andrew Zaborowski e3bece76f9 station: Split DBus scans into 3 frequency subsets
A scan normally takes about 2 seconds on my dual-band wifi adapter when
connected.  The drivers will normally probe on each supported channel in
some unspecified order and will have new partial results after each step
but the kernel sends NL80211_CMD_NEW_SCAN_RESULTS only when the full
scan request finishes, and for segmented scans we will wait for all
segments to finish before calling back from scan_active() or
scan_passive().

To improve user experience define our own channel order favouring the
2.4 channels 1, 6 and 11 and probe those as an individual scan request
so we can update most our DBus org.connman.iwd.Network objects more
quickly, before continuing with 5GHz band channels, updating DBus
objects again and finally the other 2.4GHz band channels.

The overall DBus-triggered scan on my wifi adapter takes about the same
time but my measurements were not very strict, and were not very
consistent with and without this change.  With the change most Network
objects are updated after about 200ms though, meaning that I get most
of the network updates in the nm-applet UI 200ms from opening the
network list.  The 5GHz band channels take another 1 to 1.5s to scan and
remaining 2.4GHz band channels another ~300ms.

Hopefully this is similar when using other drivers although I can easily
imagine a driver that parallelizes 2.4GHz and 5GHz channel probing using
two radios, or uses 2, 4 or another number of dual-band radios to probe
2, 4, ... channels simultanously.  We'd then lose some of the
performance benefit.  The faster scan results may be worth the longer
overall scan time anyway.
I'm also assuming that the wiphy's supported frequency list is exactly
what was scanned when we passed no frequency list to
NL80211_CMD_TRIGGER_SCAN and we won't get errors for passing some
frequency that shouldn't have been scanned.
2020-12-17 20:15:37 -06:00
..
2020-09-14 16:44:53 -05:00
2020-07-09 09:58:21 -05:00
2020-07-09 09:58:21 -05:00
2020-01-21 16:03:28 -06:00
2020-11-16 13:35:51 -06:00
2020-11-02 13:39:25 -06:00
2020-08-13 13:43:31 -05:00
2019-12-09 01:47:11 -06:00
2020-04-08 21:02:15 -05:00
2019-05-19 13:07:13 -05:00
2020-05-02 20:56:13 -05:00
2020-11-02 11:39:03 -06:00
2017-11-28 13:20:33 -06:00
2020-09-14 11:45:12 -05:00
2020-04-08 12:27:57 -05:00
2020-02-03 11:54:28 -06:00
2019-07-15 14:06:26 -05:00
2020-09-16 14:31:07 -05:00
2020-10-26 14:30:34 -05:00
2020-04-10 06:31:19 -05:00
2020-09-14 11:39:25 -05:00
2020-09-14 11:39:25 -05:00
2020-01-16 11:37:57 -06:00
2020-03-17 15:35:22 -05:00
2020-06-12 14:58:56 -05:00
2020-10-26 16:16:12 -05:00
2020-10-26 16:16:12 -05:00
2020-11-04 13:40:25 -06:00
2020-01-17 12:50:23 -06:00
2020-08-28 10:29:06 -05:00