Skip to content
Snippets Groups Projects

WIP: Add P2P Wireless support (Wi-Fi Direct)

Closed Benjamin Berg requested to merge benzea/NetworkManager:wip/P2P into master

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.
Edited by Benjamin Berg

Merge request reports

Loading
Loading

Activity

Filter activity
  • Approvals
  • Assignees & reviewers
  • Comments (from bots)
  • Comments (from users)
  • Commits & branches
  • Edits
  • Labels
  • Lock status
  • Mentions
  • Merge request status
  • Tracking
  • Benjamin Berg added 16 commits

    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

    Compare with previous version

  • Very nice. Thank you for the large effort.

    A few comments:

    • the directories libnm-util and libnm-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).

  • Just a quick reply:

    • Yeah, libnm-util/libnm-glib changes are accidental. I guess I forgot to remove some changes again, will check.
    • Sure, I am can spin-off a few separate MRs
    • Oops, good point, I forgot to run the checkpatch script. I'll do that and update things
  • Benjamin Berg added 101 commits

    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

    Compare with previous version

  • Benjamin Berg added 17 commits

    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

    Compare with previous version

  • Benjamin Berg added 103 commits

    added 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

    Compare with previous version

  • Benjamin Berg mentioned in merge request !37 (closed)

    mentioned in merge request !37 (closed)

  • Benjamin Berg added 21 commits

    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

    Compare with previous version

  • Benjamin Berg added 16 commits

    added 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

    Compare with previous version

  • Benjamin Berg added 22 commits

    added 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

    Compare with previous version

  • Benjamin Berg added 13 commits

    added 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

    Compare with previous version

  • Benjamin Berg added 8 commits

    added 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

    Compare with previous version

  • Benjamin Berg added 9 commits

    added 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

    Compare with previous version

  • Benjamin Berg added 122 commits

    added 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

    Compare with previous version

  • Benjamin Berg added 8 commits

    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

    Compare with previous version

  • Benjamin Berg added 54 commits

    added 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

    Compare with previous version

  • Benjamin Berg added 77 commits

    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

    Compare with previous version

  • Benjamin Berg changed the description

    changed the description

  • Benjamin Berg added 42 commits

    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

    Compare with previous version

  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
Please register or sign in to reply
Loading