3
0
mirror of https://git.kernel.org/pub/scm/network/wireless/iwd.git synced 2024-12-22 13:02:44 +01:00
iwd/src
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
..
80-iwd.link build: Move 50-iwd.link up to 80-iwd.link for less confusion 2019-10-25 01:08:56 +02:00
adhoc.c adhoc: delay setting Started 2020-09-14 16:44:53 -05:00
agent.c agent: Don't remove object at IWD_AGENT_MANAGER_PATH 2020-07-16 10:44:40 -05:00
agent.h treewide: Move the Intel copyright forward to 2019 2019-10-25 00:43:08 +02:00
anqp.c anqp: refactor to use frame-xchg 2020-07-09 09:58:21 -05:00
anqp.h anqp: refactor to use frame-xchg 2020-07-09 09:58:21 -05:00
anqputil.c treewide: fix typos 2020-01-21 16:03:28 -06:00
anqputil.h anqp: move ANQP parsers into anqputil 2019-07-15 14:53:44 -05:00
ap.c ap: Fix handshake state gtk not being set 2020-11-16 13:35:51 -06:00
ap.h ap: add StartProfile DBus method 2020-11-02 13:39:25 -06:00
auth-proto.h auth-proto: introduce auth-proto concept 2019-05-03 13:53:50 -05:00
backtrace.c treewide: Move the Intel copyright forward to 2019 2019-10-25 00:43:08 +02:00
backtrace.h treewide: Move the Intel copyright forward to 2019 2019-10-25 00:43:08 +02:00
blacklist.c module: Move declarations into separate header file 2019-11-07 23:40:13 +01:00
blacklist.h blacklist: Convert to use IWD_MODULE 2019-05-22 09:58:04 -05:00
common.c common: Remove duplicate AKM 2020-08-13 13:43:31 -05:00
common.h treewide: Move the Intel copyright forward to 2019 2019-10-25 00:43:08 +02:00
crypto.c crypto: incorporate C implementation of ARC4 2020-08-03 16:28:24 -05:00
crypto.h crypto: Add support for PRF+ SHA1 2019-12-09 01:47:11 -06:00
dbus.c treewide: Move the Intel copyright forward to 2019 2019-10-25 00:43:08 +02:00
dbus.h p2p: Add the p2p.Display interface on WFD-capable peers 2020-07-16 10:47:03 -05:00
device.c treewide: Add missing netdev module dependencies 2020-08-20 11:49:01 -05:00
eap-aka.c eap: Simplify sending EAP method responses 2020-08-13 10:36:43 -05:00
eap-gtc.c eap: Simplify sending EAP method responses 2020-08-13 10:36:43 -05:00
eap-md5.c eap: Simplify sending EAP method responses 2020-08-13 10:36:43 -05:00
eap-mschapv2.c treewide: Use l_settings_{set,get}_bytes 2020-09-16 16:46:02 -05:00
eap-mschapv2.h cleanup: Remove extra empty lines 2020-03-17 15:35:22 -05:00
eap-peap.c peap: Fail auth. if invalid compound MAC is received 2020-02-06 15:18:04 -06:00
eap-private.h eap: Add authenticator method logic and API 2020-08-17 09:28:49 -05:00
eap-pwd.c eap: Simplify sending EAP method responses 2020-08-13 10:36:43 -05:00
eap-sim.c eap: Simplify sending EAP method responses 2020-08-13 10:36:43 -05:00
eap-tls-common.c eap: Simplify sending EAP method responses 2020-08-13 10:36:43 -05:00
eap-tls-common.h treewide: Move the Intel copyright forward to 2019 2019-10-25 00:43:08 +02:00
eap-tls.c treewide: Move the Intel copyright forward to 2019 2019-10-25 00:43:08 +02:00
eap-ttls.c treewide: Move the Intel copyright forward to 2019 2019-10-25 00:43:08 +02:00
eap-wsc.c treewide: Use l_settings_{set,get}_bytes 2020-09-16 16:46:02 -05:00
eap-wsc.h eap-wsc: Registrar mode message processing 2020-08-17 09:40:25 -05:00
eap.c eap: Re-send Identity Request on EAPoL-Start 2020-08-27 13:53:12 -05:00
eap.h eap: Add authenticator method logic and API 2020-08-17 09:28:49 -05:00
eapol.c eapol: IP Allocation KDE support authenticator side 2020-09-14 11:45:15 -05:00
eapol.h eapol: Drop unused eapol_sm_set_event_func 2019-10-30 14:34:20 -05:00
eapolutil.c treewide: Move the Intel copyright forward to 2019 2019-10-25 00:43:08 +02:00
eapolutil.h treewide: Move the Intel copyright forward to 2019 2019-10-25 00:43:08 +02:00
erp.c iwd: remove unnecessary semicolons 2020-04-08 21:02:15 -05:00
erp.h erp: Convert to using IWD_MODULE 2019-05-19 13:07:13 -05:00
fils.c fils: include RSNE in authenticate 2020-05-02 20:56:13 -05:00
fils.h fils: netdev: update to use auth_proto concepts 2019-05-03 14:37:11 -05:00
frame-xchg.c frame-xchg: fix invalid read 2020-11-02 11:39:03 -06:00
frame-xchg.h frame-xchg: Re-add frame_xchg_stop 2020-07-31 10:38:59 -05:00
ft.c treewide: Move the Intel copyright forward to 2019 2019-10-25 00:43:08 +02:00
ft.h treewide: Move the Intel copyright forward to 2019 2019-10-25 00:43:08 +02:00
genbuiltin make: plugin system for build 2017-11-28 13:20:33 -06:00
handshake.c handshake: Change signature of (i)gtk setters 2020-04-02 00:41:02 -05:00
handshake.h eapol: IP Allocation KDE support 2020-09-14 11:45:12 -05:00
hotspot.c treewide: Use l_settings_{set,get}_bytes 2020-09-16 16:46:02 -05:00
ie.c wiphy: Fix not attempting WPA3 connections for APs in transition mode 2020-08-13 14:27:14 -05:00
ie.h wiphy: Fix not attempting WPA3 connections for APs in transition mode 2020-08-13 14:27:14 -05:00
iwd-dbus.conf tools: Add configure option and D-Bus policy file for hwsim utility 2018-09-14 15:24:15 +02:00
iwd.ap.rst doc: document DHCP server options in AP profiles 2020-11-04 13:38:35 -06:00
iwd.config.rst doc: use real example for APRanges 2020-12-02 16:12:56 -06:00
iwd.debug.rst man iwd.debug: Document IWD_GENL_DEBUG 2020-07-13 14:14:41 -05:00
iwd.h main: Add iwd_get_rtnl 2020-04-08 12:27:57 -05:00
iwd.network.rst doc: Update iwd.network.5 with changes from wiki 2020-11-19 14:21:42 -06:00
iwd.rst doc: Add manual page for debugging information 2019-11-05 22:14:09 +01:00
iwd.service.in build: Add StateDirectoryMode=0700 option to systemd service 2019-09-09 06:55:22 +02:00
knownnetworks.c knownneetworks: React to mtime updates 2020-01-27 14:28:08 -06:00
knownnetworks.h knownneetworks: React to mtime updates 2020-01-27 14:28:08 -06:00
main.c plugins: remove dependency on ELL plugins 2020-09-16 14:30:14 -05:00
manager.c manager: move debug print in dump callback 2020-05-01 19:54:37 -05:00
missing.h build: Support missing rawmemchr 2020-02-03 11:54:28 -06:00
module.c module: Declare functions as foo(void) instead of just foo() 2019-11-24 19:44:06 +01:00
module.h module: add void to empty argument functions 2020-04-08 21:03:13 -05:00
mpdu.c treewide: Move the Intel copyright forward to 2019 2019-10-25 00:43:08 +02:00
mpdu.h treewide: Move the Intel copyright forward to 2019 2019-10-25 00:43:08 +02:00
mschaputil.c treewide: Move the Intel copyright forward to 2019 2019-10-25 00:43:08 +02:00
mschaputil.h treewide: Move the Intel copyright forward to 2019 2019-10-25 00:43:08 +02:00
net.connman.iwd.service net.connman.iwd.service: Change SystemdService name to iwd.service 2018-08-09 10:45:16 -05:00
netconfig.c netconfig: add ACD client for static configuration 2020-12-08 16:29:09 -06:00
netconfig.h netconfig: Implement netconfig_get_dhcp_server_ipv4 2020-07-13 14:52:02 -05:00
netdev.c netdev: remove handling of beacon loss event 2020-11-04 13:40:52 -06:00
netdev.h netdev: remove handling of beacon loss event 2020-11-04 13:40:52 -06:00
network.c network: clear info of removed known network before disconnect 2020-12-01 09:54:52 -06:00
network.h station: Give network a connection failed hint 2020-06-12 15:21:39 -05:00
nl80211cmd.c nl80211cmd: Add additional commands 2019-08-15 15:06:59 -05:00
nl80211cmd.h nl80211cmd: Introduce new utility 2019-07-15 14:06:26 -05:00
nl80211util.c nl80211util: Parse NL80211_ATTR_REG_ALPHA2 attrs 2020-04-24 11:38:44 -05:00
nl80211util.h treewide: Move the Intel copyright forward to 2019 2019-10-25 00:43:08 +02:00
ofono.c ofono: convert to module 2020-09-16 14:31:07 -05:00
owe.c treewide: Move the Intel copyright forward to 2019 2019-10-25 00:43:08 +02:00
owe.h treewide: Move the Intel copyright forward to 2019 2019-10-25 00:43:08 +02:00
p2p.c ap: add error out param to ap_start 2020-10-26 14:30:34 -05:00
p2p.h Add minimal p2p.c and p2p.h 2020-04-10 06:31:19 -05:00
p2putil.c p2putil: Add p2p_get_random_string 2020-09-14 11:39:25 -05:00
p2putil.h p2putil: Add p2p_get_random_string 2020-09-14 11:39:25 -05:00
pkcs8.conf build: Provide modules-load.d for loading pkcs8_key_parser module 2019-01-23 18:22:11 +01:00
resolve.c resolve: Handle empty dns/domain lists 2020-12-02 10:55:05 -06:00
resolve.h netconfig: Install search domains obtained from DHCPv6 2020-11-18 12:00:17 -06:00
rfkill.c module: Move declarations into separate header file 2019-11-07 23:40:13 +01:00
rfkill.h treewide: Move the Intel copyright forward to 2019 2019-10-25 00:43:08 +02:00
rrm.c rrm: Switch to new frame watch API 2020-01-16 11:37:57 -06:00
sae.c sae: Fix a side channel leak on the password 2020-08-03 16:12:50 -05:00
sae.h cleanup: Remove extra empty lines 2020-03-17 15:35:22 -05:00
scan.c scan: Fix crash when a canceled scan gets aborted 2020-10-30 14:06:31 -05:00
scan.h scan: Add optional source_mac scan parameter 2020-09-09 13:02:02 -05:00
simauth.c simauth: check driver for NULL before canceling request 2020-11-16 17:04:30 -06:00
simauth.h treewide: Move the Intel copyright forward to 2019 2019-10-25 00:43:08 +02:00
simutil.c eap: Simplify sending EAP method responses 2020-08-13 10:36:43 -05:00
simutil.h treewide: Move the Intel copyright forward to 2019 2019-10-25 00:43:08 +02:00
station.c station: Split DBus scans into 3 frequency subsets 2020-12-17 20:15:37 -06:00
station.h station: add ANQP state watch API 2020-06-12 14:58:56 -05:00
storage.c storage: Refactor dirs creation logic to cleanup on failure 2020-04-08 16:18:04 -05:00
storage.h storage: Add ability to preserve times 2020-01-22 11:15:19 -06:00
util.c util: add util_ip_prefix_tohl 2020-10-26 16:16:12 -05:00
util.h util: add util_ip_prefix_tohl 2020-10-26 16:16:12 -05:00
watchlist.c watchlist: Allow watch CBs to call watchlist_destroy 2020-03-18 13:49:22 -05:00
watchlist.h watchlist: Save the watchlist pointer in WATCHLIST_NOTIFY_* 2020-05-01 11:38:57 -05:00
wiphy.c wiphy: Fix not attempting WPA3 connections for APs in transition mode 2020-08-13 14:27:14 -05:00
wiphy.h wiphy: introduce new radio management APIs 2020-07-09 09:57:13 -05:00
wsc.c station/wsc: remove beacon loss handling 2020-11-04 13:40:25 -06:00
wsc.h wsc: Rework wsc_enrollee_destroy 2020-01-17 12:50:23 -06:00
wscutil.c wscutil: Fix subcategory string lookup 2020-09-29 13:11:07 -05:00
wscutil.h wscutil: Add wsc_build_beacon 2020-08-28 10:29:06 -05:00