summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Haller <thaller@redhat.com>2017-12-13 15:45:47 +0100
committerThomas Haller <thaller@redhat.com>2017-12-27 09:18:54 +0100
commit16e75d4db5a3fbc5e8b713fc6afcbab15540cd50 (patch)
tree60fbc7ca485d1de9632335ccddb3258346c2efda
parent6295865e0f088d6be796f9ad44454d79fc18eeab (diff)
downloadNetworkManager-16e75d4db5a3fbc5e8b713fc6afcbab15540cd50.tar.gz
wifi: configure wifi-backend per device
This allows to configure the wifi-backend per device, like [device-wifi-backend-eth0] match-device=interface-name:wlan0 wifi-backend=iwd
-rw-r--r--man/NetworkManager.conf.xml9
-rw-r--r--src/devices/wifi/nm-wifi-factory.c9
-rw-r--r--src/nm-config.h2
3 files changed, 15 insertions, 5 deletions
diff --git a/man/NetworkManager.conf.xml b/man/NetworkManager.conf.xml
index 231b7d017f..04f6b54b23 100644
--- a/man/NetworkManager.conf.xml
+++ b/man/NetworkManager.conf.xml
@@ -927,6 +927,15 @@ managed=1
</para>
</listitem>
</varlistentry>
+ <varlistentry id="wifi.backend">
+ <term><varname>wifi.backend</varname></term>
+ <listitem>
+ <para>
+ Specify the Wi-Fi backend used for the device. Currently supported
+ are <literal>wpa_supplicant</literal> and <literal>iwd</literal> (experimental).
+ </para>
+ </listitem>
+ </varlistentry>
<varlistentry>
<term><varname>wifi.scan-generate-mac-address-mask</varname></term>
<listitem>
diff --git a/src/devices/wifi/nm-wifi-factory.c b/src/devices/wifi/nm-wifi-factory.c
index 1272e94139..298b15f143 100644
--- a/src/devices/wifi/nm-wifi-factory.c
+++ b/src/devices/wifi/nm-wifi-factory.c
@@ -104,10 +104,11 @@ create_device (NMDeviceFactory *factory,
if (plink->type != NM_LINK_TYPE_WIFI)
return nm_device_olpc_mesh_new (iface);
- backend = nm_config_data_get_value (NM_CONFIG_GET_DATA,
- NM_CONFIG_KEYFILE_GROUP_MAIN,
- NM_CONFIG_KEYFILE_KEY_MAIN_WIFI_BACKEND,
- NM_CONFIG_GET_VALUE_STRIP);
+ backend = nm_config_data_get_device_config_by_pllink (NM_CONFIG_GET_DATA,
+ NM_CONFIG_KEYFILE_KEY_DEVICE_WIFI_BACKEND,
+ plink,
+ NULL);
+ nm_strstrip (backend);
nm_log_dbg (LOGD_PLATFORM | LOGD_WIFI, "(%s) config: backend is %s, %i", iface, backend, WITH_IWD);
if (!backend || !strcasecmp (backend, "wpa_supplicant"))
diff --git a/src/nm-config.h b/src/nm-config.h
index b99576abf3..7ba707aac0 100644
--- a/src/nm-config.h
+++ b/src/nm-config.h
@@ -64,7 +64,6 @@
#define NM_CONFIG_KEYFILE_KEY_MAIN_DEBUG "debug"
#define NM_CONFIG_KEYFILE_KEY_MAIN_HOSTNAME_MODE "hostname-mode"
#define NM_CONFIG_KEYFILE_KEY_MAIN_SLAVES_ORDER "slaves-order"
-#define NM_CONFIG_KEYFILE_KEY_MAIN_WIFI_BACKEND "wifi-backend"
#define NM_CONFIG_KEYFILE_KEY_LOGGING_BACKEND "backend"
#define NM_CONFIG_KEYFILE_KEY_CONFIG_ENABLE "enable"
#define NM_CONFIG_KEYFILE_KEY_ATOMIC_SECTION_WAS ".was"
@@ -79,6 +78,7 @@
#define NM_CONFIG_KEYFILE_KEY_DEVICE_MANAGED "managed"
#define NM_CONFIG_KEYFILE_KEY_DEVICE_IGNORE_CARRIER "ignore-carrier"
#define NM_CONFIG_KEYFILE_KEY_DEVICE_SRIOV_NUM_VFS "sriov-num-vfs"
+#define NM_CONFIG_KEYFILE_KEY_DEVICE_WIFI_BACKEND "wifi.backend"
#define NM_CONFIG_KEYFILE_KEY_DEVICE_CARRIER_WAIT_TIMEOUT "carrier-wait-timeout"
#define NM_CONFIG_KEYFILE_KEYPREFIX_WAS ".was."