Andrew Zaborowski
2e4848673a
network: Check for duplicates in network_seen
...
It looks like with multiple netdev seeing the same networks we'd create
multiple network_info structures for each network. Since the
"networks" list (of network_info structs) is global that's probbaly not
the intention here.
2016-05-30 21:45:52 -05:00
Andrew Zaborowski
2901cb1169
main: Restore agent_exit call before main loop exit
2016-05-25 09:57:58 -05:00
Andrew Zaborowski
176a5bcf76
storage: Encode SSIDs in file names if necessary
...
SSIDs with characters other than A-Z0-9_- and space are encoded with
l_util_hexstring and prefixed with a = sign to differentiate them.
2016-05-24 11:14:33 -05:00
Rahul Rahul
fc7ca17558
wiphy: added hw address property to device
2016-05-23 14:54:27 -05:00
Andrew Zaborowski
7950e2d5d3
wiphy: Emit PropertyChanged signals
...
for Device and Network
2016-05-23 11:55:06 -05:00
Andrew Zaborowski
ab1319a9d5
wiphy: Drop Device.GetNetworks and related signals
...
Drop the Device interface methods and properties made redundant by
the ObjectManager.
2016-05-23 11:48:41 -05:00
Andrew Zaborowski
15bab067fc
dbus: Remove Manager interface, add AgentManager
...
Move the Agent-related methods to a new interface, AgentManager, and
drop the remaining methods and signals made redundant by the
ObjectManager.
2016-05-23 11:46:59 -05:00
Andrew Zaborowski
3e2562a5a8
dbus: Enable the ObjectManager interface
2016-05-23 11:43:13 -05:00
Denis Kenzior
74689303df
network: Make network object opaque
2016-05-16 16:14:26 -05:00
Denis Kenzior
0e106d8534
wiphy: Use network_bss_* api
2016-05-16 16:14:15 -05:00
Denis Kenzior
44d9746e5f
network: Add network_bss_list_clear
2016-05-16 16:13:52 -05:00
Denis Kenzior
b4cebf918a
network: Add network_bss_list_isempty
2016-05-16 16:13:36 -05:00
Denis Kenzior
f177f75f92
network: Add network_bss_add
2016-05-16 16:06:41 -05:00
Denis Kenzior
cefba4d735
wiphy: Use network_connect_failed
2016-05-16 16:03:17 -05:00
Denis Kenzior
ad722cf004
network: Add network_connect_failed
2016-05-16 16:03:14 -05:00
Denis Kenzior
dcadf4d2f8
wiphy: Use network_autoconnect
2016-05-16 16:00:21 -05:00
Denis Kenzior
8e8b2caa9a
network: Add network_autoconnect
2016-05-16 16:00:10 -05:00
Denis Kenzior
c619a71652
wiphy: Use network accessor methods
2016-05-16 15:44:27 -05:00
Denis Kenzior
b79453952c
network: Add network_get_settings
2016-05-16 14:37:45 -05:00
Denis Kenzior
93c8a4f090
network: Add network_get_psk
2016-05-16 14:22:24 -05:00
Denis Kenzior
9bfa0aa768
merge: device_connect_network
2016-05-16 13:48:10 -05:00
Denis Kenzior
d4feeebdc1
network: Move network related code into network.c
...
away from wiphy.c
2016-05-16 12:37:48 -05:00
Denis Kenzior
5e4c675175
network: Use device_get_wiphy
2016-05-16 12:32:44 -05:00
Denis Kenzior
66610f1248
device: Add device_get_wiphy()
2016-05-16 12:26:00 -05:00
Denis Kenzior
68a79b23fb
device: Add device_is_busy()
2016-05-16 12:24:41 -05:00
Denis Kenzior
a9e9be469c
wiphy: Expose wiphy_select_cipher
2016-05-16 12:21:26 -05:00
Denis Kenzior
bcb2ef3e40
network: Rework connect logic
2016-05-16 12:05:28 -05:00
Denis Kenzior
2fe80a8f86
device: Add device_connect_network
2016-05-16 12:04:45 -05:00
Denis Kenzior
80aba66e98
network: Make network_emit_* static
2016-05-15 21:42:14 -05:00
Denis Kenzior
a789703f6f
wiphy: Use network_create, register & remove
2016-05-15 21:41:37 -05:00
Denis Kenzior
18957e504e
network: Add network_remove
2016-05-15 21:37:12 -05:00
Denis Kenzior
d0ae833edb
network: Add network_register
2016-05-15 21:30:52 -05:00
Denis Kenzior
d1948c0233
network: Add network_new
2016-05-15 21:29:47 -05:00
Denis Kenzior
54e7cced8e
network: Move PSK sync to network.c
2016-05-15 21:04:02 -05:00
Denis Kenzior
24366efb32
wiphy: Use network_settings_load & _close
2016-05-15 21:01:46 -05:00
Denis Kenzior
2e46201a1e
network: Add network_settings_load and _close
2016-05-15 21:01:38 -05:00
Denis Kenzior
49df40fdff
network: Move network_emit_removed to network.c
2016-05-12 09:52:52 -05:00
Denis Kenzior
5dc3a892db
network: Move network_emit_added to network.c
2016-05-12 09:51:02 -05:00
Denis Kenzior
3ca8dfb5ad
wiphy: move & rename iwd_device_get_path
...
Move declaration to device.h and rename to device_get_path
2016-05-12 09:49:07 -05:00
Denis Kenzior
ae1dc10c0c
wiphy: Move __iwd_network_append_properties
...
to network.c
2016-05-11 22:32:25 -05:00
Denis Kenzior
23fe106cc5
device: Add device_get_connected_network()
2016-05-11 22:27:31 -05:00
Denis Kenzior
08d72cd213
netdev: Remove unused typedefs
2016-05-11 22:24:40 -05:00
Denis Kenzior
0c7504b5fb
wiphy: Use network_get_security()
2016-05-11 22:12:25 -05:00
Denis Kenzior
b166285f44
network: Add network_get_security()
2016-05-11 22:12:25 -05:00
Denis Kenzior
f3ad1492c9
wiphy: Use network_get_path()
2016-05-11 22:12:25 -05:00
Denis Kenzior
beea6897d3
network: Add network_get_path()
2016-05-11 22:12:23 -05:00
Denis Kenzior
2ccbf65519
wiphy: Use network_get_netdev
2016-05-11 22:04:09 -05:00
Denis Kenzior
54574dc153
network: Add network_get_netdev
2016-05-11 22:02:49 -05:00
Denis Kenzior
0847e31542
wiphy: Use network_get_ssid
2016-05-11 22:01:44 -05:00
Denis Kenzior
9e4200f2f3
network: Add network_get_ssid
2016-05-11 22:00:58 -05:00
Denis Kenzior
414bc3198d
wiphy: Move network object definition
2016-05-11 21:59:32 -05:00
Denis Kenzior
17a8460835
scan: Move scan_ssid_security to iwd.h
...
Security type is used all over the place, so move it out to a more
common place.
2016-05-11 15:54:14 -05:00
Denis Kenzior
aa7f88a78c
agent: Fix bug in UnregisterAgent
2016-05-06 12:39:35 -05:00
Denis Kenzior
c2c4039e79
wiphy: Rename netdev_state to device_state
2016-05-05 12:25:45 -05:00
Denis Kenzior
f3fc0ea1f9
device: Refactor netdev watches
...
Turn netdev watches into device watches. The intent is to refactor out
netdev specific details into its own class and move device specific
logic into device.c away from wiphy.c
2016-05-05 12:14:59 -05:00
Denis Kenzior
9a0d620800
wsc: Refactor includes
2016-05-05 12:07:46 -05:00
Denis Kenzior
0e3495488f
wiphy: Move netdev_state enum
2016-05-05 11:40:54 -05:00
Denis Kenzior
08decb340e
netdev: Move rta_add_u8
...
Move closer to where it is used
2016-05-05 11:32:11 -05:00
Denis Kenzior
97be0e87c3
scan: Fix crash
...
Sometimes the periodic scan is started and stopped before the timeout
was created. If periodic_scan_stop was called before, the timeout
object was not reset to NULL, which can lead to a crash.
2016-04-13 16:03:33 -05:00
Denis Kenzior
3cbbe2cc42
main: Add backtracing support
...
Ported from oFono @ commit df5d691c39b0ff41d3d98a01db078f7157eb0250.
2016-04-13 14:08:10 -05:00
Denis Kenzior
45b7323e0a
scan: Add support for scan abortions
2016-04-12 13:49:50 -05:00
Andrew Zaborowski
692bfa23fe
wiphy: Sanity check before netdev_disassociated
...
The lost beacon event can be received when iwd thinks netdev is
diconnected if it was connected before iwd started, and then
netdev_disassociated will segfault.
2016-04-11 14:39:06 -05:00
Andrew Zaborowski
fb1adcae2a
dbus: Use recently added l_dbus_name_acquire
...
Use the backend-independent l_dbus_name_acquire.
2016-04-04 14:35:52 -05:00
Andrew Zaborowski
a64030069e
dbus: Drop unused linux/kdbus.h src/kdbus.c
...
Drop the functions that duplicated ell functionality and the now
unneeded kdbus.h copy.
2016-04-04 14:27:26 -05:00
Andrew Zaborowski
79839dbfd6
dbus: Use native ell kdbus calls
...
It seems until now dbus.c would always connect to dbus-1 (unless
DBUS_SESSION_BUS_ADDRESS pointed at kdbus) and passing -K only made
iwd create a kdbus bus and not use it. Now use ell to actually use
kdbus instead of dbus-1 with -K. Don't use the src/kdbus.c functions
that duplicate ell functionality. As a side effect the connection
description and the bloom sizes are now the ell defaults.
2016-04-04 14:25:59 -05:00
Rahul Rahul
971d93a9e6
wiphy: Add ConnectedNetwork property to Device
...
This property is optional. If the device is connected, it holds the
object path of the connected network.
2016-03-09 16:46:07 -06:00
Rahul Rahul
07f49bc02d
dbus: Add API for adding object path value to a dict
2016-03-09 13:24:19 -06:00
Rahul Rahul
492f25c4f6
wiphy: Add Connected property to Network interface
...
Added a property that will allow one to figure out whether this Network
is currently connected.
2016-03-04 10:20:41 -06:00
Mat Martineau
96e7be28bd
wiphy: Removed unused function
2016-02-18 18:21:22 -06:00
Denis Kenzior
e2de4423db
dbus: Update to the new ell D-Bus APIs
2016-02-11 16:19:55 -06:00
Denis Kenzior
ad7bbbb920
wiphy: Record network last-connected time
2016-02-11 16:19:44 -06:00
Denis Kenzior
30d1673ba4
eapol: Add support for SHA-256 based AKMs
2016-02-10 19:18:56 -06:00
Denis Kenzior
c35409d73c
eapol: Update to the new API
2016-02-10 16:55:15 -06:00
Denis Kenzior
e084839b4f
crypto: Prepare for SHA256 based PTK derivation
2016-02-10 16:54:55 -06:00
Denis Kenzior
39444ab532
crypto: Add SHA256 based KDF
2016-02-10 16:30:22 -06:00
Denis Kenzior
3320d31ead
sha1: Remove sha1.[ch]
2016-02-10 14:36:14 -06:00
Denis Kenzior
ac4a901518
crypto: move pbkdf2_sha1 to crypto.c
2016-02-10 14:32:27 -06:00
Denis Kenzior
6199960b52
crypto: Move + rework prf_sha1 into crypto.c
2016-02-10 14:16:32 -06:00
Denis Kenzior
064f1e0df9
crypto: Move hmac_sha1 to crypto.c
2016-02-10 14:12:46 -06:00
Denis Kenzior
962e2e8b2c
wiphy: Use SHA256 AKM if available
2016-02-10 13:20:46 -06:00
Denis Kenzior
76c62b0843
scan: Keep track of SHA256 support over PSK/8021X
2016-02-10 12:56:11 -06:00
Denis Kenzior
976bb7ceb1
network: Update network_connected implementation
2016-02-09 17:08:43 -06:00
Denis Kenzior
b9402af687
scan: Add scan_ssid_security_to_str
2016-02-09 17:08:03 -06:00
Denis Kenzior
342ad9c61c
eapol: Add clarifying comment
2015-11-03 16:26:34 -06:00
Denis Kenzior
05151d762d
eap-md5: Convert to dynamic method registration
2015-11-02 21:51:07 -06:00
Denis Kenzior
0816d04873
eap-ttls: Convert to dynamic method registration
2015-11-02 21:51:07 -06:00
Denis Kenzior
d8d6e134f1
eap-tls: Convert to dynamic method registration
2015-11-02 21:51:07 -06:00
Denis Kenzior
cdfc854056
eap: Add dynamic EAP method registration
2015-11-02 21:51:07 -06:00
Andrew Zaborowski
02eeb82c53
wiphy: Allow connecting to 8021X networks
2015-11-02 21:51:07 -06:00
Andrew Zaborowski
14020b2aa6
eapol: Handle EAPoL-EAP packets
2015-11-02 21:45:43 -06:00
Andrew Zaborowski
2bccb7e7dc
eapol: Remove user_data from __eapol_rx_packet args
...
Instead of passing the user_data parameter in every __eapol_rx_packet
call to be used by EAPOL in all tx_packet calls, add
eapol_sm_set_tx_user_data function that sets the value of user_data for
all subsequent tx_packet calls. This way tx_packet can be called from
places that are not necessarily inside an __eapol_rx_packet call.
2015-11-02 21:40:21 -06:00
Andrew Zaborowski
ef9b6f41ce
eapol: Separate EAPOL header from struct eapol_key
...
This is needed so we can better handle sending and receiving EAPoL
packets other than EAPoL-Key.
2015-11-02 21:40:21 -06:00
Andrew Zaborowski
830161399e
eap: Implement the EAP-TTLS method
...
Only EAP as the inner authentication option is supported. According to
wikipedia this is the most popular EAP-TTLS use case, with MD5 as the
inner EAP's method.
2015-11-02 21:40:21 -06:00
Andrew Zaborowski
c5e368a264
eap: Implement the EAP-MD5-Challenge method
2015-11-02 21:40:21 -06:00
Andrew Zaborowski
f55db6a1c4
eap: Implement EAP-TLS
...
Add the EAP-TLS authentication method. Currently, all the credentials
data is read from the provisioning file even though things like the
private key passphrase should possibly be obtained from the dbus agent.
2015-11-02 21:40:21 -06:00
Denis Kenzior
88bdd46ec3
eap: Add eap_unregister_method
2015-11-02 21:40:19 -06:00
Denis Kenzior
095eec48ab
eap: Make eap_register_method public
2015-11-02 09:54:12 -06:00
Andrew Zaborowski
3f17fa1159
eap: Add initial EAP API
...
Adds eap.c/eap.h with the initial EAP API definitions. No actual EAP
methods are added in this patch.
2015-11-02 09:40:03 -06:00
Andrew Zaborowski
27aa254358
scan: Always call the trigger callback
...
Otherwise dbus Scan calls will not return on success.
2015-11-02 09:24:10 -06:00
Denis Kenzior
5f55c07da9
wiphy: Keep track of supported freqs & bands
2015-10-06 15:23:32 -05:00
Denis Kenzior
22ab0e73a2
scan: Add scan_freq_set_get_bands
2015-10-06 15:23:09 -05:00
Denis Kenzior
4c0d366fcf
wsc: Reply and clean wsc_sm on netdev removal
2015-10-06 11:39:01 -05:00
Denis Kenzior
b81737a7eb
wsc: Add initial scanning logic
2015-10-05 22:37:46 -05:00
Denis Kenzior
f62054eb52
scan: Allow cancelation of scan requests
2015-10-05 22:37:12 -05:00
Denis Kenzior
13dde81f5b
main: Make valgrind happy
2015-10-02 12:58:38 -05:00
Denis Kenzior
14e40f27e3
netdev: Add netdev attribute getters
2015-10-02 12:58:26 -05:00
Denis Kenzior
8a68ebd65b
scan: Move bss_address_to_string to scan.[ch]
2015-10-02 12:06:20 -05:00
Denis Kenzior
6a28baa893
scan: Process Active scan requests
2015-09-30 13:38:41 -05:00
Denis Kenzior
e551133960
scan: Add scan_active
2015-09-30 11:36:00 -05:00
Denis Kenzior
46da18f23b
wsc: Register WSC interface
2015-09-29 12:15:37 -05:00
Denis Kenzior
ca0e3eb940
wiphy: Call netdev watches
2015-09-29 12:14:48 -05:00
Denis Kenzior
6068b3e364
scan: Make nl80211 static
2015-09-28 20:41:02 -05:00
Denis Kenzior
8026921801
main: Rework init/exit logic
2015-09-28 20:41:02 -05:00
Denis Kenzior
f8cf9cf154
wsc: Add wsc_init and wsc_exit
2015-09-28 20:41:00 -05:00
Denis Kenzior
e1bdd7ce1e
netdev: Add netdev watch infrastructure
2015-09-28 20:37:08 -05:00
Denis Kenzior
b19a683c36
wiphy: Rename function
2015-09-28 20:37:08 -05:00
Denis Kenzior
907b7d1e07
netdev: Move NETDEV_STATE enum to netdev.h
2015-09-28 20:37:08 -05:00
Denis Kenzior
50cc76e227
dbus: Add dbus_error_not_implemented
2015-09-28 20:37:07 -05:00
Denis Kenzior
d0d509d864
wsc: Add initial PushButton SM
2015-09-28 20:37:07 -05:00
Denis Kenzior
46a0c1db00
scan: Extract WSC IEs
2015-09-28 20:37:04 -05:00
Denis Kenzior
0b298dd313
scan: Add debug in scan_exit
2015-09-22 14:07:27 -05:00
Denis Kenzior
3f7e6e86bb
scan: Reset nl80211 when scan_exit called
2015-09-22 14:07:02 -05:00
Denis Kenzior
f064230afa
scan: Add scan request queue
...
For queuing up Active & Passive scans from other modules inside IWD
2015-09-22 14:06:40 -05:00
Denis Kenzior
b000c702b0
scan: Refactor scanning code
...
In preparation for adding active scans
2015-09-22 14:04:08 -05:00
Denis Kenzior
c37e700921
wsc: Add wsc_uuid_from_addr
2015-09-18 17:16:09 -05:00
Denis Kenzior
e055460709
wsc: Rename wsc.[ch] to wscutil.[ch]
2015-09-10 23:07:34 -05:00
Denis Kenzior
8261dab46b
ie: Add ie_tlv_encapsulate_wsc_payload
2015-09-10 22:30:43 -05:00
Denis Kenzior
c2aa596dd4
ie: Tweak function signature
2015-09-10 22:29:58 -05:00
Denis Kenzior
c23b1e3bc0
wsc: Add wsc_build_probe_request utility
2015-09-09 09:31:52 -05:00
Denis Kenzior
241e459ae7
wsc: Add wsc_parse_probe_request
2015-09-09 08:52:49 -05:00
Denis Kenzior
ab33a22149
wsc: Handle ATTR_REQUESTED_DEVICE_TYPE
2015-09-09 08:52:49 -05:00
Denis Kenzior
a1c198ab11
wsc: extract ATTR_CONFIGURATION_ERROR
2015-09-08 21:09:04 -05:00
Denis Kenzior
b0e306b407
wsc: Extract ATTR_ASSOCIATION_STATE
2015-09-08 21:07:17 -05:00
Denis Kenzior
9a3e78d1fc
wsc: Add extractor for ATTR_REQUEST_TYPE
2015-09-08 20:45:52 -05:00
Denis Kenzior
3eee3d47ee
wsc: Add Beacon frame parser
2015-07-23 19:42:29 -05:00
Denis Kenzior
86252a98cc
wsc: Parse additional attributes for ProbeResponse
...
Probe Response messages can contain additional attributes tucked away
into the WFA-Vendor specific attribute. Parse these attributes while
making sure the order is as expected.
2015-07-23 16:47:34 -05:00
Denis Kenzior
2f5a62d85c
wsc: Add additional comment
2015-07-23 16:47:34 -05:00
Denis Kenzior
01b5445e94
wsc: Add SelectedRegistrar attribute checking
2015-07-23 16:47:34 -05:00
Marcel Holtmann
07301eb74f
wsc: Cast data pointer into char for UTF-8 validation
2015-07-19 18:44:40 +02:00
Denis Kenzior
fa9b0e721b
wsc: Add initial parser for ProbeResponse messages
2015-07-17 14:53:48 -05:00
Denis Kenzior
2cc0be5482
wsc: Add initial set of extractor functions
2015-07-17 14:53:21 -05:00
Denis Kenzior
cd465852b4
wsc: Add initial message parser framework
2015-07-17 14:52:46 -05:00
Denis Kenzior
ad08dfad33
wsc: Add WFA extension iterator + recurse
2015-07-15 14:44:28 -05:00
Denis Kenzior
65c8a29370
wsc: Add WSC attribute iterator
2015-07-15 12:52:23 -05:00
Denis Kenzior
2fdf03cb84
ie: Rearrange header order
2015-07-13 13:26:55 -05:00
Denis Kenzior
0bf7fffbac
ie: fix whitespace
2015-07-09 14:20:59 -05:00
Denis Kenzior
3442736869
ie: add ie_tlv_extract_wsc_payload
2015-07-09 14:20:10 -05:00
Denis Kenzior
0389c60066
wsc: Add initial enum definitions from the spec
2015-07-01 09:46:43 -05:00
Denis Kenzior
94aba17968
wiphy: Add auto-connect logic
2015-06-22 18:33:55 -05:00
Denis Kenzior
f055c22825
wiphy: Don't crash if called outside D-Bus
2015-06-22 18:33:38 -05:00
Denis Kenzior
002ca518c9
wiphy: Keep track of auto-connect candidates
2015-06-22 17:42:30 -05:00
Denis Kenzior
a2be179f57
wiphy: Add netdev state machine
2015-06-22 17:16:18 -05:00
Denis Kenzior
cd1ef5acf7
main: add network_init and network_exit
2015-06-22 15:08:12 -05:00
Denis Kenzior
55f4c3275b
network: Fix typo
2015-06-22 15:08:02 -05:00
Denis Kenzior
971b3dfed0
scan: Make scan_bss_compute_rank static
2015-06-22 14:12:20 -05:00
Denis Kenzior
ce670bdcb1
network: Add network_rankmod
2015-06-18 06:11:14 -05:00
Denis Kenzior
d3f0bd5e27
network: Add initial network usage tracking
2015-06-18 05:18:26 -05:00
Denis Kenzior
035b2c1522
scan: add missing forward-declarations
2015-06-18 03:48:06 -05:00
Denis Kenzior
cbff1372e8
storage: add storage_network_get_mtime
2015-06-18 03:19:28 -05:00
Denis Kenzior
e153d94989
storage: Add storage_network_touch
2015-06-16 19:16:42 -05:00
Denis Kenzior
831d702ab2
wiphy: Add rank to debug output in process_bss
2015-06-16 17:12:28 -05:00
Denis Kenzior
0d977f62f6
wiphy: Use scan_bss_rank_compare
2015-06-16 17:12:28 -05:00
Denis Kenzior
0cba8ea2e9
scan: Add scan_bss_rank_compare
2015-06-16 17:12:26 -05:00
Denis Kenzior
7df688e11b
wiphy: Fix memory leak
...
==2469== 24 bytes in 1 blocks are still reachable in loss record 1 of 1
==2469== at 0x4C2B970: malloc (vg_replace_malloc.c:296)
==2469== by 0x40E6DD: l_malloc (util.c:62)
==2469== by 0x40F1CD: l_queue_new (queue.c:63)
==2469== by 0x40D534: scan_init (scan.c:796)
==2469== by 0x403AC3: nl80211_appeared (wiphy.c:2121)
==2469== by 0x415FF3: get_family_callback (genl.c:987)
==2469== by 0x415A4F: process_request (genl.c:381)
==2469== by 0x415A4F: received_data (genl.c:492)
==2469== by 0x413184: io_callback (io.c:120)
==2469== by 0x4127C2: l_main_run (main.c:346)
==2469== by 0x40253E: main (main.c:171)
2015-06-10 16:41:37 -05:00
Denis Kenzior
03004bd7b6
scan: Rename scan_free to scan_exit
2015-06-10 16:41:37 -05:00
Denis Kenzior
9773405c47
scan: Parse scanned frequencies
2015-06-10 16:41:37 -05:00
Denis Kenzior
b70f5a239d
scan: Add scan_freq_set utility class
2015-06-10 16:41:35 -05:00
Denis Kenzior
5ae63817b9
scan: Add scan_freq_to_channel
2015-06-10 16:38:49 -05:00
Denis Kenzior
f24b550196
scan: Include supported rates in ranking
2015-06-10 16:38:49 -05:00
Denis Kenzior
9eac017ec4
scan: Parse [extended] supported rates ie
2015-06-10 16:38:45 -05:00
Denis Kenzior
f648a3f0eb
scan: Include BSS Load channel utilization in rank
2015-06-10 16:28:14 -05:00
Denis Kenzior
3f2c728242
scan: Fix signal strength ranking calculation
...
We incorrectly ranked lower signal strength APs higher.
2015-06-10 16:28:14 -05:00
Denis Kenzior
99ac4d1b0d
scan: Make factors static const
2015-06-10 16:28:14 -05:00
Denis Kenzior
7cded805ce
ie: Add [extended] supported rates parser
2015-06-10 16:28:12 -05:00
Denis Kenzior
baa97b13e9
ie: Add BSS Load parser
2015-06-10 10:39:33 -05:00
Denis Kenzior
f1d81cd3c5
eapol: Remove unneded TODO comment
2015-06-08 10:46:48 -05:00
Denis Kenzior
1b4a3f19f3
scan: Add initial BSS rank computation
2015-06-05 18:18:55 -05:00
Denis Kenzior
05c83349c6
scan: Add periodic scanning
2015-06-04 22:32:10 -05:00
Denis Kenzior
f2f1bfcdf9
scan: Move rest of scanning code into scan.c
2015-06-01 09:45:47 -05:00
Denis Kenzior
92c677e715
wiphy: Remove scheduled scan support
...
Refactoring the entire scan code, and this part seems to not be
supported by the target kernels. Revisit / redo this functionality once
things become a bit clearer.
2015-05-31 22:10:35 -05:00
Andrew Zaborowski
00cafb2cc5
wiphy: Check early that a BSS supports compatible ciphers.
...
In the D-bus .Connect call return an error immediately if we
find that there's no common cipher supported between iwd, the
network adapter and the AP. This is to avoid asking the agent
for the passkey if we know the connection will fail.
An alternative would be to only show networks that we can connect
to in the scan results on D-bus but I suspect that would cause
more pain to users debugging their wifi setups on average.
For now, if a passphrase is needed we check once before querying
for passphrase and recheck afterwards when we're about to
associate.
2015-05-27 08:52:01 -05:00
Denis Kenzior
99cdb860c0
eapol: Simplify install_tk callback
2015-05-21 21:10:21 -05:00
Denis Kenzior
e93dd44607
eapol: Simplify GTK install callback
...
Instead of passing in the RSN/WPA elements, simply pass in the
configured cipher. This will make the implementation of the install_gtk
callback much simpler.
2015-05-21 21:08:47 -05:00
Denis Kenzior
d4cdd74ae0
ie: Add ie_rsn_cipher_suite_to_cipher
2015-05-21 20:58:42 -05:00
Denis Kenzior
d22a1af576
wiphy: Group RSN/WPA generation and setup
2015-05-21 20:43:54 -05:00
Denis Kenzior
9992d3aeda
eapol: Extract & keep track of desired ciphers
...
When our own WPA IE or RSN IE are set, extract group and pairwise
ciphers. These ciphers are the ones we desire to use for the secure
connection.
2015-05-19 00:05:53 -05:00
Denis Kenzior
12551b52ff
eapol: Sanity check 2nd RSNE
...
If the second (optional) RSN element is included in Step 3/4 of the
4-way handshake, parse it and perform basic sanity checks
2015-05-18 23:49:11 -05:00
Denis Kenzior
8593ebaad4
eapol: Set wpa_key_id in WPA1 Step 2 of 2
2015-05-18 14:45:09 -05:00
Andrew Zaborowski
a227d0b00f
eapol: In GTK step 2 of 2, secure bit is always 1
2015-05-18 12:50:50 -05:00
Andrew Zaborowski
0293b62f2e
wiphy: select TKIP if CCMP not supported
...
If AP does not support CCMP, or if the wiphy does not.
2015-05-18 12:50:50 -05:00
Andrew Zaborowski
a84d232eb1
eapol: Accept 32-byte keys in verify_ptk_3_of_4
...
TKIP key data is 32 bytes long.
2015-05-18 12:37:34 -05:00
Andrew Zaborowski
4b1555c935
scan: Utility to find AP supported ciphers
...
Extracts the supported ciphers masks from the beacon data. If RSN IE
was present, the WPA IE is ignored.
2015-05-18 12:37:34 -05:00
Andrew Zaborowski
27d18cdd96
wiphy: Detect IE type in key install callbacks
2015-05-18 12:34:47 -05:00
Denis Kenzior
e2591b9865
wiphy: Track whether Rekey Offload is supported
2015-05-06 15:24:14 -05:00
Denis Kenzior
619448cacc
eapol: Sanity check wpa_key_id field a bit more
2015-05-05 22:26:11 -05:00
Denis Kenzior
9793054a0a
eapol: Update TODO comment
2015-05-05 22:19:45 -05:00
Denis Kenzior
a38b6f1f9a
eapol: Add missing newline
2015-05-05 22:18:35 -05:00
Denis Kenzior
8f3fd6e47d
eapol: Add eapol_verify_gtk_2_of_2
2015-05-05 22:04:21 -05:00
Denis Kenzior
2ba7867e9f
eapol: Drop unneded check in verify_ptk_4_of_4
...
Step 4 is always sent without encrypted Key Data according to Section
11.6.6.5. In the case of WPA, Encrypted Key Data field is reserved, and
should always be 0. Thus it is safe to drop the !is_wpa condition.
2015-05-05 22:01:53 -05:00
Denis Kenzior
bb17f5df94
eapol: Add sanity checking of the install bit
2015-05-05 21:50:35 -05:00
Andrew Zaborowski
31284bf86b
wiphy: If handshake failed check connect_pending
...
When handling repeated 4-Way Handshakes from the AP there will be no
.Connect() call pending so we need to check that netdev->connect_pending
is non-NULL. It may be a good idea to check this even during initial
handshake.
2015-05-05 21:22:41 -05:00
Andrew Zaborowski
0ea28ba5ad
eapol: Generate new snonce on new 4-Way Handshake
...
Make sure that we handle PTK rekeying.
2015-05-05 21:22:38 -05:00
Andrew Zaborowski
1d0afbc44c
wiphy: Basic WPA support
...
Legacy WPA will be used with APs that advertise WPA support and
no WPA2 (RSN). TKIP is not yet supported though, so only CCMP
will work.
2015-05-05 21:22:34 -05:00
Andrew Zaborowski
a7846aee85
eapol: WPA-specific handshake quirks
...
To support WPA allow the legacy EAPOL-Key frame formats.
2015-05-05 21:22:31 -05:00
Andrew Zaborowski
a8c0f20510
eapol: Handle the Group Key Handshake
2015-05-05 21:10:07 -05:00
Denis Kenzior
1795105c60
wiphy: Move scan result parsing to scan.c
2015-05-01 17:27:42 -05:00
Denis Kenzior
bf43acfd93
scan: Add scan_bss_free
2015-04-30 22:21:31 -05:00
Denis Kenzior
73a26c51b6
scan: Move struct bss to scan_bss in scan.h
2015-04-30 21:38:27 -05:00
Denis Kenzior
348a90ada3
wiphy: Tweak errors returned by Disconnect()
2015-04-30 18:42:55 -05:00
Denis Kenzior
0286dfadd4
wiphy: Handle beacon loss events
2015-04-30 18:42:44 -05:00
Denis Kenzior
d127e91ff8
dbus: Add dbus_error_not_connected
2015-04-30 18:41:53 -05:00
Denis Kenzior
efe795b72d
wiphy: Fix memory leak
...
When disconnect is triggered locally, we do not clean up properly.
==4336== at 0x4C2B970: malloc (vg_replace_malloc.c:296)
==4336== by 0x40CEED: l_malloc (util.c:62)
==4336== by 0x40F46A: l_settings_new (settings.c:82)
==4336== by 0x40CE2E: storage_network_open (storage.c:180)
==4336== by 0x40498E: network_connect_psk (wiphy.c:307)
==4336== by 0x40498E: network_connect (wiphy.c:359)
==4336== by 0x41D7EE: _dbus_object_tree_dispatch (dbus-service.c:845)
==4336== by 0x416A16: message_read_handler (dbus.c:297)
==4336== by 0x411984: io_callback (io.c:120)
==4336== by 0x410FC2: l_main_run (main.c:346)
==4336== by 0x40253E: main (main.c:171)
2015-04-30 17:01:20 -05:00
Denis Kenzior
341b69ce7c
wiphy: Fix memory leak
...
This happens when connecting / disconnecting successfully multiple
times.
==4336== 64 bytes in 2 blocks are definitely lost in loss record 9 of 11
==4336== at 0x4C2B970: malloc (vg_replace_malloc.c:296)
==4336== by 0x40CEED: l_malloc (util.c:62)
==4336== by 0x40D6D9: l_util_from_hexstring (util.c:493)
==4336== by 0x4049C6: network_connect_psk (wiphy.c:315)
==4336== by 0x4049C6: network_connect (wiphy.c:359)
==4336== by 0x41D7EE: _dbus_object_tree_dispatch (dbus-service.c:845)
==4336== by 0x416A16: message_read_handler (dbus.c:297)
==4336== by 0x411984: io_callback (io.c:120)
==4336== by 0x410FC2: l_main_run (main.c:346)
==4336== by 0x40253E: main (main.c:171)
2015-04-30 17:00:38 -05:00
Denis Kenzior
5137d8b855
wiphy: Ensure connected_bss is always valid
2015-04-30 16:21:56 -05:00
Denis Kenzior
15620721b0
wiphy: Store connected_network on netdev object
...
Instead of storing the network pointer for each BSS, store it on the
netdev object. This saves space inside struct bss and makes longer term
refactoring simpler.
2015-04-30 16:21:56 -05:00
Denis Kenzior
67a895c95f
wiphy: Simplify code that removes lost networks
...
The current code is quite complicated and can be made simpler by using
the newly introduced l_hashmap_foreach_remove function.
2015-04-30 16:21:56 -05:00
Denis Kenzior
4c11845198
wiphy: Fix memory leak
...
==4249== 231 (32 direct, 199 indirect) bytes in 1 blocks are definitely
lost in loss record 10 of 10
==4249== at 0x4C2B970: malloc (vg_replace_malloc.c:296)
==4249== by 0x40CF5D: l_malloc (util.c:62)
==4249== by 0x40F4DA: l_settings_new (settings.c:82)
==4249== by 0x40CE9E: storage_network_open (storage.c:180)
==4249== by 0x40499E: network_connect_psk (wiphy.c:307)
==4249== by 0x40499E: network_connect (wiphy.c:359)
==4249== by 0x41D85E: _dbus_object_tree_dispatch (dbus-service.c:845)
==4249== by 0x416A86: message_read_handler (dbus.c:297)
==4249== by 0x4119F4: io_callback (io.c:120)
==4249== by 0x411032: l_main_run (main.c:346)
==4249== by 0x40253E: main (main.c:171)
2015-04-30 16:21:56 -05:00
Andrew Zaborowski
169aa04570
eapol: Free eapol_sm even if callback is null
...
If deauthenticate callback was not provided, the state machine was not
being freed / removed.
2015-04-29 08:54:53 -05:00
Andrew Zaborowski
4a27563b5a
eapol: Fix key-IV check in EAPOL-Key verification
...
The comment correctly states the IV is 0 for version 2, but the
check was actually for version 1.
2015-04-29 08:54:47 -05:00
Denis Kenzior
93aaf21459
wiphy: Add initial preference management
...
This patch saves off the PSK generated based on the passphrase provided
by the agent/user. The PSK is saved only if the connection is
successful.
Subsequent connection attempts to the known AP use the PSK saved on the
filesystem (default /var/lib/iwd/<ssid>.psk). If the connection fails,
the agent will again be asked for the passphrase on the next attempt.
2015-04-27 07:55:13 -05:00
Denis Kenzior
9d7f3030f0
storage: Add initial set of utilities
2015-04-27 07:55:09 -05:00
Denis Kenzior
a28f3fa3ec
wiphy: Parse ciphers supported by the phy
2015-04-17 13:02:32 -05:00
Denis Kenzior
431cadb7aa
wiphy: Optimize storage
2015-04-17 12:49:56 -05:00
Andrzej Zaborowski
f424559af5
iwd: Add -K to getopt optstring to fix short option.
2015-04-17 10:45:00 -05:00
Andrzej Zaborowski
c22d22f5e5
eapol: Remove eapol_sm's from queue when destroying.
...
Prevents a double-free.
2015-04-17 10:40:10 -05:00
Denis Kenzior
bc98bc9ecb
eapol: Add functions to set own/ap WPA IEs
...
If EAPoL is being run for in WPA mode, then instead of RSN elements, the
WPA elements are required.
2015-04-10 23:46:58 -05:00
Denis Kenzior
c9f1090380
wiphy: If connection failed, reset the PSK
...
This allows us to retry the agent for the correct passphrase
2015-04-08 15:07:02 -05:00
Denis Kenzior
0b48ba3a4a
wiphy: Use CMD_DISCONNECT, not CMD_DEAUTHENTICATE
...
CMD_DEAUTHENTICATE seems to carry only the management frame pdu
information. CMD_DISCONNECT is carrying the information that is
actually needed by us:
> Event: Disconnect (0x30) len 28 1140.118545
Wiphy: 0 (0x00000000)
Interface Index: 3 (0x00000003)
Reason Code: 2 (0x0002)
Disconnect by AP: true
2015-04-08 15:04:22 -05:00
Denis Kenzior
313dcbb8ff
wiphy: Rework Device.Disconnect() logic
2015-04-08 15:03:28 -05:00
Denis Kenzior
6921e239a4
wiphy: Only support UTF-8 SSIDs
...
We will ignore non-UTF8 based SSIDs. Support for non-UTF8 SSIDs seems
to be of dubious value in the real world as the vast majority of
consumer devices would not even allow such SSIDs to be configured or
used.
There also seems to be no compelling argument to support such SSIDs, so
until that argument arrives, non-UTF8 SSIDs will be filtered out. This
makes the D-Bus API and implementation much easier.
2015-04-08 13:38:41 -05:00
Denis Kenzior
3877a4e5dd
util: Add util_ssid_is_utf8
2015-04-08 13:18:54 -05:00
Denis Kenzior
b2e1c36cbb
wiphy: Stop eapol state machine if disconnecting
2015-03-29 22:50:34 -05:00
Denis Kenzior
445ad55796
eapol: Start a handshake timer
...
We start a timer. This handles the case that the Authenticator does
not send us the first message of the 4-way handshake, or disappears
before sending us the 3rd message.
2015-03-29 22:44:08 -05:00
Denis Kenzior
ecede21c1e
wiphy: Handle handshake failures
2015-03-29 22:32:11 -05:00
Denis Kenzior
3a6c06e85b
wiphy: De-auth if setting key transaction fails
2015-03-29 22:32:11 -05:00
Denis Kenzior
85a5d7ba98
wiphy: Keep track of new/set key command ids
2015-03-29 22:32:11 -05:00
Denis Kenzior
e2badc9828
eapol: Call deauthenticate callback
2015-03-29 22:32:09 -05:00
Denis Kenzior
9f17b71375
eapol: Add eapol_cancel
2015-03-29 20:58:40 -05:00
Denis Kenzior
cf3681efbe
eapol: Add comment for handling MIC failures
2015-03-29 20:57:58 -05:00
Denis Kenzior
f31407dd46
eapol: Add deauthenticate callback
2015-03-29 20:30:14 -05:00
Denis Kenzior
b81e22f809
wiphy: Move reason codes to mpdu.h
2015-03-29 20:27:57 -05:00
Jukka Rissanen
7b945d948f
wiphy: Set the linkmode and operstate of the link
...
We need to set the linkmode and operstate after successful
authentication.
Initial value for linkmode is 1 (user space controlled) and
IF_OPER_DORMANT for opermode. After successful authentication,
the operstate is set to IF_OPER_UP.
More specific details can be seen in kernel sources at
https://www.kernel.org/doc/Documentation/networking/operstates.txt
2015-03-27 13:14:31 -05:00
Jukka Rissanen
6dbd544a55
netdev: Add function to set the linkmode and operstate of the link
...
This is needed after connecting successfully to AP.
2015-03-27 13:13:33 -05:00
Jukka Rissanen
42622525d2
wiphy: Send NL80211_CMD_SET_STATION command to kernel
...
After we have authenticated successfully, send the Set Station
command to kernel so that AP gets authorized.
2015-03-27 13:12:47 -05:00
Denis Kenzior
86ea449cd1
wiphy: Make sure to set user_data
...
This is needed for TK/GTK installation
2015-03-25 23:28:45 -05:00
Denis Kenzior
0412360d77
wiphy: Install group key
2015-03-25 23:28:40 -05:00
Denis Kenzior
6ec364cb86
eapol: Add __eapol_set_gtk_install_func
2015-03-25 23:28:22 -05:00
Denis Kenzior
75bacbb896
wiphy: Install pairwise key
2015-03-25 23:28:18 -05:00
Denis Kenzior
bf5a6a3999
eapol: Add __eapol_set_install_tk_func
2015-03-25 22:35:12 -05:00
Denis Kenzior
ddcbb3f2a8
eapol: Add eapol_sm_set_user_data
2015-03-25 22:34:05 -05:00