WIP: Add P2P Wireless support (Wi-Fi Direct)
This is a work in progress branch to add P2P Wireless (Wi-Fi Direct) support.
The current implementation is incomplete in a number of regards:
- Connection establishment requires connecting to a peer. The connection will be failed automatically if this peer disconnects (after 5 seconds).
- Proper WFD support will require setting a global wpa_supplicant property. This does not seem easily fixable. That could result in some weird from NM if one has multiple Wi-Fi cards.
- Information about the found P2P Groups is not available through NM
- The symbol versions (and documentation) is currently wrong
Other notes:
- The patchset creates a virtual P2PWireless device for every capable wireless device
- Meaning of IP auto-configuration can be modified by the device class. Something like this is needed for proper P2P support, but the solution may be bad.
Merge request reports
Activity
added 16 commits
- d84114ac - core: Add basic P2P Wi-Fi Settings
- f1dc9568 - libm/docs: Use GIR data from build directory to generate settings doc
- c06e9e7b - core: Allow devices to modify the meaning of the AUTO IP config method
- e6425556 - supplicant: Detect P2P and WFD support
- 94501f81 - supplicant: Connect to P2PDevice supplicant interface
- 2fd61b83 - supplicant: Monitor existance of P2P Peers found
- bcad9663 - supplicant: Allow creating an interface from object path
- c45e25b8 - supplicant: Track P2P Group information, creation and destruction
- 44878237 - supplicant: Add API to join/cancel/disconnect a P2P Group
- f7a36051 - core/devices: Add P2P Wifi device and peer tracking
- 46d46c75 - core/devices: Automatically create P2P device for wifi devices
- 06037890 - libnm: Add class to handle P2P peers
- eceecb98 - libnm: Add NMDeviceP2PWifi
- cead37ca - supplicant: Add methods to start/stop a P2P Find operation
- fab32b30 - core/devices: Add DBus methods to start/stop a P2P find
- cd166afe - libnm: Add routines to start/stop a P2P find operation
Toggle commit listVery nice. Thank you for the large effort.
A few comments:
-
the directories
libnm-util
andlibnm-glib
contain the legacy libnm libraries. These are long deprecated, they should not get any updates anymore. At least not new features. -
maybe we can split up the branch into smaller bits and merge them early?
-
we have a checkpatch script. Could you adjust the branch so that it doesn't warn? For example, I have
.git/hooks/post-commit
with
#!/bin/sh FILE=contrib/scripts/checkpatch.pl if [ -f "$FILE" ]; then git format-patch -U65535 --stdout -1 | "$FILE" fi exit 0
More follows. Btw, feel free to force-push the branch if you change something (we do that usually).
-
added 101 commits
-
cd166afe...31f13acd - 83 commits from branch
NetworkManager:master
- 39f945ed - supplicant: Handle interface removal
- 8454c5e6 - core: Introduce helper class to track connection keep alive
- ebdf500a - core: Add basic P2P Wi-Fi Settings
- fd555ec3 - libm/docs: Use GIR data from build directory to generate settings doc
- 7307e199 - core: Allow devices to modify the meaning of the AUTO IP config method
- 7d100c4c - supplicant: Detect P2P and WFD support
- 47d509ce - supplicant: Connect to P2PDevice supplicant interface
- d503d5f2 - supplicant: Monitor existance of P2P Peers found
- 5ad60e59 - supplicant: Allow creating an interface from object path
- c816debf - supplicant: Track P2P Group information, creation and destruction
- edd5cddb - supplicant: Add API to join/cancel/disconnect a P2P Group
- 852b08de - core/devices: Add P2P Wifi device and peer tracking
- 25cc2d65 - core/devices: Automatically create P2P device for wifi devices
- 15ee16d8 - libnm: Add class to handle P2P peers
- 0e462551 - libnm: Add NMDeviceP2PWifi
- 8668d8f9 - supplicant: Add methods to start/stop a P2P Find operation
- fb24f495 - core/devices: Add DBus methods to start/stop a P2P find
- 2d86e068 - libnm: Add routines to start/stop a P2P find operation
Toggle commit list-
cd166afe...31f13acd - 83 commits from branch
added 17 commits
- bc773bcf - core: Introduce helper class to track connection keep alive
- a7596d20 - core: Add basic P2P Wi-Fi Settings
- 5e124ca7 - libm/docs: Use GIR data from build directory to generate settings doc
- 77f4b211 - core: Allow devices to modify the meaning of the AUTO IP config method
- f7530e98 - supplicant: Detect P2P and WFD support
- 6a5bf851 - supplicant: Connect to P2PDevice supplicant interface
- 72c4b29c - supplicant: Monitor existance of P2P Peers found
- b8a74b6a - supplicant: Allow creating an interface from object path
- f47bc6f8 - supplicant: Track P2P Group information, creation and destruction
- 6eb6a5cd - supplicant: Add API to join/cancel/disconnect a P2P Group
- a0c3f987 - core/devices: Add P2P Wifi device and peer tracking
- 3ed3fa39 - core/devices: Automatically create P2P device for wifi devices
- 6cd3b722 - libnm: Add class to handle P2P peers
- e9462555 - libnm: Add NMDeviceP2PWifi
- f1066c80 - supplicant: Add methods to start/stop a P2P Find operation
- a758c619 - core/devices: Add DBus methods to start/stop a P2P find
- 95ddc9ab - libnm: Add routines to start/stop a P2P find operation
Toggle commit listadded 103 commits
-
95ddc9ab...3648c58b - 82 commits from branch
NetworkManager:master
- b47956e8 - core: Introduce helper class to track connection keep alive
- b10c75cd - manager: Add an AddAndActivateConnection2 routine with options parameter
- 8db1cdd6 - manager: Add persist option to AddAndActivateConnection2
- 060781db - core: Add option to AddAndActivateConnection2 to bind the lifetime
- 04644835 - libnm: Add support to pass options to AddAndActivateConnection
- 2f30da73 - supplicant: Handle interface removal
- 0fcb2cb4 - core: Add basic P2P Wi-Fi Settings
- bdcf8b11 - core: Allow devices to modify the meaning of the AUTO IP config method
- bf53432d - supplicant: Detect P2P and WFD support
- bc42707f - supplicant: Connect to P2PDevice supplicant interface
- a5615a7f - supplicant: Monitor existance of P2P Peers found
- 46a80cbe - supplicant: Allow creating an interface from object path
- 4d85f986 - supplicant: Track P2P Group information, creation and destruction
- 6c461315 - supplicant: Add API to join/cancel/disconnect a P2P Group
- da7676e4 - core/devices: Add P2P Wifi device and peer tracking
- 2f84ce74 - core/devices: Automatically create P2P device for wifi devices
- 6fb462c4 - libnm: Add class to handle P2P peers
- 01e9563d - libnm: Add NMDeviceP2PWifi
- 8735f05f - supplicant: Add methods to start/stop a P2P Find operation
- 66541bfe - core/devices: Add DBus methods to start/stop a P2P find
- f120856a - libnm: Add routines to start/stop a P2P find operation
Toggle commit list-
95ddc9ab...3648c58b - 82 commits from branch
mentioned in merge request !37 (closed)
added 21 commits
- e077d05e - core: Introduce helper class to track connection keep alive
- a1339ba1 - core: Add an AddAndActivateConnection2 routine with options parameter
- a851b934 - core: Add persist option to AddAndActivateConnection2
- 012df348 - core: Add option to AddAndActivateConnection2 to bind the lifetime
- f05af522 - libnm: Add support to pass options to AddAndActivateConnection
- 383838a8 - supplicant: Handle interface removal
- c6f52e47 - core: Add basic P2P Wi-Fi Settings
- 02c3489b - core: Allow devices to modify the meaning of the AUTO IP config method
- 05ff2f01 - supplicant: Detect P2P and WFD support
- e1d02e54 - supplicant: Connect to P2PDevice supplicant interface
- 653e90af - supplicant: Monitor existance of P2P Peers found
- 5bd9bf33 - supplicant: Allow creating an interface from object path
- 9ae9aa73 - supplicant: Track P2P Group information, creation and destruction
- cf9d8b4d - supplicant: Add API to join/cancel/disconnect a P2P Group
- c8ae58c4 - core/devices: Add P2P Wifi device and peer tracking
- e826e845 - core/devices: Automatically create P2P device for wifi devices
- 26e96746 - libnm: Add class to handle P2P peers
- 9fadac83 - libnm: Add NMDeviceP2PWifi
- ea59dd3d - supplicant: Add methods to start/stop a P2P Find operation
- 1070298c - core/devices: Add DBus methods to start/stop a P2P find
- 72bf90ae - libnm: Add routines to start/stop a P2P find operation
Toggle commit listadded 16 commits
- 816fd82e - core: Allow devices to modify the meaning of the AUTO IP config method
- 3fdae880 - supplicant: Handle interface removal
- edb4927a - supplicant: Detect P2P and WFD support
- cb2c773e - supplicant: Connect to P2PDevice supplicant interface
- 1cc34eee - supplicant: Monitor existance of P2P Peers found
- ade14754 - supplicant: Allow creating an interface from object path
- 25755162 - supplicant: Track P2P Group information, creation and destruction
- b63bce42 - supplicant: Add API to join/cancel/disconnect a P2P Group
- ddfaacd6 - core: Add basic P2P Wi-Fi Settings
- ca4e22b2 - core/devices: Add P2P Wifi device and peer tracking
- 5835214e - core/devices: Automatically create P2P device for wifi devices
- 1821795d - libnm: Add class to handle P2P peers
- 61a15ff2 - libnm: Add NMDeviceP2PWifi
- f0e4b5fa - supplicant: Add methods to start/stop a P2P Find operation
- b7414296 - core/devices: Add DBus methods to start/stop a P2P find
- 348fdc43 - libnm: Add routines to start/stop a P2P find operation
Toggle commit listadded 22 commits
- 32d299b5 - core: Introduce helper class to track connection keep alive
- b23b59ff - core: Add an AddAndActivateConnection2 routine with options parameter
- 3da17235 - core: Add persist option to AddAndActivateConnection2
- 94cea76e - core: Add option to AddAndActivateConnection2 to bind the lifetime
- a986ef65 - libnm: Add support to pass options to AddAndActivateConnection
- ffdf8aca - core: Allow devices to modify the meaning of the AUTO IP config method
- 6c313a8d - supplicant: Handle interface removal
- 039385a9 - supplicant: Detect P2P and WFD support
- 32401ccf - supplicant: Connect to P2PDevice supplicant interface
- 4f2dcf75 - supplicant: Monitor existance of P2P Peers found
- 10d3a321 - supplicant: Allow creating an interface from object path
- 65c1eebe - supplicant: Track P2P Group information, creation and destruction
- 43f690f4 - supplicant: Add API to join/cancel/disconnect a P2P Group
- 4a4a8e62 - core: Add basic P2P Wi-Fi Settings
- c4447653 - core/devices: Add P2P Wifi device and peer tracking
- 5818b6c1 - core/devices: Automatically create P2P device for wifi devices
- 6d36e162 - libnm: Add class to handle P2P peers
- 9d45bd6f - libnm: Add NMDeviceP2PWifi
- 69cfc883 - supplicant: Add methods to start/stop a P2P Find operation
- f55b30ca - core/devices: Add DBus methods to start/stop a P2P find
- 347c7504 - libnm: Add routines to start/stop a P2P find operation
- e6af8967 - libnm: Expose the P2PPeer WFDIEs property
Toggle commit listadded 13 commits
- db7c655a - supplicant: Monitor existance of P2P Peers found
- 014f3106 - supplicant: Allow creating an interface from object path
- eb742732 - supplicant: Track P2P Group information, creation and destruction
- a2241394 - supplicant: Add API to join/cancel/disconnect a P2P Group
- a3dae4f9 - core: Add basic P2P Wi-Fi Settings
- 5aa13eff - core/devices: Add P2P Wifi device and peer tracking
- 605f6a87 - core/devices: Automatically create P2P device for wifi devices
- 70b81c92 - libnm: Add class to handle P2P peers
- 03ce977e - libnm: Add NMDeviceP2PWifi
- 01941ac4 - supplicant: Add methods to start/stop a P2P Find operation
- 35b8355a - core/devices: Add DBus methods to start/stop a P2P find
- d24185b1 - libnm: Add routines to start/stop a P2P find operation
- c93cf789 - libnm: Expose the P2PPeer WFDIEs property
Toggle commit listadded 8 commits
- f48c7feb - core/devices: Add P2P Wifi device and peer tracking
- d1c5799f - core/devices: Automatically create P2P device for wifi devices
- a5e2319a - libnm: Add class to handle P2P peers
- 6254cf3b - libnm: Add NMDeviceP2PWifi
- 1c36ed23 - supplicant: Add methods to start/stop a P2P Find operation
- 6b73b18b - core/devices: Add DBus methods to start/stop a P2P find
- 55979657 - libnm: Add routines to start/stop a P2P find operation
- 5a138d69 - libnm: Expose the P2PPeer WFDIEs property
Toggle commit listadded 9 commits
- 87a087db - core: Add basic P2P Wi-Fi Settings
- a0019019 - core/devices: Add P2P Wifi device and peer tracking
- d63749b0 - core/devices: Automatically create P2P device for wifi devices
- a9aabe2c - libnm: Add class to handle P2P peers
- c3e97d1c - libnm: Add NMDeviceP2PWifi
- 1b4ced3c - supplicant: Add methods to start/stop a P2P Find operation
- 7b4cf7e0 - core/devices: Add DBus methods to start/stop a P2P find
- 855514c9 - libnm: Add routines to start/stop a P2P find operation
- 0c5df0d4 - libnm: Expose the P2PPeer WFDIEs property
Toggle commit listadded 122 commits
-
0c5df0d4...8af4f766 - 105 commits from branch
NetworkManager:master
- 8a642eca - core: Allow devices to modify the meaning of the AUTO IP config method
- e41f11dd - supplicant: Handle interface removal
- 0c67b77d - supplicant: Detect P2P and WFD support
- 3ff1f6b9 - supplicant: Connect to P2PDevice supplicant interface
- 98e357b3 - supplicant: Monitor existance of P2P Peers found
- a00d37e8 - supplicant: Allow creating an interface from object path
- 87df8fa4 - supplicant: Track P2P Group information, creation and destruction
- d1e82fec - supplicant: Add API to join/cancel/disconnect a P2P Group
- 3ef1282d - core: Add basic P2P Wi-Fi Settings
- a0951468 - core/devices: Add P2P Wifi device and peer tracking
- b2a7afe3 - core/devices: Automatically create P2P device for wifi devices
- fd6d44f6 - libnm: Add class to handle P2P peers
- 836529e7 - libnm: Add NMDeviceP2PWifi
- c4bb3479 - supplicant: Add methods to start/stop a P2P Find operation
- 335eb21a - core/devices: Add DBus methods to start/stop a P2P find
- 03e7dc01 - libnm: Add routines to start/stop a P2P find operation
- 0bbca680 - libnm: Expose the P2PPeer WFDIEs property
Toggle commit list-
0c5df0d4...8af4f766 - 105 commits from branch
added 8 commits
- 72b91d96 - core/devices: Add P2P Wifi device and peer tracking
- 7dff7beb - core/devices: Automatically create P2P device for wifi devices
- ab09ce13 - libnm: Add class to handle P2P peers
- a4193312 - libnm: Add NMDeviceP2PWifi
- 891c3406 - supplicant: Add methods to start/stop a P2P Find operation
- 408dc08e - core/devices: Add DBus methods to start/stop a P2P find
- 86ac91ef - libnm: Add routines to start/stop a P2P find operation
- 9a495891 - libnm: Expose the P2PPeer WFDIEs property
Toggle commit listadded 54 commits
-
9a495891...7f74c66a - 37 commits from branch
NetworkManager:master
- 19d76638 - core: Allow devices to modify the meaning of the AUTO IP config method
- d416bfde - supplicant: Handle interface removal
- 18c66fc8 - supplicant: Detect P2P and WFD support
- c80f5f69 - supplicant: Connect to P2PDevice supplicant interface
- b408c70f - supplicant: Monitor existance of P2P Peers found
- eb20c6b8 - supplicant: Allow creating an interface from object path
- 8371225f - supplicant: Track P2P Group information, creation and destruction
- 5f2fb083 - supplicant: Add API to join/cancel/disconnect a P2P Group
- 23121b60 - core: Add basic P2P Wi-Fi Settings
- 0024f6bb - core/devices: Add P2P Wifi device and peer tracking
- 9e05eae9 - core/devices: Automatically create P2P device for wifi devices
- 567ff7de - libnm: Add class to handle P2P peers
- a1a14073 - libnm: Add NMDeviceP2PWifi
- e9d83ede - supplicant: Add methods to start/stop a P2P Find operation
- 0cd65b04 - core/devices: Add DBus methods to start/stop a P2P find
- 875f0687 - libnm: Add routines to start/stop a P2P find operation
- 41c79f9b - libnm: Expose the P2PPeer WFDIEs property
Toggle commit list-
9a495891...7f74c66a - 37 commits from branch
added 77 commits
-
41c79f9b...8dfa903a - 60 commits from branch
NetworkManager:master
- f68d87df - core: Allow devices to modify the meaning of the AUTO IP config method
- 155a98c5 - supplicant: Handle interface removal
- 5c481f14 - supplicant: Detect P2P and WFD support
- 4642dbc3 - supplicant: Connect to P2PDevice supplicant interface
- 3f5a19bc - supplicant: Monitor existance of P2P Peers found
- cf3a7eb1 - supplicant: Allow creating an interface from object path
- c8f78da9 - supplicant: Track P2P Group information, creation and destruction
- 7717aa85 - supplicant: Add API to join/cancel/disconnect a P2P Group
- 5cf505a4 - supplicant: Add methods to start/stop a P2P Find operation
- cca8007a - core: Add basic P2P Wi-Fi Settings
- ad92ecda - core/devices: Add P2P Wifi device and peer tracking
- 3bf6d8cf - core/devices: Automatically create P2P device for wifi devices
- 240e2d01 - libnm: Add class to handle P2P peers
- ae67243f - libnm: Add NMDeviceP2PWifi
- b52ad48e - core/devices: Add DBus methods to start/stop a P2P find
- 80c17a39 - libnm: Add routines to start/stop a P2P find operation
- 67f5e881 - libnm: Expose the P2PPeer WFDIEs property
Toggle commit list-
41c79f9b...8dfa903a - 60 commits from branch
added 42 commits
-
67f5e881...066c4645 - 24 commits from branch
NetworkManager:master
- e3555cf7 - core: Allow devices to modify the meaning of the AUTO IP config method
- 6a92747a - supplicant: Handle interface removal
- f2aa2bcb - supplicant: Detect P2P and WFD support
- 5fc180bd - supplicant: Connect to P2PDevice supplicant interface
- 3cdf9917 - supplicant: Monitor existance of P2P Peers found
- 61b0f5e5 - supplicant: Allow creating an interface from object path
- 50a495ca - supplicant: Track P2P Group information, creation and destruction
- 08dfcee8 - supplicant: Export group path of active group
- 521a8103 - supplicant: Add API to join/cancel/disconnect a P2P Group
- 06174891 - supplicant: Add methods to start/stop a P2P Find operation
- 705c4125 - core: Add basic P2P Wi-Fi Settings
- ed99d749 - core/devices: Add P2P Wifi device and peer tracking
- fdfd0182 - core/devices: Automatically create P2P device for wifi devices
- 64b59a3d - libnm: Add class to handle P2P peers
- bec8e300 - libnm: Add NMDeviceP2PWifi
- 4c95d183 - core/devices: Add DBus methods to start/stop a P2P find
- a82123d3 - libnm: Add routines to start/stop a P2P find operation
- d096173e - libnm: Expose the P2PPeer WFDIEs property
Toggle commit list-
67f5e881...066c4645 - 24 commits from branch