[RFC PATCH 0/8] Export IWD known networks as Connections

From: Andrew Zaborowski <balrogg gmail com>

Connecting to 802.1x wifi networks preprovisioned as IWD config files
doesn't work very well currently as you have to have an NM Connection
with the same SSID and security type set to WPA-Enteprise for the backend
to command IWD to connect.  For that you need to create a connection and
fill in all the EAP details just so NM accepts the connection settings.

This is a propsal to add an IWD-specific settings plugin that presents
IWD's KnownNetworks as existing Connections to dbus clients so that
information is not duplicated between IWD and NM config files (although,
since IWD won't save many of the settings that are important to NM it
may still be a good idea to have NM config files for those connections,
but without duplication), and later allow deleting configured networks.

The patches just implement a minimal plugin with a few open questions.
If NMIwdManager was to create and remove the connection objects without
registering as a plugin it couldn't override the connection operations
and they'd still be performed by the keyfile plugin.  But I'm not sure
where it's best to place the plugin within the source or whether it
should be built as a separate binary.  Also whether the connections
created should be somehow locked to only IWD devices when NM is
configured to use both the IWD backend and the wpa_supplicand backend
for different devices -- connection.interface-name and
802-3-ethernet.mac-address would only allow one interface to be
specified.  Having devices using both backends is a really strange
configuration and I don't see much value in supporting it.

Andrew Zaborowski (8):
  wifi: Move get_connection_iwd_security to nm-wifi-utils.c
  wifi: Move KnownNetworkData to nm-iwd-manger.h
  iwd: Emit known-networks-changed signals from NMIwdManager
  iwd: Add nm_iwd_manager_forget_network API
  settings: Allow loading plugins after startup
  libnm-core: 8021x: Allow a new eap value "extern"
  settings: Add an IWD plugin
  iwd: Register the IWD settings plugin

 Makefile.am                                   |   6 +-
 libnm-core/nm-setting-8021x.c                 |   3 +-
 src/devices/wifi/nm-device-iwd.c              |  35 +----
 src/devices/wifi/nm-iwd-manager.c             |  88 +++++++++++--
 src/devices/wifi/nm-iwd-manager.h             |  10 ++
 src/devices/wifi/nm-wifi-utils.c              |  23 ++++
 src/devices/wifi/nm-wifi-utils.h              |   3 +
 src/settings/nm-settings.c                    |  66 ++++++----
 src/settings/nm-settings.h                    |   4 +
 src/settings/plugins/iwd/nms-iwd-connection.c | 173 +++++++++++++++++++++++++
 src/settings/plugins/iwd/nms-iwd-connection.h |  43 +++++++
 src/settings/plugins/iwd/nms-iwd-plugin.c     | 176 ++++++++++++++++++++++++++
 src/settings/plugins/iwd/nms-iwd-plugin.h     |  37 ++++++
 13 files changed, 604 insertions(+), 63 deletions(-)
 create mode 100644 src/settings/plugins/iwd/nms-iwd-connection.c
 create mode 100644 src/settings/plugins/iwd/nms-iwd-connection.h
 create mode 100644 src/settings/plugins/iwd/nms-iwd-plugin.c
 create mode 100644 src/settings/plugins/iwd/nms-iwd-plugin.h


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]