about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--Makefile.am40
-rw-r--r--Makefile.in364
-rw-r--r--NEWS34
-rw-r--r--clients/cli/connections.c58
-rw-r--r--clients/cli/devices.c155
-rw-r--r--clients/cli/utils.c2
-rw-r--r--clients/common/meson.build14
-rw-r--r--clients/common/nm-meta-setting-desc.c129
-rw-r--r--clients/common/settings-docs.h10
-rw-r--r--clients/common/settings-docs.h.in10
-rwxr-xr-xclients/tests/test-client.py4
-rwxr-xr-xconfigure26
-rw-r--r--configure.ac2
-rw-r--r--docs/api/html/NetworkManager.conf.html37
-rw-r--r--docs/api/html/NetworkManager.html4
-rw-r--r--docs/api/html/ch01.html4
-rw-r--r--docs/api/html/dbus-secret-agent.html4
-rw-r--r--docs/api/html/dbus-types.html4
-rw-r--r--docs/api/html/dbus-vpn-plugin.html4
-rw-r--r--docs/api/html/dbus-vpn-types.html4
-rw-r--r--docs/api/html/gdbus-org.freedesktop.NetworkManager.AccessPoint.html4
-rw-r--r--docs/api/html/gdbus-org.freedesktop.NetworkManager.AgentManager.html4
-rw-r--r--docs/api/html/gdbus-org.freedesktop.NetworkManager.Checkpoint.html4
-rw-r--r--docs/api/html/gdbus-org.freedesktop.NetworkManager.Connection.Active.html4
-rw-r--r--docs/api/html/gdbus-org.freedesktop.NetworkManager.DHCP4Config.html4
-rw-r--r--docs/api/html/gdbus-org.freedesktop.NetworkManager.DHCP6Config.html4
-rw-r--r--docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Adsl.html4
-rw-r--r--docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Bluetooth.html4
-rw-r--r--docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Bond.html4
-rw-r--r--docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Bridge.html4
-rw-r--r--docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Dummy.html4
-rw-r--r--docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Generic.html4
-rw-r--r--docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.IPTunnel.html4
-rw-r--r--docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Infiniband.html4
-rw-r--r--docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Lowpan.html4
-rw-r--r--docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Macsec.html4
-rw-r--r--docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Macvlan.html4
-rw-r--r--docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Modem.html4
-rw-r--r--docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.OlpcMesh.html4
-rw-r--r--docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.OvsBridge.html4
-rw-r--r--docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.OvsInterface.html4
-rw-r--r--docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.OvsPort.html4
-rw-r--r--docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Ppp.html4
-rw-r--r--docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Statistics.html4
-rw-r--r--docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Team.html4
-rw-r--r--docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Tun.html4
-rw-r--r--docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Veth.html4
-rw-r--r--docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Vlan.html4
-rw-r--r--docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Vxlan.html4
-rw-r--r--docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.WireGuard.html4
-rw-r--r--docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Wired.html4
-rw-r--r--docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Wireless.html4
-rw-r--r--docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Wpan.html4
-rw-r--r--docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.html4
-rw-r--r--docs/api/html/gdbus-org.freedesktop.NetworkManager.DnsManager.html4
-rw-r--r--docs/api/html/gdbus-org.freedesktop.NetworkManager.IP4Config.html4
-rw-r--r--docs/api/html/gdbus-org.freedesktop.NetworkManager.IP6Config.html4
-rw-r--r--docs/api/html/gdbus-org.freedesktop.NetworkManager.PPP.html4
-rw-r--r--docs/api/html/gdbus-org.freedesktop.NetworkManager.SecretAgent.html4
-rw-r--r--docs/api/html/gdbus-org.freedesktop.NetworkManager.Settings.Connection.html4
-rw-r--r--docs/api/html/gdbus-org.freedesktop.NetworkManager.Settings.html4
-rw-r--r--docs/api/html/gdbus-org.freedesktop.NetworkManager.VPN.Connection.html4
-rw-r--r--docs/api/html/gdbus-org.freedesktop.NetworkManager.VPN.Plugin.html4
-rw-r--r--docs/api/html/gdbus-org.freedesktop.NetworkManager.html4
-rw-r--r--docs/api/html/index.html6
-rw-r--r--docs/api/html/ix01.html1406
-rw-r--r--docs/api/html/license.html4
-rw-r--r--docs/api/html/manpages.html4
-rw-r--r--docs/api/html/nm-dbus-types.html4
-rw-r--r--docs/api/html/nm-initrd-generator.html4
-rw-r--r--docs/api/html/nm-online.html4
-rw-r--r--docs/api/html/nm-openvswitch.html12
-rw-r--r--docs/api/html/nm-settings-ifcfg-rh.html4
-rw-r--r--docs/api/html/nm-settings-keyfile.html4
-rw-r--r--docs/api/html/nm-settings.html14
-rw-r--r--docs/api/html/nm-vpn-dbus-types.html4
-rw-r--r--docs/api/html/nmcli-examples.html30
-rw-r--r--docs/api/html/nmcli.html4
-rw-r--r--docs/api/html/nmtui.html4
-rw-r--r--docs/api/html/ref-dbus-access-points.html4
-rw-r--r--docs/api/html/ref-dbus-active-connections.html4
-rw-r--r--docs/api/html/ref-dbus-agent-manager.html4
-rw-r--r--docs/api/html/ref-dbus-checkpoint.html4
-rw-r--r--docs/api/html/ref-dbus-devices.html4
-rw-r--r--docs/api/html/ref-dbus-dhcp4-configs.html4
-rw-r--r--docs/api/html/ref-dbus-dhcp6-configs.html4
-rw-r--r--docs/api/html/ref-dbus-dns-manager.html4
-rw-r--r--docs/api/html/ref-dbus-ip4-configs.html4
-rw-r--r--docs/api/html/ref-dbus-ip6-configs.html4
-rw-r--r--docs/api/html/ref-dbus-manager.html4
-rw-r--r--docs/api/html/ref-dbus-settings-manager.html4
-rw-r--r--docs/api/html/ref-dbus-settings.html4
-rw-r--r--docs/api/html/ref-settings.html4
-rw-r--r--docs/api/html/secret-agents.html4
-rw-r--r--docs/api/html/secrets-flags.html4
-rw-r--r--docs/api/html/settings-6lowpan.html4
-rw-r--r--docs/api/html/settings-802-11-olpc-mesh.html4
-rw-r--r--docs/api/html/settings-802-11-wireless-security.html4
-rw-r--r--docs/api/html/settings-802-11-wireless.html4
-rw-r--r--docs/api/html/settings-802-1x.html4
-rw-r--r--docs/api/html/settings-802-3-ethernet.html4
-rw-r--r--docs/api/html/settings-adsl.html4
-rw-r--r--docs/api/html/settings-bluetooth.html4
-rw-r--r--docs/api/html/settings-bond.html4
-rw-r--r--docs/api/html/settings-bridge-port.html4
-rw-r--r--docs/api/html/settings-bridge.html4
-rw-r--r--docs/api/html/settings-cdma.html4
-rw-r--r--docs/api/html/settings-connection.html6
-rw-r--r--docs/api/html/settings-dcb.html4
-rw-r--r--docs/api/html/settings-dummy.html4
-rw-r--r--docs/api/html/settings-ethtool.html4
-rw-r--r--docs/api/html/settings-generic.html4
-rw-r--r--docs/api/html/settings-gsm.html4
-rw-r--r--docs/api/html/settings-infiniband.html4
-rw-r--r--docs/api/html/settings-ip-tunnel.html4
-rw-r--r--docs/api/html/settings-ipv4.html6
-rw-r--r--docs/api/html/settings-ipv6.html6
-rw-r--r--docs/api/html/settings-macsec.html4
-rw-r--r--docs/api/html/settings-macvlan.html4
-rw-r--r--docs/api/html/settings-match.html4
-rw-r--r--docs/api/html/settings-ovs-bridge.html4
-rw-r--r--docs/api/html/settings-ovs-interface.html4
-rw-r--r--docs/api/html/settings-ovs-patch.html4
-rw-r--r--docs/api/html/settings-ovs-port.html4
-rw-r--r--docs/api/html/settings-ppp.html4
-rw-r--r--docs/api/html/settings-pppoe.html4
-rw-r--r--docs/api/html/settings-proxy.html4
-rw-r--r--docs/api/html/settings-serial.html4
-rw-r--r--docs/api/html/settings-sriov.html8
-rw-r--r--docs/api/html/settings-tc.html4
-rw-r--r--docs/api/html/settings-team-port.html4
-rw-r--r--docs/api/html/settings-team.html4
-rw-r--r--docs/api/html/settings-tun.html4
-rw-r--r--docs/api/html/settings-user.html4
-rw-r--r--docs/api/html/settings-vlan.html4
-rw-r--r--docs/api/html/settings-vpn.html4
-rw-r--r--docs/api/html/settings-vxlan.html4
-rw-r--r--docs/api/html/settings-wimax.html4
-rw-r--r--docs/api/html/settings-wpan.html4
-rw-r--r--docs/api/html/spec.html4
-rw-r--r--docs/api/html/vpn-plugins.html4
-rw-r--r--docs/api/network-manager-docs.xml9
-rw-r--r--docs/api/settings-spec.xml10
-rw-r--r--docs/api/version.xml2
-rw-r--r--docs/libnm-glib/html/NMAccessPoint.html28
-rw-r--r--docs/libnm-glib/html/NMActiveConnection.html32
-rw-r--r--docs/libnm-glib/html/NMClient.html30
-rw-r--r--docs/libnm-glib/html/NMDHCP4Config.html4
-rw-r--r--docs/libnm-glib/html/NMDHCP6Config.html4
-rw-r--r--docs/libnm-glib/html/NMDevice.html40
-rw-r--r--docs/libnm-glib/html/NMDeviceAdsl.html4
-rw-r--r--docs/libnm-glib/html/NMDeviceBond.html4
-rw-r--r--docs/libnm-glib/html/NMDeviceBridge.html4
-rw-r--r--docs/libnm-glib/html/NMDeviceBt.html12
-rw-r--r--docs/libnm-glib/html/NMDeviceEthernet.html4
-rw-r--r--docs/libnm-glib/html/NMDeviceGeneric.html4
-rw-r--r--docs/libnm-glib/html/NMDeviceInfiniband.html4
-rw-r--r--docs/libnm-glib/html/NMDeviceModem.html12
-rw-r--r--docs/libnm-glib/html/NMDeviceOlpcMesh.html4
-rw-r--r--docs/libnm-glib/html/NMDeviceTeam.html4
-rw-r--r--docs/libnm-glib/html/NMDeviceVlan.html4
-rw-r--r--docs/libnm-glib/html/NMDeviceWifi.html12
-rw-r--r--docs/libnm-glib/html/NMDeviceWimax.html4
-rw-r--r--docs/libnm-glib/html/NMIP4Config.html4
-rw-r--r--docs/libnm-glib/html/NMIP6Config.html8
-rw-r--r--docs/libnm-glib/html/NMObject.html4
-rw-r--r--docs/libnm-glib/html/NMRemoteConnection.html12
-rw-r--r--docs/libnm-glib/html/NMRemoteSettings.html36
-rw-r--r--docs/libnm-glib/html/NMSecretAgent.html32
-rw-r--r--docs/libnm-glib/html/NMVPNConnection.html8
-rw-r--r--docs/libnm-glib/html/NMWimaxNsp.html12
-rw-r--r--docs/libnm-glib/html/annotation-glossary.html4
-rw-r--r--docs/libnm-glib/html/api-index-full.html4
-rw-r--r--docs/libnm-glib/html/ch02.html4
-rw-r--r--docs/libnm-glib/html/index.html6
-rw-r--r--docs/libnm-glib/html/libnm-glib-NMVPNPlugin.html12
-rw-r--r--docs/libnm-glib/html/libnm-glib-NMVpnPluginUiWidget.html20
-rw-r--r--docs/libnm-glib/html/libnm-glib-nm-types.html4
-rw-r--r--docs/libnm-glib/html/libnm-glib-nm-vpn-plugin-utils.html8
-rw-r--r--docs/libnm-glib/html/object-tree.html6
-rw-r--r--docs/libnm-glib/html/ref-overview.html4
-rw-r--r--docs/libnm-glib/version.xml2
-rw-r--r--docs/libnm-util/html/NMConnection.html6
-rw-r--r--docs/libnm-util/html/NMSetting.html4
-rw-r--r--docs/libnm-util/html/NMSetting8021x.html4
-rw-r--r--docs/libnm-util/html/NMSettingAdsl.html4
-rw-r--r--docs/libnm-util/html/NMSettingBluetooth.html4
-rw-r--r--docs/libnm-util/html/NMSettingBond.html4
-rw-r--r--docs/libnm-util/html/NMSettingBridge.html4
-rw-r--r--docs/libnm-util/html/NMSettingBridgePort.html4
-rw-r--r--docs/libnm-util/html/NMSettingCdma.html4
-rw-r--r--docs/libnm-util/html/NMSettingConnection.html4
-rw-r--r--docs/libnm-util/html/NMSettingDcb.html4
-rw-r--r--docs/libnm-util/html/NMSettingGeneric.html4
-rw-r--r--docs/libnm-util/html/NMSettingGsm.html4
-rw-r--r--docs/libnm-util/html/NMSettingIP4Config.html4
-rw-r--r--docs/libnm-util/html/NMSettingIP6Config.html4
-rw-r--r--docs/libnm-util/html/NMSettingInfiniband.html4
-rw-r--r--docs/libnm-util/html/NMSettingOlpcMesh.html4
-rw-r--r--docs/libnm-util/html/NMSettingPPP.html4
-rw-r--r--docs/libnm-util/html/NMSettingPPPOE.html4
-rw-r--r--docs/libnm-util/html/NMSettingSerial.html4
-rw-r--r--docs/libnm-util/html/NMSettingTeam.html4
-rw-r--r--docs/libnm-util/html/NMSettingTeamPort.html4
-rw-r--r--docs/libnm-util/html/NMSettingVPN.html4
-rw-r--r--docs/libnm-util/html/NMSettingVlan.html4
-rw-r--r--docs/libnm-util/html/NMSettingWimax.html4
-rw-r--r--docs/libnm-util/html/NMSettingWired.html4
-rw-r--r--docs/libnm-util/html/NMSettingWireless.html4
-rw-r--r--docs/libnm-util/html/NMSettingWirelessSecurity.html4
-rw-r--r--docs/libnm-util/html/annotation-glossary.html4
-rw-r--r--docs/libnm-util/html/api-index-full.html4
-rw-r--r--docs/libnm-util/html/ch01.html4
-rw-r--r--docs/libnm-util/html/index.html6
-rw-r--r--docs/libnm-util/html/libnm-util-NetworkManager.html4
-rw-r--r--docs/libnm-util/html/libnm-util-NetworkManagerVPN.html4
-rw-r--r--docs/libnm-util/html/libnm-util-nm-utils.html4
-rw-r--r--docs/libnm-util/html/object-tree.html4
-rw-r--r--docs/libnm-util/version.xml2
-rw-r--r--docs/libnm/html/NMAccessPoint.html10
-rw-r--r--docs/libnm/html/NMActiveConnection.html4
-rw-r--r--docs/libnm/html/NMCheckpoint.html4
-rw-r--r--docs/libnm/html/NMClient.html4
-rw-r--r--docs/libnm/html/NMConnection.html6
-rw-r--r--docs/libnm/html/NMDevice.html10
-rw-r--r--docs/libnm/html/NMDeviceAdsl.html4
-rw-r--r--docs/libnm/html/NMDeviceBond.html4
-rw-r--r--docs/libnm/html/NMDeviceBridge.html4
-rw-r--r--docs/libnm/html/NMDeviceBt.html4
-rw-r--r--docs/libnm/html/NMDeviceDummy.html4
-rw-r--r--docs/libnm/html/NMDeviceEthernet.html4
-rw-r--r--docs/libnm/html/NMDeviceGeneric.html4
-rw-r--r--docs/libnm/html/NMDeviceIPTunnel.html4
-rw-r--r--docs/libnm/html/NMDeviceInfiniband.html4
-rw-r--r--docs/libnm/html/NMDeviceMacsec.html4
-rw-r--r--docs/libnm/html/NMDeviceMacvlan.html4
-rw-r--r--docs/libnm/html/NMDeviceModem.html4
-rw-r--r--docs/libnm/html/NMDeviceOlpcMesh.html4
-rw-r--r--docs/libnm/html/NMDeviceOvsBridge.html4
-rw-r--r--docs/libnm/html/NMDeviceOvsInterface.html4
-rw-r--r--docs/libnm/html/NMDeviceOvsPort.html4
-rw-r--r--docs/libnm/html/NMDevicePpp.html4
-rw-r--r--docs/libnm/html/NMDeviceTeam.html4
-rw-r--r--docs/libnm/html/NMDeviceTun.html4
-rw-r--r--docs/libnm/html/NMDeviceVlan.html4
-rw-r--r--docs/libnm/html/NMDeviceVxlan.html4
-rw-r--r--docs/libnm/html/NMDeviceWifi.html4
-rw-r--r--docs/libnm/html/NMDeviceWimax.html4
-rw-r--r--docs/libnm/html/NMDeviceWireGuard.html4
-rw-r--r--docs/libnm/html/NMDhcpConfig.html4
-rw-r--r--docs/libnm/html/NMIPConfig.html4
-rw-r--r--docs/libnm/html/NMObject.html4
-rw-r--r--docs/libnm/html/NMRemoteConnection.html4
-rw-r--r--docs/libnm/html/NMSecretAgentOld.html4
-rw-r--r--docs/libnm/html/NMSetting.html4
-rw-r--r--docs/libnm/html/NMSetting6Lowpan.html4
-rw-r--r--docs/libnm/html/NMSetting8021x.html4
-rw-r--r--docs/libnm/html/NMSettingAdsl.html4
-rw-r--r--docs/libnm/html/NMSettingBluetooth.html4
-rw-r--r--docs/libnm/html/NMSettingBond.html4
-rw-r--r--docs/libnm/html/NMSettingBridge.html4
-rw-r--r--docs/libnm/html/NMSettingBridgePort.html4
-rw-r--r--docs/libnm/html/NMSettingCdma.html4
-rw-r--r--docs/libnm/html/NMSettingConnection.html10
-rw-r--r--docs/libnm/html/NMSettingDcb.html4
-rw-r--r--docs/libnm/html/NMSettingDummy.html4
-rw-r--r--docs/libnm/html/NMSettingEthtool.html4
-rw-r--r--docs/libnm/html/NMSettingGeneric.html6
-rw-r--r--docs/libnm/html/NMSettingGsm.html4
-rw-r--r--docs/libnm/html/NMSettingIP4Config.html14
-rw-r--r--docs/libnm/html/NMSettingIP6Config.html7
-rw-r--r--docs/libnm/html/NMSettingIPConfig.html4
-rw-r--r--docs/libnm/html/NMSettingIPTunnel.html4
-rw-r--r--docs/libnm/html/NMSettingInfiniband.html4
-rw-r--r--docs/libnm/html/NMSettingMacsec.html4
-rw-r--r--docs/libnm/html/NMSettingMacvlan.html4
-rw-r--r--docs/libnm/html/NMSettingMatch.html4
-rw-r--r--docs/libnm/html/NMSettingOlpcMesh.html4
-rw-r--r--docs/libnm/html/NMSettingOvsBridge.html4
-rw-r--r--docs/libnm/html/NMSettingOvsInterface.html4
-rw-r--r--docs/libnm/html/NMSettingOvsPatch.html4
-rw-r--r--docs/libnm/html/NMSettingOvsPort.html4
-rw-r--r--docs/libnm/html/NMSettingPpp.html4
-rw-r--r--docs/libnm/html/NMSettingPppoe.html4
-rw-r--r--docs/libnm/html/NMSettingProxy.html4
-rw-r--r--docs/libnm/html/NMSettingSerial.html4
-rw-r--r--docs/libnm/html/NMSettingSriov.html4
-rw-r--r--docs/libnm/html/NMSettingTCConfig.html4
-rw-r--r--docs/libnm/html/NMSettingTeam.html4
-rw-r--r--docs/libnm/html/NMSettingTeamPort.html4
-rw-r--r--docs/libnm/html/NMSettingTun.html4
-rw-r--r--docs/libnm/html/NMSettingUser.html4
-rw-r--r--docs/libnm/html/NMSettingVlan.html4
-rw-r--r--docs/libnm/html/NMSettingVpn.html4
-rw-r--r--docs/libnm/html/NMSettingVxlan.html4
-rw-r--r--docs/libnm/html/NMSettingWimax.html4
-rw-r--r--docs/libnm/html/NMSettingWired.html4
-rw-r--r--docs/libnm/html/NMSettingWireless.html4
-rw-r--r--docs/libnm/html/NMSettingWirelessSecurity.html4
-rw-r--r--docs/libnm/html/NMSettingWpan.html4
-rw-r--r--docs/libnm/html/NMSimpleConnection.html4
-rw-r--r--docs/libnm/html/NMVpnConnection.html4
-rw-r--r--docs/libnm/html/NMVpnEditor.html6
-rw-r--r--docs/libnm/html/NMVpnEditorPlugin.html4
-rw-r--r--docs/libnm/html/NMWimaxNsp.html10
-rw-r--r--docs/libnm/html/annotation-glossary.html4
-rw-r--r--docs/libnm/html/api-index-full.html130
-rw-r--r--docs/libnm/html/ch02.html4
-rw-r--r--docs/libnm/html/ch03.html4
-rw-r--r--docs/libnm/html/ch04.html4
-rw-r--r--docs/libnm/html/ch05.html4
-rw-r--r--docs/libnm/html/ch06.html4
-rw-r--r--docs/libnm/html/index.html6
-rw-r--r--docs/libnm/html/libnm-nm-dbus-interface.html4
-rw-r--r--docs/libnm/html/libnm-nm-device-6lowpan.html4
-rw-r--r--docs/libnm/html/libnm-nm-device-wpan.html4
-rw-r--r--docs/libnm/html/libnm-nm-errors.html8
-rw-r--r--docs/libnm/html/libnm-nm-utils.html4
-rw-r--r--docs/libnm/html/libnm-nm-version.html4
-rw-r--r--docs/libnm/html/libnm-nm-vpn-plugin-info.html4
-rw-r--r--docs/libnm/html/libnm-nm-vpn-plugin-old.html4
-rw-r--r--docs/libnm/html/libnm-nm-vpn-service-plugin.html4
-rw-r--r--docs/libnm/html/object-tree.html4
-rw-r--r--docs/libnm/html/ref-overview.html4
-rw-r--r--docs/libnm/html/usage.html6
-rw-r--r--docs/libnm/libnm-docs.xml7
-rw-r--r--docs/libnm/version.xml2
-rw-r--r--docs/meson.build2
-rw-r--r--examples/nm-conf.d/31-mac-addr-change.conf7
-rw-r--r--libnm-core/nm-connection.c24
-rw-r--r--libnm-core/nm-connection.h2
-rw-r--r--libnm-core/nm-core-internal.h60
-rw-r--r--libnm-core/nm-crypto.c15
-rw-r--r--libnm-core/nm-keyfile.c2
-rw-r--r--libnm-core/nm-setting-bridge-port.c11
-rw-r--r--libnm-core/nm-setting-connection.c4
-rw-r--r--libnm-core/nm-setting-ip4-config.c11
-rw-r--r--libnm-core/nm-setting-ip6-config.c3
-rw-r--r--libnm-core/nm-setting-macsec.c30
-rw-r--r--libnm-core/nm-setting-sriov.c12
-rw-r--r--libnm-core/nm-setting.c14
-rw-r--r--libnm-core/nm-utils.c369
-rw-r--r--libnm-core/tests/test-general.c206
-rw-r--r--libnm/meson.build2
-rw-r--r--libnm/nm-access-point.c2
-rw-r--r--libnm/nm-device-tun.c1
-rw-r--r--libnm/nm-device.c2
-rw-r--r--libnm/nm-manager.c16
-rw-r--r--libnm/nm-property-docs.xml10
-rw-r--r--libnm/nm-remote-connection.c2
-rw-r--r--libnm/nm-settings-docs.xml10
-rw-r--r--libnm/nm-wimax-nsp.c2
-rw-r--r--man/NetworkManager.86
-rw-r--r--man/NetworkManager.conf.534
-rw-r--r--man/NetworkManager.conf.xml25
-rw-r--r--man/nm-initrd-generator.86
-rw-r--r--man/nm-online.16
-rw-r--r--man/nm-openvswitch.76
-rw-r--r--man/nm-settings-ifcfg-rh.56
-rw-r--r--man/nm-settings-ifcfg-rh.xml2
-rw-r--r--man/nm-settings-keyfile.56
-rw-r--r--man/nm-settings-keyfile.xml2
-rw-r--r--man/nm-settings.516
-rw-r--r--man/nm-settings.xml12
-rw-r--r--man/nmcli-examples.735
-rw-r--r--man/nmcli-examples.xml17
-rw-r--r--man/nmcli.16
-rw-r--r--man/nmtui.16
-rw-r--r--meson.build2
-rw-r--r--meson_options.txt1
-rw-r--r--shared/nm-utils/nm-hash-utils.c57
-rw-r--r--shared/nm-utils/nm-hash-utils.h62
-rw-r--r--shared/nm-utils/nm-jansson.h3
-rw-r--r--shared/nm-utils/nm-macros-internal.h13
-rw-r--r--shared/nm-utils/nm-shared-utils.c23
-rw-r--r--shared/nm-utils/nm-shared-utils.h42
-rw-r--r--shared/nm-utils/nm-test-utils.h36
-rw-r--r--shared/nm-utils/nm-udev-utils.c31
-rw-r--r--shared/nm-version-macros.h3
-rw-r--r--shared/nm-version-macros.h.in1
-rw-r--r--src/NetworkManagerUtils.c4
-rw-r--r--src/NetworkManagerUtils.h1
-rw-r--r--src/devices/bluetooth/nm-device-bt.c2
-rw-r--r--src/devices/nm-device-bridge.c101
-rw-r--r--src/devices/nm-device-ethernet.c5
-rw-r--r--src/devices/nm-device-infiniband.c1
-rw-r--r--src/devices/nm-device-ip-tunnel.c1
-rw-r--r--src/devices/nm-device-macvlan.c1
-rw-r--r--src/devices/nm-device-wpan.c1
-rw-r--r--src/devices/nm-device.c441
-rw-r--r--src/devices/nm-device.h2
-rw-r--r--src/devices/nm-lldp-listener.c4
-rw-r--r--src/devices/ovs/nm-ovsdb.c78
-rw-r--r--src/devices/tests/test-lldp.c5
-rw-r--r--src/devices/wifi/nm-device-olpc-mesh.c19
-rw-r--r--src/devices/wwan/nm-device-modem.c38
-rw-r--r--src/dhcp/nm-dhcp-client.c75
-rw-r--r--src/dhcp/nm-dhcp-client.h13
-rw-r--r--src/dhcp/nm-dhcp-dhclient-utils.c36
-rw-r--r--src/dhcp/nm-dhcp-dhclient-utils.h5
-rw-r--r--src/dhcp/nm-dhcp-dhclient.c98
-rw-r--r--src/dhcp/nm-dhcp-dhcpcanon.c19
-rw-r--r--src/dhcp/nm-dhcp-dhcpcd.c5
-rw-r--r--src/dhcp/nm-dhcp-manager.c90
-rw-r--r--src/dhcp/nm-dhcp-manager.h2
-rw-r--r--src/dhcp/nm-dhcp-systemd.c302
-rw-r--r--src/dhcp/nm-dhcp-utils.c4
-rw-r--r--src/dhcp/tests/test-dhcp-dhclient.c69
-rw-r--r--src/dns/nm-dns-dnsmasq.c13
-rw-r--r--src/dns/nm-dns-manager.c163
-rw-r--r--src/dns/nm-dns-manager.h6
-rw-r--r--src/dnsmasq/nm-dnsmasq-manager.c2
-rw-r--r--src/initrd/meson.build32
-rw-r--r--src/initrd/tests/meson.build23
-rw-r--r--src/ndisc/nm-ndisc.h1
-rw-r--r--src/nm-config-data.c6
-rw-r--r--src/nm-config-data.h9
-rw-r--r--src/nm-connectivity.h15
-rw-r--r--src/nm-core-utils.c984
-rw-r--r--src/nm-core-utils.h82
-rw-r--r--src/nm-dbus-manager.c26
-rw-r--r--src/nm-ip4-config.c24
-rw-r--r--src/nm-ip6-config.c24
-rw-r--r--src/nm-manager.c14
-rw-r--r--src/nm-policy.c11
-rw-r--r--src/nm-test-utils-core.h4
-rw-r--r--src/platform/nm-fake-platform.c1
-rw-r--r--src/platform/nm-linux-platform.c23
-rw-r--r--src/platform/nm-platform-utils.c1
-rw-r--r--src/platform/nm-platform.c49
-rw-r--r--src/platform/nm-platform.h21
-rw-r--r--src/platform/nmp-object.c1
-rw-r--r--src/platform/tests/test-common.c2
-rw-r--r--src/platform/tests/test-common.h3
-rw-r--r--src/platform/wifi/nm-wifi-utils-nl80211.c1
-rw-r--r--src/platform/wpan/nm-wpan-utils.c2
-rw-r--r--src/settings/nm-settings-connection.c22
-rwxr-xr-xsrc/settings/plugins/ibft/tests/iscsiadm-test-bad-dns121
-rwxr-xr-xsrc/settings/plugins/ibft/tests/iscsiadm-test-bad-dns221
-rwxr-xr-xsrc/settings/plugins/ibft/tests/iscsiadm-test-bad-entry20
-rwxr-xr-xsrc/settings/plugins/ibft/tests/iscsiadm-test-bad-gateway21
-rwxr-xr-xsrc/settings/plugins/ibft/tests/iscsiadm-test-bad-ipaddr21
-rwxr-xr-xsrc/settings/plugins/ibft/tests/iscsiadm-test-bad-record18
-rwxr-xr-xsrc/settings/plugins/ibft/tests/iscsiadm-test-dhcp33
-rwxr-xr-xsrc/settings/plugins/ibft/tests/iscsiadm-test-static35
-rwxr-xr-xsrc/settings/plugins/ibft/tests/iscsiadm-test-vlan19
-rw-r--r--src/settings/plugins/ifcfg-rh/nms-ifcfg-rh-reader.c31
-rw-r--r--src/settings/plugins/ifcfg-rh/nms-ifcfg-rh-writer.c9
-rw-r--r--src/settings/plugins/ifupdown/nms-ifupdown-plugin.c6
-rw-r--r--src/supplicant/nm-supplicant-config.c46
-rw-r--r--src/supplicant/nm-supplicant-interface.c36
-rw-r--r--src/supplicant/tests/test-supplicant-config.c4
-rw-r--r--src/systemd/meson.build3
-rw-r--r--src/systemd/nm-sd-utils.c61
-rw-r--r--src/systemd/nm-sd-utils.h38
-rw-r--r--src/systemd/src/basic/path-util.c2
-rw-r--r--src/systemd/src/libsystemd-network/dhcp-identifier.c8
-rw-r--r--src/systemd/src/libsystemd-network/dhcp-identifier.h2
-rw-r--r--src/systemd/src/libsystemd-network/dhcp6-option.c78
-rw-r--r--src/systemd/src/libsystemd-network/sd-dhcp-client.c31
-rw-r--r--src/systemd/src/libsystemd-network/sd-dhcp-lease.c2
-rw-r--r--src/systemd/src/libsystemd-network/sd-dhcp6-client.c25
-rw-r--r--src/tests/config/test-config.c19
-rw-r--r--src/tests/test-general.c253
-rw-r--r--src/tests/test-ip6-config.c1
-rw-r--r--src/tests/test-systemd.c46
-rw-r--r--src/vpn/nm-vpn-connection.c40
-rwxr-xr-xtools/check-docs.sh79
-rwxr-xr-xtools/check-settings-docs.sh19
-rwxr-xr-xtools/create-exports-NetworkManager.sh2
-rwxr-xr-xtools/meson-post-install.sh2
-rwxr-xr-xtools/test-networkmanager-service.py12
472 files changed, 5908 insertions, 3463 deletions
diff --git a/Makefile.am b/Makefile.am
index 1e100f60..e1b442e9 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -167,7 +167,9 @@ DISTCHECK_CONFIGURE_FLAGS = \
 	--with-wext=no \
 	--enable-ifcfg-rh \
 	--enable-ifupdown \
-	--disable-dependency-tracking
+	--enable-config-plugin-ibft \
+	--disable-dependency-tracking \
+	$(NULL)
 
 dist-configure-check:
 	@echo "*** 'make dist' requires '--enable-gtk-doc --enable-introspection --with-libnm-glib'. ***"
@@ -427,7 +429,7 @@ EXTRA_DIST += \
 	introspection/meson.build
 
 check-docs:
-	$(srcdir)/tools/check-docs.sh "$(srcdir)"
+	$(srcdir)/tools/check-docs.sh "$(srcdir)" "$(builddir)"
 
 check_local += check-docs
 
@@ -1390,6 +1392,8 @@ src_libsystemd_nm_la_libadd = \
 src_libsystemd_nm_la_SOURCES = \
 	src/systemd/nm-sd.c \
 	src/systemd/nm-sd.h \
+	src/systemd/nm-sd-utils.c \
+	src/systemd/nm-sd-utils.h \
 	src/systemd/sd-adapt/nm-sd-adapt.c \
 	src/systemd/sd-adapt/nm-sd-adapt.h \
 	src/systemd/sd-adapt/architecture.h \
@@ -1942,6 +1946,8 @@ src_initrd_tests_test_ibft_reader_LDADD = \
 	$(GLIB_LIBS)
 
 EXTRA_DIST += \
+	src/initrd/meson.build \
+	src/initrd/tests/meson.build \
 	src/initrd/tests/sysfs/class/net/eth0/address \
 	src/initrd/tests/sysfs/class/net/eth2/address \
 	src/initrd/tests/sysfs/firmware/ibft/ethernet0/prefix-len \
@@ -2392,6 +2398,13 @@ src_settings_plugins_ibft_tests_test_ibft_LDADD = \
 
 $(src_settings_plugins_ibft_tests_test_ibft_OBJECTS): $(libnm_core_lib_h_pub_mkenums)
 
+check-local-symbols-settings-ibft: src/settings/plugins/ibft/libnm-settings-plugin-ibft.la
+	$(call check_so_symbols,$(builddir)/src/settings/plugins/ibft/.libs/libnm-settings-plugin-ibft.so)
+
+check_local += check-local-symbols-settings-ibft
+
+endif
+
 EXTRA_DIST += \
 	src/settings/plugins/ibft/tests/iscsiadm-test-dhcp \
 	src/settings/plugins/ibft/tests/iscsiadm-test-static \
@@ -2401,16 +2414,7 @@ EXTRA_DIST += \
 	src/settings/plugins/ibft/tests/iscsiadm-test-bad-dns2 \
 	src/settings/plugins/ibft/tests/iscsiadm-test-bad-entry \
 	src/settings/plugins/ibft/tests/iscsiadm-test-bad-record \
-	src/settings/plugins/ibft/tests/iscsiadm-test-vlan
-
-check-local-symbols-settings-ibft: src/settings/plugins/ibft/libnm-settings-plugin-ibft.la
-	$(call check_so_symbols,$(builddir)/src/settings/plugins/ibft/.libs/libnm-settings-plugin-ibft.so)
-
-check_local += check-local-symbols-settings-ibft
-
-endif
-
-EXTRA_DIST += \
+	src/settings/plugins/ibft/tests/iscsiadm-test-vlan \
 	src/settings/plugins/ibft/meson.build \
 	src/settings/plugins/ibft/tests/meson.build
 
@@ -3697,16 +3701,7 @@ $(clients_common_settings_doc_h): clients/common/settings-docs.xsl libnm/nm-prop
 	$(AM_V_GEN) $(XSLTPROC) --output $@ $< $(word 2,$^)
 DISTCLEANFILES += $(clients_common_settings_doc_h)
 check-local-settings-docs: $(clients_common_settings_doc_h)
-	@if test -z "$$NMTST_NO_CHECK_SETTINGS_DOCS" ; then \
-		if ! cmp -s "$(srcdir)/$(clients_common_settings_doc_h).in" "$(builddir)/$(clients_common_settings_doc_h)" ; then \
-			if test "$$NM_TEST_REGENERATE" == 1 ; then \
-				cp -f "$(builddir)/$(clients_common_settings_doc_h)" "$(srcdir)/$(clients_common_settings_doc_h).in"; \
-			else \
-				echo "The generated file \"$(builddir)/$(clients_common_settings_doc_h)\" differs from the source file \"$(srcdir)/$(clients_common_settings_doc_h).in\". You probably should copy the generated file over to the source file. You can skip this test by setting \$$NMTST_NO_CHECK_SETTINGS_DOCS=yes". You can also automatically copy the file by rerunning the test with \$$NM_TEST_REGENERATE=1 ; \
-				false; \
-			fi; \
-		fi;\
-	fi
+	$(srcdir)/tools/check-settings-docs.sh "$(srcdir)" "$(builddir)" "$(clients_common_settings_doc_h)"
 check_local += check-local-settings-docs
 else
 $(clients_common_settings_doc_h): $(clients_common_settings_doc_h).in clients/common/.dirstamp
@@ -5048,6 +5043,7 @@ EXTRA_DIST += \
 	\
 	tools/check-docs.sh \
 	tools/check-exports.sh \
+	tools/check-settings-docs.sh \
 	tools/create-exports-NetworkManager.sh \
 	tools/debug-helper.py \
 	tools/meson-post-install.sh \
diff --git a/Makefile.in b/Makefile.in
index 5da627b4..d4b9349b 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -196,141 +196,130 @@ TESTS = $(am__EXEEXT_14)
 @CONFIG_PLUGIN_IBFT_TRUE@am__append_22 = src/settings/plugins/ibft/libnm-settings-plugin-ibft.la
 @CONFIG_PLUGIN_IBFT_TRUE@am__append_23 = src/settings/plugins/ibft/libnms-ibft-core.la
 @CONFIG_PLUGIN_IBFT_TRUE@am__append_24 = src/settings/plugins/ibft/tests/test-ibft
-@CONFIG_PLUGIN_IBFT_TRUE@am__append_25 = \
-@CONFIG_PLUGIN_IBFT_TRUE@	src/settings/plugins/ibft/tests/iscsiadm-test-dhcp \
-@CONFIG_PLUGIN_IBFT_TRUE@	src/settings/plugins/ibft/tests/iscsiadm-test-static \
-@CONFIG_PLUGIN_IBFT_TRUE@	src/settings/plugins/ibft/tests/iscsiadm-test-bad-ipaddr \
-@CONFIG_PLUGIN_IBFT_TRUE@	src/settings/plugins/ibft/tests/iscsiadm-test-bad-gateway \
-@CONFIG_PLUGIN_IBFT_TRUE@	src/settings/plugins/ibft/tests/iscsiadm-test-bad-dns1 \
-@CONFIG_PLUGIN_IBFT_TRUE@	src/settings/plugins/ibft/tests/iscsiadm-test-bad-dns2 \
-@CONFIG_PLUGIN_IBFT_TRUE@	src/settings/plugins/ibft/tests/iscsiadm-test-bad-entry \
-@CONFIG_PLUGIN_IBFT_TRUE@	src/settings/plugins/ibft/tests/iscsiadm-test-bad-record \
-@CONFIG_PLUGIN_IBFT_TRUE@	src/settings/plugins/ibft/tests/iscsiadm-test-vlan
-
-@CONFIG_PLUGIN_IBFT_TRUE@am__append_26 = check-local-symbols-settings-ibft
+@CONFIG_PLUGIN_IBFT_TRUE@am__append_25 = check-local-symbols-settings-ibft
 
 ###############################################################################
 # src/settings/plugins/ifcfg-rh
 ###############################################################################
-@CONFIG_PLUGIN_IFCFG_RH_TRUE@am__append_27 = src/settings/plugins/ifcfg-rh/libnm-settings-plugin-ifcfg-rh.la
-@CONFIG_PLUGIN_IFCFG_RH_TRUE@am__append_28 = \
+@CONFIG_PLUGIN_IFCFG_RH_TRUE@am__append_26 = src/settings/plugins/ifcfg-rh/libnm-settings-plugin-ifcfg-rh.la
+@CONFIG_PLUGIN_IFCFG_RH_TRUE@am__append_27 = \
 @CONFIG_PLUGIN_IFCFG_RH_TRUE@	src/settings/plugins/ifcfg-rh/libnmdbus-ifcfg-rh.la \
 @CONFIG_PLUGIN_IFCFG_RH_TRUE@	src/settings/plugins/ifcfg-rh/libnms-ifcfg-rh-core.la
 
-@CONFIG_PLUGIN_IFCFG_RH_TRUE@am__append_29 = $(nodist_src_settings_plugins_ifcfg_rh_libnmdbus_ifcfg_rh_la_SOURCES)
-@CONFIG_PLUGIN_IFCFG_RH_TRUE@am__append_30 = check-local-symbols-settings-ifcfg-rh
+@CONFIG_PLUGIN_IFCFG_RH_TRUE@am__append_28 = $(nodist_src_settings_plugins_ifcfg_rh_libnmdbus_ifcfg_rh_la_SOURCES)
+@CONFIG_PLUGIN_IFCFG_RH_TRUE@am__append_29 = check-local-symbols-settings-ifcfg-rh
 
 ###############################################################################
 # src/settings/plugins/ifcfg-rh/tests
 ###############################################################################
-@CONFIG_PLUGIN_IFCFG_RH_TRUE@am__append_31 = src/settings/plugins/ifcfg-rh/tests/test-ifcfg-rh
-@CONFIG_PLUGIN_IFCFG_RH_TRUE@am__append_32 = \
+@CONFIG_PLUGIN_IFCFG_RH_TRUE@am__append_30 = src/settings/plugins/ifcfg-rh/tests/test-ifcfg-rh
+@CONFIG_PLUGIN_IFCFG_RH_TRUE@am__append_31 = \
 @CONFIG_PLUGIN_IFCFG_RH_TRUE@	src/settings/plugins/ifcfg-rh/nm-ifup \
 @CONFIG_PLUGIN_IFCFG_RH_TRUE@	src/settings/plugins/ifcfg-rh/nm-ifdown
 
-@CONFIG_PLUGIN_IFCFG_RH_TRUE@am__append_33 = install-data-hook-ifcfg-rh
+@CONFIG_PLUGIN_IFCFG_RH_TRUE@am__append_32 = install-data-hook-ifcfg-rh
 
 ###############################################################################
-@CONFIG_PLUGIN_IFCFG_RH_TRUE@am__append_34 = src/settings/plugins/ifcfg-rh/nm-ifcfg-rh.conf
+@CONFIG_PLUGIN_IFCFG_RH_TRUE@am__append_33 = src/settings/plugins/ifcfg-rh/nm-ifcfg-rh.conf
 
 ###############################################################################
 # src/settings/plugins/ifupdown
 ###############################################################################
-@CONFIG_PLUGIN_IFUPDOWN_TRUE@am__append_35 = src/settings/plugins/ifupdown/libnm-settings-plugin-ifupdown.la
-@CONFIG_PLUGIN_IFUPDOWN_TRUE@am__append_36 = src/settings/plugins/ifupdown/libnms-ifupdown-core.la
-@CONFIG_PLUGIN_IFUPDOWN_TRUE@am__append_37 = check-local-symbols-settings-ifupdown
+@CONFIG_PLUGIN_IFUPDOWN_TRUE@am__append_34 = src/settings/plugins/ifupdown/libnm-settings-plugin-ifupdown.la
+@CONFIG_PLUGIN_IFUPDOWN_TRUE@am__append_35 = src/settings/plugins/ifupdown/libnms-ifupdown-core.la
+@CONFIG_PLUGIN_IFUPDOWN_TRUE@am__append_36 = check-local-symbols-settings-ifupdown
 
 ###############################################################################
-@CONFIG_PLUGIN_IFUPDOWN_TRUE@am__append_38 = src/settings/plugins/ifupdown/tests/test-ifupdown
+@CONFIG_PLUGIN_IFUPDOWN_TRUE@am__append_37 = src/settings/plugins/ifupdown/tests/test-ifupdown
 
 ###############################################################################
 # src/devices/bluetooth
 ###############################################################################
-@WITH_MODEM_MANAGER_1_TRUE@am__append_39 =  \
+@WITH_MODEM_MANAGER_1_TRUE@am__append_38 =  \
 @WITH_MODEM_MANAGER_1_TRUE@	src/devices/wwan/libnm-wwan.la \
 @WITH_MODEM_MANAGER_1_TRUE@	src/devices/wwan/libnm-device-plugin-wwan.la \
 @WITH_MODEM_MANAGER_1_TRUE@	src/devices/bluetooth/libnm-device-plugin-bluetooth.la
-@WITH_MODEM_MANAGER_1_TRUE@@WITH_OFONO_TRUE@am__append_40 = \
+@WITH_MODEM_MANAGER_1_TRUE@@WITH_OFONO_TRUE@am__append_39 = \
 @WITH_MODEM_MANAGER_1_TRUE@@WITH_OFONO_TRUE@	src/devices/wwan/nm-modem-ofono.c \
 @WITH_MODEM_MANAGER_1_TRUE@@WITH_OFONO_TRUE@	src/devices/wwan/nm-modem-ofono.h
 
-@WITH_MODEM_MANAGER_1_TRUE@am__append_41 = check-local-devices-wwan \
+@WITH_MODEM_MANAGER_1_TRUE@am__append_40 = check-local-devices-wwan \
 @WITH_MODEM_MANAGER_1_TRUE@	check-local-devices-bluetooth
-@WITH_BLUEZ5_DUN_TRUE@@WITH_MODEM_MANAGER_1_TRUE@am__append_42 = $(BLUEZ5_CFLAGS)
-@WITH_BLUEZ5_DUN_TRUE@@WITH_MODEM_MANAGER_1_TRUE@am__append_43 = \
+@WITH_BLUEZ5_DUN_TRUE@@WITH_MODEM_MANAGER_1_TRUE@am__append_41 = $(BLUEZ5_CFLAGS)
+@WITH_BLUEZ5_DUN_TRUE@@WITH_MODEM_MANAGER_1_TRUE@am__append_42 = \
 @WITH_BLUEZ5_DUN_TRUE@@WITH_MODEM_MANAGER_1_TRUE@	src/devices/bluetooth/nm-bluez5-dun.c \
 @WITH_BLUEZ5_DUN_TRUE@@WITH_MODEM_MANAGER_1_TRUE@	src/devices/bluetooth/nm-bluez5-dun.h
 
-@WITH_BLUEZ5_DUN_TRUE@@WITH_MODEM_MANAGER_1_TRUE@am__append_44 = $(BLUEZ5_LIBS)
+@WITH_BLUEZ5_DUN_TRUE@@WITH_MODEM_MANAGER_1_TRUE@am__append_43 = $(BLUEZ5_LIBS)
 
 ###############################################################################
 # src/devices/wifi
 ###############################################################################
-@WITH_WIFI_TRUE@am__append_45 = src/devices/wifi/libnm-device-plugin-wifi.la
-@WITH_IWD_TRUE@@WITH_WIFI_TRUE@am__append_46 = \
+@WITH_WIFI_TRUE@am__append_44 = src/devices/wifi/libnm-device-plugin-wifi.la
+@WITH_IWD_TRUE@@WITH_WIFI_TRUE@am__append_45 = \
 @WITH_IWD_TRUE@@WITH_WIFI_TRUE@	src/devices/wifi/nm-device-iwd.c \
 @WITH_IWD_TRUE@@WITH_WIFI_TRUE@	src/devices/wifi/nm-device-iwd.h \
 @WITH_IWD_TRUE@@WITH_WIFI_TRUE@	src/devices/wifi/nm-iwd-manager.c \
 @WITH_IWD_TRUE@@WITH_WIFI_TRUE@	src/devices/wifi/nm-iwd-manager.h
 
-@WITH_WIFI_TRUE@am__append_47 = check-local-devices-wifi
-@WITH_WIFI_TRUE@am__append_48 = src/devices/wifi/tests/test-general
+@WITH_WIFI_TRUE@am__append_46 = check-local-devices-wifi
+@WITH_WIFI_TRUE@am__append_47 = src/devices/wifi/tests/test-general
 
 ###############################################################################
 # src/devices/team
 ###############################################################################
-@WITH_TEAMDCTL_TRUE@am__append_49 = src/devices/team/libnm-device-plugin-team.la
-@WITH_TEAMDCTL_TRUE@am__append_50 = check-local-devices-team
-@WITH_OPENVSWITCH_TRUE@am__append_51 = src/devices/ovs/libnm-device-plugin-ovs.la
-@HAVE_INTROSPECTION_TRUE@am__append_52 = $(clients_common_settings_doc_h)
-@HAVE_INTROSPECTION_TRUE@am__append_53 = check-local-settings-docs
-@HAVE_INTROSPECTION_TRUE@am__append_54 = clients/common/libnmc.la
-@HAVE_INTROSPECTION_FALSE@am__append_55 = clients/common/libnmc.la
-@HAVE_INTROSPECTION_TRUE@am__append_56 = clients/common/tests/test-general
-@BUILD_NMCLI_TRUE@@HAVE_INTROSPECTION_FALSE@am__append_57 = clients/common/tests/test-general
+@WITH_TEAMDCTL_TRUE@am__append_48 = src/devices/team/libnm-device-plugin-team.la
+@WITH_TEAMDCTL_TRUE@am__append_49 = check-local-devices-team
+@WITH_OPENVSWITCH_TRUE@am__append_50 = src/devices/ovs/libnm-device-plugin-ovs.la
+@HAVE_INTROSPECTION_TRUE@am__append_51 = $(clients_common_settings_doc_h)
+@HAVE_INTROSPECTION_TRUE@am__append_52 = check-local-settings-docs
+@HAVE_INTROSPECTION_TRUE@am__append_53 = clients/common/libnmc.la
+@HAVE_INTROSPECTION_FALSE@am__append_54 = clients/common/libnmc.la
+@HAVE_INTROSPECTION_TRUE@am__append_55 = clients/common/tests/test-general
+@BUILD_NMCLI_TRUE@@HAVE_INTROSPECTION_FALSE@am__append_56 = clients/common/tests/test-general
 
 ###############################################################################
 # clients/cli
 ###############################################################################
-@BUILD_NMCLI_TRUE@am__append_58 = clients/cli/nmcli
-@BUILD_NMCLI_TRUE@@WITH_POLKIT_AGENT_TRUE@am__append_59 = $(POLKIT_CFLAGS)
-@BUILD_NMCLI_TRUE@@WITH_POLKIT_AGENT_TRUE@am__append_60 = \
+@BUILD_NMCLI_TRUE@am__append_57 = clients/cli/nmcli
+@BUILD_NMCLI_TRUE@@WITH_POLKIT_AGENT_TRUE@am__append_58 = $(POLKIT_CFLAGS)
+@BUILD_NMCLI_TRUE@@WITH_POLKIT_AGENT_TRUE@am__append_59 = \
 @BUILD_NMCLI_TRUE@@WITH_POLKIT_AGENT_TRUE@	clients/common/nm-polkit-listener.c \
 @BUILD_NMCLI_TRUE@@WITH_POLKIT_AGENT_TRUE@	clients/common/nm-polkit-listener.h
 
-@BUILD_NMCLI_TRUE@@WITH_POLKIT_AGENT_TRUE@am__append_61 = $(POLKIT_LIBS)
-@BUILD_NMCLI_TRUE@am__append_62 = install-data-hook-nmcli
-@BUILD_NMCLI_TRUE@am__append_63 = uninstall-hook-nmcli
+@BUILD_NMCLI_TRUE@@WITH_POLKIT_AGENT_TRUE@am__append_60 = $(POLKIT_LIBS)
+@BUILD_NMCLI_TRUE@am__append_61 = install-data-hook-nmcli
+@BUILD_NMCLI_TRUE@am__append_62 = uninstall-hook-nmcli
 
 ###############################################################################
 # clients/tui
 ###############################################################################
-@BUILD_NMTUI_TRUE@am__append_64 = clients/tui/newt/libnmt-newt.a
-@BUILD_NMTUI_TRUE@am__append_65 = clients/tui/nmtui
-@BUILD_NMTUI_TRUE@am__append_66 = install-exec-hook-nmtui
-@BUILD_NMTUI_TRUE@am__append_67 = uninstall-hook-nmtui
-@HAVE_SYSTEMD_TRUE@am__append_68 = data/org.freedesktop.NetworkManager.service
+@BUILD_NMTUI_TRUE@am__append_63 = clients/tui/newt/libnmt-newt.a
+@BUILD_NMTUI_TRUE@am__append_64 = clients/tui/nmtui
+@BUILD_NMTUI_TRUE@am__append_65 = install-exec-hook-nmtui
+@BUILD_NMTUI_TRUE@am__append_66 = uninstall-hook-nmtui
+@HAVE_SYSTEMD_TRUE@am__append_67 = data/org.freedesktop.NetworkManager.service
 
 ###############################################################################
 # libnm-util
 ###############################################################################
-@WITH_LEGACY_LIBRARIES_TRUE@am__append_69 = libnm-util/libnm-util.la \
+@WITH_LEGACY_LIBRARIES_TRUE@am__append_68 = libnm-util/libnm-util.la \
 @WITH_LEGACY_LIBRARIES_TRUE@	libnm-glib/libnm-glib.la \
 @WITH_LEGACY_LIBRARIES_TRUE@	libnm-glib/libnm-glib-vpn.la
-@WITH_LEGACY_LIBRARIES_TRUE@am__append_70 =  \
+@WITH_LEGACY_LIBRARIES_TRUE@am__append_69 =  \
 @WITH_LEGACY_LIBRARIES_TRUE@	$(libnm_util_lib_h_pub_mkenums) \
 @WITH_LEGACY_LIBRARIES_TRUE@	$(libnm_util_lib_c_mkenums) \
 @WITH_LEGACY_LIBRARIES_TRUE@	$(libnm_glib_lib_h_pub_mkenums) \
 @WITH_LEGACY_LIBRARIES_TRUE@	$(libnm_glib_lib_c_mkenums) \
 @WITH_LEGACY_LIBRARIES_TRUE@	$(libnm_glib_vpn_h_mkenums) \
 @WITH_LEGACY_LIBRARIES_TRUE@	$(libnm_glib_vpn_c_mkenums)
-@WITH_GNUTLS_TRUE@@WITH_LEGACY_LIBRARIES_TRUE@am__append_71 = $(GNUTLS_CFLAGS)
-@WITH_GNUTLS_TRUE@@WITH_LEGACY_LIBRARIES_TRUE@am__append_72 = libnm-util/crypto_gnutls.c
-@WITH_GNUTLS_TRUE@@WITH_LEGACY_LIBRARIES_TRUE@am__append_73 = $(GNUTLS_LIBS)
-@WITH_LEGACY_LIBRARIES_TRUE@@WITH_NSS_TRUE@am__append_74 = $(NSS_CFLAGS)
-@WITH_LEGACY_LIBRARIES_TRUE@@WITH_NSS_TRUE@am__append_75 = libnm-util/crypto_nss.c
-@WITH_LEGACY_LIBRARIES_TRUE@@WITH_NSS_TRUE@am__append_76 = $(NSS_LIBS)
-@WITH_LEGACY_LIBRARIES_TRUE@am__append_77 =  \
+@WITH_GNUTLS_TRUE@@WITH_LEGACY_LIBRARIES_TRUE@am__append_70 = $(GNUTLS_CFLAGS)
+@WITH_GNUTLS_TRUE@@WITH_LEGACY_LIBRARIES_TRUE@am__append_71 = libnm-util/crypto_gnutls.c
+@WITH_GNUTLS_TRUE@@WITH_LEGACY_LIBRARIES_TRUE@am__append_72 = $(GNUTLS_LIBS)
+@WITH_LEGACY_LIBRARIES_TRUE@@WITH_NSS_TRUE@am__append_73 = $(NSS_CFLAGS)
+@WITH_LEGACY_LIBRARIES_TRUE@@WITH_NSS_TRUE@am__append_74 = libnm-util/crypto_nss.c
+@WITH_LEGACY_LIBRARIES_TRUE@@WITH_NSS_TRUE@am__append_75 = $(NSS_LIBS)
+@WITH_LEGACY_LIBRARIES_TRUE@am__append_76 =  \
 @WITH_LEGACY_LIBRARIES_TRUE@	libnm-util/crypto_gnutls.c \
 @WITH_LEGACY_LIBRARIES_TRUE@	libnm-util/crypto_nss.c \
 @WITH_LEGACY_LIBRARIES_TRUE@	libnm-util/COPYING \
@@ -349,26 +338,26 @@ TESTS = $(am__EXEEXT_14)
 @WITH_LEGACY_LIBRARIES_TRUE@	libnm-glib/nm-glib-enum-types.c.template \
 @WITH_LEGACY_LIBRARIES_TRUE@	libnm-glib/nm-glib-enum-types.h.template \
 @WITH_LEGACY_LIBRARIES_TRUE@	libnm-glib/meson.build
-@WITH_LEGACY_LIBRARIES_TRUE@am__append_78 = libnm-util/libtest-crypto.la
-@WITH_GNUTLS_TRUE@@WITH_LEGACY_LIBRARIES_TRUE@am__append_79 = libnm-util/crypto_gnutls.c
-@WITH_GNUTLS_TRUE@@WITH_LEGACY_LIBRARIES_TRUE@am__append_80 = $(GNUTLS_LIBS)
-@WITH_LEGACY_LIBRARIES_TRUE@@WITH_NSS_TRUE@am__append_81 = libnm-util/crypto_nss.c
-@WITH_LEGACY_LIBRARIES_TRUE@@WITH_NSS_TRUE@am__append_82 = $(NSS_LIBS)
-@WITH_LEGACY_LIBRARIES_TRUE@am__append_83 = libnm-util/libnm-util.pc \
+@WITH_LEGACY_LIBRARIES_TRUE@am__append_77 = libnm-util/libtest-crypto.la
+@WITH_GNUTLS_TRUE@@WITH_LEGACY_LIBRARIES_TRUE@am__append_78 = libnm-util/crypto_gnutls.c
+@WITH_GNUTLS_TRUE@@WITH_LEGACY_LIBRARIES_TRUE@am__append_79 = $(GNUTLS_LIBS)
+@WITH_LEGACY_LIBRARIES_TRUE@@WITH_NSS_TRUE@am__append_80 = libnm-util/crypto_nss.c
+@WITH_LEGACY_LIBRARIES_TRUE@@WITH_NSS_TRUE@am__append_81 = $(NSS_LIBS)
+@WITH_LEGACY_LIBRARIES_TRUE@am__append_82 = libnm-util/libnm-util.pc \
 @WITH_LEGACY_LIBRARIES_TRUE@	libnm-glib/libnm-glib.pc \
 @WITH_LEGACY_LIBRARIES_TRUE@	libnm-glib/libnm-glib-vpn.pc
-@WITH_LEGACY_LIBRARIES_TRUE@am__append_84 = libnm-util/libnm-util.pc \
+@WITH_LEGACY_LIBRARIES_TRUE@am__append_83 = libnm-util/libnm-util.pc \
 @WITH_LEGACY_LIBRARIES_TRUE@	libnm-glib/libnm-glib.pc \
 @WITH_LEGACY_LIBRARIES_TRUE@	libnm-glib/libnm-glib.pc
-@HAVE_INTROSPECTION_TRUE@@WITH_LEGACY_LIBRARIES_TRUE@am__append_85 = libnm-util/NetworkManager-1.0.gir \
+@HAVE_INTROSPECTION_TRUE@@WITH_LEGACY_LIBRARIES_TRUE@am__append_84 = libnm-util/NetworkManager-1.0.gir \
 @HAVE_INTROSPECTION_TRUE@@WITH_LEGACY_LIBRARIES_TRUE@	libnm-glib/NMClient-1.0.gir
-@WITH_LEGACY_LIBRARIES_TRUE@am__append_86 =  \
+@WITH_LEGACY_LIBRARIES_TRUE@am__append_85 =  \
 @WITH_LEGACY_LIBRARIES_TRUE@	check-local-exports-libnm-util \
 @WITH_LEGACY_LIBRARIES_TRUE@	check-local-exports-libnm-glib
-@WITH_LEGACY_LIBRARIES_TRUE@am__append_87 = libnm-util/libnm-util.la \
+@WITH_LEGACY_LIBRARIES_TRUE@am__append_86 = libnm-util/libnm-util.la \
 @WITH_LEGACY_LIBRARIES_TRUE@	libnm-glib/libnm-glib.la \
 @WITH_LEGACY_LIBRARIES_TRUE@	libnm-glib/libnm-glib-vpn.la
-@WITH_LEGACY_LIBRARIES_TRUE@am__append_88 = \
+@WITH_LEGACY_LIBRARIES_TRUE@am__append_87 = \
 @WITH_LEGACY_LIBRARIES_TRUE@	libnm-util/tests/test-settings-defaults \
 @WITH_LEGACY_LIBRARIES_TRUE@	libnm-util/tests/test-crypto \
 @WITH_LEGACY_LIBRARIES_TRUE@	libnm-util/tests/test-secrets \
@@ -376,57 +365,57 @@ TESTS = $(am__EXEEXT_14)
 @WITH_LEGACY_LIBRARIES_TRUE@	libnm-util/tests/test-setting-8021x \
 @WITH_LEGACY_LIBRARIES_TRUE@	libnm-util/tests/test-setting-dcb
 
-@WITH_LEGACY_LIBRARIES_TRUE@am__append_89 = libnm-util/tests/test-libnm-linking \
+@WITH_LEGACY_LIBRARIES_TRUE@am__append_88 = libnm-util/tests/test-libnm-linking \
 @WITH_LEGACY_LIBRARIES_TRUE@	libnm-glib/libnm-glib-test \
 @WITH_LEGACY_LIBRARIES_TRUE@	libnm-glib/tests/test-nm-client
-@WITH_LEGACY_LIBRARIES_TRUE@am__append_90 = libnm-glib/libdeprecated-nm-glib.la
-@WITH_LEGACY_LIBRARIES_TRUE@am__append_91 = \
+@WITH_LEGACY_LIBRARIES_TRUE@am__append_89 = libnm-glib/libdeprecated-nm-glib.la
+@WITH_LEGACY_LIBRARIES_TRUE@am__append_90 = \
 @WITH_LEGACY_LIBRARIES_TRUE@	libnm-glib/nm-vpn-plugin-glue.h \
 @WITH_LEGACY_LIBRARIES_TRUE@	libnm-glib/nm-secret-agent-glue.h
 
-@HAVE_INTROSPECTION_TRUE@@WITH_LEGACY_LIBRARIES_TRUE@am__append_92 = check-local-libnm-glib-nm-client
-@HAVE_INTROSPECTION_TRUE@@WITH_LEGACY_LIBRARIES_TRUE@am__append_93 = libnm-glib/tests/test-remote-settings-client
-@HAVE_INTROSPECTION_FALSE@@WITH_LEGACY_LIBRARIES_TRUE@am__append_94 = libnm-glib/tests/test-remote-settings-client
-@HAVE_INTROSPECTION_TRUE@am__append_95 = $(man_nm_settings_xml)
-@WITH_OPENVSWITCH_TRUE@am__append_96 = man/nm-openvswitch.7
+@HAVE_INTROSPECTION_TRUE@@WITH_LEGACY_LIBRARIES_TRUE@am__append_91 = check-local-libnm-glib-nm-client
+@HAVE_INTROSPECTION_TRUE@@WITH_LEGACY_LIBRARIES_TRUE@am__append_92 = libnm-glib/tests/test-remote-settings-client
+@HAVE_INTROSPECTION_FALSE@@WITH_LEGACY_LIBRARIES_TRUE@am__append_93 = libnm-glib/tests/test-remote-settings-client
+@HAVE_INTROSPECTION_TRUE@am__append_94 = $(man_nm_settings_xml)
+@WITH_OPENVSWITCH_TRUE@am__append_95 = man/nm-openvswitch.7
+@WITH_OPENVSWITCH_FALSE@am__append_96 = man/nm-openvswitch.7
 @WITH_OPENVSWITCH_FALSE@am__append_97 = man/nm-openvswitch.7
-@WITH_OPENVSWITCH_FALSE@am__append_98 = man/nm-openvswitch.7
-@CONFIG_PLUGIN_IFCFG_RH_TRUE@am__append_99 = man/nm-settings-ifcfg-rh.5
+@CONFIG_PLUGIN_IFCFG_RH_TRUE@am__append_98 = man/nm-settings-ifcfg-rh.5
+@CONFIG_PLUGIN_IFCFG_RH_FALSE@am__append_99 = man/nm-settings-ifcfg-rh.5
 @CONFIG_PLUGIN_IFCFG_RH_FALSE@am__append_100 = man/nm-settings-ifcfg-rh.5
-@CONFIG_PLUGIN_IFCFG_RH_FALSE@am__append_101 = man/nm-settings-ifcfg-rh.5
-@HAVE_DOCS_TRUE@am__append_102 = install-data-hook-man
-@HAVE_DOCS_TRUE@am__append_103 = uninstall-hook-man
-@HAVE_DOCS_TRUE@am__append_104 = $(man_pages) $(man_pages_autogen)
-@BUILD_DOCS_TRUE@am__append_105 = $(man_pages) $(man_pages_autogen)
+@HAVE_DOCS_TRUE@am__append_101 = install-data-hook-man
+@HAVE_DOCS_TRUE@am__append_102 = uninstall-hook-man
+@HAVE_DOCS_TRUE@am__append_103 = $(man_pages) $(man_pages_autogen)
+@BUILD_DOCS_TRUE@am__append_104 = $(man_pages) $(man_pages_autogen)
 
 ###############################################################################
 # vapi
 ###############################################################################
-@ENABLE_VAPIGEN_TRUE@am__append_106 = \
+@ENABLE_VAPIGEN_TRUE@am__append_105 = \
 @ENABLE_VAPIGEN_TRUE@	vapi/libnm.vapi
 
-@ENABLE_VAPIGEN_TRUE@@WITH_LEGACY_LIBRARIES_TRUE@am__append_107 = \
+@ENABLE_VAPIGEN_TRUE@@WITH_LEGACY_LIBRARIES_TRUE@am__append_106 = \
 @ENABLE_VAPIGEN_TRUE@@WITH_LEGACY_LIBRARIES_TRUE@	vapi/libnm-util.vapi \
 @ENABLE_VAPIGEN_TRUE@@WITH_LEGACY_LIBRARIES_TRUE@	vapi/libnm-glib.vapi
 
-@ENABLE_VAPIGEN_TRUE@am__append_108 = \
+@ENABLE_VAPIGEN_TRUE@am__append_107 = \
 @ENABLE_VAPIGEN_TRUE@	$(VAPIGEN_VAPIS) \
 @ENABLE_VAPIGEN_TRUE@	$(VAPIGEN_VAPIS:.vapi=.deps)
 
-@ENABLE_VAPIGEN_TRUE@am__append_109 = $(VAPIGEN_VAPIS)
+@ENABLE_VAPIGEN_TRUE@am__append_108 = $(VAPIGEN_VAPIS)
 
 ###############################################################################
-@ENABLE_TESTS_TRUE@am__append_110 = $(check_programs) $(check_programs_norun)
-@ENABLE_TESTS_TRUE@am__append_111 = $(check_ltlibraries)
-@ENABLE_TESTS_FALSE@am__append_112 = $(check_programs) $(check_programs_norun)
-@ENABLE_TESTS_FALSE@am__append_113 = $(check_ltlibraries)
-@WITH_QT_TRUE@am__append_114 = \
+@ENABLE_TESTS_TRUE@am__append_109 = $(check_programs) $(check_programs_norun)
+@ENABLE_TESTS_TRUE@am__append_110 = $(check_ltlibraries)
+@ENABLE_TESTS_FALSE@am__append_111 = $(check_programs) $(check_programs_norun)
+@ENABLE_TESTS_FALSE@am__append_112 = $(check_ltlibraries)
+@WITH_QT_TRUE@am__append_113 = \
 @WITH_QT_TRUE@	examples/C/qt/add-connection-wired \
 @WITH_QT_TRUE@	examples/C/qt/list-connections \
 @WITH_QT_TRUE@	examples/C/qt/change-ipv4-addresses \
 @WITH_QT_TRUE@	examples/C/qt/monitor-nm-running
 
-@WITH_QT_TRUE@am__append_115 = \
+@WITH_QT_TRUE@am__append_114 = \
 @WITH_QT_TRUE@	examples/C/qt/monitor-nm-running.moc
 
 subdir = .
@@ -1647,6 +1636,7 @@ am__DEPENDENCIES_6 = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
 src_libsystemd_nm_la_DEPENDENCIES = $(am__DEPENDENCIES_6)
 am_src_libsystemd_nm_la_OBJECTS =  \
 	src/systemd/libsystemd_nm_la-nm-sd.lo \
+	src/systemd/libsystemd_nm_la-nm-sd-utils.lo \
 	src/systemd/sd-adapt/libsystemd_nm_la-nm-sd-adapt.lo \
 	src/systemd/src/basic/libsystemd_nm_la-alloc-util.lo \
 	src/systemd/src/basic/libsystemd_nm_la-env-util.lo \
@@ -3229,6 +3219,7 @@ am__depfiles_remade = clients/$(DEPDIR)/nm_online-nm-online.Po \
 	src/supplicant/$(DEPDIR)/libNetworkManager_la-nm-supplicant-manager.Plo \
 	src/supplicant/$(DEPDIR)/libNetworkManager_la-nm-supplicant-settings-verify.Plo \
 	src/supplicant/tests/$(DEPDIR)/test_supplicant_config-test-supplicant-config.Po \
+	src/systemd/$(DEPDIR)/libsystemd_nm_la-nm-sd-utils.Plo \
 	src/systemd/$(DEPDIR)/libsystemd_nm_la-nm-sd.Plo \
 	src/systemd/sd-adapt/$(DEPDIR)/libsystemd_nm_la-nm-sd-adapt.Plo \
 	src/systemd/src/basic/$(DEPDIR)/libsystemd_nm_la-alloc-util.Plo \
@@ -4206,43 +4197,43 @@ noinst_LTLIBRARIES = introspection/libnmdbus.la \
 	libnm/libnm-utils.la src/libNetworkManagerBase.la \
 	src/libNetworkManager.la src/libsystemd-nm.la \
 	shared/libcsiphash.la shared/libnacd.la \
-	src/initrd/libnmi-core.la $(am__append_23) $(am__append_28) \
-	$(am__append_36) dispatcher/libnm-dispatcher-core.la \
-	$(am__append_90) $(am__append_111)
-check_LTLIBRARIES = $(am__append_113)
-noinst_LIBRARIES = $(am__append_64)
+	src/initrd/libnmi-core.la $(am__append_23) $(am__append_27) \
+	$(am__append_35) dispatcher/libnm-dispatcher-core.la \
+	$(am__append_89) $(am__append_110)
+check_LTLIBRARIES = $(am__append_112)
+noinst_LIBRARIES = $(am__append_63)
 noinst_DATA = $(am__append_14)
-dist_libexec_SCRIPTS = $(am__append_32)
+dist_libexec_SCRIPTS = $(am__append_31)
 
 ###############################################################################
-lib_LTLIBRARIES = libnm/libnm.la $(am__append_69)
+lib_LTLIBRARIES = libnm/libnm.la $(am__append_68)
 plugin_LTLIBRARIES = $(core_plugins)
 
 ###############################################################################
 # src/devices/adsl
 ###############################################################################
-core_plugins = $(am__append_20) $(am__append_22) $(am__append_27) \
-	$(am__append_35) src/devices/adsl/libnm-device-plugin-adsl.la \
-	$(am__append_39) $(am__append_45) $(am__append_49) \
-	$(am__append_51)
-service_DATA = $(am__append_68)
-man_MANS = $(am__append_104)
+core_plugins = $(am__append_20) $(am__append_22) $(am__append_26) \
+	$(am__append_34) src/devices/adsl/libnm-device-plugin-adsl.la \
+	$(am__append_38) $(am__append_44) $(am__append_48) \
+	$(am__append_50)
+service_DATA = $(am__append_67)
+man_MANS = $(am__append_103)
 examples_DATA = data/server.conf
 CLEANFILES = $(introspection_sources) $(DBUS_INTERFACE_DOCS) \
-	$(am__append_13) src/NetworkManager.ver $(am__append_29) \
+	$(am__append_13) src/NetworkManager.ver $(am__append_28) \
 	$(dispatcher_nmdbus_dispatcher_sources) \
 	dispatcher/org.freedesktop.nm_dispatcher.service \
 	clients/tests/test-client.log data/NetworkManager.service \
 	data/NetworkManager-wait-online.service \
 	data/NetworkManager-dispatcher.service \
 	data/org.freedesktop.NetworkManager.service data/server.conf \
-	$(am__append_91) $(am__append_95) man/common.ent \
-	$(am__append_105) $(am__append_109) $(GLIB_GENERATED) \
+	$(am__append_90) $(am__append_94) man/common.ent \
+	$(am__append_104) $(am__append_108) $(GLIB_GENERATED) \
 	$(INTROSPECTION_GIRS) $(typelib_DATA) cscope.in.out cscope.out \
-	cscope.po.out $(NULL) $(am__append_115)
+	cscope.po.out $(NULL) $(am__append_114)
 DISTCLEANFILES = config-extra.h intltool-extract intltool-merge \
 	intltool-update $(polkit_policy_DATA) libnm/libnm.pc \
-	$(am__append_52) $(am__append_84)
+	$(am__append_51) $(am__append_83)
 
 # test-cert.p12 created with:
 #
@@ -4296,7 +4287,8 @@ EXTRA_DIST = $(dbusinterfaces_DATA) introspection/meson.build \
 	libnm/nm-enum-types.c.template libnm/nm-enum-types.h.template \
 	libnm/meson.build libnm/tests/meson.build \
 	shared/c-list/src/c-list.h src/systemd/meson.build \
-	src/platform/linux/nl802154.h \
+	src/platform/linux/nl802154.h src/initrd/meson.build \
+	src/initrd/tests/meson.build \
 	src/initrd/tests/sysfs/class/net/eth0/address \
 	src/initrd/tests/sysfs/class/net/eth2/address \
 	src/initrd/tests/sysfs/firmware/ibft/ethernet0/prefix-len \
@@ -4532,7 +4524,16 @@ EXTRA_DIST = $(dbusinterfaces_DATA) introspection/meson.build \
 	src/settings/plugins/keyfile/tests/keyfiles/test-ca-cert.pem \
 	src/settings/plugins/keyfile/tests/keyfiles/test-key-and-cert.pem \
 	src/settings/plugins/keyfile/tests/meson.build \
-	$(am__append_25) src/settings/plugins/ibft/meson.build \
+	src/settings/plugins/ibft/tests/iscsiadm-test-dhcp \
+	src/settings/plugins/ibft/tests/iscsiadm-test-static \
+	src/settings/plugins/ibft/tests/iscsiadm-test-bad-ipaddr \
+	src/settings/plugins/ibft/tests/iscsiadm-test-bad-gateway \
+	src/settings/plugins/ibft/tests/iscsiadm-test-bad-dns1 \
+	src/settings/plugins/ibft/tests/iscsiadm-test-bad-dns2 \
+	src/settings/plugins/ibft/tests/iscsiadm-test-bad-entry \
+	src/settings/plugins/ibft/tests/iscsiadm-test-bad-record \
+	src/settings/plugins/ibft/tests/iscsiadm-test-vlan \
+	src/settings/plugins/ibft/meson.build \
 	src/settings/plugins/ibft/tests/meson.build \
 	src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-System_test-bridge-component-a.cexpected \
 	src/settings/plugins/ifcfg-rh/tests/network-scripts/ifcfg-System_test-bridge-component-b.cexpected \
@@ -4804,8 +4805,8 @@ EXTRA_DIST = $(dbusinterfaces_DATA) introspection/meson.build \
 	data/org.freedesktop.NetworkManager.service.in \
 	data/84-nm-drivers.rules data/85-nm-unmanaged.rules \
 	data/90-nm-thunderbolt.rules data/server.conf.in \
-	data/meson.build $(am__append_77) libnm-glib/tests/meson.build \
-	$(am__append_97) $(am__append_100) man/common.ent.in \
+	data/meson.build $(am__append_76) libnm-glib/tests/meson.build \
+	$(am__append_96) $(am__append_99) man/common.ent.in \
 	$(man_nm_settings_xml) $(addsuffix .xsl,$(basename \
 	$(man_nm_settings_xml))) $(man_pages) $(addsuffix \
 	.xml,$(basename $(man_pages))) $(man_pages_autogen) \
@@ -4838,6 +4839,7 @@ EXTRA_DIST = $(dbusinterfaces_DATA) introspection/meson.build \
 	shared/nm-utils/nm-vpn-plugin-utils.h \
 	shared/nm-utils/unaligned.h shared/nm-version-macros.h.in \
 	shared/meson.build tools/check-docs.sh tools/check-exports.sh \
+	tools/check-settings-docs.sh \
 	tools/create-exports-NetworkManager.sh tools/debug-helper.py \
 	tools/meson-post-install.sh tools/run-nm-test.sh \
 	tools/test-networkmanager-service.py \
@@ -4895,16 +4897,16 @@ EXTRA_DIST = $(dbusinterfaces_DATA) introspection/meson.build \
 	examples/shell/get-hostname.sh examples/shell/list-devices.sh \
 	examples/shell/disconnect-device.sh \
 	examples/shell/active-wifi.sh $(NULL)
-EXTRA_LTLIBRARIES = $(am__append_55)
+EXTRA_LTLIBRARIES = $(am__append_54)
 dist_hook = dist-hook-settings-ifcfg-rh-alias-files
 dist_dependencies = libnm-core/nm-vpn-dbus-types.xml \
-	libnm-core/nm-dbus-types.xml $(am__append_87) $(am__append_98) \
-	$(am__append_101) $(man_pages) $(man_pages_autogen)
+	libnm-core/nm-dbus-types.xml $(am__append_86) $(am__append_97) \
+	$(am__append_100) $(man_pages) $(man_pages_autogen)
 dist_configure_check = $(am__append_3) $(am__append_4)
-install_data_hook = $(am__append_33) install-data-hook-dispatcher \
-	$(am__append_62) $(am__append_102)
-install_exec_hook = $(am__append_66)
-uninstall_hook = $(am__append_63) $(am__append_67) $(am__append_103)
+install_data_hook = $(am__append_32) install-data-hook-dispatcher \
+	$(am__append_61) $(am__append_101)
+install_exec_hook = $(am__append_65)
+uninstall_hook = $(am__append_62) $(am__append_66) $(am__append_102)
 BUILT_SOURCES = libnm-core/nm-vpn-dbus-types.xml \
 	libnm-core/nm-dbus-types.xml $(gir_DATA) $(typelib_DATA)
 GLIB_GENERATED = $(libnm_core_lib_h_pub_mkenums) \
@@ -4912,12 +4914,12 @@ GLIB_GENERATED = $(libnm_core_lib_h_pub_mkenums) \
 	libnm-core/tests/nm-core-tests-enum-types.h \
 	libnm-core/tests/nm-core-tests-enum-types.c \
 	$(libnm_lib_h_pub_mkenums) $(libnm_lib_c_mkenums) \
-	$(am__append_70)
+	$(am__append_69)
 man_pages = man/NetworkManager.8 man/NetworkManager.conf.5 \
 	man/nm-online.1 man/nm-initrd-generator.8 man/nmcli-examples.7 \
-	man/nmcli.1 man/nmtui.1 $(am__append_96)
+	man/nmcli.1 man/nmtui.1 $(am__append_95)
 man_pages_autogen = man/nm-settings-keyfile.5 man/nm-settings.5 \
-	$(am__append_99)
+	$(am__append_98)
 
 ###############################################################################
 
@@ -4951,8 +4953,8 @@ check_programs = libnm-core/tests/test-compare \
 	src/dhcp/tests/test-dhcp-dhclient \
 	src/dhcp/tests/test-dhcp-utils \
 	src/settings/plugins/keyfile/tests/test-keyfile \
-	$(am__append_24) $(am__append_31) $(am__append_38) \
-	$(am__append_48) src/dnsmasq/tests/test-dnsmasq-utils \
+	$(am__append_24) $(am__append_30) $(am__append_37) \
+	$(am__append_47) src/dnsmasq/tests/test-dnsmasq-utils \
 	src/platform/tests/test-link-fake \
 	src/platform/tests/test-link-linux \
 	src/platform/tests/test-address-fake \
@@ -4971,18 +4973,18 @@ check_programs = libnm-core/tests/test-compare \
 	src/tests/test-ip6-config src/tests/test-dcb \
 	src/tests/test-systemd src/tests/test-wired-defname \
 	src/tests/test-utils dispatcher/tests/test-dispatcher-envp \
-	$(am__append_56) $(am__append_57) $(am__append_88) \
-	$(am__append_93)
+	$(am__append_55) $(am__append_56) $(am__append_87) \
+	$(am__append_92)
 check_programs_norun = $(am__append_17) src/platform/tests/monitor \
-	src/ndisc/tests/test-ndisc-linux $(am__append_89) \
-	$(am__append_94) examples/C/glib/add-connection-gdbus \
+	src/ndisc/tests/test-ndisc-linux $(am__append_88) \
+	$(am__append_93) examples/C/glib/add-connection-gdbus \
 	examples/C/glib/add-connection-libnm \
 	examples/C/glib/get-active-connections-gdbus \
 	examples/C/glib/get-ap-info-libnm \
 	examples/C/glib/list-connections-gdbus \
 	examples/C/glib/list-connections-libnm \
 	examples/C/glib/monitor-nm-running-gdbus \
-	examples/C/glib/monitor-nm-state-gdbus $(am__append_114)
+	examples/C/glib/monitor-nm-state-gdbus $(am__append_113)
 
 ###############################################################################
 
@@ -4992,18 +4994,18 @@ check_programs_norun = $(am__append_17) src/platform/tests/monitor \
 check_ltlibraries = $(am__append_9) $(am__append_10) \
 	libnm/tests/libnm-vpn-plugin-utils-test.la \
 	src/libNetworkManagerTest.la clients/common/libnmc-base.la \
-	$(am__append_54) $(am__append_78)
-check_local = check-docs check-local-exports-libnm $(am__append_26) \
-	$(am__append_30) $(am__append_37) check-local-devices-adsl \
-	$(am__append_41) $(am__append_47) $(am__append_50) \
-	$(am__append_53) check-local-clients-tests-test-client \
-	$(am__append_86) $(am__append_92)
-VAPIGEN_VAPIS = $(am__append_106) $(am__append_107)
-dbusservice_DATA = $(am__append_34) dispatcher/nm-dispatcher.conf \
+	$(am__append_53) $(am__append_77)
+check_local = check-docs check-local-exports-libnm $(am__append_25) \
+	$(am__append_29) $(am__append_36) check-local-devices-adsl \
+	$(am__append_40) $(am__append_46) $(am__append_49) \
+	$(am__append_52) check-local-clients-tests-test-client \
+	$(am__append_85) $(am__append_91)
+VAPIGEN_VAPIS = $(am__append_105) $(am__append_106)
+dbusservice_DATA = $(am__append_33) dispatcher/nm-dispatcher.conf \
 	src/org.freedesktop.NetworkManager.conf
 dbusactivation_DATA =  \
 	dispatcher/org.freedesktop.nm_dispatcher.service
-INTROSPECTION_GIRS = $(am__append_12) $(am__append_85)
+INTROSPECTION_GIRS = $(am__append_12) $(am__append_84)
 INTROSPECTION_SCANNER_ARGS = 
 INTROSPECTION_COMPILER_ARGS = 
 # Pass SANITIZER_ENV where a command that uses built libraries is
@@ -5015,11 +5017,11 @@ libnminclude_HEADERS = $(libnm_core_lib_h_pub_real) \
 nodist_libnminclude_HEADERS = $(libnm_core_lib_h_pub_mkenums) \
 	$(libnm_lib_h_pub_mkenums)
 pkgconfigdir = $(libdir)/pkgconfig
-pkgconfig_DATA = $(am__append_5) libnm/libnm.pc $(am__append_83)
+pkgconfig_DATA = $(am__append_5) libnm/libnm.pc $(am__append_82)
 pppd_plugindir = $(PPPD_PLUGIN_DIR)
 pppd_plugin_LTLIBRARIES = $(am__append_21)
 vapidir = $(datadir)/vala/vapi
-vapi_DATA = $(am__append_108)
+vapi_DATA = $(am__append_107)
 examplesdir = $(docdir)/examples
 rundir = $(runstatedir)/NetworkManager
 statedir = $(localstatedir)/lib/NetworkManager
@@ -5057,7 +5059,9 @@ DISTCHECK_CONFIGURE_FLAGS = \
 	--with-wext=no \
 	--enable-ifcfg-rh \
 	--enable-ifupdown \
-	--disable-dependency-tracking
+	--enable-config-plugin-ibft \
+	--disable-dependency-tracking \
+	$(NULL)
 
 
 ###############################################################################
@@ -5884,6 +5888,8 @@ src_libsystemd_nm_la_libadd = \
 src_libsystemd_nm_la_SOURCES = \
 	src/systemd/nm-sd.c \
 	src/systemd/nm-sd.h \
+	src/systemd/nm-sd-utils.c \
+	src/systemd/nm-sd-utils.h \
 	src/systemd/sd-adapt/nm-sd-adapt.c \
 	src/systemd/sd-adapt/nm-sd-adapt.h \
 	src/systemd/sd-adapt/architecture.h \
@@ -6609,7 +6615,7 @@ src_devices_adsl_libnm_device_plugin_adsl_la_LIBADD = \
 @WITH_MODEM_MANAGER_1_TRUE@	src/devices/wwan/nm-modem-manager.h \
 @WITH_MODEM_MANAGER_1_TRUE@	src/devices/wwan/nm-modem.c \
 @WITH_MODEM_MANAGER_1_TRUE@	src/devices/wwan/nm-modem.h \
-@WITH_MODEM_MANAGER_1_TRUE@	$(am__append_40)
+@WITH_MODEM_MANAGER_1_TRUE@	$(am__append_39)
 @WITH_MODEM_MANAGER_1_TRUE@src_devices_wwan_libnm_wwan_la_CPPFLAGS = $(src_devices_wwan_cppflags)
 @WITH_MODEM_MANAGER_1_TRUE@src_devices_wwan_libnm_wwan_la_LDFLAGS = \
 @WITH_MODEM_MANAGER_1_TRUE@	-avoid-version \
@@ -6651,17 +6657,17 @@ src_devices_adsl_libnm_device_plugin_adsl_la_LIBADD = \
 @WITH_MODEM_MANAGER_1_TRUE@	src/devices/bluetooth/nm-bt-error.c \
 @WITH_MODEM_MANAGER_1_TRUE@	src/devices/bluetooth/nm-device-bt.c \
 @WITH_MODEM_MANAGER_1_TRUE@	src/devices/bluetooth/nm-device-bt.h \
-@WITH_MODEM_MANAGER_1_TRUE@	$(am__append_43)
+@WITH_MODEM_MANAGER_1_TRUE@	$(am__append_42)
 @WITH_MODEM_MANAGER_1_TRUE@src_devices_bluetooth_libnm_device_plugin_bluetooth_la_CPPFLAGS =  \
 @WITH_MODEM_MANAGER_1_TRUE@	$(src_cppflags_device_plugin) \
-@WITH_MODEM_MANAGER_1_TRUE@	$(am__append_42)
+@WITH_MODEM_MANAGER_1_TRUE@	$(am__append_41)
 @WITH_MODEM_MANAGER_1_TRUE@src_devices_bluetooth_libnm_device_plugin_bluetooth_la_LDFLAGS = \
 @WITH_MODEM_MANAGER_1_TRUE@	-module -avoid-version \
 @WITH_MODEM_MANAGER_1_TRUE@	-Wl,--version-script="$(srcdir)/linker-script-devices.ver"
 
 @WITH_MODEM_MANAGER_1_TRUE@src_devices_bluetooth_libnm_device_plugin_bluetooth_la_LIBADD =  \
 @WITH_MODEM_MANAGER_1_TRUE@	src/devices/wwan/libnm-wwan.la \
-@WITH_MODEM_MANAGER_1_TRUE@	$(GLIB_LIBS) $(am__append_44)
+@WITH_MODEM_MANAGER_1_TRUE@	$(GLIB_LIBS) $(am__append_43)
 @WITH_WIFI_TRUE@src_devices_wifi_libnm_device_plugin_wifi_la_SOURCES =  \
 @WITH_WIFI_TRUE@	src/devices/wifi/nm-wifi-factory.c \
 @WITH_WIFI_TRUE@	src/devices/wifi/nm-device-wifi.c \
@@ -6674,7 +6680,7 @@ src_devices_adsl_libnm_device_plugin_adsl_la_LIBADD = \
 @WITH_WIFI_TRUE@	src/devices/wifi/nm-wifi-common.h \
 @WITH_WIFI_TRUE@	src/devices/wifi/nm-device-olpc-mesh.c \
 @WITH_WIFI_TRUE@	src/devices/wifi/nm-device-olpc-mesh.h \
-@WITH_WIFI_TRUE@	$(am__append_46)
+@WITH_WIFI_TRUE@	$(am__append_45)
 @WITH_WIFI_TRUE@src_devices_wifi_libnm_device_plugin_wifi_la_CPPFLAGS = $(src_cppflags_device_plugin)
 @WITH_WIFI_TRUE@src_devices_wifi_libnm_device_plugin_wifi_la_LDFLAGS = \
 @WITH_WIFI_TRUE@	-module -avoid-version \
@@ -7092,15 +7098,15 @@ clients_common_tests_test_general_LDADD = \
 @BUILD_NMCLI_TRUE@	clients/cli/nmcli.h \
 @BUILD_NMCLI_TRUE@	clients/cli/polkit-agent.c \
 @BUILD_NMCLI_TRUE@	clients/cli/polkit-agent.h $(NULL) \
-@BUILD_NMCLI_TRUE@	$(am__append_60)
+@BUILD_NMCLI_TRUE@	$(am__append_59)
 @BUILD_NMCLI_TRUE@clients_cli_nmcli_CPPFLAGS =  \
 @BUILD_NMCLI_TRUE@	-I$(srcdir)/clients/cli $(clients_cppflags) \
 @BUILD_NMCLI_TRUE@	-DG_LOG_DOMAIN=\""nmcli"\" $(NULL) \
-@BUILD_NMCLI_TRUE@	$(am__append_59)
+@BUILD_NMCLI_TRUE@	$(am__append_58)
 @BUILD_NMCLI_TRUE@clients_cli_nmcli_LDADD = libnm/libnm.la \
 @BUILD_NMCLI_TRUE@	clients/common/libnmc-base.la \
 @BUILD_NMCLI_TRUE@	clients/common/libnmc.la $(GLIB_LIBS) \
-@BUILD_NMCLI_TRUE@	$(READLINE_LIBS) $(am__append_61)
+@BUILD_NMCLI_TRUE@	$(READLINE_LIBS) $(am__append_60)
 @BUILD_NMCLI_TRUE@clients_cli_nmcli_LDFLAGS = \
 @BUILD_NMCLI_TRUE@	-Wl,--version-script="$(srcdir)/linker-script-binary.ver" \
 @BUILD_NMCLI_TRUE@	$(SANITIZER_EXEC_LDFLAGS)
@@ -7300,8 +7306,8 @@ data_edit = sed \
 @WITH_LEGACY_LIBRARIES_TRUE@	-DG_LOG_DOMAIN=\""libnm-util"\" \
 @WITH_LEGACY_LIBRARIES_TRUE@	-DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_LIBNM_UTIL \
 @WITH_LEGACY_LIBRARIES_TRUE@	$(GLIB_CFLAGS) $(DBUS_CFLAGS) \
-@WITH_LEGACY_LIBRARIES_TRUE@	$(UUID_CFLAGS) $(am__append_71) \
-@WITH_LEGACY_LIBRARIES_TRUE@	$(am__append_74)
+@WITH_LEGACY_LIBRARIES_TRUE@	$(UUID_CFLAGS) $(am__append_70) \
+@WITH_LEGACY_LIBRARIES_TRUE@	$(am__append_73)
 @WITH_LEGACY_LIBRARIES_TRUE@libnm_util_lib_h_pub_real = \
 @WITH_LEGACY_LIBRARIES_TRUE@	shared/nm-version-macros.h \
 @WITH_LEGACY_LIBRARIES_TRUE@	libnm-util/NetworkManager.h \
@@ -7389,7 +7395,7 @@ data_edit = sed \
 @WITH_LEGACY_LIBRARIES_TRUE@	libnm-util/nm-setting-vpn.c \
 @WITH_LEGACY_LIBRARIES_TRUE@	libnm-util/nm-utils.c \
 @WITH_LEGACY_LIBRARIES_TRUE@	libnm-util/nm-value-transforms.c \
-@WITH_LEGACY_LIBRARIES_TRUE@	$(am__append_72) $(am__append_75)
+@WITH_LEGACY_LIBRARIES_TRUE@	$(am__append_71) $(am__append_74)
 @WITH_LEGACY_LIBRARIES_TRUE@libnm_util_lib_c_mkenums = \
 @WITH_LEGACY_LIBRARIES_TRUE@	libnm-util/nm-utils-enum-types.c
 
@@ -7406,19 +7412,19 @@ data_edit = sed \
 @WITH_LEGACY_LIBRARIES_TRUE@nm_utils_enum_types_sources = $(filter-out libnm-util/NetworkManager%,$(libnm_util_lib_h_pub_real))
 @WITH_LEGACY_LIBRARIES_TRUE@libnm_util_libnm_util_la_LIBADD =  \
 @WITH_LEGACY_LIBRARIES_TRUE@	$(GLIB_LIBS) $(DBUS_LIBS) \
-@WITH_LEGACY_LIBRARIES_TRUE@	$(UUID_LIBS) $(am__append_73) \
-@WITH_LEGACY_LIBRARIES_TRUE@	$(am__append_76)
+@WITH_LEGACY_LIBRARIES_TRUE@	$(UUID_LIBS) $(am__append_72) \
+@WITH_LEGACY_LIBRARIES_TRUE@	$(am__append_75)
 @WITH_LEGACY_LIBRARIES_TRUE@libnm_util_libnm_util_la_LDFLAGS = \
 @WITH_LEGACY_LIBRARIES_TRUE@	-Wl,--version-script=$(srcdir)/libnm-util/libnm-util.ver \
 @WITH_LEGACY_LIBRARIES_TRUE@	-version-info "9:0:7"
 
 @WITH_LEGACY_LIBRARIES_TRUE@libnm_util_libtest_crypto_la_SOURCES =  \
 @WITH_LEGACY_LIBRARIES_TRUE@	libnm-util/crypto.c \
-@WITH_LEGACY_LIBRARIES_TRUE@	$(am__append_79) $(am__append_81)
+@WITH_LEGACY_LIBRARIES_TRUE@	$(am__append_78) $(am__append_80)
 @WITH_LEGACY_LIBRARIES_TRUE@libnm_util_libtest_crypto_la_CPPFLAGS = $(libnm_util_cppflags)
 @WITH_LEGACY_LIBRARIES_TRUE@libnm_util_libtest_crypto_la_LIBADD =  \
-@WITH_LEGACY_LIBRARIES_TRUE@	$(GLIB_LIBS) $(am__append_80) \
-@WITH_LEGACY_LIBRARIES_TRUE@	$(am__append_82)
+@WITH_LEGACY_LIBRARIES_TRUE@	$(GLIB_LIBS) $(am__append_79) \
+@WITH_LEGACY_LIBRARIES_TRUE@	$(am__append_81)
 @HAVE_INTROSPECTION_TRUE@@WITH_LEGACY_LIBRARIES_TRUE@libnm_util_NetworkManager_1_0_gir_INCLUDES = GObject-2.0 DBusGLib-1.0
 @HAVE_INTROSPECTION_TRUE@@WITH_LEGACY_LIBRARIES_TRUE@libnm_util_NetworkManager_1_0_gir_PACKAGES = gobject-2.0 dbus-glib-1
 @HAVE_INTROSPECTION_TRUE@@WITH_LEGACY_LIBRARIES_TRUE@libnm_util_NetworkManager_1_0_gir_EXPORT_PACKAGES = libnm-util
@@ -9652,6 +9658,9 @@ src/systemd/$(DEPDIR)/$(am__dirstamp):
 	@: > src/systemd/$(DEPDIR)/$(am__dirstamp)
 src/systemd/libsystemd_nm_la-nm-sd.lo: src/systemd/$(am__dirstamp) \
 	src/systemd/$(DEPDIR)/$(am__dirstamp)
+src/systemd/libsystemd_nm_la-nm-sd-utils.lo:  \
+	src/systemd/$(am__dirstamp) \
+	src/systemd/$(DEPDIR)/$(am__dirstamp)
 src/systemd/sd-adapt/$(am__dirstamp):
 	@$(MKDIR_P) src/systemd/sd-adapt
 	@: > src/systemd/sd-adapt/$(am__dirstamp)
@@ -11478,6 +11487,7 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@src/supplicant/$(DEPDIR)/libNetworkManager_la-nm-supplicant-manager.Plo@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@src/supplicant/$(DEPDIR)/libNetworkManager_la-nm-supplicant-settings-verify.Plo@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@src/supplicant/tests/$(DEPDIR)/test_supplicant_config-test-supplicant-config.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/systemd/$(DEPDIR)/libsystemd_nm_la-nm-sd-utils.Plo@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@src/systemd/$(DEPDIR)/libsystemd_nm_la-nm-sd.Plo@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@src/systemd/sd-adapt/$(DEPDIR)/libsystemd_nm_la-nm-sd-adapt.Plo@am__quote@ # am--include-marker
 @AMDEP_TRUE@@am__include@ @am__quote@src/systemd/src/basic/$(DEPDIR)/libsystemd_nm_la-alloc-util.Plo@am__quote@ # am--include-marker
@@ -14638,6 +14648,13 @@ src/systemd/libsystemd_nm_la-nm-sd.lo: src/systemd/nm-sd.c
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_libsystemd_nm_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/systemd/libsystemd_nm_la-nm-sd.lo `test -f 'src/systemd/nm-sd.c' || echo '$(srcdir)/'`src/systemd/nm-sd.c
 
+src/systemd/libsystemd_nm_la-nm-sd-utils.lo: src/systemd/nm-sd-utils.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_libsystemd_nm_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/systemd/libsystemd_nm_la-nm-sd-utils.lo -MD -MP -MF src/systemd/$(DEPDIR)/libsystemd_nm_la-nm-sd-utils.Tpo -c -o src/systemd/libsystemd_nm_la-nm-sd-utils.lo `test -f 'src/systemd/nm-sd-utils.c' || echo '$(srcdir)/'`src/systemd/nm-sd-utils.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) src/systemd/$(DEPDIR)/libsystemd_nm_la-nm-sd-utils.Tpo src/systemd/$(DEPDIR)/libsystemd_nm_la-nm-sd-utils.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='src/systemd/nm-sd-utils.c' object='src/systemd/libsystemd_nm_la-nm-sd-utils.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_libsystemd_nm_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/systemd/libsystemd_nm_la-nm-sd-utils.lo `test -f 'src/systemd/nm-sd-utils.c' || echo '$(srcdir)/'`src/systemd/nm-sd-utils.c
+
 src/systemd/sd-adapt/libsystemd_nm_la-nm-sd-adapt.lo: src/systemd/sd-adapt/nm-sd-adapt.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_libsystemd_nm_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/systemd/sd-adapt/libsystemd_nm_la-nm-sd-adapt.lo -MD -MP -MF src/systemd/sd-adapt/$(DEPDIR)/libsystemd_nm_la-nm-sd-adapt.Tpo -c -o src/systemd/sd-adapt/libsystemd_nm_la-nm-sd-adapt.lo `test -f 'src/systemd/sd-adapt/nm-sd-adapt.c' || echo '$(srcdir)/'`src/systemd/sd-adapt/nm-sd-adapt.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) src/systemd/sd-adapt/$(DEPDIR)/libsystemd_nm_la-nm-sd-adapt.Tpo src/systemd/sd-adapt/$(DEPDIR)/libsystemd_nm_la-nm-sd-adapt.Plo
@@ -19341,6 +19358,7 @@ distclean: distclean-recursive
 	-rm -f src/supplicant/$(DEPDIR)/libNetworkManager_la-nm-supplicant-manager.Plo
 	-rm -f src/supplicant/$(DEPDIR)/libNetworkManager_la-nm-supplicant-settings-verify.Plo
 	-rm -f src/supplicant/tests/$(DEPDIR)/test_supplicant_config-test-supplicant-config.Po
+	-rm -f src/systemd/$(DEPDIR)/libsystemd_nm_la-nm-sd-utils.Plo
 	-rm -f src/systemd/$(DEPDIR)/libsystemd_nm_la-nm-sd.Plo
 	-rm -f src/systemd/sd-adapt/$(DEPDIR)/libsystemd_nm_la-nm-sd-adapt.Plo
 	-rm -f src/systemd/src/basic/$(DEPDIR)/libsystemd_nm_la-alloc-util.Plo
@@ -20028,6 +20046,7 @@ maintainer-clean: maintainer-clean-recursive
 	-rm -f src/supplicant/$(DEPDIR)/libNetworkManager_la-nm-supplicant-manager.Plo
 	-rm -f src/supplicant/$(DEPDIR)/libNetworkManager_la-nm-supplicant-settings-verify.Plo
 	-rm -f src/supplicant/tests/$(DEPDIR)/test_supplicant_config-test-supplicant-config.Po
+	-rm -f src/systemd/$(DEPDIR)/libsystemd_nm_la-nm-sd-utils.Plo
 	-rm -f src/systemd/$(DEPDIR)/libsystemd_nm_la-nm-sd.Plo
 	-rm -f src/systemd/sd-adapt/$(DEPDIR)/libsystemd_nm_la-nm-sd-adapt.Plo
 	-rm -f src/systemd/src/basic/$(DEPDIR)/libsystemd_nm_la-alloc-util.Plo
@@ -20280,7 +20299,7 @@ $(dispatcher_nm_dispatcher_OBJECTS):            $(introspection_sources)
 $(libnm_libnm_la_OBJECTS):                      $(introspection_sources)
 
 check-docs:
-	$(srcdir)/tools/check-docs.sh "$(srcdir)"
+	$(srcdir)/tools/check-docs.sh "$(srcdir)" "$(builddir)"
 
 libnm-core/nm-core-enum-types.h.stamp:                                      libnm-core/.dirstamp
 libnm-core/nm-core-enum-types.c.stamp:                                      libnm-core/.dirstamp
@@ -20562,16 +20581,7 @@ $(clients_common_libnmc_base_la_OBJECTS): clients/common/.dirstamp
 @HAVE_INTROSPECTION_TRUE@$(clients_common_settings_doc_h): clients/common/settings-docs.xsl libnm/nm-property-docs.xml clients/common/.dirstamp
 @HAVE_INTROSPECTION_TRUE@	$(AM_V_GEN) $(XSLTPROC) --output $@ $< $(word 2,$^)
 @HAVE_INTROSPECTION_TRUE@check-local-settings-docs: $(clients_common_settings_doc_h)
-@HAVE_INTROSPECTION_TRUE@	@if test -z "$$NMTST_NO_CHECK_SETTINGS_DOCS" ; then \
-@HAVE_INTROSPECTION_TRUE@		if ! cmp -s "$(srcdir)/$(clients_common_settings_doc_h).in" "$(builddir)/$(clients_common_settings_doc_h)" ; then \
-@HAVE_INTROSPECTION_TRUE@			if test "$$NM_TEST_REGENERATE" == 1 ; then \
-@HAVE_INTROSPECTION_TRUE@				cp -f "$(builddir)/$(clients_common_settings_doc_h)" "$(srcdir)/$(clients_common_settings_doc_h).in"; \
-@HAVE_INTROSPECTION_TRUE@			else \
-@HAVE_INTROSPECTION_TRUE@				echo "The generated file \"$(builddir)/$(clients_common_settings_doc_h)\" differs from the source file \"$(srcdir)/$(clients_common_settings_doc_h).in\". You probably should copy the generated file over to the source file. You can skip this test by setting \$$NMTST_NO_CHECK_SETTINGS_DOCS=yes". You can also automatically copy the file by rerunning the test with \$$NM_TEST_REGENERATE=1 ; \
-@HAVE_INTROSPECTION_TRUE@				false; \
-@HAVE_INTROSPECTION_TRUE@			fi; \
-@HAVE_INTROSPECTION_TRUE@		fi;\
-@HAVE_INTROSPECTION_TRUE@	fi
+@HAVE_INTROSPECTION_TRUE@	$(srcdir)/tools/check-settings-docs.sh "$(srcdir)" "$(builddir)" "$(clients_common_settings_doc_h)"
 @HAVE_INTROSPECTION_FALSE@$(clients_common_settings_doc_h): $(clients_common_settings_doc_h).in clients/common/.dirstamp
 @HAVE_INTROSPECTION_FALSE@	$(AM_V_GEN) cp "$(srcdir)/$(clients_common_settings_doc_h).in" "$(builddir)/$(clients_common_settings_doc_h)"
 @HAVE_INTROSPECTION_FALSE@check-local-settings-docs:
diff --git a/NEWS b/NEWS
index e625c3a7..30ebe5e5 100644
--- a/NEWS
+++ b/NEWS
@@ -1,4 +1,38 @@
 ===============================================
+NetworkManager-1.14.6
+Overview of changes since NetworkManager-1.14.4
+===============================================
+
+This is a new stable release of NetworkManager.  Notable changes include:
+
+* Fix memory corruption in internal DHCPv6 client (CVE-2018-15688).
+* No longer limit number of search entires in resolv.conf to 6.
+* Support restricting NetworkManager.conf device configuration based on used DHCP
+  plugin.
+* Add "${MAC}" specifier for connection.stable-id. This uses the current MAC
+  address for seeding the stable generation of MAC address, DHCP client-id
+  or IPv6 stable-privacy interface identifier.
+* Support special value "duid" for "ipv4.dhcp-client-id". This generates an
+  RFC4361-compliant client-id like the internal DHCP client used to do by default.
+  Previously, there was no explicit name for such a client-id and it was not
+  usable with dhclient DHCP plugin. This also generates the same client-id as
+  systemd-networkd does by default.
+* Support and use a new kind of secret-key in "/var/lib/NetworkManager/secret_key".
+  The secret-key represents the identity of the machine that is used for various
+  purposes like generating IPv6 stable privacy addesses. It is now combined
+  with "/etc/machine-id" so that changing only the machine-id results in new identifiers.
+  That matters for example when cloning a virtual machine. Previously, the user
+  hard to prune NetworkManager's secret-key to get a new identity, now regenerating
+  machine-id suffices. Secret-keys generated by earlier versions of NetworkManager are
+  not affected and keep their previous behavior.
+* Fix the DHCP client-ids based on the MAC address of IPoIB/infiniband devices.
+* Fix restoring IP configuration after interface went down.
+* No longer let NetworkManager touch rp_filter setting. The rp_filter sysctl must now
+  be set outside of NetworkManager according to the admin's preference. Note that a strict
+  rp_filter may break valid use-cases and interacts badly with connectivity checking.
+* Various bug fixes and improvements.
+
+===============================================
 NetworkManager-1.14.4
 Overview of changes since NetworkManager-1.14.2
 ===============================================
diff --git a/clients/cli/connections.c b/clients/cli/connections.c
index bcd257ac..8a10691e 100644
--- a/clients/cli/connections.c
+++ b/clients/cli/connections.c
@@ -6534,6 +6534,12 @@ static gboolean nmc_editor_cb_called;
 static GError *nmc_editor_error;
 static MonitorACInfo *nmc_editor_monitor_ac;
 
+static void
+editor_connection_changed_cb (NMConnection *connection, gboolean *changed)
+{
+	*changed = TRUE;
+}
+
 /*
  * Store 'error' to shared 'nmc_editor_error' and monitoring info to
  * 'nmc_editor_monitor_ac' and signal the condition so that
@@ -6579,8 +6585,8 @@ static gboolean
 progress_activation_editor_cb (gpointer user_data)
 {
 	MonitorACInfo *info = (MonitorACInfo *) user_data;
-	gs_unref_object NMDevice *device = info->device;
-	gs_unref_object NMActiveConnection *ac = info->ac;
+	NMDevice *device = info->device;
+	NMActiveConnection *ac = info->ac;
 	NMActiveConnectionState ac_state;
 	NMDeviceState dev_state;
 
@@ -6613,11 +6619,13 @@ progress_activation_editor_cb (gpointer user_data)
 		                               nm_object_get_path (NM_OBJECT (connection)));
 	}
 
-	return TRUE;
+	return G_SOURCE_CONTINUE;
 
 finish:
+	nm_g_object_unref (device);
+	nm_g_object_unref (ac);
 	info->monitor_id = 0;
-	return FALSE;
+	return G_SOURCE_REMOVE;
 }
 
 static void
@@ -7128,6 +7136,16 @@ menu_switch_to_level1 (const NmcConfig *nmc_config,
 }
 
 static gboolean
+editor_save_timeout (gpointer user_data)
+{
+	gboolean *timeout = user_data;
+
+	*timeout = TRUE;
+
+	return G_SOURCE_REMOVE;
+}
+
+static gboolean
 editor_menu_main (NmCli *nmc, NMConnection *connection, const char *connection_type)
 {
 	gs_unref_object NMRemoteConnection *rem_con = NULL;
@@ -7646,6 +7664,10 @@ editor_menu_main (NmCli *nmc, NMConnection *connection, const char *connection_t
 			/* Save the connection */
 			if (nm_connection_verify (connection, &err1)) {
 				gboolean persistent = TRUE;
+				gboolean connection_changed;
+				nm_auto_unref_gsource GSource *source = NULL;
+				gboolean timeout = FALSE;
+				gulong handler_id = 0;
 
 				/* parse argument */
 				if (cmd_arg) {
@@ -7674,23 +7696,44 @@ editor_menu_main (NmCli *nmc, NMConnection *connection, const char *connection_t
 					                    connection,
 					                    add_connection_editor_cb,
 					                    info);
+					connection_changed = TRUE;
 				} else {
 					/* Save/update already saved (existing) connection */
 					nm_connection_replace_settings_from_connection (NM_CONNECTION (rem_con),
 					                                                connection);
 					update_connection (persistent, rem_con, update_connection_editor_cb, NULL);
+
+					handler_id = g_signal_connect (rem_con,
+					                               NM_CONNECTION_CHANGED,
+					                               G_CALLBACK (editor_connection_changed_cb),
+					                               &connection_changed);
+					connection_changed = FALSE;
 				}
 
-				//FIXME: add also a timeout for cases the callback is not called
-				while (!nmc_editor_cb_called)
+				source = g_timeout_source_new (10 * NM_UTILS_MSEC_PER_SECOND);
+				g_source_set_callback (source, editor_save_timeout, &timeout, NULL);
+				g_source_attach (source, g_main_loop_get_context (loop));
+
+				while (!nmc_editor_cb_called && !timeout)
 					g_main_context_iteration (NULL, TRUE);
 
+				while (!connection_changed && !timeout)
+					g_main_context_iteration (NULL, TRUE);
+
+				if (handler_id)
+					g_signal_handler_disconnect (rem_con, handler_id);
+				g_source_destroy (source);
+
 				if (nmc_editor_error) {
 					g_print (_("Error: Failed to save '%s' (%s) connection: %s\n"),
 					         nm_connection_get_id (connection),
 					         nm_connection_get_uuid (connection),
 					         nmc_editor_error->message);
 					g_error_free (nmc_editor_error);
+				} else if (timeout) {
+					g_print (_("Error: Timeout saving '%s' (%s) connection\n"),
+					         nm_connection_get_id (connection),
+					         nm_connection_get_uuid (connection));
 				} else {
 					g_print (!rem_con ?
 					         _("Connection '%s' (%s) successfully saved.\n") :
@@ -7713,9 +7756,10 @@ editor_menu_main (NmCli *nmc, NMConnection *connection, const char *connection_t
 						if (menu_ctx.curr_setting)
 							s_name = g_strdup (nm_setting_get_name (menu_ctx.curr_setting));
 
-						/* Update settings in the local connection */
+						/* Update settings and secrets in the local connection */
 						nm_connection_replace_settings_from_connection (connection,
 						                                                NM_CONNECTION (con_tmp));
+						update_secrets_in_connection (con_tmp, connection);
 
 						/* Also update setting for menu context and TAB-completion */
 						menu_ctx.curr_setting = s_name ? nm_connection_get_setting_by_name (connection, s_name) : NULL;
diff --git a/clients/cli/devices.c b/clients/cli/devices.c
index 029ca671..5aaf4ef8 100644
--- a/clients/cli/devices.c
+++ b/clients/cli/devices.c
@@ -2094,6 +2094,7 @@ typedef struct {
 	GSList *queue;
 	guint timeout_id;
 	gboolean cmd_disconnect;
+	GCancellable *cancellable;
 } DeviceCbInfo;
 
 static void device_cb_info_finish (DeviceCbInfo *info, NMDevice *device);
@@ -2166,7 +2167,10 @@ device_cb_info_finish (DeviceCbInfo *info, NMDevice *device)
 
 	if (info->timeout_id)
 		g_source_remove (info->timeout_id);
+
 	g_signal_handlers_disconnect_by_func (info->nmc->client, device_removed_cb, info);
+	nm_clear_g_cancellable (&info->cancellable);
+
 	g_slice_free (DeviceCbInfo, info);
 	quit ();
 }
@@ -2343,11 +2347,14 @@ disconnect_device_cb (GObject *object, GAsyncResult *result, gpointer user_data)
 {
 	NMDevice *device = NM_DEVICE (object);
 	DeviceCbInfo *info = (DeviceCbInfo *) user_data;
-	NmCli *nmc = info->nmc;
+	NmCli *nmc;
 	NMDeviceState state;
 	GError *error = NULL;
 
 	if (!nm_device_disconnect_finish (device, result, &error)) {
+		if (g_error_matches (error, G_IO_ERROR, G_IO_ERROR_CANCELLED))
+			return;
+		nmc = info->nmc;
 		g_string_printf (nmc->return_text, _("Error: not all devices disconnected."));
 		g_printerr (_("Error: Device '%s' (%s) disconnecting failed: %s\n"),
 		            nm_device_get_iface (device),
@@ -2357,6 +2364,7 @@ disconnect_device_cb (GObject *object, GAsyncResult *result, gpointer user_data)
 		nmc->return_value = NMC_RESULT_ERROR_DEV_DISCONNECT;
 		device_cb_info_finish (info, device);
 	} else {
+		nmc = info->nmc;
 		state = nm_device_get_state (device);
 		if (nmc->nowait_flag || state <= NM_DEVICE_STATE_DISCONNECTED) {
 			/* Don't want to wait or device already disconnected */
@@ -2393,6 +2401,7 @@ do_devices_disconnect (NmCli *nmc, int argc, char **argv)
 	info = g_slice_new0 (DeviceCbInfo);
 	info->nmc = nmc;
 	info->cmd_disconnect = TRUE;
+	info->cancellable = g_cancellable_new ();
 	if (nmc->timeout > 0)
 		info->timeout_id = g_timeout_add_seconds (nmc->timeout, device_op_timeout_cb, info);
 
@@ -2410,7 +2419,7 @@ do_devices_disconnect (NmCli *nmc, int argc, char **argv)
 		                  G_CALLBACK (disconnect_state_cb), info);
 
 		/* Now disconnect the device */
-		nm_device_disconnect_async (device, NULL, disconnect_device_cb, info);
+		nm_device_disconnect_async (device, info->cancellable, disconnect_device_cb, info);
 	}
 
 out:
@@ -2795,7 +2804,7 @@ show_access_point_info (NMDeviceWifi *wifi, NmCli *nmc, NmcOutputData *out)
 
 		aps = sort_access_points (nm_device_wifi_get_access_points (wifi));
 		g_ptr_array_foreach (aps, fill_output_access_point, &info);
-		g_ptr_array_free (aps, FALSE);
+		g_ptr_array_free (aps, TRUE);
 	}
 
 	print_data_prepare_width (out->output_data);
@@ -2870,28 +2879,38 @@ wifi_print_aps (NMDeviceWifi *wifi,
 
 typedef struct {
 	NmCli *nmc;
-	NMDeviceWifi *wifi;
-	const NMMetaAbstractInfo *const*tmpl;
-
+	NMDevice **devices;
+	const NMMetaAbstractInfo *const *tmpl;
 	const char *bssid_user;
+	GArray *out_indices;
+} ScanInfo;
+
+typedef struct {
+	ScanInfo *scan_info;
+	NMDeviceWifi *wifi;
 	gulong last_scan_id;
 	guint  timeout_id;
 	GCancellable *scan_cancellable;
-	GArray *out_indices;
 } WifiListData;
 
 static void
 wifi_list_finish (WifiListData *data)
 {
-	NmCli *nmc = data->nmc;
-
-	wifi_print_aps (data->wifi, data->nmc, data->out_indices,
-	                data->tmpl, data->bssid_user);
+	ScanInfo *info = data->scan_info;
+	NmCli *nmc = info->nmc;
+	guint i;
 
-	if (--nmc->should_wait == 0) {
+	if (--info->nmc->should_wait == 0) {
+		for (i = 0; info->devices[i]; i++) {
+			wifi_print_aps (NM_DEVICE_WIFI (info->devices[i]),
+			                info->nmc,
+			                info->out_indices,
+			                info->tmpl,
+			                info->bssid_user);
+		}
 		if (nmc->return_value == NMC_RESULT_ERROR_NOT_FOUND) {
 			g_string_printf (nmc->return_text, _("Error: Access point with bssid '%s' not found."),
-			                 data->bssid_user);
+			                 data->scan_info->bssid_user);
 		}
 		g_main_loop_quit (loop);
 	}
@@ -2899,9 +2918,15 @@ wifi_list_finish (WifiListData *data)
 	g_signal_handler_disconnect (data->wifi, data->last_scan_id);
 	nm_clear_g_source (&data->timeout_id);
 	nm_clear_g_cancellable (&data->scan_cancellable);
-	g_array_unref (data->out_indices);
-	g_object_unref (data->wifi);
 	g_slice_free (WifiListData, data);
+
+	if (info->nmc->should_wait == 0) {
+		for (i = 0; info->devices[i]; i++)
+			g_object_unref (info->devices[i]);
+		g_free (info->devices);
+		g_array_unref (info->out_indices);
+		g_free (info);
+	}
 }
 
 static void
@@ -2946,49 +2971,6 @@ wifi_list_scan_timeout (gpointer user_data)
 }
 
 static void
-wifi_list_aps (NMDeviceWifi *wifi,
-               NmCli *nmc,
-               GArray *out_indices,
-               const NMMetaAbstractInfo *const*tmpl,
-               const char *bssid_user,
-               gint64 rescan_cutoff)
-{
-	gboolean needs_rescan;
-	WifiListData *data;
-
-	needs_rescan = rescan_cutoff < 0 || (rescan_cutoff > 0 && nm_device_wifi_get_last_scan (wifi) < rescan_cutoff);
-
-	/* FIXME: nmcli should either
-	 *  - don't request any new scan for any device and print the full AP list right
-	 *    away.
-	 *  - or, when requesting a scan on one or more devices, don't print the result
-	 *    before all requests complete.
-	 *
-	 *  Otherwise:
-	 *    - the printed output is not self consistent. E.g. it will print the result
-	 *      on one device at a certain time, while printing the result for another
-	 *      device at a later point in time.
-	 *    - the order in which we print the AP list per-device, is unstable. */
-	if (needs_rescan) {
-		data = g_slice_new0 (WifiListData);
-		data->nmc = nmc;
-		data->wifi = g_object_ref (wifi);
-		data->tmpl = tmpl;
-		data->out_indices = g_array_ref (out_indices);;
-		data->bssid_user = bssid_user;
-		data->last_scan_id = g_signal_connect (wifi, "notify::" NM_DEVICE_WIFI_LAST_SCAN,
-		                                       G_CALLBACK (wifi_last_scan_updated), data);
-		data->scan_cancellable = g_cancellable_new ();
-		data->timeout_id = g_timeout_add_seconds (15, wifi_list_scan_timeout, data);
-		nm_device_wifi_request_scan_async (wifi, data->scan_cancellable, wifi_list_rescan_cb, data);
-
-		nmc->should_wait++;
-	} else {
-		wifi_print_aps (wifi, nmc, out_indices, tmpl, bssid_user);
-	}
-}
-
-static void
 complete_aps (NMDevice **devices, const char *ifname,
               const char *bssid_prefix, const char *ssid_prefix)
 {
@@ -3017,12 +2999,15 @@ do_device_wifi_list (NmCli *nmc, int argc, char **argv)
 	const char *bssid_user = NULL;
 	const char *rescan = NULL;
 	gs_free NMDevice **devices = NULL;
-	guint i;
 	const char *fields_str = NULL;
 	const NMMetaAbstractInfo *const*tmpl;
 	gs_unref_array GArray *out_indices = NULL;
 	int option;
 	guint64 rescan_cutoff;
+	NMDeviceWifi *wifi;
+	ScanInfo *scan_info = NULL;
+	WifiListData *data;
+	guint i, j;
 
 	devices = nmc_get_devices_sorted (nmc->client);
 
@@ -3110,7 +3095,8 @@ do_device_wifi_list (NmCli *nmc, int argc, char **argv)
 		}
 
 		if (NM_IS_DEVICE_WIFI (device)) {
-			wifi_list_aps (NM_DEVICE_WIFI (device), nmc, out_indices, tmpl, bssid_user, rescan_cutoff);
+			devices[0] = device;
+			devices[1] = NULL;
 		} else {
 			if (   nm_device_get_device_type (device) == NM_DEVICE_TYPE_GENERIC
 			    && g_strcmp0 (nm_device_get_type_description (device), "wifi") == 0) {
@@ -3124,13 +3110,52 @@ do_device_wifi_list (NmCli *nmc, int argc, char **argv)
 			}
 			return NMC_RESULT_ERROR_UNKNOWN;
 		}
+	}
+
+	/* Filter out non-wifi devices */
+	for (i = 0, j = 0; devices[i]; i++) {
+		if (NM_IS_DEVICE_WIFI (devices[i]))
+			devices[j++] = devices[i];
+	}
+	devices[j] = NULL;
+
+	/* Start a new scan for devices that need it */
+	for (i = 0; devices[i]; i++) {
+		wifi = (NMDeviceWifi *) devices[i];
+		g_object_ref (wifi);
+
+		if (   rescan_cutoff == 0
+		    || (rescan_cutoff > 0 && nm_device_wifi_get_last_scan (wifi) >= rescan_cutoff))
+			continue;
+
+		if (!scan_info) {
+			scan_info = g_new0 (ScanInfo, 1);
+			scan_info->out_indices = g_array_ref (out_indices);
+			scan_info->tmpl = tmpl;
+			scan_info->bssid_user = bssid_user;
+			scan_info->nmc = nmc;
+		}
+
+		nmc->should_wait++;
+		data = g_slice_new0 (WifiListData);
+		data->wifi = wifi;
+		data->scan_info = scan_info;
+		data->last_scan_id = g_signal_connect (wifi, "notify::" NM_DEVICE_WIFI_LAST_SCAN,
+		                                       G_CALLBACK (wifi_last_scan_updated), data);
+		data->scan_cancellable = g_cancellable_new ();
+		data->timeout_id = g_timeout_add_seconds (15, wifi_list_scan_timeout, data);
+		nm_device_wifi_request_scan_async (wifi, data->scan_cancellable, wifi_list_rescan_cb, data);
+	}
+
+	if (scan_info) {
+		scan_info->devices = g_steal_pointer (&devices);
 	} else {
+		/* Print results right away if no scan is pending */
 		for (i = 0; devices[i]; i++) {
-			NMDevice *dev = devices[i];
-
-			if (NM_IS_DEVICE_WIFI (dev)) {
-				wifi_list_aps (NM_DEVICE_WIFI (dev), nmc, out_indices, tmpl, bssid_user, rescan_cutoff);
-			}
+			wifi_print_aps (NM_DEVICE_WIFI (devices[i]),
+			                nmc, out_indices,
+			                tmpl, bssid_user);
+			g_object_unref (devices[i]);
 		}
 	}
 
diff --git a/clients/cli/utils.c b/clients/cli/utils.c
index e21c108d..feb67221 100644
--- a/clients/cli/utils.c
+++ b/clients/cli/utils.c
@@ -919,6 +919,8 @@ nmc_empty_output_fields (NmcOutputData *output_data)
 	/* Empty output_data array */
 	if (output_data->output_data->len > 0)
 		g_ptr_array_remove_range (output_data->output_data, 0, output_data->output_data->len);
+
+	g_ptr_array_unref (output_data->output_data);
 }
 
 /*****************************************************************************/
diff --git a/clients/common/meson.build b/clients/common/meson.build
index 0db2868e..30fd2cfa 100644
--- a/clients/common/meson.build
+++ b/clients/common/meson.build
@@ -37,15 +37,11 @@ if enable_introspection
     command: [xsltproc, '--output', '@OUTPUT@', join_paths(meson.current_source_dir(), 'settings-docs.xsl'), '@INPUT@']
   )
 
-  # FIXME: if enabled the check happens even if the settings_docs_source is not set
-  '''
-  if get_option('check_settings_docs')
-    res = run_command(find_program('cmp'), '-s', settings_docs + '.in', settings_docs_source.full_path())
-    if res.returncode() != 0
-      message('The generated file ' + settings_docs_source.full_path() + ' differs from the source file ' + settings_docs + '.in' + '. You probably should copy the generated file over to the source file. You can skip this test by setting -Dcheck_settings_docs=false')
-    endif
-  endif
-  '''
+  test(
+    'check-settings-docs',
+    find_program(join_paths(meson.source_root(), 'tools', 'check-settings-docs.sh')),
+    args: [meson.source_root(), meson.build_root(), 'clients/common/' + settings_docs]
+  )
 else
   settings_docs_source = configure_file(
     input: settings_docs + '.in',
diff --git a/clients/common/nm-meta-setting-desc.c b/clients/common/nm-meta-setting-desc.c
index d291732a..d13ee4ce 100644
--- a/clients/common/nm-meta-setting-desc.c
+++ b/clients/common/nm-meta-setting-desc.c
@@ -283,7 +283,7 @@ _dump_team_link_watcher (NMTeamLinkWatcher *watcher)
 	}
 	/* NM_TEAM_LINK_WATCHER_NSNA_PING and NM_TEAM_LINK_WATCHER_ARP_PING */
 	DUMP_WATCHER_INT (w_dump, watcher, "init-wait", init_wait);
-	DUMP_WATCHER_INT (w_dump, watcher, "initerval", interval);
+	DUMP_WATCHER_INT (w_dump, watcher, "interval", interval);
 	DUMP_WATCHER_INT (w_dump, watcher, "missed-max", missed_max);
 #undef DUMP_WATCHER_INT
 	g_string_append_printf (w_dump, " target-host=%s",
@@ -2190,7 +2190,7 @@ _get_fcn_802_1x_phase2_private_key (ARGS_GET_FCN)
 		strv = nm_utils_strsplit_set (value, " \t,", FALSE); \
 		if (strv) { \
 			for (i = 0; strv[i]; i++) \
-				set_func (NM_SETTING_802_1X (setting), strv[i++]); \
+				set_func (NM_SETTING_802_1X (setting), strv[i]); \
 		} \
 		return TRUE; \
 	}
@@ -3349,7 +3349,7 @@ DEFINE_REMOVER_INDEX_OR_VALUE (_remove_fcn_ipv4_config_dns,
                                _validate_and_remove_ipv4_dns)
 
 static gboolean
-_set_fcn_ip4_config_dns_search (ARGS_SET_FCN)
+_set_fcn_ip_config_dns_search (ARGS_SET_FCN)
 {
 	gs_free const char **strv = NULL;
 	gsize i;
@@ -3368,9 +3368,9 @@ _set_fcn_ip4_config_dns_search (ARGS_SET_FCN)
 }
 
 static gboolean
-_validate_and_remove_ipv4_dns_search (NMSettingIPConfig *setting,
-                                      const char *dns_search,
-                                      GError **error)
+_validate_and_remove_ip_dns_search (NMSettingIPConfig *setting,
+                                    const char *dns_search,
+                                    GError **error)
 {
 	gboolean ret;
 
@@ -3381,33 +3381,36 @@ _validate_and_remove_ipv4_dns_search (NMSettingIPConfig *setting,
 		             dns_search);
 	return ret;
 }
-DEFINE_REMOVER_INDEX_OR_VALUE (_remove_fcn_ipv4_config_dns_search,
+DEFINE_REMOVER_INDEX_OR_VALUE (_remove_fcn_ip_config_dns_search,
                                NM_SETTING_IP_CONFIG,
                                nm_setting_ip_config_get_num_dns_searches,
                                nm_setting_ip_config_remove_dns_search,
-                               _validate_and_remove_ipv4_dns_search)
+                               _validate_and_remove_ip_dns_search)
 
 static gboolean
-_set_fcn_ip4_config_dns_options (ARGS_SET_FCN)
+_set_fcn_ip_config_dns_options (ARGS_SET_FCN)
 {
 	gs_free const char **strv = NULL;
+	NMSettingIPConfig *s_ip;
 	gsize i;
 
 	nm_assert (!error || !*error);
+	s_ip = NM_SETTING_IP_CONFIG (setting);
 
-	nm_setting_ip_config_clear_dns_options (NM_SETTING_IP_CONFIG (setting), TRUE);
 	strv = nm_utils_strsplit_set (value, " \t,", FALSE);
 	if (strv) {
-		for (i = 0; strv[i]; i++)
-			nm_setting_ip_config_add_dns_option (NM_SETTING_IP_CONFIG (setting), strv[i]);
+		for (i = 0; strv[i]; i++) {
+			nm_setting_ip_config_remove_dns_option_by_value (s_ip, strv[i]);
+			nm_setting_ip_config_add_dns_option (s_ip, strv[i]);
+		}
 	}
 	return TRUE;
 }
 
 static gboolean
-_validate_and_remove_ipv4_dns_option (NMSettingIPConfig *setting,
-                                      const char *dns_option,
-                                      GError **error)
+_validate_and_remove_ip_dns_option (NMSettingIPConfig *setting,
+                                    const char *dns_option,
+                                    GError **error)
 {
 	gboolean ret;
 
@@ -3418,11 +3421,11 @@ _validate_and_remove_ipv4_dns_option (NMSettingIPConfig *setting,
 		             dns_option);
 	return ret;
 }
-DEFINE_REMOVER_INDEX_OR_VALUE (_remove_fcn_ipv4_config_dns_options,
+DEFINE_REMOVER_INDEX_OR_VALUE (_remove_fcn_ip_config_dns_options,
                                NM_SETTING_IP_CONFIG,
                                nm_setting_ip_config_get_num_dns_options,
                                nm_setting_ip_config_remove_dns_option,
-                               _validate_and_remove_ipv4_dns_option)
+                               _validate_and_remove_ip_dns_option)
 
 static gboolean
 _set_fcn_ip4_config_addresses (ARGS_SET_FCN)
@@ -3593,82 +3596,6 @@ DEFINE_REMOVER_INDEX_OR_VALUE (_remove_fcn_ipv6_config_dns,
                                _validate_and_remove_ipv6_dns)
 
 static gboolean
-_set_fcn_ip6_config_dns_search (ARGS_SET_FCN)
-{
-	gs_free const char **strv = NULL;
-	gsize i;
-
-	nm_assert (!error || !*error);
-
-	strv = nm_utils_strsplit_set (value, " \t,", FALSE);
-	if (!verify_string_list (strv, property_info->property_name, nmc_util_is_domain, error))
-		return FALSE;
-
-	if (strv) {
-		for (i = 0; strv[i]; i++)
-			nm_setting_ip_config_add_dns_search (NM_SETTING_IP_CONFIG (setting), strv[i]);
-	}
-	return TRUE;
-}
-
-static gboolean
-_validate_and_remove_ipv6_dns_search (NMSettingIPConfig *setting,
-                                      const char *dns_search,
-                                      GError **error)
-{
-	gboolean ret;
-
-	ret = nm_setting_ip_config_remove_dns_search_by_value (setting, dns_search);
-	if (!ret)
-		g_set_error (error, 1, 0,
-		             _("the property doesn't contain DNS search domain '%s'"),
-		             dns_search);
-	return ret;
-}
-DEFINE_REMOVER_INDEX_OR_VALUE (_remove_fcn_ipv6_config_dns_search,
-                               NM_SETTING_IP_CONFIG,
-                               nm_setting_ip_config_get_num_dns_searches,
-                               nm_setting_ip_config_remove_dns_search,
-                               _validate_and_remove_ipv6_dns_search)
-
-static gboolean
-_set_fcn_ip6_config_dns_options (ARGS_SET_FCN)
-{
-	gs_free const char **strv = NULL;
-	gsize i;
-
-	nm_assert (!error || !*error);
-
-	nm_setting_ip_config_clear_dns_options (NM_SETTING_IP_CONFIG (setting), TRUE);
-	strv = nm_utils_strsplit_set (value, " \t,", FALSE);
-	if (strv) {
-		for (i = 0; strv[i]; i++)
-			nm_setting_ip_config_add_dns_option (NM_SETTING_IP_CONFIG (setting), strv[i]);
-	}
-	return TRUE;
-}
-
-static gboolean
-_validate_and_remove_ipv6_dns_option (NMSettingIPConfig *setting,
-                                      const char *dns_option,
-                                      GError **error)
-{
-	gboolean ret;
-
-	ret = nm_setting_ip_config_remove_dns_option_by_value (setting, dns_option);
-	if (!ret)
-		g_set_error (error, 1, 0,
-		             _("the property doesn't contain DNS option '%s'"),
-		             dns_option);
-	return ret;
-}
-DEFINE_REMOVER_INDEX_OR_VALUE (_remove_fcn_ipv6_config_dns_options,
-                               NM_SETTING_IP_CONFIG,
-                               nm_setting_ip_config_get_num_dns_options,
-                               nm_setting_ip_config_remove_dns_option,
-                               _validate_and_remove_ipv6_dns_option)
-
-static gboolean
 _dns_options_is_default (NMSettingIPConfig *setting)
 {
 	return    nm_setting_ip_config_has_dns_options (setting)
@@ -6183,15 +6110,15 @@ static const NMMetaPropertyInfo *const property_infos_IP4_CONFIG[] = {
 	PROPERTY_INFO (NM_SETTING_IP_CONFIG_DNS_SEARCH, DESCRIBE_DOC_NM_SETTING_IP4_CONFIG_DNS_SEARCH,
 		.property_type = DEFINE_PROPERTY_TYPE (
 			.get_fcn =                  _get_fcn_gobject,
-			.set_fcn =                  _set_fcn_ip4_config_dns_search,
-			.remove_fcn =               _remove_fcn_ipv4_config_dns_search,
+			.set_fcn =                  _set_fcn_ip_config_dns_search,
+			.remove_fcn =               _remove_fcn_ip_config_dns_search,
 		),
 	),
 	PROPERTY_INFO (NM_SETTING_IP_CONFIG_DNS_OPTIONS, DESCRIBE_DOC_NM_SETTING_IP4_CONFIG_DNS_OPTIONS,
 		.property_type = DEFINE_PROPERTY_TYPE (
 			.get_fcn =                  _get_fcn_nmc_with_default,
-			.set_fcn =                  _set_fcn_ip4_config_dns_options,
-			.remove_fcn =               _remove_fcn_ipv4_config_dns_options,
+			.set_fcn =                  _set_fcn_ip_config_dns_options,
+			.remove_fcn =               _remove_fcn_ip_config_dns_options,
 		),
 		.property_typ_data = DEFINE_PROPERTY_TYP_DATA_SUBTYPE (get_with_default,
 			.fcn =                      GET_FCN_WITH_DEFAULT (NMSettingIPConfig, _dns_options_is_default),
@@ -6346,15 +6273,15 @@ static const NMMetaPropertyInfo *const property_infos_IP6_CONFIG[] = {
 	PROPERTY_INFO (NM_SETTING_IP_CONFIG_DNS_SEARCH, DESCRIBE_DOC_NM_SETTING_IP6_CONFIG_DNS_SEARCH,
 		.property_type = DEFINE_PROPERTY_TYPE (
 			.get_fcn =                  _get_fcn_gobject,
-			.set_fcn =                  _set_fcn_ip6_config_dns_search,
-			.remove_fcn =               _remove_fcn_ipv6_config_dns_search,
+			.set_fcn =                  _set_fcn_ip_config_dns_search,
+			.remove_fcn =               _remove_fcn_ip_config_dns_search,
 		),
 	),
 	PROPERTY_INFO (NM_SETTING_IP_CONFIG_DNS_OPTIONS, DESCRIBE_DOC_NM_SETTING_IP6_CONFIG_DNS_OPTIONS,
 		.property_type = DEFINE_PROPERTY_TYPE (
 			.get_fcn =                  _get_fcn_nmc_with_default,
-			.set_fcn =                  _set_fcn_ip6_config_dns_options,
-			.remove_fcn =               _remove_fcn_ipv6_config_dns_options,
+			.set_fcn =                  _set_fcn_ip_config_dns_options,
+			.remove_fcn =               _remove_fcn_ip_config_dns_options,
 		),
 		.property_typ_data = DEFINE_PROPERTY_TYP_DATA_SUBTYPE (get_with_default,
 			.fcn =     GET_FCN_WITH_DEFAULT (NMSettingIPConfig, _dns_options_is_default),
diff --git a/clients/common/settings-docs.h b/clients/common/settings-docs.h
index f07769c0..bc56edae 100644
--- a/clients/common/settings-docs.h
+++ b/clients/common/settings-docs.h
@@ -144,7 +144,7 @@
 #define DESCRIBE_DOC_NM_SETTING_CONNECTION_READ_ONLY N_("FALSE if the connection can be modified using the provided settings service's D-Bus interface with the right privileges, or TRUE if the connection is read-only and cannot be modified.")
 #define DESCRIBE_DOC_NM_SETTING_CONNECTION_SECONDARIES N_("List of connection UUIDs that should be activated when the base connection itself is activated. Currently only VPN connections are supported.")
 #define DESCRIBE_DOC_NM_SETTING_CONNECTION_SLAVE_TYPE N_("Setting name of the device type of this slave's master connection (eg, \"bond\"), or NULL if this connection is not a slave.")
-#define DESCRIBE_DOC_NM_SETTING_CONNECTION_STABLE_ID N_("This represents the identity of the connection used for various purposes. It allows to configure multiple profiles to share the identity. Also, the stable-id can contain placeholders that are substituted dynamically and deterministically depending on the context. The stable-id is used for generating IPv6 stable private addresses with ipv6.addr-gen-mode=stable-privacy. It is also used to seed the generated cloned MAC address for ethernet.cloned-mac-address=stable and wifi.cloned-mac-address=stable. It is also used as DHCP client identifier with ipv4.dhcp-client-id=stable and to derive the DHCP DUID with ipv6.dhcp-duid=stable-[llt,ll,uuid]. Note that depending on the context where it is used, other parameters are also seeded into the generation algorithm. For example, a per-host key is commonly also included, so that different systems end up generating different IDs. Or with ipv6.addr-gen-mode=stable-privacy, also the device's name is included, so that different interfaces yield different addresses. The '$' character is treated special to perform dynamic substitutions at runtime. Currently supported are \"${CONNECTION}\", \"${DEVICE}\", \"${BOOT}\", \"${RANDOM}\". These effectively create unique IDs per-connection, per-device, per-boot, or every time. Note that \"${DEVICE}\" corresponds the the interface name of the device. Any unrecognized patterns following '$' are treated verbatim, however are reserved for future use. You are thus advised to avoid '$' or escape it as \"$$\". For example, set it to \"${CONNECTION}-${BOOT}-${DEVICE}\" to create a unique id for this connection that changes with every reboot and differs depending on the interface where the profile activates. If the value is unset, a global connection default is consulted. If the value is still unset, the default is similar to \"${CONNECTION}\" and uses a unique, fixed ID for the connection.")
+#define DESCRIBE_DOC_NM_SETTING_CONNECTION_STABLE_ID N_("This represents the identity of the connection used for various purposes. It allows to configure multiple profiles to share the identity. Also, the stable-id can contain placeholders that are substituted dynamically and deterministically depending on the context. The stable-id is used for generating IPv6 stable private addresses with ipv6.addr-gen-mode=stable-privacy. It is also used to seed the generated cloned MAC address for ethernet.cloned-mac-address=stable and wifi.cloned-mac-address=stable. It is also used as DHCP client identifier with ipv4.dhcp-client-id=stable and to derive the DHCP DUID with ipv6.dhcp-duid=stable-[llt,ll,uuid]. Note that depending on the context where it is used, other parameters are also seeded into the generation algorithm. For example, a per-host key is commonly also included, so that different systems end up generating different IDs. Or with ipv6.addr-gen-mode=stable-privacy, also the device's name is included, so that different interfaces yield different addresses. The '$' character is treated special to perform dynamic substitutions at runtime. Currently supported are \"${CONNECTION}\", \"${DEVICE}\", \"${MAC}\", \"${BOOT}\", \"${RANDOM}\". These effectively create unique IDs per-connection, per-device, per-boot, or every time. Note that \"${DEVICE}\" corresponds the the interface name of the device and \"${MAC}\" is the permanent MAC address of the device. Any unrecognized patterns following '$' are treated verbatim, however are reserved for future use. You are thus advised to avoid '$' or escape it as \"$$\". For example, set it to \"${CONNECTION}-${BOOT}-${DEVICE}\" to create a unique id for this connection that changes with every reboot and differs depending on the interface where the profile activates. If the value is unset, a global connection default is consulted. If the value is still unset, the default is similar to \"${CONNECTION}\" and uses a unique, fixed ID for the connection.")
 #define DESCRIBE_DOC_NM_SETTING_CONNECTION_TIMESTAMP N_("The time, in seconds since the Unix Epoch, that the connection was last _successfully_ fully activated. NetworkManager updates the connection timestamp periodically when the connection is active to ensure that an active connection has the latest timestamp. The property is only meant for reading (changes to this property will not be preserved).")
 #define DESCRIBE_DOC_NM_SETTING_CONNECTION_TYPE N_("Base type of the connection. For hardware-dependent connections, should contain the setting name of the hardware-type specific setting (ie, \"802-3-ethernet\" or \"802-11-wireless\" or \"bluetooth\", etc), and for non-hardware dependent connections like VPN or otherwise, should contain the setting name of that setting type (ie, \"vpn\" or \"bridge\", etc).")
 #define DESCRIBE_DOC_NM_SETTING_CONNECTION_UUID N_("A universally unique identifier for the connection, for example generated with libuuid.  It should be assigned when the connection is created, and never changed as long as the connection still applies to the same network.  For example, it should not be changed when the \"id\" property or NMSettingIP4Config changes, but might need to be re-created when the Wi-Fi SSID, mobile broadband network provider, or \"type\" property changes. The UUID must be in the format \"2815492f-7e56-435e-b2e9-246bd7cdc664\" (ie, contains only hexadecimal characters and \"-\").")
@@ -197,7 +197,7 @@
 #define DESCRIBE_DOC_NM_SETTING_IP_TUNNEL_TTL N_("The TTL to assign to tunneled packets. 0 is a special value meaning that packets inherit the TTL value.")
 #define DESCRIBE_DOC_NM_SETTING_IP4_CONFIG_ADDRESSES N_("Array of IP addresses.")
 #define DESCRIBE_DOC_NM_SETTING_IP4_CONFIG_DAD_TIMEOUT N_("Timeout in milliseconds used to check for the presence of duplicate IP addresses on the network.  If an address conflict is detected, the activation will fail.  A zero value means that no duplicate address detection is performed, -1 means the default value (either configuration ipvx.dad-timeout override or zero).  A value greater than zero is a timeout in milliseconds. The property is currently implemented only for IPv4.")
-#define DESCRIBE_DOC_NM_SETTING_IP4_CONFIG_DHCP_CLIENT_ID N_("A string sent to the DHCP server to identify the local machine which the DHCP server may use to customize the DHCP lease and options. When the property is a hex string ('aa:bb:cc') it is interpreted as a binary client ID, in which case the first byte is assumed to be the 'type' field as per RFC 2132 section 9.14 and the remaining bytes may be an hardware address (e.g. '01:xx:xx:xx:xx:xx:xx' where 1 is the Ethernet ARP type and the rest is a MAC address). If the property is not a hex string it is considered as a non-hardware-address client ID and the 'type' field is set to 0. The special values \"mac\" and \"perm-mac\" are supported, which use the current or permanent MAC address of the device to generate a client identifier with type ethernet (01). Currently, these options only work for ethernet type of links. The special value \"stable\" is supported to generate a type 0 client identifier based on the stable-id (see connection.stable-id) and a per-host key. If unset, a globally configured default is used. If still unset, the client-id from the last lease is reused.")
+#define DESCRIBE_DOC_NM_SETTING_IP4_CONFIG_DHCP_CLIENT_ID N_("A string sent to the DHCP server to identify the local machine which the DHCP server may use to customize the DHCP lease and options. When the property is a hex string ('aa:bb:cc') it is interpreted as a binary client ID, in which case the first byte is assumed to be the 'type' field as per RFC 2132 section 9.14 and the remaining bytes may be an hardware address (e.g. '01:xx:xx:xx:xx:xx:xx' where 1 is the Ethernet ARP type and the rest is a MAC address). If the property is not a hex string it is considered as a non-hardware-address client ID and the 'type' field is set to 0. The special values \"mac\" and \"perm-mac\" are supported, which use the current or permanent MAC address of the device to generate a client identifier with type ethernet (01). Currently, these options only work for ethernet type of links. The special value \"duid\" generates a RFC4361-compliant client identifier based on a hash of the interface name as IAID and /etc/machine-id. The special value \"stable\" is supported to generate a type 0 client identifier based on the stable-id (see connection.stable-id) and a per-host key. If you set the stable-id, you may want to include the \"${DEVICE}\" or \"${MAC}\" specifier to get a per-device key. If unset, a globally configured default is used. If still unset, the default depends on the DHCP plugin.")
 #define DESCRIBE_DOC_NM_SETTING_IP4_CONFIG_DHCP_FQDN N_("If the \"dhcp-send-hostname\" property is TRUE, then the specified FQDN will be sent to the DHCP server when acquiring a lease. This property and \"dhcp-hostname\" are mutually exclusive and cannot be set at the same time.")
 #define DESCRIBE_DOC_NM_SETTING_IP4_CONFIG_DHCP_HOSTNAME N_("If the \"dhcp-send-hostname\" property is TRUE, then the specified name will be sent to the DHCP server when acquiring a lease. This property and \"dhcp-fqdn\" are mutually exclusive and cannot be set at the same time.")
 #define DESCRIBE_DOC_NM_SETTING_IP4_CONFIG_DHCP_SEND_HOSTNAME N_("If TRUE, a hostname is sent to the DHCP server when acquiring a lease. Some DHCP servers use this hostname to update DNS databases, essentially providing a static hostname for the computer.  If the \"dhcp-hostname\" property is NULL and this property is TRUE, the current persistent hostname of the computer is sent.")
@@ -218,7 +218,7 @@
 #define DESCRIBE_DOC_NM_SETTING_IP6_CONFIG_ADDR_GEN_MODE N_("Configure method for creating the address for use with RFC4862 IPv6 Stateless Address Autoconfiguration. The permitted values are: NM_SETTING_IP6_CONFIG_ADDR_GEN_MODE_EUI64 (0) or NM_SETTING_IP6_CONFIG_ADDR_GEN_MODE_STABLE_PRIVACY (1). If the property is set to EUI64, the addresses will be generated using the interface tokens derived from hardware address. This makes the host part of the address to stay constant, making it possible to track host's presence when it changes networks. The address changes when the interface hardware is replaced. The value of stable-privacy enables use of cryptographically secure hash of a secret host-specific key along with the connection's stable-id and the network address as specified by RFC7217. This makes it impossible to use the address track host's presence, and makes the address stable when the network interface hardware is replaced. On D-Bus, the absence of an addr-gen-mode setting equals enabling stable-privacy. For keyfile plugin, the absence of the setting on disk means EUI64 so that the property doesn't change on upgrade from older versions. Note that this setting is distinct from the Privacy Extensions as configured by \"ip6-privacy\" property and it does not affect the temporary addresses configured with this option.")
 #define DESCRIBE_DOC_NM_SETTING_IP6_CONFIG_ADDRESSES N_("Array of IP addresses.")
 #define DESCRIBE_DOC_NM_SETTING_IP6_CONFIG_DAD_TIMEOUT N_("Timeout in milliseconds used to check for the presence of duplicate IP addresses on the network.  If an address conflict is detected, the activation will fail.  A zero value means that no duplicate address detection is performed, -1 means the default value (either configuration ipvx.dad-timeout override or zero).  A value greater than zero is a timeout in milliseconds. The property is currently implemented only for IPv4.")
-#define DESCRIBE_DOC_NM_SETTING_IP6_CONFIG_DHCP_DUID N_("A string containing the DHCPv6 Unique Identifier (DUID) used by the dhcp client to identify itself to DHCPv6 servers (RFC 3315). The DUID is carried in the Client Identifier option. If the property is a hex string ('aa:bb:cc') it is interpreted as a binary DUID and filled as an opaque value in the Client Identifier option. The special value \"lease\" will retrieve the DUID previously used from the lease file belonging to the connection. If no DUID is found and \"dhclient\" is the configured dhcp client, the DUID is searched in the system-wide dhclient lease file. If still no DUID is found, or another dhcp client is used, a global and permanent DUID-UUID (RFC 6355) will be generated based on the machine-id. The special values \"llt\" and \"ll\" will generate a DUID of type LLT or LL (see RFC 3315) based on the current MAC address of the device. In order to try providing a stable DUID-LLT, the time field will contain a constant timestamp that is used globally (for all profiles) and persisted to disk. The special values \"stable-llt\", \"stable-ll\" and \"stable-uuid\" will generate a DUID of the corresponding type, derived from the connection's stable-id and a per-host unique key. So, the link-layer address of \"stable-ll\" and \"stable-llt\" will be a generated address derived from the stable id. The DUID-LLT time value in the \"stable-llt\" option will be picked among a static timespan of three years (the upper bound of the interval is the same constant timestamp used in \"llt\"). When the property is unset, the global value provided for \"ipv6.dhcp-duid\" is used. If no global value is provided, the default \"lease\" value is assumed.")
+#define DESCRIBE_DOC_NM_SETTING_IP6_CONFIG_DHCP_DUID N_("A string containing the DHCPv6 Unique Identifier (DUID) used by the dhcp client to identify itself to DHCPv6 servers (RFC 3315). The DUID is carried in the Client Identifier option. If the property is a hex string ('aa:bb:cc') it is interpreted as a binary DUID and filled as an opaque value in the Client Identifier option. The special value \"lease\" will retrieve the DUID previously used from the lease file belonging to the connection. If no DUID is found and \"dhclient\" is the configured dhcp client, the DUID is searched in the system-wide dhclient lease file. If still no DUID is found, or another dhcp client is used, a global and permanent DUID-UUID (RFC 6355) will be generated based on the machine-id. The special values \"llt\" and \"ll\" will generate a DUID of type LLT or LL (see RFC 3315) based on the current MAC address of the device. In order to try providing a stable DUID-LLT, the time field will contain a constant timestamp that is used globally (for all profiles) and persisted to disk. The special values \"stable-llt\", \"stable-ll\" and \"stable-uuid\" will generate a DUID of the corresponding type, derived from the connection's stable-id and a per-host unique key. You may want to include the \"${DEVICE}\" or \"${MAC}\" specifier in the stable-id, in case this profile gets activated on multiple devices. So, the link-layer address of \"stable-ll\" and \"stable-llt\" will be a generated address derived from the stable id. The DUID-LLT time value in the \"stable-llt\" option will be picked among a static timespan of three years (the upper bound of the interval is the same constant timestamp used in \"llt\"). When the property is unset, the global value provided for \"ipv6.dhcp-duid\" is used. If no global value is provided, the default \"lease\" value is assumed.")
 #define DESCRIBE_DOC_NM_SETTING_IP6_CONFIG_DHCP_HOSTNAME N_("If the \"dhcp-send-hostname\" property is TRUE, then the specified name will be sent to the DHCP server when acquiring a lease. This property and \"dhcp-fqdn\" are mutually exclusive and cannot be set at the same time.")
 #define DESCRIBE_DOC_NM_SETTING_IP6_CONFIG_DHCP_SEND_HOSTNAME N_("If TRUE, a hostname is sent to the DHCP server when acquiring a lease. Some DHCP servers use this hostname to update DNS databases, essentially providing a static hostname for the computer.  If the \"dhcp-hostname\" property is NULL and this property is TRUE, the current persistent hostname of the computer is sent.")
 #define DESCRIBE_DOC_NM_SETTING_IP6_CONFIG_DHCP_TIMEOUT N_("A timeout for a DHCP transaction in seconds.")
@@ -296,8 +296,8 @@
 #define DESCRIBE_DOC_NM_SETTING_SERIAL_SEND_DELAY N_("Time to delay between each byte sent to the modem, in microseconds.")
 #define DESCRIBE_DOC_NM_SETTING_SERIAL_STOPBITS N_("Number of stop bits for communication on the serial port.  Either 1 or 2. The 1 in \"8n1\" for example.")
 #define DESCRIBE_DOC_NM_SETTING_SRIOV_AUTOPROBE_DRIVERS N_("Whether to autoprobe virtual functions by a compatible driver. If set to NM_TERNARY_TRUE (1), the kernel will try to bind VFs to a compatible driver and if this succeeds a new network interface will be instantiated for each VF. If set to NM_TERNARY_FALSE (0), VFs will not be claimed and no network interfaces will be created for them. When set to NM_TERNARY_DEFAULT (-1), the global default is used; in case the global default is unspecified it is assumed to be NM_TERNARY_TRUE (1).")
-#define DESCRIBE_DOC_NM_SETTING_SRIOV_TOTAL_VFS N_("The total number of virtual functions to create.")
-#define DESCRIBE_DOC_NM_SETTING_SRIOV_VFS N_("Array of virtual function descriptors. Each VF descriptor is a dictionary mapping attribute names to GVariant values. The 'index' entry is mandatory for each VF. When represented as string a VF is in the form: \"INDEX [ATTR=VALUE[ ATTR=VALUE]...]\". for example: \"2 mac=00:11:22:33:44:55 spoof-check=true\". The \"vlans\" attribute is represented as a semicolor-separated list of VLAN descriptors, where each descriptor has the form \"ID[.PRIORITY[.PROTO]]\". PROTO can be either 'q' for 802.1Q (the default) or 'ad' for 802.1ad.")
+#define DESCRIBE_DOC_NM_SETTING_SRIOV_TOTAL_VFS N_("The total number of virtual functions to create. Note that when the sriov setting is present NetworkManager enforces the number of virtual functions on the interface also when it is zero. To prevent any changes to SR-IOV parameters don't add a sriov setting to the connection.")
+#define DESCRIBE_DOC_NM_SETTING_SRIOV_VFS N_("Array of virtual function descriptors. Each VF descriptor is a dictionary mapping attribute names to GVariant values. The 'index' entry is mandatory for each VF. When represented as string a VF is in the form: \"INDEX [ATTR=VALUE[ ATTR=VALUE]...]\". for example: \"2 mac=00:11:22:33:44:55 spoof-check=true\". Multiple VFs can be specified using a comma as separator. Currently the following attributes are supported: mac, spoof-check, trust, min-tx-rate, max-tx-rate, vlans. The \"vlans\" attribute is represented as a semicolon-separated list of VLAN descriptors, where each descriptor has the form \"ID[.PRIORITY[.PROTO]]\". PROTO can be either 'q' for 802.1Q (the default) or 'ad' for 802.1ad.")
 #define DESCRIBE_DOC_NM_SETTING_TC_CONFIG_QDISCS N_("Array of TC queueing disciplines.")
 #define DESCRIBE_DOC_NM_SETTING_TC_CONFIG_TFILTERS N_("Array of TC traffic filters.")
 #define DESCRIBE_DOC_NM_SETTING_TEAM_CONFIG N_("The JSON configuration for the team network interface.  The property should contain raw JSON configuration data suitable for teamd, because the value is passed directly to teamd. If not specified, the default configuration is used.  See man teamd.conf for the format details.")
diff --git a/clients/common/settings-docs.h.in b/clients/common/settings-docs.h.in
index f07769c0..bc56edae 100644
--- a/clients/common/settings-docs.h.in
+++ b/clients/common/settings-docs.h.in
@@ -144,7 +144,7 @@
 #define DESCRIBE_DOC_NM_SETTING_CONNECTION_READ_ONLY N_("FALSE if the connection can be modified using the provided settings service's D-Bus interface with the right privileges, or TRUE if the connection is read-only and cannot be modified.")
 #define DESCRIBE_DOC_NM_SETTING_CONNECTION_SECONDARIES N_("List of connection UUIDs that should be activated when the base connection itself is activated. Currently only VPN connections are supported.")
 #define DESCRIBE_DOC_NM_SETTING_CONNECTION_SLAVE_TYPE N_("Setting name of the device type of this slave's master connection (eg, \"bond\"), or NULL if this connection is not a slave.")
-#define DESCRIBE_DOC_NM_SETTING_CONNECTION_STABLE_ID N_("This represents the identity of the connection used for various purposes. It allows to configure multiple profiles to share the identity. Also, the stable-id can contain placeholders that are substituted dynamically and deterministically depending on the context. The stable-id is used for generating IPv6 stable private addresses with ipv6.addr-gen-mode=stable-privacy. It is also used to seed the generated cloned MAC address for ethernet.cloned-mac-address=stable and wifi.cloned-mac-address=stable. It is also used as DHCP client identifier with ipv4.dhcp-client-id=stable and to derive the DHCP DUID with ipv6.dhcp-duid=stable-[llt,ll,uuid]. Note that depending on the context where it is used, other parameters are also seeded into the generation algorithm. For example, a per-host key is commonly also included, so that different systems end up generating different IDs. Or with ipv6.addr-gen-mode=stable-privacy, also the device's name is included, so that different interfaces yield different addresses. The '$' character is treated special to perform dynamic substitutions at runtime. Currently supported are \"${CONNECTION}\", \"${DEVICE}\", \"${BOOT}\", \"${RANDOM}\". These effectively create unique IDs per-connection, per-device, per-boot, or every time. Note that \"${DEVICE}\" corresponds the the interface name of the device. Any unrecognized patterns following '$' are treated verbatim, however are reserved for future use. You are thus advised to avoid '$' or escape it as \"$$\". For example, set it to \"${CONNECTION}-${BOOT}-${DEVICE}\" to create a unique id for this connection that changes with every reboot and differs depending on the interface where the profile activates. If the value is unset, a global connection default is consulted. If the value is still unset, the default is similar to \"${CONNECTION}\" and uses a unique, fixed ID for the connection.")
+#define DESCRIBE_DOC_NM_SETTING_CONNECTION_STABLE_ID N_("This represents the identity of the connection used for various purposes. It allows to configure multiple profiles to share the identity. Also, the stable-id can contain placeholders that are substituted dynamically and deterministically depending on the context. The stable-id is used for generating IPv6 stable private addresses with ipv6.addr-gen-mode=stable-privacy. It is also used to seed the generated cloned MAC address for ethernet.cloned-mac-address=stable and wifi.cloned-mac-address=stable. It is also used as DHCP client identifier with ipv4.dhcp-client-id=stable and to derive the DHCP DUID with ipv6.dhcp-duid=stable-[llt,ll,uuid]. Note that depending on the context where it is used, other parameters are also seeded into the generation algorithm. For example, a per-host key is commonly also included, so that different systems end up generating different IDs. Or with ipv6.addr-gen-mode=stable-privacy, also the device's name is included, so that different interfaces yield different addresses. The '$' character is treated special to perform dynamic substitutions at runtime. Currently supported are \"${CONNECTION}\", \"${DEVICE}\", \"${MAC}\", \"${BOOT}\", \"${RANDOM}\". These effectively create unique IDs per-connection, per-device, per-boot, or every time. Note that \"${DEVICE}\" corresponds the the interface name of the device and \"${MAC}\" is the permanent MAC address of the device. Any unrecognized patterns following '$' are treated verbatim, however are reserved for future use. You are thus advised to avoid '$' or escape it as \"$$\". For example, set it to \"${CONNECTION}-${BOOT}-${DEVICE}\" to create a unique id for this connection that changes with every reboot and differs depending on the interface where the profile activates. If the value is unset, a global connection default is consulted. If the value is still unset, the default is similar to \"${CONNECTION}\" and uses a unique, fixed ID for the connection.")
 #define DESCRIBE_DOC_NM_SETTING_CONNECTION_TIMESTAMP N_("The time, in seconds since the Unix Epoch, that the connection was last _successfully_ fully activated. NetworkManager updates the connection timestamp periodically when the connection is active to ensure that an active connection has the latest timestamp. The property is only meant for reading (changes to this property will not be preserved).")
 #define DESCRIBE_DOC_NM_SETTING_CONNECTION_TYPE N_("Base type of the connection. For hardware-dependent connections, should contain the setting name of the hardware-type specific setting (ie, \"802-3-ethernet\" or \"802-11-wireless\" or \"bluetooth\", etc), and for non-hardware dependent connections like VPN or otherwise, should contain the setting name of that setting type (ie, \"vpn\" or \"bridge\", etc).")
 #define DESCRIBE_DOC_NM_SETTING_CONNECTION_UUID N_("A universally unique identifier for the connection, for example generated with libuuid.  It should be assigned when the connection is created, and never changed as long as the connection still applies to the same network.  For example, it should not be changed when the \"id\" property or NMSettingIP4Config changes, but might need to be re-created when the Wi-Fi SSID, mobile broadband network provider, or \"type\" property changes. The UUID must be in the format \"2815492f-7e56-435e-b2e9-246bd7cdc664\" (ie, contains only hexadecimal characters and \"-\").")
@@ -197,7 +197,7 @@
 #define DESCRIBE_DOC_NM_SETTING_IP_TUNNEL_TTL N_("The TTL to assign to tunneled packets. 0 is a special value meaning that packets inherit the TTL value.")
 #define DESCRIBE_DOC_NM_SETTING_IP4_CONFIG_ADDRESSES N_("Array of IP addresses.")
 #define DESCRIBE_DOC_NM_SETTING_IP4_CONFIG_DAD_TIMEOUT N_("Timeout in milliseconds used to check for the presence of duplicate IP addresses on the network.  If an address conflict is detected, the activation will fail.  A zero value means that no duplicate address detection is performed, -1 means the default value (either configuration ipvx.dad-timeout override or zero).  A value greater than zero is a timeout in milliseconds. The property is currently implemented only for IPv4.")
-#define DESCRIBE_DOC_NM_SETTING_IP4_CONFIG_DHCP_CLIENT_ID N_("A string sent to the DHCP server to identify the local machine which the DHCP server may use to customize the DHCP lease and options. When the property is a hex string ('aa:bb:cc') it is interpreted as a binary client ID, in which case the first byte is assumed to be the 'type' field as per RFC 2132 section 9.14 and the remaining bytes may be an hardware address (e.g. '01:xx:xx:xx:xx:xx:xx' where 1 is the Ethernet ARP type and the rest is a MAC address). If the property is not a hex string it is considered as a non-hardware-address client ID and the 'type' field is set to 0. The special values \"mac\" and \"perm-mac\" are supported, which use the current or permanent MAC address of the device to generate a client identifier with type ethernet (01). Currently, these options only work for ethernet type of links. The special value \"stable\" is supported to generate a type 0 client identifier based on the stable-id (see connection.stable-id) and a per-host key. If unset, a globally configured default is used. If still unset, the client-id from the last lease is reused.")
+#define DESCRIBE_DOC_NM_SETTING_IP4_CONFIG_DHCP_CLIENT_ID N_("A string sent to the DHCP server to identify the local machine which the DHCP server may use to customize the DHCP lease and options. When the property is a hex string ('aa:bb:cc') it is interpreted as a binary client ID, in which case the first byte is assumed to be the 'type' field as per RFC 2132 section 9.14 and the remaining bytes may be an hardware address (e.g. '01:xx:xx:xx:xx:xx:xx' where 1 is the Ethernet ARP type and the rest is a MAC address). If the property is not a hex string it is considered as a non-hardware-address client ID and the 'type' field is set to 0. The special values \"mac\" and \"perm-mac\" are supported, which use the current or permanent MAC address of the device to generate a client identifier with type ethernet (01). Currently, these options only work for ethernet type of links. The special value \"duid\" generates a RFC4361-compliant client identifier based on a hash of the interface name as IAID and /etc/machine-id. The special value \"stable\" is supported to generate a type 0 client identifier based on the stable-id (see connection.stable-id) and a per-host key. If you set the stable-id, you may want to include the \"${DEVICE}\" or \"${MAC}\" specifier to get a per-device key. If unset, a globally configured default is used. If still unset, the default depends on the DHCP plugin.")
 #define DESCRIBE_DOC_NM_SETTING_IP4_CONFIG_DHCP_FQDN N_("If the \"dhcp-send-hostname\" property is TRUE, then the specified FQDN will be sent to the DHCP server when acquiring a lease. This property and \"dhcp-hostname\" are mutually exclusive and cannot be set at the same time.")
 #define DESCRIBE_DOC_NM_SETTING_IP4_CONFIG_DHCP_HOSTNAME N_("If the \"dhcp-send-hostname\" property is TRUE, then the specified name will be sent to the DHCP server when acquiring a lease. This property and \"dhcp-fqdn\" are mutually exclusive and cannot be set at the same time.")
 #define DESCRIBE_DOC_NM_SETTING_IP4_CONFIG_DHCP_SEND_HOSTNAME N_("If TRUE, a hostname is sent to the DHCP server when acquiring a lease. Some DHCP servers use this hostname to update DNS databases, essentially providing a static hostname for the computer.  If the \"dhcp-hostname\" property is NULL and this property is TRUE, the current persistent hostname of the computer is sent.")
@@ -218,7 +218,7 @@
 #define DESCRIBE_DOC_NM_SETTING_IP6_CONFIG_ADDR_GEN_MODE N_("Configure method for creating the address for use with RFC4862 IPv6 Stateless Address Autoconfiguration. The permitted values are: NM_SETTING_IP6_CONFIG_ADDR_GEN_MODE_EUI64 (0) or NM_SETTING_IP6_CONFIG_ADDR_GEN_MODE_STABLE_PRIVACY (1). If the property is set to EUI64, the addresses will be generated using the interface tokens derived from hardware address. This makes the host part of the address to stay constant, making it possible to track host's presence when it changes networks. The address changes when the interface hardware is replaced. The value of stable-privacy enables use of cryptographically secure hash of a secret host-specific key along with the connection's stable-id and the network address as specified by RFC7217. This makes it impossible to use the address track host's presence, and makes the address stable when the network interface hardware is replaced. On D-Bus, the absence of an addr-gen-mode setting equals enabling stable-privacy. For keyfile plugin, the absence of the setting on disk means EUI64 so that the property doesn't change on upgrade from older versions. Note that this setting is distinct from the Privacy Extensions as configured by \"ip6-privacy\" property and it does not affect the temporary addresses configured with this option.")
 #define DESCRIBE_DOC_NM_SETTING_IP6_CONFIG_ADDRESSES N_("Array of IP addresses.")
 #define DESCRIBE_DOC_NM_SETTING_IP6_CONFIG_DAD_TIMEOUT N_("Timeout in milliseconds used to check for the presence of duplicate IP addresses on the network.  If an address conflict is detected, the activation will fail.  A zero value means that no duplicate address detection is performed, -1 means the default value (either configuration ipvx.dad-timeout override or zero).  A value greater than zero is a timeout in milliseconds. The property is currently implemented only for IPv4.")
-#define DESCRIBE_DOC_NM_SETTING_IP6_CONFIG_DHCP_DUID N_("A string containing the DHCPv6 Unique Identifier (DUID) used by the dhcp client to identify itself to DHCPv6 servers (RFC 3315). The DUID is carried in the Client Identifier option. If the property is a hex string ('aa:bb:cc') it is interpreted as a binary DUID and filled as an opaque value in the Client Identifier option. The special value \"lease\" will retrieve the DUID previously used from the lease file belonging to the connection. If no DUID is found and \"dhclient\" is the configured dhcp client, the DUID is searched in the system-wide dhclient lease file. If still no DUID is found, or another dhcp client is used, a global and permanent DUID-UUID (RFC 6355) will be generated based on the machine-id. The special values \"llt\" and \"ll\" will generate a DUID of type LLT or LL (see RFC 3315) based on the current MAC address of the device. In order to try providing a stable DUID-LLT, the time field will contain a constant timestamp that is used globally (for all profiles) and persisted to disk. The special values \"stable-llt\", \"stable-ll\" and \"stable-uuid\" will generate a DUID of the corresponding type, derived from the connection's stable-id and a per-host unique key. So, the link-layer address of \"stable-ll\" and \"stable-llt\" will be a generated address derived from the stable id. The DUID-LLT time value in the \"stable-llt\" option will be picked among a static timespan of three years (the upper bound of the interval is the same constant timestamp used in \"llt\"). When the property is unset, the global value provided for \"ipv6.dhcp-duid\" is used. If no global value is provided, the default \"lease\" value is assumed.")
+#define DESCRIBE_DOC_NM_SETTING_IP6_CONFIG_DHCP_DUID N_("A string containing the DHCPv6 Unique Identifier (DUID) used by the dhcp client to identify itself to DHCPv6 servers (RFC 3315). The DUID is carried in the Client Identifier option. If the property is a hex string ('aa:bb:cc') it is interpreted as a binary DUID and filled as an opaque value in the Client Identifier option. The special value \"lease\" will retrieve the DUID previously used from the lease file belonging to the connection. If no DUID is found and \"dhclient\" is the configured dhcp client, the DUID is searched in the system-wide dhclient lease file. If still no DUID is found, or another dhcp client is used, a global and permanent DUID-UUID (RFC 6355) will be generated based on the machine-id. The special values \"llt\" and \"ll\" will generate a DUID of type LLT or LL (see RFC 3315) based on the current MAC address of the device. In order to try providing a stable DUID-LLT, the time field will contain a constant timestamp that is used globally (for all profiles) and persisted to disk. The special values \"stable-llt\", \"stable-ll\" and \"stable-uuid\" will generate a DUID of the corresponding type, derived from the connection's stable-id and a per-host unique key. You may want to include the \"${DEVICE}\" or \"${MAC}\" specifier in the stable-id, in case this profile gets activated on multiple devices. So, the link-layer address of \"stable-ll\" and \"stable-llt\" will be a generated address derived from the stable id. The DUID-LLT time value in the \"stable-llt\" option will be picked among a static timespan of three years (the upper bound of the interval is the same constant timestamp used in \"llt\"). When the property is unset, the global value provided for \"ipv6.dhcp-duid\" is used. If no global value is provided, the default \"lease\" value is assumed.")
 #define DESCRIBE_DOC_NM_SETTING_IP6_CONFIG_DHCP_HOSTNAME N_("If the \"dhcp-send-hostname\" property is TRUE, then the specified name will be sent to the DHCP server when acquiring a lease. This property and \"dhcp-fqdn\" are mutually exclusive and cannot be set at the same time.")
 #define DESCRIBE_DOC_NM_SETTING_IP6_CONFIG_DHCP_SEND_HOSTNAME N_("If TRUE, a hostname is sent to the DHCP server when acquiring a lease. Some DHCP servers use this hostname to update DNS databases, essentially providing a static hostname for the computer.  If the \"dhcp-hostname\" property is NULL and this property is TRUE, the current persistent hostname of the computer is sent.")
 #define DESCRIBE_DOC_NM_SETTING_IP6_CONFIG_DHCP_TIMEOUT N_("A timeout for a DHCP transaction in seconds.")
@@ -296,8 +296,8 @@
 #define DESCRIBE_DOC_NM_SETTING_SERIAL_SEND_DELAY N_("Time to delay between each byte sent to the modem, in microseconds.")
 #define DESCRIBE_DOC_NM_SETTING_SERIAL_STOPBITS N_("Number of stop bits for communication on the serial port.  Either 1 or 2. The 1 in \"8n1\" for example.")
 #define DESCRIBE_DOC_NM_SETTING_SRIOV_AUTOPROBE_DRIVERS N_("Whether to autoprobe virtual functions by a compatible driver. If set to NM_TERNARY_TRUE (1), the kernel will try to bind VFs to a compatible driver and if this succeeds a new network interface will be instantiated for each VF. If set to NM_TERNARY_FALSE (0), VFs will not be claimed and no network interfaces will be created for them. When set to NM_TERNARY_DEFAULT (-1), the global default is used; in case the global default is unspecified it is assumed to be NM_TERNARY_TRUE (1).")
-#define DESCRIBE_DOC_NM_SETTING_SRIOV_TOTAL_VFS N_("The total number of virtual functions to create.")
-#define DESCRIBE_DOC_NM_SETTING_SRIOV_VFS N_("Array of virtual function descriptors. Each VF descriptor is a dictionary mapping attribute names to GVariant values. The 'index' entry is mandatory for each VF. When represented as string a VF is in the form: \"INDEX [ATTR=VALUE[ ATTR=VALUE]...]\". for example: \"2 mac=00:11:22:33:44:55 spoof-check=true\". The \"vlans\" attribute is represented as a semicolor-separated list of VLAN descriptors, where each descriptor has the form \"ID[.PRIORITY[.PROTO]]\". PROTO can be either 'q' for 802.1Q (the default) or 'ad' for 802.1ad.")
+#define DESCRIBE_DOC_NM_SETTING_SRIOV_TOTAL_VFS N_("The total number of virtual functions to create. Note that when the sriov setting is present NetworkManager enforces the number of virtual functions on the interface also when it is zero. To prevent any changes to SR-IOV parameters don't add a sriov setting to the connection.")
+#define DESCRIBE_DOC_NM_SETTING_SRIOV_VFS N_("Array of virtual function descriptors. Each VF descriptor is a dictionary mapping attribute names to GVariant values. The 'index' entry is mandatory for each VF. When represented as string a VF is in the form: \"INDEX [ATTR=VALUE[ ATTR=VALUE]...]\". for example: \"2 mac=00:11:22:33:44:55 spoof-check=true\". Multiple VFs can be specified using a comma as separator. Currently the following attributes are supported: mac, spoof-check, trust, min-tx-rate, max-tx-rate, vlans. The \"vlans\" attribute is represented as a semicolon-separated list of VLAN descriptors, where each descriptor has the form \"ID[.PRIORITY[.PROTO]]\". PROTO can be either 'q' for 802.1Q (the default) or 'ad' for 802.1ad.")
 #define DESCRIBE_DOC_NM_SETTING_TC_CONFIG_QDISCS N_("Array of TC queueing disciplines.")
 #define DESCRIBE_DOC_NM_SETTING_TC_CONFIG_TFILTERS N_("Array of TC traffic filters.")
 #define DESCRIBE_DOC_NM_SETTING_TEAM_CONFIG N_("The JSON configuration for the team network interface.  The property should contain raw JSON configuration data suitable for teamd, because the value is passed directly to teamd. If not specified, the default configuration is used.  See man teamd.conf for the format details.")
diff --git a/clients/tests/test-client.py b/clients/tests/test-client.py
index e8f1f7f2..d92d499c 100755
--- a/clients/tests/test-client.py
+++ b/clients/tests/test-client.py
@@ -744,8 +744,8 @@ class TestNmcli(NmTestBase):
                     skip_test_for_l10n_diff.append(n['test_name'])
                     continue
                 print("\n\n\nThe file '%s' does not have the expected content:" % (filename))
-                print("ACTUAL OUTPUT:\n[[%s]]\n" % (results_expect[i]))
-                print("EXPECT OUTPUT:\n[[%s]]\n" % (n['content']))
+                print("ACTUAL OUTPUT:\n[[%s]]\n" % (n['content']))
+                print("EXPECT OUTPUT:\n[[%s]]\n" % (results_expect[i]))
                 print("Let the test write the file by rerunning with NM_TEST_REGENERATE=1")
                 print("See howto in %s for details.\n" % (PathConfiguration.canonical_script_filename()))
                 self.fail("Unexpected output of command, expected %s. Rerun test with NM_TEST_REGENERATE=1 to regenerate files" % (filename))
diff --git a/configure b/configure
index 59fcebd8..cdb1ad85 100755
--- a/configure
+++ b/configure
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for NetworkManager 1.14.4.
+# Generated by GNU Autoconf 2.69 for NetworkManager 1.14.6.
 #
 # Report bugs to <http://bugzilla.gnome.org/enter_bug.cgi?product=NetworkManager>.
 #
@@ -591,8 +591,8 @@ MAKEFLAGS=
 # Identity of this package.
 PACKAGE_NAME='NetworkManager'
 PACKAGE_TARNAME='NetworkManager'
-PACKAGE_VERSION='1.14.4'
-PACKAGE_STRING='NetworkManager 1.14.4'
+PACKAGE_VERSION='1.14.6'
+PACKAGE_STRING='NetworkManager 1.14.6'
 PACKAGE_BUGREPORT='http://bugzilla.gnome.org/enter_bug.cgi?product=NetworkManager'
 PACKAGE_URL=''
 
@@ -1727,7 +1727,7 @@ if test "$ac_init_help" = "long"; then
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures NetworkManager 1.14.4 to adapt to many kinds of systems.
+\`configure' configures NetworkManager 1.14.6 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1797,7 +1797,7 @@ fi
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of NetworkManager 1.14.4:";;
+     short | recursive ) echo "Configuration of NetworkManager 1.14.6:";;
    esac
   cat <<\_ACEOF
 
@@ -2136,7 +2136,7 @@ fi
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-NetworkManager configure 1.14.4
+NetworkManager configure 1.14.6
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2909,7 +2909,7 @@ cat >config.log <<_ACEOF
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by NetworkManager $as_me 1.14.4, which was
+It was created by NetworkManager $as_me 1.14.6, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -3779,7 +3779,7 @@ fi
 
 # Define the identity of the package.
  PACKAGE='NetworkManager'
- VERSION='1.14.4'
+ VERSION='1.14.6'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -17963,8 +17963,8 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
 NM_MAJOR_VERSION=1
 NM_MINOR_VERSION=14
-NM_MICRO_VERSION=4
-NM_VERSION=1.14.4
+NM_MICRO_VERSION=6
+NM_VERSION=1.14.6
 
 
 
@@ -17972,7 +17972,7 @@ NM_VERSION=1.14.4
 
 
 
-NM_GIT_SHA=66cad942f2404a5bac0df1a623fb5d72ab8f4d20
+NM_GIT_SHA=dc56a21ed6a21565d979887ba9ebc0334e791c47
 
 if test """" != "no-config-h" ; then
 
@@ -28929,7 +28929,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by NetworkManager $as_me 1.14.4, which was
+This file was extended by NetworkManager $as_me 1.14.6, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -28995,7 +28995,7 @@ _ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-NetworkManager config.status 1.14.4
+NetworkManager config.status 1.14.6
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
diff --git a/configure.ac b/configure.ac
index f101594f..1f9dcb3c 100644
--- a/configure.ac
+++ b/configure.ac
@@ -8,7 +8,7 @@ dnl    "shared/nm-version-macros.h.in"
 dnl  - update number in meson.build
 m4_define([nm_major_version], [1])
 m4_define([nm_minor_version], [14])
-m4_define([nm_micro_version], [4])
+m4_define([nm_micro_version], [6])
 m4_define([nm_version],
           [nm_major_version.nm_minor_version.nm_micro_version])
 
diff --git a/docs/api/html/NetworkManager.conf.html b/docs/api/html/NetworkManager.conf.html
index 0e6bec04..4fbf45e6 100644
--- a/docs/api/html/NetworkManager.conf.html
+++ b/docs/api/html/NetworkManager.conf.html
@@ -8,7 +8,7 @@
 <link rel="up" href="manpages.html" title="Part I. Manual Pages">
 <link rel="prev" href="NetworkManager.html" title="NetworkManager">
 <link rel="next" href="nmcli.html" title="nmcli">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -603,6 +603,14 @@ ipv6.ip6-privacy=0
 </colgroup>
 <tbody>
 <tr>
+<td><p><span class="term"><code class="varname">802-1x.auth-timeout</code></span></p></td>
+<td></td>
+</tr>
+<tr>
+<td><p><span class="term"><code class="varname">cdma.mtu</code></span></p></td>
+<td></td>
+</tr>
+<tr>
 <td><p><span class="term"><code class="varname">connection.auth-retries</code></span></p></td>
 <td><p>If left unspecified, the default value is 3 tries before failing the connection.
           </p></td>
@@ -644,6 +652,10 @@ ipv6.ip6-privacy=0
 <td></td>
 </tr>
 <tr>
+<td><p><span class="term"><code class="varname">gsm.mtu</code></span></p></td>
+<td></td>
+</tr>
+<tr>
 <td><p><span class="term"><code class="varname">infiniband.mtu</code></span></p></td>
 <td><p>If configured explicitly to 0, the MTU is not reconfigured during device activation unless it is required due to IPv6 constraints. If left unspecified, a DHCP/IPv6 SLAAC provided value is used or the MTU is left unspecified on activation.</p></td>
 </tr>
@@ -742,6 +754,10 @@ ipv6.ip6-privacy=0
 <td><p>If left unspecified, the default value
           "<code class="literal">optional</code>" will be used.</p></td>
 </tr>
+<tr>
+<td><p><span class="term"><code class="varname">wifi.wake-on-wlan</code></span></p></td>
+<td></td>
+</tr>
 </tbody>
 </table></div>
 <p>
@@ -1164,6 +1180,8 @@ enable=env:TAG1
               be used to negate the match. Note that if one except-predicate
               matches, the entire configuration will be disabled.
               In other words, a except predicate always wins over other predicates.
+              If the setting only consists of "except:" matches and none of the
+              negative conditions are satisfied, the configuration is still enabled.
 </p>
 <pre class="programlisting">
 # enable the configuration either when the environment variable
@@ -1351,10 +1369,21 @@ enable=nm-version-min:1.3,nm-version-min:1.2.6,nm-version-min:1.0.16
           </p></td>
 </tr>
 <tr>
+<td><p><span class="term">dhcp-plugin:DHCP</span></p></td>
+<td><p>Match the configured DHCP plugin "<code class="literal">main.dhcp</code>".
+          </p></td>
+</tr>
+<tr>
 <td><p><span class="term">except:SPEC</span></p></td>
-<td><p>Negative match of a device. <code class="literal">SPEC</code> must be explicitly qualified with
+<td>
+<p>Negative match of a device. <code class="literal">SPEC</code> must be explicitly qualified with
              a prefix such as <code class="literal">interface-name:</code>. A negative match has higher priority then the positive
-             matches above.</p></td>
+             matches above.</p>
+<p>If there is a list consisting only of negative matches, the behavior is the same as if there
+             is also match-all. That means, if none of all the negative matches is satisfied, the overall result is
+             still a positive match. That means, <code class="literal">"except:interface-name:eth0"</code> is the same as
+             <code class="literal">"*,except:interface-name:eth0"</code>.</p>
+</td>
 </tr>
 <tr>
 <td><p><span class="term">SPEC[,;]SPEC</span></p></td>
@@ -1401,6 +1430,6 @@ interface-name:vboxnet*,except:interface-name:vboxnet2
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/api/html/NetworkManager.html b/docs/api/html/NetworkManager.html
index 0b0a254e..fbb7dd99 100644
--- a/docs/api/html/NetworkManager.html
+++ b/docs/api/html/NetworkManager.html
@@ -8,7 +8,7 @@
 <link rel="up" href="manpages.html" title="Part I. Manual Pages">
 <link rel="prev" href="manpages.html" title="Part I. Manual Pages">
 <link rel="next" href="NetworkManager.conf.html" title="NetworkManager.conf">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -552,6 +552,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/api/html/ch01.html b/docs/api/html/ch01.html
index 12c58ba1..93f348c9 100644
--- a/docs/api/html/ch01.html
+++ b/docs/api/html/ch01.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ref-settings.html" title="Part II. Network Configuration Setting Specification">
 <link rel="prev" href="ref-settings.html" title="Part II. Network Configuration Setting Specification">
 <link rel="next" href="settings-connection.html" title="connection">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -158,6 +158,6 @@
 </dl></div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/api/html/dbus-secret-agent.html b/docs/api/html/dbus-secret-agent.html
index 7683a141..28324ed8 100644
--- a/docs/api/html/dbus-secret-agent.html
+++ b/docs/api/html/dbus-secret-agent.html
@@ -8,7 +8,7 @@
 <link rel="up" href="secret-agents.html" title="Part IV. Secret Agent D-Bus API Reference">
 <link rel="prev" href="secret-agents.html" title="Part IV. Secret Agent D-Bus API Reference">
 <link rel="next" href="gdbus-org.freedesktop.NetworkManager.SecretAgent.html" title="org.freedesktop.NetworkManager.SecretAgent">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -27,6 +27,6 @@
 </dt></dl></div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/api/html/dbus-types.html b/docs/api/html/dbus-types.html
index f08150e1..0a82e9fa 100644
--- a/docs/api/html/dbus-types.html
+++ b/docs/api/html/dbus-types.html
@@ -8,7 +8,7 @@
 <link rel="up" href="spec.html" title="Part III. D-Bus API Reference">
 <link rel="prev" href="gdbus-org.freedesktop.NetworkManager.Checkpoint.html" title="org.freedesktop.NetworkManager.Checkpoint">
 <link rel="next" href="nm-dbus-types.html" title="NetworkManager D-Bus API Types">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -27,6 +27,6 @@
 </dt></dl></div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/api/html/dbus-vpn-plugin.html b/docs/api/html/dbus-vpn-plugin.html
index 6168ab68..b7303cb1 100644
--- a/docs/api/html/dbus-vpn-plugin.html
+++ b/docs/api/html/dbus-vpn-plugin.html
@@ -8,7 +8,7 @@
 <link rel="up" href="vpn-plugins.html" title="Part V. VPN Plugin D-Bus API Reference">
 <link rel="prev" href="vpn-plugins.html" title="Part V. VPN Plugin D-Bus API Reference">
 <link rel="next" href="gdbus-org.freedesktop.NetworkManager.VPN.Plugin.html" title="org.freedesktop.NetworkManager.VPN.Plugin">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -27,6 +27,6 @@
 </dt></dl></div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/api/html/dbus-vpn-types.html b/docs/api/html/dbus-vpn-types.html
index 47e006c3..ce721563 100644
--- a/docs/api/html/dbus-vpn-types.html
+++ b/docs/api/html/dbus-vpn-types.html
@@ -8,7 +8,7 @@
 <link rel="up" href="vpn-plugins.html" title="Part V. VPN Plugin D-Bus API Reference">
 <link rel="prev" href="gdbus-org.freedesktop.NetworkManager.VPN.Plugin.html" title="org.freedesktop.NetworkManager.VPN.Plugin">
 <link rel="next" href="nm-vpn-dbus-types.html" title="VPN Plugin D-Bus API Types">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -27,6 +27,6 @@
 </dt></dl></div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/api/html/gdbus-org.freedesktop.NetworkManager.AccessPoint.html b/docs/api/html/gdbus-org.freedesktop.NetworkManager.AccessPoint.html
index 6efba716..d1232d30 100644
--- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.AccessPoint.html
+++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.AccessPoint.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ref-dbus-access-points.html" title="The /org/freedesktop/NetworkManager/AccessPoint/* objects">
 <link rel="prev" href="ref-dbus-access-points.html" title="The /org/freedesktop/NetworkManager/AccessPoint/* objects">
 <link rel="next" href="ref-dbus-checkpoint.html" title="The /org/freedesktop/NetworkManager/Checkpoint/* objects">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -186,6 +186,6 @@ LastSeen  readable   i
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/api/html/gdbus-org.freedesktop.NetworkManager.AgentManager.html b/docs/api/html/gdbus-org.freedesktop.NetworkManager.AgentManager.html
index 0a0d0ecc..7c16d0b3 100644
--- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.AgentManager.html
+++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.AgentManager.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ref-dbus-agent-manager.html" title="The /org/freedesktop/NetworkManager/AgentManager object">
 <link rel="prev" href="ref-dbus-agent-manager.html" title="The /org/freedesktop/NetworkManager/AgentManager object">
 <link rel="next" href="ref-dbus-dns-manager.html" title="The /org/freedesktop/NetworkManager/DnsManager object">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -105,6 +105,6 @@ Unregister ();
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Checkpoint.html b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Checkpoint.html
index 1443baa3..bc6f21f5 100644
--- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Checkpoint.html
+++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Checkpoint.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ref-dbus-checkpoint.html" title="The /org/freedesktop/NetworkManager/Checkpoint/* objects">
 <link rel="prev" href="ref-dbus-checkpoint.html" title="The /org/freedesktop/NetworkManager/Checkpoint/* objects">
 <link rel="next" href="dbus-types.html" title="Types">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -105,6 +105,6 @@ RollbackTimeout  readable   u
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Connection.Active.html b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Connection.Active.html
index 2cf0226c..df0af7a0 100644
--- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Connection.Active.html
+++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Connection.Active.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ref-dbus-active-connections.html" title="The /org/freedesktop/NetworkManager/ActiveConnection/* objects">
 <link rel="prev" href="ref-dbus-active-connections.html" title="The /org/freedesktop/NetworkManager/ActiveConnection/* objects">
 <link rel="next" href="gdbus-org.freedesktop.NetworkManager.VPN.Connection.html" title="org.freedesktop.NetworkManager.VPN.Connection">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -297,6 +297,6 @@ Master  readable   o
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/api/html/gdbus-org.freedesktop.NetworkManager.DHCP4Config.html b/docs/api/html/gdbus-org.freedesktop.NetworkManager.DHCP4Config.html
index 3d71cb67..e10510ce 100644
--- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.DHCP4Config.html
+++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.DHCP4Config.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ref-dbus-dhcp4-configs.html" title="The /org/freedesktop/NetworkManager/DHCP4Config/* objects">
 <link rel="prev" href="ref-dbus-dhcp4-configs.html" title="The /org/freedesktop/NetworkManager/DHCP4Config/* objects">
 <link rel="next" href="ref-dbus-dhcp6-configs.html" title="The /org/freedesktop/NetworkManager/DHCP4Config/* objects">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -84,6 +84,6 @@ Options  readable   a{sv}
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/api/html/gdbus-org.freedesktop.NetworkManager.DHCP6Config.html b/docs/api/html/gdbus-org.freedesktop.NetworkManager.DHCP6Config.html
index b00cde4f..287a6c59 100644
--- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.DHCP6Config.html
+++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.DHCP6Config.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ref-dbus-dhcp6-configs.html" title="The /org/freedesktop/NetworkManager/DHCP4Config/* objects">
 <link rel="prev" href="ref-dbus-dhcp6-configs.html" title="The /org/freedesktop/NetworkManager/DHCP4Config/* objects">
 <link rel="next" href="ref-dbus-access-points.html" title="The /org/freedesktop/NetworkManager/AccessPoint/* objects">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -84,6 +84,6 @@ Options  readable   a{sv}
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Adsl.html b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Adsl.html
index 286b5e3d..5570fcab 100644
--- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Adsl.html
+++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Adsl.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ref-dbus-devices.html" title="The /org/freedesktop/NetworkManager/Devices/* objects">
 <link rel="prev" href="gdbus-org.freedesktop.NetworkManager.Device.Statistics.html" title="org.freedesktop.NetworkManager.Device.Statistics">
 <link rel="next" href="gdbus-org.freedesktop.NetworkManager.Device.Bond.html" title="org.freedesktop.NetworkManager.Device.Bond">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -83,6 +83,6 @@ Carrier  readable   b
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Bluetooth.html b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Bluetooth.html
index 3756c9ab..cdb44393 100644
--- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Bluetooth.html
+++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Bluetooth.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ref-dbus-devices.html" title="The /org/freedesktop/NetworkManager/Devices/* objects">
 <link rel="prev" href="gdbus-org.freedesktop.NetworkManager.Device.Bridge.html" title="org.freedesktop.NetworkManager.Device.Bridge">
 <link rel="next" href="gdbus-org.freedesktop.NetworkManager.Device.Dummy.html" title="org.freedesktop.NetworkManager.Device.Dummy">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -105,6 +105,6 @@ BtCapabilities  readable   u
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Bond.html b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Bond.html
index b85a1b91..5a7cebd0 100644
--- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Bond.html
+++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Bond.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ref-dbus-devices.html" title="The /org/freedesktop/NetworkManager/Devices/* objects">
 <link rel="prev" href="gdbus-org.freedesktop.NetworkManager.Device.Adsl.html" title="org.freedesktop.NetworkManager.Device.Adsl">
 <link rel="next" href="gdbus-org.freedesktop.NetworkManager.Device.Bridge.html" title="org.freedesktop.NetworkManager.Device.Bridge">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -105,6 +105,6 @@ Slaves  readable   ao
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Bridge.html b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Bridge.html
index 45ad5504..256362e0 100644
--- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Bridge.html
+++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Bridge.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ref-dbus-devices.html" title="The /org/freedesktop/NetworkManager/Devices/* objects">
 <link rel="prev" href="gdbus-org.freedesktop.NetworkManager.Device.Bond.html" title="org.freedesktop.NetworkManager.Device.Bond">
 <link rel="next" href="gdbus-org.freedesktop.NetworkManager.Device.Bluetooth.html" title="org.freedesktop.NetworkManager.Device.Bluetooth">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -105,6 +105,6 @@ Slaves  readable   ao
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Dummy.html b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Dummy.html
index 282e2942..cf8c4383 100644
--- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Dummy.html
+++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Dummy.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ref-dbus-devices.html" title="The /org/freedesktop/NetworkManager/Devices/* objects">
 <link rel="prev" href="gdbus-org.freedesktop.NetworkManager.Device.Bluetooth.html" title="org.freedesktop.NetworkManager.Device.Bluetooth">
 <link rel="next" href="gdbus-org.freedesktop.NetworkManager.Device.Wired.html" title="org.freedesktop.NetworkManager.Device.Wired">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -83,6 +83,6 @@ HwAddress  readable   s
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Generic.html b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Generic.html
index abc8ef24..3a339492 100644
--- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Generic.html
+++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Generic.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ref-dbus-devices.html" title="The /org/freedesktop/NetworkManager/Devices/* objects">
 <link rel="prev" href="gdbus-org.freedesktop.NetworkManager.Device.Wired.html" title="org.freedesktop.NetworkManager.Device.Wired">
 <link rel="next" href="gdbus-org.freedesktop.NetworkManager.Device.Infiniband.html" title="org.freedesktop.NetworkManager.Device.Infiniband">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -93,6 +93,6 @@ TypeDescription  readable   s
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.IPTunnel.html b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.IPTunnel.html
index 33bcfb12..241a1634 100644
--- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.IPTunnel.html
+++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.IPTunnel.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ref-dbus-devices.html" title="The /org/freedesktop/NetworkManager/Devices/* objects">
 <link rel="prev" href="gdbus-org.freedesktop.NetworkManager.Device.Infiniband.html" title="org.freedesktop.NetworkManager.Device.Infiniband">
 <link rel="next" href="gdbus-org.freedesktop.NetworkManager.Device.Lowpan.html" title="org.freedesktop.NetworkManager.Device.Lowpan">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -197,6 +197,6 @@ Flags  readable   u
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Infiniband.html b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Infiniband.html
index 62e1228b..b9128792 100644
--- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Infiniband.html
+++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Infiniband.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ref-dbus-devices.html" title="The /org/freedesktop/NetworkManager/Devices/* objects">
 <link rel="prev" href="gdbus-org.freedesktop.NetworkManager.Device.Generic.html" title="org.freedesktop.NetworkManager.Device.Generic">
 <link rel="next" href="gdbus-org.freedesktop.NetworkManager.Device.IPTunnel.html" title="org.freedesktop.NetworkManager.Device.IPTunnel">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -94,6 +94,6 @@ Carrier  readable   b
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Lowpan.html b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Lowpan.html
index f9455e94..b95bc1ab 100644
--- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Lowpan.html
+++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Lowpan.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ref-dbus-devices.html" title="The /org/freedesktop/NetworkManager/Devices/* objects">
 <link rel="prev" href="gdbus-org.freedesktop.NetworkManager.Device.IPTunnel.html" title="org.freedesktop.NetworkManager.Device.IPTunnel">
 <link rel="next" href="gdbus-org.freedesktop.NetworkManager.Device.Macsec.html" title="org.freedesktop.NetworkManager.Device.Macsec">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -65,6 +65,6 @@ Parent  readable   o
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Macsec.html b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Macsec.html
index 1685907b..4fb5a435 100644
--- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Macsec.html
+++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Macsec.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ref-dbus-devices.html" title="The /org/freedesktop/NetworkManager/Devices/* objects">
 <link rel="prev" href="gdbus-org.freedesktop.NetworkManager.Device.Lowpan.html" title="org.freedesktop.NetworkManager.Device.Lowpan">
 <link rel="next" href="gdbus-org.freedesktop.NetworkManager.Device.Macvlan.html" title="org.freedesktop.NetworkManager.Device.Macvlan">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -209,6 +209,6 @@ ReplayProtect  readable   b
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Macvlan.html b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Macvlan.html
index b104efb1..23d67da2 100644
--- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Macvlan.html
+++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Macvlan.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ref-dbus-devices.html" title="The /org/freedesktop/NetworkManager/Devices/* objects">
 <link rel="prev" href="gdbus-org.freedesktop.NetworkManager.Device.Macsec.html" title="org.freedesktop.NetworkManager.Device.Macsec">
 <link rel="next" href="gdbus-org.freedesktop.NetworkManager.Device.Modem.html" title="org.freedesktop.NetworkManager.Device.Modem">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -113,6 +113,6 @@ Tap  readable   b
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Modem.html b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Modem.html
index 8cd060fe..57ffe215 100644
--- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Modem.html
+++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Modem.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ref-dbus-devices.html" title="The /org/freedesktop/NetworkManager/Devices/* objects">
 <link rel="prev" href="gdbus-org.freedesktop.NetworkManager.Device.Macvlan.html" title="org.freedesktop.NetworkManager.Device.Macvlan">
 <link rel="next" href="gdbus-org.freedesktop.NetworkManager.Device.OlpcMesh.html" title="org.freedesktop.NetworkManager.Device.OlpcMesh">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -101,6 +101,6 @@ CurrentCapabilities  readable   u
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.OlpcMesh.html b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.OlpcMesh.html
index b7fb2c2c..ade3b84e 100644
--- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.OlpcMesh.html
+++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.OlpcMesh.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ref-dbus-devices.html" title="The /org/freedesktop/NetworkManager/Devices/* objects">
 <link rel="prev" href="gdbus-org.freedesktop.NetworkManager.Device.Modem.html" title="org.freedesktop.NetworkManager.Device.Modem">
 <link rel="next" href="gdbus-org.freedesktop.NetworkManager.Device.OvsBridge.html" title="org.freedesktop.NetworkManager.Device.OvsBridge">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -103,6 +103,6 @@ ActiveChannel  readable   u
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.OvsBridge.html b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.OvsBridge.html
index d78f141c..49e9e402 100644
--- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.OvsBridge.html
+++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.OvsBridge.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ref-dbus-devices.html" title="The /org/freedesktop/NetworkManager/Devices/* objects">
 <link rel="prev" href="gdbus-org.freedesktop.NetworkManager.Device.OlpcMesh.html" title="org.freedesktop.NetworkManager.Device.OlpcMesh">
 <link rel="next" href="gdbus-org.freedesktop.NetworkManager.Device.OvsInterface.html" title="org.freedesktop.NetworkManager.Device.OvsInterface">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -86,6 +86,6 @@ Slaves  readable   ao
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.OvsInterface.html b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.OvsInterface.html
index 10791932..177d6de9 100644
--- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.OvsInterface.html
+++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.OvsInterface.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ref-dbus-devices.html" title="The /org/freedesktop/NetworkManager/Devices/* objects">
 <link rel="prev" href="gdbus-org.freedesktop.NetworkManager.Device.OvsBridge.html" title="org.freedesktop.NetworkManager.Device.OvsBridge">
 <link rel="next" href="gdbus-org.freedesktop.NetworkManager.Device.OvsPort.html" title="org.freedesktop.NetworkManager.Device.OvsPort">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -65,6 +65,6 @@ PropertiesChanged (a{sv} properties);
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.OvsPort.html b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.OvsPort.html
index 390a5467..d5909eb7 100644
--- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.OvsPort.html
+++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.OvsPort.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ref-dbus-devices.html" title="The /org/freedesktop/NetworkManager/Devices/* objects">
 <link rel="prev" href="gdbus-org.freedesktop.NetworkManager.Device.OvsInterface.html" title="org.freedesktop.NetworkManager.Device.OvsInterface">
 <link rel="next" href="gdbus-org.freedesktop.NetworkManager.Device.Ppp.html" title="org.freedesktop.NetworkManager.Device.Ppp">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -86,6 +86,6 @@ Slaves  readable   ao
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Ppp.html b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Ppp.html
index 91ecabc1..389bb106 100644
--- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Ppp.html
+++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Ppp.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ref-dbus-devices.html" title="The /org/freedesktop/NetworkManager/Devices/* objects">
 <link rel="prev" href="gdbus-org.freedesktop.NetworkManager.Device.OvsPort.html" title="org.freedesktop.NetworkManager.Device.OvsPort">
 <link rel="next" href="gdbus-org.freedesktop.NetworkManager.Device.Team.html" title="org.freedesktop.NetworkManager.Device.Team">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -65,6 +65,6 @@ PropertiesChanged (a{sv} properties);
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Statistics.html b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Statistics.html
index 7e0b47e4..ed1b80c0 100644
--- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Statistics.html
+++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Statistics.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ref-dbus-devices.html" title="The /org/freedesktop/NetworkManager/Devices/* objects">
 <link rel="prev" href="gdbus-org.freedesktop.NetworkManager.Device.html" title="org.freedesktop.NetworkManager.Device">
 <link rel="next" href="gdbus-org.freedesktop.NetworkManager.Device.Adsl.html" title="org.freedesktop.NetworkManager.Device.Adsl">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -106,6 +106,6 @@ RxBytes  readable   t
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Team.html b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Team.html
index a8f1bb17..d82c27ca 100644
--- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Team.html
+++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Team.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ref-dbus-devices.html" title="The /org/freedesktop/NetworkManager/Devices/* objects">
 <link rel="prev" href="gdbus-org.freedesktop.NetworkManager.Device.Ppp.html" title="org.freedesktop.NetworkManager.Device.Ppp">
 <link rel="next" href="gdbus-org.freedesktop.NetworkManager.Device.Tun.html" title="org.freedesktop.NetworkManager.Device.Tun">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -115,6 +115,6 @@ Config  readable   s
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Tun.html b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Tun.html
index a8e1f0af..926df18e 100644
--- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Tun.html
+++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Tun.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ref-dbus-devices.html" title="The /org/freedesktop/NetworkManager/Devices/* objects">
 <link rel="prev" href="gdbus-org.freedesktop.NetworkManager.Device.Team.html" title="org.freedesktop.NetworkManager.Device.Team">
 <link rel="next" href="gdbus-org.freedesktop.NetworkManager.Device.Veth.html" title="org.freedesktop.NetworkManager.Device.Veth">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -146,6 +146,6 @@ HwAddress  readable   s
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Veth.html b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Veth.html
index 4319d5c5..6bd6f3cf 100644
--- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Veth.html
+++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Veth.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ref-dbus-devices.html" title="The /org/freedesktop/NetworkManager/Devices/* objects">
 <link rel="prev" href="gdbus-org.freedesktop.NetworkManager.Device.Tun.html" title="org.freedesktop.NetworkManager.Device.Tun">
 <link rel="next" href="gdbus-org.freedesktop.NetworkManager.Device.Vlan.html" title="org.freedesktop.NetworkManager.Device.Vlan">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -83,6 +83,6 @@ Peer  readable   o
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Vlan.html b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Vlan.html
index 74c5ad8b..6182c837 100644
--- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Vlan.html
+++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Vlan.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ref-dbus-devices.html" title="The /org/freedesktop/NetworkManager/Devices/* objects">
 <link rel="prev" href="gdbus-org.freedesktop.NetworkManager.Device.Veth.html" title="org.freedesktop.NetworkManager.Device.Veth">
 <link rel="next" href="gdbus-org.freedesktop.NetworkManager.Device.Vxlan.html" title="org.freedesktop.NetworkManager.Device.Vxlan">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -114,6 +114,6 @@ VlanId  readable   u
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Vxlan.html b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Vxlan.html
index 89bf0592..2131bd9f 100644
--- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Vxlan.html
+++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Vxlan.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ref-dbus-devices.html" title="The /org/freedesktop/NetworkManager/Devices/* objects">
 <link rel="prev" href="gdbus-org.freedesktop.NetworkManager.Device.Vlan.html" title="org.freedesktop.NetworkManager.Device.Vlan">
 <link rel="next" href="gdbus-org.freedesktop.NetworkManager.Device.WireGuard.html" title="org.freedesktop.NetworkManager.Device.WireGuard">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -250,6 +250,6 @@ L3miss  readable   b
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.WireGuard.html b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.WireGuard.html
index cf0fa84e..eae61221 100644
--- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.WireGuard.html
+++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.WireGuard.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ref-dbus-devices.html" title="The /org/freedesktop/NetworkManager/Devices/* objects">
 <link rel="prev" href="gdbus-org.freedesktop.NetworkManager.Device.Vxlan.html" title="org.freedesktop.NetworkManager.Device.Vxlan">
 <link rel="next" href="gdbus-org.freedesktop.NetworkManager.Device.Wireless.html" title="org.freedesktop.NetworkManager.Device.Wireless">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -76,6 +76,6 @@ FwMark  readable   u
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Wired.html b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Wired.html
index 14073c38..585359ba 100644
--- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Wired.html
+++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Wired.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ref-dbus-devices.html" title="The /org/freedesktop/NetworkManager/Devices/* objects">
 <link rel="prev" href="gdbus-org.freedesktop.NetworkManager.Device.Dummy.html" title="org.freedesktop.NetworkManager.Device.Dummy">
 <link rel="next" href="gdbus-org.freedesktop.NetworkManager.Device.Generic.html" title="org.freedesktop.NetworkManager.Device.Generic">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -124,6 +124,6 @@ Carrier  readable   b
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Wireless.html b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Wireless.html
index 95372d62..1531b2df 100644
--- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Wireless.html
+++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Wireless.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ref-dbus-devices.html" title="The /org/freedesktop/NetworkManager/Devices/* objects">
 <link rel="prev" href="gdbus-org.freedesktop.NetworkManager.Device.WireGuard.html" title="org.freedesktop.NetworkManager.Device.WireGuard">
 <link rel="next" href="gdbus-org.freedesktop.NetworkManager.Device.Wpan.html" title="org.freedesktop.NetworkManager.Device.Wpan">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -272,6 +272,6 @@ LastScan  readable   x
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Wpan.html b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Wpan.html
index b9d346ce..906cea86 100644
--- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Wpan.html
+++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.Wpan.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ref-dbus-devices.html" title="The /org/freedesktop/NetworkManager/Devices/* objects">
 <link rel="prev" href="gdbus-org.freedesktop.NetworkManager.Device.Wireless.html" title="org.freedesktop.NetworkManager.Device.Wireless">
 <link rel="next" href="gdbus-org.freedesktop.NetworkManager.PPP.html" title="org.freedesktop.NetworkManager.PPP">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -55,6 +55,6 @@ HwAddress  readable   s
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.html b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.html
index 075d320f..f4d02ea3 100644
--- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.html
+++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Device.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ref-dbus-devices.html" title="The /org/freedesktop/NetworkManager/Devices/* objects">
 <link rel="prev" href="ref-dbus-devices.html" title="The /org/freedesktop/NetworkManager/Devices/* objects">
 <link rel="next" href="gdbus-org.freedesktop.NetworkManager.Device.Statistics.html" title="org.freedesktop.NetworkManager.Device.Statistics">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -536,6 +536,6 @@ Real  readable   b
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/api/html/gdbus-org.freedesktop.NetworkManager.DnsManager.html b/docs/api/html/gdbus-org.freedesktop.NetworkManager.DnsManager.html
index 86f56b3a..e7461f6d 100644
--- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.DnsManager.html
+++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.DnsManager.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ref-dbus-dns-manager.html" title="The /org/freedesktop/NetworkManager/DnsManager object">
 <link rel="prev" href="ref-dbus-dns-manager.html" title="The /org/freedesktop/NetworkManager/DnsManager object">
 <link rel="next" href="ref-dbus-settings-manager.html" title="The /org/freedesktop/NetworkManager/Settings object">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -82,6 +82,6 @@ Configuration  readable   aa{sv}
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/api/html/gdbus-org.freedesktop.NetworkManager.IP4Config.html b/docs/api/html/gdbus-org.freedesktop.NetworkManager.IP4Config.html
index 1425a3b9..5e2c5365 100644
--- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.IP4Config.html
+++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.IP4Config.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ref-dbus-ip4-configs.html" title="The /org/freedesktop/NetworkManager/IP4Config/* objects">
 <link rel="prev" href="ref-dbus-ip4-configs.html" title="The /org/freedesktop/NetworkManager/IP4Config/* objects">
 <link rel="next" href="ref-dbus-ip6-configs.html" title="The /org/freedesktop/NetworkManager/IP6Config/* objects">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -220,6 +220,6 @@ WinsServerData  readable   as
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/api/html/gdbus-org.freedesktop.NetworkManager.IP6Config.html b/docs/api/html/gdbus-org.freedesktop.NetworkManager.IP6Config.html
index 91c463c3..6db0d972 100644
--- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.IP6Config.html
+++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.IP6Config.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ref-dbus-ip6-configs.html" title="The /org/freedesktop/NetworkManager/IP6Config/* objects">
 <link rel="prev" href="ref-dbus-ip6-configs.html" title="The /org/freedesktop/NetworkManager/IP6Config/* objects">
 <link rel="next" href="ref-dbus-dhcp4-configs.html" title="The /org/freedesktop/NetworkManager/DHCP4Config/* objects">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -179,6 +179,6 @@ DnsPriority  readable   i
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/api/html/gdbus-org.freedesktop.NetworkManager.PPP.html b/docs/api/html/gdbus-org.freedesktop.NetworkManager.PPP.html
index b1b982d0..011cb2be 100644
--- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.PPP.html
+++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.PPP.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ref-dbus-devices.html" title="The /org/freedesktop/NetworkManager/Devices/* objects">
 <link rel="prev" href="gdbus-org.freedesktop.NetworkManager.Device.Wpan.html" title="org.freedesktop.NetworkManager.Device.Wpan">
 <link rel="next" href="ref-dbus-active-connections.html" title="The /org/freedesktop/NetworkManager/ActiveConnection/* objects">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -147,6 +147,6 @@ SetIfindex (IN  i ifindex);
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/api/html/gdbus-org.freedesktop.NetworkManager.SecretAgent.html b/docs/api/html/gdbus-org.freedesktop.NetworkManager.SecretAgent.html
index 8a5fa174..31212e42 100644
--- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.SecretAgent.html
+++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.SecretAgent.html
@@ -8,7 +8,7 @@
 <link rel="up" href="dbus-secret-agent.html" title="Secret agents">
 <link rel="prev" href="dbus-secret-agent.html" title="Secret agents">
 <link rel="next" href="vpn-plugins.html" title="Part V. VPN Plugin D-Bus API Reference">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -197,6 +197,6 @@ DeleteSecrets (IN  a{sa{sv}} connection,
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Settings.Connection.html b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Settings.Connection.html
index 6dc617a7..030af0d6 100644
--- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Settings.Connection.html
+++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Settings.Connection.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ref-dbus-settings.html" title="The /org/freedesktop/NetworkManager/Settings/* objects">
 <link rel="prev" href="ref-dbus-settings.html" title="The /org/freedesktop/NetworkManager/Settings/* objects">
 <link rel="next" href="ref-dbus-devices.html" title="The /org/freedesktop/NetworkManager/Devices/* objects">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -348,6 +348,6 @@ Filename  readable   s
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Settings.html b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Settings.html
index d80737ef..c40fc600 100644
--- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.Settings.html
+++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.Settings.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ref-dbus-settings-manager.html" title="The /org/freedesktop/NetworkManager/Settings object">
 <link rel="prev" href="ref-dbus-settings-manager.html" title="The /org/freedesktop/NetworkManager/Settings object">
 <link rel="next" href="ref-dbus-settings.html" title="The /org/freedesktop/NetworkManager/Settings/* objects">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -359,6 +359,6 @@ CanModify  readable   b
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/api/html/gdbus-org.freedesktop.NetworkManager.VPN.Connection.html b/docs/api/html/gdbus-org.freedesktop.NetworkManager.VPN.Connection.html
index f44bb97b..fc963b27 100644
--- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.VPN.Connection.html
+++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.VPN.Connection.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ref-dbus-active-connections.html" title="The /org/freedesktop/NetworkManager/ActiveConnection/* objects">
 <link rel="prev" href="gdbus-org.freedesktop.NetworkManager.Connection.Active.html" title="org.freedesktop.NetworkManager.Connection.Active">
 <link rel="next" href="ref-dbus-ip4-configs.html" title="The /org/freedesktop/NetworkManager/IP4Config/* objects">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -124,6 +124,6 @@ Banner  readable   s
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/api/html/gdbus-org.freedesktop.NetworkManager.VPN.Plugin.html b/docs/api/html/gdbus-org.freedesktop.NetworkManager.VPN.Plugin.html
index 9bc4cd0b..fe92f5a9 100644
--- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.VPN.Plugin.html
+++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.VPN.Plugin.html
@@ -8,7 +8,7 @@
 <link rel="up" href="dbus-vpn-plugin.html" title="VPN services">
 <link rel="prev" href="dbus-vpn-plugin.html" title="VPN services">
 <link rel="next" href="dbus-vpn-types.html" title="Types">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -415,6 +415,6 @@ State  readable   u
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/api/html/gdbus-org.freedesktop.NetworkManager.html b/docs/api/html/gdbus-org.freedesktop.NetworkManager.html
index 483ec9d4..64ea7e6b 100644
--- a/docs/api/html/gdbus-org.freedesktop.NetworkManager.html
+++ b/docs/api/html/gdbus-org.freedesktop.NetworkManager.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ref-dbus-manager.html" title="The /org/freedesktop/NetworkManager object">
 <link rel="prev" href="ref-dbus-manager.html" title="The /org/freedesktop/NetworkManager object">
 <link rel="next" href="ref-dbus-agent-manager.html" title="The /org/freedesktop/NetworkManager/AgentManager object">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -957,6 +957,6 @@ GlobalDnsConfiguration  readwrite  a{sv}
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/api/html/index.html b/docs/api/html/index.html
index af91d732..c572f5e3 100644
--- a/docs/api/html/index.html
+++ b/docs/api/html/index.html
@@ -7,7 +7,7 @@
 <meta name="description" content="This manual is the reference documentation for NetworkManager, the standard Linux network management service. It is intended for system administrators and integrators who need to understand the capabilities of NetworkManager, its configuration options, command line tools and the D-Bus API for programmatic control of the service. The end users NetworkManager should instead refer to respective documentation of their desktop environment of choice. The application developers who prefer not to use the D-Bus API directly can use the libnm library shipped with NetworkManager or its bindings to a higher level language such as Python, Ruby or Vala via GObject introspection.">
 <link rel="home" href="index.html" title="NetworkManager Reference Manual">
 <link rel="next" href="manpages.html" title="Part I. Manual Pages">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -16,7 +16,7 @@
 <div>
 <div><table class="navigation" id="top" width="100%" cellpadding="2" cellspacing="0"><tr><th valign="middle"><p class="title">NetworkManager Reference Manual</p></th></tr></table></div>
 <div><p class="releaseinfo">
-      for NetworkManager 1.14.4
+      for NetworkManager 1.14.6
 
       The latest version of this documentation can be found on-line at
       <a class="ulink" href="https://developer.gnome.org/NetworkManager/stable/" target="_top">https://developer.gnome.org/NetworkManager/stable/</a>.
@@ -416,6 +416,6 @@
 </dl></div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/api/html/ix01.html b/docs/api/html/ix01.html
index 0f00c0f4..a17c94e0 100644
--- a/docs/api/html/ix01.html
+++ b/docs/api/html/ix01.html
@@ -8,7 +8,7 @@
 <link rel="up" href="index.html" title="NetworkManager Reference Manual">
 <link rel="prev" href="nm-vpn-dbus-types.html" title="VPN Plugin D-Bus API Types">
 <link rel="next" href="license.html" title="Appendix A. License">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -26,1524 +26,1524 @@
 <div class="indexdiv">
 <h3>Symbols</h3>
 <dl>
-<dt id="ientry-idm45053447284160">org.freedesktop.NetworkManager.AccessPoint, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.AccessPoint.html#gdbus-interface-org-freedesktop-NetworkManager-AccessPoint.top_of_page">org.freedesktop.NetworkManager.AccessPoint</a>
+<dt id="ientry-idm45099806087968">org.freedesktop.NetworkManager.AccessPoint, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.AccessPoint.html#gdbus-interface-org-freedesktop-NetworkManager-AccessPoint.top_of_page">org.freedesktop.NetworkManager.AccessPoint</a>
 </dt>
-<dt id="ientry-idm45053443128016">org.freedesktop.NetworkManager.AccessPoint::PropertiesChanged, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.AccessPoint.html#gdbus-signal-org-freedesktop-NetworkManager-AccessPoint.PropertiesChanged">The "PropertiesChanged" signal</a>
+<dt id="ientry-idm45099796371392">org.freedesktop.NetworkManager.AccessPoint::PropertiesChanged, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.AccessPoint.html#gdbus-signal-org-freedesktop-NetworkManager-AccessPoint.PropertiesChanged">The "PropertiesChanged" signal</a>
 </dt>
-<dt id="ientry-idm45053443118928">org.freedesktop.NetworkManager.AccessPoint:Flags, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.AccessPoint.html#gdbus-property-org-freedesktop-NetworkManager-AccessPoint.Flags">The "Flags" property</a>
+<dt id="ientry-idm45099795948688">org.freedesktop.NetworkManager.AccessPoint:Flags, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.AccessPoint.html#gdbus-property-org-freedesktop-NetworkManager-AccessPoint.Flags">The "Flags" property</a>
 </dt>
-<dt id="ientry-idm45053443065008">org.freedesktop.NetworkManager.AccessPoint:Frequency, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.AccessPoint.html#gdbus-property-org-freedesktop-NetworkManager-AccessPoint.Frequency">The "Frequency" property</a>
+<dt id="ientry-idm45099796394688">org.freedesktop.NetworkManager.AccessPoint:Frequency, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.AccessPoint.html#gdbus-property-org-freedesktop-NetworkManager-AccessPoint.Frequency">The "Frequency" property</a>
 </dt>
-<dt id="ientry-idm45053443060864">org.freedesktop.NetworkManager.AccessPoint:HwAddress, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.AccessPoint.html#gdbus-property-org-freedesktop-NetworkManager-AccessPoint.HwAddress">The "HwAddress" property</a>
+<dt id="ientry-idm45099796390640">org.freedesktop.NetworkManager.AccessPoint:HwAddress, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.AccessPoint.html#gdbus-property-org-freedesktop-NetworkManager-AccessPoint.HwAddress">The "HwAddress" property</a>
 </dt>
-<dt id="ientry-idm45053440230608">org.freedesktop.NetworkManager.AccessPoint:LastSeen, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.AccessPoint.html#gdbus-property-org-freedesktop-NetworkManager-AccessPoint.LastSeen">The "LastSeen" property</a>
+<dt id="ientry-idm45099793588064">org.freedesktop.NetworkManager.AccessPoint:LastSeen, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.AccessPoint.html#gdbus-property-org-freedesktop-NetworkManager-AccessPoint.LastSeen">The "LastSeen" property</a>
 </dt>
-<dt id="ientry-idm45053443051536">org.freedesktop.NetworkManager.AccessPoint:MaxBitrate, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.AccessPoint.html#gdbus-property-org-freedesktop-NetworkManager-AccessPoint.MaxBitrate">The "MaxBitrate" property</a>
+<dt id="ientry-idm45099796381264">org.freedesktop.NetworkManager.AccessPoint:MaxBitrate, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.AccessPoint.html#gdbus-property-org-freedesktop-NetworkManager-AccessPoint.MaxBitrate">The "MaxBitrate" property</a>
 </dt>
-<dt id="ientry-idm45053443056704">org.freedesktop.NetworkManager.AccessPoint:Mode, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.AccessPoint.html#gdbus-property-org-freedesktop-NetworkManager-AccessPoint.Mode">The "Mode" property</a>
+<dt id="ientry-idm45099796386480">org.freedesktop.NetworkManager.AccessPoint:Mode, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.AccessPoint.html#gdbus-property-org-freedesktop-NetworkManager-AccessPoint.Mode">The "Mode" property</a>
 </dt>
-<dt id="ientry-idm45053443092672">org.freedesktop.NetworkManager.AccessPoint:RsnFlags, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.AccessPoint.html#gdbus-property-org-freedesktop-NetworkManager-AccessPoint.RsnFlags">The "RsnFlags" property</a>
+<dt id="ientry-idm45099795938272">org.freedesktop.NetworkManager.AccessPoint:RsnFlags, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.AccessPoint.html#gdbus-property-org-freedesktop-NetworkManager-AccessPoint.RsnFlags">The "RsnFlags" property</a>
 </dt>
-<dt id="ientry-idm45053443087440">org.freedesktop.NetworkManager.AccessPoint:Ssid, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.AccessPoint.html#gdbus-property-org-freedesktop-NetworkManager-AccessPoint.Ssid">The "Ssid" property</a>
+<dt id="ientry-idm45099796398848">org.freedesktop.NetworkManager.AccessPoint:Ssid, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.AccessPoint.html#gdbus-property-org-freedesktop-NetworkManager-AccessPoint.Ssid">The "Ssid" property</a>
 </dt>
-<dt id="ientry-idm45053443047344">org.freedesktop.NetworkManager.AccessPoint:Strength, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.AccessPoint.html#gdbus-property-org-freedesktop-NetworkManager-AccessPoint.Strength">The "Strength" property</a>
+<dt id="ientry-idm45099793592272">org.freedesktop.NetworkManager.AccessPoint:Strength, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.AccessPoint.html#gdbus-property-org-freedesktop-NetworkManager-AccessPoint.Strength">The "Strength" property</a>
 </dt>
-<dt id="ientry-idm45053443097888">org.freedesktop.NetworkManager.AccessPoint:WpaFlags, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.AccessPoint.html#gdbus-property-org-freedesktop-NetworkManager-AccessPoint.WpaFlags">The "WpaFlags" property</a>
+<dt id="ientry-idm45099795943488">org.freedesktop.NetworkManager.AccessPoint:WpaFlags, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.AccessPoint.html#gdbus-property-org-freedesktop-NetworkManager-AccessPoint.WpaFlags">The "WpaFlags" property</a>
 </dt>
-<dt id="ientry-idm45053450901136">org.freedesktop.NetworkManager.AgentManager, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.AgentManager.html#gdbus-interface-org-freedesktop-NetworkManager-AgentManager.top_of_page">org.freedesktop.NetworkManager.AgentManager</a>
+<dt id="ientry-idm45099800710944">org.freedesktop.NetworkManager.AgentManager, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.AgentManager.html#gdbus-interface-org-freedesktop-NetworkManager-AgentManager.top_of_page">org.freedesktop.NetworkManager.AgentManager</a>
 </dt>
-<dt id="ientry-idm45053450709904">org.freedesktop.NetworkManager.AgentManager.Register(), <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.AgentManager.html#gdbus-method-org-freedesktop-NetworkManager-AgentManager.Register">The Register() method</a>
+<dt id="ientry-idm45099805753920">org.freedesktop.NetworkManager.AgentManager.Register(), <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.AgentManager.html#gdbus-method-org-freedesktop-NetworkManager-AgentManager.Register">The Register() method</a>
 </dt>
-<dt id="ientry-idm45053452831328">org.freedesktop.NetworkManager.AgentManager.RegisterWithCapabilities(), <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.AgentManager.html#gdbus-method-org-freedesktop-NetworkManager-AgentManager.RegisterWithCapabilities">The RegisterWithCapabilities() method</a>
+<dt id="ientry-idm45099805465616">org.freedesktop.NetworkManager.AgentManager.RegisterWithCapabilities(), <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.AgentManager.html#gdbus-method-org-freedesktop-NetworkManager-AgentManager.RegisterWithCapabilities">The RegisterWithCapabilities() method</a>
 </dt>
-<dt id="ientry-idm45053453584400">org.freedesktop.NetworkManager.AgentManager.Unregister(), <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.AgentManager.html#gdbus-method-org-freedesktop-NetworkManager-AgentManager.Unregister">The Unregister() method</a>
+<dt id="ientry-idm45099802124144">org.freedesktop.NetworkManager.AgentManager.Unregister(), <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.AgentManager.html#gdbus-method-org-freedesktop-NetworkManager-AgentManager.Unregister">The Unregister() method</a>
 </dt>
-<dt id="ientry-idm45053453439280">org.freedesktop.NetworkManager.Device, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.html#gdbus-interface-org-freedesktop-NetworkManager-Device.top_of_page">org.freedesktop.NetworkManager.Device</a>
+<dt id="ientry-idm45099803910992">org.freedesktop.NetworkManager.Device, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.html#gdbus-interface-org-freedesktop-NetworkManager-Device.top_of_page">org.freedesktop.NetworkManager.Device</a>
 </dt>
-<dt id="ientry-idm45053458400048">org.freedesktop.NetworkManager.Device.Adsl, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Adsl.html#gdbus-interface-org-freedesktop-NetworkManager-Device-Adsl.top_of_page">org.freedesktop.NetworkManager.Device.Adsl</a>
+<dt id="ientry-idm45099806202672">org.freedesktop.NetworkManager.Device.Adsl, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Adsl.html#gdbus-interface-org-freedesktop-NetworkManager-Device-Adsl.top_of_page">org.freedesktop.NetworkManager.Device.Adsl</a>
 </dt>
-<dt id="ientry-idm45053452051216">org.freedesktop.NetworkManager.Device.Adsl::PropertiesChanged, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Adsl.html#gdbus-signal-org-freedesktop-NetworkManager-Device-Adsl.PropertiesChanged">The "PropertiesChanged" signal</a>
+<dt id="ientry-idm45099806924176">org.freedesktop.NetworkManager.Device.Adsl::PropertiesChanged, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Adsl.html#gdbus-signal-org-freedesktop-NetworkManager-Device-Adsl.PropertiesChanged">The "PropertiesChanged" signal</a>
 </dt>
-<dt id="ientry-idm45053451382960">org.freedesktop.NetworkManager.Device.Adsl:Carrier, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Adsl.html#gdbus-property-org-freedesktop-NetworkManager-Device-Adsl.Carrier">The "Carrier" property</a>
+<dt id="ientry-idm45099799046832">org.freedesktop.NetworkManager.Device.Adsl:Carrier, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Adsl.html#gdbus-property-org-freedesktop-NetworkManager-Device-Adsl.Carrier">The "Carrier" property</a>
 </dt>
-<dt id="ientry-idm45053449477024">org.freedesktop.NetworkManager.Device.Bluetooth, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Bluetooth.html#gdbus-interface-org-freedesktop-NetworkManager-Device-Bluetooth.top_of_page">org.freedesktop.NetworkManager.Device.Bluetooth</a>
+<dt id="ientry-idm45099807072000">org.freedesktop.NetworkManager.Device.Bluetooth, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Bluetooth.html#gdbus-interface-org-freedesktop-NetworkManager-Device-Bluetooth.top_of_page">org.freedesktop.NetworkManager.Device.Bluetooth</a>
 </dt>
-<dt id="ientry-idm45053450458208">org.freedesktop.NetworkManager.Device.Bluetooth::PropertiesChanged, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Bluetooth.html#gdbus-signal-org-freedesktop-NetworkManager-Device-Bluetooth.PropertiesChanged">The "PropertiesChanged" signal</a>
+<dt id="ientry-idm45099798277376">org.freedesktop.NetworkManager.Device.Bluetooth::PropertiesChanged, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Bluetooth.html#gdbus-signal-org-freedesktop-NetworkManager-Device-Bluetooth.PropertiesChanged">The "PropertiesChanged" signal</a>
 </dt>
-<dt id="ientry-idm45053452836800">org.freedesktop.NetworkManager.Device.Bluetooth:BtCapabilities, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Bluetooth.html#gdbus-property-org-freedesktop-NetworkManager-Device-Bluetooth.BtCapabilities">The "BtCapabilities" property</a>
+<dt id="ientry-idm45099798394720">org.freedesktop.NetworkManager.Device.Bluetooth:BtCapabilities, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Bluetooth.html#gdbus-property-org-freedesktop-NetworkManager-Device-Bluetooth.BtCapabilities">The "BtCapabilities" property</a>
 </dt>
-<dt id="ientry-idm45053447357808">org.freedesktop.NetworkManager.Device.Bluetooth:HwAddress, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Bluetooth.html#gdbus-property-org-freedesktop-NetworkManager-Device-Bluetooth.HwAddress">The "HwAddress" property</a>
+<dt id="ientry-idm45099795225024">org.freedesktop.NetworkManager.Device.Bluetooth:HwAddress, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Bluetooth.html#gdbus-property-org-freedesktop-NetworkManager-Device-Bluetooth.HwAddress">The "HwAddress" property</a>
 </dt>
-<dt id="ientry-idm45053448896192">org.freedesktop.NetworkManager.Device.Bluetooth:Name, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Bluetooth.html#gdbus-property-org-freedesktop-NetworkManager-Device-Bluetooth.Name">The "Name" property</a>
+<dt id="ientry-idm45099795221216">org.freedesktop.NetworkManager.Device.Bluetooth:Name, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Bluetooth.html#gdbus-property-org-freedesktop-NetworkManager-Device-Bluetooth.Name">The "Name" property</a>
 </dt>
-<dt id="ientry-idm45053448845104">org.freedesktop.NetworkManager.Device.Bond, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Bond.html#gdbus-interface-org-freedesktop-NetworkManager-Device-Bond.top_of_page">org.freedesktop.NetworkManager.Device.Bond</a>
+<dt id="ientry-idm45099801606800">org.freedesktop.NetworkManager.Device.Bond, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Bond.html#gdbus-interface-org-freedesktop-NetworkManager-Device-Bond.top_of_page">org.freedesktop.NetworkManager.Device.Bond</a>
 </dt>
-<dt id="ientry-idm45053447401168">org.freedesktop.NetworkManager.Device.Bond::PropertiesChanged, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Bond.html#gdbus-signal-org-freedesktop-NetworkManager-Device-Bond.PropertiesChanged">The "PropertiesChanged" signal</a>
+<dt id="ientry-idm45099798407312">org.freedesktop.NetworkManager.Device.Bond::PropertiesChanged, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Bond.html#gdbus-signal-org-freedesktop-NetworkManager-Device-Bond.PropertiesChanged">The "PropertiesChanged" signal</a>
 </dt>
-<dt id="ientry-idm45053444784016">org.freedesktop.NetworkManager.Device.Bond:Carrier, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Bond.html#gdbus-property-org-freedesktop-NetworkManager-Device-Bond.Carrier">The "Carrier" property</a>
+<dt id="ientry-idm45099797962400">org.freedesktop.NetworkManager.Device.Bond:Carrier, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Bond.html#gdbus-property-org-freedesktop-NetworkManager-Device-Bond.Carrier">The "Carrier" property</a>
 </dt>
-<dt id="ientry-idm45053449989488">org.freedesktop.NetworkManager.Device.Bond:HwAddress, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Bond.html#gdbus-property-org-freedesktop-NetworkManager-Device-Bond.HwAddress">The "HwAddress" property</a>
+<dt id="ientry-idm45099795248176">org.freedesktop.NetworkManager.Device.Bond:HwAddress, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Bond.html#gdbus-property-org-freedesktop-NetworkManager-Device-Bond.HwAddress">The "HwAddress" property</a>
 </dt>
-<dt id="ientry-idm45053444779776">org.freedesktop.NetworkManager.Device.Bond:Slaves, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Bond.html#gdbus-property-org-freedesktop-NetworkManager-Device-Bond.Slaves">The "Slaves" property</a>
+<dt id="ientry-idm45099797958160">org.freedesktop.NetworkManager.Device.Bond:Slaves, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Bond.html#gdbus-property-org-freedesktop-NetworkManager-Device-Bond.Slaves">The "Slaves" property</a>
 </dt>
-<dt id="ientry-idm45053449282304">org.freedesktop.NetworkManager.Device.Bridge, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Bridge.html#gdbus-interface-org-freedesktop-NetworkManager-Device-Bridge.top_of_page">org.freedesktop.NetworkManager.Device.Bridge</a>
+<dt id="ientry-idm45099806350496">org.freedesktop.NetworkManager.Device.Bridge, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Bridge.html#gdbus-interface-org-freedesktop-NetworkManager-Device-Bridge.top_of_page">org.freedesktop.NetworkManager.Device.Bridge</a>
 </dt>
-<dt id="ientry-idm45053445687280">org.freedesktop.NetworkManager.Device.Bridge::PropertiesChanged, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Bridge.html#gdbus-signal-org-freedesktop-NetworkManager-Device-Bridge.PropertiesChanged">The "PropertiesChanged" signal</a>
+<dt id="ientry-idm45099806936656">org.freedesktop.NetworkManager.Device.Bridge::PropertiesChanged, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Bridge.html#gdbus-signal-org-freedesktop-NetworkManager-Device-Bridge.PropertiesChanged">The "PropertiesChanged" signal</a>
 </dt>
-<dt id="ientry-idm45053445503232">org.freedesktop.NetworkManager.Device.Bridge:Carrier, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Bridge.html#gdbus-property-org-freedesktop-NetworkManager-Device-Bridge.Carrier">The "Carrier" property</a>
+<dt id="ientry-idm45099795234864">org.freedesktop.NetworkManager.Device.Bridge:Carrier, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Bridge.html#gdbus-property-org-freedesktop-NetworkManager-Device-Bridge.Carrier">The "Carrier" property</a>
 </dt>
-<dt id="ientry-idm45053444794192">org.freedesktop.NetworkManager.Device.Bridge:HwAddress, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Bridge.html#gdbus-property-org-freedesktop-NetworkManager-Device-Bridge.HwAddress">The "HwAddress" property</a>
+<dt id="ientry-idm45099795238672">org.freedesktop.NetworkManager.Device.Bridge:HwAddress, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Bridge.html#gdbus-property-org-freedesktop-NetworkManager-Device-Bridge.HwAddress">The "HwAddress" property</a>
 </dt>
-<dt id="ientry-idm45053445498992">org.freedesktop.NetworkManager.Device.Bridge:Slaves, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Bridge.html#gdbus-property-org-freedesktop-NetworkManager-Device-Bridge.Slaves">The "Slaves" property</a>
+<dt id="ientry-idm45099798281984">org.freedesktop.NetworkManager.Device.Bridge:Slaves, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Bridge.html#gdbus-property-org-freedesktop-NetworkManager-Device-Bridge.Slaves">The "Slaves" property</a>
 </dt>
-<dt id="ientry-idm45053445612736">org.freedesktop.NetworkManager.Device.Delete(), <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.html#gdbus-method-org-freedesktop-NetworkManager-Device.Delete">The Delete() method</a>
+<dt id="ientry-idm45099798329120">org.freedesktop.NetworkManager.Device.Delete(), <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.html#gdbus-method-org-freedesktop-NetworkManager-Device.Delete">The Delete() method</a>
 </dt>
-<dt id="ientry-idm45053445617008">org.freedesktop.NetworkManager.Device.Disconnect(), <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.html#gdbus-method-org-freedesktop-NetworkManager-Device.Disconnect">The Disconnect() method</a>
+<dt id="ientry-idm45099798333392">org.freedesktop.NetworkManager.Device.Disconnect(), <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.html#gdbus-method-org-freedesktop-NetworkManager-Device.Disconnect">The Disconnect() method</a>
 </dt>
-<dt id="ientry-idm45053450793488">org.freedesktop.NetworkManager.Device.Dummy, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Dummy.html#gdbus-interface-org-freedesktop-NetworkManager-Device-Dummy.top_of_page">org.freedesktop.NetworkManager.Device.Dummy</a>
+<dt id="ientry-idm45099803305824">org.freedesktop.NetworkManager.Device.Dummy, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Dummy.html#gdbus-interface-org-freedesktop-NetworkManager-Device-Dummy.top_of_page">org.freedesktop.NetworkManager.Device.Dummy</a>
 </dt>
-<dt id="ientry-idm45053445414688">org.freedesktop.NetworkManager.Device.Dummy::PropertiesChanged, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Dummy.html#gdbus-signal-org-freedesktop-NetworkManager-Device-Dummy.PropertiesChanged">The "PropertiesChanged" signal</a>
+<dt id="ientry-idm45099797954032">org.freedesktop.NetworkManager.Device.Dummy::PropertiesChanged, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Dummy.html#gdbus-signal-org-freedesktop-NetworkManager-Device-Dummy.PropertiesChanged">The "PropertiesChanged" signal</a>
 </dt>
-<dt id="ientry-idm45053445353136">org.freedesktop.NetworkManager.Device.Dummy:HwAddress, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Dummy.html#gdbus-property-org-freedesktop-NetworkManager-Device-Dummy.HwAddress">The "HwAddress" property</a>
+<dt id="ientry-idm45099795214816">org.freedesktop.NetworkManager.Device.Dummy:HwAddress, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Dummy.html#gdbus-property-org-freedesktop-NetworkManager-Device-Dummy.HwAddress">The "HwAddress" property</a>
 </dt>
-<dt id="ientry-idm45053451025840">org.freedesktop.NetworkManager.Device.Generic, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Generic.html#gdbus-interface-org-freedesktop-NetworkManager-Device-Generic.top_of_page">org.freedesktop.NetworkManager.Device.Generic</a>
+<dt id="ientry-idm45099805053584">org.freedesktop.NetworkManager.Device.Generic, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Generic.html#gdbus-interface-org-freedesktop-NetworkManager-Device-Generic.top_of_page">org.freedesktop.NetworkManager.Device.Generic</a>
 </dt>
-<dt id="ientry-idm45053447325760">org.freedesktop.NetworkManager.Device.Generic::PropertiesChanged, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Generic.html#gdbus-signal-org-freedesktop-NetworkManager-Device-Generic.PropertiesChanged">The "PropertiesChanged" signal</a>
+<dt id="ientry-idm45099798223280">org.freedesktop.NetworkManager.Device.Generic::PropertiesChanged, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Generic.html#gdbus-signal-org-freedesktop-NetworkManager-Device-Generic.PropertiesChanged">The "PropertiesChanged" signal</a>
 </dt>
-<dt id="ientry-idm45053448992928">org.freedesktop.NetworkManager.Device.Generic:HwAddress, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Generic.html#gdbus-property-org-freedesktop-NetworkManager-Device-Generic.HwAddress">The "HwAddress" property</a>
+<dt id="ientry-idm45099798268816">org.freedesktop.NetworkManager.Device.Generic:HwAddress, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Generic.html#gdbus-property-org-freedesktop-NetworkManager-Device-Generic.HwAddress">The "HwAddress" property</a>
 </dt>
-<dt id="ientry-idm45053453313968">org.freedesktop.NetworkManager.Device.Generic:TypeDescription, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Generic.html#gdbus-property-org-freedesktop-NetworkManager-Device-Generic.TypeDescription">The "TypeDescription" property</a>
+<dt id="ientry-idm45099798264864">org.freedesktop.NetworkManager.Device.Generic:TypeDescription, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Generic.html#gdbus-property-org-freedesktop-NetworkManager-Device-Generic.TypeDescription">The "TypeDescription" property</a>
 </dt>
-<dt id="ientry-idm45053445382016">org.freedesktop.NetworkManager.Device.GetAppliedConnection(), <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.html#gdbus-method-org-freedesktop-NetworkManager-Device.GetAppliedConnection">The GetAppliedConnection() method</a>
+<dt id="ientry-idm45099806608896">org.freedesktop.NetworkManager.Device.GetAppliedConnection(), <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.html#gdbus-method-org-freedesktop-NetworkManager-Device.GetAppliedConnection">The GetAppliedConnection() method</a>
 </dt>
-<dt id="ientry-idm45053452065280">org.freedesktop.NetworkManager.Device.Infiniband, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Infiniband.html#gdbus-interface-org-freedesktop-NetworkManager-Device-Infiniband.top_of_page">org.freedesktop.NetworkManager.Device.Infiniband</a>
+<dt id="ientry-idm45099801806320">org.freedesktop.NetworkManager.Device.Infiniband, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Infiniband.html#gdbus-interface-org-freedesktop-NetworkManager-Device-Infiniband.top_of_page">org.freedesktop.NetworkManager.Device.Infiniband</a>
 </dt>
-<dt id="ientry-idm45053445543824">org.freedesktop.NetworkManager.Device.Infiniband::PropertiesChanged, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Infiniband.html#gdbus-signal-org-freedesktop-NetworkManager-Device-Infiniband.PropertiesChanged">The "PropertiesChanged" signal</a>
+<dt id="ientry-idm45099795053264">org.freedesktop.NetworkManager.Device.Infiniband::PropertiesChanged, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Infiniband.html#gdbus-signal-org-freedesktop-NetworkManager-Device-Infiniband.PropertiesChanged">The "PropertiesChanged" signal</a>
 </dt>
-<dt id="ientry-idm45053445473904">org.freedesktop.NetworkManager.Device.Infiniband:Carrier, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Infiniband.html#gdbus-property-org-freedesktop-NetworkManager-Device-Infiniband.Carrier">The "Carrier" property</a>
+<dt id="ientry-idm45099795032208">org.freedesktop.NetworkManager.Device.Infiniband:Carrier, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Infiniband.html#gdbus-property-org-freedesktop-NetworkManager-Device-Infiniband.Carrier">The "Carrier" property</a>
 </dt>
-<dt id="ientry-idm45053445477712">org.freedesktop.NetworkManager.Device.Infiniband:HwAddress, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Infiniband.html#gdbus-property-org-freedesktop-NetworkManager-Device-Infiniband.HwAddress">The "HwAddress" property</a>
+<dt id="ientry-idm45099795036016">org.freedesktop.NetworkManager.Device.Infiniband:HwAddress, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Infiniband.html#gdbus-property-org-freedesktop-NetworkManager-Device-Infiniband.HwAddress">The "HwAddress" property</a>
 </dt>
-<dt id="ientry-idm45053449500784">org.freedesktop.NetworkManager.Device.IPTunnel, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.IPTunnel.html#gdbus-interface-org-freedesktop-NetworkManager-Device-IPTunnel.top_of_page">org.freedesktop.NetworkManager.Device.IPTunnel</a>
+<dt id="ientry-idm45099803873760">org.freedesktop.NetworkManager.Device.IPTunnel, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.IPTunnel.html#gdbus-interface-org-freedesktop-NetworkManager-Device-IPTunnel.top_of_page">org.freedesktop.NetworkManager.Device.IPTunnel</a>
 </dt>
-<dt id="ientry-idm45053445454384">org.freedesktop.NetworkManager.Device.IPTunnel::PropertiesChanged, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.IPTunnel.html#gdbus-signal-org-freedesktop-NetworkManager-Device-IPTunnel.PropertiesChanged">The "PropertiesChanged" signal</a>
+<dt id="ientry-idm45099806058032">org.freedesktop.NetworkManager.Device.IPTunnel::PropertiesChanged, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.IPTunnel.html#gdbus-signal-org-freedesktop-NetworkManager-Device-IPTunnel.PropertiesChanged">The "PropertiesChanged" signal</a>
 </dt>
-<dt id="ientry-idm45053452219680">org.freedesktop.NetworkManager.Device.IPTunnel:EncapsulationLimit, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.IPTunnel.html#gdbus-property-org-freedesktop-NetworkManager-Device-IPTunnel.EncapsulationLimit">The "EncapsulationLimit" property</a>
+<dt id="ientry-idm45099803188704">org.freedesktop.NetworkManager.Device.IPTunnel:EncapsulationLimit, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.IPTunnel.html#gdbus-property-org-freedesktop-NetworkManager-Device-IPTunnel.EncapsulationLimit">The "EncapsulationLimit" property</a>
 </dt>
-<dt id="ientry-idm45053452210928">org.freedesktop.NetworkManager.Device.IPTunnel:Flags, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.IPTunnel.html#gdbus-property-org-freedesktop-NetworkManager-Device-IPTunnel.Flags">The "Flags" property</a>
+<dt id="ientry-idm45099798531648">org.freedesktop.NetworkManager.Device.IPTunnel:Flags, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.IPTunnel.html#gdbus-property-org-freedesktop-NetworkManager-Device-IPTunnel.Flags">The "Flags" property</a>
 </dt>
-<dt id="ientry-idm45053452215280">org.freedesktop.NetworkManager.Device.IPTunnel:FlowLabel, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.IPTunnel.html#gdbus-property-org-freedesktop-NetworkManager-Device-IPTunnel.FlowLabel">The "FlowLabel" property</a>
+<dt id="ientry-idm45099795087568">org.freedesktop.NetworkManager.Device.IPTunnel:FlowLabel, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.IPTunnel.html#gdbus-property-org-freedesktop-NetworkManager-Device-IPTunnel.FlowLabel">The "FlowLabel" property</a>
 </dt>
-<dt id="ientry-idm45053452228128">org.freedesktop.NetworkManager.Device.IPTunnel:InputKey, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.IPTunnel.html#gdbus-property-org-freedesktop-NetworkManager-Device-IPTunnel.InputKey">The "InputKey" property</a>
+<dt id="ientry-idm45099802596784">org.freedesktop.NetworkManager.Device.IPTunnel:InputKey, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.IPTunnel.html#gdbus-property-org-freedesktop-NetworkManager-Device-IPTunnel.InputKey">The "InputKey" property</a>
 </dt>
-<dt id="ientry-idm45053445556912">org.freedesktop.NetworkManager.Device.IPTunnel:Local, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.IPTunnel.html#gdbus-property-org-freedesktop-NetworkManager-Device-IPTunnel.Local">The "Local" property</a>
+<dt id="ientry-idm45099798059344">org.freedesktop.NetworkManager.Device.IPTunnel:Local, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.IPTunnel.html#gdbus-property-org-freedesktop-NetworkManager-Device-IPTunnel.Local">The "Local" property</a>
 </dt>
-<dt id="ientry-idm45053445445328">org.freedesktop.NetworkManager.Device.IPTunnel:Mode, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.IPTunnel.html#gdbus-property-org-freedesktop-NetworkManager-Device-IPTunnel.Mode">The "Mode" property</a>
+<dt id="ientry-idm45099800474320">org.freedesktop.NetworkManager.Device.IPTunnel:Mode, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.IPTunnel.html#gdbus-property-org-freedesktop-NetworkManager-Device-IPTunnel.Mode">The "Mode" property</a>
 </dt>
-<dt id="ientry-idm45053452223968">org.freedesktop.NetworkManager.Device.IPTunnel:OutputKey, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.IPTunnel.html#gdbus-property-org-freedesktop-NetworkManager-Device-IPTunnel.OutputKey">The "OutputKey" property</a>
+<dt id="ientry-idm45099795183136">org.freedesktop.NetworkManager.Device.IPTunnel:OutputKey, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.IPTunnel.html#gdbus-property-org-freedesktop-NetworkManager-Device-IPTunnel.OutputKey">The "OutputKey" property</a>
 </dt>
-<dt id="ientry-idm45053445561024">org.freedesktop.NetworkManager.Device.IPTunnel:Parent, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.IPTunnel.html#gdbus-property-org-freedesktop-NetworkManager-Device-IPTunnel.Parent">The "Parent" property</a>
+<dt id="ientry-idm45099797853392">org.freedesktop.NetworkManager.Device.IPTunnel:Parent, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.IPTunnel.html#gdbus-property-org-freedesktop-NetworkManager-Device-IPTunnel.Parent">The "Parent" property</a>
 </dt>
-<dt id="ientry-idm45053452232432">org.freedesktop.NetworkManager.Device.IPTunnel:PathMtuDiscovery, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.IPTunnel.html#gdbus-property-org-freedesktop-NetworkManager-Device-IPTunnel.PathMtuDiscovery">The "PathMtuDiscovery" property</a>
+<dt id="ientry-idm45099801533392">org.freedesktop.NetworkManager.Device.IPTunnel:PathMtuDiscovery, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.IPTunnel.html#gdbus-property-org-freedesktop-NetworkManager-Device-IPTunnel.PathMtuDiscovery">The "PathMtuDiscovery" property</a>
 </dt>
-<dt id="ientry-idm45053445552800">org.freedesktop.NetworkManager.Device.IPTunnel:Remote, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.IPTunnel.html#gdbus-property-org-freedesktop-NetworkManager-Device-IPTunnel.Remote">The "Remote" property</a>
+<dt id="ientry-idm45099797909472">org.freedesktop.NetworkManager.Device.IPTunnel:Remote, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.IPTunnel.html#gdbus-property-org-freedesktop-NetworkManager-Device-IPTunnel.Remote">The "Remote" property</a>
 </dt>
-<dt id="ientry-idm45053452236720">org.freedesktop.NetworkManager.Device.IPTunnel:Tos, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.IPTunnel.html#gdbus-property-org-freedesktop-NetworkManager-Device-IPTunnel.Tos">The "Tos" property</a>
+<dt id="ientry-idm45099802278048">org.freedesktop.NetworkManager.Device.IPTunnel:Tos, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.IPTunnel.html#gdbus-property-org-freedesktop-NetworkManager-Device-IPTunnel.Tos">The "Tos" property</a>
 </dt>
-<dt id="ientry-idm45053445548688">org.freedesktop.NetworkManager.Device.IPTunnel:Ttl, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.IPTunnel.html#gdbus-property-org-freedesktop-NetworkManager-Device-IPTunnel.Ttl">The "Ttl" property</a>
+<dt id="ientry-idm45099806750736">org.freedesktop.NetworkManager.Device.IPTunnel:Ttl, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.IPTunnel.html#gdbus-property-org-freedesktop-NetworkManager-Device-IPTunnel.Ttl">The "Ttl" property</a>
 </dt>
-<dt id="ientry-idm45053452141600">org.freedesktop.NetworkManager.Device.Lowpan, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Lowpan.html#gdbus-interface-org-freedesktop-NetworkManager-Device-Lowpan.top_of_page">org.freedesktop.NetworkManager.Device.Lowpan</a>
+<dt id="ientry-idm45099803859584">org.freedesktop.NetworkManager.Device.Lowpan, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Lowpan.html#gdbus-interface-org-freedesktop-NetworkManager-Device-Lowpan.top_of_page">org.freedesktop.NetworkManager.Device.Lowpan</a>
 </dt>
-<dt id="ientry-idm45053449640640">org.freedesktop.NetworkManager.Device.Lowpan:HwAddress, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Lowpan.html#gdbus-property-org-freedesktop-NetworkManager-Device-Lowpan.HwAddress">The "HwAddress" property</a>
+<dt id="ientry-idm45099795197568">org.freedesktop.NetworkManager.Device.Lowpan:HwAddress, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Lowpan.html#gdbus-property-org-freedesktop-NetworkManager-Device-Lowpan.HwAddress">The "HwAddress" property</a>
 </dt>
-<dt id="ientry-idm45053445180864">org.freedesktop.NetworkManager.Device.Lowpan:Parent, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Lowpan.html#gdbus-property-org-freedesktop-NetworkManager-Device-Lowpan.Parent">The "Parent" property</a>
+<dt id="ientry-idm45099795193760">org.freedesktop.NetworkManager.Device.Lowpan:Parent, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Lowpan.html#gdbus-property-org-freedesktop-NetworkManager-Device-Lowpan.Parent">The "Parent" property</a>
 </dt>
-<dt id="ientry-idm45053452409264">org.freedesktop.NetworkManager.Device.Macsec, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Macsec.html#gdbus-interface-org-freedesktop-NetworkManager-Device-Macsec.top_of_page">org.freedesktop.NetworkManager.Device.Macsec</a>
+<dt id="ientry-idm45099806844176">org.freedesktop.NetworkManager.Device.Macsec, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Macsec.html#gdbus-interface-org-freedesktop-NetworkManager-Device-Macsec.top_of_page">org.freedesktop.NetworkManager.Device.Macsec</a>
 </dt>
-<dt id="ientry-idm45053452200944">org.freedesktop.NetworkManager.Device.Macsec::PropertiesChanged, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Macsec.html#gdbus-signal-org-freedesktop-NetworkManager-Device-Macsec.PropertiesChanged">The "PropertiesChanged" signal</a>
+<dt id="ientry-idm45099798255840">org.freedesktop.NetworkManager.Device.Macsec::PropertiesChanged, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Macsec.html#gdbus-signal-org-freedesktop-NetworkManager-Device-Macsec.PropertiesChanged">The "PropertiesChanged" signal</a>
 </dt>
-<dt id="ientry-idm45053442621312">org.freedesktop.NetworkManager.Device.Macsec:CipherSuite, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Macsec.html#gdbus-property-org-freedesktop-NetworkManager-Device-Macsec.CipherSuite">The "CipherSuite" property</a>
+<dt id="ientry-idm45099795177152">org.freedesktop.NetworkManager.Device.Macsec:CipherSuite, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Macsec.html#gdbus-property-org-freedesktop-NetworkManager-Device-Macsec.CipherSuite">The "CipherSuite" property</a>
 </dt>
-<dt id="ientry-idm45053441929536">org.freedesktop.NetworkManager.Device.Macsec:EncodingSa, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Macsec.html#gdbus-property-org-freedesktop-NetworkManager-Device-Macsec.EncodingSa">The "EncodingSa" property</a>
+<dt id="ientry-idm45099795078848">org.freedesktop.NetworkManager.Device.Macsec:EncodingSa, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Macsec.html#gdbus-property-org-freedesktop-NetworkManager-Device-Macsec.EncodingSa">The "EncodingSa" property</a>
 </dt>
-<dt id="ientry-idm45053441921024">org.freedesktop.NetworkManager.Device.Macsec:Encrypt, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Macsec.html#gdbus-property-org-freedesktop-NetworkManager-Device-Macsec.Encrypt">The "Encrypt" property</a>
+<dt id="ientry-idm45099795125248">org.freedesktop.NetworkManager.Device.Macsec:Encrypt, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Macsec.html#gdbus-property-org-freedesktop-NetworkManager-Device-Macsec.Encrypt">The "Encrypt" property</a>
 </dt>
-<dt id="ientry-idm45053441908384">org.freedesktop.NetworkManager.Device.Macsec:Es, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Macsec.html#gdbus-property-org-freedesktop-NetworkManager-Device-Macsec.Es">The "Es" property</a>
+<dt id="ientry-idm45099795144752">org.freedesktop.NetworkManager.Device.Macsec:Es, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Macsec.html#gdbus-property-org-freedesktop-NetworkManager-Device-Macsec.Es">The "Es" property</a>
 </dt>
-<dt id="ientry-idm45053442625376">org.freedesktop.NetworkManager.Device.Macsec:IcvLength, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Macsec.html#gdbus-property-org-freedesktop-NetworkManager-Device-Macsec.IcvLength">The "IcvLength" property</a>
+<dt id="ientry-idm45099795181216">org.freedesktop.NetworkManager.Device.Macsec:IcvLength, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Macsec.html#gdbus-property-org-freedesktop-NetworkManager-Device-Macsec.IcvLength">The "IcvLength" property</a>
 </dt>
-<dt id="ientry-idm45053441912624">org.freedesktop.NetworkManager.Device.Macsec:IncludeSci, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Macsec.html#gdbus-property-org-freedesktop-NetworkManager-Device-Macsec.IncludeSci">The "IncludeSci" property</a>
+<dt id="ientry-idm45099795148896">org.freedesktop.NetworkManager.Device.Macsec:IncludeSci, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Macsec.html#gdbus-property-org-freedesktop-NetworkManager-Device-Macsec.IncludeSci">The "IncludeSci" property</a>
 </dt>
-<dt id="ientry-idm45053442633568">org.freedesktop.NetworkManager.Device.Macsec:Parent, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Macsec.html#gdbus-property-org-freedesktop-NetworkManager-Device-Macsec.Parent">The "Parent" property</a>
+<dt id="ientry-idm45099795115616">org.freedesktop.NetworkManager.Device.Macsec:Parent, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Macsec.html#gdbus-property-org-freedesktop-NetworkManager-Device-Macsec.Parent">The "Parent" property</a>
 </dt>
-<dt id="ientry-idm45053441916832">org.freedesktop.NetworkManager.Device.Macsec:Protect, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Macsec.html#gdbus-property-org-freedesktop-NetworkManager-Device-Macsec.Protect">The "Protect" property</a>
+<dt id="ientry-idm45099795153104">org.freedesktop.NetworkManager.Device.Macsec:Protect, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Macsec.html#gdbus-property-org-freedesktop-NetworkManager-Device-Macsec.Protect">The "Protect" property</a>
 </dt>
-<dt id="ientry-idm45053441899856">org.freedesktop.NetworkManager.Device.Macsec:ReplayProtect, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Macsec.html#gdbus-property-org-freedesktop-NetworkManager-Device-Macsec.ReplayProtect">The "ReplayProtect" property</a>
+<dt id="ientry-idm45099795263456">org.freedesktop.NetworkManager.Device.Macsec:ReplayProtect, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Macsec.html#gdbus-property-org-freedesktop-NetworkManager-Device-Macsec.ReplayProtect">The "ReplayProtect" property</a>
 </dt>
-<dt id="ientry-idm45053441904160">org.freedesktop.NetworkManager.Device.Macsec:Scb, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Macsec.html#gdbus-property-org-freedesktop-NetworkManager-Device-Macsec.Scb">The "Scb" property</a>
+<dt id="ientry-idm45099795267760">org.freedesktop.NetworkManager.Device.Macsec:Scb, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Macsec.html#gdbus-property-org-freedesktop-NetworkManager-Device-Macsec.Scb">The "Scb" property</a>
 </dt>
-<dt id="ientry-idm45053442629456">org.freedesktop.NetworkManager.Device.Macsec:Sci, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Macsec.html#gdbus-property-org-freedesktop-NetworkManager-Device-Macsec.Sci">The "Sci" property</a>
+<dt id="ientry-idm45099795111504">org.freedesktop.NetworkManager.Device.Macsec:Sci, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Macsec.html#gdbus-property-org-freedesktop-NetworkManager-Device-Macsec.Sci">The "Sci" property</a>
 </dt>
-<dt id="ientry-idm45053441925264">org.freedesktop.NetworkManager.Device.Macsec:Validation, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Macsec.html#gdbus-property-org-freedesktop-NetworkManager-Device-Macsec.Validation">The "Validation" property</a>
+<dt id="ientry-idm45099795129392">org.freedesktop.NetworkManager.Device.Macsec:Validation, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Macsec.html#gdbus-property-org-freedesktop-NetworkManager-Device-Macsec.Validation">The "Validation" property</a>
 </dt>
-<dt id="ientry-idm45053441933712">org.freedesktop.NetworkManager.Device.Macsec:Window, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Macsec.html#gdbus-property-org-freedesktop-NetworkManager-Device-Macsec.Window">The "Window" property</a>
+<dt id="ientry-idm45099795083024">org.freedesktop.NetworkManager.Device.Macsec:Window, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Macsec.html#gdbus-property-org-freedesktop-NetworkManager-Device-Macsec.Window">The "Window" property</a>
 </dt>
-<dt id="ientry-idm45053450332960">org.freedesktop.NetworkManager.Device.Macvlan, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Macvlan.html#gdbus-interface-org-freedesktop-NetworkManager-Device-Macvlan.top_of_page">org.freedesktop.NetworkManager.Device.Macvlan</a>
+<dt id="ientry-idm45099802871968">org.freedesktop.NetworkManager.Device.Macvlan, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Macvlan.html#gdbus-interface-org-freedesktop-NetworkManager-Device-Macvlan.top_of_page">org.freedesktop.NetworkManager.Device.Macvlan</a>
 </dt>
-<dt id="ientry-idm45053452459680">org.freedesktop.NetworkManager.Device.Macvlan::PropertiesChanged, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Macvlan.html#gdbus-signal-org-freedesktop-NetworkManager-Device-Macvlan.PropertiesChanged">The "PropertiesChanged" signal</a>
+<dt id="ientry-idm45099795259696">org.freedesktop.NetworkManager.Device.Macvlan::PropertiesChanged, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Macvlan.html#gdbus-signal-org-freedesktop-NetworkManager-Device-Macvlan.PropertiesChanged">The "PropertiesChanged" signal</a>
 </dt>
-<dt id="ientry-idm45053444715552">org.freedesktop.NetworkManager.Device.Macvlan:Mode, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Macvlan.html#gdbus-property-org-freedesktop-NetworkManager-Device-Macvlan.Mode">The "Mode" property</a>
+<dt id="ientry-idm45099795191920">org.freedesktop.NetworkManager.Device.Macvlan:Mode, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Macvlan.html#gdbus-property-org-freedesktop-NetworkManager-Device-Macvlan.Mode">The "Mode" property</a>
 </dt>
-<dt id="ientry-idm45053451365072">org.freedesktop.NetworkManager.Device.Macvlan:NoPromisc, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Macvlan.html#gdbus-property-org-freedesktop-NetworkManager-Device-Macvlan.NoPromisc">The "NoPromisc" property</a>
+<dt id="ientry-idm45099795187984">org.freedesktop.NetworkManager.Device.Macvlan:NoPromisc, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Macvlan.html#gdbus-property-org-freedesktop-NetworkManager-Device-Macvlan.NoPromisc">The "NoPromisc" property</a>
 </dt>
-<dt id="ientry-idm45053451753264">org.freedesktop.NetworkManager.Device.Macvlan:Parent, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Macvlan.html#gdbus-property-org-freedesktop-NetworkManager-Device-Macvlan.Parent">The "Parent" property</a>
+<dt id="ientry-idm45099798520096">org.freedesktop.NetworkManager.Device.Macvlan:Parent, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Macvlan.html#gdbus-property-org-freedesktop-NetworkManager-Device-Macvlan.Parent">The "Parent" property</a>
 </dt>
-<dt id="ientry-idm45053452188160">org.freedesktop.NetworkManager.Device.Macvlan:Tap, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Macvlan.html#gdbus-property-org-freedesktop-NetworkManager-Device-Macvlan.Tap">The "Tap" property</a>
+<dt id="ientry-idm45099795100624">org.freedesktop.NetworkManager.Device.Macvlan:Tap, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Macvlan.html#gdbus-property-org-freedesktop-NetworkManager-Device-Macvlan.Tap">The "Tap" property</a>
 </dt>
-<dt id="ientry-idm45053449041136">org.freedesktop.NetworkManager.Device.Modem, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Modem.html#gdbus-interface-org-freedesktop-NetworkManager-Device-Modem.top_of_page">org.freedesktop.NetworkManager.Device.Modem</a>
+<dt id="ientry-idm45099806843872">org.freedesktop.NetworkManager.Device.Modem, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Modem.html#gdbus-interface-org-freedesktop-NetworkManager-Device-Modem.top_of_page">org.freedesktop.NetworkManager.Device.Modem</a>
 </dt>
-<dt id="ientry-idm45053445423376">org.freedesktop.NetworkManager.Device.Modem::PropertiesChanged, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Modem.html#gdbus-signal-org-freedesktop-NetworkManager-Device-Modem.PropertiesChanged">The "PropertiesChanged" signal</a>
+<dt id="ientry-idm45099795137376">org.freedesktop.NetworkManager.Device.Modem::PropertiesChanged, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Modem.html#gdbus-signal-org-freedesktop-NetworkManager-Device-Modem.PropertiesChanged">The "PropertiesChanged" signal</a>
 </dt>
-<dt id="ientry-idm45053445467520">org.freedesktop.NetworkManager.Device.Modem:CurrentCapabilities, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Modem.html#gdbus-property-org-freedesktop-NetworkManager-Device-Modem.CurrentCapabilities">The "CurrentCapabilities" property</a>
+<dt id="ientry-idm45099798488688">org.freedesktop.NetworkManager.Device.Modem:CurrentCapabilities, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Modem.html#gdbus-property-org-freedesktop-NetworkManager-Device-Modem.CurrentCapabilities">The "CurrentCapabilities" property</a>
 </dt>
-<dt id="ientry-idm45053445480336">org.freedesktop.NetworkManager.Device.Modem:ModemCapabilities, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Modem.html#gdbus-property-org-freedesktop-NetworkManager-Device-Modem.ModemCapabilities">The "ModemCapabilities" property</a>
+<dt id="ientry-idm45099795160176">org.freedesktop.NetworkManager.Device.Modem:ModemCapabilities, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Modem.html#gdbus-property-org-freedesktop-NetworkManager-Device-Modem.ModemCapabilities">The "ModemCapabilities" property</a>
 </dt>
-<dt id="ientry-idm45053456598896">org.freedesktop.NetworkManager.Device.OlpcMesh, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.OlpcMesh.html#gdbus-interface-org-freedesktop-NetworkManager-Device-OlpcMesh.top_of_page">org.freedesktop.NetworkManager.Device.OlpcMesh</a>
+<dt id="ientry-idm45099804370576">org.freedesktop.NetworkManager.Device.OlpcMesh, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.OlpcMesh.html#gdbus-interface-org-freedesktop-NetworkManager-Device-OlpcMesh.top_of_page">org.freedesktop.NetworkManager.Device.OlpcMesh</a>
 </dt>
-<dt id="ientry-idm45053442609808">org.freedesktop.NetworkManager.Device.OlpcMesh::PropertiesChanged, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.OlpcMesh.html#gdbus-signal-org-freedesktop-NetworkManager-Device-OlpcMesh.PropertiesChanged">The "PropertiesChanged" signal</a>
+<dt id="ientry-idm45099795539216">org.freedesktop.NetworkManager.Device.OlpcMesh::PropertiesChanged, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.OlpcMesh.html#gdbus-signal-org-freedesktop-NetworkManager-Device-OlpcMesh.PropertiesChanged">The "PropertiesChanged" signal</a>
 </dt>
-<dt id="ientry-idm45053442435776">org.freedesktop.NetworkManager.Device.OlpcMesh:ActiveChannel, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.OlpcMesh.html#gdbus-property-org-freedesktop-NetworkManager-Device-OlpcMesh.ActiveChannel">The "ActiveChannel" property</a>
+<dt id="ientry-idm45099795727120">org.freedesktop.NetworkManager.Device.OlpcMesh:ActiveChannel, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.OlpcMesh.html#gdbus-property-org-freedesktop-NetworkManager-Device-OlpcMesh.ActiveChannel">The "ActiveChannel" property</a>
 </dt>
-<dt id="ientry-idm45053442439936">org.freedesktop.NetworkManager.Device.OlpcMesh:Companion, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.OlpcMesh.html#gdbus-property-org-freedesktop-NetworkManager-Device-OlpcMesh.Companion">The "Companion" property</a>
+<dt id="ientry-idm45099798606656">org.freedesktop.NetworkManager.Device.OlpcMesh:Companion, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.OlpcMesh.html#gdbus-property-org-freedesktop-NetworkManager-Device-OlpcMesh.Companion">The "Companion" property</a>
 </dt>
-<dt id="ientry-idm45053442589664">org.freedesktop.NetworkManager.Device.OlpcMesh:HwAddress, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.OlpcMesh.html#gdbus-property-org-freedesktop-NetworkManager-Device-OlpcMesh.HwAddress">The "HwAddress" property</a>
+<dt id="ientry-idm45099798610432">org.freedesktop.NetworkManager.Device.OlpcMesh:HwAddress, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.OlpcMesh.html#gdbus-property-org-freedesktop-NetworkManager-Device-OlpcMesh.HwAddress">The "HwAddress" property</a>
 </dt>
-<dt id="ientry-idm45053448412960">org.freedesktop.NetworkManager.Device.OvsBridge, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.OvsBridge.html#gdbus-interface-org-freedesktop-NetworkManager-Device-OvsBridge.top_of_page">org.freedesktop.NetworkManager.Device.OvsBridge</a>
+<dt id="ientry-idm45099803958656">org.freedesktop.NetworkManager.Device.OvsBridge, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.OvsBridge.html#gdbus-interface-org-freedesktop-NetworkManager-Device-OvsBridge.top_of_page">org.freedesktop.NetworkManager.Device.OvsBridge</a>
 </dt>
-<dt id="ientry-idm45053442492512">org.freedesktop.NetworkManager.Device.OvsBridge::PropertiesChanged, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.OvsBridge.html#gdbus-signal-org-freedesktop-NetworkManager-Device-OvsBridge.PropertiesChanged">The "PropertiesChanged" signal</a>
+<dt id="ientry-idm45099798588688">org.freedesktop.NetworkManager.Device.OvsBridge::PropertiesChanged, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.OvsBridge.html#gdbus-signal-org-freedesktop-NetworkManager-Device-OvsBridge.PropertiesChanged">The "PropertiesChanged" signal</a>
 </dt>
-<dt id="ientry-idm45053452254384">org.freedesktop.NetworkManager.Device.OvsBridge:Slaves, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.OvsBridge.html#gdbus-property-org-freedesktop-NetworkManager-Device-OvsBridge.Slaves">The "Slaves" property</a>
+<dt id="ientry-idm45099798639584">org.freedesktop.NetworkManager.Device.OvsBridge:Slaves, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.OvsBridge.html#gdbus-property-org-freedesktop-NetworkManager-Device-OvsBridge.Slaves">The "Slaves" property</a>
 </dt>
-<dt id="ientry-idm45053444693712">org.freedesktop.NetworkManager.Device.OvsInterface, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.OvsInterface.html#gdbus-interface-org-freedesktop-NetworkManager-Device-OvsInterface.top_of_page">org.freedesktop.NetworkManager.Device.OvsInterface</a>
+<dt id="ientry-idm45099804227952">org.freedesktop.NetworkManager.Device.OvsInterface, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.OvsInterface.html#gdbus-interface-org-freedesktop-NetworkManager-Device-OvsInterface.top_of_page">org.freedesktop.NetworkManager.Device.OvsInterface</a>
 </dt>
-<dt id="ientry-idm45053451801728">org.freedesktop.NetworkManager.Device.OvsInterface::PropertiesChanged, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.OvsInterface.html#gdbus-signal-org-freedesktop-NetworkManager-Device-OvsInterface.PropertiesChanged">The "PropertiesChanged" signal</a>
+<dt id="ientry-idm45099795723584">org.freedesktop.NetworkManager.Device.OvsInterface::PropertiesChanged, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.OvsInterface.html#gdbus-signal-org-freedesktop-NetworkManager-Device-OvsInterface.PropertiesChanged">The "PropertiesChanged" signal</a>
 </dt>
-<dt id="ientry-idm45053452537392">org.freedesktop.NetworkManager.Device.OvsPort, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.OvsPort.html#gdbus-interface-org-freedesktop-NetworkManager-Device-OvsPort.top_of_page">org.freedesktop.NetworkManager.Device.OvsPort</a>
+<dt id="ientry-idm45099804373696">org.freedesktop.NetworkManager.Device.OvsPort, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.OvsPort.html#gdbus-interface-org-freedesktop-NetworkManager-Device-OvsPort.top_of_page">org.freedesktop.NetworkManager.Device.OvsPort</a>
 </dt>
-<dt id="ientry-idm45053442535936">org.freedesktop.NetworkManager.Device.OvsPort::PropertiesChanged, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.OvsPort.html#gdbus-signal-org-freedesktop-NetworkManager-Device-OvsPort.PropertiesChanged">The "PropertiesChanged" signal</a>
+<dt id="ientry-idm45099801632720">org.freedesktop.NetworkManager.Device.OvsPort::PropertiesChanged, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.OvsPort.html#gdbus-signal-org-freedesktop-NetworkManager-Device-OvsPort.PropertiesChanged">The "PropertiesChanged" signal</a>
 </dt>
-<dt id="ientry-idm45053442459168">org.freedesktop.NetworkManager.Device.OvsPort:Slaves, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.OvsPort.html#gdbus-property-org-freedesktop-NetworkManager-Device-OvsPort.Slaves">The "Slaves" property</a>
+<dt id="ientry-idm45099800468384">org.freedesktop.NetworkManager.Device.OvsPort:Slaves, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.OvsPort.html#gdbus-property-org-freedesktop-NetworkManager-Device-OvsPort.Slaves">The "Slaves" property</a>
 </dt>
-<dt id="ientry-idm45053453395776">org.freedesktop.NetworkManager.Device.Ppp, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Ppp.html#gdbus-interface-org-freedesktop-NetworkManager-Device-Ppp.top_of_page">org.freedesktop.NetworkManager.Device.Ppp</a>
+<dt id="ientry-idm45099805601648">org.freedesktop.NetworkManager.Device.Ppp, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Ppp.html#gdbus-interface-org-freedesktop-NetworkManager-Device-Ppp.top_of_page">org.freedesktop.NetworkManager.Device.Ppp</a>
 </dt>
-<dt id="ientry-idm45053442300976">org.freedesktop.NetworkManager.Device.Ppp::PropertiesChanged, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Ppp.html#gdbus-signal-org-freedesktop-NetworkManager-Device-Ppp.PropertiesChanged">The "PropertiesChanged" signal</a>
+<dt id="ientry-idm45099795320432">org.freedesktop.NetworkManager.Device.Ppp::PropertiesChanged, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Ppp.html#gdbus-signal-org-freedesktop-NetworkManager-Device-Ppp.PropertiesChanged">The "PropertiesChanged" signal</a>
 </dt>
-<dt id="ientry-idm45053445396352">org.freedesktop.NetworkManager.Device.Reapply(), <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.html#gdbus-method-org-freedesktop-NetworkManager-Device.Reapply">The Reapply() method</a>
+<dt id="ientry-idm45099806623232">org.freedesktop.NetworkManager.Device.Reapply(), <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.html#gdbus-method-org-freedesktop-NetworkManager-Device.Reapply">The Reapply() method</a>
 </dt>
-<dt id="ientry-idm45053449914832">org.freedesktop.NetworkManager.Device.Statistics, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Statistics.html#gdbus-interface-org-freedesktop-NetworkManager-Device-Statistics.top_of_page">org.freedesktop.NetworkManager.Device.Statistics</a>
+<dt id="ientry-idm45099805716592">org.freedesktop.NetworkManager.Device.Statistics, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Statistics.html#gdbus-interface-org-freedesktop-NetworkManager-Device-Statistics.top_of_page">org.freedesktop.NetworkManager.Device.Statistics</a>
 </dt>
-<dt id="ientry-idm45053444835216">org.freedesktop.NetworkManager.Device.Statistics::PropertiesChanged, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Statistics.html#gdbus-signal-org-freedesktop-NetworkManager-Device-Statistics.PropertiesChanged">The "PropertiesChanged" signal</a>
+<dt id="ientry-idm45099803735248">org.freedesktop.NetworkManager.Device.Statistics::PropertiesChanged, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Statistics.html#gdbus-signal-org-freedesktop-NetworkManager-Device-Statistics.PropertiesChanged">The "PropertiesChanged" signal</a>
 </dt>
-<dt id="ientry-idm45053450495664">org.freedesktop.NetworkManager.Device.Statistics:RefreshRateMs, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Statistics.html#gdbus-property-org-freedesktop-NetworkManager-Device-Statistics.RefreshRateMs">The "RefreshRateMs" property</a>
+<dt id="ientry-idm45099802879104">org.freedesktop.NetworkManager.Device.Statistics:RefreshRateMs, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Statistics.html#gdbus-property-org-freedesktop-NetworkManager-Device-Statistics.RefreshRateMs">The "RefreshRateMs" property</a>
 </dt>
-<dt id="ientry-idm45053445341520">org.freedesktop.NetworkManager.Device.Statistics:RxBytes, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Statistics.html#gdbus-property-org-freedesktop-NetworkManager-Device-Statistics.RxBytes">The "RxBytes" property</a>
+<dt id="ientry-idm45099806034704">org.freedesktop.NetworkManager.Device.Statistics:RxBytes, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Statistics.html#gdbus-property-org-freedesktop-NetworkManager-Device-Statistics.RxBytes">The "RxBytes" property</a>
 </dt>
-<dt id="ientry-idm45053447349792">org.freedesktop.NetworkManager.Device.Statistics:TxBytes, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Statistics.html#gdbus-property-org-freedesktop-NetworkManager-Device-Statistics.TxBytes">The "TxBytes" property</a>
+<dt id="ientry-idm45099798454464">org.freedesktop.NetworkManager.Device.Statistics:TxBytes, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Statistics.html#gdbus-property-org-freedesktop-NetworkManager-Device-Statistics.TxBytes">The "TxBytes" property</a>
 </dt>
-<dt id="ientry-idm45053452871296">org.freedesktop.NetworkManager.Device.Team, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Team.html#gdbus-interface-org-freedesktop-NetworkManager-Device-Team.top_of_page">org.freedesktop.NetworkManager.Device.Team</a>
+<dt id="ientry-idm45099803824928">org.freedesktop.NetworkManager.Device.Team, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Team.html#gdbus-interface-org-freedesktop-NetworkManager-Device-Team.top_of_page">org.freedesktop.NetworkManager.Device.Team</a>
 </dt>
-<dt id="ientry-idm45053441966256">org.freedesktop.NetworkManager.Device.Team::PropertiesChanged, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Team.html#gdbus-signal-org-freedesktop-NetworkManager-Device-Team.PropertiesChanged">The "PropertiesChanged" signal</a>
+<dt id="ientry-idm45099798478112">org.freedesktop.NetworkManager.Device.Team::PropertiesChanged, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Team.html#gdbus-signal-org-freedesktop-NetworkManager-Device-Team.PropertiesChanged">The "PropertiesChanged" signal</a>
 </dt>
-<dt id="ientry-idm45053442249808">org.freedesktop.NetworkManager.Device.Team:Carrier, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Team.html#gdbus-property-org-freedesktop-NetworkManager-Device-Team.Carrier">The "Carrier" property</a>
+<dt id="ientry-idm45099795276064">org.freedesktop.NetworkManager.Device.Team:Carrier, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Team.html#gdbus-property-org-freedesktop-NetworkManager-Device-Team.Carrier">The "Carrier" property</a>
 </dt>
-<dt id="ientry-idm45053442241328">org.freedesktop.NetworkManager.Device.Team:Config, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Team.html#gdbus-property-org-freedesktop-NetworkManager-Device-Team.Config">The "Config" property</a>
+<dt id="ientry-idm45099795381712">org.freedesktop.NetworkManager.Device.Team:Config, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Team.html#gdbus-property-org-freedesktop-NetworkManager-Device-Team.Config">The "Config" property</a>
 </dt>
-<dt id="ientry-idm45053442253888">org.freedesktop.NetworkManager.Device.Team:HwAddress, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Team.html#gdbus-property-org-freedesktop-NetworkManager-Device-Team.HwAddress">The "HwAddress" property</a>
+<dt id="ientry-idm45099795280144">org.freedesktop.NetworkManager.Device.Team:HwAddress, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Team.html#gdbus-property-org-freedesktop-NetworkManager-Device-Team.HwAddress">The "HwAddress" property</a>
 </dt>
-<dt id="ientry-idm45053442245568">org.freedesktop.NetworkManager.Device.Team:Slaves, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Team.html#gdbus-property-org-freedesktop-NetworkManager-Device-Team.Slaves">The "Slaves" property</a>
+<dt id="ientry-idm45099795385952">org.freedesktop.NetworkManager.Device.Team:Slaves, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Team.html#gdbus-property-org-freedesktop-NetworkManager-Device-Team.Slaves">The "Slaves" property</a>
 </dt>
-<dt id="ientry-idm45053452952032">org.freedesktop.NetworkManager.Device.Tun, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Tun.html#gdbus-interface-org-freedesktop-NetworkManager-Device-Tun.top_of_page">org.freedesktop.NetworkManager.Device.Tun</a>
+<dt id="ientry-idm45099805315648">org.freedesktop.NetworkManager.Device.Tun, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Tun.html#gdbus-interface-org-freedesktop-NetworkManager-Device-Tun.top_of_page">org.freedesktop.NetworkManager.Device.Tun</a>
 </dt>
-<dt id="ientry-idm45053442519536">org.freedesktop.NetworkManager.Device.Tun::PropertiesChanged, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Tun.html#gdbus-signal-org-freedesktop-NetworkManager-Device-Tun.PropertiesChanged">The "PropertiesChanged" signal</a>
+<dt id="ientry-idm45099798562640">org.freedesktop.NetworkManager.Device.Tun::PropertiesChanged, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Tun.html#gdbus-signal-org-freedesktop-NetworkManager-Device-Tun.PropertiesChanged">The "PropertiesChanged" signal</a>
 </dt>
-<dt id="ientry-idm45053442506256">org.freedesktop.NetworkManager.Device.Tun:Group, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Tun.html#gdbus-property-org-freedesktop-NetworkManager-Device-Tun.Group">The "Group" property</a>
+<dt id="ientry-idm45099795330448">org.freedesktop.NetworkManager.Device.Tun:Group, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Tun.html#gdbus-property-org-freedesktop-NetworkManager-Device-Tun.Group">The "Group" property</a>
 </dt>
-<dt id="ientry-idm45053442073792">org.freedesktop.NetworkManager.Device.Tun:HwAddress, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Tun.html#gdbus-property-org-freedesktop-NetworkManager-Device-Tun.HwAddress">The "HwAddress" property</a>
+<dt id="ientry-idm45099796276864">org.freedesktop.NetworkManager.Device.Tun:HwAddress, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Tun.html#gdbus-property-org-freedesktop-NetworkManager-Device-Tun.HwAddress">The "HwAddress" property</a>
 </dt>
-<dt id="ientry-idm45053442278400">org.freedesktop.NetworkManager.Device.Tun:Mode, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Tun.html#gdbus-property-org-freedesktop-NetworkManager-Device-Tun.Mode">The "Mode" property</a>
+<dt id="ientry-idm45099795360832">org.freedesktop.NetworkManager.Device.Tun:Mode, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Tun.html#gdbus-property-org-freedesktop-NetworkManager-Device-Tun.Mode">The "Mode" property</a>
 </dt>
-<dt id="ientry-idm45053442265840">org.freedesktop.NetworkManager.Device.Tun:MultiQueue, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Tun.html#gdbus-property-org-freedesktop-NetworkManager-Device-Tun.MultiQueue">The "MultiQueue" property</a>
+<dt id="ientry-idm45099796281040">org.freedesktop.NetworkManager.Device.Tun:MultiQueue, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Tun.html#gdbus-property-org-freedesktop-NetworkManager-Device-Tun.MultiQueue">The "MultiQueue" property</a>
 </dt>
-<dt id="ientry-idm45053442274288">org.freedesktop.NetworkManager.Device.Tun:NoPi, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Tun.html#gdbus-property-org-freedesktop-NetworkManager-Device-Tun.NoPi">The "NoPi" property</a>
+<dt id="ientry-idm45099795356720">org.freedesktop.NetworkManager.Device.Tun:NoPi, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Tun.html#gdbus-property-org-freedesktop-NetworkManager-Device-Tun.NoPi">The "NoPi" property</a>
 </dt>
-<dt id="ientry-idm45053442510448">org.freedesktop.NetworkManager.Device.Tun:Owner, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Tun.html#gdbus-property-org-freedesktop-NetworkManager-Device-Tun.Owner">The "Owner" property</a>
+<dt id="ientry-idm45099795334640">org.freedesktop.NetworkManager.Device.Tun:Owner, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Tun.html#gdbus-property-org-freedesktop-NetworkManager-Device-Tun.Owner">The "Owner" property</a>
 </dt>
-<dt id="ientry-idm45053442270048">org.freedesktop.NetworkManager.Device.Tun:VnetHdr, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Tun.html#gdbus-property-org-freedesktop-NetworkManager-Device-Tun.VnetHdr">The "VnetHdr" property</a>
+<dt id="ientry-idm45099795352480">org.freedesktop.NetworkManager.Device.Tun:VnetHdr, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Tun.html#gdbus-property-org-freedesktop-NetworkManager-Device-Tun.VnetHdr">The "VnetHdr" property</a>
 </dt>
-<dt id="ientry-idm45053449726576">org.freedesktop.NetworkManager.Device.Veth, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Veth.html#gdbus-interface-org-freedesktop-NetworkManager-Device-Veth.top_of_page">org.freedesktop.NetworkManager.Device.Veth</a>
+<dt id="ientry-idm45099804005696">org.freedesktop.NetworkManager.Device.Veth, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Veth.html#gdbus-interface-org-freedesktop-NetworkManager-Device-Veth.top_of_page">org.freedesktop.NetworkManager.Device.Veth</a>
 </dt>
-<dt id="ientry-idm45053442382224">org.freedesktop.NetworkManager.Device.Veth::PropertiesChanged, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Veth.html#gdbus-signal-org-freedesktop-NetworkManager-Device-Veth.PropertiesChanged">The "PropertiesChanged" signal</a>
+<dt id="ientry-idm45099795287504">org.freedesktop.NetworkManager.Device.Veth::PropertiesChanged, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Veth.html#gdbus-signal-org-freedesktop-NetworkManager-Device-Veth.PropertiesChanged">The "PropertiesChanged" signal</a>
 </dt>
-<dt id="ientry-idm45053441728720">org.freedesktop.NetworkManager.Device.Veth:Peer, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Veth.html#gdbus-property-org-freedesktop-NetworkManager-Device-Veth.Peer">The "Peer" property</a>
+<dt id="ientry-idm45099795454832">org.freedesktop.NetworkManager.Device.Veth:Peer, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Veth.html#gdbus-property-org-freedesktop-NetworkManager-Device-Veth.Peer">The "Peer" property</a>
 </dt>
-<dt id="ientry-idm45053452958080">org.freedesktop.NetworkManager.Device.Vlan, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Vlan.html#gdbus-interface-org-freedesktop-NetworkManager-Device-Vlan.top_of_page">org.freedesktop.NetworkManager.Device.Vlan</a>
+<dt id="ientry-idm45099802838000">org.freedesktop.NetworkManager.Device.Vlan, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Vlan.html#gdbus-interface-org-freedesktop-NetworkManager-Device-Vlan.top_of_page">org.freedesktop.NetworkManager.Device.Vlan</a>
 </dt>
-<dt id="ientry-idm45053442063104">org.freedesktop.NetworkManager.Device.Vlan::PropertiesChanged, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Vlan.html#gdbus-signal-org-freedesktop-NetworkManager-Device-Vlan.PropertiesChanged">The "PropertiesChanged" signal</a>
+<dt id="ientry-idm45099795684928">org.freedesktop.NetworkManager.Device.Vlan::PropertiesChanged, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Vlan.html#gdbus-signal-org-freedesktop-NetworkManager-Device-Vlan.PropertiesChanged">The "PropertiesChanged" signal</a>
 </dt>
-<dt id="ientry-idm45053442101200">org.freedesktop.NetworkManager.Device.Vlan:Carrier, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Vlan.html#gdbus-property-org-freedesktop-NetworkManager-Device-Vlan.Carrier">The "Carrier" property</a>
+<dt id="ientry-idm45099795466400">org.freedesktop.NetworkManager.Device.Vlan:Carrier, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Vlan.html#gdbus-property-org-freedesktop-NetworkManager-Device-Vlan.Carrier">The "Carrier" property</a>
 </dt>
-<dt id="ientry-idm45053442105280">org.freedesktop.NetworkManager.Device.Vlan:HwAddress, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Vlan.html#gdbus-property-org-freedesktop-NetworkManager-Device-Vlan.HwAddress">The "HwAddress" property</a>
+<dt id="ientry-idm45099795470480">org.freedesktop.NetworkManager.Device.Vlan:HwAddress, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Vlan.html#gdbus-property-org-freedesktop-NetworkManager-Device-Vlan.HwAddress">The "HwAddress" property</a>
 </dt>
-<dt id="ientry-idm45053442357264">org.freedesktop.NetworkManager.Device.Vlan:Parent, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Vlan.html#gdbus-property-org-freedesktop-NetworkManager-Device-Vlan.Parent">The "Parent" property</a>
+<dt id="ientry-idm45099795412384">org.freedesktop.NetworkManager.Device.Vlan:Parent, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Vlan.html#gdbus-property-org-freedesktop-NetworkManager-Device-Vlan.Parent">The "Parent" property</a>
 </dt>
-<dt id="ientry-idm45053442353072">org.freedesktop.NetworkManager.Device.Vlan:VlanId, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Vlan.html#gdbus-property-org-freedesktop-NetworkManager-Device-Vlan.VlanId">The "VlanId" property</a>
+<dt id="ientry-idm45099795408192">org.freedesktop.NetworkManager.Device.Vlan:VlanId, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Vlan.html#gdbus-property-org-freedesktop-NetworkManager-Device-Vlan.VlanId">The "VlanId" property</a>
 </dt>
-<dt id="ientry-idm45053452537872">org.freedesktop.NetworkManager.Device.Vxlan, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Vxlan.html#gdbus-interface-org-freedesktop-NetworkManager-Device-Vxlan.top_of_page">org.freedesktop.NetworkManager.Device.Vxlan</a>
+<dt id="ientry-idm45099803026928">org.freedesktop.NetworkManager.Device.Vxlan, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Vxlan.html#gdbus-interface-org-freedesktop-NetworkManager-Device-Vxlan.top_of_page">org.freedesktop.NetworkManager.Device.Vxlan</a>
 </dt>
-<dt id="ientry-idm45053441744320">org.freedesktop.NetworkManager.Device.Vxlan::PropertiesChanged, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Vxlan.html#gdbus-signal-org-freedesktop-NetworkManager-Device-Vxlan.PropertiesChanged">The "PropertiesChanged" signal</a>
+<dt id="ientry-idm45099795581760">org.freedesktop.NetworkManager.Device.Vxlan::PropertiesChanged, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Vxlan.html#gdbus-signal-org-freedesktop-NetworkManager-Device-Vxlan.PropertiesChanged">The "PropertiesChanged" signal</a>
 </dt>
-<dt id="ientry-idm45053442803296">org.freedesktop.NetworkManager.Device.Vxlan:Ageing, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Vxlan.html#gdbus-property-org-freedesktop-NetworkManager-Device-Vxlan.Ageing">The "Ageing" property</a>
+<dt id="ientry-idm45099795870192">org.freedesktop.NetworkManager.Device.Vxlan:Ageing, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Vxlan.html#gdbus-property-org-freedesktop-NetworkManager-Device-Vxlan.Ageing">The "Ageing" property</a>
 </dt>
-<dt id="ientry-idm45053442794864">org.freedesktop.NetworkManager.Device.Vxlan:DstPort, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Vxlan.html#gdbus-property-org-freedesktop-NetworkManager-Device-Vxlan.DstPort">The "DstPort" property</a>
+<dt id="ientry-idm45099795861760">org.freedesktop.NetworkManager.Device.Vxlan:DstPort, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Vxlan.html#gdbus-property-org-freedesktop-NetworkManager-Device-Vxlan.DstPort">The "DstPort" property</a>
 </dt>
-<dt id="ientry-idm45053442398288">org.freedesktop.NetworkManager.Device.Vxlan:Group, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Vxlan.html#gdbus-property-org-freedesktop-NetworkManager-Device-Vxlan.Group">The "Group" property</a>
+<dt id="ientry-idm45099795560112">org.freedesktop.NetworkManager.Device.Vxlan:Group, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Vxlan.html#gdbus-property-org-freedesktop-NetworkManager-Device-Vxlan.Group">The "Group" property</a>
 </dt>
-<dt id="ientry-idm45053442406480">org.freedesktop.NetworkManager.Device.Vxlan:HwAddress, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Vxlan.html#gdbus-property-org-freedesktop-NetworkManager-Device-Vxlan.HwAddress">The "HwAddress" property</a>
+<dt id="ientry-idm45099795568304">org.freedesktop.NetworkManager.Device.Vxlan:HwAddress, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Vxlan.html#gdbus-property-org-freedesktop-NetworkManager-Device-Vxlan.HwAddress">The "HwAddress" property</a>
 </dt>
-<dt id="ientry-idm45053442402400">org.freedesktop.NetworkManager.Device.Vxlan:Id, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Vxlan.html#gdbus-property-org-freedesktop-NetworkManager-Device-Vxlan.Id">The "Id" property</a>
+<dt id="ientry-idm45099795564224">org.freedesktop.NetworkManager.Device.Vxlan:Id, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Vxlan.html#gdbus-property-org-freedesktop-NetworkManager-Device-Vxlan.Id">The "Id" property</a>
 </dt>
-<dt id="ientry-idm45053442773840">org.freedesktop.NetworkManager.Device.Vxlan:L2miss, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Vxlan.html#gdbus-property-org-freedesktop-NetworkManager-Device-Vxlan.L2miss">The "L2miss" property</a>
+<dt id="ientry-idm45099795840736">org.freedesktop.NetworkManager.Device.Vxlan:L2miss, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Vxlan.html#gdbus-property-org-freedesktop-NetworkManager-Device-Vxlan.L2miss">The "L2miss" property</a>
 </dt>
-<dt id="ientry-idm45053442769632">org.freedesktop.NetworkManager.Device.Vxlan:L3miss, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Vxlan.html#gdbus-property-org-freedesktop-NetworkManager-Device-Vxlan.L3miss">The "L3miss" property</a>
+<dt id="ientry-idm45099795836528">org.freedesktop.NetworkManager.Device.Vxlan:L3miss, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Vxlan.html#gdbus-property-org-freedesktop-NetworkManager-Device-Vxlan.L3miss">The "L3miss" property</a>
 </dt>
-<dt id="ientry-idm45053442807456">org.freedesktop.NetworkManager.Device.Vxlan:Learning, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Vxlan.html#gdbus-property-org-freedesktop-NetworkManager-Device-Vxlan.Learning">The "Learning" property</a>
+<dt id="ientry-idm45099795874352">org.freedesktop.NetworkManager.Device.Vxlan:Learning, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Vxlan.html#gdbus-property-org-freedesktop-NetworkManager-Device-Vxlan.Learning">The "Learning" property</a>
 </dt>
-<dt id="ientry-idm45053442799088">org.freedesktop.NetworkManager.Device.Vxlan:Limit, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Vxlan.html#gdbus-property-org-freedesktop-NetworkManager-Device-Vxlan.Limit">The "Limit" property</a>
+<dt id="ientry-idm45099795865984">org.freedesktop.NetworkManager.Device.Vxlan:Limit, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Vxlan.html#gdbus-property-org-freedesktop-NetworkManager-Device-Vxlan.Limit">The "Limit" property</a>
 </dt>
-<dt id="ientry-idm45053442820144">org.freedesktop.NetworkManager.Device.Vxlan:Local, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Vxlan.html#gdbus-property-org-freedesktop-NetworkManager-Device-Vxlan.Local">The "Local" property</a>
+<dt id="ientry-idm45099795887040">org.freedesktop.NetworkManager.Device.Vxlan:Local, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Vxlan.html#gdbus-property-org-freedesktop-NetworkManager-Device-Vxlan.Local">The "Local" property</a>
 </dt>
-<dt id="ientry-idm45053442410688">org.freedesktop.NetworkManager.Device.Vxlan:Parent, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Vxlan.html#gdbus-property-org-freedesktop-NetworkManager-Device-Vxlan.Parent">The "Parent" property</a>
+<dt id="ientry-idm45099795572512">org.freedesktop.NetworkManager.Device.Vxlan:Parent, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Vxlan.html#gdbus-property-org-freedesktop-NetworkManager-Device-Vxlan.Parent">The "Parent" property</a>
 </dt>
-<dt id="ientry-idm45053442782288">org.freedesktop.NetworkManager.Device.Vxlan:Proxy, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Vxlan.html#gdbus-property-org-freedesktop-NetworkManager-Device-Vxlan.Proxy">The "Proxy" property</a>
+<dt id="ientry-idm45099795849184">org.freedesktop.NetworkManager.Device.Vxlan:Proxy, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Vxlan.html#gdbus-property-org-freedesktop-NetworkManager-Device-Vxlan.Proxy">The "Proxy" property</a>
 </dt>
-<dt id="ientry-idm45053442778080">org.freedesktop.NetworkManager.Device.Vxlan:Rsc, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Vxlan.html#gdbus-property-org-freedesktop-NetworkManager-Device-Vxlan.Rsc">The "Rsc" property</a>
+<dt id="ientry-idm45099795844976">org.freedesktop.NetworkManager.Device.Vxlan:Rsc, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Vxlan.html#gdbus-property-org-freedesktop-NetworkManager-Device-Vxlan.Rsc">The "Rsc" property</a>
 </dt>
-<dt id="ientry-idm45053442786528">org.freedesktop.NetworkManager.Device.Vxlan:SrcPortMax, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Vxlan.html#gdbus-property-org-freedesktop-NetworkManager-Device-Vxlan.SrcPortMax">The "SrcPortMax" property</a>
+<dt id="ientry-idm45099795853424">org.freedesktop.NetworkManager.Device.Vxlan:SrcPortMax, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Vxlan.html#gdbus-property-org-freedesktop-NetworkManager-Device-Vxlan.SrcPortMax">The "SrcPortMax" property</a>
 </dt>
-<dt id="ientry-idm45053442790784">org.freedesktop.NetworkManager.Device.Vxlan:SrcPortMin, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Vxlan.html#gdbus-property-org-freedesktop-NetworkManager-Device-Vxlan.SrcPortMin">The "SrcPortMin" property</a>
+<dt id="ientry-idm45099795857680">org.freedesktop.NetworkManager.Device.Vxlan:SrcPortMin, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Vxlan.html#gdbus-property-org-freedesktop-NetworkManager-Device-Vxlan.SrcPortMin">The "SrcPortMin" property</a>
 </dt>
-<dt id="ientry-idm45053442815904">org.freedesktop.NetworkManager.Device.Vxlan:Tos, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Vxlan.html#gdbus-property-org-freedesktop-NetworkManager-Device-Vxlan.Tos">The "Tos" property</a>
+<dt id="ientry-idm45099795882800">org.freedesktop.NetworkManager.Device.Vxlan:Tos, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Vxlan.html#gdbus-property-org-freedesktop-NetworkManager-Device-Vxlan.Tos">The "Tos" property</a>
 </dt>
-<dt id="ientry-idm45053442811680">org.freedesktop.NetworkManager.Device.Vxlan:Ttl, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Vxlan.html#gdbus-property-org-freedesktop-NetworkManager-Device-Vxlan.Ttl">The "Ttl" property</a>
+<dt id="ientry-idm45099795878576">org.freedesktop.NetworkManager.Device.Vxlan:Ttl, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Vxlan.html#gdbus-property-org-freedesktop-NetworkManager-Device-Vxlan.Ttl">The "Ttl" property</a>
 </dt>
-<dt id="ientry-idm45053445173024">org.freedesktop.NetworkManager.Device.WireGuard, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.WireGuard.html#gdbus-interface-org-freedesktop-NetworkManager-Device-WireGuard.top_of_page">org.freedesktop.NetworkManager.Device.WireGuard</a>
+<dt id="ientry-idm45099803502176">org.freedesktop.NetworkManager.Device.WireGuard, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.WireGuard.html#gdbus-interface-org-freedesktop-NetworkManager-Device-WireGuard.top_of_page">org.freedesktop.NetworkManager.Device.WireGuard</a>
 </dt>
-<dt id="ientry-idm45053442056832">org.freedesktop.NetworkManager.Device.WireGuard:FwMark, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.WireGuard.html#gdbus-property-org-freedesktop-NetworkManager-Device-WireGuard.FwMark">The "FwMark" property</a>
+<dt id="ientry-idm45099798495888">org.freedesktop.NetworkManager.Device.WireGuard:FwMark, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.WireGuard.html#gdbus-property-org-freedesktop-NetworkManager-Device-WireGuard.FwMark">The "FwMark" property</a>
 </dt>
-<dt id="ientry-idm45053442060752">org.freedesktop.NetworkManager.Device.WireGuard:ListenPort, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.WireGuard.html#gdbus-property-org-freedesktop-NetworkManager-Device-WireGuard.ListenPort">The "ListenPort" property</a>
+<dt id="ientry-idm45099798509392">org.freedesktop.NetworkManager.Device.WireGuard:ListenPort, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.WireGuard.html#gdbus-property-org-freedesktop-NetworkManager-Device-WireGuard.ListenPort">The "ListenPort" property</a>
 </dt>
-<dt id="ientry-idm45053441951296">org.freedesktop.NetworkManager.Device.WireGuard:PublicKey, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.WireGuard.html#gdbus-property-org-freedesktop-NetworkManager-Device-WireGuard.PublicKey">The "PublicKey" property</a>
+<dt id="ientry-idm45099795422656">org.freedesktop.NetworkManager.Device.WireGuard:PublicKey, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.WireGuard.html#gdbus-property-org-freedesktop-NetworkManager-Device-WireGuard.PublicKey">The "PublicKey" property</a>
 </dt>
-<dt id="ientry-idm45053449350464">org.freedesktop.NetworkManager.Device.Wpan, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Wpan.html#gdbus-interface-org-freedesktop-NetworkManager-Device-Wpan.top_of_page">org.freedesktop.NetworkManager.Device.Wpan</a>
+<dt id="ientry-idm45099804038848">org.freedesktop.NetworkManager.Device.Wpan, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Wpan.html#gdbus-interface-org-freedesktop-NetworkManager-Device-Wpan.top_of_page">org.freedesktop.NetworkManager.Device.Wpan</a>
 </dt>
-<dt id="ientry-idm45053442702336">org.freedesktop.NetworkManager.Device.Wpan:HwAddress, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Wpan.html#gdbus-property-org-freedesktop-NetworkManager-Device-Wpan.HwAddress">The "HwAddress" property</a>
+<dt id="ientry-idm45099795675536">org.freedesktop.NetworkManager.Device.Wpan:HwAddress, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Wpan.html#gdbus-property-org-freedesktop-NetworkManager-Device-Wpan.HwAddress">The "HwAddress" property</a>
 </dt>
-<dt id="ientry-idm45053445606928">org.freedesktop.NetworkManager.Device::StateChanged, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.html#gdbus-signal-org-freedesktop-NetworkManager-Device.StateChanged">The "StateChanged" signal</a>
+<dt id="ientry-idm45099798323120">org.freedesktop.NetworkManager.Device::StateChanged, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.html#gdbus-signal-org-freedesktop-NetworkManager-Device.StateChanged">The "StateChanged" signal</a>
 </dt>
-<dt id="ientry-idm45053444913440">org.freedesktop.NetworkManager.Device:ActiveConnection, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.html#gdbus-property-org-freedesktop-NetworkManager-Device.ActiveConnection">The "ActiveConnection" property</a>
+<dt id="ientry-idm45099806534752">org.freedesktop.NetworkManager.Device:ActiveConnection, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.html#gdbus-property-org-freedesktop-NetworkManager-Device.ActiveConnection">The "ActiveConnection" property</a>
 </dt>
-<dt id="ientry-idm45053444888208">org.freedesktop.NetworkManager.Device:Autoconnect, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.html#gdbus-property-org-freedesktop-NetworkManager-Device.Autoconnect">The "Autoconnect" property</a>
+<dt id="ientry-idm45099798106576">org.freedesktop.NetworkManager.Device:Autoconnect, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.html#gdbus-property-org-freedesktop-NetworkManager-Device.Autoconnect">The "Autoconnect" property</a>
 </dt>
-<dt id="ientry-idm45053444870528">org.freedesktop.NetworkManager.Device:AvailableConnections, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.html#gdbus-property-org-freedesktop-NetworkManager-Device.AvailableConnections">The "AvailableConnections" property</a>
+<dt id="ientry-idm45099798088800">org.freedesktop.NetworkManager.Device:AvailableConnections, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.html#gdbus-property-org-freedesktop-NetworkManager-Device.AvailableConnections">The "AvailableConnections" property</a>
 </dt>
-<dt id="ientry-idm45053444934016">org.freedesktop.NetworkManager.Device:Capabilities, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.html#gdbus-property-org-freedesktop-NetworkManager-Device.Capabilities">The "Capabilities" property</a>
+<dt id="ientry-idm45099806555328">org.freedesktop.NetworkManager.Device:Capabilities, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.html#gdbus-property-org-freedesktop-NetworkManager-Device.Capabilities">The "Capabilities" property</a>
 </dt>
-<dt id="ientry-idm45053444875536">org.freedesktop.NetworkManager.Device:DeviceType, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.html#gdbus-property-org-freedesktop-NetworkManager-Device.DeviceType">The "DeviceType" property</a>
+<dt id="ientry-idm45099798093904">org.freedesktop.NetworkManager.Device:DeviceType, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.html#gdbus-property-org-freedesktop-NetworkManager-Device.DeviceType">The "DeviceType" property</a>
 </dt>
-<dt id="ientry-idm45053444904944">org.freedesktop.NetworkManager.Device:Dhcp4Config, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.html#gdbus-property-org-freedesktop-NetworkManager-Device.Dhcp4Config">The "Dhcp4Config" property</a>
+<dt id="ientry-idm45099798123312">org.freedesktop.NetworkManager.Device:Dhcp4Config, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.html#gdbus-property-org-freedesktop-NetworkManager-Device.Dhcp4Config">The "Dhcp4Config" property</a>
 </dt>
-<dt id="ientry-idm45053444896464">org.freedesktop.NetworkManager.Device:Dhcp6Config, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.html#gdbus-property-org-freedesktop-NetworkManager-Device.Dhcp6Config">The "Dhcp6Config" property</a>
+<dt id="ientry-idm45099798114832">org.freedesktop.NetworkManager.Device:Dhcp6Config, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.html#gdbus-property-org-freedesktop-NetworkManager-Device.Dhcp6Config">The "Dhcp6Config" property</a>
 </dt>
-<dt id="ientry-idm45053445576672">org.freedesktop.NetworkManager.Device:Driver, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.html#gdbus-property-org-freedesktop-NetworkManager-Device.Driver">The "Driver" property</a>
+<dt id="ientry-idm45099806568192">org.freedesktop.NetworkManager.Device:Driver, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.html#gdbus-property-org-freedesktop-NetworkManager-Device.Driver">The "Driver" property</a>
 </dt>
-<dt id="ientry-idm45053444942608">org.freedesktop.NetworkManager.Device:DriverVersion, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.html#gdbus-property-org-freedesktop-NetworkManager-Device.DriverVersion">The "DriverVersion" property</a>
+<dt id="ientry-idm45099806563920">org.freedesktop.NetworkManager.Device:DriverVersion, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.html#gdbus-property-org-freedesktop-NetworkManager-Device.DriverVersion">The "DriverVersion" property</a>
 </dt>
-<dt id="ientry-idm45053444884064">org.freedesktop.NetworkManager.Device:FirmwareMissing, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.html#gdbus-property-org-freedesktop-NetworkManager-Device.FirmwareMissing">The "FirmwareMissing" property</a>
+<dt id="ientry-idm45099798102432">org.freedesktop.NetworkManager.Device:FirmwareMissing, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.html#gdbus-property-org-freedesktop-NetworkManager-Device.FirmwareMissing">The "FirmwareMissing" property</a>
 </dt>
-<dt id="ientry-idm45053444938304">org.freedesktop.NetworkManager.Device:FirmwareVersion, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.html#gdbus-property-org-freedesktop-NetworkManager-Device.FirmwareVersion">The "FirmwareVersion" property</a>
+<dt id="ientry-idm45099806559616">org.freedesktop.NetworkManager.Device:FirmwareVersion, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.html#gdbus-property-org-freedesktop-NetworkManager-Device.FirmwareVersion">The "FirmwareVersion" property</a>
 </dt>
-<dt id="ientry-idm45053445585200">org.freedesktop.NetworkManager.Device:Interface, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.html#gdbus-property-org-freedesktop-NetworkManager-Device.Interface">The "Interface" property</a>
+<dt id="ientry-idm45099806576720">org.freedesktop.NetworkManager.Device:Interface, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.html#gdbus-property-org-freedesktop-NetworkManager-Device.Interface">The "Interface" property</a>
 </dt>
-<dt id="ientry-idm45053444928784">org.freedesktop.NetworkManager.Device:Ip4Address, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.html#gdbus-property-org-freedesktop-NetworkManager-Device.Ip4Address">The "Ip4Address" property</a>
+<dt id="ientry-idm45099806550096">org.freedesktop.NetworkManager.Device:Ip4Address, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.html#gdbus-property-org-freedesktop-NetworkManager-Device.Ip4Address">The "Ip4Address" property</a>
 </dt>
-<dt id="ientry-idm45053444909280">org.freedesktop.NetworkManager.Device:Ip4Config, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.html#gdbus-property-org-freedesktop-NetworkManager-Device.Ip4Config">The "Ip4Config" property</a>
+<dt id="ientry-idm45099806530288">org.freedesktop.NetworkManager.Device:Ip4Config, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.html#gdbus-property-org-freedesktop-NetworkManager-Device.Ip4Config">The "Ip4Config" property</a>
 </dt>
-<dt id="ientry-idm45053444900800">org.freedesktop.NetworkManager.Device:Ip6Config, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.html#gdbus-property-org-freedesktop-NetworkManager-Device.Ip6Config">The "Ip6Config" property</a>
+<dt id="ientry-idm45099798119168">org.freedesktop.NetworkManager.Device:Ip6Config, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.html#gdbus-property-org-freedesktop-NetworkManager-Device.Ip6Config">The "Ip6Config" property</a>
 </dt>
-<dt id="ientry-idm45053445580800">org.freedesktop.NetworkManager.Device:IpInterface, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.html#gdbus-property-org-freedesktop-NetworkManager-Device.IpInterface">The "IpInterface" property</a>
+<dt id="ientry-idm45099806572320">org.freedesktop.NetworkManager.Device:IpInterface, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.html#gdbus-property-org-freedesktop-NetworkManager-Device.IpInterface">The "IpInterface" property</a>
 </dt>
-<dt id="ientry-idm45053442667920">org.freedesktop.NetworkManager.Device:LldpNeighbors, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.html#gdbus-property-org-freedesktop-NetworkManager-Device.LldpNeighbors">The "LldpNeighbors" property</a>
+<dt id="ientry-idm45099798070880">org.freedesktop.NetworkManager.Device:LldpNeighbors, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.html#gdbus-property-org-freedesktop-NetworkManager-Device.LldpNeighbors">The "LldpNeighbors" property</a>
 </dt>
-<dt id="ientry-idm45053444892336">org.freedesktop.NetworkManager.Device:Managed, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.html#gdbus-property-org-freedesktop-NetworkManager-Device.Managed">The "Managed" property</a>
+<dt id="ientry-idm45099798110704">org.freedesktop.NetworkManager.Device:Managed, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.html#gdbus-property-org-freedesktop-NetworkManager-Device.Managed">The "Managed" property</a>
 </dt>
-<dt id="ientry-idm45053442673216">org.freedesktop.NetworkManager.Device:Metered, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.html#gdbus-property-org-freedesktop-NetworkManager-Device.Metered">The "Metered" property</a>
+<dt id="ientry-idm45099798076176">org.freedesktop.NetworkManager.Device:Metered, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.html#gdbus-property-org-freedesktop-NetworkManager-Device.Metered">The "Metered" property</a>
 </dt>
-<dt id="ientry-idm45053444862016">org.freedesktop.NetworkManager.Device:Mtu, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.html#gdbus-property-org-freedesktop-NetworkManager-Device.Mtu">The "Mtu" property</a>
+<dt id="ientry-idm45099798080288">org.freedesktop.NetworkManager.Device:Mtu, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.html#gdbus-property-org-freedesktop-NetworkManager-Device.Mtu">The "Mtu" property</a>
 </dt>
-<dt id="ientry-idm45053444879808">org.freedesktop.NetworkManager.Device:NmPluginMissing, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.html#gdbus-property-org-freedesktop-NetworkManager-Device.NmPluginMissing">The "NmPluginMissing" property</a>
+<dt id="ientry-idm45099798098176">org.freedesktop.NetworkManager.Device:NmPluginMissing, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.html#gdbus-property-org-freedesktop-NetworkManager-Device.NmPluginMissing">The "NmPluginMissing" property</a>
 </dt>
-<dt id="ientry-idm45053444866144">org.freedesktop.NetworkManager.Device:PhysicalPortId, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.html#gdbus-property-org-freedesktop-NetworkManager-Device.PhysicalPortId">The "PhysicalPortId" property</a>
+<dt id="ientry-idm45099798084416">org.freedesktop.NetworkManager.Device:PhysicalPortId, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.html#gdbus-property-org-freedesktop-NetworkManager-Device.PhysicalPortId">The "PhysicalPortId" property</a>
 </dt>
-<dt id="ientry-idm45053442663664">org.freedesktop.NetworkManager.Device:Real, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.html#gdbus-property-org-freedesktop-NetworkManager-Device.Real">The "Real" property</a>
+<dt id="ientry-idm45099798066624">org.freedesktop.NetworkManager.Device:Real, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.html#gdbus-property-org-freedesktop-NetworkManager-Device.Real">The "Real" property</a>
 </dt>
-<dt id="ientry-idm45053444924544">org.freedesktop.NetworkManager.Device:State, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.html#gdbus-property-org-freedesktop-NetworkManager-Device.State">The "State" property</a>
+<dt id="ientry-idm45099806545856">org.freedesktop.NetworkManager.Device:State, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.html#gdbus-property-org-freedesktop-NetworkManager-Device.State">The "State" property</a>
 </dt>
-<dt id="ientry-idm45053444919408">org.freedesktop.NetworkManager.Device:StateReason, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.html#gdbus-property-org-freedesktop-NetworkManager-Device.StateReason">The "StateReason" property</a>
+<dt id="ientry-idm45099806540720">org.freedesktop.NetworkManager.Device:StateReason, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.html#gdbus-property-org-freedesktop-NetworkManager-Device.StateReason">The "StateReason" property</a>
 </dt>
-<dt id="ientry-idm45053445590592">org.freedesktop.NetworkManager.Device:Udi, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.html#gdbus-property-org-freedesktop-NetworkManager-Device.Udi">The "Udi" property</a>
+<dt id="ientry-idm45099806582112">org.freedesktop.NetworkManager.Device:Udi, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.html#gdbus-property-org-freedesktop-NetworkManager-Device.Udi">The "Udi" property</a>
 </dt>
-<dt id="ientry-idm45053450130368">org.freedesktop.NetworkManager.DnsManager, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.DnsManager.html#gdbus-interface-org-freedesktop-NetworkManager-DnsManager.top_of_page">org.freedesktop.NetworkManager.DnsManager</a>
+<dt id="ientry-idm45099806366368">org.freedesktop.NetworkManager.DnsManager, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.DnsManager.html#gdbus-interface-org-freedesktop-NetworkManager-DnsManager.top_of_page">org.freedesktop.NetworkManager.DnsManager</a>
 </dt>
-<dt id="ientry-idm45053452951600">org.freedesktop.NetworkManager.DnsManager:Configuration, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.DnsManager.html#gdbus-property-org-freedesktop-NetworkManager-DnsManager.Configuration">The "Configuration" property</a>
+<dt id="ientry-idm45099799049440">org.freedesktop.NetworkManager.DnsManager:Configuration, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.DnsManager.html#gdbus-property-org-freedesktop-NetworkManager-DnsManager.Configuration">The "Configuration" property</a>
 </dt>
-<dt id="ientry-idm45053451300144">org.freedesktop.NetworkManager.DnsManager:Mode, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.DnsManager.html#gdbus-property-org-freedesktop-NetworkManager-DnsManager.Mode">The "Mode" property</a>
+<dt id="ientry-idm45099801475824">org.freedesktop.NetworkManager.DnsManager:Mode, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.DnsManager.html#gdbus-property-org-freedesktop-NetworkManager-DnsManager.Mode">The "Mode" property</a>
 </dt>
-<dt id="ientry-idm45053449720768">org.freedesktop.NetworkManager.DnsManager:RcManager, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.DnsManager.html#gdbus-property-org-freedesktop-NetworkManager-DnsManager.RcManager">The "RcManager" property</a>
+<dt id="ientry-idm45099801471984">org.freedesktop.NetworkManager.DnsManager:RcManager, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.DnsManager.html#gdbus-property-org-freedesktop-NetworkManager-DnsManager.RcManager">The "RcManager" property</a>
 </dt>
-<dt id="ientry-idm45053452645280">org.freedesktop.NetworkManager.IP4Config, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.IP4Config.html#gdbus-interface-org-freedesktop-NetworkManager-IP4Config.top_of_page">org.freedesktop.NetworkManager.IP4Config</a>
+<dt id="ientry-idm45099802446784">org.freedesktop.NetworkManager.IP4Config, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.IP4Config.html#gdbus-interface-org-freedesktop-NetworkManager-IP4Config.top_of_page">org.freedesktop.NetworkManager.IP4Config</a>
 </dt>
-<dt id="ientry-idm45053442759872">org.freedesktop.NetworkManager.IP4Config::PropertiesChanged, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.IP4Config.html#gdbus-signal-org-freedesktop-NetworkManager-IP4Config.PropertiesChanged">The "PropertiesChanged" signal</a>
+<dt id="ientry-idm45099795658160">org.freedesktop.NetworkManager.IP4Config::PropertiesChanged, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.IP4Config.html#gdbus-signal-org-freedesktop-NetworkManager-IP4Config.PropertiesChanged">The "PropertiesChanged" signal</a>
 </dt>
-<dt id="ientry-idm45053442737472">org.freedesktop.NetworkManager.IP4Config:AddressData, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.IP4Config.html#gdbus-property-org-freedesktop-NetworkManager-IP4Config.AddressData">The "AddressData" property</a>
+<dt id="ientry-idm45099795918080">org.freedesktop.NetworkManager.IP4Config:AddressData, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.IP4Config.html#gdbus-property-org-freedesktop-NetworkManager-IP4Config.AddressData">The "AddressData" property</a>
 </dt>
-<dt id="ientry-idm45053442741776">org.freedesktop.NetworkManager.IP4Config:Addresses, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.IP4Config.html#gdbus-property-org-freedesktop-NetworkManager-IP4Config.Addresses">The "Addresses" property</a>
+<dt id="ientry-idm45099796100496">org.freedesktop.NetworkManager.IP4Config:Addresses, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.IP4Config.html#gdbus-property-org-freedesktop-NetworkManager-IP4Config.Addresses">The "Addresses" property</a>
 </dt>
-<dt id="ientry-idm45053443175328">org.freedesktop.NetworkManager.IP4Config:DnsOptions, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.IP4Config.html#gdbus-property-org-freedesktop-NetworkManager-IP4Config.DnsOptions">The "DnsOptions" property</a>
+<dt id="ientry-idm45099796109856">org.freedesktop.NetworkManager.IP4Config:DnsOptions, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.IP4Config.html#gdbus-property-org-freedesktop-NetworkManager-IP4Config.DnsOptions">The "DnsOptions" property</a>
 </dt>
-<dt id="ientry-idm45053443112480">org.freedesktop.NetworkManager.IP4Config:DnsPriority, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.IP4Config.html#gdbus-property-org-freedesktop-NetworkManager-IP4Config.DnsPriority">The "DnsPriority" property</a>
+<dt id="ientry-idm45099793524528">org.freedesktop.NetworkManager.IP4Config:DnsPriority, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.IP4Config.html#gdbus-property-org-freedesktop-NetworkManager-IP4Config.DnsPriority">The "DnsPriority" property</a>
 </dt>
-<dt id="ientry-idm45053443183648">org.freedesktop.NetworkManager.IP4Config:Domains, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.IP4Config.html#gdbus-property-org-freedesktop-NetworkManager-IP4Config.Domains">The "Domains" property</a>
+<dt id="ientry-idm45099796118176">org.freedesktop.NetworkManager.IP4Config:Domains, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.IP4Config.html#gdbus-property-org-freedesktop-NetworkManager-IP4Config.Domains">The "Domains" property</a>
 </dt>
-<dt id="ientry-idm45053442733392">org.freedesktop.NetworkManager.IP4Config:Gateway, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.IP4Config.html#gdbus-property-org-freedesktop-NetworkManager-IP4Config.Gateway">The "Gateway" property</a>
+<dt id="ientry-idm45099795914000">org.freedesktop.NetworkManager.IP4Config:Gateway, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.IP4Config.html#gdbus-property-org-freedesktop-NetworkManager-IP4Config.Gateway">The "Gateway" property</a>
 </dt>
-<dt id="ientry-idm45053443188208">org.freedesktop.NetworkManager.IP4Config:NameserverData, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.IP4Config.html#gdbus-property-org-freedesktop-NetworkManager-IP4Config.NameserverData">The "NameserverData" property</a>
+<dt id="ientry-idm45099796122736">org.freedesktop.NetworkManager.IP4Config:NameserverData, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.IP4Config.html#gdbus-property-org-freedesktop-NetworkManager-IP4Config.NameserverData">The "NameserverData" property</a>
 </dt>
-<dt id="ientry-idm45053443192432">org.freedesktop.NetworkManager.IP4Config:Nameservers, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.IP4Config.html#gdbus-property-org-freedesktop-NetworkManager-IP4Config.Nameservers">The "Nameservers" property</a>
+<dt id="ientry-idm45099796126960">org.freedesktop.NetworkManager.IP4Config:Nameservers, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.IP4Config.html#gdbus-property-org-freedesktop-NetworkManager-IP4Config.Nameservers">The "Nameservers" property</a>
 </dt>
-<dt id="ientry-idm45053443196784">org.freedesktop.NetworkManager.IP4Config:RouteData, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.IP4Config.html#gdbus-property-org-freedesktop-NetworkManager-IP4Config.RouteData">The "RouteData" property</a>
+<dt id="ientry-idm45099795905696">org.freedesktop.NetworkManager.IP4Config:RouteData, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.IP4Config.html#gdbus-property-org-freedesktop-NetworkManager-IP4Config.RouteData">The "RouteData" property</a>
 </dt>
-<dt id="ientry-idm45053442729280">org.freedesktop.NetworkManager.IP4Config:Routes, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.IP4Config.html#gdbus-property-org-freedesktop-NetworkManager-IP4Config.Routes">The "Routes" property</a>
+<dt id="ientry-idm45099795909840">org.freedesktop.NetworkManager.IP4Config:Routes, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.IP4Config.html#gdbus-property-org-freedesktop-NetworkManager-IP4Config.Routes">The "Routes" property</a>
 </dt>
-<dt id="ientry-idm45053443179520">org.freedesktop.NetworkManager.IP4Config:Searches, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.IP4Config.html#gdbus-property-org-freedesktop-NetworkManager-IP4Config.Searches">The "Searches" property</a>
+<dt id="ientry-idm45099796114048">org.freedesktop.NetworkManager.IP4Config:Searches, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.IP4Config.html#gdbus-property-org-freedesktop-NetworkManager-IP4Config.Searches">The "Searches" property</a>
 </dt>
-<dt id="ientry-idm45053443104192">org.freedesktop.NetworkManager.IP4Config:WinsServerData, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.IP4Config.html#gdbus-property-org-freedesktop-NetworkManager-IP4Config.WinsServerData">The "WinsServerData" property</a>
+<dt id="ientry-idm45099793516992">org.freedesktop.NetworkManager.IP4Config:WinsServerData, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.IP4Config.html#gdbus-property-org-freedesktop-NetworkManager-IP4Config.WinsServerData">The "WinsServerData" property</a>
 </dt>
-<dt id="ientry-idm45053443108336">org.freedesktop.NetworkManager.IP4Config:WinsServers, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.IP4Config.html#gdbus-property-org-freedesktop-NetworkManager-IP4Config.WinsServers">The "WinsServers" property</a>
+<dt id="ientry-idm45099793520720">org.freedesktop.NetworkManager.IP4Config:WinsServers, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.IP4Config.html#gdbus-property-org-freedesktop-NetworkManager-IP4Config.WinsServers">The "WinsServers" property</a>
 </dt>
-<dt id="ientry-idm45053449240928">org.freedesktop.NetworkManager.IP6Config, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.IP6Config.html#gdbus-interface-org-freedesktop-NetworkManager-IP6Config.top_of_page">org.freedesktop.NetworkManager.IP6Config</a>
+<dt id="ientry-idm45099804013408">org.freedesktop.NetworkManager.IP6Config, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.IP6Config.html#gdbus-interface-org-freedesktop-NetworkManager-IP6Config.top_of_page">org.freedesktop.NetworkManager.IP6Config</a>
 </dt>
-<dt id="ientry-idm45053441851712">org.freedesktop.NetworkManager.IP6Config::PropertiesChanged, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.IP6Config.html#gdbus-signal-org-freedesktop-NetworkManager-IP6Config.PropertiesChanged">The "PropertiesChanged" signal</a>
+<dt id="ientry-idm45099793531664">org.freedesktop.NetworkManager.IP6Config::PropertiesChanged, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.IP6Config.html#gdbus-signal-org-freedesktop-NetworkManager-IP6Config.PropertiesChanged">The "PropertiesChanged" signal</a>
 </dt>
-<dt id="ientry-idm45053441842832">org.freedesktop.NetworkManager.IP6Config:AddressData, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.IP6Config.html#gdbus-property-org-freedesktop-NetworkManager-IP6Config.AddressData">The "AddressData" property</a>
+<dt id="ientry-idm45099796025536">org.freedesktop.NetworkManager.IP6Config:AddressData, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.IP6Config.html#gdbus-property-org-freedesktop-NetworkManager-IP6Config.AddressData">The "AddressData" property</a>
 </dt>
-<dt id="ientry-idm45053441822288">org.freedesktop.NetworkManager.IP6Config:Addresses, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.IP6Config.html#gdbus-property-org-freedesktop-NetworkManager-IP6Config.Addresses">The "Addresses" property</a>
+<dt id="ientry-idm45099796029712">org.freedesktop.NetworkManager.IP6Config:Addresses, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.IP6Config.html#gdbus-property-org-freedesktop-NetworkManager-IP6Config.Addresses">The "Addresses" property</a>
 </dt>
-<dt id="ientry-idm45053440328416">org.freedesktop.NetworkManager.IP6Config:DnsOptions, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.IP6Config.html#gdbus-property-org-freedesktop-NetworkManager-IP6Config.DnsOptions">The "DnsOptions" property</a>
+<dt id="ientry-idm45099793601888">org.freedesktop.NetworkManager.IP6Config:DnsOptions, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.IP6Config.html#gdbus-property-org-freedesktop-NetworkManager-IP6Config.DnsOptions">The "DnsOptions" property</a>
 </dt>
-<dt id="ientry-idm45053440324112">org.freedesktop.NetworkManager.IP6Config:DnsPriority, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.IP6Config.html#gdbus-property-org-freedesktop-NetworkManager-IP6Config.DnsPriority">The "DnsPriority" property</a>
+<dt id="ientry-idm45099793597584">org.freedesktop.NetworkManager.IP6Config:DnsPriority, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.IP6Config.html#gdbus-property-org-freedesktop-NetworkManager-IP6Config.DnsPriority">The "DnsPriority" property</a>
 </dt>
-<dt id="ientry-idm45053440336736">org.freedesktop.NetworkManager.IP6Config:Domains, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.IP6Config.html#gdbus-property-org-freedesktop-NetworkManager-IP6Config.Domains">The "Domains" property</a>
+<dt id="ientry-idm45099793610208">org.freedesktop.NetworkManager.IP6Config:Domains, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.IP6Config.html#gdbus-property-org-freedesktop-NetworkManager-IP6Config.Domains">The "Domains" property</a>
 </dt>
-<dt id="ientry-idm45053441838752">org.freedesktop.NetworkManager.IP6Config:Gateway, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.IP6Config.html#gdbus-property-org-freedesktop-NetworkManager-IP6Config.Gateway">The "Gateway" property</a>
+<dt id="ientry-idm45099796021456">org.freedesktop.NetworkManager.IP6Config:Gateway, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.IP6Config.html#gdbus-property-org-freedesktop-NetworkManager-IP6Config.Gateway">The "Gateway" property</a>
 </dt>
-<dt id="ientry-idm45053440340912">org.freedesktop.NetworkManager.IP6Config:Nameservers, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.IP6Config.html#gdbus-property-org-freedesktop-NetworkManager-IP6Config.Nameservers">The "Nameservers" property</a>
+<dt id="ientry-idm45099793614384">org.freedesktop.NetworkManager.IP6Config:Nameservers, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.IP6Config.html#gdbus-property-org-freedesktop-NetworkManager-IP6Config.Nameservers">The "Nameservers" property</a>
 </dt>
-<dt id="ientry-idm45053441830496">org.freedesktop.NetworkManager.IP6Config:RouteData, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.IP6Config.html#gdbus-property-org-freedesktop-NetworkManager-IP6Config.RouteData">The "RouteData" property</a>
+<dt id="ientry-idm45099793618736">org.freedesktop.NetworkManager.IP6Config:RouteData, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.IP6Config.html#gdbus-property-org-freedesktop-NetworkManager-IP6Config.RouteData">The "RouteData" property</a>
 </dt>
-<dt id="ientry-idm45053441834640">org.freedesktop.NetworkManager.IP6Config:Routes, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.IP6Config.html#gdbus-property-org-freedesktop-NetworkManager-IP6Config.Routes">The "Routes" property</a>
+<dt id="ientry-idm45099793622784">org.freedesktop.NetworkManager.IP6Config:Routes, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.IP6Config.html#gdbus-property-org-freedesktop-NetworkManager-IP6Config.Routes">The "Routes" property</a>
 </dt>
-<dt id="ientry-idm45053440332608">org.freedesktop.NetworkManager.IP6Config:Searches, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.IP6Config.html#gdbus-property-org-freedesktop-NetworkManager-IP6Config.Searches">The "Searches" property</a>
+<dt id="ientry-idm45099793606080">org.freedesktop.NetworkManager.IP6Config:Searches, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.IP6Config.html#gdbus-property-org-freedesktop-NetworkManager-IP6Config.Searches">The "Searches" property</a>
 </dt>
-<dt id="ientry-idm45053450594784">org.freedesktop.NetworkManager.SecretAgent, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.SecretAgent.html#gdbus-interface-org-freedesktop-NetworkManager-SecretAgent.top_of_page">org.freedesktop.NetworkManager.SecretAgent</a>
+<dt id="ientry-idm45099802168960">org.freedesktop.NetworkManager.SecretAgent, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.SecretAgent.html#gdbus-interface-org-freedesktop-NetworkManager-SecretAgent.top_of_page">org.freedesktop.NetworkManager.SecretAgent</a>
 </dt>
-<dt id="ientry-idm45053439996576">org.freedesktop.NetworkManager.SecretAgent.CancelGetSecrets(), <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.SecretAgent.html#gdbus-method-org-freedesktop-NetworkManager-SecretAgent.CancelGetSecrets">The CancelGetSecrets() method</a>
+<dt id="ientry-idm45099792854672">org.freedesktop.NetworkManager.SecretAgent.CancelGetSecrets(), <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.SecretAgent.html#gdbus-method-org-freedesktop-NetworkManager-SecretAgent.CancelGetSecrets">The CancelGetSecrets() method</a>
 </dt>
-<dt id="ientry-idm45053440241472">org.freedesktop.NetworkManager.SecretAgent.DeleteSecrets(), <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.SecretAgent.html#gdbus-method-org-freedesktop-NetworkManager-SecretAgent.DeleteSecrets">The DeleteSecrets() method</a>
+<dt id="ientry-idm45099792767904">org.freedesktop.NetworkManager.SecretAgent.DeleteSecrets(), <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.SecretAgent.html#gdbus-method-org-freedesktop-NetworkManager-SecretAgent.DeleteSecrets">The DeleteSecrets() method</a>
 </dt>
-<dt id="ientry-idm45053440027440">org.freedesktop.NetworkManager.SecretAgent.GetSecrets(), <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.SecretAgent.html#gdbus-method-org-freedesktop-NetworkManager-SecretAgent.GetSecrets">The GetSecrets() method</a>
+<dt id="ientry-idm45099795966976">org.freedesktop.NetworkManager.SecretAgent.GetSecrets(), <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.SecretAgent.html#gdbus-method-org-freedesktop-NetworkManager-SecretAgent.GetSecrets">The GetSecrets() method</a>
 </dt>
-<dt id="ientry-idm45053439986368">org.freedesktop.NetworkManager.SecretAgent.SaveSecrets(), <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.SecretAgent.html#gdbus-method-org-freedesktop-NetworkManager-SecretAgent.SaveSecrets">The SaveSecrets() method</a>
+<dt id="ientry-idm45099793562736">org.freedesktop.NetworkManager.SecretAgent.SaveSecrets(), <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.SecretAgent.html#gdbus-method-org-freedesktop-NetworkManager-SecretAgent.SaveSecrets">The SaveSecrets() method</a>
 </dt>
-<dt id="ientry-idm45053451297024">org.freedesktop.NetworkManager.Settings, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Settings.html#gdbus-interface-org-freedesktop-NetworkManager-Settings.top_of_page">org.freedesktop.NetworkManager.Settings</a>
+<dt id="ientry-idm45099806984736">org.freedesktop.NetworkManager.Settings, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Settings.html#gdbus-interface-org-freedesktop-NetworkManager-Settings.top_of_page">org.freedesktop.NetworkManager.Settings</a>
 </dt>
-<dt id="ientry-idm45053447860720">org.freedesktop.NetworkManager.Settings.AddConnection(), <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Settings.html#gdbus-method-org-freedesktop-NetworkManager-Settings.AddConnection">The AddConnection() method</a>
+<dt id="ientry-idm45099806008704">org.freedesktop.NetworkManager.Settings.AddConnection(), <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Settings.html#gdbus-method-org-freedesktop-NetworkManager-Settings.AddConnection">The AddConnection() method</a>
 </dt>
-<dt id="ientry-idm45053453226016">org.freedesktop.NetworkManager.Settings.AddConnectionUnsaved(), <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Settings.html#gdbus-method-org-freedesktop-NetworkManager-Settings.AddConnectionUnsaved">The AddConnectionUnsaved() method</a>
+<dt id="ientry-idm45099801611120">org.freedesktop.NetworkManager.Settings.AddConnectionUnsaved(), <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Settings.html#gdbus-method-org-freedesktop-NetworkManager-Settings.AddConnectionUnsaved">The AddConnectionUnsaved() method</a>
 </dt>
-<dt id="ientry-idm45053451156160">org.freedesktop.NetworkManager.Settings.Connection, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Settings.Connection.html#gdbus-interface-org-freedesktop-NetworkManager-Settings-Connection.top_of_page">org.freedesktop.NetworkManager.Settings.Connection</a>
+<dt id="ientry-idm45099806345408">org.freedesktop.NetworkManager.Settings.Connection, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Settings.Connection.html#gdbus-interface-org-freedesktop-NetworkManager-Settings-Connection.top_of_page">org.freedesktop.NetworkManager.Settings.Connection</a>
 </dt>
-<dt id="ientry-idm45053453577936">org.freedesktop.NetworkManager.Settings.Connection.ClearSecrets(), <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Settings.Connection.html#gdbus-method-org-freedesktop-NetworkManager-Settings-Connection.ClearSecrets">The ClearSecrets() method</a>
+<dt id="ientry-idm45099802868528">org.freedesktop.NetworkManager.Settings.Connection.ClearSecrets(), <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Settings.Connection.html#gdbus-method-org-freedesktop-NetworkManager-Settings-Connection.ClearSecrets">The ClearSecrets() method</a>
 </dt>
-<dt id="ientry-idm45053447366480">org.freedesktop.NetworkManager.Settings.Connection.Delete(), <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Settings.Connection.html#gdbus-method-org-freedesktop-NetworkManager-Settings-Connection.Delete">The Delete() method</a>
+<dt id="ientry-idm45099800530480">org.freedesktop.NetworkManager.Settings.Connection.Delete(), <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Settings.Connection.html#gdbus-method-org-freedesktop-NetworkManager-Settings-Connection.Delete">The Delete() method</a>
 </dt>
-<dt id="ientry-idm45053448372896">org.freedesktop.NetworkManager.Settings.Connection.GetSecrets(), <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Settings.Connection.html#gdbus-method-org-freedesktop-NetworkManager-Settings-Connection.GetSecrets">The GetSecrets() method</a>
+<dt id="ientry-idm45099807008480">org.freedesktop.NetworkManager.Settings.Connection.GetSecrets(), <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Settings.Connection.html#gdbus-method-org-freedesktop-NetworkManager-Settings-Connection.GetSecrets">The GetSecrets() method</a>
 </dt>
-<dt id="ientry-idm45053447362304">org.freedesktop.NetworkManager.Settings.Connection.GetSettings(), <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Settings.Connection.html#gdbus-method-org-freedesktop-NetworkManager-Settings-Connection.GetSettings">The GetSettings() method</a>
+<dt id="ientry-idm45099800526304">org.freedesktop.NetworkManager.Settings.Connection.GetSettings(), <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Settings.Connection.html#gdbus-method-org-freedesktop-NetworkManager-Settings-Connection.GetSettings">The GetSettings() method</a>
 </dt>
-<dt id="ientry-idm45053453573712">org.freedesktop.NetworkManager.Settings.Connection.Save(), <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Settings.Connection.html#gdbus-method-org-freedesktop-NetworkManager-Settings-Connection.Save">The Save() method</a>
+<dt id="ientry-idm45099802864224">org.freedesktop.NetworkManager.Settings.Connection.Save(), <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Settings.Connection.html#gdbus-method-org-freedesktop-NetworkManager-Settings-Connection.Save">The Save() method</a>
 </dt>
-<dt id="ientry-idm45053451034432">org.freedesktop.NetworkManager.Settings.Connection.Update(), <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Settings.Connection.html#gdbus-method-org-freedesktop-NetworkManager-Settings-Connection.Update">The Update() method</a>
+<dt id="ientry-idm45099803140496">org.freedesktop.NetworkManager.Settings.Connection.Update(), <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Settings.Connection.html#gdbus-method-org-freedesktop-NetworkManager-Settings-Connection.Update">The Update() method</a>
 </dt>
-<dt id="ientry-idm45053448283840">org.freedesktop.NetworkManager.Settings.Connection.Update2(), <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Settings.Connection.html#gdbus-method-org-freedesktop-NetworkManager-Settings-Connection.Update2">The Update2() method</a>
+<dt id="ientry-idm45099802605856">org.freedesktop.NetworkManager.Settings.Connection.Update2(), <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Settings.Connection.html#gdbus-method-org-freedesktop-NetworkManager-Settings-Connection.Update2">The Update2() method</a>
 </dt>
-<dt id="ientry-idm45053444758336">org.freedesktop.NetworkManager.Settings.Connection.UpdateUnsaved(), <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Settings.Connection.html#gdbus-method-org-freedesktop-NetworkManager-Settings-Connection.UpdateUnsaved">The UpdateUnsaved() method</a>
+<dt id="ientry-idm45099807122080">org.freedesktop.NetworkManager.Settings.Connection.UpdateUnsaved(), <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Settings.Connection.html#gdbus-method-org-freedesktop-NetworkManager-Settings-Connection.UpdateUnsaved">The UpdateUnsaved() method</a>
 </dt>
-<dt id="ientry-idm45053444767888">org.freedesktop.NetworkManager.Settings.Connection::PropertiesChanged, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Settings.Connection.html#gdbus-signal-org-freedesktop-NetworkManager-Settings-Connection.PropertiesChanged">The "PropertiesChanged" signal</a>
+<dt id="ientry-idm45099805878848">org.freedesktop.NetworkManager.Settings.Connection::PropertiesChanged, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Settings.Connection.html#gdbus-signal-org-freedesktop-NetworkManager-Settings-Connection.PropertiesChanged">The "PropertiesChanged" signal</a>
 </dt>
-<dt id="ientry-idm45053444772384">org.freedesktop.NetworkManager.Settings.Connection::Removed, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Settings.Connection.html#gdbus-signal-org-freedesktop-NetworkManager-Settings-Connection.Removed">The "Removed" signal</a>
+<dt id="ientry-idm45099805883440">org.freedesktop.NetworkManager.Settings.Connection::Removed, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Settings.Connection.html#gdbus-signal-org-freedesktop-NetworkManager-Settings-Connection.Removed">The "Removed" signal</a>
 </dt>
-<dt id="ientry-idm45053447412096">org.freedesktop.NetworkManager.Settings.Connection::Updated, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Settings.Connection.html#gdbus-signal-org-freedesktop-NetworkManager-Settings-Connection.Updated">The "Updated" signal</a>
+<dt id="ientry-idm45099799085760">org.freedesktop.NetworkManager.Settings.Connection::Updated, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Settings.Connection.html#gdbus-signal-org-freedesktop-NetworkManager-Settings-Connection.Updated">The "Updated" signal</a>
 </dt>
-<dt id="ientry-idm45053445404384">org.freedesktop.NetworkManager.Settings.Connection:Filename, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Settings.Connection.html#gdbus-property-org-freedesktop-NetworkManager-Settings-Connection.Filename">The "Filename" property</a>
+<dt id="ientry-idm45099798305648">org.freedesktop.NetworkManager.Settings.Connection:Filename, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Settings.Connection.html#gdbus-property-org-freedesktop-NetworkManager-Settings-Connection.Filename">The "Filename" property</a>
 </dt>
-<dt id="ientry-idm45053445025008">org.freedesktop.NetworkManager.Settings.Connection:Flags, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Settings.Connection.html#gdbus-property-org-freedesktop-NetworkManager-Settings-Connection.Flags">The "Flags" property</a>
+<dt id="ientry-idm45099797916400">org.freedesktop.NetworkManager.Settings.Connection:Flags, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Settings.Connection.html#gdbus-property-org-freedesktop-NetworkManager-Settings-Connection.Flags">The "Flags" property</a>
 </dt>
-<dt id="ientry-idm45053445029456">org.freedesktop.NetworkManager.Settings.Connection:Unsaved, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Settings.Connection.html#gdbus-property-org-freedesktop-NetworkManager-Settings-Connection.Unsaved">The "Unsaved" property</a>
+<dt id="ientry-idm45099797920848">org.freedesktop.NetworkManager.Settings.Connection:Unsaved, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Settings.Connection.html#gdbus-property-org-freedesktop-NetworkManager-Settings-Connection.Unsaved">The "Unsaved" property</a>
 </dt>
-<dt id="ientry-idm45053452171216">org.freedesktop.NetworkManager.Settings.GetConnectionByUuid(), <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Settings.html#gdbus-method-org-freedesktop-NetworkManager-Settings.GetConnectionByUuid">The GetConnectionByUuid() method</a>
+<dt id="ientry-idm45099801715296">org.freedesktop.NetworkManager.Settings.GetConnectionByUuid(), <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Settings.html#gdbus-method-org-freedesktop-NetworkManager-Settings.GetConnectionByUuid">The GetConnectionByUuid() method</a>
 </dt>
-<dt id="ientry-idm45053452712320">org.freedesktop.NetworkManager.Settings.ListConnections(), <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Settings.html#gdbus-method-org-freedesktop-NetworkManager-Settings.ListConnections">The ListConnections() method</a>
+<dt id="ientry-idm45099806663376">org.freedesktop.NetworkManager.Settings.ListConnections(), <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Settings.html#gdbus-method-org-freedesktop-NetworkManager-Settings.ListConnections">The ListConnections() method</a>
 </dt>
-<dt id="ientry-idm45053452375824">org.freedesktop.NetworkManager.Settings.LoadConnections(), <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Settings.html#gdbus-method-org-freedesktop-NetworkManager-Settings.LoadConnections">The LoadConnections() method</a>
+<dt id="ientry-idm45099800657248">org.freedesktop.NetworkManager.Settings.LoadConnections(), <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Settings.html#gdbus-method-org-freedesktop-NetworkManager-Settings.LoadConnections">The LoadConnections() method</a>
 </dt>
-<dt id="ientry-idm45053444636096">org.freedesktop.NetworkManager.Settings.ReloadConnections(), <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Settings.html#gdbus-method-org-freedesktop-NetworkManager-Settings.ReloadConnections">The ReloadConnections() method</a>
+<dt id="ientry-idm45099806649104">org.freedesktop.NetworkManager.Settings.ReloadConnections(), <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Settings.html#gdbus-method-org-freedesktop-NetworkManager-Settings.ReloadConnections">The ReloadConnections() method</a>
 </dt>
-<dt id="ientry-idm45053452353040">org.freedesktop.NetworkManager.Settings.SaveHostname(), <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Settings.html#gdbus-method-org-freedesktop-NetworkManager-Settings.SaveHostname">The SaveHostname() method</a>
+<dt id="ientry-idm45099805626560">org.freedesktop.NetworkManager.Settings.SaveHostname(), <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Settings.html#gdbus-method-org-freedesktop-NetworkManager-Settings.SaveHostname">The SaveHostname() method</a>
 </dt>
-<dt id="ientry-idm45053449861184">org.freedesktop.NetworkManager.Settings::ConnectionRemoved, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Settings.html#gdbus-signal-org-freedesktop-NetworkManager-Settings.ConnectionRemoved">The "ConnectionRemoved" signal</a>
+<dt id="ientry-idm45099800337728">org.freedesktop.NetworkManager.Settings::ConnectionRemoved, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Settings.html#gdbus-signal-org-freedesktop-NetworkManager-Settings.ConnectionRemoved">The "ConnectionRemoved" signal</a>
 </dt>
-<dt id="ientry-idm45053444645376">org.freedesktop.NetworkManager.Settings::NewConnection, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Settings.html#gdbus-signal-org-freedesktop-NetworkManager-Settings.NewConnection">The "NewConnection" signal</a>
+<dt id="ientry-idm45099800517440">org.freedesktop.NetworkManager.Settings::NewConnection, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Settings.html#gdbus-signal-org-freedesktop-NetworkManager-Settings.NewConnection">The "NewConnection" signal</a>
 </dt>
-<dt id="ientry-idm45053444652976">org.freedesktop.NetworkManager.Settings::PropertiesChanged, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Settings.html#gdbus-signal-org-freedesktop-NetworkManager-Settings.PropertiesChanged">The "PropertiesChanged" signal</a>
+<dt id="ientry-idm45099798233664">org.freedesktop.NetworkManager.Settings::PropertiesChanged, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Settings.html#gdbus-signal-org-freedesktop-NetworkManager-Settings.PropertiesChanged">The "PropertiesChanged" signal</a>
 </dt>
-<dt id="ientry-idm45053444963184">org.freedesktop.NetworkManager.Settings:CanModify, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Settings.html#gdbus-property-org-freedesktop-NetworkManager-Settings.CanModify">The "CanModify" property</a>
+<dt id="ientry-idm45099805896432">org.freedesktop.NetworkManager.Settings:CanModify, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Settings.html#gdbus-property-org-freedesktop-NetworkManager-Settings.CanModify">The "CanModify" property</a>
 </dt>
-<dt id="ientry-idm45053444971616">org.freedesktop.NetworkManager.Settings:Connections, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Settings.html#gdbus-property-org-freedesktop-NetworkManager-Settings.Connections">The "Connections" property</a>
+<dt id="ientry-idm45099805850080">org.freedesktop.NetworkManager.Settings:Connections, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Settings.html#gdbus-property-org-freedesktop-NetworkManager-Settings.Connections">The "Connections" property</a>
 </dt>
-<dt id="ientry-idm45053444967408">org.freedesktop.NetworkManager.Settings:Hostname, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Settings.html#gdbus-property-org-freedesktop-NetworkManager-Settings.Hostname">The "Hostname" property</a>
+<dt id="ientry-idm45099805845872">org.freedesktop.NetworkManager.Settings:Hostname, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Settings.html#gdbus-property-org-freedesktop-NetworkManager-Settings.Hostname">The "Hostname" property</a>
 </dt>
 </dl>
 </div>
 <div class="indexdiv">
 <h3>A</h3>
 <dl>
-<dt id="ientry-idm45053448989520">org.freedesktop.NetworkManager.Connection.Active, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Connection.Active.html#gdbus-interface-org-freedesktop-NetworkManager-Connection-Active.top_of_page">org.freedesktop.NetworkManager.Connection.Active</a>
+<dt id="ientry-idm45099802178384">org.freedesktop.NetworkManager.Connection.Active, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Connection.Active.html#gdbus-interface-org-freedesktop-NetworkManager-Connection-Active.top_of_page">org.freedesktop.NetworkManager.Connection.Active</a>
 </dt>
-<dt id="ientry-idm45053441884320">org.freedesktop.NetworkManager.Connection.Active::PropertiesChanged, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Connection.Active.html#gdbus-signal-org-freedesktop-NetworkManager-Connection-Active.PropertiesChanged">The "PropertiesChanged" signal</a>
+<dt id="ientry-idm45099795641584">org.freedesktop.NetworkManager.Connection.Active::PropertiesChanged, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Connection.Active.html#gdbus-signal-org-freedesktop-NetworkManager-Connection-Active.PropertiesChanged">The "PropertiesChanged" signal</a>
 </dt>
-<dt id="ientry-idm45053441791776">org.freedesktop.NetworkManager.Connection.Active::StateChanged, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Connection.Active.html#gdbus-signal-org-freedesktop-NetworkManager-Connection-Active.StateChanged">The "StateChanged" signal</a>
+<dt id="ientry-idm45099795825056">org.freedesktop.NetworkManager.Connection.Active::StateChanged, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Connection.Active.html#gdbus-signal-org-freedesktop-NetworkManager-Connection-Active.StateChanged">The "StateChanged" signal</a>
 </dt>
-<dt id="ientry-idm45053441875152">org.freedesktop.NetworkManager.Connection.Active:Connection, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Connection.Active.html#gdbus-property-org-freedesktop-NetworkManager-Connection-Active.Connection">The "Connection" property</a>
+<dt id="ientry-idm45099795632560">org.freedesktop.NetworkManager.Connection.Active:Connection, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Connection.Active.html#gdbus-property-org-freedesktop-NetworkManager-Connection-Active.Connection">The "Connection" property</a>
 </dt>
-<dt id="ientry-idm45053442868112">org.freedesktop.NetworkManager.Connection.Active:Default, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Connection.Active.html#gdbus-property-org-freedesktop-NetworkManager-Connection-Active.Default">The "Default" property</a>
+<dt id="ientry-idm45099793659216">org.freedesktop.NetworkManager.Connection.Active:Default, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Connection.Active.html#gdbus-property-org-freedesktop-NetworkManager-Connection-Active.Default">The "Default" property</a>
 </dt>
-<dt id="ientry-idm45053440378144">org.freedesktop.NetworkManager.Connection.Active:Default6, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Connection.Active.html#gdbus-property-org-freedesktop-NetworkManager-Connection-Active.Default6">The "Default6" property</a>
+<dt id="ientry-idm45099793645984">org.freedesktop.NetworkManager.Connection.Active:Default6, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Connection.Active.html#gdbus-property-org-freedesktop-NetworkManager-Connection-Active.Default6">The "Default6" property</a>
 </dt>
-<dt id="ientry-idm45053442882864">org.freedesktop.NetworkManager.Connection.Active:Devices, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Connection.Active.html#gdbus-property-org-freedesktop-NetworkManager-Connection-Active.Devices">The "Devices" property</a>
+<dt id="ientry-idm45099793673968">org.freedesktop.NetworkManager.Connection.Active:Devices, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Connection.Active.html#gdbus-property-org-freedesktop-NetworkManager-Connection-Active.Devices">The "Devices" property</a>
 </dt>
-<dt id="ientry-idm45053440382256">org.freedesktop.NetworkManager.Connection.Active:Dhcp4Config, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Connection.Active.html#gdbus-property-org-freedesktop-NetworkManager-Connection-Active.Dhcp4Config">The "Dhcp4Config" property</a>
+<dt id="ientry-idm45099793650512">org.freedesktop.NetworkManager.Connection.Active:Dhcp4Config, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Connection.Active.html#gdbus-property-org-freedesktop-NetworkManager-Connection-Active.Dhcp4Config">The "Dhcp4Config" property</a>
 </dt>
-<dt id="ientry-idm45053440370288">org.freedesktop.NetworkManager.Connection.Active:Dhcp6Config, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Connection.Active.html#gdbus-property-org-freedesktop-NetworkManager-Connection-Active.Dhcp6Config">The "Dhcp6Config" property</a>
+<dt id="ientry-idm45099793637264">org.freedesktop.NetworkManager.Connection.Active:Dhcp6Config, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Connection.Active.html#gdbus-property-org-freedesktop-NetworkManager-Connection-Active.Dhcp6Config">The "Dhcp6Config" property</a>
 </dt>
-<dt id="ientry-idm45053442895632">org.freedesktop.NetworkManager.Connection.Active:Id, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Connection.Active.html#gdbus-property-org-freedesktop-NetworkManager-Connection-Active.Id">The "Id" property</a>
+<dt id="ientry-idm45099793686736">org.freedesktop.NetworkManager.Connection.Active:Id, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Connection.Active.html#gdbus-property-org-freedesktop-NetworkManager-Connection-Active.Id">The "Id" property</a>
 </dt>
-<dt id="ientry-idm45053440386112">org.freedesktop.NetworkManager.Connection.Active:Ip4Config, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Connection.Active.html#gdbus-property-org-freedesktop-NetworkManager-Connection-Active.Ip4Config">The "Ip4Config" property</a>
+<dt id="ientry-idm45099793654800">org.freedesktop.NetworkManager.Connection.Active:Ip4Config, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Connection.Active.html#gdbus-property-org-freedesktop-NetworkManager-Connection-Active.Ip4Config">The "Ip4Config" property</a>
 </dt>
-<dt id="ientry-idm45053440374144">org.freedesktop.NetworkManager.Connection.Active:Ip6Config, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Connection.Active.html#gdbus-property-org-freedesktop-NetworkManager-Connection-Active.Ip6Config">The "Ip6Config" property</a>
+<dt id="ientry-idm45099793641552">org.freedesktop.NetworkManager.Connection.Active:Ip6Config, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Connection.Active.html#gdbus-property-org-freedesktop-NetworkManager-Connection-Active.Ip6Config">The "Ip6Config" property</a>
 </dt>
-<dt id="ientry-idm45053440362416">org.freedesktop.NetworkManager.Connection.Active:Master, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Connection.Active.html#gdbus-property-org-freedesktop-NetworkManager-Connection-Active.Master">The "Master" property</a>
+<dt id="ientry-idm45099793628592">org.freedesktop.NetworkManager.Connection.Active:Master, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Connection.Active.html#gdbus-property-org-freedesktop-NetworkManager-Connection-Active.Master">The "Master" property</a>
 </dt>
-<dt id="ientry-idm45053442899776">org.freedesktop.NetworkManager.Connection.Active:SpecificObject, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Connection.Active.html#gdbus-property-org-freedesktop-NetworkManager-Connection-Active.SpecificObject">The "SpecificObject" property</a>
+<dt id="ientry-idm45099793690880">org.freedesktop.NetworkManager.Connection.Active:SpecificObject, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Connection.Active.html#gdbus-property-org-freedesktop-NetworkManager-Connection-Active.SpecificObject">The "SpecificObject" property</a>
 </dt>
-<dt id="ientry-idm45053442878528">org.freedesktop.NetworkManager.Connection.Active:State, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Connection.Active.html#gdbus-property-org-freedesktop-NetworkManager-Connection-Active.State">The "State" property</a>
+<dt id="ientry-idm45099793669632">org.freedesktop.NetworkManager.Connection.Active:State, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Connection.Active.html#gdbus-property-org-freedesktop-NetworkManager-Connection-Active.State">The "State" property</a>
 </dt>
-<dt id="ientry-idm45053442873344">org.freedesktop.NetworkManager.Connection.Active:StateFlags, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Connection.Active.html#gdbus-property-org-freedesktop-NetworkManager-Connection-Active.StateFlags">The "StateFlags" property</a>
+<dt id="ientry-idm45099793664448">org.freedesktop.NetworkManager.Connection.Active:StateFlags, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Connection.Active.html#gdbus-property-org-freedesktop-NetworkManager-Connection-Active.StateFlags">The "StateFlags" property</a>
 </dt>
-<dt id="ientry-idm45053442887120">org.freedesktop.NetworkManager.Connection.Active:Type, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Connection.Active.html#gdbus-property-org-freedesktop-NetworkManager-Connection-Active.Type">The "Type" property</a>
+<dt id="ientry-idm45099793678224">org.freedesktop.NetworkManager.Connection.Active:Type, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Connection.Active.html#gdbus-property-org-freedesktop-NetworkManager-Connection-Active.Type">The "Type" property</a>
 </dt>
-<dt id="ientry-idm45053442891376">org.freedesktop.NetworkManager.Connection.Active:Uuid, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Connection.Active.html#gdbus-property-org-freedesktop-NetworkManager-Connection-Active.Uuid">The "Uuid" property</a>
+<dt id="ientry-idm45099793682480">org.freedesktop.NetworkManager.Connection.Active:Uuid, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Connection.Active.html#gdbus-property-org-freedesktop-NetworkManager-Connection-Active.Uuid">The "Uuid" property</a>
 </dt>
-<dt id="ientry-idm45053440366224">org.freedesktop.NetworkManager.Connection.Active:Vpn, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Connection.Active.html#gdbus-property-org-freedesktop-NetworkManager-Connection-Active.Vpn">The "Vpn" property</a>
+<dt id="ientry-idm45099793632784">org.freedesktop.NetworkManager.Connection.Active:Vpn, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Connection.Active.html#gdbus-property-org-freedesktop-NetworkManager-Connection-Active.Vpn">The "Vpn" property</a>
 </dt>
-<dt id="ientry-idm45053441382576">addr-gen-mode, <a class="indexterm" href="settings-ipv6.html">ipv6</a>
+<dt id="ientry-idm45099794685040">addr-gen-mode, <a class="indexterm" href="settings-ipv6.html">ipv6</a>
 </dt>
-<dt id="ientry-idm45053441471248">address-data, <a class="indexterm" href="settings-ipv4.html">ipv4</a>, <a class="indexterm" href="settings-ipv6.html">ipv6</a>
+<dt id="ientry-idm45099794771872">address-data, <a class="indexterm" href="settings-ipv4.html">ipv4</a>, <a class="indexterm" href="settings-ipv6.html">ipv6</a>
 </dt>
-<dt id="ientry-idm45053441467648">addresses, <a class="indexterm" href="settings-ipv4.html">ipv4</a>, <a class="indexterm" href="settings-ipv6.html">ipv6</a>
+<dt id="ientry-idm45099794768272">addresses, <a class="indexterm" href="settings-ipv4.html">ipv4</a>, <a class="indexterm" href="settings-ipv6.html">ipv6</a>
 </dt>
-<dt id="ientry-idm45053440712736">ageing, <a class="indexterm" href="settings-vxlan.html">vxlan</a>
+<dt id="ientry-idm45099794020304">ageing, <a class="indexterm" href="settings-vxlan.html">vxlan</a>
 </dt>
-<dt id="ientry-idm45053441691472">ageing-time, <a class="indexterm" href="settings-bridge.html">bridge</a>
+<dt id="ientry-idm45099794991872">ageing-time, <a class="indexterm" href="settings-bridge.html">bridge</a>
 </dt>
-<dt id="ientry-idm45053443664032">altsubject-matches, <a class="indexterm" href="settings-802-1x.html">802-1x</a>
+<dt id="ientry-idm45099796927696">altsubject-matches, <a class="indexterm" href="settings-802-1x.html">802-1x</a>
 </dt>
-<dt id="ientry-idm45053443659968">anonymous-identity, <a class="indexterm" href="settings-802-1x.html">802-1x</a>
+<dt id="ientry-idm45099796923632">anonymous-identity, <a class="indexterm" href="settings-802-1x.html">802-1x</a>
 </dt>
-<dt id="ientry-idm45053441543456">apn, <a class="indexterm" href="settings-gsm.html">gsm</a>
+<dt id="ientry-idm45099794844080">apn, <a class="indexterm" href="settings-gsm.html">gsm</a>
 </dt>
-<dt id="ientry-idm45053441615184">app-fcoe-flags, <a class="indexterm" href="settings-dcb.html">dcb</a>
+<dt id="ientry-idm45099794915568">app-fcoe-flags, <a class="indexterm" href="settings-dcb.html">dcb</a>
 </dt>
-<dt id="ientry-idm45053441611600">app-fcoe-mode, <a class="indexterm" href="settings-dcb.html">dcb</a>
+<dt id="ientry-idm45099794911984">app-fcoe-mode, <a class="indexterm" href="settings-dcb.html">dcb</a>
 </dt>
-<dt id="ientry-idm45053441608032">app-fcoe-priority, <a class="indexterm" href="settings-dcb.html">dcb</a>
+<dt id="ientry-idm45099794908496">app-fcoe-priority, <a class="indexterm" href="settings-dcb.html">dcb</a>
 </dt>
-<dt id="ientry-idm45053441604336">app-fip-flags, <a class="indexterm" href="settings-dcb.html">dcb</a>
+<dt id="ientry-idm45099794904800">app-fip-flags, <a class="indexterm" href="settings-dcb.html">dcb</a>
 </dt>
-<dt id="ientry-idm45053441600752">app-fip-priority, <a class="indexterm" href="settings-dcb.html">dcb</a>
+<dt id="ientry-idm45099794901216">app-fip-priority, <a class="indexterm" href="settings-dcb.html">dcb</a>
 </dt>
-<dt id="ientry-idm45053441597056">app-iscsi-flags, <a class="indexterm" href="settings-dcb.html">dcb</a>
+<dt id="ientry-idm45099794897520">app-iscsi-flags, <a class="indexterm" href="settings-dcb.html">dcb</a>
 </dt>
-<dt id="ientry-idm45053441593472">app-iscsi-priority, <a class="indexterm" href="settings-dcb.html">dcb</a>
+<dt id="ientry-idm45099794893936">app-iscsi-priority, <a class="indexterm" href="settings-dcb.html">dcb</a>
 </dt>
-<dt id="ientry-idm45053440632608">assigned-mac-address, <a class="indexterm" href="settings-802-3-ethernet.html">802-3-ethernet</a>, <a class="indexterm" href="settings-802-11-wireless.html">802-11-wireless</a>
+<dt id="ientry-idm45099793940176">assigned-mac-address, <a class="indexterm" href="settings-802-3-ethernet.html">802-3-ethernet</a>, <a class="indexterm" href="settings-802-11-wireless.html">802-11-wireless</a>
 </dt>
-<dt id="ientry-idm45053440483392">auth-alg, <a class="indexterm" href="settings-802-11-wireless-security.html">802-11-wireless-security</a>
+<dt id="ientry-idm45099793790208">auth-alg, <a class="indexterm" href="settings-802-11-wireless-security.html">802-11-wireless-security</a>
 </dt>
-<dt id="ientry-idm45053447321936">auth-retries, <a class="indexterm" href="settings-connection.html">connection</a>
+<dt id="ientry-idm45099798459280">auth-retries, <a class="indexterm" href="settings-connection.html">connection</a>
 </dt>
-<dt id="ientry-idm45053443656288">auth-timeout, <a class="indexterm" href="settings-802-1x.html">802-1x</a>
+<dt id="ientry-idm45099796919952">auth-timeout, <a class="indexterm" href="settings-802-1x.html">802-1x</a>
 </dt>
-<dt id="ientry-idm45053440628928">auto-negotiate, <a class="indexterm" href="settings-802-3-ethernet.html">802-3-ethernet</a>
+<dt id="ientry-idm45099793936496">auto-negotiate, <a class="indexterm" href="settings-802-3-ethernet.html">802-3-ethernet</a>
 </dt>
-<dt id="ientry-idm45053450090896">autoconnect, <a class="indexterm" href="settings-connection.html">connection</a>
+<dt id="ientry-idm45099801807776">autoconnect, <a class="indexterm" href="settings-connection.html">connection</a>
 </dt>
-<dt id="ientry-idm45053449899120">autoconnect-priority, <a class="indexterm" href="settings-connection.html">connection</a>
+<dt id="ientry-idm45099800417024">autoconnect-priority, <a class="indexterm" href="settings-connection.html">connection</a>
 </dt>
-<dt id="ientry-idm45053448895088">autoconnect-retries, <a class="indexterm" href="settings-connection.html">connection</a>
+<dt id="ientry-idm45099800413328">autoconnect-retries, <a class="indexterm" href="settings-connection.html">connection</a>
 </dt>
-<dt id="ientry-idm45053448891248">autoconnect-slaves, <a class="indexterm" href="settings-connection.html">connection</a>
+<dt id="ientry-idm45099800698384">autoconnect-slaves, <a class="indexterm" href="settings-connection.html">connection</a>
 </dt>
-<dt id="ientry-idm45053440942368">autoprobe-drivers, <a class="indexterm" href="settings-sriov.html">sriov</a>
+<dt id="ientry-idm45099794250256">autoprobe-drivers, <a class="indexterm" href="settings-sriov.html">sriov</a>
 </dt>
 </dl>
 </div>
 <div class="indexdiv">
 <h3>B</h3>
 <dl>
-<dt id="ientry-idm45053440562432">band, <a class="indexterm" href="settings-802-11-wireless.html">802-11-wireless</a>
+<dt id="ientry-idm45099793869312">band, <a class="indexterm" href="settings-802-11-wireless.html">802-11-wireless</a>
 </dt>
-<dt id="ientry-idm45053441087680">baud, <a class="indexterm" href="settings-ppp.html">ppp</a>, <a class="indexterm" href="settings-serial.html">serial</a>
+<dt id="ientry-idm45099794395632">baud, <a class="indexterm" href="settings-ppp.html">ppp</a>, <a class="indexterm" href="settings-serial.html">serial</a>
 </dt>
-<dt id="ientry-idm45053441713680">bdaddr, <a class="indexterm" href="settings-bluetooth.html">bluetooth</a>
+<dt id="ientry-idm45099795014080">bdaddr, <a class="indexterm" href="settings-bluetooth.html">bluetooth</a>
 </dt>
-<dt id="ientry-idm45053440962912">bits, <a class="indexterm" href="settings-serial.html">serial</a>
+<dt id="ientry-idm45099794270800">bits, <a class="indexterm" href="settings-serial.html">serial</a>
 </dt>
-<dt id="ientry-idm45053441115616">bond-downdelay, <a class="indexterm" href="settings-ovs-port.html">ovs-port</a>
+<dt id="ientry-idm45099794423504">bond-downdelay, <a class="indexterm" href="settings-ovs-port.html">ovs-port</a>
 </dt>
-<dt id="ientry-idm45053441111696">bond-mode, <a class="indexterm" href="settings-ovs-port.html">ovs-port</a>
+<dt id="ientry-idm45099794419584">bond-mode, <a class="indexterm" href="settings-ovs-port.html">ovs-port</a>
 </dt>
-<dt id="ientry-idm45053441107936">bond-updelay, <a class="indexterm" href="settings-ovs-port.html">ovs-port</a>
+<dt id="ientry-idm45099794415824">bond-updelay, <a class="indexterm" href="settings-ovs-port.html">ovs-port</a>
 </dt>
-<dt id="ientry-idm45053440987152">browser-only, <a class="indexterm" href="settings-proxy.html">proxy</a>
+<dt id="ientry-idm45099794295104">browser-only, <a class="indexterm" href="settings-proxy.html">proxy</a>
 </dt>
-<dt id="ientry-idm45053440558320">bssid, <a class="indexterm" href="settings-802-11-wireless.html">802-11-wireless</a>
+<dt id="ientry-idm45099793865200">bssid, <a class="indexterm" href="settings-802-11-wireless.html">802-11-wireless</a>
 </dt>
 </dl>
 </div>
 <div class="indexdiv">
 <h3>C</h3>
 <dl>
-<dt id="ientry-idm45053443652288">ca-cert, <a class="indexterm" href="settings-802-1x.html">802-1x</a>
+<dt id="ientry-idm45099796915952">ca-cert, <a class="indexterm" href="settings-802-1x.html">802-1x</a>
 </dt>
-<dt id="ientry-idm45053443648608">ca-cert-password, <a class="indexterm" href="settings-802-1x.html">802-1x</a>
+<dt id="ientry-idm45099796912272">ca-cert-password, <a class="indexterm" href="settings-802-1x.html">802-1x</a>
 </dt>
-<dt id="ientry-idm45053443644928">ca-cert-password-flags, <a class="indexterm" href="settings-802-1x.html">802-1x</a>
+<dt id="ientry-idm45099796908592">ca-cert-password-flags, <a class="indexterm" href="settings-802-1x.html">802-1x</a>
 </dt>
-<dt id="ientry-idm45053443641280">ca-path, <a class="indexterm" href="settings-802-1x.html">802-1x</a>
+<dt id="ientry-idm45099796904944">ca-path, <a class="indexterm" href="settings-802-1x.html">802-1x</a>
 </dt>
-<dt id="ientry-idm45053441169632">channel, <a class="indexterm" href="settings-802-11-olpc-mesh.html">802-11-olpc-mesh</a>, <a class="indexterm" href="settings-802-11-wireless.html">802-11-wireless</a>
+<dt id="ientry-idm45099794475584">channel, <a class="indexterm" href="settings-802-11-olpc-mesh.html">802-11-olpc-mesh</a>, <a class="indexterm" href="settings-802-11-wireless.html">802-11-wireless</a>
 </dt>
-<dt id="ientry-idm45053450310896">org.freedesktop.NetworkManager.Checkpoint, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Checkpoint.html#gdbus-interface-org-freedesktop-NetworkManager-Checkpoint.top_of_page">org.freedesktop.NetworkManager.Checkpoint</a>
+<dt id="ientry-idm45099803356224">org.freedesktop.NetworkManager.Checkpoint, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Checkpoint.html#gdbus-interface-org-freedesktop-NetworkManager-Checkpoint.top_of_page">org.freedesktop.NetworkManager.Checkpoint</a>
 </dt>
-<dt id="ientry-idm45053440282448">org.freedesktop.NetworkManager.Checkpoint::PropertiesChanged, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Checkpoint.html#gdbus-signal-org-freedesktop-NetworkManager-Checkpoint.PropertiesChanged">The "PropertiesChanged" signal</a>
+<dt id="ientry-idm45099795959824">org.freedesktop.NetworkManager.Checkpoint::PropertiesChanged, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Checkpoint.html#gdbus-signal-org-freedesktop-NetworkManager-Checkpoint.PropertiesChanged">The "PropertiesChanged" signal</a>
 </dt>
-<dt id="ientry-idm45053443078480">org.freedesktop.NetworkManager.Checkpoint:Created, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Checkpoint.html#gdbus-property-org-freedesktop-NetworkManager-Checkpoint.Created">The "Created" property</a>
+<dt id="ientry-idm45099795999568">org.freedesktop.NetworkManager.Checkpoint:Created, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Checkpoint.html#gdbus-property-org-freedesktop-NetworkManager-Checkpoint.Created">The "Created" property</a>
 </dt>
-<dt id="ientry-idm45053443082320">org.freedesktop.NetworkManager.Checkpoint:Devices, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Checkpoint.html#gdbus-property-org-freedesktop-NetworkManager-Checkpoint.Devices">The "Devices" property</a>
+<dt id="ientry-idm45099793467760">org.freedesktop.NetworkManager.Checkpoint:Devices, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Checkpoint.html#gdbus-property-org-freedesktop-NetworkManager-Checkpoint.Devices">The "Devices" property</a>
 </dt>
-<dt id="ientry-idm45053443152464">org.freedesktop.NetworkManager.Checkpoint:RollbackTimeout, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Checkpoint.html#gdbus-property-org-freedesktop-NetworkManager-Checkpoint.RollbackTimeout">The "RollbackTimeout" property</a>
+<dt id="ientry-idm45099795995296">org.freedesktop.NetworkManager.Checkpoint:RollbackTimeout, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Checkpoint.html#gdbus-property-org-freedesktop-NetworkManager-Checkpoint.RollbackTimeout">The "RollbackTimeout" property</a>
 </dt>
-<dt id="ientry-idm45053443637392">client-cert, <a class="indexterm" href="settings-802-1x.html">802-1x</a>
+<dt id="ientry-idm45099796901056">client-cert, <a class="indexterm" href="settings-802-1x.html">802-1x</a>
 </dt>
-<dt id="ientry-idm45053443633712">client-cert-password, <a class="indexterm" href="settings-802-1x.html">802-1x</a>
+<dt id="ientry-idm45099796897376">client-cert-password, <a class="indexterm" href="settings-802-1x.html">802-1x</a>
 </dt>
-<dt id="ientry-idm45053443629872">client-cert-password-flags, <a class="indexterm" href="settings-802-1x.html">802-1x</a>
+<dt id="ientry-idm45099796893536">client-cert-password-flags, <a class="indexterm" href="settings-802-1x.html">802-1x</a>
 </dt>
-<dt id="ientry-idm45053440624624">cloned-mac-address, <a class="indexterm" href="settings-802-3-ethernet.html">802-3-ethernet</a>, <a class="indexterm" href="settings-802-11-wireless.html">802-11-wireless</a>
+<dt id="ientry-idm45099793932192">cloned-mac-address, <a class="indexterm" href="settings-802-3-ethernet.html">802-3-ethernet</a>, <a class="indexterm" href="settings-802-11-wireless.html">802-11-wireless</a>
 </dt>
-<dt id="ientry-idm45053440912256">config, <a class="indexterm" href="settings-team.html">team</a>, <a class="indexterm" href="settings-team-port.html">team-port</a>
+<dt id="ientry-idm45099794219760">config, <a class="indexterm" href="settings-team.html">team</a>, <a class="indexterm" href="settings-team-port.html">team-port</a>
 </dt>
-<dt id="ientry-idm45053441083840">crtscts, <a class="indexterm" href="settings-ppp.html">ppp</a>
+<dt id="ientry-idm45099794391792">crtscts, <a class="indexterm" href="settings-ppp.html">ppp</a>
 </dt>
 </dl>
 </div>
 <div class="indexdiv">
 <h3>D</h3>
 <dl>
-<dt id="ientry-idm45053441463616">dad-timeout, <a class="indexterm" href="settings-ipv4.html">ipv4</a>, <a class="indexterm" href="settings-ipv6.html">ipv6</a>
+<dt id="ientry-idm45099794764784">dad-timeout, <a class="indexterm" href="settings-ipv4.html">ipv4</a>, <a class="indexterm" href="settings-ipv6.html">ipv6</a>
 </dt>
-<dt id="ientry-idm45053440779232">data, <a class="indexterm" href="settings-user.html">user</a>, <a class="indexterm" href="settings-vpn.html">vpn</a>
+<dt id="ientry-idm45099794086736">data, <a class="indexterm" href="settings-user.html">user</a>, <a class="indexterm" href="settings-vpn.html">vpn</a>
 </dt>
-<dt id="ientry-idm45053440708816">destination-port, <a class="indexterm" href="settings-vxlan.html">vxlan</a>
+<dt id="ientry-idm45099794016384">destination-port, <a class="indexterm" href="settings-vxlan.html">vxlan</a>
 </dt>
-<dt id="ientry-idm45053441539632">device-id, <a class="indexterm" href="settings-gsm.html">gsm</a>
+<dt id="ientry-idm45099794840256">device-id, <a class="indexterm" href="settings-gsm.html">gsm</a>
 </dt>
-<dt id="ientry-idm45053453113840">org.freedesktop.NetworkManager.Device.Wired, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Wired.html#gdbus-interface-org-freedesktop-NetworkManager-Device-Wired.top_of_page">org.freedesktop.NetworkManager.Device.Wired</a>
+<dt id="ientry-idm45099804217840">org.freedesktop.NetworkManager.Device.Wired, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Wired.html#gdbus-interface-org-freedesktop-NetworkManager-Device-Wired.top_of_page">org.freedesktop.NetworkManager.Device.Wired</a>
 </dt>
-<dt id="ientry-idm45053445531600">org.freedesktop.NetworkManager.Device.Wired::PropertiesChanged, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Wired.html#gdbus-signal-org-freedesktop-NetworkManager-Device-Wired.PropertiesChanged">The "PropertiesChanged" signal</a>
+<dt id="ientry-idm45099806124576">org.freedesktop.NetworkManager.Device.Wired::PropertiesChanged, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Wired.html#gdbus-signal-org-freedesktop-NetworkManager-Device-Wired.PropertiesChanged">The "PropertiesChanged" signal</a>
 </dt>
-<dt id="ientry-idm45053452260592">org.freedesktop.NetworkManager.Device.Wired:Carrier, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Wired.html#gdbus-property-org-freedesktop-NetworkManager-Device-Wired.Carrier">The "Carrier" property</a>
+<dt id="ientry-idm45099795027488">org.freedesktop.NetworkManager.Device.Wired:Carrier, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Wired.html#gdbus-property-org-freedesktop-NetworkManager-Device-Wired.Carrier">The "Carrier" property</a>
 </dt>
-<dt id="ientry-idm45053445489504">org.freedesktop.NetworkManager.Device.Wired:HwAddress, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Wired.html#gdbus-property-org-freedesktop-NetworkManager-Device-Wired.HwAddress">The "HwAddress" property</a>
+<dt id="ientry-idm45099803185744">org.freedesktop.NetworkManager.Device.Wired:HwAddress, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Wired.html#gdbus-property-org-freedesktop-NetworkManager-Device-Wired.HwAddress">The "HwAddress" property</a>
 </dt>
-<dt id="ientry-idm45053445485440">org.freedesktop.NetworkManager.Device.Wired:PermHwAddress, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Wired.html#gdbus-property-org-freedesktop-NetworkManager-Device-Wired.PermHwAddress">The "PermHwAddress" property</a>
+<dt id="ientry-idm45099807064864">org.freedesktop.NetworkManager.Device.Wired:PermHwAddress, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Wired.html#gdbus-property-org-freedesktop-NetworkManager-Device-Wired.PermHwAddress">The "PermHwAddress" property</a>
 </dt>
-<dt id="ientry-idm45053452264912">org.freedesktop.NetworkManager.Device.Wired:S390Subchannels, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Wired.html#gdbus-property-org-freedesktop-NetworkManager-Device-Wired.S390Subchannels">The "S390Subchannels" property</a>
+<dt id="ientry-idm45099800647232">org.freedesktop.NetworkManager.Device.Wired:S390Subchannels, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Wired.html#gdbus-property-org-freedesktop-NetworkManager-Device-Wired.S390Subchannels">The "S390Subchannels" property</a>
 </dt>
-<dt id="ientry-idm45053452269168">org.freedesktop.NetworkManager.Device.Wired:Speed, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Wired.html#gdbus-property-org-freedesktop-NetworkManager-Device-Wired.Speed">The "Speed" property</a>
+<dt id="ientry-idm45099806392880">org.freedesktop.NetworkManager.Device.Wired:Speed, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Wired.html#gdbus-property-org-freedesktop-NetworkManager-Device-Wired.Speed">The "Speed" property</a>
 </dt>
-<dt id="ientry-idm45053456658592">org.freedesktop.NetworkManager.Device.Wireless, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Wireless.html#gdbus-interface-org-freedesktop-NetworkManager-Device-Wireless.top_of_page">org.freedesktop.NetworkManager.Device.Wireless</a>
+<dt id="ientry-idm45099807046384">org.freedesktop.NetworkManager.Device.Wireless, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Wireless.html#gdbus-interface-org-freedesktop-NetworkManager-Device-Wireless.top_of_page">org.freedesktop.NetworkManager.Device.Wireless</a>
 </dt>
-<dt id="ientry-idm45053441752752">org.freedesktop.NetworkManager.Device.Wireless.GetAccessPoints(), <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Wireless.html#gdbus-method-org-freedesktop-NetworkManager-Device-Wireless.GetAccessPoints">The GetAccessPoints() method</a>
+<dt id="ientry-idm45099795434688">org.freedesktop.NetworkManager.Device.Wireless.GetAccessPoints(), <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Wireless.html#gdbus-method-org-freedesktop-NetworkManager-Device-Wireless.GetAccessPoints">The GetAccessPoints() method</a>
 </dt>
-<dt id="ientry-idm45053442326960">org.freedesktop.NetworkManager.Device.Wireless.GetAllAccessPoints(), <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Wireless.html#gdbus-method-org-freedesktop-NetworkManager-Device-Wireless.GetAllAccessPoints">The GetAllAccessPoints() method</a>
+<dt id="ientry-idm45099795621056">org.freedesktop.NetworkManager.Device.Wireless.GetAllAccessPoints(), <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Wireless.html#gdbus-method-org-freedesktop-NetworkManager-Device-Wireless.GetAllAccessPoints">The GetAllAccessPoints() method</a>
 </dt>
-<dt id="ientry-idm45053442319760">org.freedesktop.NetworkManager.Device.Wireless.RequestScan(), <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Wireless.html#gdbus-method-org-freedesktop-NetworkManager-Device-Wireless.RequestScan">The RequestScan() method</a>
+<dt id="ientry-idm45099795613712">org.freedesktop.NetworkManager.Device.Wireless.RequestScan(), <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Wireless.html#gdbus-method-org-freedesktop-NetworkManager-Device-Wireless.RequestScan">The RequestScan() method</a>
 </dt>
-<dt id="ientry-idm45053442847664">org.freedesktop.NetworkManager.Device.Wireless::AccessPointAdded, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Wireless.html#gdbus-signal-org-freedesktop-NetworkManager-Device-Wireless.AccessPointAdded">The "AccessPointAdded" signal</a>
+<dt id="ientry-idm45099795741840">org.freedesktop.NetworkManager.Device.Wireless::AccessPointAdded, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Wireless.html#gdbus-signal-org-freedesktop-NetworkManager-Device-Wireless.AccessPointAdded">The "AccessPointAdded" signal</a>
 </dt>
-<dt id="ientry-idm45053442840016">org.freedesktop.NetworkManager.Device.Wireless::AccessPointRemoved, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Wireless.html#gdbus-signal-org-freedesktop-NetworkManager-Device-Wireless.AccessPointRemoved">The "AccessPointRemoved" signal</a>
+<dt id="ientry-idm45099795734352">org.freedesktop.NetworkManager.Device.Wireless::AccessPointRemoved, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Wireless.html#gdbus-signal-org-freedesktop-NetworkManager-Device-Wireless.AccessPointRemoved">The "AccessPointRemoved" signal</a>
 </dt>
-<dt id="ientry-idm45053442855152">org.freedesktop.NetworkManager.Device.Wireless::PropertiesChanged, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Wireless.html#gdbus-signal-org-freedesktop-NetworkManager-Device-Wireless.PropertiesChanged">The "PropertiesChanged" signal</a>
+<dt id="ientry-idm45099795749328">org.freedesktop.NetworkManager.Device.Wireless::PropertiesChanged, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Wireless.html#gdbus-signal-org-freedesktop-NetworkManager-Device-Wireless.PropertiesChanged">The "PropertiesChanged" signal</a>
 </dt>
-<dt id="ientry-idm45053443004336">org.freedesktop.NetworkManager.Device.Wireless:AccessPoints, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Wireless.html#gdbus-property-org-freedesktop-NetworkManager-Device-Wireless.AccessPoints">The "AccessPoints" property</a>
+<dt id="ientry-idm45099796053808">org.freedesktop.NetworkManager.Device.Wireless:AccessPoints, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Wireless.html#gdbus-property-org-freedesktop-NetworkManager-Device-Wireless.AccessPoints">The "AccessPoints" property</a>
 </dt>
-<dt id="ientry-idm45053442999968">org.freedesktop.NetworkManager.Device.Wireless:ActiveAccessPoint, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Wireless.html#gdbus-property-org-freedesktop-NetworkManager-Device-Wireless.ActiveAccessPoint">The "ActiveAccessPoint" property</a>
+<dt id="ientry-idm45099796049440">org.freedesktop.NetworkManager.Device.Wireless:ActiveAccessPoint, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Wireless.html#gdbus-property-org-freedesktop-NetworkManager-Device-Wireless.ActiveAccessPoint">The "ActiveAccessPoint" property</a>
 </dt>
-<dt id="ientry-idm45053443008624">org.freedesktop.NetworkManager.Device.Wireless:Bitrate, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Wireless.html#gdbus-property-org-freedesktop-NetworkManager-Device-Wireless.Bitrate">The "Bitrate" property</a>
+<dt id="ientry-idm45099796058096">org.freedesktop.NetworkManager.Device.Wireless:Bitrate, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Wireless.html#gdbus-property-org-freedesktop-NetworkManager-Device-Wireless.Bitrate">The "Bitrate" property</a>
 </dt>
-<dt id="ientry-idm45053442830480">org.freedesktop.NetworkManager.Device.Wireless:HwAddress, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Wireless.html#gdbus-property-org-freedesktop-NetworkManager-Device-Wireless.HwAddress">The "HwAddress" property</a>
+<dt id="ientry-idm45099796071712">org.freedesktop.NetworkManager.Device.Wireless:HwAddress, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Wireless.html#gdbus-property-org-freedesktop-NetworkManager-Device-Wireless.HwAddress">The "HwAddress" property</a>
 </dt>
-<dt id="ientry-idm45053442990320">org.freedesktop.NetworkManager.Device.Wireless:LastScan, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Wireless.html#gdbus-property-org-freedesktop-NetworkManager-Device-Wireless.LastScan">The "LastScan" property</a>
+<dt id="ientry-idm45099796039792">org.freedesktop.NetworkManager.Device.Wireless:LastScan, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Wireless.html#gdbus-property-org-freedesktop-NetworkManager-Device-Wireless.LastScan">The "LastScan" property</a>
 </dt>
-<dt id="ientry-idm45053443013744">org.freedesktop.NetworkManager.Device.Wireless:Mode, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Wireless.html#gdbus-property-org-freedesktop-NetworkManager-Device-Wireless.Mode">The "Mode" property</a>
+<dt id="ientry-idm45099796063216">org.freedesktop.NetworkManager.Device.Wireless:Mode, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Wireless.html#gdbus-property-org-freedesktop-NetworkManager-Device-Wireless.Mode">The "Mode" property</a>
 </dt>
-<dt id="ientry-idm45053443017968">org.freedesktop.NetworkManager.Device.Wireless:PermHwAddress, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Wireless.html#gdbus-property-org-freedesktop-NetworkManager-Device-Wireless.PermHwAddress">The "PermHwAddress" property</a>
+<dt id="ientry-idm45099796067440">org.freedesktop.NetworkManager.Device.Wireless:PermHwAddress, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Wireless.html#gdbus-property-org-freedesktop-NetworkManager-Device-Wireless.PermHwAddress">The "PermHwAddress" property</a>
 </dt>
-<dt id="ientry-idm45053442995584">org.freedesktop.NetworkManager.Device.Wireless:WirelessCapabilities, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Wireless.html#gdbus-property-org-freedesktop-NetworkManager-Device-Wireless.WirelessCapabilities">The "WirelessCapabilities" property</a>
+<dt id="ientry-idm45099796045056">org.freedesktop.NetworkManager.Device.Wireless:WirelessCapabilities, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.Device.Wireless.html#gdbus-property-org-freedesktop-NetworkManager-Device-Wireless.WirelessCapabilities">The "WirelessCapabilities" property</a>
 </dt>
-<dt id="ientry-idm45053441165712">dhcp-anycast-address, <a class="indexterm" href="settings-802-11-olpc-mesh.html">802-11-olpc-mesh</a>
+<dt id="ientry-idm45099794472096">dhcp-anycast-address, <a class="indexterm" href="settings-802-11-olpc-mesh.html">802-11-olpc-mesh</a>
 </dt>
-<dt id="ientry-idm45053441460128">dhcp-client-id, <a class="indexterm" href="settings-ipv4.html">ipv4</a>
+<dt id="ientry-idm45099794761296">dhcp-client-id, <a class="indexterm" href="settings-ipv4.html">ipv4</a>
 </dt>
-<dt id="ientry-idm45053441366752">dhcp-duid, <a class="indexterm" href="settings-ipv6.html">ipv6</a>
+<dt id="ientry-idm45099794669216">dhcp-duid, <a class="indexterm" href="settings-ipv6.html">ipv6</a>
 </dt>
-<dt id="ientry-idm45053441455680">dhcp-fqdn, <a class="indexterm" href="settings-ipv4.html">ipv4</a>
+<dt id="ientry-idm45099794756592">dhcp-fqdn, <a class="indexterm" href="settings-ipv4.html">ipv4</a>
 </dt>
-<dt id="ientry-idm45053441452080">dhcp-hostname, <a class="indexterm" href="settings-ipv4.html">ipv4</a>, <a class="indexterm" href="settings-ipv6.html">ipv6</a>
+<dt id="ientry-idm45099794752992">dhcp-hostname, <a class="indexterm" href="settings-ipv4.html">ipv4</a>, <a class="indexterm" href="settings-ipv6.html">ipv6</a>
 </dt>
-<dt id="ientry-idm45053441448496">dhcp-send-hostname, <a class="indexterm" href="settings-ipv4.html">ipv4</a>, <a class="indexterm" href="settings-ipv6.html">ipv6</a>
+<dt id="ientry-idm45099794749408">dhcp-send-hostname, <a class="indexterm" href="settings-ipv4.html">ipv4</a>, <a class="indexterm" href="settings-ipv6.html">ipv6</a>
 </dt>
-<dt id="ientry-idm45053441444672">dhcp-timeout, <a class="indexterm" href="settings-ipv4.html">ipv4</a>, <a class="indexterm" href="settings-ipv6.html">ipv6</a>
+<dt id="ientry-idm45099794745584">dhcp-timeout, <a class="indexterm" href="settings-ipv4.html">ipv4</a>, <a class="indexterm" href="settings-ipv6.html">ipv6</a>
 </dt>
-<dt id="ientry-idm45053450726624">org.freedesktop.NetworkManager.DHCP4Config, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.DHCP4Config.html#gdbus-interface-org-freedesktop-NetworkManager-DHCP4Config.top_of_page">org.freedesktop.NetworkManager.DHCP4Config</a>
+<dt id="ientry-idm45099806479568">org.freedesktop.NetworkManager.DHCP4Config, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.DHCP4Config.html#gdbus-interface-org-freedesktop-NetworkManager-DHCP4Config.top_of_page">org.freedesktop.NetworkManager.DHCP4Config</a>
 </dt>
-<dt id="ientry-idm45053442927568">org.freedesktop.NetworkManager.DHCP4Config::PropertiesChanged, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.DHCP4Config.html#gdbus-signal-org-freedesktop-NetworkManager-DHCP4Config.PropertiesChanged">The "PropertiesChanged" signal</a>
+<dt id="ientry-idm45099796140688">org.freedesktop.NetworkManager.DHCP4Config::PropertiesChanged, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.DHCP4Config.html#gdbus-signal-org-freedesktop-NetworkManager-DHCP4Config.PropertiesChanged">The "PropertiesChanged" signal</a>
 </dt>
-<dt id="ientry-idm45053440357184">org.freedesktop.NetworkManager.DHCP4Config:Options, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.DHCP4Config.html#gdbus-property-org-freedesktop-NetworkManager-DHCP4Config.Options">The "Options" property</a>
+<dt id="ientry-idm45099796005456">org.freedesktop.NetworkManager.DHCP4Config:Options, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.DHCP4Config.html#gdbus-property-org-freedesktop-NetworkManager-DHCP4Config.Options">The "Options" property</a>
 </dt>
-<dt id="ientry-idm45053447852944">org.freedesktop.NetworkManager.DHCP6Config, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.DHCP6Config.html#gdbus-interface-org-freedesktop-NetworkManager-DHCP6Config.top_of_page">org.freedesktop.NetworkManager.DHCP6Config</a>
+<dt id="ientry-idm45099802958448">org.freedesktop.NetworkManager.DHCP6Config, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.DHCP6Config.html#gdbus-interface-org-freedesktop-NetworkManager-DHCP6Config.top_of_page">org.freedesktop.NetworkManager.DHCP6Config</a>
 </dt>
-<dt id="ientry-idm45053443021408">org.freedesktop.NetworkManager.DHCP6Config::PropertiesChanged, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.DHCP6Config.html#gdbus-signal-org-freedesktop-NetworkManager-DHCP6Config.PropertiesChanged">The "PropertiesChanged" signal</a>
+<dt id="ientry-idm45099793497504">org.freedesktop.NetworkManager.DHCP6Config::PropertiesChanged, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.DHCP6Config.html#gdbus-signal-org-freedesktop-NetworkManager-DHCP6Config.PropertiesChanged">The "PropertiesChanged" signal</a>
 </dt>
-<dt id="ientry-idm45053443036288">org.freedesktop.NetworkManager.DHCP6Config:Options, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.DHCP6Config.html#gdbus-property-org-freedesktop-NetworkManager-DHCP6Config.Options">The "Options" property</a>
+<dt id="ientry-idm45099793488736">org.freedesktop.NetworkManager.DHCP6Config:Options, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.DHCP6Config.html#gdbus-property-org-freedesktop-NetworkManager-DHCP6Config.Options">The "Options" property</a>
 </dt>
-<dt id="ientry-idm45053441441184">dns, <a class="indexterm" href="settings-ipv4.html">ipv4</a>, <a class="indexterm" href="settings-ipv6.html">ipv6</a>
+<dt id="ientry-idm45099794742096">dns, <a class="indexterm" href="settings-ipv4.html">ipv4</a>, <a class="indexterm" href="settings-ipv6.html">ipv6</a>
 </dt>
-<dt id="ientry-idm45053441437616">dns-options, <a class="indexterm" href="settings-ipv4.html">ipv4</a>, <a class="indexterm" href="settings-ipv6.html">ipv6</a>
+<dt id="ientry-idm45099794738608">dns-options, <a class="indexterm" href="settings-ipv4.html">ipv4</a>, <a class="indexterm" href="settings-ipv6.html">ipv6</a>
 </dt>
-<dt id="ientry-idm45053441433888">dns-priority, <a class="indexterm" href="settings-ipv4.html">ipv4</a>, <a class="indexterm" href="settings-ipv6.html">ipv6</a>
+<dt id="ientry-idm45099794734880">dns-priority, <a class="indexterm" href="settings-ipv4.html">ipv4</a>, <a class="indexterm" href="settings-ipv6.html">ipv6</a>
 </dt>
-<dt id="ientry-idm45053441428832">dns-search, <a class="indexterm" href="settings-ipv4.html">ipv4</a>, <a class="indexterm" href="settings-ipv6.html">ipv6</a>
+<dt id="ientry-idm45099794729824">dns-search, <a class="indexterm" href="settings-ipv4.html">ipv4</a>, <a class="indexterm" href="settings-ipv6.html">ipv6</a>
 </dt>
-<dt id="ientry-idm45053443626288">domain-suffix-match, <a class="indexterm" href="settings-802-1x.html">802-1x</a>
+<dt id="ientry-idm45099796889808">domain-suffix-match, <a class="indexterm" href="settings-802-1x.html">802-1x</a>
 </dt>
-<dt id="ientry-idm45053440620720">duplex, <a class="indexterm" href="settings-802-3-ethernet.html">802-3-ethernet</a>
+<dt id="ientry-idm45099793928288">duplex, <a class="indexterm" href="settings-802-3-ethernet.html">802-3-ethernet</a>
 </dt>
 </dl>
 </div>
 <div class="indexdiv">
 <h3>E</h3>
 <dl>
-<dt id="ientry-idm45053443622240">eap, <a class="indexterm" href="settings-802-1x.html">802-1x</a>
+<dt id="ientry-idm45099796885760">eap, <a class="indexterm" href="settings-802-1x.html">802-1x</a>
 </dt>
-<dt id="ientry-idm45053440770176">egress-priority-map, <a class="indexterm" href="settings-vlan.html">vlan</a>
+<dt id="ientry-idm45099794077680">egress-priority-map, <a class="indexterm" href="settings-vlan.html">vlan</a>
 </dt>
-<dt id="ientry-idm45053443486832">encapsulation, <a class="indexterm" href="settings-adsl.html">adsl</a>
+<dt id="ientry-idm45099796750288">encapsulation, <a class="indexterm" href="settings-adsl.html">adsl</a>
 </dt>
-<dt id="ientry-idm45053441286064">encapsulation-limit, <a class="indexterm" href="settings-ip-tunnel.html">ip-tunnel</a>
+<dt id="ientry-idm45099794588464">encapsulation-limit, <a class="indexterm" href="settings-ip-tunnel.html">ip-tunnel</a>
 </dt>
-<dt id="ientry-idm45053441235408">encrypt, <a class="indexterm" href="settings-macsec.html">macsec</a>
+<dt id="ientry-idm45099794537808">encrypt, <a class="indexterm" href="settings-macsec.html">macsec</a>
 </dt>
 </dl>
 </div>
 <div class="indexdiv">
 <h3>F</h3>
 <dl>
-<dt id="ientry-idm45053441153392">fail-mode, <a class="indexterm" href="settings-ovs-bridge.html">ovs-bridge</a>
+<dt id="ientry-idm45099794460960">fail-mode, <a class="indexterm" href="settings-ovs-bridge.html">ovs-bridge</a>
 </dt>
-<dt id="ientry-idm45053440479328">fils, <a class="indexterm" href="settings-802-11-wireless-security.html">802-11-wireless-security</a>
+<dt id="ientry-idm45099793786144">fils, <a class="indexterm" href="settings-802-11-wireless-security.html">802-11-wireless-security</a>
 </dt>
-<dt id="ientry-idm45053441282432">flags, <a class="indexterm" href="settings-ip-tunnel.html">ip-tunnel</a>, <a class="indexterm" href="settings-vlan.html">vlan</a>
+<dt id="ientry-idm45099794584832">flags, <a class="indexterm" href="settings-ip-tunnel.html">ip-tunnel</a>, <a class="indexterm" href="settings-vlan.html">vlan</a>
 </dt>
-<dt id="ientry-idm45053441278560">flow-label, <a class="indexterm" href="settings-ip-tunnel.html">ip-tunnel</a>
+<dt id="ientry-idm45099794580960">flow-label, <a class="indexterm" href="settings-ip-tunnel.html">ip-tunnel</a>
 </dt>
-<dt id="ientry-idm45053441687984">forward-delay, <a class="indexterm" href="settings-bridge.html">bridge</a>
+<dt id="ientry-idm45099794988384">forward-delay, <a class="indexterm" href="settings-bridge.html">bridge</a>
 </dt>
 </dl>
 </div>
 <div class="indexdiv">
 <h3>G</h3>
 <dl>
-<dt id="ientry-idm45053441425104">gateway, <a class="indexterm" href="settings-ipv4.html">ipv4</a>, <a class="indexterm" href="settings-ipv6.html">ipv6</a>
+<dt id="ientry-idm45099794726096">gateway, <a class="indexterm" href="settings-ipv4.html">ipv4</a>, <a class="indexterm" href="settings-ipv6.html">ipv6</a>
 </dt>
-<dt id="ientry-idm45053445376528">gateway-ping-timeout, <a class="indexterm" href="settings-connection.html">connection</a>
+<dt id="ientry-idm45099800694160">gateway-ping-timeout, <a class="indexterm" href="settings-connection.html">connection</a>
 </dt>
-<dt id="ientry-idm45053440617024">generate-mac-address-mask, <a class="indexterm" href="settings-802-3-ethernet.html">802-3-ethernet</a>, <a class="indexterm" href="settings-802-11-wireless.html">802-11-wireless</a>
+<dt id="ientry-idm45099793923840">generate-mac-address-mask, <a class="indexterm" href="settings-802-3-ethernet.html">802-3-ethernet</a>, <a class="indexterm" href="settings-802-11-wireless.html">802-11-wireless</a>
 </dt>
-<dt id="ientry-idm45053440807760">group, <a class="indexterm" href="settings-tun.html">tun</a>, <a class="indexterm" href="settings-802-11-wireless-security.html">802-11-wireless-security</a>
+<dt id="ientry-idm45099794115264">group, <a class="indexterm" href="settings-tun.html">tun</a>, <a class="indexterm" href="settings-802-11-wireless-security.html">802-11-wireless-security</a>
 </dt>
-<dt id="ientry-idm45053441684496">group-forward-mask, <a class="indexterm" href="settings-bridge.html">bridge</a>
+<dt id="ientry-idm45099794984896">group-forward-mask, <a class="indexterm" href="settings-bridge.html">bridge</a>
 </dt>
 </dl>
 </div>
 <div class="indexdiv">
 <h3>H</h3>
 <dl>
-<dt id="ientry-idm45053441651760">hairpin-mode, <a class="indexterm" href="settings-bridge-port.html">bridge-port</a>
+<dt id="ientry-idm45099794952064">hairpin-mode, <a class="indexterm" href="settings-bridge-port.html">bridge-port</a>
 </dt>
-<dt id="ientry-idm45053441680624">hello-time, <a class="indexterm" href="settings-bridge.html">bridge</a>
+<dt id="ientry-idm45099794981024">hello-time, <a class="indexterm" href="settings-bridge.html">bridge</a>
 </dt>
-<dt id="ientry-idm45053440540912">hidden, <a class="indexterm" href="settings-802-11-wireless.html">802-11-wireless</a>
+<dt id="ientry-idm45099793847792">hidden, <a class="indexterm" href="settings-802-11-wireless.html">802-11-wireless</a>
 </dt>
-<dt id="ientry-idm45053441536080">home-only, <a class="indexterm" href="settings-gsm.html">gsm</a>
+<dt id="ientry-idm45099794836704">home-only, <a class="indexterm" href="settings-gsm.html">gsm</a>
 </dt>
 </dl>
 </div>
 <div class="indexdiv">
 <h3>I</h3>
 <dl>
-<dt id="ientry-idm45053445372688">id, <a class="indexterm" href="settings-connection.html">connection</a>, <a class="indexterm" href="settings-vlan.html">vlan</a>, <a class="indexterm" href="settings-vxlan.html">vxlan</a>
+<dt id="ientry-idm45099805922432">id, <a class="indexterm" href="settings-connection.html">connection</a>, <a class="indexterm" href="settings-vlan.html">vlan</a>, <a class="indexterm" href="settings-vxlan.html">vxlan</a>
 </dt>
-<dt id="ientry-idm45053443618400">identity, <a class="indexterm" href="settings-802-1x.html">802-1x</a>
+<dt id="ientry-idm45099796881600">identity, <a class="indexterm" href="settings-802-1x.html">802-1x</a>
 </dt>
-<dt id="ientry-idm45053441421632">ignore-auto-dns, <a class="indexterm" href="settings-ipv4.html">ipv4</a>, <a class="indexterm" href="settings-ipv6.html">ipv6</a>
+<dt id="ientry-idm45099794722624">ignore-auto-dns, <a class="indexterm" href="settings-ipv4.html">ipv4</a>, <a class="indexterm" href="settings-ipv6.html">ipv6</a>
 </dt>
-<dt id="ientry-idm45053441417888">ignore-auto-routes, <a class="indexterm" href="settings-ipv4.html">ipv4</a>, <a class="indexterm" href="settings-ipv6.html">ipv6</a>
+<dt id="ientry-idm45099794718880">ignore-auto-routes, <a class="indexterm" href="settings-ipv4.html">ipv4</a>, <a class="indexterm" href="settings-ipv6.html">ipv6</a>
 </dt>
-<dt id="ientry-idm45053440758448">ingress-priority-map, <a class="indexterm" href="settings-vlan.html">vlan</a>
+<dt id="ientry-idm45099794065952">ingress-priority-map, <a class="indexterm" href="settings-vlan.html">vlan</a>
 </dt>
-<dt id="ientry-idm45053441274976">input-key, <a class="indexterm" href="settings-ip-tunnel.html">ip-tunnel</a>
+<dt id="ientry-idm45099794577376">input-key, <a class="indexterm" href="settings-ip-tunnel.html">ip-tunnel</a>
 </dt>
-<dt id="ientry-idm45053445368896">interface-name, <a class="indexterm" href="settings-connection.html">connection</a>, <a class="indexterm" href="settings-bond.html">bond</a>, <a class="indexterm" href="settings-bridge.html">bridge</a>, <a class="indexterm" href="settings-match.html">match</a>, <a class="indexterm" href="settings-team.html">team</a>, <a class="indexterm" href="settings-vlan.html">vlan</a>
+<dt id="ientry-idm45099805918640">interface-name, <a class="indexterm" href="settings-connection.html">connection</a>, <a class="indexterm" href="settings-bond.html">bond</a>, <a class="indexterm" href="settings-bridge.html">bridge</a>, <a class="indexterm" href="settings-match.html">match</a>, <a class="indexterm" href="settings-team.html">team</a>, <a class="indexterm" href="settings-vlan.html">vlan</a>
 </dt>
-<dt id="ientry-idm45053441323872">ip6-privacy, <a class="indexterm" href="settings-ipv6.html">ipv6</a>
+<dt id="ientry-idm45099794626272">ip6-privacy, <a class="indexterm" href="settings-ipv6.html">ipv6</a>
 </dt>
 </dl>
 </div>
 <div class="indexdiv">
 <h3>K</h3>
-<dl><dt id="ientry-idm45053440470752">key-mgmt, <a class="indexterm" href="settings-802-11-wireless-security.html">802-11-wireless-security</a>
+<dl><dt id="ientry-idm45099793777568">key-mgmt, <a class="indexterm" href="settings-802-11-wireless-security.html">802-11-wireless-security</a>
 </dt></dl>
 </div>
 <div class="indexdiv">
 <h3>L</h3>
 <dl>
-<dt id="ientry-idm45053440700944">l2-miss, <a class="indexterm" href="settings-vxlan.html">vxlan</a>
+<dt id="ientry-idm45099794008512">l2-miss, <a class="indexterm" href="settings-vxlan.html">vxlan</a>
 </dt>
-<dt id="ientry-idm45053440697024">l3-miss, <a class="indexterm" href="settings-vxlan.html">vxlan</a>
+<dt id="ientry-idm45099794004592">l3-miss, <a class="indexterm" href="settings-vxlan.html">vxlan</a>
 </dt>
-<dt id="ientry-idm45053441104016">lacp, <a class="indexterm" href="settings-ovs-port.html">ovs-port</a>
+<dt id="ientry-idm45099794411904">lacp, <a class="indexterm" href="settings-ovs-port.html">ovs-port</a>
 </dt>
-<dt id="ientry-idm45053440836656">lacp-key, <a class="indexterm" href="settings-team-port.html">team-port</a>
+<dt id="ientry-idm45099794144096">lacp-key, <a class="indexterm" href="settings-team-port.html">team-port</a>
 </dt>
-<dt id="ientry-idm45053440832752">lacp-prio, <a class="indexterm" href="settings-team-port.html">team-port</a>
+<dt id="ientry-idm45099794140192">lacp-prio, <a class="indexterm" href="settings-team-port.html">team-port</a>
 </dt>
-<dt id="ientry-idm45053441079824">lcp-echo-failure, <a class="indexterm" href="settings-ppp.html">ppp</a>
+<dt id="ientry-idm45099794387776">lcp-echo-failure, <a class="indexterm" href="settings-ppp.html">ppp</a>
 </dt>
-<dt id="ientry-idm45053441075728">lcp-echo-interval, <a class="indexterm" href="settings-ppp.html">ppp</a>
+<dt id="ientry-idm45099794383680">lcp-echo-interval, <a class="indexterm" href="settings-ppp.html">ppp</a>
 </dt>
-<dt id="ientry-idm45053440466784">leap-password, <a class="indexterm" href="settings-802-11-wireless-security.html">802-11-wireless-security</a>
+<dt id="ientry-idm45099793773600">leap-password, <a class="indexterm" href="settings-802-11-wireless-security.html">802-11-wireless-security</a>
 </dt>
-<dt id="ientry-idm45053440462976">leap-password-flags, <a class="indexterm" href="settings-802-11-wireless-security.html">802-11-wireless-security</a>
+<dt id="ientry-idm45099793769792">leap-password-flags, <a class="indexterm" href="settings-802-11-wireless-security.html">802-11-wireless-security</a>
 </dt>
-<dt id="ientry-idm45053440459184">leap-username, <a class="indexterm" href="settings-802-11-wireless-security.html">802-11-wireless-security</a>
+<dt id="ientry-idm45099793766000">leap-username, <a class="indexterm" href="settings-802-11-wireless-security.html">802-11-wireless-security</a>
 </dt>
-<dt id="ientry-idm45053440693104">learning, <a class="indexterm" href="settings-vxlan.html">vxlan</a>
+<dt id="ientry-idm45099794000672">learning, <a class="indexterm" href="settings-vxlan.html">vxlan</a>
 </dt>
-<dt id="ientry-idm45053440689120">limit, <a class="indexterm" href="settings-vxlan.html">vxlan</a>
+<dt id="ientry-idm45099793996688">limit, <a class="indexterm" href="settings-vxlan.html">vxlan</a>
 </dt>
-<dt id="ientry-idm45053440904448">link-watchers, <a class="indexterm" href="settings-team.html">team</a>, <a class="indexterm" href="settings-team-port.html">team-port</a>
+<dt id="ientry-idm45099794211952">link-watchers, <a class="indexterm" href="settings-team.html">team</a>, <a class="indexterm" href="settings-team-port.html">team-port</a>
 </dt>
-<dt id="ientry-idm45053445365216">lldp, <a class="indexterm" href="settings-connection.html">connection</a>
+<dt id="ientry-idm45099805914960">lldp, <a class="indexterm" href="settings-connection.html">connection</a>
 </dt>
-<dt id="ientry-idm45053445361376">llmnr, <a class="indexterm" href="settings-connection.html">connection</a>
+<dt id="ientry-idm45099805911120">llmnr, <a class="indexterm" href="settings-connection.html">connection</a>
 </dt>
-<dt id="ientry-idm45053441271472">local, <a class="indexterm" href="settings-ip-tunnel.html">ip-tunnel</a>, <a class="indexterm" href="settings-vxlan.html">vxlan</a>
+<dt id="ientry-idm45099794573872">local, <a class="indexterm" href="settings-ip-tunnel.html">ip-tunnel</a>, <a class="indexterm" href="settings-vxlan.html">vxlan</a>
 </dt>
 </dl>
 </div>
 <div class="indexdiv">
 <h3>M</h3>
 <dl>
-<dt id="ientry-idm45053441673616">mac-address, <a class="indexterm" href="settings-bridge.html">bridge</a>, <a class="indexterm" href="settings-infiniband.html">infiniband</a>, <a class="indexterm" href="settings-wimax.html">wimax</a>, <a class="indexterm" href="settings-802-3-ethernet.html">802-3-ethernet</a>, <a class="indexterm" href="settings-802-11-wireless.html">802-11-wireless</a>, <a class="indexterm" href="settings-wpan.html">wpan</a>
+<dt id="ientry-idm45099794974016">mac-address, <a class="indexterm" href="settings-bridge.html">bridge</a>, <a class="indexterm" href="settings-infiniband.html">infiniband</a>, <a class="indexterm" href="settings-wimax.html">wimax</a>, <a class="indexterm" href="settings-802-3-ethernet.html">802-3-ethernet</a>, <a class="indexterm" href="settings-802-11-wireless.html">802-11-wireless</a>, <a class="indexterm" href="settings-wpan.html">wpan</a>
 </dt>
-<dt id="ientry-idm45053440607792">mac-address-blacklist, <a class="indexterm" href="settings-802-3-ethernet.html">802-3-ethernet</a>, <a class="indexterm" href="settings-802-11-wireless.html">802-11-wireless</a>
+<dt id="ientry-idm45099793914608">mac-address-blacklist, <a class="indexterm" href="settings-802-3-ethernet.html">802-3-ethernet</a>, <a class="indexterm" href="settings-802-11-wireless.html">802-11-wireless</a>
 </dt>
-<dt id="ientry-idm45053440529072">mac-address-randomization, <a class="indexterm" href="settings-802-11-wireless.html">802-11-wireless</a>
+<dt id="ientry-idm45099793835952">mac-address-randomization, <a class="indexterm" href="settings-802-11-wireless.html">802-11-wireless</a>
 </dt>
-<dt id="ientry-idm45053450892832">org.freedesktop.NetworkManager, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.html#gdbus-interface-org-freedesktop-NetworkManager.top_of_page">org.freedesktop.NetworkManager</a>
+<dt id="ientry-idm45099805635568">org.freedesktop.NetworkManager, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.html#gdbus-interface-org-freedesktop-NetworkManager.top_of_page">org.freedesktop.NetworkManager</a>
 </dt>
-<dt id="ientry-idm45053445152080">org.freedesktop.NetworkManager.ActivateConnection(), <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.html#gdbus-method-org-freedesktop-NetworkManager.ActivateConnection">The ActivateConnection() method</a>
+<dt id="ientry-idm45099802432768">org.freedesktop.NetworkManager.ActivateConnection(), <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.html#gdbus-method-org-freedesktop-NetworkManager.ActivateConnection">The ActivateConnection() method</a>
 </dt>
-<dt id="ientry-idm45053448460896">org.freedesktop.NetworkManager.AddAndActivateConnection(), <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.html#gdbus-method-org-freedesktop-NetworkManager.AddAndActivateConnection">The AddAndActivateConnection() method</a>
+<dt id="ientry-idm45099798025296">org.freedesktop.NetworkManager.AddAndActivateConnection(), <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.html#gdbus-method-org-freedesktop-NetworkManager.AddAndActivateConnection">The AddAndActivateConnection() method</a>
 </dt>
-<dt id="ientry-idm45053447884176">org.freedesktop.NetworkManager.CheckConnectivity(), <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.html#gdbus-method-org-freedesktop-NetworkManager.CheckConnectivity">The CheckConnectivity() method</a>
+<dt id="ientry-idm45099798169296">org.freedesktop.NetworkManager.CheckConnectivity(), <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.html#gdbus-method-org-freedesktop-NetworkManager.CheckConnectivity">The CheckConnectivity() method</a>
 </dt>
-<dt id="ientry-idm45053444980912">org.freedesktop.NetworkManager.CheckpointAdjustRollbackTimeout(), <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.html#gdbus-method-org-freedesktop-NetworkManager.CheckpointAdjustRollbackTimeout">The CheckpointAdjustRollbackTimeout() method</a>
+<dt id="ientry-idm45099798046544">org.freedesktop.NetworkManager.CheckpointAdjustRollbackTimeout(), <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.html#gdbus-method-org-freedesktop-NetworkManager.CheckpointAdjustRollbackTimeout">The CheckpointAdjustRollbackTimeout() method</a>
 </dt>
-<dt id="ientry-idm45053445132352">org.freedesktop.NetworkManager.CheckpointCreate(), <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.html#gdbus-method-org-freedesktop-NetworkManager.CheckpointCreate">The CheckpointCreate() method</a>
+<dt id="ientry-idm45099798431392">org.freedesktop.NetworkManager.CheckpointCreate(), <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.html#gdbus-method-org-freedesktop-NetworkManager.CheckpointCreate">The CheckpointCreate() method</a>
 </dt>
-<dt id="ientry-idm45053444819520">org.freedesktop.NetworkManager.CheckpointDestroy(), <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.html#gdbus-method-org-freedesktop-NetworkManager.CheckpointDestroy">The CheckpointDestroy() method</a>
+<dt id="ientry-idm45099800674192">org.freedesktop.NetworkManager.CheckpointDestroy(), <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.html#gdbus-method-org-freedesktop-NetworkManager.CheckpointDestroy">The CheckpointDestroy() method</a>
 </dt>
-<dt id="ientry-idm45053444991936">org.freedesktop.NetworkManager.CheckpointRollback(), <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.html#gdbus-method-org-freedesktop-NetworkManager.CheckpointRollback">The CheckpointRollback() method</a>
+<dt id="ientry-idm45099800666752">org.freedesktop.NetworkManager.CheckpointRollback(), <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.html#gdbus-method-org-freedesktop-NetworkManager.CheckpointRollback">The CheckpointRollback() method</a>
 </dt>
-<dt id="ientry-idm45053444702592">org.freedesktop.NetworkManager.DeactivateConnection(), <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.html#gdbus-method-org-freedesktop-NetworkManager.DeactivateConnection">The DeactivateConnection() method</a>
+<dt id="ientry-idm45099800480864">org.freedesktop.NetworkManager.DeactivateConnection(), <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.html#gdbus-method-org-freedesktop-NetworkManager.DeactivateConnection">The DeactivateConnection() method</a>
 </dt>
-<dt id="ientry-idm45053458388896">org.freedesktop.NetworkManager.Enable(), <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.html#gdbus-method-org-freedesktop-NetworkManager.Enable">The Enable() method</a>
+<dt id="ientry-idm45099801790672">org.freedesktop.NetworkManager.Enable(), <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.html#gdbus-method-org-freedesktop-NetworkManager.Enable">The Enable() method</a>
 </dt>
-<dt id="ientry-idm45053445116720">org.freedesktop.NetworkManager.GetAllDevices(), <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.html#gdbus-method-org-freedesktop-NetworkManager.GetAllDevices">The GetAllDevices() method</a>
+<dt id="ientry-idm45099800500528">org.freedesktop.NetworkManager.GetAllDevices(), <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.html#gdbus-method-org-freedesktop-NetworkManager.GetAllDevices">The GetAllDevices() method</a>
 </dt>
-<dt id="ientry-idm45053445162208">org.freedesktop.NetworkManager.GetDeviceByIpIface(), <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.html#gdbus-method-org-freedesktop-NetworkManager.GetDeviceByIpIface">The GetDeviceByIpIface() method</a>
+<dt id="ientry-idm45099802107440">org.freedesktop.NetworkManager.GetDeviceByIpIface(), <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.html#gdbus-method-org-freedesktop-NetworkManager.GetDeviceByIpIface">The GetDeviceByIpIface() method</a>
 </dt>
-<dt id="ientry-idm45053447424896">org.freedesktop.NetworkManager.GetDevices(), <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.html#gdbus-method-org-freedesktop-NetworkManager.GetDevices">The GetDevices() method</a>
+<dt id="ientry-idm45099800508096">org.freedesktop.NetworkManager.GetDevices(), <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.html#gdbus-method-org-freedesktop-NetworkManager.GetDevices">The GetDevices() method</a>
 </dt>
-<dt id="ientry-idm45053447846416">org.freedesktop.NetworkManager.GetLogging(), <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.html#gdbus-method-org-freedesktop-NetworkManager.GetLogging">The GetLogging() method</a>
+<dt id="ientry-idm45099805868496">org.freedesktop.NetworkManager.GetLogging(), <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.html#gdbus-method-org-freedesktop-NetworkManager.GetLogging">The GetLogging() method</a>
 </dt>
-<dt id="ientry-idm45053453091088">org.freedesktop.NetworkManager.GetPermissions(), <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.html#gdbus-method-org-freedesktop-NetworkManager.GetPermissions">The GetPermissions() method</a>
+<dt id="ientry-idm45099801690400">org.freedesktop.NetworkManager.GetPermissions(), <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.html#gdbus-method-org-freedesktop-NetworkManager.GetPermissions">The GetPermissions() method</a>
 </dt>
-<dt id="ientry-idm45053445040160">org.freedesktop.NetworkManager.Reload(), <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.html#gdbus-method-org-freedesktop-NetworkManager.Reload">The Reload() method</a>
+<dt id="ientry-idm45099798134544">org.freedesktop.NetworkManager.Reload(), <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.html#gdbus-method-org-freedesktop-NetworkManager.Reload">The Reload() method</a>
 </dt>
-<dt id="ientry-idm45053453083744">org.freedesktop.NetworkManager.SetLogging(), <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.html#gdbus-method-org-freedesktop-NetworkManager.SetLogging">The SetLogging() method</a>
+<dt id="ientry-idm45099800548672">org.freedesktop.NetworkManager.SetLogging(), <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.html#gdbus-method-org-freedesktop-NetworkManager.SetLogging">The SetLogging() method</a>
 </dt>
-<dt id="ientry-idm45053458396064">org.freedesktop.NetworkManager.Sleep(), <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.html#gdbus-method-org-freedesktop-NetworkManager.Sleep">The Sleep() method</a>
+<dt id="ientry-idm45099801797952">org.freedesktop.NetworkManager.Sleep(), <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.html#gdbus-method-org-freedesktop-NetworkManager.Sleep">The Sleep() method</a>
 </dt>
-<dt id="ientry-idm45053447876272">org.freedesktop.NetworkManager.state(), <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.html#gdbus-method-org-freedesktop-NetworkManager.state">The state() method</a>
+<dt id="ientry-idm45099798161392">org.freedesktop.NetworkManager.state(), <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.html#gdbus-method-org-freedesktop-NetworkManager.state">The state() method</a>
 </dt>
-<dt id="ientry-idm45053444848288">org.freedesktop.NetworkManager::CheckPermissions, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.html#gdbus-signal-org-freedesktop-NetworkManager.CheckPermissions">The "CheckPermissions" signal</a>
+<dt id="ientry-idm45099798177360">org.freedesktop.NetworkManager::CheckPermissions, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.html#gdbus-signal-org-freedesktop-NetworkManager.CheckPermissions">The "CheckPermissions" signal</a>
 </dt>
-<dt id="ientry-idm45053445081232">org.freedesktop.NetworkManager::DeviceAdded, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.html#gdbus-signal-org-freedesktop-NetworkManager.DeviceAdded">The "DeviceAdded" signal</a>
+<dt id="ientry-idm45099798035072">org.freedesktop.NetworkManager::DeviceAdded, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.html#gdbus-signal-org-freedesktop-NetworkManager.DeviceAdded">The "DeviceAdded" signal</a>
 </dt>
-<dt id="ientry-idm45053445073712">org.freedesktop.NetworkManager::DeviceRemoved, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.html#gdbus-signal-org-freedesktop-NetworkManager.DeviceRemoved">The "DeviceRemoved" signal</a>
+<dt id="ientry-idm45099800843632">org.freedesktop.NetworkManager::DeviceRemoved, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.html#gdbus-signal-org-freedesktop-NetworkManager.DeviceRemoved">The "DeviceRemoved" signal</a>
 </dt>
-<dt id="ientry-idm45053445088464">org.freedesktop.NetworkManager::PropertiesChanged, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.html#gdbus-signal-org-freedesktop-NetworkManager.PropertiesChanged">The "PropertiesChanged" signal</a>
+<dt id="ientry-idm45099800682464">org.freedesktop.NetworkManager::PropertiesChanged, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.html#gdbus-signal-org-freedesktop-NetworkManager.PropertiesChanged">The "PropertiesChanged" signal</a>
 </dt>
-<dt id="ientry-idm45053444843984">org.freedesktop.NetworkManager::StateChanged, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.html#gdbus-signal-org-freedesktop-NetworkManager.StateChanged">The "StateChanged" signal</a>
+<dt id="ientry-idm45099800690656">org.freedesktop.NetworkManager::StateChanged, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.html#gdbus-signal-org-freedesktop-NetworkManager.StateChanged">The "StateChanged" signal</a>
 </dt>
-<dt id="ientry-idm45053444617920">org.freedesktop.NetworkManager:ActivatingConnection, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.html#gdbus-property-org-freedesktop-NetworkManager.ActivatingConnection">The "ActivatingConnection" property</a>
+<dt id="ientry-idm45099798410720">org.freedesktop.NetworkManager:ActivatingConnection, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.html#gdbus-property-org-freedesktop-NetworkManager.ActivatingConnection">The "ActivatingConnection" property</a>
 </dt>
-<dt id="ientry-idm45053445201968">org.freedesktop.NetworkManager:ActiveConnections, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.html#gdbus-property-org-freedesktop-NetworkManager.ActiveConnections">The "ActiveConnections" property</a>
+<dt id="ientry-idm45099797895024">org.freedesktop.NetworkManager:ActiveConnections, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.html#gdbus-property-org-freedesktop-NetworkManager.ActiveConnections">The "ActiveConnections" property</a>
 </dt>
-<dt id="ientry-idm45053445520400">org.freedesktop.NetworkManager:AllDevices, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.html#gdbus-property-org-freedesktop-NetworkManager.AllDevices">The "AllDevices" property</a>
+<dt id="ientry-idm45099795532512">org.freedesktop.NetworkManager:AllDevices, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.html#gdbus-property-org-freedesktop-NetworkManager.AllDevices">The "AllDevices" property</a>
 </dt>
-<dt id="ientry-idm45053445654496">org.freedesktop.NetworkManager:Capabilities, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.html#gdbus-property-org-freedesktop-NetworkManager.Capabilities">The "Capabilities" property</a>
+<dt id="ientry-idm45099797863152">org.freedesktop.NetworkManager:Capabilities, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.html#gdbus-property-org-freedesktop-NetworkManager.Capabilities">The "Capabilities" property</a>
 </dt>
-<dt id="ientry-idm45053445516000">org.freedesktop.NetworkManager:Checkpoints, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.html#gdbus-property-org-freedesktop-NetworkManager.Checkpoints">The "Checkpoints" property</a>
+<dt id="ientry-idm45099795528368">org.freedesktop.NetworkManager:Checkpoints, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.html#gdbus-property-org-freedesktop-NetworkManager.Checkpoints">The "Checkpoints" property</a>
 </dt>
-<dt id="ientry-idm45053445644000">org.freedesktop.NetworkManager:Connectivity, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.html#gdbus-property-org-freedesktop-NetworkManager.Connectivity">The "Connectivity" property</a>
+<dt id="ientry-idm45099806596224">org.freedesktop.NetworkManager:Connectivity, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.html#gdbus-property-org-freedesktop-NetworkManager.Connectivity">The "Connectivity" property</a>
 </dt>
-<dt id="ientry-idm45053444677504">org.freedesktop.NetworkManager:ConnectivityCheckAvailable, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.html#gdbus-property-org-freedesktop-NetworkManager.ConnectivityCheckAvailable">The "ConnectivityCheckAvailable" property</a>
+<dt id="ientry-idm45099806590128">org.freedesktop.NetworkManager:ConnectivityCheckAvailable, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.html#gdbus-property-org-freedesktop-NetworkManager.ConnectivityCheckAvailable">The "ConnectivityCheckAvailable" property</a>
 </dt>
-<dt id="ientry-idm45053444673056">org.freedesktop.NetworkManager:ConnectivityCheckEnabled, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.html#gdbus-property-org-freedesktop-NetworkManager.ConnectivityCheckEnabled">The "ConnectivityCheckEnabled" property</a>
+<dt id="ientry-idm45099805859920">org.freedesktop.NetworkManager:ConnectivityCheckEnabled, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.html#gdbus-property-org-freedesktop-NetworkManager.ConnectivityCheckEnabled">The "ConnectivityCheckEnabled" property</a>
 </dt>
-<dt id="ientry-idm45053445064768">org.freedesktop.NetworkManager:Devices, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.html#gdbus-property-org-freedesktop-NetworkManager.Devices">The "Devices" property</a>
+<dt id="ientry-idm45099800834720">org.freedesktop.NetworkManager:Devices, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.html#gdbus-property-org-freedesktop-NetworkManager.Devices">The "Devices" property</a>
 </dt>
-<dt id="ientry-idm45053444668736">org.freedesktop.NetworkManager:GlobalDnsConfiguration, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.html#gdbus-property-org-freedesktop-NetworkManager.GlobalDnsConfiguration">The "GlobalDnsConfiguration" property</a>
+<dt id="ientry-idm45099805855600">org.freedesktop.NetworkManager:GlobalDnsConfiguration, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.html#gdbus-property-org-freedesktop-NetworkManager.GlobalDnsConfiguration">The "GlobalDnsConfiguration" property</a>
 </dt>
-<dt id="ientry-idm45053444623104">org.freedesktop.NetworkManager:Metered, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.html#gdbus-property-org-freedesktop-NetworkManager.Metered">The "Metered" property</a>
+<dt id="ientry-idm45099798415904">org.freedesktop.NetworkManager:Metered, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.html#gdbus-property-org-freedesktop-NetworkManager.Metered">The "Metered" property</a>
 </dt>
-<dt id="ientry-idm45053445511856">org.freedesktop.NetworkManager:NetworkingEnabled, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.html#gdbus-property-org-freedesktop-NetworkManager.NetworkingEnabled">The "NetworkingEnabled" property</a>
+<dt id="ientry-idm45099795524224">org.freedesktop.NetworkManager:NetworkingEnabled, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.html#gdbus-property-org-freedesktop-NetworkManager.NetworkingEnabled">The "NetworkingEnabled" property</a>
 </dt>
-<dt id="ientry-idm45053445197808">org.freedesktop.NetworkManager:PrimaryConnection, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.html#gdbus-property-org-freedesktop-NetworkManager.PrimaryConnection">The "PrimaryConnection" property</a>
+<dt id="ientry-idm45099798424176">org.freedesktop.NetworkManager:PrimaryConnection, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.html#gdbus-property-org-freedesktop-NetworkManager.PrimaryConnection">The "PrimaryConnection" property</a>
 </dt>
-<dt id="ientry-idm45053444627216">org.freedesktop.NetworkManager:PrimaryConnectionType, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.html#gdbus-property-org-freedesktop-NetworkManager.PrimaryConnectionType">The "PrimaryConnectionType" property</a>
+<dt id="ientry-idm45099798420016">org.freedesktop.NetworkManager:PrimaryConnectionType, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.html#gdbus-property-org-freedesktop-NetworkManager.PrimaryConnectionType">The "PrimaryConnectionType" property</a>
 </dt>
-<dt id="ientry-idm45053444613808">org.freedesktop.NetworkManager:Startup, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.html#gdbus-property-org-freedesktop-NetworkManager.Startup">The "Startup" property</a>
+<dt id="ientry-idm45099797871504">org.freedesktop.NetworkManager:Startup, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.html#gdbus-property-org-freedesktop-NetworkManager.Startup">The "Startup" property</a>
 </dt>
-<dt id="ientry-idm45053445649776">org.freedesktop.NetworkManager:State, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.html#gdbus-property-org-freedesktop-NetworkManager.State">The "State" property</a>
+<dt id="ientry-idm45099806602000">org.freedesktop.NetworkManager:State, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.html#gdbus-property-org-freedesktop-NetworkManager.State">The "State" property</a>
 </dt>
-<dt id="ientry-idm45053445658720">org.freedesktop.NetworkManager:Version, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.html#gdbus-property-org-freedesktop-NetworkManager.Version">The "Version" property</a>
+<dt id="ientry-idm45099797867376">org.freedesktop.NetworkManager:Version, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.html#gdbus-property-org-freedesktop-NetworkManager.Version">The "Version" property</a>
 </dt>
-<dt id="ientry-idm45053445210400">org.freedesktop.NetworkManager:WimaxEnabled, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.html#gdbus-property-org-freedesktop-NetworkManager.WimaxEnabled">The "WimaxEnabled" property</a>
+<dt id="ientry-idm45099797903536">org.freedesktop.NetworkManager:WimaxEnabled, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.html#gdbus-property-org-freedesktop-NetworkManager.WimaxEnabled">The "WimaxEnabled" property</a>
 </dt>
-<dt id="ientry-idm45053445206256">org.freedesktop.NetworkManager:WimaxHardwareEnabled, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.html#gdbus-property-org-freedesktop-NetworkManager.WimaxHardwareEnabled">The "WimaxHardwareEnabled" property</a>
+<dt id="ientry-idm45099797899312">org.freedesktop.NetworkManager:WimaxHardwareEnabled, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.html#gdbus-property-org-freedesktop-NetworkManager.WimaxHardwareEnabled">The "WimaxHardwareEnabled" property</a>
 </dt>
-<dt id="ientry-idm45053444736656">org.freedesktop.NetworkManager:WirelessEnabled, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.html#gdbus-property-org-freedesktop-NetworkManager.WirelessEnabled">The "WirelessEnabled" property</a>
+<dt id="ientry-idm45099795519952">org.freedesktop.NetworkManager:WirelessEnabled, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.html#gdbus-property-org-freedesktop-NetworkManager.WirelessEnabled">The "WirelessEnabled" property</a>
 </dt>
-<dt id="ientry-idm45053444732432">org.freedesktop.NetworkManager:WirelessHardwareEnabled, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.html#gdbus-property-org-freedesktop-NetworkManager.WirelessHardwareEnabled">The "WirelessHardwareEnabled" property</a>
+<dt id="ientry-idm45099798154304">org.freedesktop.NetworkManager:WirelessHardwareEnabled, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.html#gdbus-property-org-freedesktop-NetworkManager.WirelessHardwareEnabled">The "WirelessHardwareEnabled" property</a>
 </dt>
-<dt id="ientry-idm45053444728144">org.freedesktop.NetworkManager:WwanEnabled, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.html#gdbus-property-org-freedesktop-NetworkManager.WwanEnabled">The "WwanEnabled" property</a>
+<dt id="ientry-idm45099798150016">org.freedesktop.NetworkManager:WwanEnabled, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.html#gdbus-property-org-freedesktop-NetworkManager.WwanEnabled">The "WwanEnabled" property</a>
 </dt>
-<dt id="ientry-idm45053444724000">org.freedesktop.NetworkManager:WwanHardwareEnabled, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.html#gdbus-property-org-freedesktop-NetworkManager.WwanHardwareEnabled">The "WwanHardwareEnabled" property</a>
+<dt id="ientry-idm45099798145776">org.freedesktop.NetworkManager:WwanHardwareEnabled, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.html#gdbus-property-org-freedesktop-NetworkManager.WwanHardwareEnabled">The "WwanHardwareEnabled" property</a>
 </dt>
-<dt id="ientry-idm45053447806832">master, <a class="indexterm" href="settings-connection.html">connection</a>
+<dt id="ientry-idm45099797988416">master, <a class="indexterm" href="settings-connection.html">connection</a>
 </dt>
-<dt id="ientry-idm45053441670256">max-age, <a class="indexterm" href="settings-bridge.html">bridge</a>
+<dt id="ientry-idm45099794970656">max-age, <a class="indexterm" href="settings-bridge.html">bridge</a>
 </dt>
-<dt id="ientry-idm45053441414208">may-fail, <a class="indexterm" href="settings-ipv4.html">ipv4</a>, <a class="indexterm" href="settings-ipv6.html">ipv6</a>
+<dt id="ientry-idm45099794715200">may-fail, <a class="indexterm" href="settings-ipv4.html">ipv4</a>, <a class="indexterm" href="settings-ipv6.html">ipv6</a>
 </dt>
-<dt id="ientry-idm45053440900048">mcast-rejoin-count, <a class="indexterm" href="settings-team.html">team</a>
+<dt id="ientry-idm45099794207552">mcast-rejoin-count, <a class="indexterm" href="settings-team.html">team</a>
 </dt>
-<dt id="ientry-idm45053440896144">mcast-rejoin-interval, <a class="indexterm" href="settings-team.html">team</a>
+<dt id="ientry-idm45099794203648">mcast-rejoin-interval, <a class="indexterm" href="settings-team.html">team</a>
 </dt>
-<dt id="ientry-idm45053441149632">mcast-snooping-enable, <a class="indexterm" href="settings-ovs-bridge.html">ovs-bridge</a>
+<dt id="ientry-idm45099794457200">mcast-snooping-enable, <a class="indexterm" href="settings-ovs-bridge.html">ovs-bridge</a>
 </dt>
-<dt id="ientry-idm45053447803152">mdns, <a class="indexterm" href="settings-connection.html">connection</a>
+<dt id="ientry-idm45099797984736">mdns, <a class="indexterm" href="settings-connection.html">connection</a>
 </dt>
-<dt id="ientry-idm45053447799312">metered, <a class="indexterm" href="settings-connection.html">connection</a>
+<dt id="ientry-idm45099797980896">metered, <a class="indexterm" href="settings-connection.html">connection</a>
 </dt>
-<dt id="ientry-idm45053441410256">method, <a class="indexterm" href="settings-ipv4.html">ipv4</a>, <a class="indexterm" href="settings-ipv6.html">ipv6</a>, <a class="indexterm" href="settings-proxy.html">proxy</a>
+<dt id="ientry-idm45099794711248">method, <a class="indexterm" href="settings-ipv4.html">ipv4</a>, <a class="indexterm" href="settings-ipv6.html">ipv6</a>, <a class="indexterm" href="settings-proxy.html">proxy</a>
 </dt>
-<dt id="ientry-idm45053441231920">mka-cak, <a class="indexterm" href="settings-macsec.html">macsec</a>
+<dt id="ientry-idm45099794534320">mka-cak, <a class="indexterm" href="settings-macsec.html">macsec</a>
 </dt>
-<dt id="ientry-idm45053441228464">mka-cak-flags, <a class="indexterm" href="settings-macsec.html">macsec</a>
+<dt id="ientry-idm45099794530864">mka-cak-flags, <a class="indexterm" href="settings-macsec.html">macsec</a>
 </dt>
-<dt id="ientry-idm45053441225104">mka-ckn, <a class="indexterm" href="settings-macsec.html">macsec</a>
+<dt id="ientry-idm45099794527504">mka-ckn, <a class="indexterm" href="settings-macsec.html">macsec</a>
 </dt>
-<dt id="ientry-idm45053441267984">mode, <a class="indexterm" href="settings-ip-tunnel.html">ip-tunnel</a>, <a class="indexterm" href="settings-macsec.html">macsec</a>, <a class="indexterm" href="settings-macvlan.html">macvlan</a>, <a class="indexterm" href="settings-tun.html">tun</a>, <a class="indexterm" href="settings-802-11-wireless.html">802-11-wireless</a>
+<dt id="ientry-idm45099794570384">mode, <a class="indexterm" href="settings-ip-tunnel.html">ip-tunnel</a>, <a class="indexterm" href="settings-macsec.html">macsec</a>, <a class="indexterm" href="settings-macvlan.html">macvlan</a>, <a class="indexterm" href="settings-tun.html">tun</a>, <a class="indexterm" href="settings-802-11-wireless.html">802-11-wireless</a>
 </dt>
-<dt id="ientry-idm45053441071632">mppe-stateful, <a class="indexterm" href="settings-ppp.html">ppp</a>
+<dt id="ientry-idm45099794379584">mppe-stateful, <a class="indexterm" href="settings-ppp.html">ppp</a>
 </dt>
-<dt id="ientry-idm45053441067680">mru, <a class="indexterm" href="settings-ppp.html">ppp</a>
+<dt id="ientry-idm45099794375632">mru, <a class="indexterm" href="settings-ppp.html">ppp</a>
 </dt>
-<dt id="ientry-idm45053441636816">mtu, <a class="indexterm" href="settings-cdma.html">cdma</a>, <a class="indexterm" href="settings-gsm.html">gsm</a>, <a class="indexterm" href="settings-infiniband.html">infiniband</a>, <a class="indexterm" href="settings-ip-tunnel.html">ip-tunnel</a>, <a class="indexterm" href="settings-ppp.html">ppp</a>, <a class="indexterm" href="settings-802-3-ethernet.html">802-3-ethernet</a>, <a class="indexterm" href="settings-802-11-wireless.html">802-11-wireless</a>
+<dt id="ientry-idm45099794937200">mtu, <a class="indexterm" href="settings-cdma.html">cdma</a>, <a class="indexterm" href="settings-gsm.html">gsm</a>, <a class="indexterm" href="settings-infiniband.html">infiniband</a>, <a class="indexterm" href="settings-ip-tunnel.html">ip-tunnel</a>, <a class="indexterm" href="settings-ppp.html">ppp</a>, <a class="indexterm" href="settings-802-3-ethernet.html">802-3-ethernet</a>, <a class="indexterm" href="settings-802-11-wireless.html">802-11-wireless</a>
 </dt>
-<dt id="ientry-idm45053447795472">multi-connect, <a class="indexterm" href="settings-connection.html">connection</a>
+<dt id="ientry-idm45099797977056">multi-connect, <a class="indexterm" href="settings-connection.html">connection</a>
 </dt>
-<dt id="ientry-idm45053440799920">multi-queue, <a class="indexterm" href="settings-tun.html">tun</a>
+<dt id="ientry-idm45099794107424">multi-queue, <a class="indexterm" href="settings-tun.html">tun</a>
 </dt>
-<dt id="ientry-idm45053441666768">multicast-snooping, <a class="indexterm" href="settings-bridge.html">bridge</a>
+<dt id="ientry-idm45099794967168">multicast-snooping, <a class="indexterm" href="settings-bridge.html">bridge</a>
 </dt>
 </dl>
 </div>
 <div class="indexdiv">
 <h3>N</h3>
 <dl>
-<dt id="ientry-idm45053441528848">network-id, <a class="indexterm" href="settings-gsm.html">gsm</a>
+<dt id="ientry-idm45099794829472">network-id, <a class="indexterm" href="settings-gsm.html">gsm</a>
 </dt>
-<dt id="ientry-idm45053440641344">network-name, <a class="indexterm" href="settings-wimax.html">wimax</a>
+<dt id="ientry-idm45099793948912">network-name, <a class="indexterm" href="settings-wimax.html">wimax</a>
 </dt>
-<dt id="ientry-idm45053441406896">never-default, <a class="indexterm" href="settings-ipv4.html">ipv4</a>, <a class="indexterm" href="settings-ipv6.html">ipv6</a>
+<dt id="ientry-idm45099794707888">never-default, <a class="indexterm" href="settings-ipv4.html">ipv4</a>, <a class="indexterm" href="settings-ipv6.html">ipv6</a>
 </dt>
-<dt id="ientry-idm45053437771760">NM80211ApFlags, <a class="indexterm" href="nm-dbus-types.html#NM80211ApFlags">enum NM80211ApFlags</a>
+<dt id="ientry-idm45099791535488">NM80211ApFlags, <a class="indexterm" href="nm-dbus-types.html#NM80211ApFlags">enum NM80211ApFlags</a>
 </dt>
-<dt id="ientry-idm45053437744736">NM80211ApSecurityFlags, <a class="indexterm" href="nm-dbus-types.html#NM80211ApSecurityFlags">enum NM80211ApSecurityFlags</a>
+<dt id="ientry-idm45099791508464">NM80211ApSecurityFlags, <a class="indexterm" href="nm-dbus-types.html#NM80211ApSecurityFlags">enum NM80211ApSecurityFlags</a>
 </dt>
-<dt id="ientry-idm45053437694960">NM80211Mode, <a class="indexterm" href="nm-dbus-types.html#NM80211Mode">enum NM80211Mode</a>
+<dt id="ientry-idm45099791458688">NM80211Mode, <a class="indexterm" href="nm-dbus-types.html#NM80211Mode">enum NM80211Mode</a>
 </dt>
-<dt id="ientry-idm45053436898000">NMActivationStateFlags, <a class="indexterm" href="nm-dbus-types.html#NMActivationStateFlags">enum NMActivationStateFlags</a>
+<dt id="ientry-idm45099790661792">NMActivationStateFlags, <a class="indexterm" href="nm-dbus-types.html#NMActivationStateFlags">enum NMActivationStateFlags</a>
 </dt>
-<dt id="ientry-idm45053437208496">NMActiveConnectionState, <a class="indexterm" href="nm-dbus-types.html#NMActiveConnectionState">enum NMActiveConnectionState</a>
+<dt id="ientry-idm45099790972224">NMActiveConnectionState, <a class="indexterm" href="nm-dbus-types.html#NMActiveConnectionState">enum NMActiveConnectionState</a>
 </dt>
-<dt id="ientry-idm45053437176928">NMActiveConnectionStateReason, <a class="indexterm" href="nm-dbus-types.html#NMActiveConnectionStateReason">enum NMActiveConnectionStateReason</a>
+<dt id="ientry-idm45099790940720">NMActiveConnectionStateReason, <a class="indexterm" href="nm-dbus-types.html#NMActiveConnectionStateReason">enum NMActiveConnectionStateReason</a>
 </dt>
-<dt id="ientry-idm45053437671136">NMBluetoothCapabilities, <a class="indexterm" href="nm-dbus-types.html#NMBluetoothCapabilities">enum NMBluetoothCapabilities</a>
+<dt id="ientry-idm45099791434864">NMBluetoothCapabilities, <a class="indexterm" href="nm-dbus-types.html#NMBluetoothCapabilities">enum NMBluetoothCapabilities</a>
 </dt>
-<dt id="ientry-idm45053449762048">NMCapability, <a class="indexterm" href="nm-dbus-types.html#NMCapability">enum NMCapability</a>
+<dt id="ientry-idm45099801820240">NMCapability, <a class="indexterm" href="nm-dbus-types.html#NMCapability">enum NMCapability</a>
 </dt>
-<dt id="ientry-idm45053436983056">NMCheckpointCreateFlags, <a class="indexterm" href="nm-dbus-types.html#NMCheckpointCreateFlags">enum NMCheckpointCreateFlags</a>
+<dt id="ientry-idm45099790746912">NMCheckpointCreateFlags, <a class="indexterm" href="nm-dbus-types.html#NMCheckpointCreateFlags">enum NMCheckpointCreateFlags</a>
 </dt>
-<dt id="ientry-idm45053437235152">NMConnectionMultiConnect, <a class="indexterm" href="nm-dbus-types.html#NMConnectionMultiConnect">enum NMConnectionMultiConnect</a>
+<dt id="ientry-idm45099790998816">NMConnectionMultiConnect, <a class="indexterm" href="nm-dbus-types.html#NMConnectionMultiConnect">enum NMConnectionMultiConnect</a>
 </dt>
-<dt id="ientry-idm45053439947408">NMConnectivityState, <a class="indexterm" href="nm-dbus-types.html#NMConnectivityState">enum NMConnectivityState</a>
+<dt id="ientry-idm45099793223968">NMConnectivityState, <a class="indexterm" href="nm-dbus-types.html#NMConnectivityState">enum NMConnectivityState</a>
 </dt>
-<dt id="ientry-idm45053439781136">NMDeviceCapabilities, <a class="indexterm" href="nm-dbus-types.html#NMDeviceCapabilities">enum NMDeviceCapabilities</a>
+<dt id="ientry-idm45099793057648">NMDeviceCapabilities, <a class="indexterm" href="nm-dbus-types.html#NMDeviceCapabilities">enum NMDeviceCapabilities</a>
 </dt>
-<dt id="ientry-idm45053437651136">NMDeviceModemCapabilities, <a class="indexterm" href="nm-dbus-types.html#NMDeviceModemCapabilities">enum NMDeviceModemCapabilities</a>
+<dt id="ientry-idm45099791414864">NMDeviceModemCapabilities, <a class="indexterm" href="nm-dbus-types.html#NMDeviceModemCapabilities">enum NMDeviceModemCapabilities</a>
 </dt>
-<dt id="ientry-idm45053437600112">NMDeviceState, <a class="indexterm" href="nm-dbus-types.html#NMDeviceState">enum NMDeviceState</a>
+<dt id="ientry-idm45099791363840">NMDeviceState, <a class="indexterm" href="nm-dbus-types.html#NMDeviceState">enum NMDeviceState</a>
 </dt>
-<dt id="ientry-idm45053437542272">NMDeviceStateReason, <a class="indexterm" href="nm-dbus-types.html#NMDeviceStateReason">enum NMDeviceStateReason</a>
+<dt id="ientry-idm45099791306000">NMDeviceStateReason, <a class="indexterm" href="nm-dbus-types.html#NMDeviceStateReason">enum NMDeviceStateReason</a>
 </dt>
-<dt id="ientry-idm45053439917408">NMDeviceType, <a class="indexterm" href="nm-dbus-types.html#NMDeviceType">enum NMDeviceType</a>
+<dt id="ientry-idm45099793193968">NMDeviceType, <a class="indexterm" href="nm-dbus-types.html#NMDeviceType">enum NMDeviceType</a>
 </dt>
-<dt id="ientry-idm45053439750496">NMDeviceWifiCapabilities, <a class="indexterm" href="nm-dbus-types.html#NMDeviceWifiCapabilities">enum NMDeviceWifiCapabilities</a>
+<dt id="ientry-idm45099793027008">NMDeviceWifiCapabilities, <a class="indexterm" href="nm-dbus-types.html#NMDeviceWifiCapabilities">enum NMDeviceWifiCapabilities</a>
 </dt>
-<dt id="ientry-idm45053437043552">NMIPTunnelMode, <a class="indexterm" href="nm-dbus-types.html#NMIPTunnelMode">enum NMIPTunnelMode</a>
+<dt id="ientry-idm45099790807344">NMIPTunnelMode, <a class="indexterm" href="nm-dbus-types.html#NMIPTunnelMode">enum NMIPTunnelMode</a>
 </dt>
-<dt id="ientry-idm45053437265856">NMMetered, <a class="indexterm" href="nm-dbus-types.html#NMMetered">enum NMMetered</a>
+<dt id="ientry-idm45099791029584">NMMetered, <a class="indexterm" href="nm-dbus-types.html#NMMetered">enum NMMetered</a>
 </dt>
-<dt id="ientry-idm45053436951888">NMRollbackResult, <a class="indexterm" href="nm-dbus-types.html#NMRollbackResult">enum NMRollbackResult</a>
+<dt id="ientry-idm45099790715680">NMRollbackResult, <a class="indexterm" href="nm-dbus-types.html#NMRollbackResult">enum NMRollbackResult</a>
 </dt>
-<dt id="ientry-idm45053437062320">NMSecretAgentCapabilities, <a class="indexterm" href="nm-dbus-types.html#NMSecretAgentCapabilities">enum NMSecretAgentCapabilities</a>
+<dt id="ientry-idm45099790826048">NMSecretAgentCapabilities, <a class="indexterm" href="nm-dbus-types.html#NMSecretAgentCapabilities">enum NMSecretAgentCapabilities</a>
 </dt>
-<dt id="ientry-idm45053437102832">NMSecretAgentGetSecretsFlags, <a class="indexterm" href="nm-dbus-types.html#NMSecretAgentGetSecretsFlags">enum NMSecretAgentGetSecretsFlags</a>
+<dt id="ientry-idm45099790866624">NMSecretAgentGetSecretsFlags, <a class="indexterm" href="nm-dbus-types.html#NMSecretAgentGetSecretsFlags">enum NMSecretAgentGetSecretsFlags</a>
 </dt>
-<dt id="ientry-idm45053436925056">NMSettingsConnectionFlags, <a class="indexterm" href="nm-dbus-types.html#NMSettingsConnectionFlags">enum NMSettingsConnectionFlags</a>
+<dt id="ientry-idm45099790688848">NMSettingsConnectionFlags, <a class="indexterm" href="nm-dbus-types.html#NMSettingsConnectionFlags">enum NMSettingsConnectionFlags</a>
 </dt>
-<dt id="ientry-idm45053436858400">NMSettingsUpdate2Flags, <a class="indexterm" href="nm-dbus-types.html#NMSettingsUpdate2Flags">enum NMSettingsUpdate2Flags</a>
+<dt id="ientry-idm45099790622192">NMSettingsUpdate2Flags, <a class="indexterm" href="nm-dbus-types.html#NMSettingsUpdate2Flags">enum NMSettingsUpdate2Flags</a>
 </dt>
-<dt id="ientry-idm45053440299824">NMState, <a class="indexterm" href="nm-dbus-types.html#NMState">enum NMState</a>
+<dt id="ientry-idm45099795981072">NMState, <a class="indexterm" href="nm-dbus-types.html#NMState">enum NMState</a>
 </dt>
-<dt id="ientry-idm45053436819232">NMTernary, <a class="indexterm" href="nm-dbus-types.html#NMTernary">enum NMTernary</a>
+<dt id="ientry-idm45099790582800">NMTernary, <a class="indexterm" href="nm-dbus-types.html#NMTernary">enum NMTernary</a>
 </dt>
-<dt id="ientry-idm45053439661600">NMVpnConnectionState, <a class="indexterm" href="nm-vpn-dbus-types.html#NMVpnConnectionState">enum NMVpnConnectionState</a>
+<dt id="ientry-idm45099792712960">NMVpnConnectionState, <a class="indexterm" href="nm-vpn-dbus-types.html#NMVpnConnectionState">enum NMVpnConnectionState</a>
 </dt>
-<dt id="ientry-idm45053439171424">NMVpnConnectionStateReason, <a class="indexterm" href="nm-vpn-dbus-types.html#NMVpnConnectionStateReason">enum NMVpnConnectionStateReason</a>
+<dt id="ientry-idm45099792562272">NMVpnConnectionStateReason, <a class="indexterm" href="nm-vpn-dbus-types.html#NMVpnConnectionStateReason">enum NMVpnConnectionStateReason</a>
 </dt>
-<dt id="ientry-idm45053439112432">NMVpnPluginFailure, <a class="indexterm" href="nm-vpn-dbus-types.html#NMVpnPluginFailure">enum NMVpnPluginFailure</a>
+<dt id="ientry-idm45099792503280">NMVpnPluginFailure, <a class="indexterm" href="nm-vpn-dbus-types.html#NMVpnPluginFailure">enum NMVpnPluginFailure</a>
 </dt>
-<dt id="ientry-idm45053451006800">NMVpnServiceState, <a class="indexterm" href="nm-vpn-dbus-types.html#NMVpnServiceState">enum NMVpnServiceState</a>
+<dt id="ientry-idm45099796175792">NMVpnServiceState, <a class="indexterm" href="nm-vpn-dbus-types.html#NMVpnServiceState">enum NMVpnServiceState</a>
 </dt>
-<dt id="ientry-idm45053437623376">NMWimaxNspNetworkType, <a class="indexterm" href="nm-dbus-types.html#NMWimaxNspNetworkType">enum NMWimaxNspNetworkType</a>
+<dt id="ientry-idm45099791387104">NMWimaxNspNetworkType, <a class="indexterm" href="nm-dbus-types.html#NMWimaxNspNetworkType">enum NMWimaxNspNetworkType</a>
 </dt>
-<dt id="ientry-idm45053441059728">no-vj-comp, <a class="indexterm" href="settings-ppp.html">ppp</a>
+<dt id="ientry-idm45099794367680">no-vj-comp, <a class="indexterm" href="settings-ppp.html">ppp</a>
 </dt>
-<dt id="ientry-idm45053441055808">noauth, <a class="indexterm" href="settings-ppp.html">ppp</a>
+<dt id="ientry-idm45099794363760">noauth, <a class="indexterm" href="settings-ppp.html">ppp</a>
 </dt>
-<dt id="ientry-idm45053441051744">nobsdcomp, <a class="indexterm" href="settings-ppp.html">ppp</a>
+<dt id="ientry-idm45099794359696">nobsdcomp, <a class="indexterm" href="settings-ppp.html">ppp</a>
 </dt>
-<dt id="ientry-idm45053441047840">nodeflate, <a class="indexterm" href="settings-ppp.html">ppp</a>
+<dt id="ientry-idm45099794355792">nodeflate, <a class="indexterm" href="settings-ppp.html">ppp</a>
 </dt>
-<dt id="ientry-idm45053440892240">notify-peers-count, <a class="indexterm" href="settings-team.html">team</a>
+<dt id="ientry-idm45099794199744">notify-peers-count, <a class="indexterm" href="settings-team.html">team</a>
 </dt>
-<dt id="ientry-idm45053440888336">notify-peers-interval, <a class="indexterm" href="settings-team.html">team</a>
+<dt id="ientry-idm45099794195840">notify-peers-interval, <a class="indexterm" href="settings-team.html">team</a>
 </dt>
-<dt id="ientry-idm45053441633200">number, <a class="indexterm" href="settings-cdma.html">cdma</a>, <a class="indexterm" href="settings-gsm.html">gsm</a>
+<dt id="ientry-idm45099794933584">number, <a class="indexterm" href="settings-cdma.html">cdma</a>, <a class="indexterm" href="settings-gsm.html">gsm</a>
 </dt>
 </dl>
 </div>
 <div class="indexdiv">
 <h3>O</h3>
 <dl>
-<dt id="ientry-idm45053441699120">options, <a class="indexterm" href="settings-bond.html">bond</a>
+<dt id="ientry-idm45099794999520">options, <a class="indexterm" href="settings-bond.html">bond</a>
 </dt>
-<dt id="ientry-idm45053441260752">output-key, <a class="indexterm" href="settings-ip-tunnel.html">ip-tunnel</a>
+<dt id="ientry-idm45099794563152">output-key, <a class="indexterm" href="settings-ip-tunnel.html">ip-tunnel</a>
 </dt>
-<dt id="ientry-idm45053440795872">owner, <a class="indexterm" href="settings-tun.html">tun</a>
+<dt id="ientry-idm45099794103376">owner, <a class="indexterm" href="settings-tun.html">tun</a>
 </dt>
 </dl>
 </div>
 <div class="indexdiv">
 <h3>P</h3>
 <dl>
-<dt id="ientry-idm45053441486160">p-key, <a class="indexterm" href="settings-infiniband.html">infiniband</a>
+<dt id="ientry-idm45099794786784">p-key, <a class="indexterm" href="settings-infiniband.html">infiniband</a>
 </dt>
-<dt id="ientry-idm45053443614720">pac-file, <a class="indexterm" href="settings-802-1x.html">802-1x</a>
+<dt id="ientry-idm45099796877920">pac-file, <a class="indexterm" href="settings-802-1x.html">802-1x</a>
 </dt>
-<dt id="ientry-idm45053440979312">pac-script, <a class="indexterm" href="settings-proxy.html">proxy</a>
+<dt id="ientry-idm45099794287264">pac-script, <a class="indexterm" href="settings-proxy.html">proxy</a>
 </dt>
-<dt id="ientry-idm45053440975584">pac-url, <a class="indexterm" href="settings-proxy.html">proxy</a>
+<dt id="ientry-idm45099794283536">pac-url, <a class="indexterm" href="settings-proxy.html">proxy</a>
 </dt>
-<dt id="ientry-idm45053440455376">pairwise, <a class="indexterm" href="settings-802-11-wireless-security.html">802-11-wireless-security</a>
+<dt id="ientry-idm45099793762192">pairwise, <a class="indexterm" href="settings-802-11-wireless-security.html">802-11-wireless-security</a>
 </dt>
-<dt id="ientry-idm45053440394560">pan-id, <a class="indexterm" href="settings-wpan.html">wpan</a>
+<dt id="ientry-idm45099793701376">pan-id, <a class="indexterm" href="settings-wpan.html">wpan</a>
 </dt>
-<dt id="ientry-idm45053443672368">parent, <a class="indexterm" href="settings-6lowpan.html">6lowpan</a>, <a class="indexterm" href="settings-infiniband.html">infiniband</a>, <a class="indexterm" href="settings-ip-tunnel.html">ip-tunnel</a>, <a class="indexterm" href="settings-macsec.html">macsec</a>, <a class="indexterm" href="settings-macvlan.html">macvlan</a>, <a class="indexterm" href="settings-pppoe.html">pppoe</a>, <a class="indexterm" href="settings-vlan.html">vlan</a>, <a class="indexterm" href="settings-vxlan.html">vxlan</a>
+<dt id="ientry-idm45099796936032">parent, <a class="indexterm" href="settings-6lowpan.html">6lowpan</a>, <a class="indexterm" href="settings-infiniband.html">infiniband</a>, <a class="indexterm" href="settings-ip-tunnel.html">ip-tunnel</a>, <a class="indexterm" href="settings-macsec.html">macsec</a>, <a class="indexterm" href="settings-macvlan.html">macvlan</a>, <a class="indexterm" href="settings-pppoe.html">pppoe</a>, <a class="indexterm" href="settings-vlan.html">vlan</a>, <a class="indexterm" href="settings-vxlan.html">vxlan</a>
 </dt>
-<dt id="ientry-idm45053440958992">parity, <a class="indexterm" href="settings-serial.html">serial</a>
+<dt id="ientry-idm45099794266880">parity, <a class="indexterm" href="settings-serial.html">serial</a>
 </dt>
-<dt id="ientry-idm45053443611040">password, <a class="indexterm" href="settings-802-1x.html">802-1x</a>, <a class="indexterm" href="settings-adsl.html">adsl</a>, <a class="indexterm" href="settings-cdma.html">cdma</a>, <a class="indexterm" href="settings-gsm.html">gsm</a>, <a class="indexterm" href="settings-pppoe.html">pppoe</a>
+<dt id="ientry-idm45099796874240">password, <a class="indexterm" href="settings-802-1x.html">802-1x</a>, <a class="indexterm" href="settings-adsl.html">adsl</a>, <a class="indexterm" href="settings-cdma.html">cdma</a>, <a class="indexterm" href="settings-gsm.html">gsm</a>, <a class="indexterm" href="settings-pppoe.html">pppoe</a>
 </dt>
-<dt id="ientry-idm45053443607360">password-flags, <a class="indexterm" href="settings-802-1x.html">802-1x</a>, <a class="indexterm" href="settings-adsl.html">adsl</a>, <a class="indexterm" href="settings-cdma.html">cdma</a>, <a class="indexterm" href="settings-gsm.html">gsm</a>, <a class="indexterm" href="settings-pppoe.html">pppoe</a>
+<dt id="ientry-idm45099796870560">password-flags, <a class="indexterm" href="settings-802-1x.html">802-1x</a>, <a class="indexterm" href="settings-adsl.html">adsl</a>, <a class="indexterm" href="settings-cdma.html">cdma</a>, <a class="indexterm" href="settings-gsm.html">gsm</a>, <a class="indexterm" href="settings-pppoe.html">pppoe</a>
 </dt>
-<dt id="ientry-idm45053443603712">password-raw, <a class="indexterm" href="settings-802-1x.html">802-1x</a>
+<dt id="ientry-idm45099796866864">password-raw, <a class="indexterm" href="settings-802-1x.html">802-1x</a>
 </dt>
-<dt id="ientry-idm45053443599776">password-raw-flags, <a class="indexterm" href="settings-802-1x.html">802-1x</a>
+<dt id="ientry-idm45099796862928">password-raw-flags, <a class="indexterm" href="settings-802-1x.html">802-1x</a>
 </dt>
-<dt id="ientry-idm45053441648128">path-cost, <a class="indexterm" href="settings-bridge-port.html">bridge-port</a>
+<dt id="ientry-idm45099794948432">path-cost, <a class="indexterm" href="settings-bridge-port.html">bridge-port</a>
 </dt>
-<dt id="ientry-idm45053441253696">path-mtu-discovery, <a class="indexterm" href="settings-ip-tunnel.html">ip-tunnel</a>
+<dt id="ientry-idm45099794556096">path-mtu-discovery, <a class="indexterm" href="settings-ip-tunnel.html">ip-tunnel</a>
 </dt>
-<dt id="ientry-idm45053441124352">peer, <a class="indexterm" href="settings-ovs-patch.html">ovs-patch</a>
+<dt id="ientry-idm45099794432240">peer, <a class="indexterm" href="settings-ovs-patch.html">ovs-patch</a>
 </dt>
-<dt id="ientry-idm45053443714368">permissions, <a class="indexterm" href="settings-connection.html">connection</a>
+<dt id="ientry-idm45099796978096">permissions, <a class="indexterm" href="settings-connection.html">connection</a>
 </dt>
-<dt id="ientry-idm45053440737744">persistent, <a class="indexterm" href="settings-vpn.html">vpn</a>
+<dt id="ientry-idm45099794045248">persistent, <a class="indexterm" href="settings-vpn.html">vpn</a>
 </dt>
-<dt id="ientry-idm45053443596128">phase1-auth-flags, <a class="indexterm" href="settings-802-1x.html">802-1x</a>
+<dt id="ientry-idm45099796859232">phase1-auth-flags, <a class="indexterm" href="settings-802-1x.html">802-1x</a>
 </dt>
-<dt id="ientry-idm45053443591936">phase1-fast-provisioning, <a class="indexterm" href="settings-802-1x.html">802-1x</a>
+<dt id="ientry-idm45099796854992">phase1-fast-provisioning, <a class="indexterm" href="settings-802-1x.html">802-1x</a>
 </dt>
-<dt id="ientry-idm45053443587840">phase1-peaplabel, <a class="indexterm" href="settings-802-1x.html">802-1x</a>
+<dt id="ientry-idm45099796850896">phase1-peaplabel, <a class="indexterm" href="settings-802-1x.html">802-1x</a>
 </dt>
-<dt id="ientry-idm45053443584160">phase1-peapver, <a class="indexterm" href="settings-802-1x.html">802-1x</a>
+<dt id="ientry-idm45099796847216">phase1-peapver, <a class="indexterm" href="settings-802-1x.html">802-1x</a>
 </dt>
-<dt id="ientry-idm45053443580096">phase2-altsubject-matches, <a class="indexterm" href="settings-802-1x.html">802-1x</a>
+<dt id="ientry-idm45099796843152">phase2-altsubject-matches, <a class="indexterm" href="settings-802-1x.html">802-1x</a>
 </dt>
-<dt id="ientry-idm45053443575952">phase2-auth, <a class="indexterm" href="settings-802-1x.html">802-1x</a>
+<dt id="ientry-idm45099796839008">phase2-auth, <a class="indexterm" href="settings-802-1x.html">802-1x</a>
 </dt>
-<dt id="ientry-idm45053443572272">phase2-autheap, <a class="indexterm" href="settings-802-1x.html">802-1x</a>
+<dt id="ientry-idm45099796835328">phase2-autheap, <a class="indexterm" href="settings-802-1x.html">802-1x</a>
 </dt>
-<dt id="ientry-idm45053443568192">phase2-ca-cert, <a class="indexterm" href="settings-802-1x.html">802-1x</a>
+<dt id="ientry-idm45099796831648">phase2-ca-cert, <a class="indexterm" href="settings-802-1x.html">802-1x</a>
 </dt>
-<dt id="ientry-idm45053443563808">phase2-ca-cert-password, <a class="indexterm" href="settings-802-1x.html">802-1x</a>
+<dt id="ientry-idm45099796827264">phase2-ca-cert-password, <a class="indexterm" href="settings-802-1x.html">802-1x</a>
 </dt>
-<dt id="ientry-idm45053443559920">phase2-ca-cert-password-flags, <a class="indexterm" href="settings-802-1x.html">802-1x</a>
+<dt id="ientry-idm45099796823376">phase2-ca-cert-password-flags, <a class="indexterm" href="settings-802-1x.html">802-1x</a>
 </dt>
-<dt id="ientry-idm45053443556192">phase2-ca-path, <a class="indexterm" href="settings-802-1x.html">802-1x</a>
+<dt id="ientry-idm45099796819648">phase2-ca-path, <a class="indexterm" href="settings-802-1x.html">802-1x</a>
 </dt>
-<dt id="ientry-idm45053443552304">phase2-client-cert, <a class="indexterm" href="settings-802-1x.html">802-1x</a>
+<dt id="ientry-idm45099796815760">phase2-client-cert, <a class="indexterm" href="settings-802-1x.html">802-1x</a>
 </dt>
-<dt id="ientry-idm45053443547904">phase2-client-cert-password, <a class="indexterm" href="settings-802-1x.html">802-1x</a>
+<dt id="ientry-idm45099796811360">phase2-client-cert-password, <a class="indexterm" href="settings-802-1x.html">802-1x</a>
 </dt>
-<dt id="ientry-idm45053443543968">phase2-client-cert-password-flags, <a class="indexterm" href="settings-802-1x.html">802-1x</a>
+<dt id="ientry-idm45099796807424">phase2-client-cert-password-flags, <a class="indexterm" href="settings-802-1x.html">802-1x</a>
 </dt>
-<dt id="ientry-idm45053443540224">phase2-domain-suffix-match, <a class="indexterm" href="settings-802-1x.html">802-1x</a>
+<dt id="ientry-idm45099796803680">phase2-domain-suffix-match, <a class="indexterm" href="settings-802-1x.html">802-1x</a>
 </dt>
-<dt id="ientry-idm45053443536512">phase2-private-key, <a class="indexterm" href="settings-802-1x.html">802-1x</a>
+<dt id="ientry-idm45099796799968">phase2-private-key, <a class="indexterm" href="settings-802-1x.html">802-1x</a>
 </dt>
-<dt id="ientry-idm45053443531728">phase2-private-key-password, <a class="indexterm" href="settings-802-1x.html">802-1x</a>
+<dt id="ientry-idm45099796795184">phase2-private-key-password, <a class="indexterm" href="settings-802-1x.html">802-1x</a>
 </dt>
-<dt id="ientry-idm45053443527808">phase2-private-key-password-flags, <a class="indexterm" href="settings-802-1x.html">802-1x</a>
+<dt id="ientry-idm45099796791264">phase2-private-key-password-flags, <a class="indexterm" href="settings-802-1x.html">802-1x</a>
 </dt>
-<dt id="ientry-idm45053443523984">phase2-subject-match, <a class="indexterm" href="settings-802-1x.html">802-1x</a>
+<dt id="ientry-idm45099796787440">phase2-subject-match, <a class="indexterm" href="settings-802-1x.html">802-1x</a>
 </dt>
-<dt id="ientry-idm45053440792080">pi, <a class="indexterm" href="settings-tun.html">tun</a>
+<dt id="ientry-idm45099794099584">pi, <a class="indexterm" href="settings-tun.html">tun</a>
 </dt>
-<dt id="ientry-idm45053443519920">pin, <a class="indexterm" href="settings-802-1x.html">802-1x</a>, <a class="indexterm" href="settings-gsm.html">gsm</a>
+<dt id="ientry-idm45099796783376">pin, <a class="indexterm" href="settings-802-1x.html">802-1x</a>, <a class="indexterm" href="settings-gsm.html">gsm</a>
 </dt>
-<dt id="ientry-idm45053443516240">pin-flags, <a class="indexterm" href="settings-802-1x.html">802-1x</a>, <a class="indexterm" href="settings-gsm.html">gsm</a>
+<dt id="ientry-idm45099796779696">pin-flags, <a class="indexterm" href="settings-802-1x.html">802-1x</a>, <a class="indexterm" href="settings-gsm.html">gsm</a>
 </dt>
-<dt id="ientry-idm45053440451264">pmf, <a class="indexterm" href="settings-802-11-wireless-security.html">802-11-wireless-security</a>
+<dt id="ientry-idm45099793758080">pmf, <a class="indexterm" href="settings-802-11-wireless-security.html">802-11-wireless-security</a>
 </dt>
-<dt id="ientry-idm45053441214432">port, <a class="indexterm" href="settings-macsec.html">macsec</a>, <a class="indexterm" href="settings-802-3-ethernet.html">802-3-ethernet</a>
+<dt id="ientry-idm45099794516832">port, <a class="indexterm" href="settings-macsec.html">macsec</a>, <a class="indexterm" href="settings-802-3-ethernet.html">802-3-ethernet</a>
 </dt>
-<dt id="ientry-idm45053440516976">powersave, <a class="indexterm" href="settings-802-11-wireless.html">802-11-wireless</a>
+<dt id="ientry-idm45099793823856">powersave, <a class="indexterm" href="settings-802-11-wireless.html">802-11-wireless</a>
 </dt>
-<dt id="ientry-idm45053451865344">org.freedesktop.NetworkManager.PPP, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.PPP.html#gdbus-interface-org-freedesktop-NetworkManager-PPP.top_of_page">org.freedesktop.NetworkManager.PPP</a>
+<dt id="ientry-idm45099804304704">org.freedesktop.NetworkManager.PPP, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.PPP.html#gdbus-interface-org-freedesktop-NetworkManager-PPP.top_of_page">org.freedesktop.NetworkManager.PPP</a>
 </dt>
-<dt id="ientry-idm45053441804736">org.freedesktop.NetworkManager.PPP.NeedSecrets(), <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.PPP.html#gdbus-method-org-freedesktop-NetworkManager-PPP.NeedSecrets">The NeedSecrets() method</a>
+<dt id="ientry-idm45099796287232">org.freedesktop.NetworkManager.PPP.NeedSecrets(), <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.PPP.html#gdbus-method-org-freedesktop-NetworkManager-PPP.NeedSecrets">The NeedSecrets() method</a>
 </dt>
-<dt id="ientry-idm45053441862128">org.freedesktop.NetworkManager.PPP.SetIfindex(), <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.PPP.html#gdbus-method-org-freedesktop-NetworkManager-PPP.SetIfindex">The SetIfindex() method</a>
+<dt id="ientry-idm45099796450688">org.freedesktop.NetworkManager.PPP.SetIfindex(), <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.PPP.html#gdbus-method-org-freedesktop-NetworkManager-PPP.SetIfindex">The SetIfindex() method</a>
 </dt>
-<dt id="ientry-idm45053441891536">org.freedesktop.NetworkManager.PPP.SetIp4Config(), <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.PPP.html#gdbus-method-org-freedesktop-NetworkManager-PPP.SetIp4Config">The SetIp4Config() method</a>
+<dt id="ientry-idm45099796468688">org.freedesktop.NetworkManager.PPP.SetIp4Config(), <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.PPP.html#gdbus-method-org-freedesktop-NetworkManager-PPP.SetIp4Config">The SetIp4Config() method</a>
 </dt>
-<dt id="ientry-idm45053442691360">org.freedesktop.NetworkManager.PPP.SetIp6Config(), <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.PPP.html#gdbus-method-org-freedesktop-NetworkManager-PPP.SetIp6Config">The SetIp6Config() method</a>
+<dt id="ientry-idm45099795670768">org.freedesktop.NetworkManager.PPP.SetIp6Config(), <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.PPP.html#gdbus-method-org-freedesktop-NetworkManager-PPP.SetIp6Config">The SetIp6Config() method</a>
 </dt>
-<dt id="ientry-idm45053441997472">org.freedesktop.NetworkManager.PPP.SetState(), <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.PPP.html#gdbus-method-org-freedesktop-NetworkManager-PPP.SetState">The SetState() method</a>
+<dt id="ientry-idm45099796457792">org.freedesktop.NetworkManager.PPP.SetState(), <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.PPP.html#gdbus-method-org-freedesktop-NetworkManager-PPP.SetState">The SetState() method</a>
 </dt>
-<dt id="ientry-idm45053440824448">prio, <a class="indexterm" href="settings-team-port.html">team-port</a>
+<dt id="ientry-idm45099794131888">prio, <a class="indexterm" href="settings-team-port.html">team-port</a>
 </dt>
-<dt id="ientry-idm45053441663056">priority, <a class="indexterm" href="settings-bridge.html">bridge</a>, <a class="indexterm" href="settings-bridge-port.html">bridge-port</a>
+<dt id="ientry-idm45099794963456">priority, <a class="indexterm" href="settings-bridge.html">bridge</a>, <a class="indexterm" href="settings-bridge-port.html">bridge-port</a>
 </dt>
-<dt id="ientry-idm45053441589776">priority-bandwidth, <a class="indexterm" href="settings-dcb.html">dcb</a>
+<dt id="ientry-idm45099794890240">priority-bandwidth, <a class="indexterm" href="settings-dcb.html">dcb</a>
 </dt>
-<dt id="ientry-idm45053441585968">priority-flow-control, <a class="indexterm" href="settings-dcb.html">dcb</a>
+<dt id="ientry-idm45099794886432">priority-flow-control, <a class="indexterm" href="settings-dcb.html">dcb</a>
 </dt>
-<dt id="ientry-idm45053441582192">priority-flow-control-flags, <a class="indexterm" href="settings-dcb.html">dcb</a>
+<dt id="ientry-idm45099794882736">priority-flow-control-flags, <a class="indexterm" href="settings-dcb.html">dcb</a>
 </dt>
-<dt id="ientry-idm45053441578608">priority-group-bandwidth, <a class="indexterm" href="settings-dcb.html">dcb</a>
+<dt id="ientry-idm45099794879152">priority-group-bandwidth, <a class="indexterm" href="settings-dcb.html">dcb</a>
 </dt>
-<dt id="ientry-idm45053441574848">priority-group-flags, <a class="indexterm" href="settings-dcb.html">dcb</a>
+<dt id="ientry-idm45099794875392">priority-group-flags, <a class="indexterm" href="settings-dcb.html">dcb</a>
 </dt>
-<dt id="ientry-idm45053441571280">priority-group-id, <a class="indexterm" href="settings-dcb.html">dcb</a>
+<dt id="ientry-idm45099794871824">priority-group-id, <a class="indexterm" href="settings-dcb.html">dcb</a>
 </dt>
-<dt id="ientry-idm45053441567568">priority-strict-bandwidth, <a class="indexterm" href="settings-dcb.html">dcb</a>
+<dt id="ientry-idm45099794868112">priority-strict-bandwidth, <a class="indexterm" href="settings-dcb.html">dcb</a>
 </dt>
-<dt id="ientry-idm45053441563776">priority-traffic-class, <a class="indexterm" href="settings-dcb.html">dcb</a>
+<dt id="ientry-idm45099794864400">priority-traffic-class, <a class="indexterm" href="settings-dcb.html">dcb</a>
 </dt>
-<dt id="ientry-idm45053443512544">private-key, <a class="indexterm" href="settings-802-1x.html">802-1x</a>
+<dt id="ientry-idm45099796776000">private-key, <a class="indexterm" href="settings-802-1x.html">802-1x</a>
 </dt>
-<dt id="ientry-idm45053443507552">private-key-password, <a class="indexterm" href="settings-802-1x.html">802-1x</a>
+<dt id="ientry-idm45099796771008">private-key-password, <a class="indexterm" href="settings-802-1x.html">802-1x</a>
 </dt>
-<dt id="ientry-idm45053443503664">private-key-password-flags, <a class="indexterm" href="settings-802-1x.html">802-1x</a>
+<dt id="ientry-idm45099796767120">private-key-password-flags, <a class="indexterm" href="settings-802-1x.html">802-1x</a>
 </dt>
-<dt id="ientry-idm45053441191376">promiscuous, <a class="indexterm" href="settings-macvlan.html">macvlan</a>
+<dt id="ientry-idm45099794494768">promiscuous, <a class="indexterm" href="settings-macvlan.html">macvlan</a>
 </dt>
-<dt id="ientry-idm45053440446848">proto, <a class="indexterm" href="settings-802-11-wireless-security.html">802-11-wireless-security</a>
+<dt id="ientry-idm45099793753664">proto, <a class="indexterm" href="settings-802-11-wireless-security.html">802-11-wireless-security</a>
 </dt>
-<dt id="ientry-idm45053443475776">protocol, <a class="indexterm" href="settings-adsl.html">adsl</a>
+<dt id="ientry-idm45099796739232">protocol, <a class="indexterm" href="settings-adsl.html">adsl</a>
 </dt>
-<dt id="ientry-idm45053440677616">proxy, <a class="indexterm" href="settings-vxlan.html">vxlan</a>
+<dt id="ientry-idm45099793985184">proxy, <a class="indexterm" href="settings-vxlan.html">vxlan</a>
 </dt>
-<dt id="ientry-idm45053440442784">psk, <a class="indexterm" href="settings-802-11-wireless-security.html">802-11-wireless-security</a>
+<dt id="ientry-idm45099793749600">psk, <a class="indexterm" href="settings-802-11-wireless-security.html">802-11-wireless-security</a>
 </dt>
-<dt id="ientry-idm45053440438688">psk-flags, <a class="indexterm" href="settings-802-11-wireless-security.html">802-11-wireless-security</a>
+<dt id="ientry-idm45099793745504">psk-flags, <a class="indexterm" href="settings-802-11-wireless-security.html">802-11-wireless-security</a>
 </dt>
 </dl>
 </div>
 <div class="indexdiv">
 <h3>Q</h3>
 <dl>
-<dt id="ientry-idm45053440924976">qdiscs, <a class="indexterm" href="settings-tc.html">tc</a>
+<dt id="ientry-idm45099794232480">qdiscs, <a class="indexterm" href="settings-tc.html">tc</a>
 </dt>
-<dt id="ientry-idm45053440820544">queue-id, <a class="indexterm" href="settings-team-port.html">team-port</a>
+<dt id="ientry-idm45099794127984">queue-id, <a class="indexterm" href="settings-team-port.html">team-port</a>
 </dt>
 </dl>
 </div>
 <div class="indexdiv">
 <h3>R</h3>
 <dl>
-<dt id="ientry-idm45053440512752">rate, <a class="indexterm" href="settings-802-11-wireless.html">802-11-wireless</a>
+<dt id="ientry-idm45099793819632">rate, <a class="indexterm" href="settings-802-11-wireless.html">802-11-wireless</a>
 </dt>
-<dt id="ientry-idm45053443710528">read-only, <a class="indexterm" href="settings-connection.html">connection</a>
+<dt id="ientry-idm45099796974256">read-only, <a class="indexterm" href="settings-connection.html">connection</a>
 </dt>
-<dt id="ientry-idm45053441043936">refuse-chap, <a class="indexterm" href="settings-ppp.html">ppp</a>
+<dt id="ientry-idm45099794351888">refuse-chap, <a class="indexterm" href="settings-ppp.html">ppp</a>
 </dt>
-<dt id="ientry-idm45053441040016">refuse-eap, <a class="indexterm" href="settings-ppp.html">ppp</a>
+<dt id="ientry-idm45099794347968">refuse-eap, <a class="indexterm" href="settings-ppp.html">ppp</a>
 </dt>
-<dt id="ientry-idm45053441036096">refuse-mschap, <a class="indexterm" href="settings-ppp.html">ppp</a>
+<dt id="ientry-idm45099794344048">refuse-mschap, <a class="indexterm" href="settings-ppp.html">ppp</a>
 </dt>
-<dt id="ientry-idm45053441032176">refuse-mschapv2, <a class="indexterm" href="settings-ppp.html">ppp</a>
+<dt id="ientry-idm45099794340128">refuse-mschapv2, <a class="indexterm" href="settings-ppp.html">ppp</a>
 </dt>
-<dt id="ientry-idm45053441028256">refuse-pap, <a class="indexterm" href="settings-ppp.html">ppp</a>
+<dt id="ientry-idm45099794336208">refuse-pap, <a class="indexterm" href="settings-ppp.html">ppp</a>
 </dt>
-<dt id="ientry-idm45053441250208">remote, <a class="indexterm" href="settings-ip-tunnel.html">ip-tunnel</a>, <a class="indexterm" href="settings-vxlan.html">vxlan</a>
+<dt id="ientry-idm45099794552608">remote, <a class="indexterm" href="settings-ip-tunnel.html">ip-tunnel</a>, <a class="indexterm" href="settings-vxlan.html">vxlan</a>
 </dt>
-<dt id="ientry-idm45053441024336">require-mppe, <a class="indexterm" href="settings-ppp.html">ppp</a>
+<dt id="ientry-idm45099794332288">require-mppe, <a class="indexterm" href="settings-ppp.html">ppp</a>
 </dt>
-<dt id="ientry-idm45053441020256">require-mppe-128, <a class="indexterm" href="settings-ppp.html">ppp</a>
+<dt id="ientry-idm45099794328208">require-mppe-128, <a class="indexterm" href="settings-ppp.html">ppp</a>
 </dt>
-<dt id="ientry-idm45053441403248">route-data, <a class="indexterm" href="settings-ipv4.html">ipv4</a>, <a class="indexterm" href="settings-ipv6.html">ipv6</a>
+<dt id="ientry-idm45099794704240">route-data, <a class="indexterm" href="settings-ipv4.html">ipv4</a>, <a class="indexterm" href="settings-ipv6.html">ipv6</a>
 </dt>
-<dt id="ientry-idm45053441399376">route-metric, <a class="indexterm" href="settings-ipv4.html">ipv4</a>, <a class="indexterm" href="settings-ipv6.html">ipv6</a>
+<dt id="ientry-idm45099794700368">route-metric, <a class="indexterm" href="settings-ipv4.html">ipv4</a>, <a class="indexterm" href="settings-ipv6.html">ipv6</a>
 </dt>
-<dt id="ientry-idm45053441395344">route-table, <a class="indexterm" href="settings-ipv4.html">ipv4</a>, <a class="indexterm" href="settings-ipv6.html">ipv6</a>
+<dt id="ientry-idm45099794696880">route-table, <a class="indexterm" href="settings-ipv4.html">ipv4</a>, <a class="indexterm" href="settings-ipv6.html">ipv6</a>
 </dt>
-<dt id="ientry-idm45053441390928">routes, <a class="indexterm" href="settings-ipv4.html">ipv4</a>, <a class="indexterm" href="settings-ipv6.html">ipv6</a>
+<dt id="ientry-idm45099794693392">routes, <a class="indexterm" href="settings-ipv4.html">ipv4</a>, <a class="indexterm" href="settings-ipv6.html">ipv6</a>
 </dt>
-<dt id="ientry-idm45053440669808">rsc, <a class="indexterm" href="settings-vxlan.html">vxlan</a>
+<dt id="ientry-idm45099793977376">rsc, <a class="indexterm" href="settings-vxlan.html">vxlan</a>
 </dt>
-<dt id="ientry-idm45053441145744">rstp-enable, <a class="indexterm" href="settings-ovs-bridge.html">ovs-bridge</a>
+<dt id="ientry-idm45099794453312">rstp-enable, <a class="indexterm" href="settings-ovs-bridge.html">ovs-bridge</a>
 </dt>
-<dt id="ientry-idm45053440884432">runner, <a class="indexterm" href="settings-team.html">team</a>
+<dt id="ientry-idm45099794191936">runner, <a class="indexterm" href="settings-team.html">team</a>
 </dt>
-<dt id="ientry-idm45053440880224">runner-active, <a class="indexterm" href="settings-team.html">team</a>
+<dt id="ientry-idm45099794187728">runner-active, <a class="indexterm" href="settings-team.html">team</a>
 </dt>
-<dt id="ientry-idm45053440876320">runner-agg-select-policy, <a class="indexterm" href="settings-team.html">team</a>
+<dt id="ientry-idm45099794183824">runner-agg-select-policy, <a class="indexterm" href="settings-team.html">team</a>
 </dt>
-<dt id="ientry-idm45053440872544">runner-fast-rate, <a class="indexterm" href="settings-team.html">team</a>
+<dt id="ientry-idm45099794180048">runner-fast-rate, <a class="indexterm" href="settings-team.html">team</a>
 </dt>
-<dt id="ientry-idm45053440868640">runner-hwaddr-policy, <a class="indexterm" href="settings-team.html">team</a>
+<dt id="ientry-idm45099794176144">runner-hwaddr-policy, <a class="indexterm" href="settings-team.html">team</a>
 </dt>
-<dt id="ientry-idm45053440864896">runner-min-ports, <a class="indexterm" href="settings-team.html">team</a>
+<dt id="ientry-idm45099794172400">runner-min-ports, <a class="indexterm" href="settings-team.html">team</a>
 </dt>
-<dt id="ientry-idm45053440860992">runner-sys-prio, <a class="indexterm" href="settings-team.html">team</a>
+<dt id="ientry-idm45099794168496">runner-sys-prio, <a class="indexterm" href="settings-team.html">team</a>
 </dt>
-<dt id="ientry-idm45053440857088">runner-tx-balancer, <a class="indexterm" href="settings-team.html">team</a>
+<dt id="ientry-idm45099794164592">runner-tx-balancer, <a class="indexterm" href="settings-team.html">team</a>
 </dt>
-<dt id="ientry-idm45053440853328">runner-tx-balancer-interval, <a class="indexterm" href="settings-team.html">team</a>
+<dt id="ientry-idm45099794160832">runner-tx-balancer-interval, <a class="indexterm" href="settings-team.html">team</a>
 </dt>
-<dt id="ientry-idm45053440849392">runner-tx-hash, <a class="indexterm" href="settings-team.html">team</a>
+<dt id="ientry-idm45099794156896">runner-tx-hash, <a class="indexterm" href="settings-team.html">team</a>
 </dt>
 </dl>
 </div>
 <div class="indexdiv">
 <h3>S</h3>
 <dl>
-<dt id="ientry-idm45053440595760">s390-nettype, <a class="indexterm" href="settings-802-3-ethernet.html">802-3-ethernet</a>
+<dt id="ientry-idm45099793902576">s390-nettype, <a class="indexterm" href="settings-802-3-ethernet.html">802-3-ethernet</a>
 </dt>
-<dt id="ientry-idm45053440591920">s390-options, <a class="indexterm" href="settings-802-3-ethernet.html">802-3-ethernet</a>
+<dt id="ientry-idm45099793898736">s390-options, <a class="indexterm" href="settings-802-3-ethernet.html">802-3-ethernet</a>
 </dt>
-<dt id="ientry-idm45053440587792">s390-subchannels, <a class="indexterm" href="settings-802-3-ethernet.html">802-3-ethernet</a>
+<dt id="ientry-idm45099793894608">s390-subchannels, <a class="indexterm" href="settings-802-3-ethernet.html">802-3-ethernet</a>
 </dt>
-<dt id="ientry-idm45053443706496">secondaries, <a class="indexterm" href="settings-connection.html">connection</a>
+<dt id="ientry-idm45099796970224">secondaries, <a class="indexterm" href="settings-connection.html">connection</a>
 </dt>
-<dt id="ientry-idm45053440733712">secrets, <a class="indexterm" href="settings-vpn.html">vpn</a>
+<dt id="ientry-idm45099794041216">secrets, <a class="indexterm" href="settings-vpn.html">vpn</a>
 </dt>
-<dt id="ientry-idm45053440508640">security, <a class="indexterm" href="settings-802-11-wireless.html">802-11-wireless</a>
+<dt id="ientry-idm45099793815520">security, <a class="indexterm" href="settings-802-11-wireless.html">802-11-wireless</a>
 </dt>
-<dt id="ientry-idm45053440504704">seen-bssids, <a class="indexterm" href="settings-802-11-wireless.html">802-11-wireless</a>
+<dt id="ientry-idm45099793811584">seen-bssids, <a class="indexterm" href="settings-802-11-wireless.html">802-11-wireless</a>
 </dt>
-<dt id="ientry-idm45053440955184">send-delay, <a class="indexterm" href="settings-serial.html">serial</a>
+<dt id="ientry-idm45099794263072">send-delay, <a class="indexterm" href="settings-serial.html">serial</a>
 </dt>
-<dt id="ientry-idm45053441210848">send-sci, <a class="indexterm" href="settings-macsec.html">macsec</a>
+<dt id="ientry-idm45099794513248">send-sci, <a class="indexterm" href="settings-macsec.html">macsec</a>
 </dt>
-<dt id="ientry-idm45053440999808">service, <a class="indexterm" href="settings-pppoe.html">pppoe</a>
+<dt id="ientry-idm45099794307760">service, <a class="indexterm" href="settings-pppoe.html">pppoe</a>
 </dt>
-<dt id="ientry-idm45053440729712">service-type, <a class="indexterm" href="settings-vpn.html">vpn</a>
+<dt id="ientry-idm45099794037216">service-type, <a class="indexterm" href="settings-vpn.html">vpn</a>
 </dt>
-<dt id="ientry-idm45053440390656">short-address, <a class="indexterm" href="settings-wpan.html">wpan</a>
+<dt id="ientry-idm45099793697472">short-address, <a class="indexterm" href="settings-wpan.html">wpan</a>
 </dt>
-<dt id="ientry-idm45053441508320">sim-id, <a class="indexterm" href="settings-gsm.html">gsm</a>
+<dt id="ientry-idm45099794808944">sim-id, <a class="indexterm" href="settings-gsm.html">gsm</a>
 </dt>
-<dt id="ientry-idm45053441504704">sim-operator-id, <a class="indexterm" href="settings-gsm.html">gsm</a>
+<dt id="ientry-idm45099794805328">sim-operator-id, <a class="indexterm" href="settings-gsm.html">gsm</a>
 </dt>
-<dt id="ientry-idm45053443702496">slave-type, <a class="indexterm" href="settings-connection.html">connection</a>
+<dt id="ientry-idm45099796966224">slave-type, <a class="indexterm" href="settings-connection.html">connection</a>
 </dt>
-<dt id="ientry-idm45053440665904">source-port-max, <a class="indexterm" href="settings-vxlan.html">vxlan</a>
+<dt id="ientry-idm45099793973472">source-port-max, <a class="indexterm" href="settings-vxlan.html">vxlan</a>
 </dt>
-<dt id="ientry-idm45053440661952">source-port-min, <a class="indexterm" href="settings-vxlan.html">vxlan</a>
+<dt id="ientry-idm45099793969520">source-port-min, <a class="indexterm" href="settings-vxlan.html">vxlan</a>
 </dt>
-<dt id="ientry-idm45053440583952">speed, <a class="indexterm" href="settings-802-3-ethernet.html">802-3-ethernet</a>
+<dt id="ientry-idm45099793890768">speed, <a class="indexterm" href="settings-802-3-ethernet.html">802-3-ethernet</a>
 </dt>
-<dt id="ientry-idm45053441162016">ssid, <a class="indexterm" href="settings-802-11-olpc-mesh.html">802-11-olpc-mesh</a>, <a class="indexterm" href="settings-802-11-wireless.html">802-11-wireless</a>
+<dt id="ientry-idm45099794468736">ssid, <a class="indexterm" href="settings-802-11-olpc-mesh.html">802-11-olpc-mesh</a>, <a class="indexterm" href="settings-802-11-wireless.html">802-11-wireless</a>
 </dt>
-<dt id="ientry-idm45053443698672">stable-id, <a class="indexterm" href="settings-connection.html">connection</a>
+<dt id="ientry-idm45099796962400">stable-id, <a class="indexterm" href="settings-connection.html">connection</a>
 </dt>
-<dt id="ientry-idm45053440816576">sticky, <a class="indexterm" href="settings-team-port.html">team-port</a>
+<dt id="ientry-idm45099794124016">sticky, <a class="indexterm" href="settings-team-port.html">team-port</a>
 </dt>
-<dt id="ientry-idm45053440951264">stopbits, <a class="indexterm" href="settings-serial.html">serial</a>
+<dt id="ientry-idm45099794259152">stopbits, <a class="indexterm" href="settings-serial.html">serial</a>
 </dt>
-<dt id="ientry-idm45053441659408">stp, <a class="indexterm" href="settings-bridge.html">bridge</a>
+<dt id="ientry-idm45099794959808">stp, <a class="indexterm" href="settings-bridge.html">bridge</a>
 </dt>
-<dt id="ientry-idm45053441141872">stp-enable, <a class="indexterm" href="settings-ovs-bridge.html">ovs-bridge</a>
+<dt id="ientry-idm45099794449440">stp-enable, <a class="indexterm" href="settings-ovs-bridge.html">ovs-bridge</a>
 </dt>
-<dt id="ientry-idm45053443499936">subject-match, <a class="indexterm" href="settings-802-1x.html">802-1x</a>
+<dt id="ientry-idm45099796763392">subject-match, <a class="indexterm" href="settings-802-1x.html">802-1x</a>
 </dt>
-<dt id="ientry-idm45053443495920">system-ca-certs, <a class="indexterm" href="settings-802-1x.html">802-1x</a>
+<dt id="ientry-idm45099796759376">system-ca-certs, <a class="indexterm" href="settings-802-1x.html">802-1x</a>
 </dt>
 </dl>
 </div>
 <div class="indexdiv">
 <h3>T</h3>
 <dl>
-<dt id="ientry-idm45053441100272">tag, <a class="indexterm" href="settings-ovs-port.html">ovs-port</a>
+<dt id="ientry-idm45099794408160">tag, <a class="indexterm" href="settings-ovs-port.html">ovs-port</a>
 </dt>
-<dt id="ientry-idm45053441187456">tap, <a class="indexterm" href="settings-macvlan.html">macvlan</a>
+<dt id="ientry-idm45099794491280">tap, <a class="indexterm" href="settings-macvlan.html">macvlan</a>
 </dt>
-<dt id="ientry-idm45053440921088">tfilters, <a class="indexterm" href="settings-tc.html">tc</a>
+<dt id="ientry-idm45099794228592">tfilters, <a class="indexterm" href="settings-tc.html">tc</a>
 </dt>
-<dt id="ientry-idm45053440725872">timeout, <a class="indexterm" href="settings-vpn.html">vpn</a>
+<dt id="ientry-idm45099794033376">timeout, <a class="indexterm" href="settings-vpn.html">vpn</a>
 </dt>
-<dt id="ientry-idm45053443693104">timestamp, <a class="indexterm" href="settings-connection.html">connection</a>
+<dt id="ientry-idm45099796956768">timestamp, <a class="indexterm" href="settings-connection.html">connection</a>
 </dt>
-<dt id="ientry-idm45053441293744">token, <a class="indexterm" href="settings-ipv6.html">ipv6</a>
+<dt id="ientry-idm45099794596144">token, <a class="indexterm" href="settings-ipv6.html">ipv6</a>
 </dt>
-<dt id="ientry-idm45053441246752">tos, <a class="indexterm" href="settings-ip-tunnel.html">ip-tunnel</a>, <a class="indexterm" href="settings-vxlan.html">vxlan</a>
+<dt id="ientry-idm45099794549152">tos, <a class="indexterm" href="settings-ip-tunnel.html">ip-tunnel</a>, <a class="indexterm" href="settings-vxlan.html">vxlan</a>
 </dt>
-<dt id="ientry-idm45053440938192">total-vfs, <a class="indexterm" href="settings-sriov.html">sriov</a>
+<dt id="ientry-idm45099794246080">total-vfs, <a class="indexterm" href="settings-sriov.html">sriov</a>
 </dt>
-<dt id="ientry-idm45053441478864">transport-mode, <a class="indexterm" href="settings-infiniband.html">infiniband</a>
+<dt id="ientry-idm45099794779488">transport-mode, <a class="indexterm" href="settings-infiniband.html">infiniband</a>
 </dt>
-<dt id="ientry-idm45053441243168">ttl, <a class="indexterm" href="settings-ip-tunnel.html">ip-tunnel</a>, <a class="indexterm" href="settings-vxlan.html">vxlan</a>
+<dt id="ientry-idm45099794545568">ttl, <a class="indexterm" href="settings-ip-tunnel.html">ip-tunnel</a>, <a class="indexterm" href="settings-vxlan.html">vxlan</a>
 </dt>
-<dt id="ientry-idm45053440497088">tx-power, <a class="indexterm" href="settings-802-11-wireless.html">802-11-wireless</a>
+<dt id="ientry-idm45099793803968">tx-power, <a class="indexterm" href="settings-802-11-wireless.html">802-11-wireless</a>
 </dt>
-<dt id="ientry-idm45053443688896">type, <a class="indexterm" href="settings-connection.html">connection</a>, <a class="indexterm" href="settings-bluetooth.html">bluetooth</a>, <a class="indexterm" href="settings-ovs-interface.html">ovs-interface</a>
+<dt id="ientry-idm45099796952560">type, <a class="indexterm" href="settings-connection.html">connection</a>, <a class="indexterm" href="settings-bluetooth.html">bluetooth</a>, <a class="indexterm" href="settings-ovs-interface.html">ovs-interface</a>
 </dt>
 </dl>
 </div>
 <div class="indexdiv">
 <h3>U</h3>
 <dl>
-<dt id="ientry-idm45053440721744">user-name, <a class="indexterm" href="settings-vpn.html">vpn</a>
+<dt id="ientry-idm45099794029248">user-name, <a class="indexterm" href="settings-vpn.html">vpn</a>
 </dt>
-<dt id="ientry-idm45053443472096">username, <a class="indexterm" href="settings-adsl.html">adsl</a>, <a class="indexterm" href="settings-cdma.html">cdma</a>, <a class="indexterm" href="settings-gsm.html">gsm</a>, <a class="indexterm" href="settings-pppoe.html">pppoe</a>
+<dt id="ientry-idm45099796735552">username, <a class="indexterm" href="settings-adsl.html">adsl</a>, <a class="indexterm" href="settings-cdma.html">cdma</a>, <a class="indexterm" href="settings-gsm.html">gsm</a>, <a class="indexterm" href="settings-pppoe.html">pppoe</a>
 </dt>
-<dt id="ientry-idm45053443684848">uuid, <a class="indexterm" href="settings-connection.html">connection</a>
+<dt id="ientry-idm45099796948512">uuid, <a class="indexterm" href="settings-connection.html">connection</a>
 </dt>
 </dl>
 </div>
 <div class="indexdiv">
 <h3>V</h3>
 <dl>
-<dt id="ientry-idm45053441207264">validation, <a class="indexterm" href="settings-macsec.html">macsec</a>
+<dt id="ientry-idm45099794509664">validation, <a class="indexterm" href="settings-macsec.html">macsec</a>
 </dt>
-<dt id="ientry-idm45053441724816">vci, <a class="indexterm" href="settings-adsl.html">adsl</a>
+<dt id="ientry-idm45099795025216">vci, <a class="indexterm" href="settings-adsl.html">adsl</a>
 </dt>
-<dt id="ientry-idm45053440934288">vfs, <a class="indexterm" href="settings-sriov.html">sriov</a>
+<dt id="ientry-idm45099794241952">vfs, <a class="indexterm" href="settings-sriov.html">sriov</a>
 </dt>
-<dt id="ientry-idm45053441096384">vlan-mode, <a class="indexterm" href="settings-ovs-port.html">ovs-port</a>
+<dt id="ientry-idm45099794404272">vlan-mode, <a class="indexterm" href="settings-ovs-port.html">ovs-port</a>
 </dt>
-<dt id="ientry-idm45053440788128">vnet-hdr, <a class="indexterm" href="settings-tun.html">tun</a>
+<dt id="ientry-idm45099794095632">vnet-hdr, <a class="indexterm" href="settings-tun.html">tun</a>
 </dt>
-<dt id="ientry-idm45053441721328">vpi, <a class="indexterm" href="settings-adsl.html">adsl</a>
+<dt id="ientry-idm45099795021728">vpi, <a class="indexterm" href="settings-adsl.html">adsl</a>
 </dt>
-<dt id="ientry-idm45053451894624">org.freedesktop.NetworkManager.VPN.Connection, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.VPN.Connection.html#gdbus-interface-org-freedesktop-NetworkManager-VPN-Connection.top_of_page">org.freedesktop.NetworkManager.VPN.Connection</a>
+<dt id="ientry-idm45099806984496">org.freedesktop.NetworkManager.VPN.Connection, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.VPN.Connection.html#gdbus-interface-org-freedesktop-NetworkManager-VPN-Connection.top_of_page">org.freedesktop.NetworkManager.VPN.Connection</a>
 </dt>
-<dt id="ientry-idm45053442987232">org.freedesktop.NetworkManager.VPN.Connection::PropertiesChanged, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.VPN.Connection.html#gdbus-signal-org-freedesktop-NetworkManager-VPN-Connection.PropertiesChanged">The "PropertiesChanged" signal</a>
+<dt id="ientry-idm45099795807120">org.freedesktop.NetworkManager.VPN.Connection::PropertiesChanged, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.VPN.Connection.html#gdbus-signal-org-freedesktop-NetworkManager-VPN-Connection.PropertiesChanged">The "PropertiesChanged" signal</a>
 </dt>
-<dt id="ientry-idm45053442979888">org.freedesktop.NetworkManager.VPN.Connection::VpnStateChanged, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.VPN.Connection.html#gdbus-signal-org-freedesktop-NetworkManager-VPN-Connection.VpnStateChanged">The "VpnStateChanged" signal</a>
+<dt id="ientry-idm45099795776032">org.freedesktop.NetworkManager.VPN.Connection::VpnStateChanged, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.VPN.Connection.html#gdbus-signal-org-freedesktop-NetworkManager-VPN-Connection.VpnStateChanged">The "VpnStateChanged" signal</a>
 </dt>
-<dt id="ientry-idm45053442971280">org.freedesktop.NetworkManager.VPN.Connection:Banner, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.VPN.Connection.html#gdbus-property-org-freedesktop-NetworkManager-VPN-Connection.Banner">The "Banner" property</a>
+<dt id="ientry-idm45099796150928">org.freedesktop.NetworkManager.VPN.Connection:Banner, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.VPN.Connection.html#gdbus-property-org-freedesktop-NetworkManager-VPN-Connection.Banner">The "Banner" property</a>
 </dt>
-<dt id="ientry-idm45053442950064">org.freedesktop.NetworkManager.VPN.Connection:VpnState, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.VPN.Connection.html#gdbus-property-org-freedesktop-NetworkManager-VPN-Connection.VpnState">The "VpnState" property</a>
+<dt id="ientry-idm45099796155776">org.freedesktop.NetworkManager.VPN.Connection:VpnState, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.VPN.Connection.html#gdbus-property-org-freedesktop-NetworkManager-VPN-Connection.VpnState">The "VpnState" property</a>
 </dt>
-<dt id="ientry-idm45053452494544">org.freedesktop.NetworkManager.VPN.Plugin, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.VPN.Plugin.html#gdbus-interface-org-freedesktop-NetworkManager-VPN-Plugin.top_of_page">org.freedesktop.NetworkManager.VPN.Plugin</a>
+<dt id="ientry-idm45099805427616">org.freedesktop.NetworkManager.VPN.Plugin, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.VPN.Plugin.html#gdbus-interface-org-freedesktop-NetworkManager-VPN-Plugin.top_of_page">org.freedesktop.NetworkManager.VPN.Plugin</a>
 </dt>
-<dt id="ientry-idm45053440079248">org.freedesktop.NetworkManager.VPN.Plugin.Connect(), <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.VPN.Plugin.html#gdbus-method-org-freedesktop-NetworkManager-VPN-Plugin.Connect">The Connect() method</a>
+<dt id="ientry-idm45099793429024">org.freedesktop.NetworkManager.VPN.Plugin.Connect(), <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.VPN.Plugin.html#gdbus-method-org-freedesktop-NetworkManager-VPN-Plugin.Connect">The Connect() method</a>
 </dt>
-<dt id="ientry-idm45053440115776">org.freedesktop.NetworkManager.VPN.Plugin.ConnectInteractive(), <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.VPN.Plugin.html#gdbus-method-org-freedesktop-NetworkManager-VPN-Plugin.ConnectInteractive">The ConnectInteractive() method</a>
+<dt id="ientry-idm45099796434320">org.freedesktop.NetworkManager.VPN.Plugin.ConnectInteractive(), <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.VPN.Plugin.html#gdbus-method-org-freedesktop-NetworkManager-VPN-Plugin.ConnectInteractive">The ConnectInteractive() method</a>
 </dt>
-<dt id="ientry-idm45053439512400">org.freedesktop.NetworkManager.VPN.Plugin.Disconnect(), <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.VPN.Plugin.html#gdbus-method-org-freedesktop-NetworkManager-VPN-Plugin.Disconnect">The Disconnect() method</a>
+<dt id="ientry-idm45099792781504">org.freedesktop.NetworkManager.VPN.Plugin.Disconnect(), <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.VPN.Plugin.html#gdbus-method-org-freedesktop-NetworkManager-VPN-Plugin.Disconnect">The Disconnect() method</a>
 </dt>
-<dt id="ientry-idm45053440105472">org.freedesktop.NetworkManager.VPN.Plugin.NeedSecrets(), <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.VPN.Plugin.html#gdbus-method-org-freedesktop-NetworkManager-VPN-Plugin.NeedSecrets">The NeedSecrets() method</a>
+<dt id="ientry-idm45099792838288">org.freedesktop.NetworkManager.VPN.Plugin.NeedSecrets(), <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.VPN.Plugin.html#gdbus-method-org-freedesktop-NetworkManager-VPN-Plugin.NeedSecrets">The NeedSecrets() method</a>
 </dt>
-<dt id="ientry-idm45053439478192">org.freedesktop.NetworkManager.VPN.Plugin.NewSecrets(), <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.VPN.Plugin.html#gdbus-method-org-freedesktop-NetworkManager-VPN-Plugin.NewSecrets">The NewSecrets() method</a>
+<dt id="ientry-idm45099791560384">org.freedesktop.NetworkManager.VPN.Plugin.NewSecrets(), <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.VPN.Plugin.html#gdbus-method-org-freedesktop-NetworkManager-VPN-Plugin.NewSecrets">The NewSecrets() method</a>
 </dt>
-<dt id="ientry-idm45053439508288">org.freedesktop.NetworkManager.VPN.Plugin.SetConfig(), <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.VPN.Plugin.html#gdbus-method-org-freedesktop-NetworkManager-VPN-Plugin.SetConfig">The SetConfig() method</a>
+<dt id="ientry-idm45099793462688">org.freedesktop.NetworkManager.VPN.Plugin.SetConfig(), <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.VPN.Plugin.html#gdbus-method-org-freedesktop-NetworkManager-VPN-Plugin.SetConfig">The SetConfig() method</a>
 </dt>
-<dt id="ientry-idm45053439485648">org.freedesktop.NetworkManager.VPN.Plugin.SetFailure(), <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.VPN.Plugin.html#gdbus-method-org-freedesktop-NetworkManager-VPN-Plugin.SetFailure">The SetFailure() method</a>
+<dt id="ientry-idm45099792814176">org.freedesktop.NetworkManager.VPN.Plugin.SetFailure(), <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.VPN.Plugin.html#gdbus-method-org-freedesktop-NetworkManager-VPN-Plugin.SetFailure">The SetFailure() method</a>
 </dt>
-<dt id="ientry-idm45053439500832">org.freedesktop.NetworkManager.VPN.Plugin.SetIp4Config(), <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.VPN.Plugin.html#gdbus-method-org-freedesktop-NetworkManager-VPN-Plugin.SetIp4Config">The SetIp4Config() method</a>
+<dt id="ientry-idm45099792756752">org.freedesktop.NetworkManager.VPN.Plugin.SetIp4Config(), <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.VPN.Plugin.html#gdbus-method-org-freedesktop-NetworkManager-VPN-Plugin.SetIp4Config">The SetIp4Config() method</a>
 </dt>
-<dt id="ientry-idm45053439493232">org.freedesktop.NetworkManager.VPN.Plugin.SetIp6Config(), <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.VPN.Plugin.html#gdbus-method-org-freedesktop-NetworkManager-VPN-Plugin.SetIp6Config">The SetIp6Config() method</a>
+<dt id="ientry-idm45099792821760">org.freedesktop.NetworkManager.VPN.Plugin.SetIp6Config(), <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.VPN.Plugin.html#gdbus-method-org-freedesktop-NetworkManager-VPN-Plugin.SetIp6Config">The SetIp6Config() method</a>
 </dt>
-<dt id="ientry-idm45053439450448">org.freedesktop.NetworkManager.VPN.Plugin::Config, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.VPN.Plugin.html#gdbus-signal-org-freedesktop-NetworkManager-VPN-Plugin.Config">The "Config" signal</a>
+<dt id="ientry-idm45099792805824">org.freedesktop.NetworkManager.VPN.Plugin::Config, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.VPN.Plugin.html#gdbus-signal-org-freedesktop-NetworkManager-VPN-Plugin.Config">The "Config" signal</a>
 </dt>
-<dt id="ientry-idm45053439420464">org.freedesktop.NetworkManager.VPN.Plugin::Failure, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.VPN.Plugin.html#gdbus-signal-org-freedesktop-NetworkManager-VPN-Plugin.Failure">The "Failure" signal</a>
+<dt id="ientry-idm45099792882640">org.freedesktop.NetworkManager.VPN.Plugin::Failure, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.VPN.Plugin.html#gdbus-signal-org-freedesktop-NetworkManager-VPN-Plugin.Failure">The "Failure" signal</a>
 </dt>
-<dt id="ientry-idm45053439442912">org.freedesktop.NetworkManager.VPN.Plugin::Ip4Config, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.VPN.Plugin.html#gdbus-signal-org-freedesktop-NetworkManager-VPN-Plugin.Ip4Config">The "Ip4Config" signal</a>
+<dt id="ientry-idm45099792798336">org.freedesktop.NetworkManager.VPN.Plugin::Ip4Config, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.VPN.Plugin.html#gdbus-signal-org-freedesktop-NetworkManager-VPN-Plugin.Ip4Config">The "Ip4Config" signal</a>
 </dt>
-<dt id="ientry-idm45053439435472">org.freedesktop.NetworkManager.VPN.Plugin::Ip6Config, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.VPN.Plugin.html#gdbus-signal-org-freedesktop-NetworkManager-VPN-Plugin.Ip6Config">The "Ip6Config" signal</a>
+<dt id="ientry-idm45099796339968">org.freedesktop.NetworkManager.VPN.Plugin::Ip6Config, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.VPN.Plugin.html#gdbus-signal-org-freedesktop-NetworkManager-VPN-Plugin.Ip6Config">The "Ip6Config" signal</a>
 </dt>
-<dt id="ientry-idm45053439428016">org.freedesktop.NetworkManager.VPN.Plugin::LoginBanner, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.VPN.Plugin.html#gdbus-signal-org-freedesktop-NetworkManager-VPN-Plugin.LoginBanner">The "LoginBanner" signal</a>
+<dt id="ientry-idm45099796332512">org.freedesktop.NetworkManager.VPN.Plugin::LoginBanner, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.VPN.Plugin.html#gdbus-signal-org-freedesktop-NetworkManager-VPN-Plugin.LoginBanner">The "LoginBanner" signal</a>
 </dt>
-<dt id="ientry-idm45053439460800">org.freedesktop.NetworkManager.VPN.Plugin::SecretsRequired, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.VPN.Plugin.html#gdbus-signal-org-freedesktop-NetworkManager-VPN-Plugin.SecretsRequired">The "SecretsRequired" signal</a>
+<dt id="ientry-idm45099792740560">org.freedesktop.NetworkManager.VPN.Plugin::SecretsRequired, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.VPN.Plugin.html#gdbus-signal-org-freedesktop-NetworkManager-VPN-Plugin.SecretsRequired">The "SecretsRequired" signal</a>
 </dt>
-<dt id="ientry-idm45053439468992">org.freedesktop.NetworkManager.VPN.Plugin::StateChanged, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.VPN.Plugin.html#gdbus-signal-org-freedesktop-NetworkManager-VPN-Plugin.StateChanged">The "StateChanged" signal</a>
+<dt id="ientry-idm45099793435664">org.freedesktop.NetworkManager.VPN.Plugin::StateChanged, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.VPN.Plugin.html#gdbus-signal-org-freedesktop-NetworkManager-VPN-Plugin.StateChanged">The "StateChanged" signal</a>
 </dt>
-<dt id="ientry-idm45053439410384">org.freedesktop.NetworkManager.VPN.Plugin:State, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.VPN.Plugin.html#gdbus-property-org-freedesktop-NetworkManager-VPN-Plugin.State">The "State" property</a>
+<dt id="ientry-idm45099792872560">org.freedesktop.NetworkManager.VPN.Plugin:State, <a class="indexterm" href="gdbus-org.freedesktop.NetworkManager.VPN.Plugin.html#gdbus-property-org-freedesktop-NetworkManager-VPN-Plugin.State">The "State" property</a>
 </dt>
 </dl>
 </div>
 <div class="indexdiv">
 <h3>W</h3>
 <dl>
-<dt id="ientry-idm45053440579360">wake-on-lan, <a class="indexterm" href="settings-802-3-ethernet.html">802-3-ethernet</a>
+<dt id="ientry-idm45099793886176">wake-on-lan, <a class="indexterm" href="settings-802-3-ethernet.html">802-3-ethernet</a>
 </dt>
-<dt id="ientry-idm45053440574944">wake-on-lan-password, <a class="indexterm" href="settings-802-3-ethernet.html">802-3-ethernet</a>
+<dt id="ientry-idm45099793881760">wake-on-lan-password, <a class="indexterm" href="settings-802-3-ethernet.html">802-3-ethernet</a>
 </dt>
-<dt id="ientry-idm45053440493024">wake-on-wlan, <a class="indexterm" href="settings-802-11-wireless.html">802-11-wireless</a>
+<dt id="ientry-idm45099793799904">wake-on-wlan, <a class="indexterm" href="settings-802-11-wireless.html">802-11-wireless</a>
 </dt>
-<dt id="ientry-idm45053440434976">wep-key-flags, <a class="indexterm" href="settings-802-11-wireless-security.html">802-11-wireless-security</a>
+<dt id="ientry-idm45099793741792">wep-key-flags, <a class="indexterm" href="settings-802-11-wireless-security.html">802-11-wireless-security</a>
 </dt>
-<dt id="ientry-idm45053440431152">wep-key-type, <a class="indexterm" href="settings-802-11-wireless-security.html">802-11-wireless-security</a>
+<dt id="ientry-idm45099793737968">wep-key-type, <a class="indexterm" href="settings-802-11-wireless-security.html">802-11-wireless-security</a>
 </dt>
-<dt id="ientry-idm45053440427072">wep-key0, <a class="indexterm" href="settings-802-11-wireless-security.html">802-11-wireless-security</a>
+<dt id="ientry-idm45099793733888">wep-key0, <a class="indexterm" href="settings-802-11-wireless-security.html">802-11-wireless-security</a>
 </dt>
-<dt id="ientry-idm45053440423216">wep-key1, <a class="indexterm" href="settings-802-11-wireless-security.html">802-11-wireless-security</a>
+<dt id="ientry-idm45099793730032">wep-key1, <a class="indexterm" href="settings-802-11-wireless-security.html">802-11-wireless-security</a>
 </dt>
-<dt id="ientry-idm45053440419360">wep-key2, <a class="indexterm" href="settings-802-11-wireless-security.html">802-11-wireless-security</a>
+<dt id="ientry-idm45099793726176">wep-key2, <a class="indexterm" href="settings-802-11-wireless-security.html">802-11-wireless-security</a>
 </dt>
-<dt id="ientry-idm45053440415504">wep-key3, <a class="indexterm" href="settings-802-11-wireless-security.html">802-11-wireless-security</a>
+<dt id="ientry-idm45099793722320">wep-key3, <a class="indexterm" href="settings-802-11-wireless-security.html">802-11-wireless-security</a>
 </dt>
-<dt id="ientry-idm45053440411648">wep-tx-keyidx, <a class="indexterm" href="settings-802-11-wireless-security.html">802-11-wireless-security</a>
+<dt id="ientry-idm45099793718464">wep-tx-keyidx, <a class="indexterm" href="settings-802-11-wireless-security.html">802-11-wireless-security</a>
 </dt>
-<dt id="ientry-idm45053440407520">wps-method, <a class="indexterm" href="settings-802-11-wireless-security.html">802-11-wireless-security</a>
+<dt id="ientry-idm45099793714336">wps-method, <a class="indexterm" href="settings-802-11-wireless-security.html">802-11-wireless-security</a>
 </dt>
 </dl>
 </div>
 <div class="indexdiv">
 <h3>Z</h3>
-<dl><dt id="ientry-idm45053443680592">zone, <a class="indexterm" href="settings-connection.html">connection</a>
+<dl><dt id="ientry-idm45099796944256">zone, <a class="indexterm" href="settings-connection.html">connection</a>
 </dt></dl>
 </div>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/api/html/license.html b/docs/api/html/license.html
index f828c141..39058e5e 100644
--- a/docs/api/html/license.html
+++ b/docs/api/html/license.html
@@ -7,7 +7,7 @@
 <link rel="home" href="index.html" title="NetworkManager Reference Manual">
 <link rel="up" href="index.html" title="NetworkManager Reference Manual">
 <link rel="prev" href="ix01.html" title="Index">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -379,6 +379,6 @@ Public License instead of this License.
     </p>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/api/html/manpages.html b/docs/api/html/manpages.html
index f435b770..5282cd2a 100644
--- a/docs/api/html/manpages.html
+++ b/docs/api/html/manpages.html
@@ -8,7 +8,7 @@
 <link rel="up" href="index.html" title="NetworkManager Reference Manual">
 <link rel="prev" href="index.html" title="NetworkManager Reference Manual">
 <link rel="next" href="NetworkManager.html" title="NetworkManager">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -62,6 +62,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/api/html/nm-dbus-types.html b/docs/api/html/nm-dbus-types.html
index bf403344..8f687d6b 100644
--- a/docs/api/html/nm-dbus-types.html
+++ b/docs/api/html/nm-dbus-types.html
@@ -8,7 +8,7 @@
 <link rel="up" href="dbus-types.html" title="Types">
 <link rel="prev" href="dbus-types.html" title="Types">
 <link rel="next" href="secret-agents.html" title="Part IV. Secret Agent D-Bus API Reference">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -4341,6 +4341,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/api/html/nm-initrd-generator.html b/docs/api/html/nm-initrd-generator.html
index 4dd3becb..5a27d453 100644
--- a/docs/api/html/nm-initrd-generator.html
+++ b/docs/api/html/nm-initrd-generator.html
@@ -8,7 +8,7 @@
 <link rel="up" href="manpages.html" title="Part I. Manual Pages">
 <link rel="prev" href="nm-online.html" title="nm-online">
 <link rel="next" href="nm-openvswitch.html" title="nm-openvswitch">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -102,6 +102,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/api/html/nm-online.html b/docs/api/html/nm-online.html
index baea91db..036fbb5d 100644
--- a/docs/api/html/nm-online.html
+++ b/docs/api/html/nm-online.html
@@ -8,7 +8,7 @@
 <link rel="up" href="manpages.html" title="Part I. Manual Pages">
 <link rel="prev" href="nm-settings-ifcfg-rh.html" title="nm-settings-ifcfg-rh">
 <link rel="next" href="nm-initrd-generator.html" title="nm-initrd-generator">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -115,6 +115,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/api/html/nm-openvswitch.html b/docs/api/html/nm-openvswitch.html
index 55dabb58..bfe89e2f 100644
--- a/docs/api/html/nm-openvswitch.html
+++ b/docs/api/html/nm-openvswitch.html
@@ -8,7 +8,7 @@
 <link rel="up" href="manpages.html" title="Part I. Manual Pages">
 <link rel="prev" href="nm-initrd-generator.html" title="nm-initrd-generator">
 <link rel="next" href="ref-settings.html" title="Part II. Network Configuration Setting Specification">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -96,7 +96,7 @@
 <div class="refsect1">
 <a name="id-1.2.12.5"></a><h2>Examples</h2>
 <div class="example">
-<a name="id-1.2.12.5.2"></a><p class="title"><b>Example 14. Creating a Bridge with a single internal Interface</b></p>
+<a name="id-1.2.12.5.2"></a><p class="title"><b>Example 15. Creating a Bridge with a single internal Interface</b></p>
 <div class="example-contents">
 <pre class="screen"><code class="prompt">$ </code><strong class="userinput"><code>nmcli conn add type ovs-bridge conn.interface bridge0</code></strong>
 Connection 'ovs-bridge-bridge0' (d10fc64d-1d48-4394-a1b8-e1aea72f27d5) successfully added.
@@ -113,7 +113,7 @@ Connection 'ovs-interface-iface0' (3640d2a1-a2fd-4718-92f1-cffadb5b6cdc) success
 </div>
 </div>
 <br class="example-break"><div class="example">
-<a name="id-1.2.12.5.3"></a><p class="title"><b>Example 15. Adding a Linux interface to a Bridge</b></p>
+<a name="id-1.2.12.5.3"></a><p class="title"><b>Example 16. Adding a Linux interface to a Bridge</b></p>
 <div class="example-contents">
 <pre class="screen"><code class="prompt">$ </code><strong class="userinput"><code>nmcli conn add type ovs-port conn.interface port1 master bridge0</code></strong>
 Connection 'ovs-port-port1' (67d041eb-8e7b-4458-afee-a1d07c9c4552) successfully added.
@@ -124,7 +124,7 @@ Connection 'ovs-slave-eth0' (d459c45c-cf78-4c1c-b4b7-505e71379624) successfully
 </div>
 </div>
 <br class="example-break"><div class="example">
-<a name="id-1.2.12.5.4"></a><p class="title"><b>Example 16. Creating a VLAN</b></p>
+<a name="id-1.2.12.5.4"></a><p class="title"><b>Example 17. Creating a VLAN</b></p>
 <div class="example-contents">
 <pre class="screen"><code class="prompt">$ </code><strong class="userinput"><code>nmcli conn add type ovs-port conn.interface port2 master bridge0 ovs-port.tag 120</code></strong>
 Connection 'ovs-port-port2' (3994c093-4ef7-4549-a4fd-627b831c3cb8) successfully added.
@@ -135,7 +135,7 @@ Connection 'ovs-slave-eth1' (099be06e-71ad-484d-8d5a-fcadc5f207f5) successfully
 </div>
 </div>
 <br class="example-break"><div class="example">
-<a name="id-1.2.12.5.5"></a><p class="title"><b>Example 17. Creating a Bond</b></p>
+<a name="id-1.2.12.5.5"></a><p class="title"><b>Example 18. Creating a Bond</b></p>
 <div class="example-contents">
 <pre class="screen"><code class="prompt">$ </code><strong class="userinput"><code>nmcli conn add type ovs-port conn.interface bond0 master bridge0</code></strong>
 Connection 'ovs-port-bond0' (d154ebf9-e999-4e1b-a084-a3de53d25d8a) successfully added.
@@ -172,6 +172,6 @@ Connection 'ovs-slave-eth3' (8dedeecb-ed12-482b-b77a-24a4fb835136) successfully
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/api/html/nm-settings-ifcfg-rh.html b/docs/api/html/nm-settings-ifcfg-rh.html
index 2019af29..3e56950b 100644
--- a/docs/api/html/nm-settings-ifcfg-rh.html
+++ b/docs/api/html/nm-settings-ifcfg-rh.html
@@ -8,7 +8,7 @@
 <link rel="up" href="manpages.html" title="Part I. Manual Pages">
 <link rel="prev" href="nm-settings-keyfile.html" title="nm-settings-keyfile">
 <link rel="next" href="nm-online.html" title="nm-online">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -2295,6 +2295,6 @@ Allowed values: </strong></span>default, never, always</td>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/api/html/nm-settings-keyfile.html b/docs/api/html/nm-settings-keyfile.html
index e4b34928..d883a4fb 100644
--- a/docs/api/html/nm-settings-keyfile.html
+++ b/docs/api/html/nm-settings-keyfile.html
@@ -8,7 +8,7 @@
 <link rel="up" href="manpages.html" title="Part I. Manual Pages">
 <link rel="prev" href="nm-settings.html" title="nm-settings">
 <link rel="next" href="nm-settings-ifcfg-rh.html" title="nm-settings-ifcfg-rh">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -543,6 +543,6 @@ Example: </strong></span>mac-address-blacklist= 00:22:68:12:79:A6;00:22:68:12:79
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/api/html/nm-settings.html b/docs/api/html/nm-settings.html
index 2f317601..9293e903 100644
--- a/docs/api/html/nm-settings.html
+++ b/docs/api/html/nm-settings.html
@@ -8,7 +8,7 @@
 <link rel="up" href="manpages.html" title="Part I. Manual Pages">
 <link rel="prev" href="nmtui.html" title="nmtui">
 <link rel="next" href="nm-settings-keyfile.html" title="nm-settings-keyfile">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -241,7 +241,7 @@
 <a name="nm-settings.property.connection.stable-id"></a>stable-id</td>
 <td align="left">string</td>
 <td align="left"> </td>
-<td>This represents the identity of the connection used for various purposes. It allows to configure multiple profiles to share the identity. Also, the stable-id can contain placeholders that are substituted dynamically and deterministically depending on the context. The stable-id is used for generating IPv6 stable private addresses with ipv6.addr-gen-mode=stable-privacy. It is also used to seed the generated cloned MAC address for ethernet.cloned-mac-address=stable and wifi.cloned-mac-address=stable. It is also used as DHCP client identifier with ipv4.dhcp-client-id=stable and to derive the DHCP DUID with ipv6.dhcp-duid=stable-[llt,ll,uuid]. Note that depending on the context where it is used, other parameters are also seeded into the generation algorithm. For example, a per-host key is commonly also included, so that different systems end up generating different IDs. Or with ipv6.addr-gen-mode=stable-privacy, also the device's name is included, so that different interfaces yield different addresses. The '$' character is treated special to perform dynamic substitutions at runtime. Currently supported are "${CONNECTION}", "${DEVICE}", "${BOOT}", "${RANDOM}". These effectively create unique IDs per-connection, per-device, per-boot, or every time. Note that "${DEVICE}" corresponds the the interface name of the device. Any unrecognized patterns following '$' are treated verbatim, however are reserved for future use. You are thus advised to avoid '$' or escape it as "$$". For example, set it to "${CONNECTION}-${BOOT}-${DEVICE}" to create a unique id for this connection that changes with every reboot and differs depending on the interface where the profile activates. If the value is unset, a global connection default is consulted. If the value is still unset, the default is similar to "${CONNECTION}" and uses a unique, fixed ID for the connection.</td>
+<td>This represents the identity of the connection used for various purposes. It allows to configure multiple profiles to share the identity. Also, the stable-id can contain placeholders that are substituted dynamically and deterministically depending on the context. The stable-id is used for generating IPv6 stable private addresses with ipv6.addr-gen-mode=stable-privacy. It is also used to seed the generated cloned MAC address for ethernet.cloned-mac-address=stable and wifi.cloned-mac-address=stable. It is also used as DHCP client identifier with ipv4.dhcp-client-id=stable and to derive the DHCP DUID with ipv6.dhcp-duid=stable-[llt,ll,uuid]. Note that depending on the context where it is used, other parameters are also seeded into the generation algorithm. For example, a per-host key is commonly also included, so that different systems end up generating different IDs. Or with ipv6.addr-gen-mode=stable-privacy, also the device's name is included, so that different interfaces yield different addresses. The '$' character is treated special to perform dynamic substitutions at runtime. Currently supported are "${CONNECTION}", "${DEVICE}", "${MAC}", "${BOOT}", "${RANDOM}". These effectively create unique IDs per-connection, per-device, per-boot, or every time. Note that "${DEVICE}" corresponds the the interface name of the device and "${MAC}" is the permanent MAC address of the device. Any unrecognized patterns following '$' are treated verbatim, however are reserved for future use. You are thus advised to avoid '$' or escape it as "$$". For example, set it to "${CONNECTION}-${BOOT}-${DEVICE}" to create a unique id for this connection that changes with every reboot and differs depending on the interface where the profile activates. If the value is unset, a global connection default is consulted. If the value is still unset, the default is similar to "${CONNECTION}" and uses a unique, fixed ID for the connection.</td>
 </tr>
 <tr>
 <td align="left">
@@ -1356,7 +1356,7 @@
 <a name="nm-settings.property.ipv4.dhcp-client-id"></a>dhcp-client-id</td>
 <td align="left">string</td>
 <td align="left"> </td>
-<td>A string sent to the DHCP server to identify the local machine which the DHCP server may use to customize the DHCP lease and options. When the property is a hex string ('aa:bb:cc') it is interpreted as a binary client ID, in which case the first byte is assumed to be the 'type' field as per RFC 2132 section 9.14 and the remaining bytes may be an hardware address (e.g. '01:xx:xx:xx:xx:xx:xx' where 1 is the Ethernet ARP type and the rest is a MAC address). If the property is not a hex string it is considered as a non-hardware-address client ID and the 'type' field is set to 0. The special values "mac" and "perm-mac" are supported, which use the current or permanent MAC address of the device to generate a client identifier with type ethernet (01). Currently, these options only work for ethernet type of links. The special value "stable" is supported to generate a type 0 client identifier based on the stable-id (see connection.stable-id) and a per-host key. If unset, a globally configured default is used. If still unset, the client-id from the last lease is reused.</td>
+<td>A string sent to the DHCP server to identify the local machine which the DHCP server may use to customize the DHCP lease and options. When the property is a hex string ('aa:bb:cc') it is interpreted as a binary client ID, in which case the first byte is assumed to be the 'type' field as per RFC 2132 section 9.14 and the remaining bytes may be an hardware address (e.g. '01:xx:xx:xx:xx:xx:xx' where 1 is the Ethernet ARP type and the rest is a MAC address). If the property is not a hex string it is considered as a non-hardware-address client ID and the 'type' field is set to 0. The special values "mac" and "perm-mac" are supported, which use the current or permanent MAC address of the device to generate a client identifier with type ethernet (01). Currently, these options only work for ethernet type of links. The special value "duid" generates a RFC4361-compliant client identifier based on a hash of the interface name as IAID and /etc/machine-id. The special value "stable" is supported to generate a type 0 client identifier based on the stable-id (see connection.stable-id) and a per-host key. If you set the stable-id, you may want to include the "${DEVICE}" or "${MAC}" specifier to get a per-device key. If unset, a globally configured default is used. If still unset, the default depends on the DHCP plugin.</td>
 </tr>
 <tr>
 <td align="left">
@@ -1538,7 +1538,7 @@
 <a name="nm-settings.property.ipv6.dhcp-duid"></a>dhcp-duid</td>
 <td align="left">string</td>
 <td align="left"> </td>
-<td>A string containing the DHCPv6 Unique Identifier (DUID) used by the dhcp client to identify itself to DHCPv6 servers (RFC 3315). The DUID is carried in the Client Identifier option. If the property is a hex string ('aa:bb:cc') it is interpreted as a binary DUID and filled as an opaque value in the Client Identifier option. The special value "lease" will retrieve the DUID previously used from the lease file belonging to the connection. If no DUID is found and "dhclient" is the configured dhcp client, the DUID is searched in the system-wide dhclient lease file. If still no DUID is found, or another dhcp client is used, a global and permanent DUID-UUID (RFC 6355) will be generated based on the machine-id. The special values "llt" and "ll" will generate a DUID of type LLT or LL (see RFC 3315) based on the current MAC address of the device. In order to try providing a stable DUID-LLT, the time field will contain a constant timestamp that is used globally (for all profiles) and persisted to disk. The special values "stable-llt", "stable-ll" and "stable-uuid" will generate a DUID of the corresponding type, derived from the connection's stable-id and a per-host unique key. So, the link-layer address of "stable-ll" and "stable-llt" will be a generated address derived from the stable id. The DUID-LLT time value in the "stable-llt" option will be picked among a static timespan of three years (the upper bound of the interval is the same constant timestamp used in "llt"). When the property is unset, the global value provided for "ipv6.dhcp-duid" is used. If no global value is provided, the default "lease" value is assumed.</td>
+<td>A string containing the DHCPv6 Unique Identifier (DUID) used by the dhcp client to identify itself to DHCPv6 servers (RFC 3315). The DUID is carried in the Client Identifier option. If the property is a hex string ('aa:bb:cc') it is interpreted as a binary DUID and filled as an opaque value in the Client Identifier option. The special value "lease" will retrieve the DUID previously used from the lease file belonging to the connection. If no DUID is found and "dhclient" is the configured dhcp client, the DUID is searched in the system-wide dhclient lease file. If still no DUID is found, or another dhcp client is used, a global and permanent DUID-UUID (RFC 6355) will be generated based on the machine-id. The special values "llt" and "ll" will generate a DUID of type LLT or LL (see RFC 3315) based on the current MAC address of the device. In order to try providing a stable DUID-LLT, the time field will contain a constant timestamp that is used globally (for all profiles) and persisted to disk. The special values "stable-llt", "stable-ll" and "stable-uuid" will generate a DUID of the corresponding type, derived from the connection's stable-id and a per-host unique key. You may want to include the "${DEVICE}" or "${MAC}" specifier in the stable-id, in case this profile gets activated on multiple devices. So, the link-layer address of "stable-ll" and "stable-llt" will be a generated address derived from the stable id. The DUID-LLT time value in the "stable-llt" option will be picked among a static timespan of three years (the upper bound of the interval is the same constant timestamp used in "llt"). When the property is unset, the global value provided for "ipv6.dhcp-duid" is used. If no global value is provided, the default "lease" value is assumed.</td>
 </tr>
 <tr>
 <td align="left">
@@ -2491,14 +2491,14 @@
 <a name="nm-settings.property.sriov.total-vfs"></a>total-vfs</td>
 <td align="left">uint32</td>
 <td align="left">0</td>
-<td>The total number of virtual functions to create.</td>
+<td>The total number of virtual functions to create. Note that when the sriov setting is present NetworkManager enforces the number of virtual functions on the interface also when it is zero. To prevent any changes to SR-IOV parameters don't add a sriov setting to the connection.</td>
 </tr>
 <tr>
 <td align="left">
 <a name="nm-settings.property.sriov.vfs"></a>vfs</td>
 <td align="left">array of vardict</td>
 <td align="left">[]</td>
-<td>Array of virtual function descriptors. Each VF descriptor is a dictionary mapping attribute names to GVariant values. The 'index' entry is mandatory for each VF. When represented as string a VF is in the form: "INDEX [ATTR=VALUE[ ATTR=VALUE]...]". for example: "2 mac=00:11:22:33:44:55 spoof-check=true". The "vlans" attribute is represented as a semicolor-separated list of VLAN descriptors, where each descriptor has the form "ID[.PRIORITY[.PROTO]]". PROTO can be either 'q' for 802.1Q (the default) or 'ad' for 802.1ad.</td>
+<td>Array of virtual function descriptors. Each VF descriptor is a dictionary mapping attribute names to GVariant values. The 'index' entry is mandatory for each VF. When represented as string a VF is in the form: "INDEX [ATTR=VALUE[ ATTR=VALUE]...]". for example: "2 mac=00:11:22:33:44:55 spoof-check=true". Multiple VFs can be specified using a comma as separator. Currently the following attributes are supported: mac, spoof-check, trust, min-tx-rate, max-tx-rate, vlans. The "vlans" attribute is represented as a semicolon-separated list of VLAN descriptors, where each descriptor has the form "ID[.PRIORITY[.PROTO]]". PROTO can be either 'q' for 802.1Q (the default) or 'ad' for 802.1ad.</td>
 </tr>
 </tbody>
 </table></div>
@@ -3652,6 +3652,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/api/html/nm-vpn-dbus-types.html b/docs/api/html/nm-vpn-dbus-types.html
index 0105d221..dbbaeb4e 100644
--- a/docs/api/html/nm-vpn-dbus-types.html
+++ b/docs/api/html/nm-vpn-dbus-types.html
@@ -8,7 +8,7 @@
 <link rel="up" href="dbus-vpn-types.html" title="Types">
 <link rel="prev" href="dbus-vpn-types.html" title="Types">
 <link rel="next" href="ix01.html" title="Index">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -555,6 +555,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/api/html/nmcli-examples.html b/docs/api/html/nmcli-examples.html
index 12afb409..0a84e48c 100644
--- a/docs/api/html/nmcli-examples.html
+++ b/docs/api/html/nmcli-examples.html
@@ -8,7 +8,7 @@
 <link rel="up" href="manpages.html" title="Part I. Manual Pages">
 <link rel="prev" href="nmcli.html" title="nmcli">
 <link rel="next" href="nmtui.html" title="nmtui">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -279,7 +279,27 @@ IP4:192.168.1.12/24:192.168.1.1::192.168.1.1::</pre>
 </div>
 </div>
 <br class="example-break"><div class="example">
-<a name="id-1.2.5.6.12"></a><p class="title"><b>Example 11. Escaping colon characters in tabular mode</b></p>
+<a name="id-1.2.5.6.12"></a><p class="title"><b>Example 11. Adding an Ethernet connection and configuring SR-IOV VFs</b></p>
+<div class="example-contents">
+<pre class="screen"><code class="prompt">$ </code><strong class="userinput"><code>nmcli con add type ethernet con-name EthernetPF ifname em1</code></strong>
+<code class="prompt">$ </code><strong class="userinput"><code>nmcli con modify EthernetPF sriov.total-vfs 3 sriov.autoprobe-drivers false</code></strong>
+<code class="prompt">$ </code><strong class="userinput"><code>nmcli con modify EthernetPF sriov.vfs '0 mac=00:11:22:33:44:55 vlans=10, 1 trust=true spoof-check=false'</code></strong>
+<code class="prompt">$ </code><strong class="userinput"><code>nmcli con modify EthernetPF +sriov.vfs '2 max-tx-rate=20'</code></strong></pre>
+<p>
+        This example demonstrates adding an Ethernet connection for
+        physical function (PF) <span class="emphasis"><em>ens4</em></span> and
+        configuring 3 SR-IOV virtual functions (VFs) on it. The first
+        VF is configured with MAC address 00:11:22:33:44:55 and VLAN
+        10, the second one has the <span class="emphasis"><em>trust</em></span> and
+        <span class="emphasis"><em>spoof-check</em></span> features respectively enabled
+        and disabled. VF number 2 has a maximux transmission rate of
+        20Mbps. The kernel is instructed to not automatically
+        instantiate a network interface for the VFs.
+      </p>
+</div>
+</div>
+<br class="example-break"><div class="example">
+<a name="id-1.2.5.6.13"></a><p class="title"><b>Example 12. Escaping colon characters in tabular mode</b></p>
 <div class="example-contents">
 <pre class="screen"><code class="prompt">$ </code><strong class="userinput"><code>nmcli -t -f general -e yes -m tab dev show eth0</code></strong>
 GENERAL:eth0:ethernet:Intel Corporation:82567LM Gigabit Network Connection:
@@ -294,7 +314,7 @@ nager/ActiveConnection/9</pre>
 </div>
 </div>
 <br class="example-break"><div class="example">
-<a name="id-1.2.5.6.13"></a><p class="title"><b>Example 12. nmcli usage in a NetworkManager dispatcher script to make Ethernet and Wi-Fi mutually exclusive</b></p>
+<a name="id-1.2.5.6.14"></a><p class="title"><b>Example 13. nmcli usage in a NetworkManager dispatcher script to make Ethernet and Wi-Fi mutually exclusive</b></p>
 <div class="example-contents">
 <pre class="programlisting">
 #!/bin/bash
@@ -332,7 +352,7 @@ fi
 </div>
 <br class="example-break"><p><span class="bold"><strong>Example sessions of interactive connection editor</strong></span></p>
 <div class="example">
-<a name="id-1.2.5.6.15"></a><p class="title"><b>Example 13. Adding an ethernet connection profile in interactive editor (a)</b></p>
+<a name="id-1.2.5.6.16"></a><p class="title"><b>Example 14. Adding an ethernet connection profile in interactive editor (a)</b></p>
 <div class="example-contents">
 <pre class="screen"><code class="prompt">$ </code><strong class="userinput"><code>nmcli connection edit type ethernet</code></strong>
 
@@ -583,6 +603,6 @@ Connection 'ethernet-4' (de89cdeb-a3e1-4d53-8fa0-c22546c775f4) successfully
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/api/html/nmcli.html b/docs/api/html/nmcli.html
index 623a1b38..4014c714 100644
--- a/docs/api/html/nmcli.html
+++ b/docs/api/html/nmcli.html
@@ -8,7 +8,7 @@
 <link rel="up" href="manpages.html" title="Part I. Manual Pages">
 <link rel="prev" href="NetworkManager.conf.html" title="NetworkManager.conf">
 <link rel="next" href="nmcli-examples.html" title="nmcli-examples">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -2545,6 +2545,6 @@ It's equivalent to the <code class="literal">+bond.options 'option=value'</code>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/api/html/nmtui.html b/docs/api/html/nmtui.html
index ec41641b..749cf67c 100644
--- a/docs/api/html/nmtui.html
+++ b/docs/api/html/nmtui.html
@@ -8,7 +8,7 @@
 <link rel="up" href="manpages.html" title="Part I. Manual Pages">
 <link rel="prev" href="nmcli-examples.html" title="nmcli-examples">
 <link rel="next" href="nm-settings.html" title="nm-settings">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -83,6 +83,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/api/html/ref-dbus-access-points.html b/docs/api/html/ref-dbus-access-points.html
index dadd0e53..b5d99bca 100644
--- a/docs/api/html/ref-dbus-access-points.html
+++ b/docs/api/html/ref-dbus-access-points.html
@@ -8,7 +8,7 @@
 <link rel="up" href="spec.html" title="Part III. D-Bus API Reference">
 <link rel="prev" href="gdbus-org.freedesktop.NetworkManager.DHCP6Config.html" title="org.freedesktop.NetworkManager.DHCP6Config">
 <link rel="next" href="gdbus-org.freedesktop.NetworkManager.AccessPoint.html" title="org.freedesktop.NetworkManager.AccessPoint">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -27,6 +27,6 @@
 </dt></dl></div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/api/html/ref-dbus-active-connections.html b/docs/api/html/ref-dbus-active-connections.html
index 1b7e9311..0a681208 100644
--- a/docs/api/html/ref-dbus-active-connections.html
+++ b/docs/api/html/ref-dbus-active-connections.html
@@ -8,7 +8,7 @@
 <link rel="up" href="spec.html" title="Part III. D-Bus API Reference">
 <link rel="prev" href="gdbus-org.freedesktop.NetworkManager.PPP.html" title="org.freedesktop.NetworkManager.PPP">
 <link rel="next" href="gdbus-org.freedesktop.NetworkManager.Connection.Active.html" title="org.freedesktop.NetworkManager.Connection.Active">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -32,6 +32,6 @@
 </dl></div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/api/html/ref-dbus-agent-manager.html b/docs/api/html/ref-dbus-agent-manager.html
index 1d21328f..aaa9067b 100644
--- a/docs/api/html/ref-dbus-agent-manager.html
+++ b/docs/api/html/ref-dbus-agent-manager.html
@@ -8,7 +8,7 @@
 <link rel="up" href="spec.html" title="Part III. D-Bus API Reference">
 <link rel="prev" href="gdbus-org.freedesktop.NetworkManager.html" title="org.freedesktop.NetworkManager">
 <link rel="next" href="gdbus-org.freedesktop.NetworkManager.AgentManager.html" title="org.freedesktop.NetworkManager.AgentManager">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -27,6 +27,6 @@
 </dt></dl></div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/api/html/ref-dbus-checkpoint.html b/docs/api/html/ref-dbus-checkpoint.html
index ccac4fe2..fd25cc3a 100644
--- a/docs/api/html/ref-dbus-checkpoint.html
+++ b/docs/api/html/ref-dbus-checkpoint.html
@@ -8,7 +8,7 @@
 <link rel="up" href="spec.html" title="Part III. D-Bus API Reference">
 <link rel="prev" href="gdbus-org.freedesktop.NetworkManager.AccessPoint.html" title="org.freedesktop.NetworkManager.AccessPoint">
 <link rel="next" href="gdbus-org.freedesktop.NetworkManager.Checkpoint.html" title="org.freedesktop.NetworkManager.Checkpoint">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -27,6 +27,6 @@
 </dt></dl></div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/api/html/ref-dbus-devices.html b/docs/api/html/ref-dbus-devices.html
index b6fec15d..ee7f14ad 100644
--- a/docs/api/html/ref-dbus-devices.html
+++ b/docs/api/html/ref-dbus-devices.html
@@ -8,7 +8,7 @@
 <link rel="up" href="spec.html" title="Part III. D-Bus API Reference">
 <link rel="prev" href="gdbus-org.freedesktop.NetworkManager.Settings.Connection.html" title="org.freedesktop.NetworkManager.Settings.Connection">
 <link rel="next" href="gdbus-org.freedesktop.NetworkManager.Device.html" title="org.freedesktop.NetworkManager.Device">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -113,6 +113,6 @@
 </dl></div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/api/html/ref-dbus-dhcp4-configs.html b/docs/api/html/ref-dbus-dhcp4-configs.html
index d71b71ec..9fb7a90f 100644
--- a/docs/api/html/ref-dbus-dhcp4-configs.html
+++ b/docs/api/html/ref-dbus-dhcp4-configs.html
@@ -8,7 +8,7 @@
 <link rel="up" href="spec.html" title="Part III. D-Bus API Reference">
 <link rel="prev" href="gdbus-org.freedesktop.NetworkManager.IP6Config.html" title="org.freedesktop.NetworkManager.IP6Config">
 <link rel="next" href="gdbus-org.freedesktop.NetworkManager.DHCP4Config.html" title="org.freedesktop.NetworkManager.DHCP4Config">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -27,6 +27,6 @@
 </dt></dl></div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/api/html/ref-dbus-dhcp6-configs.html b/docs/api/html/ref-dbus-dhcp6-configs.html
index ef3f88f5..a0e62c4e 100644
--- a/docs/api/html/ref-dbus-dhcp6-configs.html
+++ b/docs/api/html/ref-dbus-dhcp6-configs.html
@@ -8,7 +8,7 @@
 <link rel="up" href="spec.html" title="Part III. D-Bus API Reference">
 <link rel="prev" href="gdbus-org.freedesktop.NetworkManager.DHCP4Config.html" title="org.freedesktop.NetworkManager.DHCP4Config">
 <link rel="next" href="gdbus-org.freedesktop.NetworkManager.DHCP6Config.html" title="org.freedesktop.NetworkManager.DHCP6Config">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -27,6 +27,6 @@
 </dt></dl></div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/api/html/ref-dbus-dns-manager.html b/docs/api/html/ref-dbus-dns-manager.html
index 944fd9fb..593f16ae 100644
--- a/docs/api/html/ref-dbus-dns-manager.html
+++ b/docs/api/html/ref-dbus-dns-manager.html
@@ -8,7 +8,7 @@
 <link rel="up" href="spec.html" title="Part III. D-Bus API Reference">
 <link rel="prev" href="gdbus-org.freedesktop.NetworkManager.AgentManager.html" title="org.freedesktop.NetworkManager.AgentManager">
 <link rel="next" href="gdbus-org.freedesktop.NetworkManager.DnsManager.html" title="org.freedesktop.NetworkManager.DnsManager">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -27,6 +27,6 @@
 </dt></dl></div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/api/html/ref-dbus-ip4-configs.html b/docs/api/html/ref-dbus-ip4-configs.html
index e6a256dc..dd91e4b5 100644
--- a/docs/api/html/ref-dbus-ip4-configs.html
+++ b/docs/api/html/ref-dbus-ip4-configs.html
@@ -8,7 +8,7 @@
 <link rel="up" href="spec.html" title="Part III. D-Bus API Reference">
 <link rel="prev" href="gdbus-org.freedesktop.NetworkManager.VPN.Connection.html" title="org.freedesktop.NetworkManager.VPN.Connection">
 <link rel="next" href="gdbus-org.freedesktop.NetworkManager.IP4Config.html" title="org.freedesktop.NetworkManager.IP4Config">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -27,6 +27,6 @@
 </dt></dl></div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/api/html/ref-dbus-ip6-configs.html b/docs/api/html/ref-dbus-ip6-configs.html
index 91ab1037..604fd372 100644
--- a/docs/api/html/ref-dbus-ip6-configs.html
+++ b/docs/api/html/ref-dbus-ip6-configs.html
@@ -8,7 +8,7 @@
 <link rel="up" href="spec.html" title="Part III. D-Bus API Reference">
 <link rel="prev" href="gdbus-org.freedesktop.NetworkManager.IP4Config.html" title="org.freedesktop.NetworkManager.IP4Config">
 <link rel="next" href="gdbus-org.freedesktop.NetworkManager.IP6Config.html" title="org.freedesktop.NetworkManager.IP6Config">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -27,6 +27,6 @@
 </dt></dl></div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/api/html/ref-dbus-manager.html b/docs/api/html/ref-dbus-manager.html
index 3779d3fa..963de31f 100644
--- a/docs/api/html/ref-dbus-manager.html
+++ b/docs/api/html/ref-dbus-manager.html
@@ -8,7 +8,7 @@
 <link rel="up" href="spec.html" title="Part III. D-Bus API Reference">
 <link rel="prev" href="spec.html" title="Part III. D-Bus API Reference">
 <link rel="next" href="gdbus-org.freedesktop.NetworkManager.html" title="org.freedesktop.NetworkManager">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -27,6 +27,6 @@
 </dt></dl></div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/api/html/ref-dbus-settings-manager.html b/docs/api/html/ref-dbus-settings-manager.html
index 1ce186fc..941d4c7b 100644
--- a/docs/api/html/ref-dbus-settings-manager.html
+++ b/docs/api/html/ref-dbus-settings-manager.html
@@ -8,7 +8,7 @@
 <link rel="up" href="spec.html" title="Part III. D-Bus API Reference">
 <link rel="prev" href="gdbus-org.freedesktop.NetworkManager.DnsManager.html" title="org.freedesktop.NetworkManager.DnsManager">
 <link rel="next" href="gdbus-org.freedesktop.NetworkManager.Settings.html" title="org.freedesktop.NetworkManager.Settings">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -27,6 +27,6 @@
 </dt></dl></div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/api/html/ref-dbus-settings.html b/docs/api/html/ref-dbus-settings.html
index 83678e96..c43b2e6f 100644
--- a/docs/api/html/ref-dbus-settings.html
+++ b/docs/api/html/ref-dbus-settings.html
@@ -8,7 +8,7 @@
 <link rel="up" href="spec.html" title="Part III. D-Bus API Reference">
 <link rel="prev" href="gdbus-org.freedesktop.NetworkManager.Settings.html" title="org.freedesktop.NetworkManager.Settings">
 <link rel="next" href="gdbus-org.freedesktop.NetworkManager.Settings.Connection.html" title="org.freedesktop.NetworkManager.Settings.Connection">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -27,6 +27,6 @@
 </dt></dl></div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/api/html/ref-settings.html b/docs/api/html/ref-settings.html
index 13ea502f..c777b6b4 100644
--- a/docs/api/html/ref-settings.html
+++ b/docs/api/html/ref-settings.html
@@ -8,7 +8,7 @@
 <link rel="up" href="index.html" title="NetworkManager Reference Manual">
 <link rel="prev" href="nm-openvswitch.html" title="nm-openvswitch">
 <link rel="next" href="ch01.html" title="Configuration Settings">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -172,6 +172,6 @@
     </p>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/api/html/secret-agents.html b/docs/api/html/secret-agents.html
index 13d08184..a08ed533 100644
--- a/docs/api/html/secret-agents.html
+++ b/docs/api/html/secret-agents.html
@@ -8,7 +8,7 @@
 <link rel="up" href="index.html" title="NetworkManager Reference Manual">
 <link rel="prev" href="nm-dbus-types.html" title="NetworkManager D-Bus API Types">
 <link rel="next" href="dbus-secret-agent.html" title="Secret agents">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -33,6 +33,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/api/html/secrets-flags.html b/docs/api/html/secrets-flags.html
index 8849aec6..cbae0eba 100644
--- a/docs/api/html/secrets-flags.html
+++ b/docs/api/html/secrets-flags.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ref-settings.html" title="Part II. Network Configuration Setting Specification">
 <link rel="prev" href="settings-wpan.html" title="wpan">
 <link rel="next" href="spec.html" title="Part III. D-Bus API Reference">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -58,6 +58,6 @@
       </p>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/api/html/settings-6lowpan.html b/docs/api/html/settings-6lowpan.html
index 2877accb..ad65fe2e 100644
--- a/docs/api/html/settings-6lowpan.html
+++ b/docs/api/html/settings-6lowpan.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="Configuration Settings">
 <link rel="prev" href="settings-connection.html" title="connection">
 <link rel="next" href="settings-802-1x.html" title="802-1x">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -64,6 +64,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/api/html/settings-802-11-olpc-mesh.html b/docs/api/html/settings-802-11-olpc-mesh.html
index 8ff8b9f9..847ac54e 100644
--- a/docs/api/html/settings-802-11-olpc-mesh.html
+++ b/docs/api/html/settings-802-11-olpc-mesh.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="Configuration Settings">
 <link rel="prev" href="settings-match.html" title="match">
 <link rel="next" href="settings-ovs-bridge.html" title="ovs-bridge">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -78,6 +78,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/api/html/settings-802-11-wireless-security.html b/docs/api/html/settings-802-11-wireless-security.html
index 0127ef12..3859ff6b 100644
--- a/docs/api/html/settings-802-11-wireless-security.html
+++ b/docs/api/html/settings-802-11-wireless-security.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="Configuration Settings">
 <link rel="prev" href="settings-802-11-wireless.html" title="802-11-wireless">
 <link rel="next" href="settings-wpan.html" title="wpan">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -180,6 +180,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/api/html/settings-802-11-wireless.html b/docs/api/html/settings-802-11-wireless.html
index 4d2dc820..ee09bc6e 100644
--- a/docs/api/html/settings-802-11-wireless.html
+++ b/docs/api/html/settings-802-11-wireless.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="Configuration Settings">
 <link rel="prev" href="settings-802-3-ethernet.html" title="802-3-ethernet">
 <link rel="next" href="settings-802-11-wireless-security.html" title="802-11-wireless-security">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -174,6 +174,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/api/html/settings-802-1x.html b/docs/api/html/settings-802-1x.html
index b7d266bf..08c348b3 100644
--- a/docs/api/html/settings-802-1x.html
+++ b/docs/api/html/settings-802-1x.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="Configuration Settings">
 <link rel="prev" href="settings-6lowpan.html" title="6lowpan">
 <link rel="next" href="settings-adsl.html" title="adsl">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -324,6 +324,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/api/html/settings-802-3-ethernet.html b/docs/api/html/settings-802-3-ethernet.html
index 89de90da..a954bbf0 100644
--- a/docs/api/html/settings-802-3-ethernet.html
+++ b/docs/api/html/settings-802-3-ethernet.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="Configuration Settings">
 <link rel="prev" href="settings-wimax.html" title="wimax">
 <link rel="next" href="settings-802-11-wireless.html" title="802-11-wireless">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -150,6 +150,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/api/html/settings-adsl.html b/docs/api/html/settings-adsl.html
index 93eb0504..f3bc2f1c 100644
--- a/docs/api/html/settings-adsl.html
+++ b/docs/api/html/settings-adsl.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="Configuration Settings">
 <link rel="prev" href="settings-802-1x.html" title="802-1x">
 <link rel="next" href="settings-bluetooth.html" title="bluetooth">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -102,6 +102,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/api/html/settings-bluetooth.html b/docs/api/html/settings-bluetooth.html
index 943bc428..2cabe4db 100644
--- a/docs/api/html/settings-bluetooth.html
+++ b/docs/api/html/settings-bluetooth.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="Configuration Settings">
 <link rel="prev" href="settings-adsl.html" title="adsl">
 <link rel="next" href="settings-bond.html" title="bond">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -72,6 +72,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/api/html/settings-bond.html b/docs/api/html/settings-bond.html
index 362e6132..425a8db5 100644
--- a/docs/api/html/settings-bond.html
+++ b/docs/api/html/settings-bond.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="Configuration Settings">
 <link rel="prev" href="settings-bluetooth.html" title="bluetooth">
 <link rel="next" href="settings-bridge.html" title="bridge">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -72,6 +72,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/api/html/settings-bridge-port.html b/docs/api/html/settings-bridge-port.html
index 1e1aec94..598a99eb 100644
--- a/docs/api/html/settings-bridge-port.html
+++ b/docs/api/html/settings-bridge-port.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="Configuration Settings">
 <link rel="prev" href="settings-bridge.html" title="bridge">
 <link rel="next" href="settings-cdma.html" title="cdma">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -78,6 +78,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/api/html/settings-bridge.html b/docs/api/html/settings-bridge.html
index a12d87a1..830fe274 100644
--- a/docs/api/html/settings-bridge.html
+++ b/docs/api/html/settings-bridge.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="Configuration Settings">
 <link rel="prev" href="settings-bond.html" title="bond">
 <link rel="next" href="settings-bridge-port.html" title="bridge-port">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -120,6 +120,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/api/html/settings-cdma.html b/docs/api/html/settings-cdma.html
index 72373c45..1ba7b975 100644
--- a/docs/api/html/settings-cdma.html
+++ b/docs/api/html/settings-cdma.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="Configuration Settings">
 <link rel="prev" href="settings-bridge-port.html" title="bridge-port">
 <link rel="next" href="settings-dcb.html" title="dcb">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -90,6 +90,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/api/html/settings-connection.html b/docs/api/html/settings-connection.html
index d8da2c8c..0da3cf89 100644
--- a/docs/api/html/settings-connection.html
+++ b/docs/api/html/settings-connection.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="Configuration Settings">
 <link rel="prev" href="ch01.html" title="Configuration Settings">
 <link rel="next" href="settings-6lowpan.html" title="6lowpan">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -165,7 +165,7 @@
 <td><pre class="screen">stable-id</pre></td>
 <td><pre class="screen">string</pre></td>
 <td><pre class="screen"></pre></td>
-<td>This represents the identity of the connection used for various purposes. It allows to configure multiple profiles to share the identity. Also, the stable-id can contain placeholders that are substituted dynamically and deterministically depending on the context. The stable-id is used for generating IPv6 stable private addresses with ipv6.addr-gen-mode=stable-privacy. It is also used to seed the generated cloned MAC address for ethernet.cloned-mac-address=stable and wifi.cloned-mac-address=stable. It is also used as DHCP client identifier with ipv4.dhcp-client-id=stable and to derive the DHCP DUID with ipv6.dhcp-duid=stable-[llt,ll,uuid]. Note that depending on the context where it is used, other parameters are also seeded into the generation algorithm. For example, a per-host key is commonly also included, so that different systems end up generating different IDs. Or with ipv6.addr-gen-mode=stable-privacy, also the device's name is included, so that different interfaces yield different addresses. The '$' character is treated special to perform dynamic substitutions at runtime. Currently supported are "${CONNECTION}", "${DEVICE}", "${BOOT}", "${RANDOM}". These effectively create unique IDs per-connection, per-device, per-boot, or every time. Note that "${DEVICE}" corresponds the the interface name of the device. Any unrecognized patterns following '$' are treated verbatim, however are reserved for future use. You are thus advised to avoid '$' or escape it as "$$". For example, set it to "${CONNECTION}-${BOOT}-${DEVICE}" to create a unique id for this connection that changes with every reboot and differs depending on the interface where the profile activates. If the value is unset, a global connection default is consulted. If the value is still unset, the default is similar to "${CONNECTION}" and uses a unique, fixed ID for the connection.</td>
+<td>This represents the identity of the connection used for various purposes. It allows to configure multiple profiles to share the identity. Also, the stable-id can contain placeholders that are substituted dynamically and deterministically depending on the context. The stable-id is used for generating IPv6 stable private addresses with ipv6.addr-gen-mode=stable-privacy. It is also used to seed the generated cloned MAC address for ethernet.cloned-mac-address=stable and wifi.cloned-mac-address=stable. It is also used as DHCP client identifier with ipv4.dhcp-client-id=stable and to derive the DHCP DUID with ipv6.dhcp-duid=stable-[llt,ll,uuid]. Note that depending on the context where it is used, other parameters are also seeded into the generation algorithm. For example, a per-host key is commonly also included, so that different systems end up generating different IDs. Or with ipv6.addr-gen-mode=stable-privacy, also the device's name is included, so that different interfaces yield different addresses. The '$' character is treated special to perform dynamic substitutions at runtime. Currently supported are "${CONNECTION}", "${DEVICE}", "${MAC}", "${BOOT}", "${RANDOM}". These effectively create unique IDs per-connection, per-device, per-boot, or every time. Note that "${DEVICE}" corresponds the the interface name of the device and "${MAC}" is the permanent MAC address of the device. Any unrecognized patterns following '$' are treated verbatim, however are reserved for future use. You are thus advised to avoid '$' or escape it as "$$". For example, set it to "${CONNECTION}-${BOOT}-${DEVICE}" to create a unique id for this connection that changes with every reboot and differs depending on the interface where the profile activates. If the value is unset, a global connection default is consulted. If the value is still unset, the default is similar to "${CONNECTION}" and uses a unique, fixed ID for the connection.</td>
 </tr>
 <tr>
 <td><pre class="screen">timestamp</pre></td>
@@ -198,6 +198,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/api/html/settings-dcb.html b/docs/api/html/settings-dcb.html
index 73289d0b..f41141f6 100644
--- a/docs/api/html/settings-dcb.html
+++ b/docs/api/html/settings-dcb.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="Configuration Settings">
 <link rel="prev" href="settings-cdma.html" title="cdma">
 <link rel="next" href="settings-dummy.html" title="dummy">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -150,6 +150,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/api/html/settings-dummy.html b/docs/api/html/settings-dummy.html
index a4a98da7..5e0951b3 100644
--- a/docs/api/html/settings-dummy.html
+++ b/docs/api/html/settings-dummy.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="Configuration Settings">
 <link rel="prev" href="settings-dcb.html" title="dcb">
 <link rel="next" href="settings-ethtool.html" title="ethtool">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -59,6 +59,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/api/html/settings-ethtool.html b/docs/api/html/settings-ethtool.html
index 518886d6..c76c1b50 100644
--- a/docs/api/html/settings-ethtool.html
+++ b/docs/api/html/settings-ethtool.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="Configuration Settings">
 <link rel="prev" href="settings-dummy.html" title="dummy">
 <link rel="next" href="settings-generic.html" title="generic">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -59,6 +59,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/api/html/settings-generic.html b/docs/api/html/settings-generic.html
index 5ae9d55d..5c8dc6a5 100644
--- a/docs/api/html/settings-generic.html
+++ b/docs/api/html/settings-generic.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="Configuration Settings">
 <link rel="prev" href="settings-ethtool.html" title="ethtool">
 <link rel="next" href="settings-gsm.html" title="gsm">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -59,6 +59,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/api/html/settings-gsm.html b/docs/api/html/settings-gsm.html
index 5fef63a7..75ea0ef2 100644
--- a/docs/api/html/settings-gsm.html
+++ b/docs/api/html/settings-gsm.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="Configuration Settings">
 <link rel="prev" href="settings-generic.html" title="generic">
 <link rel="next" href="settings-infiniband.html" title="infiniband">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -138,6 +138,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/api/html/settings-infiniband.html b/docs/api/html/settings-infiniband.html
index af0ee798..831da8af 100644
--- a/docs/api/html/settings-infiniband.html
+++ b/docs/api/html/settings-infiniband.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="Configuration Settings">
 <link rel="prev" href="settings-gsm.html" title="gsm">
 <link rel="next" href="settings-ipv4.html" title="ipv4">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -90,6 +90,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/api/html/settings-ip-tunnel.html b/docs/api/html/settings-ip-tunnel.html
index 764b36e7..ee47fde9 100644
--- a/docs/api/html/settings-ip-tunnel.html
+++ b/docs/api/html/settings-ip-tunnel.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="Configuration Settings">
 <link rel="prev" href="settings-ipv6.html" title="ipv6">
 <link rel="next" href="settings-macsec.html" title="macsec">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -138,6 +138,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/api/html/settings-ipv4.html b/docs/api/html/settings-ipv4.html
index f1755230..ae58a2d6 100644
--- a/docs/api/html/settings-ipv4.html
+++ b/docs/api/html/settings-ipv4.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="Configuration Settings">
 <link rel="prev" href="settings-infiniband.html" title="infiniband">
 <link rel="next" href="settings-ipv6.html" title="ipv6">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -75,7 +75,7 @@
 <td><pre class="screen">dhcp-client-id</pre></td>
 <td><pre class="screen">string</pre></td>
 <td><pre class="screen"></pre></td>
-<td>A string sent to the DHCP server to identify the local machine which the DHCP server may use to customize the DHCP lease and options. When the property is a hex string ('aa:bb:cc') it is interpreted as a binary client ID, in which case the first byte is assumed to be the 'type' field as per RFC 2132 section 9.14 and the remaining bytes may be an hardware address (e.g. '01:xx:xx:xx:xx:xx:xx' where 1 is the Ethernet ARP type and the rest is a MAC address). If the property is not a hex string it is considered as a non-hardware-address client ID and the 'type' field is set to 0. The special values "mac" and "perm-mac" are supported, which use the current or permanent MAC address of the device to generate a client identifier with type ethernet (01). Currently, these options only work for ethernet type of links. The special value "stable" is supported to generate a type 0 client identifier based on the stable-id (see connection.stable-id) and a per-host key. If unset, a globally configured default is used. If still unset, the client-id from the last lease is reused.</td>
+<td>A string sent to the DHCP server to identify the local machine which the DHCP server may use to customize the DHCP lease and options. When the property is a hex string ('aa:bb:cc') it is interpreted as a binary client ID, in which case the first byte is assumed to be the 'type' field as per RFC 2132 section 9.14 and the remaining bytes may be an hardware address (e.g. '01:xx:xx:xx:xx:xx:xx' where 1 is the Ethernet ARP type and the rest is a MAC address). If the property is not a hex string it is considered as a non-hardware-address client ID and the 'type' field is set to 0. The special values "mac" and "perm-mac" are supported, which use the current or permanent MAC address of the device to generate a client identifier with type ethernet (01). Currently, these options only work for ethernet type of links. The special value "duid" generates a RFC4361-compliant client identifier based on a hash of the interface name as IAID and /etc/machine-id. The special value "stable" is supported to generate a type 0 client identifier based on the stable-id (see connection.stable-id) and a per-host key. If you set the stable-id, you may want to include the "${DEVICE}" or "${MAC}" specifier to get a per-device key. If unset, a globally configured default is used. If still unset, the default depends on the DHCP plugin.</td>
 </tr>
 <tr>
 <td><pre class="screen">dhcp-fqdn</pre></td>
@@ -192,6 +192,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/api/html/settings-ipv6.html b/docs/api/html/settings-ipv6.html
index 71fe91ae..776b5022 100644
--- a/docs/api/html/settings-ipv6.html
+++ b/docs/api/html/settings-ipv6.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="Configuration Settings">
 <link rel="prev" href="settings-ipv4.html" title="ipv4">
 <link rel="next" href="settings-ip-tunnel.html" title="ip-tunnel">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -81,7 +81,7 @@
 <td><pre class="screen">dhcp-duid</pre></td>
 <td><pre class="screen">string</pre></td>
 <td><pre class="screen"></pre></td>
-<td>A string containing the DHCPv6 Unique Identifier (DUID) used by the dhcp client to identify itself to DHCPv6 servers (RFC 3315). The DUID is carried in the Client Identifier option. If the property is a hex string ('aa:bb:cc') it is interpreted as a binary DUID and filled as an opaque value in the Client Identifier option. The special value "lease" will retrieve the DUID previously used from the lease file belonging to the connection. If no DUID is found and "dhclient" is the configured dhcp client, the DUID is searched in the system-wide dhclient lease file. If still no DUID is found, or another dhcp client is used, a global and permanent DUID-UUID (RFC 6355) will be generated based on the machine-id. The special values "llt" and "ll" will generate a DUID of type LLT or LL (see RFC 3315) based on the current MAC address of the device. In order to try providing a stable DUID-LLT, the time field will contain a constant timestamp that is used globally (for all profiles) and persisted to disk. The special values "stable-llt", "stable-ll" and "stable-uuid" will generate a DUID of the corresponding type, derived from the connection's stable-id and a per-host unique key. So, the link-layer address of "stable-ll" and "stable-llt" will be a generated address derived from the stable id. The DUID-LLT time value in the "stable-llt" option will be picked among a static timespan of three years (the upper bound of the interval is the same constant timestamp used in "llt"). When the property is unset, the global value provided for "ipv6.dhcp-duid" is used. If no global value is provided, the default "lease" value is assumed.</td>
+<td>A string containing the DHCPv6 Unique Identifier (DUID) used by the dhcp client to identify itself to DHCPv6 servers (RFC 3315). The DUID is carried in the Client Identifier option. If the property is a hex string ('aa:bb:cc') it is interpreted as a binary DUID and filled as an opaque value in the Client Identifier option. The special value "lease" will retrieve the DUID previously used from the lease file belonging to the connection. If no DUID is found and "dhclient" is the configured dhcp client, the DUID is searched in the system-wide dhclient lease file. If still no DUID is found, or another dhcp client is used, a global and permanent DUID-UUID (RFC 6355) will be generated based on the machine-id. The special values "llt" and "ll" will generate a DUID of type LLT or LL (see RFC 3315) based on the current MAC address of the device. In order to try providing a stable DUID-LLT, the time field will contain a constant timestamp that is used globally (for all profiles) and persisted to disk. The special values "stable-llt", "stable-ll" and "stable-uuid" will generate a DUID of the corresponding type, derived from the connection's stable-id and a per-host unique key. You may want to include the "${DEVICE}" or "${MAC}" specifier in the stable-id, in case this profile gets activated on multiple devices. So, the link-layer address of "stable-ll" and "stable-llt" will be a generated address derived from the stable id. The DUID-LLT time value in the "stable-llt" option will be picked among a static timespan of three years (the upper bound of the interval is the same constant timestamp used in "llt"). When the property is unset, the global value provided for "ipv6.dhcp-duid" is used. If no global value is provided, the default "lease" value is assumed.</td>
 </tr>
 <tr>
 <td><pre class="screen">dhcp-hostname</pre></td>
@@ -204,6 +204,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/api/html/settings-macsec.html b/docs/api/html/settings-macsec.html
index a465e240..f3e2c564 100644
--- a/docs/api/html/settings-macsec.html
+++ b/docs/api/html/settings-macsec.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="Configuration Settings">
 <link rel="prev" href="settings-ip-tunnel.html" title="ip-tunnel">
 <link rel="next" href="settings-macvlan.html" title="macvlan">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -114,6 +114,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/api/html/settings-macvlan.html b/docs/api/html/settings-macvlan.html
index fa8665d6..ff792011 100644
--- a/docs/api/html/settings-macvlan.html
+++ b/docs/api/html/settings-macvlan.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="Configuration Settings">
 <link rel="prev" href="settings-macsec.html" title="macsec">
 <link rel="next" href="settings-match.html" title="match">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -84,6 +84,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/api/html/settings-match.html b/docs/api/html/settings-match.html
index f47231ae..994ece60 100644
--- a/docs/api/html/settings-match.html
+++ b/docs/api/html/settings-match.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="Configuration Settings">
 <link rel="prev" href="settings-macvlan.html" title="macvlan">
 <link rel="next" href="settings-802-11-olpc-mesh.html" title="802-11-olpc-mesh">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -64,6 +64,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/api/html/settings-ovs-bridge.html b/docs/api/html/settings-ovs-bridge.html
index 23c1056f..c46a2f17 100644
--- a/docs/api/html/settings-ovs-bridge.html
+++ b/docs/api/html/settings-ovs-bridge.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="Configuration Settings">
 <link rel="prev" href="settings-802-11-olpc-mesh.html" title="802-11-olpc-mesh">
 <link rel="next" href="settings-ovs-interface.html" title="ovs-interface">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -84,6 +84,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/api/html/settings-ovs-interface.html b/docs/api/html/settings-ovs-interface.html
index 9fa8f619..7eb583e0 100644
--- a/docs/api/html/settings-ovs-interface.html
+++ b/docs/api/html/settings-ovs-interface.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="Configuration Settings">
 <link rel="prev" href="settings-ovs-bridge.html" title="ovs-bridge">
 <link rel="next" href="settings-ovs-patch.html" title="ovs-patch">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -64,6 +64,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/api/html/settings-ovs-patch.html b/docs/api/html/settings-ovs-patch.html
index 98894261..e3f41bd3 100644
--- a/docs/api/html/settings-ovs-patch.html
+++ b/docs/api/html/settings-ovs-patch.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="Configuration Settings">
 <link rel="prev" href="settings-ovs-interface.html" title="ovs-interface">
 <link rel="next" href="settings-ovs-port.html" title="ovs-port">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -64,6 +64,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/api/html/settings-ovs-port.html b/docs/api/html/settings-ovs-port.html
index 691ff15e..73889a89 100644
--- a/docs/api/html/settings-ovs-port.html
+++ b/docs/api/html/settings-ovs-port.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="Configuration Settings">
 <link rel="prev" href="settings-ovs-patch.html" title="ovs-patch">
 <link rel="next" href="settings-ppp.html" title="ppp">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -96,6 +96,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/api/html/settings-ppp.html b/docs/api/html/settings-ppp.html
index e0fcb005..1d0ac104 100644
--- a/docs/api/html/settings-ppp.html
+++ b/docs/api/html/settings-ppp.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="Configuration Settings">
 <link rel="prev" href="settings-ovs-port.html" title="ovs-port">
 <link rel="next" href="settings-pppoe.html" title="pppoe">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -168,6 +168,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/api/html/settings-pppoe.html b/docs/api/html/settings-pppoe.html
index b5128547..41264737 100644
--- a/docs/api/html/settings-pppoe.html
+++ b/docs/api/html/settings-pppoe.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="Configuration Settings">
 <link rel="prev" href="settings-ppp.html" title="ppp">
 <link rel="next" href="settings-proxy.html" title="proxy">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -90,6 +90,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/api/html/settings-proxy.html b/docs/api/html/settings-proxy.html
index 15ae132c..4b87ede1 100644
--- a/docs/api/html/settings-proxy.html
+++ b/docs/api/html/settings-proxy.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="Configuration Settings">
 <link rel="prev" href="settings-pppoe.html" title="pppoe">
 <link rel="next" href="settings-serial.html" title="serial">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -84,6 +84,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/api/html/settings-serial.html b/docs/api/html/settings-serial.html
index d65344f7..e503f732 100644
--- a/docs/api/html/settings-serial.html
+++ b/docs/api/html/settings-serial.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="Configuration Settings">
 <link rel="prev" href="settings-proxy.html" title="proxy">
 <link rel="next" href="settings-sriov.html" title="sriov">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -90,6 +90,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/api/html/settings-sriov.html b/docs/api/html/settings-sriov.html
index 19bfa689..b5ecc029 100644
--- a/docs/api/html/settings-sriov.html
+++ b/docs/api/html/settings-sriov.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="Configuration Settings">
 <link rel="prev" href="settings-serial.html" title="serial">
 <link rel="next" href="settings-tc.html" title="tc">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -63,13 +63,13 @@
 <td><pre class="screen">total-vfs</pre></td>
 <td><pre class="screen">uint32</pre></td>
 <td><pre class="screen">0</pre></td>
-<td>The total number of virtual functions to create.</td>
+<td>The total number of virtual functions to create. Note that when the sriov setting is present NetworkManager enforces the number of virtual functions on the interface also when it is zero. To prevent any changes to SR-IOV parameters don't add a sriov setting to the connection.</td>
 </tr>
 <tr>
 <td><pre class="screen">vfs</pre></td>
 <td><pre class="screen">array of vardict</pre></td>
 <td><pre class="screen">[]</pre></td>
-<td>Array of virtual function descriptors. Each VF descriptor is a dictionary mapping attribute names to GVariant values. The 'index' entry is mandatory for each VF. When represented as string a VF is in the form: "INDEX [ATTR=VALUE[ ATTR=VALUE]...]". for example: "2 mac=00:11:22:33:44:55 spoof-check=true". The "vlans" attribute is represented as a semicolor-separated list of VLAN descriptors, where each descriptor has the form "ID[.PRIORITY[.PROTO]]". PROTO can be either 'q' for 802.1Q (the default) or 'ad' for 802.1ad.</td>
+<td>Array of virtual function descriptors. Each VF descriptor is a dictionary mapping attribute names to GVariant values. The 'index' entry is mandatory for each VF. When represented as string a VF is in the form: "INDEX [ATTR=VALUE[ ATTR=VALUE]...]". for example: "2 mac=00:11:22:33:44:55 spoof-check=true". Multiple VFs can be specified using a comma as separator. Currently the following attributes are supported: mac, spoof-check, trust, min-tx-rate, max-tx-rate, vlans. The "vlans" attribute is represented as a semicolon-separated list of VLAN descriptors, where each descriptor has the form "ID[.PRIORITY[.PROTO]]". PROTO can be either 'q' for 802.1Q (the default) or 'ad' for 802.1ad.</td>
 </tr>
 </tbody>
 </table></div>
@@ -78,6 +78,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/api/html/settings-tc.html b/docs/api/html/settings-tc.html
index 2dccdd6a..6de65275 100644
--- a/docs/api/html/settings-tc.html
+++ b/docs/api/html/settings-tc.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="Configuration Settings">
 <link rel="prev" href="settings-sriov.html" title="sriov">
 <link rel="next" href="settings-team.html" title="team">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -72,6 +72,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/api/html/settings-team-port.html b/docs/api/html/settings-team-port.html
index 714eb592..c0698945 100644
--- a/docs/api/html/settings-team-port.html
+++ b/docs/api/html/settings-team-port.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="Configuration Settings">
 <link rel="prev" href="settings-team.html" title="team">
 <link rel="next" href="settings-tun.html" title="tun">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -102,6 +102,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/api/html/settings-team.html b/docs/api/html/settings-team.html
index 9589bcbb..4711e700 100644
--- a/docs/api/html/settings-team.html
+++ b/docs/api/html/settings-team.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="Configuration Settings">
 <link rel="prev" href="settings-tc.html" title="tc">
 <link rel="next" href="settings-team-port.html" title="team-port">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -162,6 +162,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/api/html/settings-tun.html b/docs/api/html/settings-tun.html
index 6c33ae93..14f1c2ea 100644
--- a/docs/api/html/settings-tun.html
+++ b/docs/api/html/settings-tun.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="Configuration Settings">
 <link rel="prev" href="settings-team-port.html" title="team-port">
 <link rel="next" href="settings-user.html" title="user">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -96,6 +96,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/api/html/settings-user.html b/docs/api/html/settings-user.html
index c2852485..0e409100 100644
--- a/docs/api/html/settings-user.html
+++ b/docs/api/html/settings-user.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="Configuration Settings">
 <link rel="prev" href="settings-tun.html" title="tun">
 <link rel="next" href="settings-vlan.html" title="vlan">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -64,6 +64,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/api/html/settings-vlan.html b/docs/api/html/settings-vlan.html
index 5eb1ba8c..f975022c 100644
--- a/docs/api/html/settings-vlan.html
+++ b/docs/api/html/settings-vlan.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="Configuration Settings">
 <link rel="prev" href="settings-user.html" title="user">
 <link rel="next" href="settings-vpn.html" title="vpn">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -96,6 +96,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/api/html/settings-vpn.html b/docs/api/html/settings-vpn.html
index f3720792..1a964dd6 100644
--- a/docs/api/html/settings-vpn.html
+++ b/docs/api/html/settings-vpn.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="Configuration Settings">
 <link rel="prev" href="settings-vlan.html" title="vlan">
 <link rel="next" href="settings-vxlan.html" title="vxlan">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -96,6 +96,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/api/html/settings-vxlan.html b/docs/api/html/settings-vxlan.html
index 4867b0ab..14f48141 100644
--- a/docs/api/html/settings-vxlan.html
+++ b/docs/api/html/settings-vxlan.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="Configuration Settings">
 <link rel="prev" href="settings-vpn.html" title="vpn">
 <link rel="next" href="settings-wimax.html" title="wimax">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -156,6 +156,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/api/html/settings-wimax.html b/docs/api/html/settings-wimax.html
index af9c07a4..b00506af 100644
--- a/docs/api/html/settings-wimax.html
+++ b/docs/api/html/settings-wimax.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="Configuration Settings">
 <link rel="prev" href="settings-vxlan.html" title="vxlan">
 <link rel="next" href="settings-802-3-ethernet.html" title="802-3-ethernet">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -72,6 +72,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/api/html/settings-wpan.html b/docs/api/html/settings-wpan.html
index bc07cadc..62f851ae 100644
--- a/docs/api/html/settings-wpan.html
+++ b/docs/api/html/settings-wpan.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="Configuration Settings">
 <link rel="prev" href="settings-802-11-wireless-security.html" title="802-11-wireless-security">
 <link rel="next" href="secrets-flags.html" title="Secret flag types">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -78,6 +78,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/api/html/spec.html b/docs/api/html/spec.html
index 9fafa20d..aa6c22b5 100644
--- a/docs/api/html/spec.html
+++ b/docs/api/html/spec.html
@@ -8,7 +8,7 @@
 <link rel="up" href="index.html" title="NetworkManager Reference Manual">
 <link rel="prev" href="secrets-flags.html" title="Secret flag types">
 <link rel="next" href="ref-dbus-manager.html" title="The /org/freedesktop/NetworkManager object">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -180,6 +180,6 @@
     </p>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/api/html/vpn-plugins.html b/docs/api/html/vpn-plugins.html
index 440f513d..f2993ec5 100644
--- a/docs/api/html/vpn-plugins.html
+++ b/docs/api/html/vpn-plugins.html
@@ -8,7 +8,7 @@
 <link rel="up" href="index.html" title="NetworkManager Reference Manual">
 <link rel="prev" href="gdbus-org.freedesktop.NetworkManager.SecretAgent.html" title="org.freedesktop.NetworkManager.SecretAgent">
 <link rel="next" href="dbus-vpn-plugin.html" title="VPN services">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -37,6 +37,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/api/network-manager-docs.xml b/docs/api/network-manager-docs.xml
index 5679f4b4..06ac3741 100644
--- a/docs/api/network-manager-docs.xml
+++ b/docs/api/network-manager-docs.xml
@@ -257,15 +257,6 @@
       <title>Types</title>
       <xi:include href="../../libnm-core/nm-dbus-types.xml"/>
     </chapter>
-
-    <!--
-      These are obsolete and intentionally ommitted from the manual since they can't
-      appear on the D-Bus API of the present version of NetworkManager.
-      Keep them here so that "make check" won't think that they were skipped accidentally .
-      <xi:include href="dbus-org.freedesktop.NetworkManager.Device.WiMax.xml"/>
-      <xi:include href="dbus-org.freedesktop.NetworkManager.WiMax.Nsp.xml"/>
-    -->
-
   </part>
 
   <part id="secret-agents">
diff --git a/docs/api/settings-spec.xml b/docs/api/settings-spec.xml
index e967773a..d31d299e 100644
--- a/docs/api/settings-spec.xml
+++ b/docs/api/settings-spec.xml
@@ -22,7 +22,7 @@
     <row><entry><screen>read-only<indexterm zone="settings-connection"><primary sortas="read-only">read-only</primary></indexterm></screen></entry><entry><screen>boolean</screen></entry><entry><screen>FALSE</screen></entry><entry>FALSE if the connection can be modified using the provided settings service's D-Bus interface with the right privileges, or TRUE if the connection is read-only and cannot be modified.</entry></row>
     <row><entry><screen>secondaries<indexterm zone="settings-connection"><primary sortas="secondaries">secondaries</primary></indexterm></screen></entry><entry><screen>array of string</screen></entry><entry><screen>[]</screen></entry><entry>List of connection UUIDs that should be activated when the base connection itself is activated. Currently only VPN connections are supported.</entry></row>
     <row><entry><screen>slave-type<indexterm zone="settings-connection"><primary sortas="slave-type">slave-type</primary></indexterm></screen></entry><entry><screen>string</screen></entry><entry><screen/></entry><entry>Setting name of the device type of this slave's master connection (eg, "bond"), or NULL if this connection is not a slave.</entry></row>
-    <row><entry><screen>stable-id<indexterm zone="settings-connection"><primary sortas="stable-id">stable-id</primary></indexterm></screen></entry><entry><screen>string</screen></entry><entry><screen/></entry><entry>This represents the identity of the connection used for various purposes. It allows to configure multiple profiles to share the identity. Also, the stable-id can contain placeholders that are substituted dynamically and deterministically depending on the context. The stable-id is used for generating IPv6 stable private addresses with ipv6.addr-gen-mode=stable-privacy. It is also used to seed the generated cloned MAC address for ethernet.cloned-mac-address=stable and wifi.cloned-mac-address=stable. It is also used as DHCP client identifier with ipv4.dhcp-client-id=stable and to derive the DHCP DUID with ipv6.dhcp-duid=stable-[llt,ll,uuid]. Note that depending on the context where it is used, other parameters are also seeded into the generation algorithm. For example, a per-host key is commonly also included, so that different systems end up generating different IDs. Or with ipv6.addr-gen-mode=stable-privacy, also the device's name is included, so that different interfaces yield different addresses. The '$' character is treated special to perform dynamic substitutions at runtime. Currently supported are "${CONNECTION}", "${DEVICE}", "${BOOT}", "${RANDOM}". These effectively create unique IDs per-connection, per-device, per-boot, or every time. Note that "${DEVICE}" corresponds the the interface name of the device. Any unrecognized patterns following '$' are treated verbatim, however are reserved for future use. You are thus advised to avoid '$' or escape it as "$$". For example, set it to "${CONNECTION}-${BOOT}-${DEVICE}" to create a unique id for this connection that changes with every reboot and differs depending on the interface where the profile activates. If the value is unset, a global connection default is consulted. If the value is still unset, the default is similar to "${CONNECTION}" and uses a unique, fixed ID for the connection.</entry></row>
+    <row><entry><screen>stable-id<indexterm zone="settings-connection"><primary sortas="stable-id">stable-id</primary></indexterm></screen></entry><entry><screen>string</screen></entry><entry><screen/></entry><entry>This represents the identity of the connection used for various purposes. It allows to configure multiple profiles to share the identity. Also, the stable-id can contain placeholders that are substituted dynamically and deterministically depending on the context. The stable-id is used for generating IPv6 stable private addresses with ipv6.addr-gen-mode=stable-privacy. It is also used to seed the generated cloned MAC address for ethernet.cloned-mac-address=stable and wifi.cloned-mac-address=stable. It is also used as DHCP client identifier with ipv4.dhcp-client-id=stable and to derive the DHCP DUID with ipv6.dhcp-duid=stable-[llt,ll,uuid]. Note that depending on the context where it is used, other parameters are also seeded into the generation algorithm. For example, a per-host key is commonly also included, so that different systems end up generating different IDs. Or with ipv6.addr-gen-mode=stable-privacy, also the device's name is included, so that different interfaces yield different addresses. The '$' character is treated special to perform dynamic substitutions at runtime. Currently supported are "${CONNECTION}", "${DEVICE}", "${MAC}", "${BOOT}", "${RANDOM}". These effectively create unique IDs per-connection, per-device, per-boot, or every time. Note that "${DEVICE}" corresponds the the interface name of the device and "${MAC}" is the permanent MAC address of the device. Any unrecognized patterns following '$' are treated verbatim, however are reserved for future use. You are thus advised to avoid '$' or escape it as "$$". For example, set it to "${CONNECTION}-${BOOT}-${DEVICE}" to create a unique id for this connection that changes with every reboot and differs depending on the interface where the profile activates. If the value is unset, a global connection default is consulted. If the value is still unset, the default is similar to "${CONNECTION}" and uses a unique, fixed ID for the connection.</entry></row>
     <row><entry><screen>timestamp<indexterm zone="settings-connection"><primary sortas="timestamp">timestamp</primary></indexterm></screen></entry><entry><screen>uint64</screen></entry><entry><screen>0</screen></entry><entry>The time, in seconds since the Unix Epoch, that the connection was last _successfully_ fully activated. NetworkManager updates the connection timestamp periodically when the connection is active to ensure that an active connection has the latest timestamp. The property is only meant for reading (changes to this property will not be preserved).</entry></row>
     <row><entry><screen>type<indexterm zone="settings-connection"><primary sortas="type">type</primary></indexterm></screen></entry><entry><screen>string</screen></entry><entry><screen/></entry><entry>Base type of the connection. For hardware-dependent connections, should contain the setting name of the hardware-type specific setting (ie, "802-3-ethernet" or "802-11-wireless" or "bluetooth", etc), and for non-hardware dependent connections like VPN or otherwise, should contain the setting name of that setting type (ie, "vpn" or "bridge", etc).</entry></row>
     <row><entry><screen>uuid<indexterm zone="settings-connection"><primary sortas="uuid">uuid</primary></indexterm></screen></entry><entry><screen>string</screen></entry><entry><screen/></entry><entry>A universally unique identifier for the connection, for example generated with libuuid.  It should be assigned when the connection is created, and never changed as long as the connection still applies to the same network.  For example, it should not be changed when the "id" property or NMSettingIP4Config changes, but might need to be re-created when the Wi-Fi SSID, mobile broadband network provider, or "type" property changes. The UUID must be in the format "2815492f-7e56-435e-b2e9-246bd7cdc664" (ie, contains only hexadecimal characters and "-").</entry></row>
@@ -197,7 +197,7 @@
     <row><entry><screen>address-data<indexterm zone="settings-ipv4"><primary sortas="address-data">address-data</primary></indexterm></screen></entry><entry><screen>array of vardict</screen></entry><entry><screen/></entry><entry>Array of IPv4 addresses. Each address dictionary contains at least 'address' and 'prefix' entries, containing the IP address as a string, and the prefix length as a uint32. Additional attributes may also exist on some addresses.</entry></row>
     <row><entry><screen>addresses<indexterm zone="settings-ipv4"><primary sortas="addresses">addresses</primary></indexterm></screen></entry><entry><screen>array of array of uint32</screen></entry><entry><screen>[]</screen></entry><entry>Deprecated in favor of the 'address-data' and 'gateway' properties, but this can be used for backward-compatibility with older daemons. Note that if you send this property the daemon will ignore 'address-data' and 'gateway'.  Array of IPv4 address structures.  Each IPv4 address structure is composed of 3 32-bit values; the first being the IPv4 address (network byte order), the second the prefix (1 - 32), and last the IPv4 gateway (network byte order). The gateway may be left as 0 if no gateway exists for that subnet.</entry></row>
     <row><entry><screen>dad-timeout<indexterm zone="settings-ipv4"><primary sortas="dad-timeout">dad-timeout</primary></indexterm></screen></entry><entry><screen>int32</screen></entry><entry><screen>-1</screen></entry><entry>Timeout in milliseconds used to check for the presence of duplicate IP addresses on the network.  If an address conflict is detected, the activation will fail.  A zero value means that no duplicate address detection is performed, -1 means the default value (either configuration ipvx.dad-timeout override or zero).  A value greater than zero is a timeout in milliseconds. The property is currently implemented only for IPv4.</entry></row>
-    <row><entry><screen>dhcp-client-id<indexterm zone="settings-ipv4"><primary sortas="dhcp-client-id">dhcp-client-id</primary></indexterm></screen></entry><entry><screen>string</screen></entry><entry><screen/></entry><entry>A string sent to the DHCP server to identify the local machine which the DHCP server may use to customize the DHCP lease and options. When the property is a hex string ('aa:bb:cc') it is interpreted as a binary client ID, in which case the first byte is assumed to be the 'type' field as per RFC 2132 section 9.14 and the remaining bytes may be an hardware address (e.g. '01:xx:xx:xx:xx:xx:xx' where 1 is the Ethernet ARP type and the rest is a MAC address). If the property is not a hex string it is considered as a non-hardware-address client ID and the 'type' field is set to 0. The special values "mac" and "perm-mac" are supported, which use the current or permanent MAC address of the device to generate a client identifier with type ethernet (01). Currently, these options only work for ethernet type of links. The special value "stable" is supported to generate a type 0 client identifier based on the stable-id (see connection.stable-id) and a per-host key. If unset, a globally configured default is used. If still unset, the client-id from the last lease is reused.</entry></row>
+    <row><entry><screen>dhcp-client-id<indexterm zone="settings-ipv4"><primary sortas="dhcp-client-id">dhcp-client-id</primary></indexterm></screen></entry><entry><screen>string</screen></entry><entry><screen/></entry><entry>A string sent to the DHCP server to identify the local machine which the DHCP server may use to customize the DHCP lease and options. When the property is a hex string ('aa:bb:cc') it is interpreted as a binary client ID, in which case the first byte is assumed to be the 'type' field as per RFC 2132 section 9.14 and the remaining bytes may be an hardware address (e.g. '01:xx:xx:xx:xx:xx:xx' where 1 is the Ethernet ARP type and the rest is a MAC address). If the property is not a hex string it is considered as a non-hardware-address client ID and the 'type' field is set to 0. The special values "mac" and "perm-mac" are supported, which use the current or permanent MAC address of the device to generate a client identifier with type ethernet (01). Currently, these options only work for ethernet type of links. The special value "duid" generates a RFC4361-compliant client identifier based on a hash of the interface name as IAID and /etc/machine-id. The special value "stable" is supported to generate a type 0 client identifier based on the stable-id (see connection.stable-id) and a per-host key. If you set the stable-id, you may want to include the "${DEVICE}" or "${MAC}" specifier to get a per-device key. If unset, a globally configured default is used. If still unset, the default depends on the DHCP plugin.</entry></row>
     <row><entry><screen>dhcp-fqdn<indexterm zone="settings-ipv4"><primary sortas="dhcp-fqdn">dhcp-fqdn</primary></indexterm></screen></entry><entry><screen>string</screen></entry><entry><screen/></entry><entry>If the "dhcp-send-hostname" property is TRUE, then the specified FQDN will be sent to the DHCP server when acquiring a lease. This property and "dhcp-hostname" are mutually exclusive and cannot be set at the same time.</entry></row>
     <row><entry><screen>dhcp-hostname<indexterm zone="settings-ipv4"><primary sortas="dhcp-hostname">dhcp-hostname</primary></indexterm></screen></entry><entry><screen>string</screen></entry><entry><screen/></entry><entry>If the "dhcp-send-hostname" property is TRUE, then the specified name will be sent to the DHCP server when acquiring a lease. This property and "dhcp-fqdn" are mutually exclusive and cannot be set at the same time.</entry></row>
     <row><entry><screen>dhcp-send-hostname<indexterm zone="settings-ipv4"><primary sortas="dhcp-send-hostname">dhcp-send-hostname</primary></indexterm></screen></entry><entry><screen>boolean</screen></entry><entry><screen>TRUE</screen></entry><entry>If TRUE, a hostname is sent to the DHCP server when acquiring a lease. Some DHCP servers use this hostname to update DNS databases, essentially providing a static hostname for the computer.  If the "dhcp-hostname" property is NULL and this property is TRUE, the current persistent hostname of the computer is sent.</entry></row>
@@ -224,7 +224,7 @@
     <row><entry><screen>address-data<indexterm zone="settings-ipv6"><primary sortas="address-data">address-data</primary></indexterm></screen></entry><entry><screen>array of vardict</screen></entry><entry><screen/></entry><entry>Array of IPv6 addresses. Each address dictionary contains at least 'address' and 'prefix' entries, containing the IP address as a string, and the prefix length as a uint32. Additional attributes may also exist on some addresses.</entry></row>
     <row><entry><screen>addresses<indexterm zone="settings-ipv6"><primary sortas="addresses">addresses</primary></indexterm></screen></entry><entry><screen>array of legacy IPv6 address struct (a(ayuay))</screen></entry><entry><screen>[]</screen></entry><entry>Deprecated in favor of the 'address-data' and 'gateway' properties, but this can be used for backward-compatibility with older daemons. Note that if you send this property the daemon will ignore 'address-data' and 'gateway'.  Array of IPv6 address structures.  Each IPv6 address structure is composed of an IPv6 address, a prefix length (1 - 128), and an IPv6 gateway address. The gateway may be zeroed out if no gateway exists for that subnet.</entry></row>
     <row><entry><screen>dad-timeout<indexterm zone="settings-ipv6"><primary sortas="dad-timeout">dad-timeout</primary></indexterm></screen></entry><entry><screen>int32</screen></entry><entry><screen>-1</screen></entry><entry>Timeout in milliseconds used to check for the presence of duplicate IP addresses on the network.  If an address conflict is detected, the activation will fail.  A zero value means that no duplicate address detection is performed, -1 means the default value (either configuration ipvx.dad-timeout override or zero).  A value greater than zero is a timeout in milliseconds. The property is currently implemented only for IPv4.</entry></row>
-    <row><entry><screen>dhcp-duid<indexterm zone="settings-ipv6"><primary sortas="dhcp-duid">dhcp-duid</primary></indexterm></screen></entry><entry><screen>string</screen></entry><entry><screen/></entry><entry>A string containing the DHCPv6 Unique Identifier (DUID) used by the dhcp client to identify itself to DHCPv6 servers (RFC 3315). The DUID is carried in the Client Identifier option. If the property is a hex string ('aa:bb:cc') it is interpreted as a binary DUID and filled as an opaque value in the Client Identifier option. The special value "lease" will retrieve the DUID previously used from the lease file belonging to the connection. If no DUID is found and "dhclient" is the configured dhcp client, the DUID is searched in the system-wide dhclient lease file. If still no DUID is found, or another dhcp client is used, a global and permanent DUID-UUID (RFC 6355) will be generated based on the machine-id. The special values "llt" and "ll" will generate a DUID of type LLT or LL (see RFC 3315) based on the current MAC address of the device. In order to try providing a stable DUID-LLT, the time field will contain a constant timestamp that is used globally (for all profiles) and persisted to disk. The special values "stable-llt", "stable-ll" and "stable-uuid" will generate a DUID of the corresponding type, derived from the connection's stable-id and a per-host unique key. So, the link-layer address of "stable-ll" and "stable-llt" will be a generated address derived from the stable id. The DUID-LLT time value in the "stable-llt" option will be picked among a static timespan of three years (the upper bound of the interval is the same constant timestamp used in "llt"). When the property is unset, the global value provided for "ipv6.dhcp-duid" is used. If no global value is provided, the default "lease" value is assumed.</entry></row>
+    <row><entry><screen>dhcp-duid<indexterm zone="settings-ipv6"><primary sortas="dhcp-duid">dhcp-duid</primary></indexterm></screen></entry><entry><screen>string</screen></entry><entry><screen/></entry><entry>A string containing the DHCPv6 Unique Identifier (DUID) used by the dhcp client to identify itself to DHCPv6 servers (RFC 3315). The DUID is carried in the Client Identifier option. If the property is a hex string ('aa:bb:cc') it is interpreted as a binary DUID and filled as an opaque value in the Client Identifier option. The special value "lease" will retrieve the DUID previously used from the lease file belonging to the connection. If no DUID is found and "dhclient" is the configured dhcp client, the DUID is searched in the system-wide dhclient lease file. If still no DUID is found, or another dhcp client is used, a global and permanent DUID-UUID (RFC 6355) will be generated based on the machine-id. The special values "llt" and "ll" will generate a DUID of type LLT or LL (see RFC 3315) based on the current MAC address of the device. In order to try providing a stable DUID-LLT, the time field will contain a constant timestamp that is used globally (for all profiles) and persisted to disk. The special values "stable-llt", "stable-ll" and "stable-uuid" will generate a DUID of the corresponding type, derived from the connection's stable-id and a per-host unique key. You may want to include the "${DEVICE}" or "${MAC}" specifier in the stable-id, in case this profile gets activated on multiple devices. So, the link-layer address of "stable-ll" and "stable-llt" will be a generated address derived from the stable id. The DUID-LLT time value in the "stable-llt" option will be picked among a static timespan of three years (the upper bound of the interval is the same constant timestamp used in "llt"). When the property is unset, the global value provided for "ipv6.dhcp-duid" is used. If no global value is provided, the default "lease" value is assumed.</entry></row>
     <row><entry><screen>dhcp-hostname<indexterm zone="settings-ipv6"><primary sortas="dhcp-hostname">dhcp-hostname</primary></indexterm></screen></entry><entry><screen>string</screen></entry><entry><screen/></entry><entry>If the "dhcp-send-hostname" property is TRUE, then the specified name will be sent to the DHCP server when acquiring a lease. This property and "dhcp-fqdn" are mutually exclusive and cannot be set at the same time.</entry></row>
     <row><entry><screen>dhcp-send-hostname<indexterm zone="settings-ipv6"><primary sortas="dhcp-send-hostname">dhcp-send-hostname</primary></indexterm></screen></entry><entry><screen>boolean</screen></entry><entry><screen>TRUE</screen></entry><entry>If TRUE, a hostname is sent to the DHCP server when acquiring a lease. Some DHCP servers use this hostname to update DNS databases, essentially providing a static hostname for the computer.  If the "dhcp-hostname" property is NULL and this property is TRUE, the current persistent hostname of the computer is sent.</entry></row>
     <row><entry><screen>dhcp-timeout<indexterm zone="settings-ipv6"><primary sortas="dhcp-timeout">dhcp-timeout</primary></indexterm></screen></entry><entry><screen>int32</screen></entry><entry><screen>0</screen></entry><entry>A timeout for a DHCP transaction in seconds.</entry></row>
@@ -375,8 +375,8 @@
             Properties
         </title><para><table><tgroup cols="4"><thead><row><entry>Key Name</entry><entry>Value Type</entry><entry>Default Value</entry><entry>Value Description</entry></row></thead><tbody>
     <row><entry><screen>autoprobe-drivers<indexterm zone="settings-sriov"><primary sortas="autoprobe-drivers">autoprobe-drivers</primary></indexterm></screen></entry><entry><screen>NMTernary (int32)</screen></entry><entry><screen/></entry><entry>Whether to autoprobe virtual functions by a compatible driver. If set to NM_TERNARY_TRUE (1), the kernel will try to bind VFs to a compatible driver and if this succeeds a new network interface will be instantiated for each VF. If set to NM_TERNARY_FALSE (0), VFs will not be claimed and no network interfaces will be created for them. When set to NM_TERNARY_DEFAULT (-1), the global default is used; in case the global default is unspecified it is assumed to be NM_TERNARY_TRUE (1).</entry></row>
-    <row><entry><screen>total-vfs<indexterm zone="settings-sriov"><primary sortas="total-vfs">total-vfs</primary></indexterm></screen></entry><entry><screen>uint32</screen></entry><entry><screen>0</screen></entry><entry>The total number of virtual functions to create.</entry></row>
-    <row><entry><screen>vfs<indexterm zone="settings-sriov"><primary sortas="vfs">vfs</primary></indexterm></screen></entry><entry><screen>array of vardict</screen></entry><entry><screen>[]</screen></entry><entry>Array of virtual function descriptors. Each VF descriptor is a dictionary mapping attribute names to GVariant values. The 'index' entry is mandatory for each VF. When represented as string a VF is in the form: "INDEX [ATTR=VALUE[ ATTR=VALUE]...]". for example: "2 mac=00:11:22:33:44:55 spoof-check=true". The "vlans" attribute is represented as a semicolor-separated list of VLAN descriptors, where each descriptor has the form "ID[.PRIORITY[.PROTO]]". PROTO can be either 'q' for 802.1Q (the default) or 'ad' for 802.1ad.</entry></row>
+    <row><entry><screen>total-vfs<indexterm zone="settings-sriov"><primary sortas="total-vfs">total-vfs</primary></indexterm></screen></entry><entry><screen>uint32</screen></entry><entry><screen>0</screen></entry><entry>The total number of virtual functions to create. Note that when the sriov setting is present NetworkManager enforces the number of virtual functions on the interface also when it is zero. To prevent any changes to SR-IOV parameters don't add a sriov setting to the connection.</entry></row>
+    <row><entry><screen>vfs<indexterm zone="settings-sriov"><primary sortas="vfs">vfs</primary></indexterm></screen></entry><entry><screen>array of vardict</screen></entry><entry><screen>[]</screen></entry><entry>Array of virtual function descriptors. Each VF descriptor is a dictionary mapping attribute names to GVariant values. The 'index' entry is mandatory for each VF. When represented as string a VF is in the form: "INDEX [ATTR=VALUE[ ATTR=VALUE]...]". for example: "2 mac=00:11:22:33:44:55 spoof-check=true". Multiple VFs can be specified using a comma as separator. Currently the following attributes are supported: mac, spoof-check, trust, min-tx-rate, max-tx-rate, vlans. The "vlans" attribute is represented as a semicolon-separated list of VLAN descriptors, where each descriptor has the form "ID[.PRIORITY[.PROTO]]". PROTO can be either 'q' for 802.1Q (the default) or 'ad' for 802.1ad.</entry></row>
   </tbody></tgroup></table></para></refsect1></refentry>
   <refentry id="settings-tc"><refnamediv><refname>tc</refname><refpurpose>Linux Traffic Control Settings.</refpurpose></refnamediv><refsect1 role="properties"><title id="settings-tc.properties">
             Properties
diff --git a/docs/api/version.xml b/docs/api/version.xml
index 4e00d0ac..c6ba3bc1 100644
--- a/docs/api/version.xml
+++ b/docs/api/version.xml
@@ -1 +1 @@
-1.14.4
+1.14.6
diff --git a/docs/libnm-glib/html/NMAccessPoint.html b/docs/libnm-glib/html/NMAccessPoint.html
index eb0dee41..2999503d 100644
--- a/docs/libnm-glib/html/NMAccessPoint.html
+++ b/docs/libnm-glib/html/NMAccessPoint.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch02.html" title="libnm-glib API Reference">
 <link rel="prev" href="NMWimaxNsp.html" title="NMWimaxNsp">
 <link rel="next" href="NMIP4Config.html" title="NMIP4Config">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -51,7 +51,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="/usr/share/gtk-doc/html/libnm/libnm-nm-dbus-interface.html#NM80211ApFlags"><span class="returnvalue">NM80211ApFlags</span></a>
+<a href="/usr/share/gtk-doc/html/libnm-util/libnm-util-NetworkManager.html#NM80211ApFlags"><span class="returnvalue">NM80211ApFlags</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="NMAccessPoint.html#nm-access-point-get-flags" title="nm_access_point_get_flags ()">nm_access_point_get_flags</a> <span class="c_punctuation">()</span>
@@ -59,7 +59,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="/usr/share/gtk-doc/html/libnm/libnm-nm-dbus-interface.html#NM80211ApSecurityFlags"><span class="returnvalue">NM80211ApSecurityFlags</span></a>
+<a href="/usr/share/gtk-doc/html/libnm-util/libnm-util-NetworkManager.html#NM80211ApSecurityFlags"><span class="returnvalue">NM80211ApSecurityFlags</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="NMAccessPoint.html#nm-access-point-get-wpa-flags" title="nm_access_point_get_wpa_flags ()">nm_access_point_get_wpa_flags</a> <span class="c_punctuation">()</span>
@@ -67,7 +67,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="/usr/share/gtk-doc/html/libnm/libnm-nm-dbus-interface.html#NM80211ApSecurityFlags"><span class="returnvalue">NM80211ApSecurityFlags</span></a>
+<a href="/usr/share/gtk-doc/html/libnm-util/libnm-util-NetworkManager.html#NM80211ApSecurityFlags"><span class="returnvalue">NM80211ApSecurityFlags</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="NMAccessPoint.html#nm-access-point-get-rsn-flags" title="nm_access_point_get_rsn_flags ()">nm_access_point_get_rsn_flags</a> <span class="c_punctuation">()</span>
@@ -97,7 +97,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="/usr/share/gtk-doc/html/libnm/libnm-nm-dbus-interface.html#NM80211Mode"><span class="returnvalue">NM80211Mode</span></a>
+<a href="/usr/share/gtk-doc/html/libnm-util/libnm-util-NetworkManager.html#NM80211Mode"><span class="returnvalue">NM80211Mode</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="NMAccessPoint.html#nm-access-point-get-mode" title="nm_access_point_get_mode ()">nm_access_point_get_mode</a> <span class="c_punctuation">()</span>
@@ -327,7 +327,7 @@ nm_access_point_new (<em class="parameter"><code><a href="/usr/share/gtk-doc/htm
 <hr>
 <div class="refsect2">
 <a name="nm-access-point-get-flags"></a><h3>nm_access_point_get_flags ()</h3>
-<pre class="programlisting"><a href="/usr/share/gtk-doc/html/libnm/libnm-nm-dbus-interface.html#NM80211ApFlags"><span class="returnvalue">NM80211ApFlags</span></a>
+<pre class="programlisting"><a href="/usr/share/gtk-doc/html/libnm-util/libnm-util-NetworkManager.html#NM80211ApFlags"><span class="returnvalue">NM80211ApFlags</span></a>
 nm_access_point_get_flags (<em class="parameter"><code><a class="link" href="NMAccessPoint.html" title="NMAccessPoint"><span class="type">NMAccessPoint</span></a> *ap</code></em>);</pre>
 <p>Gets the flags of the access point.</p>
 <div class="refsect3">
@@ -353,7 +353,7 @@ nm_access_point_get_flags (<em class="parameter"><code><a class="link" href="NMA
 <hr>
 <div class="refsect2">
 <a name="nm-access-point-get-wpa-flags"></a><h3>nm_access_point_get_wpa_flags ()</h3>
-<pre class="programlisting"><a href="/usr/share/gtk-doc/html/libnm/libnm-nm-dbus-interface.html#NM80211ApSecurityFlags"><span class="returnvalue">NM80211ApSecurityFlags</span></a>
+<pre class="programlisting"><a href="/usr/share/gtk-doc/html/libnm-util/libnm-util-NetworkManager.html#NM80211ApSecurityFlags"><span class="returnvalue">NM80211ApSecurityFlags</span></a>
 nm_access_point_get_wpa_flags (<em class="parameter"><code><a class="link" href="NMAccessPoint.html" title="NMAccessPoint"><span class="type">NMAccessPoint</span></a> *ap</code></em>);</pre>
 <p>Gets the WPA (version 1) flags of the access point.</p>
 <div class="refsect3">
@@ -379,7 +379,7 @@ nm_access_point_get_wpa_flags (<em class="parameter"><code><a class="link" href=
 <hr>
 <div class="refsect2">
 <a name="nm-access-point-get-rsn-flags"></a><h3>nm_access_point_get_rsn_flags ()</h3>
-<pre class="programlisting"><a href="/usr/share/gtk-doc/html/libnm/libnm-nm-dbus-interface.html#NM80211ApSecurityFlags"><span class="returnvalue">NM80211ApSecurityFlags</span></a>
+<pre class="programlisting"><a href="/usr/share/gtk-doc/html/libnm-util/libnm-util-NetworkManager.html#NM80211ApSecurityFlags"><span class="returnvalue">NM80211ApSecurityFlags</span></a>
 nm_access_point_get_rsn_flags (<em class="parameter"><code><a class="link" href="NMAccessPoint.html" title="NMAccessPoint"><span class="type">NMAccessPoint</span></a> *ap</code></em>);</pre>
 <p>Gets the RSN (Robust Secure Network, ie WPA version 2) flags of the access
 point.</p>
@@ -486,7 +486,7 @@ nm_access_point_get_frequency (<em class="parameter"><code><a class="link" href=
 <hr>
 <div class="refsect2">
 <a name="nm-access-point-get-mode"></a><h3>nm_access_point_get_mode ()</h3>
-<pre class="programlisting"><a href="/usr/share/gtk-doc/html/libnm/libnm-nm-dbus-interface.html#NM80211Mode"><span class="returnvalue">NM80211Mode</span></a>
+<pre class="programlisting"><a href="/usr/share/gtk-doc/html/libnm-util/libnm-util-NetworkManager.html#NM80211Mode"><span class="returnvalue">NM80211Mode</span></a>
 nm_access_point_get_mode (<em class="parameter"><code><a class="link" href="NMAccessPoint.html" title="NMAccessPoint"><span class="type">NMAccessPoint</span></a> *ap</code></em>);</pre>
 <p>Gets the mode of the access point.</p>
 <div class="refsect3">
@@ -622,7 +622,7 @@ filter that list with this function.</p>
 <tr>
 <td class="parameter_name"><p>connections</p></td>
 <td class="parameter_description"><p>a list of
-<span class="type">NMConnection</span> objects to filter. </p></td>
+<a href="/usr/share/gtk-doc/html/libnm-util/NMConnection.html#NMConnection-struct"><span class="type">NMConnection</span></a> objects to filter. </p></td>
 <td class="parameter_annotations"><span class="annotation">[<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> NMConnection]</span></td>
 </tr>
 </tbody>
@@ -631,7 +631,7 @@ filter that list with this function.</p>
 <div class="refsect3">
 <a name="nm-access-point-filter-connections.returns"></a><h4>Returns</h4>
 <p>a
-list of <span class="type">NMConnection</span> objects that could be activated with the given <em class="parameter"><code>ap</code></em>
+list of <a href="/usr/share/gtk-doc/html/libnm-util/NMConnection.html#NMConnection-struct"><span class="type">NMConnection</span></a> objects that could be activated with the given <em class="parameter"><code>ap</code></em>
 .
 The elements of the list are owned by their creator and should not be freed
 by the caller, but the returned list itself is owned by the caller and should
@@ -644,7 +644,7 @@ be freed with <a href="https://developer.gnome.org/glib/unstable/glib-Singly-Lin
 <a name="nm-access-point-connection-valid"></a><h3>nm_access_point_connection_valid ()</h3>
 <pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 nm_access_point_connection_valid (<em class="parameter"><code><a class="link" href="NMAccessPoint.html" title="NMAccessPoint"><span class="type">NMAccessPoint</span></a> *ap</code></em>,
-                                  <em class="parameter"><code><span class="type">NMConnection</span> *connection</code></em>);</pre>
+                                  <em class="parameter"><code><a href="/usr/share/gtk-doc/html/libnm-util/NMConnection.html#NMConnection-struct"><span class="type">NMConnection</span></a> *connection</code></em>);</pre>
 <p>Validates a given connection against a given Wi-Fi access point to ensure that
 the connection may be activated with that AP.  The connection must match the
 <em class="parameter"><code>ap</code></em>
@@ -667,7 +667,7 @@ against</p></td>
 </tr>
 <tr>
 <td class="parameter_name"><p>connection</p></td>
-<td class="parameter_description"><p>an <span class="type">NMConnection</span> to validate against <em class="parameter"><code>ap</code></em>
+<td class="parameter_description"><p>an <a href="/usr/share/gtk-doc/html/libnm-util/NMConnection.html#NMConnection-struct"><span class="type">NMConnection</span></a> to validate against <em class="parameter"><code>ap</code></em>
 </p></td>
 <td class="parameter_annotations"> </td>
 </tr>
@@ -880,6 +880,6 @@ coordinator of the wireless network allowing clients to connect) or
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm-glib/html/NMActiveConnection.html b/docs/libnm-glib/html/NMActiveConnection.html
index e597dc86..1f4692e0 100644
--- a/docs/libnm-glib/html/NMActiveConnection.html
+++ b/docs/libnm-glib/html/NMActiveConnection.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch02.html" title="libnm-glib API Reference">
 <link rel="prev" href="NMClient.html" title="NMClient">
 <link rel="next" href="NMDevice.html" title="NMDevice">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -93,7 +93,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="/usr/share/gtk-doc/html/libnm/libnm-nm-dbus-interface.html#NMActiveConnectionState"><span class="returnvalue">NMActiveConnectionState</span></a>
+<a href="/usr/share/gtk-doc/html/libnm-util/libnm-util-NetworkManager.html#NMActiveConnectionState"><span class="returnvalue">NMActiveConnectionState</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="NMActiveConnection.html#nm-active-connection-get-state" title="nm_active_connection_get_state ()">nm_active_connection_get_state</a> <span class="c_punctuation">()</span>
@@ -386,7 +386,7 @@ nm_active_connection_new (<em class="parameter"><code><a href="/usr/share/gtk-do
 <a name="nm-active-connection-get-connection"></a><h3>nm_active_connection_get_connection ()</h3>
 <pre class="programlisting">const <span class="returnvalue">char</span> *
 nm_active_connection_get_connection (<em class="parameter"><code><a class="link" href="NMActiveConnection.html" title="NMActiveConnection"><span class="type">NMActiveConnection</span></a> *connection</code></em>);</pre>
-<p>Gets the <span class="type">NMConnection</span>'s DBus object path.  This is often used with
+<p>Gets the <a href="/usr/share/gtk-doc/html/libnm-util/NMConnection.html#NMConnection-struct"><span class="type">NMConnection</span></a>'s DBus object path.  This is often used with
 <a class="link" href="NMRemoteSettings.html#nm-remote-settings-get-connection-by-path" title="nm_remote_settings_get_connection_by_path ()"><code class="function">nm_remote_settings_get_connection_by_path()</code></a> to retrieve the
 <a class="link" href="NMRemoteConnection.html" title="NMRemoteConnection"><span class="type">NMRemoteConnection</span></a> object that describes the connection.</p>
 <div class="refsect3">
@@ -406,7 +406,7 @@ nm_active_connection_get_connection (<em class="parameter"><code><a class="link"
 </div>
 <div class="refsect3">
 <a name="nm-active-connection-get-connection.returns"></a><h4>Returns</h4>
-<p> the object path of the <span class="type">NMConnection</span> which this <a class="link" href="NMActiveConnection.html" title="NMActiveConnection"><span class="type">NMActiveConnection</span></a>
+<p> the object path of the <a href="/usr/share/gtk-doc/html/libnm-util/NMConnection.html#NMConnection-struct"><span class="type">NMConnection</span></a> which this <a class="link" href="NMActiveConnection.html" title="NMActiveConnection"><span class="type">NMActiveConnection</span></a>
 is an active instance of.  This is the internal string used by the
 connection, and must not be modified.</p>
 </div>
@@ -416,7 +416,7 @@ connection, and must not be modified.</p>
 <a name="nm-active-connection-get-id"></a><h3>nm_active_connection_get_id ()</h3>
 <pre class="programlisting">const <span class="returnvalue">char</span> *
 nm_active_connection_get_id (<em class="parameter"><code><a class="link" href="NMActiveConnection.html" title="NMActiveConnection"><span class="type">NMActiveConnection</span></a> *connection</code></em>);</pre>
-<p>Gets the <span class="type">NMConnection</span>'s ID.</p>
+<p>Gets the <a href="/usr/share/gtk-doc/html/libnm-util/NMConnection.html#NMConnection-struct"><span class="type">NMConnection</span></a>'s ID.</p>
 <div class="refsect3">
 <a name="nm-active-connection-get-id.parameters"></a><h4>Parameters</h4>
 <div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -434,7 +434,7 @@ nm_active_connection_get_id (<em class="parameter"><code><a class="link" href="N
 </div>
 <div class="refsect3">
 <a name="nm-active-connection-get-id.returns"></a><h4>Returns</h4>
-<p> the ID of the <span class="type">NMConnection</span> that backs the <a class="link" href="NMActiveConnection.html" title="NMActiveConnection"><span class="type">NMActiveConnection</span></a>.
+<p> the ID of the <a href="/usr/share/gtk-doc/html/libnm-util/NMConnection.html#NMConnection-struct"><span class="type">NMConnection</span></a> that backs the <a class="link" href="NMActiveConnection.html" title="NMActiveConnection"><span class="type">NMActiveConnection</span></a>.
 This is the internal string used by the connection, and must not be modified.</p>
 </div>
 <p class="since">Since: 0.9.10</p>
@@ -444,7 +444,7 @@ This is the internal string used by the connection, and must not be modified.</p
 <a name="nm-active-connection-get-uuid"></a><h3>nm_active_connection_get_uuid ()</h3>
 <pre class="programlisting">const <span class="returnvalue">char</span> *
 nm_active_connection_get_uuid (<em class="parameter"><code><a class="link" href="NMActiveConnection.html" title="NMActiveConnection"><span class="type">NMActiveConnection</span></a> *connection</code></em>);</pre>
-<p>Gets the <span class="type">NMConnection</span>'s UUID.</p>
+<p>Gets the <a href="/usr/share/gtk-doc/html/libnm-util/NMConnection.html#NMConnection-struct"><span class="type">NMConnection</span></a>'s UUID.</p>
 <div class="refsect3">
 <a name="nm-active-connection-get-uuid.parameters"></a><h4>Parameters</h4>
 <div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -462,7 +462,7 @@ nm_active_connection_get_uuid (<em class="parameter"><code><a class="link" href=
 </div>
 <div class="refsect3">
 <a name="nm-active-connection-get-uuid.returns"></a><h4>Returns</h4>
-<p> the UUID of the <span class="type">NMConnection</span> that backs the <a class="link" href="NMActiveConnection.html" title="NMActiveConnection"><span class="type">NMActiveConnection</span></a>.
+<p> the UUID of the <a href="/usr/share/gtk-doc/html/libnm-util/NMConnection.html#NMConnection-struct"><span class="type">NMConnection</span></a> that backs the <a class="link" href="NMActiveConnection.html" title="NMActiveConnection"><span class="type">NMActiveConnection</span></a>.
 This is the internal string used by the connection, and must not be modified.</p>
 </div>
 </div>
@@ -472,7 +472,7 @@ This is the internal string used by the connection, and must not be modified.</p
 <pre class="programlisting">const <span class="returnvalue">char</span> *
 nm_active_connection_get_connection_type
                                (<em class="parameter"><code><a class="link" href="NMActiveConnection.html" title="NMActiveConnection"><span class="type">NMActiveConnection</span></a> *connection</code></em>);</pre>
-<p>Gets the <span class="type">NMConnection</span>'s type.</p>
+<p>Gets the <a href="/usr/share/gtk-doc/html/libnm-util/NMConnection.html#NMConnection-struct"><span class="type">NMConnection</span></a>'s type.</p>
 <div class="refsect3">
 <a name="nm-active-connection-get-connection-type.parameters"></a><h4>Parameters</h4>
 <div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -490,7 +490,7 @@ nm_active_connection_get_connection_type
 </div>
 <div class="refsect3">
 <a name="nm-active-connection-get-connection-type.returns"></a><h4>Returns</h4>
-<p> the type of the <span class="type">NMConnection</span> that backs the <a class="link" href="NMActiveConnection.html" title="NMActiveConnection"><span class="type">NMActiveConnection</span></a>.
+<p> the type of the <a href="/usr/share/gtk-doc/html/libnm-util/NMConnection.html#NMConnection-struct"><span class="type">NMConnection</span></a> that backs the <a class="link" href="NMActiveConnection.html" title="NMActiveConnection"><span class="type">NMActiveConnection</span></a>.
 This is the internal string used by the connection, and must not be modified.</p>
 </div>
 <p class="since">Since: 0.9.10</p>
@@ -554,7 +554,7 @@ This is the internal copy used by the connection, and must not be modified. </p>
 <hr>
 <div class="refsect2">
 <a name="nm-active-connection-get-state"></a><h3>nm_active_connection_get_state ()</h3>
-<pre class="programlisting"><a href="/usr/share/gtk-doc/html/libnm/libnm-nm-dbus-interface.html#NMActiveConnectionState"><span class="returnvalue">NMActiveConnectionState</span></a>
+<pre class="programlisting"><a href="/usr/share/gtk-doc/html/libnm-util/libnm-util-NetworkManager.html#NMActiveConnectionState"><span class="returnvalue">NMActiveConnectionState</span></a>
 nm_active_connection_get_state (<em class="parameter"><code><a class="link" href="NMActiveConnection.html" title="NMActiveConnection"><span class="type">NMActiveConnection</span></a> *connection</code></em>);</pre>
 <p>Gets the active connection's state.</p>
 <div class="refsect3">
@@ -655,7 +655,7 @@ nm_active_connection_get_ip4_config (<em class="parameter"><code><a class="link"
 <div class="refsect3">
 <a name="nm-active-connection-get-ip4-config.returns"></a><h4>Returns</h4>
 <p>the <a class="link" href="NMIP4Config.html" title="NMIP4Config"><span class="type">NMIP4Config</span></a>, or <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if the
-connection is not in the <a href="/usr/share/gtk-doc/html/libnm/libnm-nm-dbus-interface.html#NM-ACTIVE-CONNECTION-STATE-ACTIVATED:CAPS"><code class="literal">NM_ACTIVE_CONNECTION_STATE_ACTIVATED</code></a>
+connection is not in the <a href="/usr/share/gtk-doc/html/libnm-util/libnm-util-NetworkManager.html#NM-ACTIVE-CONNECTION-STATE-ACTIVATED:CAPS"><code class="literal">NM_ACTIVE_CONNECTION_STATE_ACTIVATED</code></a>
 state. </p>
 <p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
 </div>
@@ -687,7 +687,7 @@ nm_active_connection_get_dhcp4_config (<em class="parameter"><code><a class="lin
 <a name="nm-active-connection-get-dhcp4-config.returns"></a><h4>Returns</h4>
 <p>the <a class="link" href="NMDHCP4Config.html" title="NMDHCP4Config"><span class="type">NMDHCP4Config</span></a>, or <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if the
 connection does not use DHCP, or is not in the
-<a href="/usr/share/gtk-doc/html/libnm/libnm-nm-dbus-interface.html#NM-ACTIVE-CONNECTION-STATE-ACTIVATED:CAPS"><code class="literal">NM_ACTIVE_CONNECTION_STATE_ACTIVATED</code></a> state. </p>
+<a href="/usr/share/gtk-doc/html/libnm-util/libnm-util-NetworkManager.html#NM-ACTIVE-CONNECTION-STATE-ACTIVATED:CAPS"><code class="literal">NM_ACTIVE_CONNECTION_STATE_ACTIVATED</code></a> state. </p>
 <p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
 </div>
 <p class="since">Since: 0.9.10</p>
@@ -743,7 +743,7 @@ nm_active_connection_get_ip6_config (<em class="parameter"><code><a class="link"
 <div class="refsect3">
 <a name="nm-active-connection-get-ip6-config.returns"></a><h4>Returns</h4>
 <p>the <a class="link" href="NMIP6Config.html" title="NMIP6Config"><span class="type">NMIP6Config</span></a>, or <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if the
-connection is not in the <a href="/usr/share/gtk-doc/html/libnm/libnm-nm-dbus-interface.html#NM-ACTIVE-CONNECTION-STATE-ACTIVATED:CAPS"><code class="literal">NM_ACTIVE_CONNECTION_STATE_ACTIVATED</code></a>
+connection is not in the <a href="/usr/share/gtk-doc/html/libnm-util/libnm-util-NetworkManager.html#NM-ACTIVE-CONNECTION-STATE-ACTIVATED:CAPS"><code class="literal">NM_ACTIVE_CONNECTION_STATE_ACTIVATED</code></a>
 state. </p>
 <p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
 </div>
@@ -775,7 +775,7 @@ nm_active_connection_get_dhcp6_config (<em class="parameter"><code><a class="lin
 <a name="nm-active-connection-get-dhcp6-config.returns"></a><h4>Returns</h4>
 <p>the <a class="link" href="NMDHCP6Config.html" title="NMDHCP6Config"><span class="type">NMDHCP6Config</span></a>, or <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a> if the
 connection does not use DHCPv6, or is not in the
-<a href="/usr/share/gtk-doc/html/libnm/libnm-nm-dbus-interface.html#NM-ACTIVE-CONNECTION-STATE-ACTIVATED:CAPS"><code class="literal">NM_ACTIVE_CONNECTION_STATE_ACTIVATED</code></a> state. </p>
+<a href="/usr/share/gtk-doc/html/libnm-util/libnm-util-NetworkManager.html#NM-ACTIVE-CONNECTION-STATE-ACTIVATED:CAPS"><code class="literal">NM_ACTIVE_CONNECTION_STATE_ACTIVATED</code></a> state. </p>
 <p><span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span></p>
 </div>
 <p class="since">Since: 0.9.10</p>
@@ -1026,6 +1026,6 @@ nm_active_connection_get_vpn (<em class="parameter"><code><a class="link" href="
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm-glib/html/NMClient.html b/docs/libnm-glib/html/NMClient.html
index 168910d1..e5532f16 100644
--- a/docs/libnm-glib/html/NMClient.html
+++ b/docs/libnm-glib/html/NMClient.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch02.html" title="libnm-glib API Reference">
 <link rel="prev" href="ch02.html" title="libnm-glib API Reference">
 <link rel="next" href="NMActiveConnection.html" title="NMActiveConnection">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -241,7 +241,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="/usr/share/gtk-doc/html/libnm/libnm-nm-dbus-interface.html#NMState"><span class="returnvalue">NMState</span></a>
+<a href="/usr/share/gtk-doc/html/libnm-util/libnm-util-NetworkManager.html#NMState"><span class="returnvalue">NMState</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="NMClient.html#nm-client-get-state" title="nm_client_get_state ()">nm_client_get_state</a> <span class="c_punctuation">()</span>
@@ -304,7 +304,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="/usr/share/gtk-doc/html/libnm/libnm-nm-dbus-interface.html#NMConnectivityState"><span class="returnvalue">NMConnectivityState</span></a>
+<a href="/usr/share/gtk-doc/html/libnm-util/libnm-util-NetworkManager.html#NMConnectivityState"><span class="returnvalue">NMConnectivityState</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="NMClient.html#nm-client-get-connectivity" title="nm_client_get_connectivity ()">nm_client_get_connectivity</a> <span class="c_punctuation">()</span>
@@ -312,7 +312,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="/usr/share/gtk-doc/html/libnm/libnm-nm-dbus-interface.html#NMConnectivityState"><span class="returnvalue">NMConnectivityState</span></a>
+<a href="/usr/share/gtk-doc/html/libnm-util/libnm-util-NetworkManager.html#NMConnectivityState"><span class="returnvalue">NMConnectivityState</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="NMClient.html#nm-client-check-connectivity" title="nm_client_check_connectivity ()">nm_client_check_connectivity</a> <span class="c_punctuation">()</span>
@@ -328,7 +328,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="/usr/share/gtk-doc/html/libnm/libnm-nm-dbus-interface.html#NMConnectivityState"><span class="returnvalue">NMConnectivityState</span></a>
+<a href="/usr/share/gtk-doc/html/libnm-util/libnm-util-NetworkManager.html#NMConnectivityState"><span class="returnvalue">NMConnectivityState</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="NMClient.html#nm-client-check-connectivity-finish" title="nm_client_check_connectivity_finish ()">nm_client_check_connectivity_finish</a> <span class="c_punctuation">()</span>
@@ -861,7 +861,7 @@ or <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#
 <a name="nm-client-activate-connection"></a><h3>nm_client_activate_connection ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 nm_client_activate_connection (<em class="parameter"><code><a class="link" href="NMClient.html" title="NMClient"><span class="type">NMClient</span></a> *client</code></em>,
-                               <em class="parameter"><code><span class="type">NMConnection</span> *connection</code></em>,
+                               <em class="parameter"><code><a href="/usr/share/gtk-doc/html/libnm-util/NMConnection.html#NMConnection-struct"><span class="type">NMConnection</span></a> *connection</code></em>,
                                <em class="parameter"><code><a class="link" href="NMDevice.html" title="NMDevice"><span class="type">NMDevice</span></a> *device</code></em>,
                                <em class="parameter"><code>const <span class="type">char</span> *specific_object</code></em>,
                                <em class="parameter"><code><a class="link" href="NMClient.html#NMClientActivateFn" title="NMClientActivateFn ()"><span class="type">NMClientActivateFn</span></a> callback</code></em>,
@@ -899,7 +899,7 @@ track the activation to its completion.</p>
 </tr>
 <tr>
 <td class="parameter_name"><p>connection</p></td>
-<td class="parameter_description"><p>an <span class="type">NMConnection</span>. </p></td>
+<td class="parameter_description"><p>an <a href="/usr/share/gtk-doc/html/libnm-util/NMConnection.html#NMConnection-struct"><span class="type">NMConnection</span></a>. </p></td>
 <td class="parameter_annotations"><span class="annotation">[<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
 </tr>
 <tr>
@@ -948,7 +948,7 @@ details of the newly added connection. </p></td>
 <a name="nm-client-add-and-activate-connection"></a><h3>nm_client_add_and_activate_connection ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 nm_client_add_and_activate_connection (<em class="parameter"><code><a class="link" href="NMClient.html" title="NMClient"><span class="type">NMClient</span></a> *client</code></em>,
-                                       <em class="parameter"><code><span class="type">NMConnection</span> *partial</code></em>,
+                                       <em class="parameter"><code><a href="/usr/share/gtk-doc/html/libnm-util/NMConnection.html#NMConnection-struct"><span class="type">NMConnection</span></a> *partial</code></em>,
                                        <em class="parameter"><code><a class="link" href="NMDevice.html" title="NMDevice"><span class="type">NMDevice</span></a> *device</code></em>,
                                        <em class="parameter"><code>const <span class="type">char</span> *specific_object</code></em>,
                                        <em class="parameter"><code><a class="link" href="NMClient.html#NMClientAddActivateFn" title="NMClientAddActivateFn ()"><span class="type">NMClientAddActivateFn</span></a> callback</code></em>,
@@ -977,7 +977,7 @@ track the activation to its completion.</p>
 </tr>
 <tr>
 <td class="parameter_name"><p>partial</p></td>
-<td class="parameter_description"><p>an <span class="type">NMConnection</span> to add; the connection may be
+<td class="parameter_description"><p>an <a href="/usr/share/gtk-doc/html/libnm-util/NMConnection.html#NMConnection-struct"><span class="type">NMConnection</span></a> to add; the connection may be
 partially filled (or even <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>) and will be completed by NetworkManager
 using the given <em class="parameter"><code>device</code></em>
 and <em class="parameter"><code>specific_object</code></em>
@@ -1379,7 +1379,7 @@ nm_client_get_version (<em class="parameter"><code><a class="link" href="NMClien
 <hr>
 <div class="refsect2">
 <a name="nm-client-get-state"></a><h3>nm_client_get_state ()</h3>
-<pre class="programlisting"><a href="/usr/share/gtk-doc/html/libnm/libnm-nm-dbus-interface.html#NMState"><span class="returnvalue">NMState</span></a>
+<pre class="programlisting"><a href="/usr/share/gtk-doc/html/libnm-util/libnm-util-NetworkManager.html#NMState"><span class="returnvalue">NMState</span></a>
 nm_client_get_state (<em class="parameter"><code><a class="link" href="NMClient.html" title="NMClient"><span class="type">NMClient</span></a> *client</code></em>);</pre>
 <p>Gets the current daemon state.</p>
 <div class="refsect3">
@@ -1399,7 +1399,7 @@ nm_client_get_state (<em class="parameter"><code><a class="link" href="NMClient.
 </div>
 <div class="refsect3">
 <a name="nm-client-get-state.returns"></a><h4>Returns</h4>
-<p> the current <a href="/usr/share/gtk-doc/html/libnm/libnm-nm-dbus-interface.html#NMState"><code class="literal">NMState</code></a></p>
+<p> the current <a href="/usr/share/gtk-doc/html/libnm-util/libnm-util-NetworkManager.html#NMState"><code class="literal">NMState</code></a></p>
 </div>
 </div>
 <hr>
@@ -1649,7 +1649,7 @@ domains separated by ",". (<a href="https://developer.gnome.org/glib/unstable/gl
 <hr>
 <div class="refsect2">
 <a name="nm-client-get-connectivity"></a><h3>nm_client_get_connectivity ()</h3>
-<pre class="programlisting"><a href="/usr/share/gtk-doc/html/libnm/libnm-nm-dbus-interface.html#NMConnectivityState"><span class="returnvalue">NMConnectivityState</span></a>
+<pre class="programlisting"><a href="/usr/share/gtk-doc/html/libnm-util/libnm-util-NetworkManager.html#NMConnectivityState"><span class="returnvalue">NMConnectivityState</span></a>
 nm_client_get_connectivity (<em class="parameter"><code><a class="link" href="NMClient.html" title="NMClient"><span class="type">NMClient</span></a> *client</code></em>);</pre>
 <p>Gets the current network connectivity state. Contrast
 <a class="link" href="NMClient.html#nm-client-check-connectivity" title="nm_client_check_connectivity ()"><code class="function">nm_client_check_connectivity()</code></a> and
@@ -1679,7 +1679,7 @@ connectivity state first before returning any information.</p>
 <hr>
 <div class="refsect2">
 <a name="nm-client-check-connectivity"></a><h3>nm_client_check_connectivity ()</h3>
-<pre class="programlisting"><a href="/usr/share/gtk-doc/html/libnm/libnm-nm-dbus-interface.html#NMConnectivityState"><span class="returnvalue">NMConnectivityState</span></a>
+<pre class="programlisting"><a href="/usr/share/gtk-doc/html/libnm-util/libnm-util-NetworkManager.html#NMConnectivityState"><span class="returnvalue">NMConnectivityState</span></a>
 nm_client_check_connectivity (<em class="parameter"><code><a class="link" href="NMClient.html" title="NMClient"><span class="type">NMClient</span></a> *client</code></em>,
                               <em class="parameter"><code><a href="https://developer.gnome.org/gio/unstable/GCancellable.html#GCancellable-struct"><span class="type">GCancellable</span></a> *cancellable</code></em>,
                               <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
@@ -1772,7 +1772,7 @@ re-checking, and <a class="link" href="NMClient.html#nm-client-check-connectivit
 <hr>
 <div class="refsect2">
 <a name="nm-client-check-connectivity-finish"></a><h3>nm_client_check_connectivity_finish ()</h3>
-<pre class="programlisting"><a href="/usr/share/gtk-doc/html/libnm/libnm-nm-dbus-interface.html#NMConnectivityState"><span class="returnvalue">NMConnectivityState</span></a>
+<pre class="programlisting"><a href="/usr/share/gtk-doc/html/libnm-util/libnm-util-NetworkManager.html#NMConnectivityState"><span class="returnvalue">NMConnectivityState</span></a>
 nm_client_check_connectivity_finish (<em class="parameter"><code><a class="link" href="NMClient.html" title="NMClient"><span class="type">NMClient</span></a> *client</code></em>,
                                      <em class="parameter"><code><a href="https://developer.gnome.org/gio/unstable/GAsyncResult.html#GAsyncResult-struct"><span class="type">GAsyncResult</span></a> *result</code></em>,
                                      <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
@@ -2562,6 +2562,6 @@ user_function (<a class="link" href="NMClient.html" title="NMClient"><span class
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm-glib/html/NMDHCP4Config.html b/docs/libnm-glib/html/NMDHCP4Config.html
index 7c9e7054..29f9307f 100644
--- a/docs/libnm-glib/html/NMDHCP4Config.html
+++ b/docs/libnm-glib/html/NMDHCP4Config.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch02.html" title="libnm-glib API Reference">
 <link rel="prev" href="NMIP6Config.html" title="NMIP6Config">
 <link rel="next" href="NMDHCP6Config.html" title="NMDHCP6Config">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -224,6 +224,6 @@ configuration, and must not be modified.</p>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm-glib/html/NMDHCP6Config.html b/docs/libnm-glib/html/NMDHCP6Config.html
index d31ecd57..161a6233 100644
--- a/docs/libnm-glib/html/NMDHCP6Config.html
+++ b/docs/libnm-glib/html/NMDHCP6Config.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch02.html" title="libnm-glib API Reference">
 <link rel="prev" href="NMDHCP4Config.html" title="NMDHCP4Config">
 <link rel="next" href="NMObject.html" title="NMObject">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -224,6 +224,6 @@ configuration, and must not be modified.</p>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm-glib/html/NMDevice.html b/docs/libnm-glib/html/NMDevice.html
index d8785659..294b776e 100644
--- a/docs/libnm-glib/html/NMDevice.html
+++ b/docs/libnm-glib/html/NMDevice.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch02.html" title="libnm-glib API Reference">
 <link rel="prev" href="NMActiveConnection.html" title="NMActiveConnection">
 <link rel="next" href="NMDeviceEthernet.html" title="NMDeviceEthernet">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -74,7 +74,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="/usr/share/gtk-doc/html/libnm/libnm-nm-dbus-interface.html#NMDeviceType"><span class="returnvalue">NMDeviceType</span></a>
+<a href="/usr/share/gtk-doc/html/libnm-util/libnm-util-NetworkManager.html#NMDeviceType"><span class="returnvalue">NMDeviceType</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="NMDevice.html#nm-device-get-device-type" title="nm_device_get_device_type ()">nm_device_get_device_type</a> <span class="c_punctuation">()</span>
@@ -124,7 +124,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="/usr/share/gtk-doc/html/libnm/libnm-nm-dbus-interface.html#NMDeviceCapabilities"><span class="returnvalue">NMDeviceCapabilities</span></a>
+<a href="/usr/share/gtk-doc/html/libnm-util/libnm-util-NetworkManager.html#NMDeviceCapabilities"><span class="returnvalue">NMDeviceCapabilities</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="NMDevice.html#nm-device-get-capabilities" title="nm_device_get_capabilities ()">nm_device_get_capabilities</a> <span class="c_punctuation">()</span>
@@ -204,7 +204,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="/usr/share/gtk-doc/html/libnm/libnm-nm-dbus-interface.html#NMDeviceState"><span class="returnvalue">NMDeviceState</span></a>
+<a href="/usr/share/gtk-doc/html/libnm-util/libnm-util-NetworkManager.html#NMDeviceState"><span class="returnvalue">NMDeviceState</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="NMDevice.html#nm-device-get-state" title="nm_device_get_state ()">nm_device_get_state</a> <span class="c_punctuation">()</span>
@@ -212,7 +212,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="/usr/share/gtk-doc/html/libnm/libnm-nm-dbus-interface.html#NMDeviceState"><span class="returnvalue">NMDeviceState</span></a>
+<a href="/usr/share/gtk-doc/html/libnm-util/libnm-util-NetworkManager.html#NMDeviceState"><span class="returnvalue">NMDeviceState</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="NMDevice.html#nm-device-get-state-reason" title="nm_device_get_state_reason ()">nm_device_get_state_reason</a> <span class="c_punctuation">()</span>
@@ -766,7 +766,7 @@ used by the device, and must not be modified.</p>
 <hr>
 <div class="refsect2">
 <a name="nm-device-get-device-type"></a><h3>nm_device_get_device_type ()</h3>
-<pre class="programlisting"><a href="/usr/share/gtk-doc/html/libnm/libnm-nm-dbus-interface.html#NMDeviceType"><span class="returnvalue">NMDeviceType</span></a>
+<pre class="programlisting"><a href="/usr/share/gtk-doc/html/libnm-util/libnm-util-NetworkManager.html#NMDeviceType"><span class="returnvalue">NMDeviceType</span></a>
 nm_device_get_device_type (<em class="parameter"><code><a class="link" href="NMDevice.html" title="NMDevice"><span class="type">NMDevice</span></a> *device</code></em>);</pre>
 <p>Returns the numeric type of the <a class="link" href="NMDevice.html" title="NMDevice"><span class="type">NMDevice</span></a>, ie Ethernet, Wi-Fi, etc.</p>
 <div class="refsect3">
@@ -960,7 +960,7 @@ This is the internal string used by the device, and must not be modified.</p>
 <hr>
 <div class="refsect2">
 <a name="nm-device-get-capabilities"></a><h3>nm_device_get_capabilities ()</h3>
-<pre class="programlisting"><a href="/usr/share/gtk-doc/html/libnm/libnm-nm-dbus-interface.html#NMDeviceCapabilities"><span class="returnvalue">NMDeviceCapabilities</span></a>
+<pre class="programlisting"><a href="/usr/share/gtk-doc/html/libnm-util/libnm-util-NetworkManager.html#NMDeviceCapabilities"><span class="returnvalue">NMDeviceCapabilities</span></a>
 nm_device_get_capabilities (<em class="parameter"><code><a class="link" href="NMDevice.html" title="NMDevice"><span class="type">NMDevice</span></a> *device</code></em>);</pre>
 <p>Gets the device' capabilities.</p>
 <div class="refsect3">
@@ -1249,7 +1249,7 @@ using DHCP. </p>
 <hr>
 <div class="refsect2">
 <a name="nm-device-get-state"></a><h3>nm_device_get_state ()</h3>
-<pre class="programlisting"><a href="/usr/share/gtk-doc/html/libnm/libnm-nm-dbus-interface.html#NMDeviceState"><span class="returnvalue">NMDeviceState</span></a>
+<pre class="programlisting"><a href="/usr/share/gtk-doc/html/libnm-util/libnm-util-NetworkManager.html#NMDeviceState"><span class="returnvalue">NMDeviceState</span></a>
 nm_device_get_state (<em class="parameter"><code><a class="link" href="NMDevice.html" title="NMDevice"><span class="type">NMDevice</span></a> *device</code></em>);</pre>
 <p>Gets the current <a class="link" href="NMDevice.html" title="NMDevice"><span class="type">NMDevice</span></a> state.</p>
 <div class="refsect3">
@@ -1275,9 +1275,9 @@ nm_device_get_state (<em class="parameter"><code><a class="link" href="NMDevice.
 <hr>
 <div class="refsect2">
 <a name="nm-device-get-state-reason"></a><h3>nm_device_get_state_reason ()</h3>
-<pre class="programlisting"><a href="/usr/share/gtk-doc/html/libnm/libnm-nm-dbus-interface.html#NMDeviceState"><span class="returnvalue">NMDeviceState</span></a>
+<pre class="programlisting"><a href="/usr/share/gtk-doc/html/libnm-util/libnm-util-NetworkManager.html#NMDeviceState"><span class="returnvalue">NMDeviceState</span></a>
 nm_device_get_state_reason (<em class="parameter"><code><a class="link" href="NMDevice.html" title="NMDevice"><span class="type">NMDevice</span></a> *device</code></em>,
-                            <em class="parameter"><code><a href="/usr/share/gtk-doc/html/libnm/libnm-nm-dbus-interface.html#NMDeviceStateReason"><span class="type">NMDeviceStateReason</span></a> *reason</code></em>);</pre>
+                            <em class="parameter"><code><a href="/usr/share/gtk-doc/html/libnm-util/libnm-util-NetworkManager.html#NMDeviceStateReason"><span class="type">NMDeviceStateReason</span></a> *reason</code></em>);</pre>
 <p>Gets the current <a class="link" href="NMDevice.html" title="NMDevice"><span class="type">NMDevice</span></a> state (return value) and the reason for entering
 the state (<em class="parameter"><code>reason</code></em>
  argument).</p>
@@ -1297,7 +1297,7 @@ the state (<em class="parameter"><code>reason</code></em>
 </tr>
 <tr>
 <td class="parameter_name"><p>reason</p></td>
-<td class="parameter_description"><p>location to store reason (<a href="/usr/share/gtk-doc/html/libnm/libnm-nm-dbus-interface.html#NMDeviceStateReason"><span class="type">NMDeviceStateReason</span></a>), or <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p></td>
+<td class="parameter_description"><p>location to store reason (<a href="/usr/share/gtk-doc/html/libnm-util/libnm-util-NetworkManager.html#NMDeviceStateReason"><span class="type">NMDeviceStateReason</span></a>), or <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS"><code class="literal">NULL</code></a>. </p></td>
 <td class="parameter_annotations"><span class="annotation">[<acronym title="Parameter for returning results. Default is transfer full."><span class="acronym">out</span></acronym>][<acronym title="NULL is OK, both for passing and for returning."><span class="acronym">allow-none</span></acronym>]</span></td>
 </tr>
 </tbody>
@@ -1725,7 +1725,7 @@ incompatible with the device. To get the full list of connections see
 </tr>
 <tr>
 <td class="parameter_name"><p>connections</p></td>
-<td class="parameter_description"><p>a list of <span class="type">NMConnection</span> objects to filter. </p></td>
+<td class="parameter_description"><p>a list of <a href="/usr/share/gtk-doc/html/libnm-util/NMConnection.html#NMConnection-struct"><span class="type">NMConnection</span></a> objects to filter. </p></td>
 <td class="parameter_annotations"><span class="annotation">[<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> NMConnection]</span></td>
 </tr>
 </tbody>
@@ -1734,7 +1734,7 @@ incompatible with the device. To get the full list of connections see
 <div class="refsect3">
 <a name="nm-device-filter-connections.returns"></a><h4>Returns</h4>
 <p>a
-list of <span class="type">NMConnection</span> objects that could be activated with the given <em class="parameter"><code>device</code></em>
+list of <a href="/usr/share/gtk-doc/html/libnm-util/NMConnection.html#NMConnection-struct"><span class="type">NMConnection</span></a> objects that could be activated with the given <em class="parameter"><code>device</code></em>
 .
 The elements of the list are owned by their creator and should not be freed
 by the caller, but the returned list itself is owned by the caller and should
@@ -1747,7 +1747,7 @@ be freed with <a href="https://developer.gnome.org/glib/unstable/glib-Singly-Lin
 <a name="nm-device-connection-valid"></a><h3>nm_device_connection_valid ()</h3>
 <pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 nm_device_connection_valid (<em class="parameter"><code><a class="link" href="NMDevice.html" title="NMDevice"><span class="type">NMDevice</span></a> *device</code></em>,
-                            <em class="parameter"><code><span class="type">NMConnection</span> *connection</code></em>);</pre>
+                            <em class="parameter"><code><a href="/usr/share/gtk-doc/html/libnm-util/NMConnection.html#NMConnection-struct"><span class="type">NMConnection</span></a> *connection</code></em>);</pre>
 <p>Validates a given connection for a given <a class="link" href="NMDevice.html" title="NMDevice"><span class="type">NMDevice</span></a> object and returns
 whether the connection may be activated with the device. For example if
 <em class="parameter"><code>device</code></em>
@@ -1773,7 +1773,7 @@ against</p></td>
 </tr>
 <tr>
 <td class="parameter_name"><p>connection</p></td>
-<td class="parameter_description"><p>an <span class="type">NMConnection</span> to validate against <em class="parameter"><code>device</code></em>
+<td class="parameter_description"><p>an <a href="/usr/share/gtk-doc/html/libnm-util/NMConnection.html#NMConnection-struct"><span class="type">NMConnection</span></a> to validate against <em class="parameter"><code>device</code></em>
 </p></td>
 <td class="parameter_annotations"> </td>
 </tr>
@@ -1791,7 +1791,7 @@ if is incompatible with the device's capabilities and characteristics.</p>
 <a name="nm-device-connection-compatible"></a><h3>nm_device_connection_compatible ()</h3>
 <pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 nm_device_connection_compatible (<em class="parameter"><code><a class="link" href="NMDevice.html" title="NMDevice"><span class="type">NMDevice</span></a> *device</code></em>,
-                                 <em class="parameter"><code><span class="type">NMConnection</span> *connection</code></em>,
+                                 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/libnm-util/NMConnection.html#NMConnection-struct"><span class="type">NMConnection</span></a> *connection</code></em>,
                                  <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
 <p>Validates a given connection for a given <a class="link" href="NMDevice.html" title="NMDevice"><span class="type">NMDevice</span></a> object and returns
 whether the connection may be activated with the device. For example if
@@ -1821,7 +1821,7 @@ against</p></td>
 </tr>
 <tr>
 <td class="parameter_name"><p>connection</p></td>
-<td class="parameter_description"><p>an <span class="type">NMConnection</span> to validate against <em class="parameter"><code>device</code></em>
+<td class="parameter_description"><p>an <a href="/usr/share/gtk-doc/html/libnm-util/NMConnection.html#NMConnection-struct"><span class="type">NMConnection</span></a> to validate against <em class="parameter"><code>device</code></em>
 </p></td>
 <td class="parameter_annotations"> </td>
 </tr>
@@ -1844,7 +1844,7 @@ if is incompatible with the device's capabilities and characteristics.</p>
 <a name="nm-device-get-setting-type"></a><h3>nm_device_get_setting_type ()</h3>
 <pre class="programlisting"><a href="https://developer.gnome.org/gobject/unstable/gobject-Type-Information.html#GType"><span class="returnvalue">GType</span></a>
 nm_device_get_setting_type (<em class="parameter"><code><a class="link" href="NMDevice.html" title="NMDevice"><span class="type">NMDevice</span></a> *device</code></em>);</pre>
-<p>Gets the (primary) <a href="/usr/share/gtk-doc/html/libnm/NMSetting.html#NMSetting-struct"><span class="type">NMSetting</span></a> subtype associated with connections
+<p>Gets the (primary) <a href="/usr/share/gtk-doc/html/libnm-util/NMSetting.html#NMSetting-struct"><span class="type">NMSetting</span></a> subtype associated with connections
 that can be used on <em class="parameter"><code>device</code></em>
 .</p>
 <div class="refsect3">
@@ -1865,7 +1865,7 @@ that can be used on <em class="parameter"><code>device</code></em>
 <div class="refsect3">
 <a name="nm-device-get-setting-type.returns"></a><h4>Returns</h4>
 <p> <em class="parameter"><code>device</code></em>
-'s associated <a href="/usr/share/gtk-doc/html/libnm/NMSetting.html#NMSetting-struct"><span class="type">NMSetting</span></a> type</p>
+'s associated <a href="/usr/share/gtk-doc/html/libnm-util/NMSetting.html#NMSetting-struct"><span class="type">NMSetting</span></a> type</p>
 </div>
 <p class="since">Since: 0.9.10</p>
 </div>
@@ -2316,6 +2316,6 @@ user_function (<a class="link" href="NMDevice.html" title="NMDevice"><span class
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm-glib/html/NMDeviceAdsl.html b/docs/libnm-glib/html/NMDeviceAdsl.html
index 13ee03a6..88e3d14b 100644
--- a/docs/libnm-glib/html/NMDeviceAdsl.html
+++ b/docs/libnm-glib/html/NMDeviceAdsl.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch02.html" title="libnm-glib API Reference">
 <link rel="prev" href="NMDeviceWimax.html" title="NMDeviceWimax">
 <link rel="next" href="NMDeviceBond.html" title="NMDeviceBond">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -254,6 +254,6 @@ nm_device_adsl_get_carrier (<em class="parameter"><code><a class="link" href="NM
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm-glib/html/NMDeviceBond.html b/docs/libnm-glib/html/NMDeviceBond.html
index 943873ac..58272974 100644
--- a/docs/libnm-glib/html/NMDeviceBond.html
+++ b/docs/libnm-glib/html/NMDeviceBond.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch02.html" title="libnm-glib API Reference">
 <link rel="prev" href="NMDeviceAdsl.html" title="NMDeviceAdsl">
 <link rel="next" href="NMDeviceBridge.html" title="NMDeviceBridge">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -384,6 +384,6 @@ copy used by the device, and must not be modified. </p>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm-glib/html/NMDeviceBridge.html b/docs/libnm-glib/html/NMDeviceBridge.html
index 20c13434..6d19527f 100644
--- a/docs/libnm-glib/html/NMDeviceBridge.html
+++ b/docs/libnm-glib/html/NMDeviceBridge.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch02.html" title="libnm-glib API Reference">
 <link rel="prev" href="NMDeviceBond.html" title="NMDeviceBond">
 <link rel="next" href="NMDeviceTeam.html" title="NMDeviceTeam">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -391,6 +391,6 @@ copy used by the device, and must not be modified. </p>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm-glib/html/NMDeviceBt.html b/docs/libnm-glib/html/NMDeviceBt.html
index 1ba9f49d..4d2fa8ba 100644
--- a/docs/libnm-glib/html/NMDeviceBt.html
+++ b/docs/libnm-glib/html/NMDeviceBt.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch02.html" title="libnm-glib API Reference">
 <link rel="prev" href="NMDeviceModem.html" title="NMDeviceModem">
 <link rel="next" href="NMDeviceWimax.html" title="NMDeviceWimax">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -73,7 +73,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="/usr/share/gtk-doc/html/libnm/libnm-nm-dbus-interface.html#NMBluetoothCapabilities"><span class="returnvalue">NMBluetoothCapabilities</span></a>
+<a href="/usr/share/gtk-doc/html/libnm-util/libnm-util-NetworkManager.html#NMBluetoothCapabilities"><span class="returnvalue">NMBluetoothCapabilities</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="NMDeviceBt.html#nm-device-bt-get-capabilities" title="nm_device_bt_get_capabilities ()">nm_device_bt_get_capabilities</a> <span class="c_punctuation">()</span>
@@ -256,7 +256,7 @@ nm_device_bt_get_name (<em class="parameter"><code><a class="link" href="NMDevic
 <hr>
 <div class="refsect2">
 <a name="nm-device-bt-get-capabilities"></a><h3>nm_device_bt_get_capabilities ()</h3>
-<pre class="programlisting"><a href="/usr/share/gtk-doc/html/libnm/libnm-nm-dbus-interface.html#NMBluetoothCapabilities"><span class="returnvalue">NMBluetoothCapabilities</span></a>
+<pre class="programlisting"><a href="/usr/share/gtk-doc/html/libnm-util/libnm-util-NetworkManager.html#NMBluetoothCapabilities"><span class="returnvalue">NMBluetoothCapabilities</span></a>
 nm_device_bt_get_capabilities (<em class="parameter"><code><a class="link" href="NMDeviceBt.html" title="NMDeviceBt"><span class="type">NMDeviceBt</span></a> *device</code></em>);</pre>
 <p>Returns the Bluetooth device's usable capabilities.</p>
 <div class="refsect3">
@@ -276,7 +276,7 @@ nm_device_bt_get_capabilities (<em class="parameter"><code><a class="link" href=
 </div>
 <div class="refsect3">
 <a name="nm-device-bt-get-capabilities.returns"></a><h4>Returns</h4>
-<p> a combination of <a href="/usr/share/gtk-doc/html/libnm/libnm-nm-dbus-interface.html#NMBluetoothCapabilities"><span class="type">NMBluetoothCapabilities</span></a></p>
+<p> a combination of <a href="/usr/share/gtk-doc/html/libnm-util/libnm-util-NetworkManager.html#NMBluetoothCapabilities"><span class="type">NMBluetoothCapabilities</span></a></p>
 </div>
 </div>
 </div>
@@ -369,7 +369,7 @@ nm_device_bt_get_capabilities (<em class="parameter"><code><a class="link" href=
 <div class="refsect2">
 <a name="NMDeviceBt--bt-capabilities"></a><h3>The <code class="literal">“bt-capabilities”</code> property</h3>
 <pre class="programlisting">  “bt-capabilities”          <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></pre>
-<p>The device's bluetooth capabilities, a combination of <a href="/usr/share/gtk-doc/html/libnm/libnm-nm-dbus-interface.html#NMBluetoothCapabilities"><span class="type">NMBluetoothCapabilities</span></a>.</p>
+<p>The device's bluetooth capabilities, a combination of <a href="/usr/share/gtk-doc/html/libnm-util/libnm-util-NetworkManager.html#NMBluetoothCapabilities"><span class="type">NMBluetoothCapabilities</span></a>.</p>
 <p>Flags: Read</p>
 <p>Default value: 0</p>
 </div>
@@ -392,6 +392,6 @@ nm_device_bt_get_capabilities (<em class="parameter"><code><a class="link" href=
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm-glib/html/NMDeviceEthernet.html b/docs/libnm-glib/html/NMDeviceEthernet.html
index 90e02e86..8465051d 100644
--- a/docs/libnm-glib/html/NMDeviceEthernet.html
+++ b/docs/libnm-glib/html/NMDeviceEthernet.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch02.html" title="libnm-glib API Reference">
 <link rel="prev" href="NMDevice.html" title="NMDevice">
 <link rel="next" href="NMDeviceWifi.html" title="NMDeviceWifi">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -444,6 +444,6 @@ nm_device_ethernet_get_carrier (<em class="parameter"><code><a class="link" href
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm-glib/html/NMDeviceGeneric.html b/docs/libnm-glib/html/NMDeviceGeneric.html
index 678207cb..dc3348b9 100644
--- a/docs/libnm-glib/html/NMDeviceGeneric.html
+++ b/docs/libnm-glib/html/NMDeviceGeneric.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch02.html" title="libnm-glib API Reference">
 <link rel="prev" href="NMDeviceTeam.html" title="NMDeviceTeam">
 <link rel="next" href="NMDeviceInfiniband.html" title="NMDeviceInfiniband">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -285,6 +285,6 @@ if not known.</p>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm-glib/html/NMDeviceInfiniband.html b/docs/libnm-glib/html/NMDeviceInfiniband.html
index 9be78665..f81faa4f 100644
--- a/docs/libnm-glib/html/NMDeviceInfiniband.html
+++ b/docs/libnm-glib/html/NMDeviceInfiniband.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch02.html" title="libnm-glib API Reference">
 <link rel="prev" href="NMDeviceGeneric.html" title="NMDeviceGeneric">
 <link rel="next" href="NMDeviceVlan.html" title="NMDeviceVlan">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -328,6 +328,6 @@ nm_device_infiniband_get_carrier (<em class="parameter"><code><a class="link" hr
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm-glib/html/NMDeviceModem.html b/docs/libnm-glib/html/NMDeviceModem.html
index f2d288f6..75ec49a7 100644
--- a/docs/libnm-glib/html/NMDeviceModem.html
+++ b/docs/libnm-glib/html/NMDeviceModem.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch02.html" title="libnm-glib API Reference">
 <link rel="prev" href="NMDeviceWifi.html" title="NMDeviceWifi">
 <link rel="next" href="NMDeviceBt.html" title="NMDeviceBt">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -51,7 +51,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="/usr/share/gtk-doc/html/libnm/libnm-nm-dbus-interface.html#NMDeviceModemCapabilities"><span class="returnvalue">NMDeviceModemCapabilities</span></a>
+<a href="/usr/share/gtk-doc/html/libnm-util/libnm-util-NetworkManager.html#NMDeviceModemCapabilities"><span class="returnvalue">NMDeviceModemCapabilities</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="NMDeviceModem.html#nm-device-modem-get-modem-capabilities" title="nm_device_modem_get_modem_capabilities ()">nm_device_modem_get_modem_capabilities</a> <span class="c_punctuation">()</span>
@@ -59,7 +59,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="/usr/share/gtk-doc/html/libnm/libnm-nm-dbus-interface.html#NMDeviceModemCapabilities"><span class="returnvalue">NMDeviceModemCapabilities</span></a>
+<a href="/usr/share/gtk-doc/html/libnm-util/libnm-util-NetworkManager.html#NMDeviceModemCapabilities"><span class="returnvalue">NMDeviceModemCapabilities</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="NMDeviceModem.html#nm-device-modem-get-current-capabilities" title="nm_device_modem_get_current_capabilities ()">nm_device_modem_get_current_capabilities</a> <span class="c_punctuation">()</span>
@@ -143,7 +143,7 @@ nm_device_modem_error_quark (<em class="parameter"><code><span class="type">void
 <hr>
 <div class="refsect2">
 <a name="nm-device-modem-get-modem-capabilities"></a><h3>nm_device_modem_get_modem_capabilities ()</h3>
-<pre class="programlisting"><a href="/usr/share/gtk-doc/html/libnm/libnm-nm-dbus-interface.html#NMDeviceModemCapabilities"><span class="returnvalue">NMDeviceModemCapabilities</span></a>
+<pre class="programlisting"><a href="/usr/share/gtk-doc/html/libnm-util/libnm-util-NetworkManager.html#NMDeviceModemCapabilities"><span class="returnvalue">NMDeviceModemCapabilities</span></a>
 nm_device_modem_get_modem_capabilities
                                (<em class="parameter"><code><a class="link" href="NMDeviceModem.html" title="NMDeviceModem"><span class="type">NMDeviceModem</span></a> *self</code></em>);</pre>
 <p>Returns a bitfield of the generic access technology families the modem
@@ -172,7 +172,7 @@ may require a firmware reload or reinitialization.</p>
 <hr>
 <div class="refsect2">
 <a name="nm-device-modem-get-current-capabilities"></a><h3>nm_device_modem_get_current_capabilities ()</h3>
-<pre class="programlisting"><a href="/usr/share/gtk-doc/html/libnm/libnm-nm-dbus-interface.html#NMDeviceModemCapabilities"><span class="returnvalue">NMDeviceModemCapabilities</span></a>
+<pre class="programlisting"><a href="/usr/share/gtk-doc/html/libnm-util/libnm-util-NetworkManager.html#NMDeviceModemCapabilities"><span class="returnvalue">NMDeviceModemCapabilities</span></a>
 nm_device_modem_get_current_capabilities
                                (<em class="parameter"><code><a class="link" href="NMDeviceModem.html" title="NMDeviceModem"><span class="type">NMDeviceModem</span></a> *self</code></em>);</pre>
 <p>Returns a bitfield of the generic access technology families the modem
@@ -288,6 +288,6 @@ CDMA/EVDO and GSM/UMTS.</p>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm-glib/html/NMDeviceOlpcMesh.html b/docs/libnm-glib/html/NMDeviceOlpcMesh.html
index 8b6f02ba..8b50abd3 100644
--- a/docs/libnm-glib/html/NMDeviceOlpcMesh.html
+++ b/docs/libnm-glib/html/NMDeviceOlpcMesh.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch02.html" title="libnm-glib API Reference">
 <link rel="prev" href="NMDeviceVlan.html" title="NMDeviceVlan">
 <link rel="next" href="NMWimaxNsp.html" title="NMWimaxNsp">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -373,6 +373,6 @@ nm_device_olpc_mesh_get_active_channel
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm-glib/html/NMDeviceTeam.html b/docs/libnm-glib/html/NMDeviceTeam.html
index 07f14b2c..a3da63c4 100644
--- a/docs/libnm-glib/html/NMDeviceTeam.html
+++ b/docs/libnm-glib/html/NMDeviceTeam.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch02.html" title="libnm-glib API Reference">
 <link rel="prev" href="NMDeviceBridge.html" title="NMDeviceBridge">
 <link rel="next" href="NMDeviceGeneric.html" title="NMDeviceGeneric">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -387,6 +387,6 @@ copy used by the device, and must not be modified. </p>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm-glib/html/NMDeviceVlan.html b/docs/libnm-glib/html/NMDeviceVlan.html
index bbf4fda8..96f5529f 100644
--- a/docs/libnm-glib/html/NMDeviceVlan.html
+++ b/docs/libnm-glib/html/NMDeviceVlan.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch02.html" title="libnm-glib API Reference">
 <link rel="prev" href="NMDeviceInfiniband.html" title="NMDeviceInfiniband">
 <link rel="next" href="NMDeviceOlpcMesh.html" title="NMDeviceOlpcMesh">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -451,6 +451,6 @@ nm_device_vlan_get_vlan_id (<em class="parameter"><code><a class="link" href="NM
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm-glib/html/NMDeviceWifi.html b/docs/libnm-glib/html/NMDeviceWifi.html
index 096d6e78..4fbea127 100644
--- a/docs/libnm-glib/html/NMDeviceWifi.html
+++ b/docs/libnm-glib/html/NMDeviceWifi.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch02.html" title="libnm-glib API Reference">
 <link rel="prev" href="NMDeviceEthernet.html" title="NMDeviceEthernet">
 <link rel="next" href="NMDeviceModem.html" title="NMDeviceModem">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -74,7 +74,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="/usr/share/gtk-doc/html/libnm/libnm-nm-dbus-interface.html#NM80211Mode"><span class="returnvalue">NM80211Mode</span></a>
+<a href="/usr/share/gtk-doc/html/libnm-util/libnm-util-NetworkManager.html#NM80211Mode"><span class="returnvalue">NM80211Mode</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="NMDeviceWifi.html#nm-device-wifi-get-mode" title="nm_device_wifi_get_mode ()">nm_device_wifi_get_mode</a> <span class="c_punctuation">()</span>
@@ -90,7 +90,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<a href="/usr/share/gtk-doc/html/libnm/libnm-nm-dbus-interface.html#NMDeviceWifiCapabilities"><span class="returnvalue">NMDeviceWifiCapabilities</span></a>
+<a href="/usr/share/gtk-doc/html/libnm-util/libnm-util-NetworkManager.html#NMDeviceWifiCapabilities"><span class="returnvalue">NMDeviceWifiCapabilities</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="NMDeviceWifi.html#nm-device-wifi-get-capabilities" title="nm_device_wifi_get_capabilities ()">nm_device_wifi_get_capabilities</a> <span class="c_punctuation">()</span>
@@ -374,7 +374,7 @@ device, and must not be modified.</p>
 <hr>
 <div class="refsect2">
 <a name="nm-device-wifi-get-mode"></a><h3>nm_device_wifi_get_mode ()</h3>
-<pre class="programlisting"><a href="/usr/share/gtk-doc/html/libnm/libnm-nm-dbus-interface.html#NM80211Mode"><span class="returnvalue">NM80211Mode</span></a>
+<pre class="programlisting"><a href="/usr/share/gtk-doc/html/libnm-util/libnm-util-NetworkManager.html#NM80211Mode"><span class="returnvalue">NM80211Mode</span></a>
 nm_device_wifi_get_mode (<em class="parameter"><code><a class="link" href="NMDeviceWifi.html" title="NMDeviceWifi"><span class="type">NMDeviceWifi</span></a> *device</code></em>);</pre>
 <p>Gets the <a class="link" href="NMDeviceWifi.html" title="NMDeviceWifi"><span class="type">NMDeviceWifi</span></a> mode.</p>
 <div class="refsect3">
@@ -426,7 +426,7 @@ nm_device_wifi_get_bitrate (<em class="parameter"><code><a class="link" href="NM
 <hr>
 <div class="refsect2">
 <a name="nm-device-wifi-get-capabilities"></a><h3>nm_device_wifi_get_capabilities ()</h3>
-<pre class="programlisting"><a href="/usr/share/gtk-doc/html/libnm/libnm-nm-dbus-interface.html#NMDeviceWifiCapabilities"><span class="returnvalue">NMDeviceWifiCapabilities</span></a>
+<pre class="programlisting"><a href="/usr/share/gtk-doc/html/libnm-util/libnm-util-NetworkManager.html#NMDeviceWifiCapabilities"><span class="returnvalue">NMDeviceWifiCapabilities</span></a>
 nm_device_wifi_get_capabilities (<em class="parameter"><code><a class="link" href="NMDeviceWifi.html" title="NMDeviceWifi"><span class="type">NMDeviceWifi</span></a> *device</code></em>);</pre>
 <p>Gets the Wi-Fi capabilities of the <a class="link" href="NMDeviceWifi.html" title="NMDeviceWifi"><span class="type">NMDeviceWifi</span></a>.</p>
 <div class="refsect3">
@@ -843,6 +843,6 @@ user_function (<a class="link" href="NMDeviceWifi.html" title="NMDeviceWifi"><sp
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm-glib/html/NMDeviceWimax.html b/docs/libnm-glib/html/NMDeviceWimax.html
index b21a0471..291d7835 100644
--- a/docs/libnm-glib/html/NMDeviceWimax.html
+++ b/docs/libnm-glib/html/NMDeviceWimax.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch02.html" title="libnm-glib API Reference">
 <link rel="prev" href="NMDeviceBt.html" title="NMDeviceBt">
 <link rel="next" href="NMDeviceAdsl.html" title="NMDeviceAdsl">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -919,6 +919,6 @@ user_function (<a class="link" href="NMDeviceWimax.html" title="NMDeviceWimax"><
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm-glib/html/NMIP4Config.html b/docs/libnm-glib/html/NMIP4Config.html
index 3efc49e8..b1981465 100644
--- a/docs/libnm-glib/html/NMIP4Config.html
+++ b/docs/libnm-glib/html/NMIP4Config.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch02.html" title="libnm-glib API Reference">
 <link rel="prev" href="NMAccessPoint.html" title="NMAccessPoint">
 <link rel="next" href="NMIP6Config.html" title="NMIP6Config">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -538,6 +538,6 @@ modified. </p>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm-glib/html/NMIP6Config.html b/docs/libnm-glib/html/NMIP6Config.html
index f2c77b3b..bb3771dc 100644
--- a/docs/libnm-glib/html/NMIP6Config.html
+++ b/docs/libnm-glib/html/NMIP6Config.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch02.html" title="libnm-glib API Reference">
 <link rel="prev" href="NMIP4Config.html" title="NMIP4Config">
 <link rel="next" href="NMDHCP4Config.html" title="NMDHCP4Config">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -519,7 +519,7 @@ This is the internal copy used by the configuration, and must not be modified. <
 <a name="NMIP6Config--addresses"></a><h3>The <code class="literal">“addresses”</code> property</h3>
 <pre class="programlisting">  “addresses”                <span class="type">NMIP6AddressObjectArray</span> *</pre>
 <p>The <a href="https://developer.gnome.org/glib/unstable/glib-Pointer-Arrays.html#GPtrArray"><span class="type">GPtrArray</span></a> containing the IPv6 addresses;  use
-<code class="function">nm_utils_ip6_addresses_from_gvalue()</code> to return a <a href="https://developer.gnome.org/glib/unstable/glib-Singly-Linked-Lists.html#GSList"><span class="type">GSList</span></a> of
+<a href="/usr/share/gtk-doc/html/libnm-util/libnm-util-nm-utils.html#nm-utils-ip6-addresses-from-gvalue"><code class="function">nm_utils_ip6_addresses_from_gvalue()</code></a> to return a <a href="https://developer.gnome.org/glib/unstable/glib-Singly-Linked-Lists.html#GSList"><span class="type">GSList</span></a> of
 <span class="type">NMSettingIP6Address</span> objects that is more usable than the raw data.</p>
 <p>Flags: Read</p>
 </div>
@@ -552,7 +552,7 @@ contain the addresses of nameservers of the configuration.</p>
 <a name="NMIP6Config--routes"></a><h3>The <code class="literal">“routes”</code> property</h3>
 <pre class="programlisting">  “routes”                   <span class="type">NMIP6RouteObjectArray</span> *</pre>
 <p>The <a href="https://developer.gnome.org/glib/unstable/glib-Pointer-Arrays.html#GPtrArray"><span class="type">GPtrArray</span></a> containing the IPv6 routes;  use
-<code class="function">nm_utils_ip6_routes_from_gvalue()</code> to return a <a href="https://developer.gnome.org/glib/unstable/glib-Singly-Linked-Lists.html#GSList"><span class="type">GSList</span></a> of
+<a href="/usr/share/gtk-doc/html/libnm-util/libnm-util-nm-utils.html#nm-utils-ip6-routes-from-gvalue"><code class="function">nm_utils_ip6_routes_from_gvalue()</code></a> to return a <a href="https://developer.gnome.org/glib/unstable/glib-Singly-Linked-Lists.html#GSList"><span class="type">GSList</span></a> of
 <span class="type">NMSettingIP6Address</span> objects that is more usable than the raw data.</p>
 <p>Flags: Read</p>
 </div>
@@ -567,6 +567,6 @@ contain the addresses of nameservers of the configuration.</p>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm-glib/html/NMObject.html b/docs/libnm-glib/html/NMObject.html
index 0c85c095..3d9be2b9 100644
--- a/docs/libnm-glib/html/NMObject.html
+++ b/docs/libnm-glib/html/NMObject.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch02.html" title="libnm-glib API Reference">
 <link rel="prev" href="NMDHCP6Config.html" title="NMDHCP6Config">
 <link rel="next" href="NMRemoteConnection.html" title="NMRemoteConnection">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -336,6 +336,6 @@ during property handling of <em class="parameter"><code>master_object</code></em
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm-glib/html/NMRemoteConnection.html b/docs/libnm-glib/html/NMRemoteConnection.html
index d8e0404f..9e7e0c41 100644
--- a/docs/libnm-glib/html/NMRemoteConnection.html
+++ b/docs/libnm-glib/html/NMRemoteConnection.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch02.html" title="libnm-glib API Reference">
 <link rel="prev" href="NMObject.html" title="NMObject">
 <link rel="next" href="NMRemoteSettings.html" title="NMRemoteSettings">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -229,7 +229,7 @@
 <div class="refsect1">
 <a name="NMRemoteConnection.object-hierarchy"></a><h2>Object Hierarchy</h2>
 <pre class="screen">    <a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#GObject-struct">GObject</a>
-    <span class="lineart">╰──</span> NMConnection
+    <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/libnm-util/NMConnection.html#NMConnection-struct">NMConnection</a>
         <span class="lineart">╰──</span> NMRemoteConnection
 </pre>
 </div>
@@ -548,7 +548,7 @@ nm_remote_connection_get_secrets (<em class="parameter"><code><a class="link" hr
 </tr>
 <tr>
 <td class="parameter_name"><p>setting_name</p></td>
-<td class="parameter_description"><p>the <a href="/usr/share/gtk-doc/html/libnm/NMSetting.html#NMSetting-struct"><span class="type">NMSetting</span></a> object name to get secrets for</p></td>
+<td class="parameter_description"><p>the <a href="/usr/share/gtk-doc/html/libnm-util/NMSetting.html#NMSetting-struct"><span class="type">NMSetting</span></a> object name to get secrets for</p></td>
 <td class="parameter_annotations"> </td>
 </tr>
 <tr>
@@ -716,7 +716,7 @@ invisible to the current user.</p>
 <tbody>
 <tr>
 <td class="parameter_name"><p>connection</p></td>
-<td class="parameter_description"><p>a <span class="type">NMConnection</span></p></td>
+<td class="parameter_description"><p>a <a href="/usr/share/gtk-doc/html/libnm-util/NMConnection.html#NMConnection-struct"><span class="type">NMConnection</span></a></p></td>
 <td class="parameter_annotations"> </td>
 </tr>
 <tr>
@@ -748,7 +748,7 @@ still visible to the user.</p>
 <tbody>
 <tr>
 <td class="parameter_name"><p>connection</p></td>
-<td class="parameter_description"><p>a <span class="type">NMConnection</span></p></td>
+<td class="parameter_description"><p>a <a href="/usr/share/gtk-doc/html/libnm-util/NMConnection.html#NMConnection-struct"><span class="type">NMConnection</span></a></p></td>
 <td class="parameter_annotations"> </td>
 </tr>
 <tr>
@@ -773,6 +773,6 @@ user_function (<a class="link" href="NMRemoteConnection.html" title="NMRemoteCon
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm-glib/html/NMRemoteSettings.html b/docs/libnm-glib/html/NMRemoteSettings.html
index a69f46c5..b233a26c 100644
--- a/docs/libnm-glib/html/NMRemoteSettings.html
+++ b/docs/libnm-glib/html/NMRemoteSettings.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch02.html" title="libnm-glib API Reference">
 <link rel="prev" href="NMRemoteConnection.html" title="NMRemoteConnection">
 <link rel="next" href="libnm-glib-nm-types.html" title="nm-types">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -284,13 +284,13 @@
 which stores network configuration and allows authenticated clients to
 add, delete, and modify that configuration.  The data required to connect
 to a specific network is called a "connection" and encapsulated by the
-<span class="type">NMConnection</span> object.  Once a connection is known to NetworkManager, having
+<a href="/usr/share/gtk-doc/html/libnm-util/NMConnection.html#NMConnection-struct"><span class="type">NMConnection</span></a> object.  Once a connection is known to NetworkManager, having
 either been added by a user or read from on-disk storage, the
 <a class="link" href="NMRemoteSettings.html" title="NMRemoteSettings"><span class="type">NMRemoteSettings</span></a> object creates a <a class="link" href="NMRemoteConnection.html" title="NMRemoteConnection"><span class="type">NMRemoteConnection</span></a> object which
 represents this stored connection.  Use the <a class="link" href="NMRemoteConnection.html" title="NMRemoteConnection"><span class="type">NMRemoteConnection</span></a> object to
 perform any operations like modification or deletion.</p>
 <p>To add a new network connection to the NetworkManager settings service, first
-build up a template <span class="type">NMConnection</span> object.  Since this connection is not yet
+build up a template <a href="/usr/share/gtk-doc/html/libnm-util/NMConnection.html#NMConnection-struct"><span class="type">NMConnection</span></a> object.  Since this connection is not yet
 added to NetworkManager, it is known only to your program and is not yet
 an <a class="link" href="NMRemoteConnection.html" title="NMRemoteConnection"><span class="type">NMRemoteConnection</span></a>.  Then ask <a class="link" href="NMRemoteSettings.html" title="NMRemoteSettings"><span class="type">NMRemoteSettings</span></a> to add your connection.
 When the connection is added successfully, the supplied callback is called
@@ -368,7 +368,7 @@ the stored object known to NetworkManager.</p>
 <span class="normal">   </span><span class="keyword">if</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">error</span><span class="symbol">)</span>
 <span class="normal">       </span><span class="function"><a href="https://developer.gnome.org/glib/unstable/glib-Warnings-and-Assertions.html#g-print">g_print</a></span><span class="normal"> </span><span class="symbol">(</span><span class="string">"Error adding connection: %s"</span><span class="symbol">,</span><span class="normal"> error</span><span class="symbol">-&gt;</span><span class="normal">message</span><span class="symbol">);</span>
 <span class="normal">   </span><span class="keyword">else</span><span class="normal"> </span><span class="cbracket">{</span>
-<span class="normal">       </span><span class="function"><a href="https://developer.gnome.org/glib/unstable/glib-Warnings-and-Assertions.html#g-print">g_print</a></span><span class="normal"> </span><span class="symbol">(</span><span class="string">"Added: %s</span><span class="specialchar">\n</span><span class="string">"</span><span class="symbol">,</span><span class="normal"> </span><span class="function"><a href="/usr/share/gtk-doc/html/libnm/NMConnection.html#nm-connection-get-path">nm_connection_get_path</a></span><span class="normal"> </span><span class="symbol">(</span><span class="function">NM_CONNECTION</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">remote</span><span class="symbol">)));</span>
+<span class="normal">       </span><span class="function"><a href="https://developer.gnome.org/glib/unstable/glib-Warnings-and-Assertions.html#g-print">g_print</a></span><span class="normal"> </span><span class="symbol">(</span><span class="string">"Added: %s</span><span class="specialchar">\n</span><span class="string">"</span><span class="symbol">,</span><span class="normal"> </span><span class="function"><a href="/usr/share/gtk-doc/html/libnm-util/NMConnection.html#nm-connection-get-path">nm_connection_get_path</a></span><span class="normal"> </span><span class="symbol">(</span><span class="function">NM_CONNECTION</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">remote</span><span class="symbol">)));</span>
 <span class="normal">       </span><span class="comment">/* Use 'remote' with nm_remote_connection_commit_changes() to save</span>
 <span class="comment">        * changes and nm_remote_connection_delete() to delete the connection */</span>
 <span class="normal">   </span><span class="cbracket">}</span>
@@ -383,28 +383,28 @@ the stored object known to NetworkManager.</p>
 <span class="normal">   </span><span class="type">char</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">uuid</span><span class="symbol">;</span>
 <span class="normal">   </span><span class="usertype">gboolean</span><span class="normal"> success</span><span class="symbol">;</span>
 
-<span class="normal">   connection </span><span class="symbol">=</span><span class="normal"> </span><span class="function">nm_connection_new</span><span class="normal"> </span><span class="symbol">();</span>
+<span class="normal">   connection </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="/usr/share/gtk-doc/html/libnm-util/NMConnection.html#nm-connection-new">nm_connection_new</a></span><span class="normal"> </span><span class="symbol">();</span>
 
 <span class="normal">   </span><span class="comment">/* Build up the 'connection' setting */</span>
-<span class="normal">   s_con </span><span class="symbol">=</span><span class="normal"> </span><span class="symbol">(</span><span class="normal"><a href="/usr/share/gtk-doc/html/libnm/NMSettingConnection.html#NMSettingConnection-struct">NMSettingConnection</a> </span><span class="symbol">*)</span><span class="normal"> </span><span class="function"><a href="/usr/share/gtk-doc/html/libnm/NMSettingConnection.html#nm-setting-connection-new">nm_setting_connection_new</a></span><span class="normal"> </span><span class="symbol">();</span>
-<span class="normal">   uuid </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="/usr/share/gtk-doc/html/libnm/libnm-nm-utils.html#nm-utils-uuid-generate">nm_utils_uuid_generate</a></span><span class="normal"> </span><span class="symbol">();</span>
+<span class="normal">   s_con </span><span class="symbol">=</span><span class="normal"> </span><span class="symbol">(</span><span class="normal"><a href="/usr/share/gtk-doc/html/libnm-util/NMSettingConnection.html#NMSettingConnection-struct">NMSettingConnection</a> </span><span class="symbol">*)</span><span class="normal"> </span><span class="function"><a href="/usr/share/gtk-doc/html/libnm-util/NMSettingConnection.html#nm-setting-connection-new">nm_setting_connection_new</a></span><span class="normal"> </span><span class="symbol">();</span>
+<span class="normal">   uuid </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="/usr/share/gtk-doc/html/libnm-util/libnm-util-nm-utils.html#nm-utils-uuid-generate">nm_utils_uuid_generate</a></span><span class="normal"> </span><span class="symbol">();</span>
 <span class="normal">   </span><span class="function"><a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#g-object-set">g_object_set</a></span><span class="normal"> </span><span class="symbol">(</span><span class="function"><a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#G-OBJECT:CAPS">G_OBJECT</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">s_con</span><span class="symbol">),</span>
-<span class="normal">                 <a href="/usr/share/gtk-doc/html/libnm/NMSettingConnection.html#NM-SETTING-CONNECTION-UUID:CAPS">NM_SETTING_CONNECTION_UUID</a></span><span class="symbol">,</span><span class="normal"> uuid</span><span class="symbol">,</span>
-<span class="normal">                 <a href="/usr/share/gtk-doc/html/libnm/NMSettingConnection.html#NM-SETTING-CONNECTION-ID:CAPS">NM_SETTING_CONNECTION_ID</a></span><span class="symbol">,</span><span class="normal"> human_name</span><span class="symbol">,</span>
-<span class="normal">                 <a href="/usr/share/gtk-doc/html/libnm/NMSettingConnection.html#NM-SETTING-CONNECTION-TYPE:CAPS">NM_SETTING_CONNECTION_TYPE</a></span><span class="symbol">,</span><span class="normal"> <a href="/usr/share/gtk-doc/html/libnm/NMSettingWired.html#NM-SETTING-WIRED-SETTING-NAME:CAPS">NM_SETTING_WIRED_SETTING_NAME</a></span><span class="symbol">,</span>
+<span class="normal">                 <a href="/usr/share/gtk-doc/html/libnm-util/NMSettingConnection.html#NM-SETTING-CONNECTION-UUID:CAPS">NM_SETTING_CONNECTION_UUID</a></span><span class="symbol">,</span><span class="normal"> uuid</span><span class="symbol">,</span>
+<span class="normal">                 <a href="/usr/share/gtk-doc/html/libnm-util/NMSettingConnection.html#NM-SETTING-CONNECTION-ID:CAPS">NM_SETTING_CONNECTION_ID</a></span><span class="symbol">,</span><span class="normal"> human_name</span><span class="symbol">,</span>
+<span class="normal">                 <a href="/usr/share/gtk-doc/html/libnm-util/NMSettingConnection.html#NM-SETTING-CONNECTION-TYPE:CAPS">NM_SETTING_CONNECTION_TYPE</a></span><span class="symbol">,</span><span class="normal"> <a href="/usr/share/gtk-doc/html/libnm-util/NMSettingWired.html#NM-SETTING-WIRED-SETTING-NAME:CAPS">NM_SETTING_WIRED_SETTING_NAME</a></span><span class="symbol">,</span>
 <span class="normal">                 <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS">NULL</a></span><span class="symbol">);</span>
 <span class="normal">   </span><span class="function"><a href="https://developer.gnome.org/glib/unstable/glib-Memory-Allocation.html#g-free">g_free</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">uuid</span><span class="symbol">);</span>
-<span class="normal">   </span><span class="function"><a href="/usr/share/gtk-doc/html/libnm/NMConnection.html#nm-connection-add-setting">nm_connection_add_setting</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">connection</span><span class="symbol">,</span><span class="normal"> </span><span class="function">NM_SETTING</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">s_con</span><span class="symbol">));</span>
+<span class="normal">   </span><span class="function"><a href="/usr/share/gtk-doc/html/libnm-util/NMConnection.html#nm-connection-add-setting">nm_connection_add_setting</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">connection</span><span class="symbol">,</span><span class="normal"> </span><span class="function">NM_SETTING</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">s_con</span><span class="symbol">));</span>
 
 <span class="normal">   </span><span class="comment">/* Add the required 'wired' setting as this is a wired connection */</span>
-<span class="normal">   </span><span class="function"><a href="/usr/share/gtk-doc/html/libnm/NMConnection.html#nm-connection-add-setting">nm_connection_add_setting</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">connection</span><span class="symbol">,</span><span class="normal"> </span><span class="function"><a href="/usr/share/gtk-doc/html/libnm/NMSettingWired.html#nm-setting-wired-new">nm_setting_wired_new</a></span><span class="normal"> </span><span class="symbol">());</span>
+<span class="normal">   </span><span class="function"><a href="/usr/share/gtk-doc/html/libnm-util/NMConnection.html#nm-connection-add-setting">nm_connection_add_setting</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">connection</span><span class="symbol">,</span><span class="normal"> </span><span class="function"><a href="/usr/share/gtk-doc/html/libnm-util/NMSettingWired.html#nm-setting-wired-new">nm_setting_wired_new</a></span><span class="normal"> </span><span class="symbol">());</span>
 
 <span class="normal">   </span><span class="comment">/* Add an 'ipv4' setting using AUTO configuration (eg DHCP) */</span>
-<span class="normal">   s_ip4 </span><span class="symbol">=</span><span class="normal"> </span><span class="symbol">(</span><span class="normal"><a href="/usr/share/gtk-doc/html/libnm/NMSettingIP4Config.html#NMSettingIP4Config-struct">NMSettingIP4Config</a> </span><span class="symbol">*)</span><span class="normal"> </span><span class="function"><a href="/usr/share/gtk-doc/html/libnm/NMSettingIP4Config.html#nm-setting-ip4-config-new">nm_setting_ip4_config_new</a></span><span class="normal"> </span><span class="symbol">();</span>
+<span class="normal">   s_ip4 </span><span class="symbol">=</span><span class="normal"> </span><span class="symbol">(</span><span class="normal"><a href="/usr/share/gtk-doc/html/libnm/NMSettingIP4Config.html#NMSettingIP4Config-struct">NMSettingIP4Config</a> </span><span class="symbol">*)</span><span class="normal"> </span><span class="function"><a href="/usr/share/gtk-doc/html/libnm-util/NMSettingIP4Config.html#nm-setting-ip4-config-new">nm_setting_ip4_config_new</a></span><span class="normal"> </span><span class="symbol">();</span>
 <span class="normal">   </span><span class="function"><a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#g-object-set">g_object_set</a></span><span class="normal"> </span><span class="symbol">(</span><span class="function"><a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#G-OBJECT:CAPS">G_OBJECT</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">s_ip4</span><span class="symbol">),</span>
-<span class="normal">                 NM_SETTING_IP4_CONFIG_METHOD</span><span class="symbol">,</span><span class="normal"> <a href="/usr/share/gtk-doc/html/libnm/NMSettingIP4Config.html#NM-SETTING-IP4-CONFIG-METHOD-AUTO:CAPS">NM_SETTING_IP4_CONFIG_METHOD_AUTO</a></span><span class="symbol">,</span>
+<span class="normal">                 <a href="/usr/share/gtk-doc/html/libnm-util/NMSettingIP4Config.html#NM-SETTING-IP4-CONFIG-METHOD:CAPS">NM_SETTING_IP4_CONFIG_METHOD</a></span><span class="symbol">,</span><span class="normal"> <a href="/usr/share/gtk-doc/html/libnm-util/NMSettingIP4Config.html#NM-SETTING-IP4-CONFIG-METHOD-AUTO:CAPS">NM_SETTING_IP4_CONFIG_METHOD_AUTO</a></span><span class="symbol">,</span>
 <span class="normal">                 <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS">NULL</a></span><span class="symbol">);</span>
-<span class="normal">   </span><span class="function"><a href="/usr/share/gtk-doc/html/libnm/NMConnection.html#nm-connection-add-setting">nm_connection_add_setting</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">connection</span><span class="symbol">,</span><span class="normal"> </span><span class="function">NM_SETTING</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">s_ip4</span><span class="symbol">));</span>
+<span class="normal">   </span><span class="function"><a href="/usr/share/gtk-doc/html/libnm-util/NMConnection.html#nm-connection-add-setting">nm_connection_add_setting</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">connection</span><span class="symbol">,</span><span class="normal"> </span><span class="function">NM_SETTING</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">s_ip4</span><span class="symbol">));</span>
 
 <span class="normal">   </span><span class="comment">/* Ask NetworkManager to store the connection */</span>
 <span class="normal">   success </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="NMRemoteSettings.html#nm-remote-settings-add-connection">nm_remote_settings_add_connection</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">settings</span><span class="symbol">,</span><span class="normal"> connection</span><span class="symbol">,</span><span class="normal"> added_cb</span><span class="symbol">,</span><span class="normal"> loop</span><span class="symbol">);</span>
@@ -725,7 +725,7 @@ not known. </p>
 <a name="nm-remote-settings-add-connection"></a><h3>nm_remote_settings_add_connection ()</h3>
 <pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 nm_remote_settings_add_connection (<em class="parameter"><code><a class="link" href="NMRemoteSettings.html" title="NMRemoteSettings"><span class="type">NMRemoteSettings</span></a> *settings</code></em>,
-                                   <em class="parameter"><code><span class="type">NMConnection</span> *connection</code></em>,
+                                   <em class="parameter"><code><a href="/usr/share/gtk-doc/html/libnm-util/NMConnection.html#NMConnection-struct"><span class="type">NMConnection</span></a> *connection</code></em>,
                                    <em class="parameter"><code><a class="link" href="NMRemoteSettings.html#NMRemoteSettingsAddConnectionFunc" title="NMRemoteSettingsAddConnectionFunc ()"><span class="type">NMRemoteSettingsAddConnectionFunc</span></a> callback</code></em>,
                                    <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
 <p>Requests that the remote settings service add the given settings to a new
@@ -785,7 +785,7 @@ added, not the object itself</p></td>
 <pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 nm_remote_settings_add_connection_unsaved
                                (<em class="parameter"><code><a class="link" href="NMRemoteSettings.html" title="NMRemoteSettings"><span class="type">NMRemoteSettings</span></a> *settings</code></em>,
-                                <em class="parameter"><code><span class="type">NMConnection</span> *connection</code></em>,
+                                <em class="parameter"><code><a href="/usr/share/gtk-doc/html/libnm-util/NMConnection.html#NMConnection-struct"><span class="type">NMConnection</span></a> *connection</code></em>,
                                 <em class="parameter"><code><a class="link" href="NMRemoteSettings.html#NMRemoteSettingsAddConnectionFunc" title="NMRemoteSettingsAddConnectionFunc ()"><span class="type">NMRemoteSettingsAddConnectionFunc</span></a> callback</code></em>,
                                 <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
 <p>Requests that the remote settings service add the given settings to a new
@@ -1133,6 +1133,6 @@ user_function (<a class="link" href="NMRemoteSettings.html" title="NMRemoteSetti
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm-glib/html/NMSecretAgent.html b/docs/libnm-glib/html/NMSecretAgent.html
index c4340fc1..0c2bc341 100644
--- a/docs/libnm-glib/html/NMSecretAgent.html
+++ b/docs/libnm-glib/html/NMSecretAgent.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch02.html" title="libnm-glib API Reference">
 <link rel="prev" href="libnm-glib-nm-types.html" title="nm-types">
 <link rel="next" href="NMVPNConnection.html" title="NMVPNConnection">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -241,7 +241,7 @@ nm_secret_agent_error_quark (<em class="parameter"><code><span class="type">void
 <a name="NMSecretAgentGetSecretsFunc"></a><h3>NMSecretAgentGetSecretsFunc ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 <span class="c_punctuation">(</span>*NMSecretAgentGetSecretsFunc<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="NMSecretAgent.html" title="NMSecretAgent"><span class="type">NMSecretAgent</span></a> *agent</code></em>,
-                                <em class="parameter"><code><span class="type">NMConnection</span> *connection</code></em>,
+                                <em class="parameter"><code><a href="/usr/share/gtk-doc/html/libnm-util/NMConnection.html#NMConnection-struct"><span class="type">NMConnection</span></a> *connection</code></em>,
                                 <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Hash-Tables.html#GHashTable"><span class="type">GHashTable</span></a> *secrets</code></em>,
                                 <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> *error</code></em>,
                                 <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
@@ -277,13 +277,13 @@ something like this:</p>
 <span class="usertype">NMSettingWirelessSecurity</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">s_wsec</span><span class="symbol">;</span>
 <span class="usertype">GHashTable</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">secrets_hash</span><span class="symbol">;</span>
 
-<span class="normal">secrets </span><span class="symbol">=</span><span class="normal"> </span><span class="function">nm_connection_new</span><span class="normal"> </span><span class="symbol">();</span>
-<span class="normal">s_wsec </span><span class="symbol">=</span><span class="normal"> </span><span class="symbol">(</span><span class="normal"><a href="/usr/share/gtk-doc/html/libnm/NMSettingWirelessSecurity.html#NMSettingWirelessSecurity-struct">NMSettingWirelessSecurity</a> </span><span class="symbol">*)</span><span class="normal"> </span><span class="function"><a href="/usr/share/gtk-doc/html/libnm/NMSettingWirelessSecurity.html#nm-setting-wireless-security-new">nm_setting_wireless_security_new</a></span><span class="normal"> </span><span class="symbol">();</span>
+<span class="normal">secrets </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="/usr/share/gtk-doc/html/libnm-util/NMConnection.html#nm-connection-new">nm_connection_new</a></span><span class="normal"> </span><span class="symbol">();</span>
+<span class="normal">s_wsec </span><span class="symbol">=</span><span class="normal"> </span><span class="symbol">(</span><span class="normal"><a href="/usr/share/gtk-doc/html/libnm/NMSettingWirelessSecurity.html#NMSettingWirelessSecurity-struct">NMSettingWirelessSecurity</a> </span><span class="symbol">*)</span><span class="normal"> </span><span class="function"><a href="/usr/share/gtk-doc/html/libnm-util/NMSettingWirelessSecurity.html#nm-setting-wireless-security-new">nm_setting_wireless_security_new</a></span><span class="normal"> </span><span class="symbol">();</span>
 <span class="function"><a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#g-object-set">g_object_set</a></span><span class="normal"> </span><span class="symbol">(</span><span class="function"><a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#G-OBJECT:CAPS">G_OBJECT</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">s_wsec</span><span class="symbol">),</span>
-<span class="normal">              <a href="/usr/share/gtk-doc/html/libnm/NMSettingWirelessSecurity.html#NM-SETTING-WIRELESS-SECURITY-PSK:CAPS">NM_SETTING_WIRELESS_SECURITY_PSK</a></span><span class="symbol">,</span><span class="normal"> </span><span class="string">"my really cool PSK"</span><span class="symbol">,</span>
+<span class="normal">              <a href="/usr/share/gtk-doc/html/libnm-util/NMSettingWirelessSecurity.html#NM-SETTING-WIRELESS-SECURITY-PSK:CAPS">NM_SETTING_WIRELESS_SECURITY_PSK</a></span><span class="symbol">,</span><span class="normal"> </span><span class="string">"my really cool PSK"</span><span class="symbol">,</span>
 <span class="normal">              <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#NULL:CAPS">NULL</a></span><span class="symbol">);</span>
-<span class="function"><a href="/usr/share/gtk-doc/html/libnm/NMConnection.html#nm-connection-add-setting">nm_connection_add_setting</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">secrets</span><span class="symbol">,</span><span class="normal"> </span><span class="function">NM_SETTING</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">s_wsec</span><span class="symbol">));</span>
-<span class="normal">secrets_hash </span><span class="symbol">=</span><span class="normal"> </span><span class="function">nm_connection_to_hash</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">secrets</span><span class="symbol">,</span><span class="normal"> NM_SETTING_HASH_FLAG_ALL</span><span class="symbol">);</span>
+<span class="function"><a href="/usr/share/gtk-doc/html/libnm-util/NMConnection.html#nm-connection-add-setting">nm_connection_add_setting</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">secrets</span><span class="symbol">,</span><span class="normal"> </span><span class="function">NM_SETTING</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">s_wsec</span><span class="symbol">));</span>
+<span class="normal">secrets_hash </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="/usr/share/gtk-doc/html/libnm-util/NMConnection.html#nm-connection-to-hash">nm_connection_to_hash</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">secrets</span><span class="symbol">,</span><span class="normal"> <a href="/usr/share/gtk-doc/html/libnm-util/NMSetting.html#NM-SETTING-HASH-FLAG-ALL:CAPS">NM_SETTING_HASH_FLAG_ALL</a></span><span class="symbol">);</span>
 
 <span class="symbol">(</span><span class="normal">call the NMSecretAgentGetSecretsFunc </span><span class="usertype">with</span><span class="normal"> secrets_hash</span><span class="symbol">)</span>
 
@@ -320,9 +320,9 @@ has returned. </p></td>
 <tr>
 <td class="parameter_name"><p>secrets</p></td>
 <td class="parameter_description"><p>the <a href="https://developer.gnome.org/glib/unstable/glib-Hash-Tables.html#GHashTable"><span class="type">GHashTable</span></a> containing
-the requested secrets in the same format as an <span class="type">NMConnection</span> hash (as
-created by <code class="function">nm_connection_to_hash()</code> for example).  Each key in <em class="parameter"><code>secrets</code></em>
-should be the name of a <a href="/usr/share/gtk-doc/html/libnm/NMSetting.html#NMSetting-struct"><span class="type">NMSetting</span></a> object (like "802-11-wireless-security")
+the requested secrets in the same format as an <a href="/usr/share/gtk-doc/html/libnm-util/NMConnection.html#NMConnection-struct"><span class="type">NMConnection</span></a> hash (as
+created by <a href="/usr/share/gtk-doc/html/libnm-util/NMConnection.html#nm-connection-to-hash"><code class="function">nm_connection_to_hash()</code></a> for example).  Each key in <em class="parameter"><code>secrets</code></em>
+should be the name of a <a href="/usr/share/gtk-doc/html/libnm-util/NMSetting.html#NMSetting-struct"><span class="type">NMSetting</span></a> object (like "802-11-wireless-security")
 and each value should be a <a href="https://developer.gnome.org/glib/unstable/glib-Hash-Tables.html#GHashTable"><span class="type">GHashTable</span></a>.  The sub-hashes map string:<a href="https://developer.gnome.org/gobject/unstable/gobject-Generic-values.html#GValue-struct"><span class="type">GValue</span></a>
 where the string is the setting property name (like "psk") and the value
 is the secret. </p></td>
@@ -347,7 +347,7 @@ is the secret. </p></td>
 <a name="NMSecretAgentSaveSecretsFunc"></a><h3>NMSecretAgentSaveSecretsFunc ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 <span class="c_punctuation">(</span>*NMSecretAgentSaveSecretsFunc<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="NMSecretAgent.html" title="NMSecretAgent"><span class="type">NMSecretAgent</span></a> *agent</code></em>,
-                                 <em class="parameter"><code><span class="type">NMConnection</span> *connection</code></em>,
+                                 <em class="parameter"><code><a href="/usr/share/gtk-doc/html/libnm-util/NMConnection.html#NMConnection-struct"><span class="type">NMConnection</span></a> *connection</code></em>,
                                  <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> *error</code></em>,
                                  <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
 <p>Called as a result of a request by NM to save secrets.  When the
@@ -394,7 +394,7 @@ has returned. </p></td>
 <a name="NMSecretAgentDeleteSecretsFunc"></a><h3>NMSecretAgentDeleteSecretsFunc ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 <span class="c_punctuation">(</span>*NMSecretAgentDeleteSecretsFunc<span class="c_punctuation">)</span> (<em class="parameter"><code><a class="link" href="NMSecretAgent.html" title="NMSecretAgent"><span class="type">NMSecretAgent</span></a> *agent</code></em>,
-                                   <em class="parameter"><code><span class="type">NMConnection</span> *connection</code></em>,
+                                   <em class="parameter"><code><a href="/usr/share/gtk-doc/html/libnm-util/NMConnection.html#NMConnection-struct"><span class="type">NMConnection</span></a> *connection</code></em>,
                                    <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> *error</code></em>,
                                    <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
 <p>Called as a result of a request by NM to delete secrets.  When the
@@ -526,7 +526,7 @@ nm_secret_agent_get_registered (<em class="parameter"><code><a class="link" href
 <a name="nm-secret-agent-get-secrets"></a><h3>nm_secret_agent_get_secrets ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 nm_secret_agent_get_secrets (<em class="parameter"><code><a class="link" href="NMSecretAgent.html" title="NMSecretAgent"><span class="type">NMSecretAgent</span></a> *self</code></em>,
-                             <em class="parameter"><code><span class="type">NMConnection</span> *connection</code></em>,
+                             <em class="parameter"><code><a href="/usr/share/gtk-doc/html/libnm-util/NMConnection.html#NMConnection-struct"><span class="type">NMConnection</span></a> *connection</code></em>,
                              <em class="parameter"><code>const <span class="type">char</span> *setting_name</code></em>,
                              <em class="parameter"><code>const <span class="type">char</span> **hints</code></em>,
                              <em class="parameter"><code><a class="link" href="NMSecretAgent.html#NMSecretAgentGetSecretsFlags" title="enum NMSecretAgentGetSecretsFlags"><span class="type">NMSecretAgentGetSecretsFlags</span></a> flags</code></em>,
@@ -538,7 +538,7 @@ nm_secret_agent_get_secrets (<em class="parameter"><code><a class="link" href="N
 <a name="nm-secret-agent-save-secrets"></a><h3>nm_secret_agent_save_secrets ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 nm_secret_agent_save_secrets (<em class="parameter"><code><a class="link" href="NMSecretAgent.html" title="NMSecretAgent"><span class="type">NMSecretAgent</span></a> *self</code></em>,
-                              <em class="parameter"><code><span class="type">NMConnection</span> *connection</code></em>,
+                              <em class="parameter"><code><a href="/usr/share/gtk-doc/html/libnm-util/NMConnection.html#NMConnection-struct"><span class="type">NMConnection</span></a> *connection</code></em>,
                               <em class="parameter"><code><a class="link" href="NMSecretAgent.html#NMSecretAgentSaveSecretsFunc" title="NMSecretAgentSaveSecretsFunc ()"><span class="type">NMSecretAgentSaveSecretsFunc</span></a> callback</code></em>,
                               <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
 </div>
@@ -547,7 +547,7 @@ nm_secret_agent_save_secrets (<em class="parameter"><code><a class="link" href="
 <a name="nm-secret-agent-delete-secrets"></a><h3>nm_secret_agent_delete_secrets ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 nm_secret_agent_delete_secrets (<em class="parameter"><code><a class="link" href="NMSecretAgent.html" title="NMSecretAgent"><span class="type">NMSecretAgent</span></a> *self</code></em>,
-                                <em class="parameter"><code><span class="type">NMConnection</span> *connection</code></em>,
+                                <em class="parameter"><code><a href="/usr/share/gtk-doc/html/libnm-util/NMConnection.html#NMConnection-struct"><span class="type">NMConnection</span></a> *connection</code></em>,
                                 <em class="parameter"><code><a class="link" href="NMSecretAgent.html#NMSecretAgentDeleteSecretsFunc" title="NMSecretAgentDeleteSecretsFunc ()"><span class="type">NMSecretAgentDeleteSecretsFunc</span></a> callback</code></em>,
                                 <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data</code></em>);</pre>
 </div>
@@ -839,6 +839,6 @@ request was successful.</p>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm-glib/html/NMVPNConnection.html b/docs/libnm-glib/html/NMVPNConnection.html
index 2b9f6af5..1d2f6259 100644
--- a/docs/libnm-glib/html/NMVPNConnection.html
+++ b/docs/libnm-glib/html/NMVPNConnection.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch02.html" title="libnm-glib API Reference">
 <link rel="prev" href="NMSecretAgent.html" title="NMSecretAgent">
 <link rel="next" href="libnm-glib-NMVPNPlugin.html" title="NMVPNPlugin">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -52,7 +52,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<span class="returnvalue">NMVPNConnectionState</span>
+<a href="/usr/share/gtk-doc/html/libnm-util/libnm-util-NetworkManagerVPN.html#NMVPNConnectionState"><span class="returnvalue">NMVPNConnectionState</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="NMVPNConnection.html#nm-vpn-connection-get-vpn-state" title="nm_vpn_connection_get_vpn_state ()">nm_vpn_connection_get_vpn_state</a> <span class="c_punctuation">()</span>
@@ -175,7 +175,7 @@ nm_vpn_connection_new (<em class="parameter"><code><a href="/usr/share/gtk-doc/h
 <hr>
 <div class="refsect2">
 <a name="nm-vpn-connection-get-vpn-state"></a><h3>nm_vpn_connection_get_vpn_state ()</h3>
-<pre class="programlisting"><span class="returnvalue">NMVPNConnectionState</span>
+<pre class="programlisting"><a href="/usr/share/gtk-doc/html/libnm-util/libnm-util-NetworkManagerVPN.html#NMVPNConnectionState"><span class="returnvalue">NMVPNConnectionState</span></a>
 nm_vpn_connection_get_vpn_state (<em class="parameter"><code><a class="link" href="NMVPNConnection.html" title="NMVPNConnection"><span class="type">NMVPNConnection</span></a> *vpn</code></em>);</pre>
 <p>Gets the current <a class="link" href="NMVPNConnection.html" title="NMVPNConnection"><span class="type">NMVPNConnection</span></a> state.</p>
 <div class="refsect3">
@@ -273,6 +273,6 @@ user_function (<a class="link" href="NMVPNConnection.html" title="NMVPNConnectio
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm-glib/html/NMWimaxNsp.html b/docs/libnm-glib/html/NMWimaxNsp.html
index 08127602..60714cc5 100644
--- a/docs/libnm-glib/html/NMWimaxNsp.html
+++ b/docs/libnm-glib/html/NMWimaxNsp.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch02.html" title="libnm-glib API Reference">
 <link rel="prev" href="NMDeviceOlpcMesh.html" title="NMDeviceOlpcMesh">
 <link rel="next" href="NMAccessPoint.html" title="NMAccessPoint">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -297,7 +297,7 @@ returned connections will match the <em class="parameter"><code>nsp</code></em>
 <tr>
 <td class="parameter_name"><p>connections</p></td>
 <td class="parameter_description"><p>a list of
-<span class="type">NMConnection</span> objects to filter. </p></td>
+<a href="/usr/share/gtk-doc/html/libnm-util/NMConnection.html#NMConnection-struct"><span class="type">NMConnection</span></a> objects to filter. </p></td>
 <td class="parameter_annotations"><span class="annotation">[<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> NMConnection]</span></td>
 </tr>
 </tbody>
@@ -306,7 +306,7 @@ returned connections will match the <em class="parameter"><code>nsp</code></em>
 <div class="refsect3">
 <a name="nm-wimax-nsp-filter-connections.returns"></a><h4>Returns</h4>
 <p>a
-list of <span class="type">NMConnection</span> objects that could be activated with the given <em class="parameter"><code>nsp</code></em>
+list of <a href="/usr/share/gtk-doc/html/libnm-util/NMConnection.html#NMConnection-struct"><span class="type">NMConnection</span></a> objects that could be activated with the given <em class="parameter"><code>nsp</code></em>
 .
 The elements of the list are owned by their creator and should not be freed
 by the caller, but the returned list itself is owned by the caller and should
@@ -319,7 +319,7 @@ be freed with <a href="https://developer.gnome.org/glib/unstable/glib-Singly-Lin
 <a name="nm-wimax-nsp-connection-valid"></a><h3>nm_wimax_nsp_connection_valid ()</h3>
 <pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 nm_wimax_nsp_connection_valid (<em class="parameter"><code><a class="link" href="NMWimaxNsp.html" title="NMWimaxNsp"><span class="type">NMWimaxNsp</span></a> *nsp</code></em>,
-                               <em class="parameter"><code><span class="type">NMConnection</span> *connection</code></em>);</pre>
+                               <em class="parameter"><code><a href="/usr/share/gtk-doc/html/libnm-util/NMConnection.html#NMConnection-struct"><span class="type">NMConnection</span></a> *connection</code></em>);</pre>
 <p>Validates a given connection against a given WiMAX NSP to ensure that the
 connection may be activated with that NSP.  The connection must match the
 <em class="parameter"><code>nsp</code></em>
@@ -341,7 +341,7 @@ against</p></td>
 </tr>
 <tr>
 <td class="parameter_name"><p>connection</p></td>
-<td class="parameter_description"><p>an <span class="type">NMConnection</span> to validate against <em class="parameter"><code>nsp</code></em>
+<td class="parameter_description"><p>an <a href="/usr/share/gtk-doc/html/libnm-util/NMConnection.html#NMConnection-struct"><span class="type">NMConnection</span></a> to validate against <em class="parameter"><code>nsp</code></em>
 </p></td>
 <td class="parameter_annotations"> </td>
 </tr>
@@ -449,6 +449,6 @@ against</p></td>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm-glib/html/annotation-glossary.html b/docs/libnm-glib/html/annotation-glossary.html
index 7aea09d6..fb9333ea 100644
--- a/docs/libnm-glib/html/annotation-glossary.html
+++ b/docs/libnm-glib/html/annotation-glossary.html
@@ -7,7 +7,7 @@
 <link rel="home" href="index.html" title="libnm-glib Reference Manual">
 <link rel="up" href="index.html" title="libnm-glib Reference Manual">
 <link rel="prev" href="api-index-full.html" title="API Index">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -61,6 +61,6 @@
 <dd class="glossdef"><p>Override the parsed C type with given type.</p></dd>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm-glib/html/api-index-full.html b/docs/libnm-glib/html/api-index-full.html
index ebb7c720..23775949 100644
--- a/docs/libnm-glib/html/api-index-full.html
+++ b/docs/libnm-glib/html/api-index-full.html
@@ -8,7 +8,7 @@
 <link rel="up" href="index.html" title="libnm-glib Reference Manual">
 <link rel="prev" href="object-tree.html" title="Object Hierarchy">
 <link rel="next" href="annotation-glossary.html" title="Annotation Glossary">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -2696,6 +2696,6 @@
 <dd></dd>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm-glib/html/ch02.html b/docs/libnm-glib/html/ch02.html
index 48e9fd5e..4f572730 100644
--- a/docs/libnm-glib/html/ch02.html
+++ b/docs/libnm-glib/html/ch02.html
@@ -8,7 +8,7 @@
 <link rel="up" href="index.html" title="libnm-glib Reference Manual">
 <link rel="prev" href="ref-overview.html" title="Object Overview">
 <link rel="next" href="NMClient.html" title="NMClient">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -119,6 +119,6 @@
 </dl></div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm-glib/html/index.html b/docs/libnm-glib/html/index.html
index 296f4837..2d5f53a4 100644
--- a/docs/libnm-glib/html/index.html
+++ b/docs/libnm-glib/html/index.html
@@ -6,7 +6,7 @@
 <meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
 <link rel="home" href="index.html" title="libnm-glib Reference Manual">
 <link rel="next" href="ref-overview.html" title="Object Overview">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -15,7 +15,7 @@
 <div>
 <div><table class="navigation" id="top" width="100%" cellpadding="2" cellspacing="0"><tr><th valign="middle"><p class="title">libnm-glib Reference Manual</p></th></tr></table></div>
 <div><p class="releaseinfo">
-      for libnm-glib 1.14.4
+      for libnm-glib 1.14.6
 
       The latest version of this documentation can be found on-line at
       <a class="ulink" href="https://developer.gnome.org/libnm-glib/stable/" target="_top">https://developer.gnome.org/libnm-glib/stable/</a>.
@@ -150,6 +150,6 @@
 </dl></div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm-glib/html/libnm-glib-NMVPNPlugin.html b/docs/libnm-glib/html/libnm-glib-NMVPNPlugin.html
index 44c0aaf6..1fc290e3 100644
--- a/docs/libnm-glib/html/libnm-glib-NMVPNPlugin.html
+++ b/docs/libnm-glib/html/libnm-glib-NMVPNPlugin.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch02.html" title="libnm-glib API Reference">
 <link rel="prev" href="NMVPNConnection.html" title="NMVPNConnection">
 <link rel="next" href="libnm-glib-NMVpnPluginUiWidget.html" title="NMVpnPluginUiWidget">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -57,7 +57,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<span class="returnvalue">NMVPNServiceState</span>
+<a href="/usr/share/gtk-doc/html/libnm-util/libnm-util-NetworkManagerVPN.html#NMVPNServiceState"><span class="returnvalue">NMVPNServiceState</span></a>
 </td>
 <td class="function_name">
 <a class="link" href="libnm-glib-NMVPNPlugin.html#nm-vpn-plugin-get-state" title="nm_vpn_plugin_get_state ()">nm_vpn_plugin_get_state</a> <span class="c_punctuation">()</span>
@@ -172,7 +172,7 @@ nm_vpn_plugin_get_connection (<em class="parameter"><code><span class="type">NMV
 <hr>
 <div class="refsect2">
 <a name="nm-vpn-plugin-get-state"></a><h3>nm_vpn_plugin_get_state ()</h3>
-<pre class="programlisting"><span class="returnvalue">NMVPNServiceState</span>
+<pre class="programlisting"><a href="/usr/share/gtk-doc/html/libnm-util/libnm-util-NetworkManagerVPN.html#NMVPNServiceState"><span class="returnvalue">NMVPNServiceState</span></a>
 nm_vpn_plugin_get_state (<em class="parameter"><code><span class="type">NMVPNPlugin</span> *plugin</code></em>);</pre>
 </div>
 <hr>
@@ -180,7 +180,7 @@ nm_vpn_plugin_get_state (<em class="parameter"><code><span class="type">NMVPNPlu
 <a name="nm-vpn-plugin-set-state"></a><h3>nm_vpn_plugin_set_state ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 nm_vpn_plugin_set_state (<em class="parameter"><code><span class="type">NMVPNPlugin</span> *plugin</code></em>,
-                         <em class="parameter"><code><span class="type">NMVPNServiceState</span> state</code></em>);</pre>
+                         <em class="parameter"><code><a href="/usr/share/gtk-doc/html/libnm-util/libnm-util-NetworkManagerVPN.html#NMVPNServiceState"><span class="type">NMVPNServiceState</span></a> state</code></em>);</pre>
 </div>
 <hr>
 <div class="refsect2">
@@ -235,7 +235,7 @@ nm_vpn_plugin_set_login_banner (<em class="parameter"><code><span class="type">N
 <a name="nm-vpn-plugin-failure"></a><h3>nm_vpn_plugin_failure ()</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
 nm_vpn_plugin_failure (<em class="parameter"><code><span class="type">NMVPNPlugin</span> *plugin</code></em>,
-                       <em class="parameter"><code><span class="type">NMVPNPluginFailure</span> reason</code></em>);</pre>
+                       <em class="parameter"><code><a href="/usr/share/gtk-doc/html/libnm-util/libnm-util-NetworkManagerVPN.html#NMVPNPluginFailure"><span class="type">NMVPNPluginFailure</span></a> reason</code></em>);</pre>
 </div>
 <hr>
 <div class="refsect2">
@@ -381,6 +381,6 @@ nm_vpn_plugin_disconnect (<em class="parameter"><code><span class="type">NMVPNPl
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm-glib/html/libnm-glib-NMVpnPluginUiWidget.html b/docs/libnm-glib/html/libnm-glib-NMVpnPluginUiWidget.html
index 65bafac0..83b2e40b 100644
--- a/docs/libnm-glib/html/libnm-glib-NMVpnPluginUiWidget.html
+++ b/docs/libnm-glib/html/libnm-glib-NMVpnPluginUiWidget.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch02.html" title="libnm-glib API Reference">
 <link rel="prev" href="libnm-glib-NMVPNPlugin.html" title="NMVPNPlugin">
 <link rel="next" href="libnm-glib-nm-vpn-plugin-utils.html" title="nm-vpn-plugin-utils">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -73,7 +73,7 @@
 </tr>
 <tr>
 <td class="function_type">
-<span class="returnvalue">NMConnection</span> *
+<a href="/usr/share/gtk-doc/html/libnm-util/NMConnection.html#NMConnection-struct"><span class="returnvalue">NMConnection</span></a> *
 </td>
 <td class="function_name">
 <a class="link" href="libnm-glib-NMVpnPluginUiWidget.html#nm-vpn-plugin-ui-interface-import" title="nm_vpn_plugin_ui_interface_import ()">nm_vpn_plugin_ui_interface_import</a> <span class="c_punctuation">()</span>
@@ -254,7 +254,7 @@ nm_vpn_plugin_ui_factory (<em class="parameter"><code><a href="https://developer
 <a name="nm-vpn-plugin-ui-interface-ui-factory"></a><h3>nm_vpn_plugin_ui_interface_ui_factory ()</h3>
 <pre class="programlisting"><span class="returnvalue">NMVpnPluginUiWidgetInterface</span> *
 nm_vpn_plugin_ui_interface_ui_factory (<em class="parameter"><code><span class="type">NMVpnPluginUiInterface</span> *iface</code></em>,
-                                       <em class="parameter"><code><span class="type">NMConnection</span> *connection</code></em>,
+                                       <em class="parameter"><code><a href="/usr/share/gtk-doc/html/libnm-util/NMConnection.html#NMConnection-struct"><span class="type">NMConnection</span></a> *connection</code></em>,
                                        <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
 </div>
 <hr>
@@ -267,7 +267,7 @@ nm_vpn_plugin_ui_interface_get_capabilities
 <hr>
 <div class="refsect2">
 <a name="nm-vpn-plugin-ui-interface-import"></a><h3>nm_vpn_plugin_ui_interface_import ()</h3>
-<pre class="programlisting"><span class="returnvalue">NMConnection</span> *
+<pre class="programlisting"><a href="/usr/share/gtk-doc/html/libnm-util/NMConnection.html#NMConnection-struct"><span class="returnvalue">NMConnection</span></a> *
 nm_vpn_plugin_ui_interface_import (<em class="parameter"><code><span class="type">NMVpnPluginUiInterface</span> *iface</code></em>,
                                    <em class="parameter"><code>const <span class="type">char</span> *path</code></em>,
                                    <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
@@ -278,7 +278,7 @@ nm_vpn_plugin_ui_interface_import (<em class="parameter"><code><span class="type
 <pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 nm_vpn_plugin_ui_interface_export (<em class="parameter"><code><span class="type">NMVpnPluginUiInterface</span> *iface</code></em>,
                                    <em class="parameter"><code>const <span class="type">char</span> *path</code></em>,
-                                   <em class="parameter"><code><span class="type">NMConnection</span> *connection</code></em>,
+                                   <em class="parameter"><code><a href="/usr/share/gtk-doc/html/libnm-util/NMConnection.html#NMConnection-struct"><span class="type">NMConnection</span></a> *connection</code></em>,
                                    <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
 </div>
 <hr>
@@ -287,7 +287,7 @@ nm_vpn_plugin_ui_interface_export (<em class="parameter"><code><span class="type
 <pre class="programlisting"><span class="returnvalue">char</span> *
 nm_vpn_plugin_ui_interface_get_suggested_name
                                (<em class="parameter"><code><span class="type">NMVpnPluginUiInterface</span> *iface</code></em>,
-                                <em class="parameter"><code><span class="type">NMConnection</span> *connection</code></em>);</pre>
+                                <em class="parameter"><code><a href="/usr/share/gtk-doc/html/libnm-util/NMConnection.html#NMConnection-struct"><span class="type">NMConnection</span></a> *connection</code></em>);</pre>
 </div>
 <hr>
 <div class="refsect2">
@@ -295,7 +295,7 @@ nm_vpn_plugin_ui_interface_get_suggested_name
 <pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 nm_vpn_plugin_ui_interface_delete_connection
                                (<em class="parameter"><code><span class="type">NMVpnPluginUiInterface</span> *iface</code></em>,
-                                <em class="parameter"><code><span class="type">NMConnection</span> *connection</code></em>,
+                                <em class="parameter"><code><a href="/usr/share/gtk-doc/html/libnm-util/NMConnection.html#NMConnection-struct"><span class="type">NMConnection</span></a> *connection</code></em>,
                                 <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
 <div class="warning"><p><code class="literal">nm_vpn_plugin_ui_interface_delete_connection</code> is deprecated and should not be used in newly-written code.</p></div>
 </div>
@@ -312,7 +312,7 @@ nm_vpn_plugin_ui_widget_interface_get_widget
 <pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 nm_vpn_plugin_ui_widget_interface_update_connection
                                (<em class="parameter"><code><span class="type">NMVpnPluginUiWidgetInterface</span> *iface</code></em>,
-                                <em class="parameter"><code><span class="type">NMConnection</span> *connection</code></em>,
+                                <em class="parameter"><code><a href="/usr/share/gtk-doc/html/libnm-util/NMConnection.html#NMConnection-struct"><span class="type">NMConnection</span></a> *connection</code></em>,
                                 <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
 </div>
 <hr>
@@ -321,7 +321,7 @@ nm_vpn_plugin_ui_widget_interface_update_connection
 <pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 nm_vpn_plugin_ui_widget_interface_save_secrets
                                (<em class="parameter"><code><span class="type">NMVpnPluginUiWidgetInterface</span> *iface</code></em>,
-                                <em class="parameter"><code><span class="type">NMConnection</span> *connection</code></em>,
+                                <em class="parameter"><code><a href="/usr/share/gtk-doc/html/libnm-util/NMConnection.html#NMConnection-struct"><span class="type">NMConnection</span></a> *connection</code></em>,
                                 <em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Error-Reporting.html#GError"><span class="type">GError</span></a> **error</code></em>);</pre>
 <div class="warning"><p><code class="literal">nm_vpn_plugin_ui_widget_interface_save_secrets</code> is deprecated and should not be used in newly-written code.</p></div>
 </div>
@@ -547,6 +547,6 @@ plugin's VPN service daemon</p>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm-glib/html/libnm-glib-nm-types.html b/docs/libnm-glib/html/libnm-glib-nm-types.html
index 946aa088..99b8552d 100644
--- a/docs/libnm-glib/html/libnm-glib-nm-types.html
+++ b/docs/libnm-glib/html/libnm-glib-nm-types.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch02.html" title="libnm-glib API Reference">
 <link rel="prev" href="NMRemoteSettings.html" title="NMRemoteSettings">
 <link rel="next" href="NMSecretAgent.html" title="NMSecretAgent">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -43,6 +43,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm-glib/html/libnm-glib-nm-vpn-plugin-utils.html b/docs/libnm-glib/html/libnm-glib-nm-vpn-plugin-utils.html
index bed5e98f..50f77b71 100644
--- a/docs/libnm-glib/html/libnm-glib-nm-vpn-plugin-utils.html
+++ b/docs/libnm-glib/html/libnm-glib-nm-vpn-plugin-utils.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch02.html" title="libnm-glib API Reference">
 <link rel="prev" href="libnm-glib-NMVpnPluginUiWidget.html" title="NMVpnPluginUiWidget">
 <link rel="next" href="object-tree.html" title="Object Hierarchy">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -111,11 +111,11 @@ an applet when the applet calls the authentication dialog of the VPN plugin.</p>
 <pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
 nm_vpn_plugin_utils_get_secret_flags (<em class="parameter"><code><a href="https://developer.gnome.org/glib/unstable/glib-Hash-Tables.html#GHashTable"><span class="type">GHashTable</span></a> *data</code></em>,
                                       <em class="parameter"><code>const <span class="type">char</span> *secret_name</code></em>,
-                                      <em class="parameter"><code><a href="/usr/share/gtk-doc/html/libnm/NMSetting.html#NMSettingSecretFlags"><span class="type">NMSettingSecretFlags</span></a> *out_flags</code></em>);</pre>
+                                      <em class="parameter"><code><a href="/usr/share/gtk-doc/html/libnm-util/NMSetting.html#NMSettingSecretFlags"><span class="type">NMSettingSecretFlags</span></a> *out_flags</code></em>);</pre>
 <p>Given a VPN secret key name, attempts to find the corresponding flags data
 item in <em class="parameter"><code>data</code></em>
 .  If found, converts the flags data item to
-<a href="/usr/share/gtk-doc/html/libnm/NMSetting.html#NMSettingSecretFlags"><span class="type">NMSettingSecretFlags</span></a> and returns it.</p>
+<a href="/usr/share/gtk-doc/html/libnm-util/NMSetting.html#NMSettingSecretFlags"><span class="type">NMSettingSecretFlags</span></a> and returns it.</p>
 <div class="refsect3">
 <a name="nm-vpn-plugin-utils-get-secret-flags.parameters"></a><h4>Parameters</h4>
 <div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -156,6 +156,6 @@ to flags, <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macro
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm-glib/html/object-tree.html b/docs/libnm-glib/html/object-tree.html
index 6125f9ee..323054d1 100644
--- a/docs/libnm-glib/html/object-tree.html
+++ b/docs/libnm-glib/html/object-tree.html
@@ -8,7 +8,7 @@
 <link rel="up" href="index.html" title="libnm-glib Reference Manual">
 <link rel="prev" href="libnm-glib-nm-vpn-plugin-utils.html" title="nm-vpn-plugin-utils">
 <link rel="next" href="api-index-full.html" title="API Index">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -49,12 +49,12 @@
     <span class="lineart">│</span>   <span class="lineart">├──</span> <a class="link" href="NMDHCP4Config.html" title="NMDHCP4Config">NMDHCP4Config</a>
     <span class="lineart">│</span>   <span class="lineart">╰──</span> <a class="link" href="NMDHCP6Config.html" title="NMDHCP6Config">NMDHCP6Config</a>
     <span class="lineart">├──</span> <a class="link" href="NMRemoteSettings.html" title="NMRemoteSettings">NMRemoteSettings</a>
-    <span class="lineart">├──</span> NMConnection
+    <span class="lineart">├──</span> <a href="/usr/share/gtk-doc/html/libnm-util/NMConnection.html#NMConnection-struct">NMConnection</a>
     <span class="lineart">│</span>   <span class="lineart">╰──</span> <a class="link" href="NMRemoteConnection.html" title="NMRemoteConnection">NMRemoteConnection</a>
     <span class="lineart">╰──</span> <a class="link" href="NMSecretAgent.html" title="NMSecretAgent">NMSecretAgent</a>
 </pre>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm-glib/html/ref-overview.html b/docs/libnm-glib/html/ref-overview.html
index 4db0b2bc..c86b209a 100644
--- a/docs/libnm-glib/html/ref-overview.html
+++ b/docs/libnm-glib/html/ref-overview.html
@@ -8,7 +8,7 @@
 <link rel="up" href="index.html" title="libnm-glib Reference Manual">
 <link rel="prev" href="index.html" title="libnm-glib Reference Manual">
 <link rel="next" href="ch02.html" title="libnm-glib API Reference">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -41,6 +41,6 @@
     </p>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm-glib/version.xml b/docs/libnm-glib/version.xml
index 4e00d0ac..c6ba3bc1 100644
--- a/docs/libnm-glib/version.xml
+++ b/docs/libnm-glib/version.xml
@@ -1 +1 @@
-1.14.4
+1.14.6
diff --git a/docs/libnm-util/html/NMConnection.html b/docs/libnm-util/html/NMConnection.html
index ee6e48de..6bb4a151 100644
--- a/docs/libnm-util/html/NMConnection.html
+++ b/docs/libnm-util/html/NMConnection.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="libnm-util API Reference">
 <link rel="prev" href="ch01.html" title="libnm-util API Reference">
 <link rel="next" href="NMSetting.html" title="NMSetting">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -1730,7 +1730,7 @@ nm_connection_get_connection_type (<em class="parameter"><code><a class="link" h
 <pre class="programlisting"><span class="returnvalue">char</span> *
 nm_connection_get_virtual_device_description
                                (<em class="parameter"><code><a class="link" href="NMConnection.html" title="NMConnection"><span class="type">NMConnection</span></a> *connection</code></em>);</pre>
-<p>Returns the name that <a href="/usr/share/gtk-doc/html/libnm/NMDevice.html#nm-device-disambiguate-names"><code class="function">nm_device_disambiguate_names()</code></a> would
+<p>Returns the name that <a href="/usr/share/gtk-doc/html/libnm-glib/NMDevice.html#nm-device-disambiguate-names"><code class="function">nm_device_disambiguate_names()</code></a> would
 return for the virtual device that would be created for <em class="parameter"><code>connection</code></em>
 .
 Eg, "VLAN (eth1.1)".</p>
@@ -2691,6 +2691,6 @@ updated</p></td>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm-util/html/NMSetting.html b/docs/libnm-util/html/NMSetting.html
index cd2e8e8e..04965325 100644
--- a/docs/libnm-util/html/NMSetting.html
+++ b/docs/libnm-util/html/NMSetting.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="libnm-util API Reference">
 <link rel="prev" href="NMConnection.html" title="NMConnection">
 <link rel="next" href="NMSettingConnection.html" title="NMSettingConnection">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -1399,6 +1399,6 @@ example "ppp" or "wireless" or "wired".</p>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm-util/html/NMSetting8021x.html b/docs/libnm-util/html/NMSetting8021x.html
index 909e3a34..360b7a14 100644
--- a/docs/libnm-util/html/NMSetting8021x.html
+++ b/docs/libnm-util/html/NMSetting8021x.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="libnm-util API Reference">
 <link rel="prev" href="NMSettingDcb.html" title="NMSettingDcb">
 <link rel="next" href="NMSettingIP4Config.html" title="NMSettingIP4Config">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -3963,6 +3963,6 @@ addition to any certificates specified by the <a class="link" href="NMSetting802
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm-util/html/NMSettingAdsl.html b/docs/libnm-util/html/NMSettingAdsl.html
index e7fb4e2f..282e91f4 100644
--- a/docs/libnm-util/html/NMSettingAdsl.html
+++ b/docs/libnm-util/html/NMSettingAdsl.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="libnm-util API Reference">
 <link rel="prev" href="NMSettingOlpcMesh.html" title="NMSettingOlpcMesh">
 <link rel="next" href="NMSettingDcb.html" title="NMSettingDcb">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -639,6 +639,6 @@ required</p>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm-util/html/NMSettingBluetooth.html b/docs/libnm-util/html/NMSettingBluetooth.html
index a65fc453..d29619cc 100644
--- a/docs/libnm-util/html/NMSettingBluetooth.html
+++ b/docs/libnm-util/html/NMSettingBluetooth.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="libnm-util API Reference">
 <link rel="prev" href="NMSettingWirelessSecurity.html" title="NMSettingWirelessSecurity">
 <link rel="next" href="NMSettingSerial.html" title="NMSettingSerial">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -348,6 +348,6 @@ Area Networking connections to devices supporting the NAP profile.</p>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm-util/html/NMSettingBond.html b/docs/libnm-util/html/NMSettingBond.html
index c20a1246..7d5e6731 100644
--- a/docs/libnm-util/html/NMSettingBond.html
+++ b/docs/libnm-util/html/NMSettingBond.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="libnm-util API Reference">
 <link rel="prev" href="NMSettingWimax.html" title="NMSettingWimax">
 <link rel="next" href="NMSettingBridge.html" title="NMSettingBridge">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -807,6 +807,6 @@ must be strings. Option names must contain only alphanumeric characters
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm-util/html/NMSettingBridge.html b/docs/libnm-util/html/NMSettingBridge.html
index a74ec94f..c0bd6cbf 100644
--- a/docs/libnm-util/html/NMSettingBridge.html
+++ b/docs/libnm-util/html/NMSettingBridge.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="libnm-util API Reference">
 <link rel="prev" href="NMSettingBond.html" title="NMSettingBond">
 <link rel="next" href="NMSettingBridgePort.html" title="NMSettingBridgePort">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -670,6 +670,6 @@ bridge.</p>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm-util/html/NMSettingBridgePort.html b/docs/libnm-util/html/NMSettingBridgePort.html
index c9215ada..33e7634f 100644
--- a/docs/libnm-util/html/NMSettingBridgePort.html
+++ b/docs/libnm-util/html/NMSettingBridgePort.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="libnm-util API Reference">
 <link rel="prev" href="NMSettingBridge.html" title="NMSettingBridge">
 <link rel="next" href="NMSettingTeam.html" title="NMSettingTeam">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -377,6 +377,6 @@ port.</p>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm-util/html/NMSettingCdma.html b/docs/libnm-util/html/NMSettingCdma.html
index 9c75012f..88e2602a 100644
--- a/docs/libnm-util/html/NMSettingCdma.html
+++ b/docs/libnm-util/html/NMSettingCdma.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="libnm-util API Reference">
 <link rel="prev" href="NMSettingSerial.html" title="NMSettingSerial">
 <link rel="next" href="NMSettingGsm.html" title="NMSettingGsm">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -434,6 +434,6 @@ username is required, it is specified here.</p>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm-util/html/NMSettingConnection.html b/docs/libnm-util/html/NMSettingConnection.html
index e1374639..544189d9 100644
--- a/docs/libnm-util/html/NMSettingConnection.html
+++ b/docs/libnm-util/html/NMSettingConnection.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="libnm-util API Reference">
 <link rel="prev" href="NMSetting.html" title="NMSetting">
 <link rel="next" href="NMSettingWired.html" title="NMSettingWired">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -1517,6 +1517,6 @@ firewall.</p>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm-util/html/NMSettingDcb.html b/docs/libnm-util/html/NMSettingDcb.html
index bd68dadf..62686c3a 100644
--- a/docs/libnm-util/html/NMSettingDcb.html
+++ b/docs/libnm-util/html/NMSettingDcb.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="libnm-util API Reference">
 <link rel="prev" href="NMSettingAdsl.html" title="NMSettingAdsl">
 <link rel="next" href="NMSetting8021x.html" title="NMSetting8021x">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -1517,6 +1517,6 @@ which the priority is mapped.</p>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm-util/html/NMSettingGeneric.html b/docs/libnm-util/html/NMSettingGeneric.html
index bf5832cf..0415f38e 100644
--- a/docs/libnm-util/html/NMSettingGeneric.html
+++ b/docs/libnm-util/html/NMSettingGeneric.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="libnm-util API Reference">
 <link rel="prev" href="NMSettingTeamPort.html" title="NMSettingTeamPort">
 <link rel="next" href="NMSettingInfiniband.html" title="NMSettingInfiniband">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -186,6 +186,6 @@ is required</p>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm-util/html/NMSettingGsm.html b/docs/libnm-util/html/NMSettingGsm.html
index deda2779..16173287 100644
--- a/docs/libnm-util/html/NMSettingGsm.html
+++ b/docs/libnm-util/html/NMSettingGsm.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="libnm-util API Reference">
 <link rel="prev" href="NMSettingCdma.html" title="NMSettingCdma">
 <link rel="next" href="NMSettingWimax.html" title="NMSettingWimax">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -1100,6 +1100,6 @@ username is required, it is specified here.</p>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm-util/html/NMSettingIP4Config.html b/docs/libnm-util/html/NMSettingIP4Config.html
index a8124495..ba8cefd9 100644
--- a/docs/libnm-util/html/NMSettingIP4Config.html
+++ b/docs/libnm-util/html/NMSettingIP4Config.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="libnm-util API Reference">
 <link rel="prev" href="NMSetting8021x.html" title="NMSetting8021x">
 <link rel="next" href="NMSettingIP6Config.html" title="NMSettingIP6Config">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -2779,6 +2779,6 @@ methods because there is no upstream network.</p>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm-util/html/NMSettingIP6Config.html b/docs/libnm-util/html/NMSettingIP6Config.html
index b635421f..fff0477e 100644
--- a/docs/libnm-util/html/NMSettingIP6Config.html
+++ b/docs/libnm-util/html/NMSettingIP6Config.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="libnm-util API Reference">
 <link rel="prev" href="NMSettingIP4Config.html" title="NMSettingIP4Config">
 <link rel="next" href="NMSettingPPP.html" title="NMSettingPPP">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -2723,6 +2723,6 @@ automatic configuration.  Routes cannot be used with the "shared" or
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm-util/html/NMSettingInfiniband.html b/docs/libnm-util/html/NMSettingInfiniband.html
index d6c72004..fc5a4925 100644
--- a/docs/libnm-util/html/NMSettingInfiniband.html
+++ b/docs/libnm-util/html/NMSettingInfiniband.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="libnm-util API Reference">
 <link rel="prev" href="NMSettingGeneric.html" title="NMSettingGeneric">
 <link rel="next" href="NMSettingVlan.html" title="NMSettingVlan">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -492,6 +492,6 @@ specify the base device by setting either this property or
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm-util/html/NMSettingOlpcMesh.html b/docs/libnm-util/html/NMSettingOlpcMesh.html
index fb009f4f..57e9fc65 100644
--- a/docs/libnm-util/html/NMSettingOlpcMesh.html
+++ b/docs/libnm-util/html/NMSettingOlpcMesh.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="libnm-util API Reference">
 <link rel="prev" href="NMSettingVlan.html" title="NMSettingVlan">
 <link rel="next" href="NMSettingAdsl.html" title="NMSettingAdsl">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -294,6 +294,6 @@ answers the request.</p>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm-util/html/NMSettingPPP.html b/docs/libnm-util/html/NMSettingPPP.html
index 56a6c682..5101c737 100644
--- a/docs/libnm-util/html/NMSettingPPP.html
+++ b/docs/libnm-util/html/NMSettingPPP.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="libnm-util API Reference">
 <link rel="prev" href="NMSettingIP6Config.html" title="NMSettingIP6Config">
 <link rel="next" href="NMSettingPPPOE.html" title="NMSettingPPPOE">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -1235,6 +1235,6 @@ be set to <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macro
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm-util/html/NMSettingPPPOE.html b/docs/libnm-util/html/NMSettingPPPOE.html
index 23c97005..189e25ac 100644
--- a/docs/libnm-util/html/NMSettingPPPOE.html
+++ b/docs/libnm-util/html/NMSettingPPPOE.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="libnm-util API Reference">
 <link rel="prev" href="NMSettingPPP.html" title="NMSettingPPP">
 <link rel="next" href="NMSettingVPN.html" title="NMSettingVPN">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -432,6 +432,6 @@ access concentrators or a specific service is known to be required.</p>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm-util/html/NMSettingSerial.html b/docs/libnm-util/html/NMSettingSerial.html
index 925f4c3d..b1f5899e 100644
--- a/docs/libnm-util/html/NMSettingSerial.html
+++ b/docs/libnm-util/html/NMSettingSerial.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="libnm-util API Reference">
 <link rel="prev" href="NMSettingBluetooth.html" title="NMSettingBluetooth">
 <link rel="next" href="NMSettingCdma.html" title="NMSettingCdma">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -492,6 +492,6 @@ The 1 in "8n1" for example.</p>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm-util/html/NMSettingTeam.html b/docs/libnm-util/html/NMSettingTeam.html
index 1e87bffc..37322bb9 100644
--- a/docs/libnm-util/html/NMSettingTeam.html
+++ b/docs/libnm-util/html/NMSettingTeam.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="libnm-util API Reference">
 <link rel="prev" href="NMSettingBridgePort.html" title="NMSettingBridgePort">
 <link rel="next" href="NMSettingTeamPort.html" title="NMSettingTeamPort">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -314,6 +314,6 @@ configuration is used.  See man teamd.conf for the format details.</p>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm-util/html/NMSettingTeamPort.html b/docs/libnm-util/html/NMSettingTeamPort.html
index 02a95a81..91931b13 100644
--- a/docs/libnm-util/html/NMSettingTeamPort.html
+++ b/docs/libnm-util/html/NMSettingTeamPort.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="libnm-util API Reference">
 <link rel="prev" href="NMSettingTeam.html" title="NMSettingTeam">
 <link rel="next" href="NMSettingGeneric.html" title="NMSettingGeneric">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -255,6 +255,6 @@ used. See man teamd.conf for the format details.</p>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm-util/html/NMSettingVPN.html b/docs/libnm-util/html/NMSettingVPN.html
index e5741b12..be421f2f 100644
--- a/docs/libnm-util/html/NMSettingVPN.html
+++ b/docs/libnm-util/html/NMSettingVPN.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="libnm-util API Reference">
 <link rel="prev" href="NMSettingPPPOE.html" title="NMSettingPPPOE">
 <link rel="next" href="libnm-util-nm-utils.html" title="nm-utils">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -904,6 +904,6 @@ VPN connection.</p>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm-util/html/NMSettingVlan.html b/docs/libnm-util/html/NMSettingVlan.html
index a33bda1c..ecd3ae9b 100644
--- a/docs/libnm-util/html/NMSettingVlan.html
+++ b/docs/libnm-util/html/NMSettingVlan.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="libnm-util API Reference">
 <link rel="prev" href="NMSettingInfiniband.html" title="NMSettingInfiniband">
 <link rel="next" href="NMSettingOlpcMesh.html" title="NMSettingOlpcMesh">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -1023,6 +1023,6 @@ with a <a class="link" href="NMSettingWired.html#NMSettingWired--mac-address" ti
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm-util/html/NMSettingWimax.html b/docs/libnm-util/html/NMSettingWimax.html
index ebebf56b..3d223141 100644
--- a/docs/libnm-util/html/NMSettingWimax.html
+++ b/docs/libnm-util/html/NMSettingWimax.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="libnm-util API Reference">
 <link rel="prev" href="NMSettingGsm.html" title="NMSettingGsm">
 <link rel="next" href="NMSettingBond.html" title="NMSettingBond">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -339,6 +339,6 @@ should use.</p>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm-util/html/NMSettingWired.html b/docs/libnm-util/html/NMSettingWired.html
index 0b02b141..938a5366 100644
--- a/docs/libnm-util/html/NMSettingWired.html
+++ b/docs/libnm-util/html/NMSettingWired.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="libnm-util API Reference">
 <link rel="prev" href="NMSettingConnection.html" title="NMSettingConnection">
 <link rel="next" href="NMSettingWireless.html" title="NMSettingWireless">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -1328,6 +1328,6 @@ Mbit/s, ie 100 == 100Mbit/s.</p>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm-util/html/NMSettingWireless.html b/docs/libnm-util/html/NMSettingWireless.html
index f2da25f8..20b3c124 100644
--- a/docs/libnm-util/html/NMSettingWireless.html
+++ b/docs/libnm-util/html/NMSettingWireless.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="libnm-util API Reference">
 <link rel="prev" href="NMSettingWired.html" title="NMSettingWired">
 <link rel="next" href="NMSettingWirelessSecurity.html" title="NMSettingWirelessSecurity">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -1543,6 +1543,6 @@ devices support setting a static transmit power.</p>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm-util/html/NMSettingWirelessSecurity.html b/docs/libnm-util/html/NMSettingWirelessSecurity.html
index d080e83b..83a4be08 100644
--- a/docs/libnm-util/html/NMSettingWirelessSecurity.html
+++ b/docs/libnm-util/html/NMSettingWirelessSecurity.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="libnm-util API Reference">
 <link rel="prev" href="NMSettingWireless.html" title="NMSettingWireless">
 <link rel="next" href="NMSettingBluetooth.html" title="NMSettingBluetooth">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -1898,6 +1898,6 @@ Linksys WRT54G) number the keys 1 - 4.</p>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm-util/html/annotation-glossary.html b/docs/libnm-util/html/annotation-glossary.html
index 22ec3bb7..a70e06d2 100644
--- a/docs/libnm-util/html/annotation-glossary.html
+++ b/docs/libnm-util/html/annotation-glossary.html
@@ -7,7 +7,7 @@
 <link rel="home" href="index.html" title="libnm-util Reference Manual">
 <link rel="up" href="index.html" title="libnm-util Reference Manual">
 <link rel="prev" href="api-index-full.html" title="API Index">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -64,6 +64,6 @@
 <dd class="glossdef"><p>Don't free data after the code is done.</p></dd>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm-util/html/api-index-full.html b/docs/libnm-util/html/api-index-full.html
index 8646e476..140f70f5 100644
--- a/docs/libnm-util/html/api-index-full.html
+++ b/docs/libnm-util/html/api-index-full.html
@@ -8,7 +8,7 @@
 <link rel="up" href="index.html" title="libnm-util Reference Manual">
 <link rel="prev" href="object-tree.html" title="Object Hierarchy">
 <link rel="next" href="annotation-glossary.html" title="Annotation Glossary">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -5335,6 +5335,6 @@ DBUS_TYPE_NM_IP_ROUTES, macro in nm-dbus-glib-types
 <dd></dd>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm-util/html/ch01.html b/docs/libnm-util/html/ch01.html
index a1bc76d3..86c53967 100644
--- a/docs/libnm-util/html/ch01.html
+++ b/docs/libnm-util/html/ch01.html
@@ -8,7 +8,7 @@
 <link rel="up" href="index.html" title="libnm-util Reference Manual">
 <link rel="prev" href="index.html" title="libnm-util Reference Manual">
 <link rel="next" href="NMConnection.html" title="NMConnection">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -122,6 +122,6 @@ that require PPP to deliver IP capability</span>
 </dl></div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm-util/html/index.html b/docs/libnm-util/html/index.html
index 206b7525..77d7c18e 100644
--- a/docs/libnm-util/html/index.html
+++ b/docs/libnm-util/html/index.html
@@ -6,7 +6,7 @@
 <meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
 <link rel="home" href="index.html" title="libnm-util Reference Manual">
 <link rel="next" href="ch01.html" title="libnm-util API Reference">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -15,7 +15,7 @@
 <div>
 <div><table class="navigation" id="top" width="100%" cellpadding="2" cellspacing="0"><tr><th valign="middle"><p class="title">libnm-util Reference Manual</p></th></tr></table></div>
 <div><p class="releaseinfo">
-      for libnm-util 1.14.4
+      for libnm-util 1.14.6
 
       The latest version of this documentation can be found on-line at
       <a class="ulink" href="https://developer.gnome.org/libnm-util/stable/" target="_top">https://developer.gnome.org/libnm-util/stable/</a>.
@@ -152,6 +152,6 @@ that require PPP to deliver IP capability</span>
 </dl></div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm-util/html/libnm-util-NetworkManager.html b/docs/libnm-util/html/libnm-util-NetworkManager.html
index cc8f74ad..aa7bd3a2 100644
--- a/docs/libnm-util/html/libnm-util-NetworkManager.html
+++ b/docs/libnm-util/html/libnm-util-NetworkManager.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="libnm-util API Reference">
 <link rel="prev" href="libnm-util-nm-utils.html" title="nm-utils">
 <link rel="next" href="libnm-util-NetworkManagerVPN.html" title="NetworkManagerVPN">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -1886,6 +1886,6 @@ network.</p>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm-util/html/libnm-util-NetworkManagerVPN.html b/docs/libnm-util/html/libnm-util-NetworkManagerVPN.html
index d65162a0..2f32db96 100644
--- a/docs/libnm-util/html/libnm-util-NetworkManagerVPN.html
+++ b/docs/libnm-util/html/libnm-util-NetworkManagerVPN.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="libnm-util API Reference">
 <link rel="prev" href="libnm-util-NetworkManager.html" title="NetworkManager">
 <link rel="next" href="object-tree.html" title="Object Hierarchy">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -944,6 +944,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm-util/html/libnm-util-nm-utils.html b/docs/libnm-util/html/libnm-util-nm-utils.html
index 4627f3a4..106d1c8f 100644
--- a/docs/libnm-util/html/libnm-util-nm-utils.html
+++ b/docs/libnm-util/html/libnm-util-nm-utils.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch01.html" title="libnm-util API Reference">
 <link rel="prev" href="NMSettingVPN.html" title="NMSettingVPN">
 <link rel="next" href="libnm-util-NetworkManager.html" title="NetworkManager">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -2498,6 +2498,6 @@ for both <a class="link" href="libnm-util-nm-utils.html#nm-utils-inet4-ntop" tit
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm-util/html/object-tree.html b/docs/libnm-util/html/object-tree.html
index e59857a2..da44d520 100644
--- a/docs/libnm-util/html/object-tree.html
+++ b/docs/libnm-util/html/object-tree.html
@@ -8,7 +8,7 @@
 <link rel="up" href="index.html" title="libnm-util Reference Manual">
 <link rel="prev" href="libnm-util-NetworkManagerVPN.html" title="NetworkManagerVPN">
 <link rel="next" href="api-index-full.html" title="API Index">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -103,6 +103,6 @@
 </pre>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm-util/version.xml b/docs/libnm-util/version.xml
index 4e00d0ac..c6ba3bc1 100644
--- a/docs/libnm-util/version.xml
+++ b/docs/libnm-util/version.xml
@@ -1 +1 @@
-1.14.4
+1.14.6
diff --git a/docs/libnm/html/NMAccessPoint.html b/docs/libnm/html/NMAccessPoint.html
index 8cfe207c..22f76319 100644
--- a/docs/libnm/html/NMAccessPoint.html
+++ b/docs/libnm/html/NMAccessPoint.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch04.html" title="Device and Runtime Configuration API Reference">
 <link rel="prev" href="NMVpnConnection.html" title="NMVpnConnection">
 <link rel="next" href="NMWimaxNsp.html" title="NMWimaxNsp">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -584,7 +584,7 @@ with this function.</p>
 </tr>
 <tr>
 <td class="parameter_name"><p>connections</p></td>
-<td class="parameter_description"><p>an array of <span class="type">NMConnections</span> to
+<td class="parameter_description"><p>an array of <a href="/usr/share/gtk-doc/html/libnm-util/NMConnection.html#NMConnection-struct"><span class="type">NMConnections</span></a> to
 filter. </p></td>
 <td class="parameter_annotations"><span class="annotation">[<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> NMConnection]</span></td>
 </tr>
@@ -594,10 +594,10 @@ filter. </p></td>
 <div class="refsect3">
 <a name="nm-access-point-filter-connections.returns"></a><h4>Returns</h4>
 <p>an array of
-<span class="type">NMConnections</span> that could be activated with the given <em class="parameter"><code>ap</code></em>
+<a href="/usr/share/gtk-doc/html/libnm-util/NMConnection.html#NMConnection-struct"><span class="type">NMConnections</span></a> that could be activated with the given <em class="parameter"><code>ap</code></em>
 .  The array should
 be freed with <a href="https://developer.gnome.org/glib/unstable/glib-Pointer-Arrays.html#g-ptr-array-unref"><code class="function">g_ptr_array_unref()</code></a> when it is no longer required. </p>
-<p><span class="annotation">[<acronym title="Free data container after the code is done."><span class="acronym">transfer container</span></acronym>][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> NMConnection]</span></p>
+<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> NMConnection]</span></p>
 </div>
 </div>
 <hr>
@@ -814,6 +814,6 @@ coordinator of the wireless network allowing clients to connect) or
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm/html/NMActiveConnection.html b/docs/libnm/html/NMActiveConnection.html
index ae4f7e32..f13fe153 100644
--- a/docs/libnm/html/NMActiveConnection.html
+++ b/docs/libnm/html/NMActiveConnection.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch04.html" title="Device and Runtime Configuration API Reference">
 <link rel="prev" href="libnm-nm-device-wpan.html" title="nm-device-wpan">
 <link rel="next" href="NMVpnConnection.html" title="NMVpnConnection">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -1112,6 +1112,6 @@ user_function (<a class="link" href="NMActiveConnection.html" title="NMActiveCon
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm/html/NMCheckpoint.html b/docs/libnm/html/NMCheckpoint.html
index 5d646bab..7d0ba4d3 100644
--- a/docs/libnm/html/NMCheckpoint.html
+++ b/docs/libnm/html/NMCheckpoint.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch04.html" title="Device and Runtime Configuration API Reference">
 <link rel="prev" href="NMDhcpConfig.html" title="NMDhcpConfig">
 <link rel="next" href="ch05.html" title="Utility API Reference">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -199,6 +199,6 @@ nm_checkpoint_get_rollback_timeout (<em class="parameter"><code><a class="link"
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm/html/NMClient.html b/docs/libnm/html/NMClient.html
index cae0449c..7ccbd977 100644
--- a/docs/libnm/html/NMClient.html
+++ b/docs/libnm/html/NMClient.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch02.html" title="Client Object API Reference">
 <link rel="prev" href="ch02.html" title="Client Object API Reference">
 <link rel="next" href="NMSecretAgentOld.html" title="NMSecretAgentOld">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -5032,6 +5032,6 @@ user_function (<a class="link" href="NMClient.html" title="NMClient"><span class
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm/html/NMConnection.html b/docs/libnm/html/NMConnection.html
index 9a6eb203..00d006d0 100644
--- a/docs/libnm/html/NMConnection.html
+++ b/docs/libnm/html/NMConnection.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch03.html" title="Connection and Setting API Reference">
 <link rel="prev" href="ch03.html" title="Connection and Setting API Reference">
 <link rel="next" href="NMSimpleConnection.html" title="NMSimpleConnection">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -1314,7 +1314,7 @@ failed (tried to update secrets for a setting that doesn't exist, etc)</p>
 nm_connection_set_path (<em class="parameter"><code><a class="link" href="NMConnection.html" title="NMConnection"><span class="type">NMConnection</span></a> *connection</code></em>,
                         <em class="parameter"><code>const <span class="type">char</span> *path</code></em>);</pre>
 <p>Sets the D-Bus path of the connection.  This property is not serialized, and
-is only for the reference of the caller.  Sets the <span class="type">“path”</span>
+is only for the reference of the caller.  Sets the <a href="/usr/share/gtk-doc/html/libnm-util/NMConnection.html#NMConnection--path"><span class="type">“path”</span></a>
 property.</p>
 <div class="refsect3">
 <a name="nm-connection-set-path.parameters"></a><h4>Parameters</h4>
@@ -2854,6 +2854,6 @@ calling <a class="link" href="NMConnection.html#nm-connection-to-dbus" title="nm
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm/html/NMDevice.html b/docs/libnm/html/NMDevice.html
index 5219b910..be147615 100644
--- a/docs/libnm/html/NMDevice.html
+++ b/docs/libnm/html/NMDevice.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch04.html" title="Device and Runtime Configuration API Reference">
 <link rel="prev" href="ch04.html" title="Device and Runtime Configuration API Reference">
 <link rel="next" href="libnm-nm-device-6lowpan.html" title="nm-device-6lowpan">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -2422,7 +2422,7 @@ incompatible with the device. To get the full list of connections see
 </tr>
 <tr>
 <td class="parameter_name"><p>connections</p></td>
-<td class="parameter_description"><p>an array of <span class="type">NMConnections</span> to filter. </p></td>
+<td class="parameter_description"><p>an array of <a href="/usr/share/gtk-doc/html/libnm-util/NMConnection.html#NMConnection-struct"><span class="type">NMConnections</span></a> to filter. </p></td>
 <td class="parameter_annotations"><span class="annotation">[<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> NMConnection]</span></td>
 </tr>
 </tbody>
@@ -2431,10 +2431,10 @@ incompatible with the device. To get the full list of connections see
 <div class="refsect3">
 <a name="nm-device-filter-connections.returns"></a><h4>Returns</h4>
 <p>an array of
-<span class="type">NMConnections</span> that could be activated with the given <em class="parameter"><code>device</code></em>
+<a href="/usr/share/gtk-doc/html/libnm-util/NMConnection.html#NMConnection-struct"><span class="type">NMConnections</span></a> that could be activated with the given <em class="parameter"><code>device</code></em>
 .  The array
 should be freed with <a href="https://developer.gnome.org/glib/unstable/glib-Pointer-Arrays.html#g-ptr-array-unref"><code class="function">g_ptr_array_unref()</code></a> when it is no longer required. </p>
-<p><span class="annotation">[<acronym title="Free data container after the code is done."><span class="acronym">transfer container</span></acronym>][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> NMConnection]</span></p>
+<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> NMConnection]</span></p>
 </div>
 </div>
 <hr>
@@ -3225,6 +3225,6 @@ user_function (<a class="link" href="NMDevice.html" title="NMDevice"><span class
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm/html/NMDeviceAdsl.html b/docs/libnm/html/NMDeviceAdsl.html
index e40b2ea2..9710b372 100644
--- a/docs/libnm/html/NMDeviceAdsl.html
+++ b/docs/libnm/html/NMDeviceAdsl.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch04.html" title="Device and Runtime Configuration API Reference">
 <link rel="prev" href="libnm-nm-device-6lowpan.html" title="nm-device-6lowpan">
 <link rel="next" href="NMDeviceBond.html" title="NMDeviceBond">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -155,6 +155,6 @@ nm_device_adsl_get_carrier (<em class="parameter"><code><a class="link" href="NM
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm/html/NMDeviceBond.html b/docs/libnm/html/NMDeviceBond.html
index 46fbb3ee..3e1f29ea 100644
--- a/docs/libnm/html/NMDeviceBond.html
+++ b/docs/libnm/html/NMDeviceBond.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch04.html" title="Device and Runtime Configuration API Reference">
 <link rel="prev" href="NMDeviceAdsl.html" title="NMDeviceAdsl">
 <link rel="next" href="NMDeviceBridge.html" title="NMDeviceBridge">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -279,6 +279,6 @@ copy used by the device, and must not be modified. </p>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm/html/NMDeviceBridge.html b/docs/libnm/html/NMDeviceBridge.html
index 1efbcb81..adffd6df 100644
--- a/docs/libnm/html/NMDeviceBridge.html
+++ b/docs/libnm/html/NMDeviceBridge.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch04.html" title="Device and Runtime Configuration API Reference">
 <link rel="prev" href="NMDeviceBond.html" title="NMDeviceBond">
 <link rel="next" href="NMDeviceBt.html" title="NMDeviceBt">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -279,6 +279,6 @@ copy used by the device, and must not be modified. </p>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm/html/NMDeviceBt.html b/docs/libnm/html/NMDeviceBt.html
index d87f9ae7..65a41ae5 100644
--- a/docs/libnm/html/NMDeviceBt.html
+++ b/docs/libnm/html/NMDeviceBt.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch04.html" title="Device and Runtime Configuration API Reference">
 <link rel="prev" href="NMDeviceBridge.html" title="NMDeviceBridge">
 <link rel="next" href="NMDeviceDummy.html" title="NMDeviceDummy">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -273,6 +273,6 @@ nm_device_bt_get_capabilities (<em class="parameter"><code><a class="link" href=
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm/html/NMDeviceDummy.html b/docs/libnm/html/NMDeviceDummy.html
index 1d430bee..baff573b 100644
--- a/docs/libnm/html/NMDeviceDummy.html
+++ b/docs/libnm/html/NMDeviceDummy.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch04.html" title="Device and Runtime Configuration API Reference">
 <link rel="prev" href="NMDeviceBt.html" title="NMDeviceBt">
 <link rel="next" href="NMDeviceEthernet.html" title="NMDeviceEthernet">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -158,6 +158,6 @@ device, and must not be modified.</p>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm/html/NMDeviceEthernet.html b/docs/libnm/html/NMDeviceEthernet.html
index 002f70ff..02f43818 100644
--- a/docs/libnm/html/NMDeviceEthernet.html
+++ b/docs/libnm/html/NMDeviceEthernet.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch04.html" title="Device and Runtime Configuration API Reference">
 <link rel="prev" href="NMDeviceDummy.html" title="NMDeviceDummy">
 <link rel="next" href="NMDeviceGeneric.html" title="NMDeviceGeneric">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -394,6 +394,6 @@ communication with z/VM or s390 host.</p>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm/html/NMDeviceGeneric.html b/docs/libnm/html/NMDeviceGeneric.html
index e1b11244..1d477d45 100644
--- a/docs/libnm/html/NMDeviceGeneric.html
+++ b/docs/libnm/html/NMDeviceGeneric.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch04.html" title="Device and Runtime Configuration API Reference">
 <link rel="prev" href="NMDeviceEthernet.html" title="NMDeviceEthernet">
 <link rel="next" href="NMDeviceInfiniband.html" title="NMDeviceInfiniband">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -183,6 +183,6 @@ if not known.</p>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm/html/NMDeviceIPTunnel.html b/docs/libnm/html/NMDeviceIPTunnel.html
index c5809858..b6bc3bd9 100644
--- a/docs/libnm/html/NMDeviceIPTunnel.html
+++ b/docs/libnm/html/NMDeviceIPTunnel.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch04.html" title="Device and Runtime Configuration API Reference">
 <link rel="prev" href="NMDeviceInfiniband.html" title="NMDeviceInfiniband">
 <link rel="next" href="NMDeviceMacsec.html" title="NMDeviceMacsec">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -808,6 +808,6 @@ tunneled packets.</p>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm/html/NMDeviceInfiniband.html b/docs/libnm/html/NMDeviceInfiniband.html
index 02078964..3032e7f5 100644
--- a/docs/libnm/html/NMDeviceInfiniband.html
+++ b/docs/libnm/html/NMDeviceInfiniband.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch04.html" title="Device and Runtime Configuration API Reference">
 <link rel="prev" href="NMDeviceGeneric.html" title="NMDeviceGeneric">
 <link rel="next" href="NMDeviceIPTunnel.html" title="NMDeviceIPTunnel">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -217,6 +217,6 @@ nm_device_infiniband_get_carrier (<em class="parameter"><code><a class="link" hr
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm/html/NMDeviceMacsec.html b/docs/libnm/html/NMDeviceMacsec.html
index e38fdd75..13d85dee 100644
--- a/docs/libnm/html/NMDeviceMacsec.html
+++ b/docs/libnm/html/NMDeviceMacsec.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch04.html" title="Device and Runtime Configuration API Reference">
 <link rel="prev" href="NMDeviceIPTunnel.html" title="NMDeviceIPTunnel">
 <link rel="next" href="NMDeviceMacvlan.html" title="NMDeviceMacvlan">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -939,6 +939,6 @@ disabled).</p>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm/html/NMDeviceMacvlan.html b/docs/libnm/html/NMDeviceMacvlan.html
index 290d3287..d0842777 100644
--- a/docs/libnm/html/NMDeviceMacvlan.html
+++ b/docs/libnm/html/NMDeviceMacvlan.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch04.html" title="Device and Runtime Configuration API Reference">
 <link rel="prev" href="NMDeviceMacsec.html" title="NMDeviceMacsec">
 <link rel="next" href="NMDeviceModem.html" title="NMDeviceModem">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -399,6 +399,6 @@ device, and must not be modified.</p>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm/html/NMDeviceModem.html b/docs/libnm/html/NMDeviceModem.html
index a45814e5..6443328c 100644
--- a/docs/libnm/html/NMDeviceModem.html
+++ b/docs/libnm/html/NMDeviceModem.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch04.html" title="Device and Runtime Configuration API Reference">
 <link rel="prev" href="NMDeviceMacvlan.html" title="NMDeviceMacvlan">
 <link rel="next" href="NMDeviceOlpcMesh.html" title="NMDeviceOlpcMesh">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -225,6 +225,6 @@ CDMA/EVDO and GSM/UMTS.</p>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm/html/NMDeviceOlpcMesh.html b/docs/libnm/html/NMDeviceOlpcMesh.html
index fdeaaf72..1842b576 100644
--- a/docs/libnm/html/NMDeviceOlpcMesh.html
+++ b/docs/libnm/html/NMDeviceOlpcMesh.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch04.html" title="Device and Runtime Configuration API Reference">
 <link rel="prev" href="NMDeviceModem.html" title="NMDeviceModem">
 <link rel="next" href="NMDeviceOvsBridge.html" title="NMDeviceOvsBridge">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -276,6 +276,6 @@ nm_device_olpc_mesh_get_active_channel
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm/html/NMDeviceOvsBridge.html b/docs/libnm/html/NMDeviceOvsBridge.html
index d30a1808..60a2cfe3 100644
--- a/docs/libnm/html/NMDeviceOvsBridge.html
+++ b/docs/libnm/html/NMDeviceOvsBridge.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch04.html" title="Device and Runtime Configuration API Reference">
 <link rel="prev" href="NMDeviceOlpcMesh.html" title="NMDeviceOlpcMesh">
 <link rel="next" href="NMDeviceOvsInterface.html" title="NMDeviceOvsInterface">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -107,6 +107,6 @@ copy used by the device, and must not be modified. </p>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm/html/NMDeviceOvsInterface.html b/docs/libnm/html/NMDeviceOvsInterface.html
index 558ebfc5..6aa8b2b9 100644
--- a/docs/libnm/html/NMDeviceOvsInterface.html
+++ b/docs/libnm/html/NMDeviceOvsInterface.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch04.html" title="Device and Runtime Configuration API Reference">
 <link rel="prev" href="NMDeviceOvsBridge.html" title="NMDeviceOvsBridge">
 <link rel="next" href="NMDeviceOvsPort.html" title="NMDeviceOvsPort">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -43,6 +43,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm/html/NMDeviceOvsPort.html b/docs/libnm/html/NMDeviceOvsPort.html
index 56187d9a..01ff2196 100644
--- a/docs/libnm/html/NMDeviceOvsPort.html
+++ b/docs/libnm/html/NMDeviceOvsPort.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch04.html" title="Device and Runtime Configuration API Reference">
 <link rel="prev" href="NMDeviceOvsInterface.html" title="NMDeviceOvsInterface">
 <link rel="next" href="NMDevicePpp.html" title="NMDevicePpp">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -107,6 +107,6 @@ copy used by the device, and must not be modified. </p>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm/html/NMDevicePpp.html b/docs/libnm/html/NMDevicePpp.html
index 10595dd1..489a67ed 100644
--- a/docs/libnm/html/NMDevicePpp.html
+++ b/docs/libnm/html/NMDevicePpp.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch04.html" title="Device and Runtime Configuration API Reference">
 <link rel="prev" href="NMDeviceOvsPort.html" title="NMDeviceOvsPort">
 <link rel="next" href="NMDeviceTeam.html" title="NMDeviceTeam">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -43,6 +43,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm/html/NMDeviceTeam.html b/docs/libnm/html/NMDeviceTeam.html
index 70fc7c40..41e0c754 100644
--- a/docs/libnm/html/NMDeviceTeam.html
+++ b/docs/libnm/html/NMDeviceTeam.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch04.html" title="Device and Runtime Configuration API Reference">
 <link rel="prev" href="NMDevicePpp.html" title="NMDevicePpp">
 <link rel="next" href="NMDeviceTun.html" title="NMDeviceTun">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -339,6 +339,6 @@ device, and must not be modified.</p>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm/html/NMDeviceTun.html b/docs/libnm/html/NMDeviceTun.html
index 5df9be41..6652457b 100644
--- a/docs/libnm/html/NMDeviceTun.html
+++ b/docs/libnm/html/NMDeviceTun.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch04.html" title="Device and Runtime Configuration API Reference">
 <link rel="prev" href="NMDeviceTeam.html" title="NMDeviceTeam">
 <link rel="next" href="NMDeviceVlan.html" title="NMDeviceVlan">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -501,6 +501,6 @@ include a virtio network header.</p>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm/html/NMDeviceVlan.html b/docs/libnm/html/NMDeviceVlan.html
index 90df2373..70e9157d 100644
--- a/docs/libnm/html/NMDeviceVlan.html
+++ b/docs/libnm/html/NMDeviceVlan.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch04.html" title="Device and Runtime Configuration API Reference">
 <link rel="prev" href="NMDeviceTun.html" title="NMDeviceTun">
 <link rel="next" href="NMDeviceVxlan.html" title="NMDeviceVxlan">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -331,6 +331,6 @@ nm_device_vlan_get_vlan_id (<em class="parameter"><code><a class="link" href="NM
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm/html/NMDeviceVxlan.html b/docs/libnm/html/NMDeviceVxlan.html
index 506d3593..8b36a0e8 100644
--- a/docs/libnm/html/NMDeviceVxlan.html
+++ b/docs/libnm/html/NMDeviceVxlan.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch04.html" title="Device and Runtime Configuration API Reference">
 <link rel="prev" href="NMDeviceVlan.html" title="NMDeviceVlan">
 <link rel="next" href="NMDeviceWifi.html" title="NMDeviceWifi">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -1162,6 +1162,6 @@ tunnel endpoint.</p>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm/html/NMDeviceWifi.html b/docs/libnm/html/NMDeviceWifi.html
index b64c0608..863bd4ad 100644
--- a/docs/libnm/html/NMDeviceWifi.html
+++ b/docs/libnm/html/NMDeviceWifi.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch04.html" title="Device and Runtime Configuration API Reference">
 <link rel="prev" href="NMDeviceVxlan.html" title="NMDeviceVxlan">
 <link rel="next" href="NMDeviceWimax.html" title="NMDeviceWimax">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -1009,6 +1009,6 @@ user_function (<a class="link" href="NMDeviceWifi.html" title="NMDeviceWifi"><sp
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm/html/NMDeviceWimax.html b/docs/libnm/html/NMDeviceWimax.html
index e3eb2a7f..53c94d36 100644
--- a/docs/libnm/html/NMDeviceWimax.html
+++ b/docs/libnm/html/NMDeviceWimax.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch04.html" title="Device and Runtime Configuration API Reference">
 <link rel="prev" href="NMDeviceWifi.html" title="NMDeviceWifi">
 <link rel="next" href="NMDeviceWireGuard.html" title="NMDeviceWireGuard">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -796,6 +796,6 @@ user_function (<a class="link" href="NMDeviceWimax.html" title="NMDeviceWimax"><
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm/html/NMDeviceWireGuard.html b/docs/libnm/html/NMDeviceWireGuard.html
index db34d4e7..714829e0 100644
--- a/docs/libnm/html/NMDeviceWireGuard.html
+++ b/docs/libnm/html/NMDeviceWireGuard.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch04.html" title="Device and Runtime Configuration API Reference">
 <link rel="prev" href="NMDeviceWimax.html" title="NMDeviceWimax">
 <link rel="next" href="libnm-nm-device-wpan.html" title="nm-device-wpan">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -200,6 +200,6 @@ See: ip-rule(8)</p>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm/html/NMDhcpConfig.html b/docs/libnm/html/NMDhcpConfig.html
index 27916206..189ee3a3 100644
--- a/docs/libnm/html/NMDhcpConfig.html
+++ b/docs/libnm/html/NMDhcpConfig.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch04.html" title="Device and Runtime Configuration API Reference">
 <link rel="prev" href="NMIPConfig.html" title="NMIPConfig">
 <link rel="next" href="NMCheckpoint.html" title="NMCheckpoint">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -262,6 +262,6 @@ configuration, and must not be modified.</p>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm/html/NMIPConfig.html b/docs/libnm/html/NMIPConfig.html
index 98340b5d..a8d10522 100644
--- a/docs/libnm/html/NMIPConfig.html
+++ b/docs/libnm/html/NMIPConfig.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch04.html" title="Device and Runtime Configuration API Reference">
 <link rel="prev" href="NMWimaxNsp.html" title="NMWimaxNsp">
 <link rel="next" href="NMDhcpConfig.html" title="NMDhcpConfig">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -570,6 +570,6 @@ nm_ip_config_get_wins_servers (<em class="parameter"><code><a class="link" href=
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm/html/NMObject.html b/docs/libnm/html/NMObject.html
index 72578230..dacf1197 100644
--- a/docs/libnm/html/NMObject.html
+++ b/docs/libnm/html/NMObject.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch02.html" title="Client Object API Reference">
 <link rel="prev" href="NMSecretAgentOld.html" title="NMSecretAgentOld">
 <link rel="next" href="libnm-nm-errors.html" title="nm-errors">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -226,6 +226,6 @@ object, and must not be modified.</p>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm/html/NMRemoteConnection.html b/docs/libnm/html/NMRemoteConnection.html
index b415e3c0..6227c74f 100644
--- a/docs/libnm/html/NMRemoteConnection.html
+++ b/docs/libnm/html/NMRemoteConnection.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch03.html" title="Connection and Setting API Reference">
 <link rel="prev" href="NMSimpleConnection.html" title="NMSimpleConnection">
 <link rel="next" href="NMSetting.html" title="NMSetting">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -1129,6 +1129,6 @@ after you already have a reference to it.)</p>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm/html/NMSecretAgentOld.html b/docs/libnm/html/NMSecretAgentOld.html
index ae155696..95f43d05 100644
--- a/docs/libnm/html/NMSecretAgentOld.html
+++ b/docs/libnm/html/NMSecretAgentOld.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch02.html" title="Client Object API Reference">
 <link rel="prev" href="NMClient.html" title="NMClient">
 <link rel="next" href="NMObject.html" title="NMObject">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -827,6 +827,6 @@ of 3 characters.  An example valid identifier is 'org.gnome.nm-applet'
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm/html/NMSetting.html b/docs/libnm/html/NMSetting.html
index 045d0177..2340e37b 100644
--- a/docs/libnm/html/NMSetting.html
+++ b/docs/libnm/html/NMSetting.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch03.html" title="Connection and Setting API Reference">
 <link rel="prev" href="NMRemoteConnection.html" title="NMRemoteConnection">
 <link rel="next" href="NMSettingConnection.html" title="NMSettingConnection">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -1165,6 +1165,6 @@ example "ppp" or "802-11-wireless" or "802-3-ethernet".</p>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm/html/NMSetting6Lowpan.html b/docs/libnm/html/NMSetting6Lowpan.html
index 2f6d0b35..922e2358 100644
--- a/docs/libnm/html/NMSetting6Lowpan.html
+++ b/docs/libnm/html/NMSetting6Lowpan.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch03.html" title="Connection and Setting API Reference">
 <link rel="prev" href="NMSettingConnection.html" title="NMSettingConnection">
 <link rel="next" href="NMSetting8021x.html" title="NMSetting8021x">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -138,6 +138,6 @@ nm_setting_6lowpan_get_parent (<em class="parameter"><code><a class="link" href=
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm/html/NMSetting8021x.html b/docs/libnm/html/NMSetting8021x.html
index 8389a1ca..21ac1234 100644
--- a/docs/libnm/html/NMSetting8021x.html
+++ b/docs/libnm/html/NMSetting8021x.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch03.html" title="Connection and Setting API Reference">
 <link rel="prev" href="NMSetting6Lowpan.html" title="NMSetting6Lowpan">
 <link rel="next" href="NMSettingAdsl.html" title="NMSettingAdsl">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -5036,6 +5036,6 @@ properties instead (sets ca_cert/ca_cert2 options for wpa_supplicant).</p>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm/html/NMSettingAdsl.html b/docs/libnm/html/NMSettingAdsl.html
index 1f5285c9..ccef965c 100644
--- a/docs/libnm/html/NMSettingAdsl.html
+++ b/docs/libnm/html/NMSettingAdsl.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch03.html" title="Connection and Setting API Reference">
 <link rel="prev" href="NMSetting8021x.html" title="NMSetting8021x">
 <link rel="next" href="NMSettingBluetooth.html" title="NMSettingBluetooth">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -569,6 +569,6 @@ nm_setting_adsl_get_password_flags (<em class="parameter"><code><a class="link"
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm/html/NMSettingBluetooth.html b/docs/libnm/html/NMSettingBluetooth.html
index b214a3fc..940ac90b 100644
--- a/docs/libnm/html/NMSettingBluetooth.html
+++ b/docs/libnm/html/NMSettingBluetooth.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch03.html" title="Connection and Setting API Reference">
 <link rel="prev" href="NMSettingAdsl.html" title="NMSettingAdsl">
 <link rel="next" href="NMSettingBond.html" title="NMSettingBond">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -284,6 +284,6 @@ Area Networking connections to devices supporting the NAP profile.</p>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm/html/NMSettingBond.html b/docs/libnm/html/NMSettingBond.html
index c7256553..ba637f9c 100644
--- a/docs/libnm/html/NMSettingBond.html
+++ b/docs/libnm/html/NMSettingBond.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch03.html" title="Connection and Setting API Reference">
 <link rel="prev" href="NMSettingBluetooth.html" title="NMSettingBluetooth">
 <link rel="next" href="NMSettingBridgePort.html" title="NMSettingBridgePort">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -787,6 +787,6 @@ the <a class="link" href="NMSettingBond.html#NMSettingBond--options" title="The
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm/html/NMSettingBridge.html b/docs/libnm/html/NMSettingBridge.html
index c6287586..8f374b6a 100644
--- a/docs/libnm/html/NMSettingBridge.html
+++ b/docs/libnm/html/NMSettingBridge.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch03.html" title="Connection and Setting API Reference">
 <link rel="prev" href="NMSettingBridgePort.html" title="NMSettingBridgePort">
 <link rel="next" href="NMSettingCdma.html" title="NMSettingCdma">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -663,6 +663,6 @@ bridge.</p>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm/html/NMSettingBridgePort.html b/docs/libnm/html/NMSettingBridgePort.html
index 2e60b28c..2aa8b1d3 100644
--- a/docs/libnm/html/NMSettingBridgePort.html
+++ b/docs/libnm/html/NMSettingBridgePort.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch03.html" title="Connection and Setting API Reference">
 <link rel="prev" href="NMSettingBond.html" title="NMSettingBond">
 <link rel="next" href="NMSettingBridge.html" title="NMSettingBridge">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -300,6 +300,6 @@ port.</p>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm/html/NMSettingCdma.html b/docs/libnm/html/NMSettingCdma.html
index 9ff38f47..329c3da6 100644
--- a/docs/libnm/html/NMSettingCdma.html
+++ b/docs/libnm/html/NMSettingCdma.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch03.html" title="Connection and Setting API Reference">
 <link rel="prev" href="NMSettingBridge.html" title="NMSettingBridge">
 <link rel="next" href="NMSettingDcb.html" title="NMSettingDcb">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -415,6 +415,6 @@ username is required, it is specified here.</p>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm/html/NMSettingConnection.html b/docs/libnm/html/NMSettingConnection.html
index 08f7ac46..3eba2674 100644
--- a/docs/libnm/html/NMSettingConnection.html
+++ b/docs/libnm/html/NMSettingConnection.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch03.html" title="Connection and Setting API Reference">
 <link rel="prev" href="NMSetting.html" title="NMSetting">
 <link rel="next" href="NMSetting6Lowpan.html" title="NMSetting6Lowpan">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -2214,11 +2214,11 @@ is commonly also included, so that different systems end up generating
 different IDs. Or with ipv6.addr-gen-mode=stable-privacy, also the device's
 name is included, so that different interfaces yield different addresses.</p>
 <p>The '$' character is treated special to perform dynamic substitutions
-at runtime. Currently supported are "${CONNECTION}", "${DEVICE}",
+at runtime. Currently supported are "${CONNECTION}", "${DEVICE}", "${MAC}",
 "${BOOT}", "${RANDOM}".
 These effectively create unique IDs per-connection, per-device, per-boot,
 or every time. Note that "${DEVICE}" corresponds the the interface name of the
-device.
+device and "${MAC}" is the permanent MAC address of the device.
 Any unrecognized patterns following '$' are treated verbatim, however
 are reserved for future use. You are thus advised to avoid '$' or
 escape it as "$$".
@@ -2271,7 +2271,7 @@ provider, or <a class="link" href="NMSettingConnection.html#NMSettingConnection-
 <p>The UUID must be in the format "2815492f-7e56-435e-b2e9-246bd7cdc664"
 (ie, contains only hexadecimal characters and "-").  A suitable UUID may
 be generated by <a class="link" href="libnm-nm-utils.html#nm-utils-uuid-generate" title="nm_utils_uuid_generate ()"><code class="function">nm_utils_uuid_generate()</code></a> or
-<code class="function">nm_utils_uuid_generate_from_string()</code>.</p>
+<a href="/usr/share/gtk-doc/html/libnm-util/libnm-util-nm-utils.html#nm-utils-uuid-generate-from-string"><code class="function">nm_utils_uuid_generate_from_string()</code></a>.</p>
 <p>Flags: Read / Write</p>
 <p>Default value: NULL</p>
 </div>
@@ -2291,6 +2291,6 @@ the change takes effect immediately.</p>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm/html/NMSettingDcb.html b/docs/libnm/html/NMSettingDcb.html
index 468e49f1..9c8ea1cf 100644
--- a/docs/libnm/html/NMSettingDcb.html
+++ b/docs/libnm/html/NMSettingDcb.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch03.html" title="Connection and Setting API Reference">
 <link rel="prev" href="NMSettingCdma.html" title="NMSettingCdma">
 <link rel="next" href="NMSettingDummy.html" title="NMSettingDummy">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -1403,6 +1403,6 @@ which the priority is mapped.</p>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm/html/NMSettingDummy.html b/docs/libnm/html/NMSettingDummy.html
index 637a404f..1e1f6b4b 100644
--- a/docs/libnm/html/NMSettingDummy.html
+++ b/docs/libnm/html/NMSettingDummy.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch03.html" title="Connection and Setting API Reference">
 <link rel="prev" href="NMSettingDcb.html" title="NMSettingDcb">
 <link rel="next" href="NMSettingEthtool.html" title="NMSettingEthtool">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -111,6 +111,6 @@ nm_setting_dummy_new (<em class="parameter"><code><span class="type">void</span>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm/html/NMSettingEthtool.html b/docs/libnm/html/NMSettingEthtool.html
index 850bb139..0644c606 100644
--- a/docs/libnm/html/NMSettingEthtool.html
+++ b/docs/libnm/html/NMSettingEthtool.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch03.html" title="Connection and Setting API Reference">
 <link rel="prev" href="NMSettingDummy.html" title="NMSettingDummy">
 <link rel="next" href="NMSettingGeneric.html" title="NMSettingGeneric">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -771,6 +771,6 @@ nm_setting_ethtool_clear_features (<em class="parameter"><code><a class="link" h
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm/html/NMSettingGeneric.html b/docs/libnm/html/NMSettingGeneric.html
index cdf607e7..939c3c53 100644
--- a/docs/libnm/html/NMSettingGeneric.html
+++ b/docs/libnm/html/NMSettingGeneric.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch03.html" title="Connection and Setting API Reference">
 <link rel="prev" href="NMSettingEthtool.html" title="NMSettingEthtool">
 <link rel="next" href="NMSettingGsm.html" title="NMSettingGsm">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -81,7 +81,7 @@
 optional properties that apply to "generic" devices (ie, devices that
 NetworkManager does not specifically recognize).</p>
 <p>There are currently no properties on this object; it exists only to be
-the "connection type" setting on <span class="type">NMConnections</span> for generic devices.</p>
+the "connection type" setting on <a href="/usr/share/gtk-doc/html/libnm-util/NMConnection.html#NMConnection-struct"><span class="type">NMConnections</span></a> for generic devices.</p>
 </div>
 <div class="refsect1">
 <a name="NMSettingGeneric.functions_details"></a><h2>Functions</h2>
@@ -113,6 +113,6 @@ nm_setting_generic_new (<em class="parameter"><code><span class="type">void</spa
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm/html/NMSettingGsm.html b/docs/libnm/html/NMSettingGsm.html
index 4fd18cc3..c7ce6adf 100644
--- a/docs/libnm/html/NMSettingGsm.html
+++ b/docs/libnm/html/NMSettingGsm.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch03.html" title="Connection and Setting API Reference">
 <link rel="prev" href="NMSettingGeneric.html" title="NMSettingGeneric">
 <link rel="next" href="NMSettingInfiniband.html" title="NMSettingInfiniband">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -891,6 +891,6 @@ username is required, it is specified here.</p>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm/html/NMSettingIP4Config.html b/docs/libnm/html/NMSettingIP4Config.html
index c8df79f4..4755fcef 100644
--- a/docs/libnm/html/NMSettingIP4Config.html
+++ b/docs/libnm/html/NMSettingIP4Config.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch03.html" title="Connection and Setting API Reference">
 <link rel="prev" href="NMSettingInfiniband.html" title="NMSettingInfiniband">
 <link rel="next" href="NMSettingIP6Config.html" title="NMSettingIP6Config">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -323,10 +323,14 @@ non-hardware-address client ID and the 'type' field is set to 0.</p>
 current or permanent MAC address of the device to generate a client identifier
 with type ethernet (01). Currently, these options only work for ethernet
 type of links.</p>
+<p>The special value "duid" generates a RFC4361-compliant client identifier based
+on a hash of the interface name as IAID and /etc/machine-id.</p>
 <p>The special value "stable" is supported to generate a type 0 client identifier based
-on the stable-id (see connection.stable-id) and a per-host key.</p>
-<p>If unset, a globally configured default is used. If still unset, the
-client-id from the last lease is reused.</p>
+on the stable-id (see connection.stable-id) and a per-host key. If you set the
+stable-id, you may want to include the "${DEVICE}" or "${MAC}" specifier to get a
+per-device key.</p>
+<p>If unset, a globally configured default is used. If still unset, the default
+depends on the DHCP plugin.</p>
 <p>Flags: Read / Write</p>
 <p>Default value: NULL</p>
 </div>
@@ -345,6 +349,6 @@ cannot be set at the same time.</p>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm/html/NMSettingIP6Config.html b/docs/libnm/html/NMSettingIP6Config.html
index 3565445f..154f953e 100644
--- a/docs/libnm/html/NMSettingIP6Config.html
+++ b/docs/libnm/html/NMSettingIP6Config.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch03.html" title="Connection and Setting API Reference">
 <link rel="prev" href="NMSettingIP4Config.html" title="NMSettingIP4Config">
 <link rel="next" href="NMSettingIPConfig.html" title="NMSettingIPConfig">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -567,7 +567,8 @@ try providing a stable DUID-LLT, the time field will contain a constant
 timestamp that is used globally (for all profiles) and persisted to disk.</p>
 <p>The special values "stable-llt", "stable-ll" and "stable-uuid" will generate
 a DUID of the corresponding type, derived from the connection's stable-id and
-a per-host unique key.
+a per-host unique key. You may want to include the "${DEVICE}" or "${MAC}" specifier
+in the stable-id, in case this profile gets activated on multiple devices.
 So, the link-layer address of "stable-ll" and "stable-llt" will be a generated
 address derived from the stable id. The DUID-LLT time value in the "stable-llt"
 option will be picked among a static timespan of three years (the upper bound
@@ -612,6 +613,6 @@ IPv6 tokenized interface identifiers. Useful with eui64 addr-gen-mode.</p>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm/html/NMSettingIPConfig.html b/docs/libnm/html/NMSettingIPConfig.html
index 16d8cb2c..23fbdcbe 100644
--- a/docs/libnm/html/NMSettingIPConfig.html
+++ b/docs/libnm/html/NMSettingIPConfig.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch03.html" title="Connection and Setting API Reference">
 <link rel="prev" href="NMSettingIP6Config.html" title="NMSettingIP6Config">
 <link rel="next" href="NMSettingIPTunnel.html" title="NMSettingIPTunnel">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -4386,6 +4386,6 @@ of NetworkManager.</p>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm/html/NMSettingIPTunnel.html b/docs/libnm/html/NMSettingIPTunnel.html
index 51d2f19e..dbbb4953 100644
--- a/docs/libnm/html/NMSettingIPTunnel.html
+++ b/docs/libnm/html/NMSettingIPTunnel.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch03.html" title="Connection and Setting API Reference">
 <link rel="prev" href="NMSettingIPConfig.html" title="NMSettingIPConfig">
 <link rel="next" href="NMSettingMacsec.html" title="NMSettingMacsec">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -951,6 +951,6 @@ packets inherit the TTL value.</p>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm/html/NMSettingInfiniband.html b/docs/libnm/html/NMSettingInfiniband.html
index 3cab06a7..8c3f6727 100644
--- a/docs/libnm/html/NMSettingInfiniband.html
+++ b/docs/libnm/html/NMSettingInfiniband.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch03.html" title="Connection and Setting API Reference">
 <link rel="prev" href="NMSettingGsm.html" title="NMSettingGsm">
 <link rel="next" href="NMSettingIP4Config.html" title="NMSettingIP4Config">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -461,6 +461,6 @@ specify the base device by setting either this property or
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm/html/NMSettingMacsec.html b/docs/libnm/html/NMSettingMacsec.html
index 1a1d476b..31a82ce8 100644
--- a/docs/libnm/html/NMSettingMacsec.html
+++ b/docs/libnm/html/NMSettingMacsec.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch03.html" title="Connection and Setting API Reference">
 <link rel="prev" href="NMSettingIPTunnel.html" title="NMSettingIPTunnel">
 <link rel="next" href="NMSettingMacvlan.html" title="NMSettingMacvlan">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -764,6 +764,6 @@ in every packet.</p>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm/html/NMSettingMacvlan.html b/docs/libnm/html/NMSettingMacvlan.html
index e825651e..3471ecd5 100644
--- a/docs/libnm/html/NMSettingMacvlan.html
+++ b/docs/libnm/html/NMSettingMacvlan.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch03.html" title="Connection and Setting API Reference">
 <link rel="prev" href="NMSettingMacsec.html" title="NMSettingMacsec">
 <link rel="next" href="NMSettingMatch.html" title="NMSettingMatch">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -438,6 +438,6 @@ with a <a class="link" href="NMSettingWired.html#NMSettingWired--mac-address" ti
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm/html/NMSettingMatch.html b/docs/libnm/html/NMSettingMatch.html
index fd15e721..c391014b 100644
--- a/docs/libnm/html/NMSettingMatch.html
+++ b/docs/libnm/html/NMSettingMatch.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch03.html" title="Connection and Setting API Reference">
 <link rel="prev" href="NMSettingMacvlan.html" title="NMSettingMacvlan">
 <link rel="next" href="NMSettingOlpcMesh.html" title="NMSettingOlpcMesh">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -378,6 +378,6 @@ nm_setting_match_get_interface_names (<em class="parameter"><code><a class="link
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm/html/NMSettingOlpcMesh.html b/docs/libnm/html/NMSettingOlpcMesh.html
index c4dc16a5..e2b68aed 100644
--- a/docs/libnm/html/NMSettingOlpcMesh.html
+++ b/docs/libnm/html/NMSettingOlpcMesh.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch03.html" title="Connection and Setting API Reference">
 <link rel="prev" href="NMSettingMatch.html" title="NMSettingMatch">
 <link rel="next" href="NMSettingOvsBridge.html" title="NMSettingOvsBridge">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -260,6 +260,6 @@ answers the request.</p>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm/html/NMSettingOvsBridge.html b/docs/libnm/html/NMSettingOvsBridge.html
index eede5c9c..21bd4940 100644
--- a/docs/libnm/html/NMSettingOvsBridge.html
+++ b/docs/libnm/html/NMSettingOvsBridge.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch03.html" title="Connection and Setting API Reference">
 <link rel="prev" href="NMSettingOlpcMesh.html" title="NMSettingOlpcMesh">
 <link rel="next" href="NMSettingOvsInterface.html" title="NMSettingOvsInterface">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -271,6 +271,6 @@ nm_setting_ovs_bridge_get_stp_enable (<em class="parameter"><code><a class="link
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm/html/NMSettingOvsInterface.html b/docs/libnm/html/NMSettingOvsInterface.html
index 790860f2..e7c35782 100644
--- a/docs/libnm/html/NMSettingOvsInterface.html
+++ b/docs/libnm/html/NMSettingOvsInterface.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch03.html" title="Connection and Setting API Reference">
 <link rel="prev" href="NMSettingOvsBridge.html" title="NMSettingOvsBridge">
 <link rel="next" href="NMSettingOvsPatch.html" title="NMSettingOvsPatch">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -139,6 +139,6 @@ nm_setting_ovs_interface_get_interface_type
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm/html/NMSettingOvsPatch.html b/docs/libnm/html/NMSettingOvsPatch.html
index 123ceedb..3c9a5b7a 100644
--- a/docs/libnm/html/NMSettingOvsPatch.html
+++ b/docs/libnm/html/NMSettingOvsPatch.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch03.html" title="Connection and Setting API Reference">
 <link rel="prev" href="NMSettingOvsInterface.html" title="NMSettingOvsInterface">
 <link rel="next" href="NMSettingOvsPort.html" title="NMSettingOvsPort">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -138,6 +138,6 @@ nm_setting_ovs_patch_get_peer (<em class="parameter"><code><a class="link" href=
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm/html/NMSettingOvsPort.html b/docs/libnm/html/NMSettingOvsPort.html
index 908ee2d4..1c5e81dc 100644
--- a/docs/libnm/html/NMSettingOvsPort.html
+++ b/docs/libnm/html/NMSettingOvsPort.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch03.html" title="Connection and Setting API Reference">
 <link rel="prev" href="NMSettingOvsPatch.html" title="NMSettingOvsPatch">
 <link rel="next" href="NMSettingPppoe.html" title="NMSettingPppoe">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -357,6 +357,6 @@ nm_setting_ovs_port_get_bond_downdelay
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm/html/NMSettingPpp.html b/docs/libnm/html/NMSettingPpp.html
index 9e29905b..be86468b 100644
--- a/docs/libnm/html/NMSettingPpp.html
+++ b/docs/libnm/html/NMSettingPpp.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch03.html" title="Connection and Setting API Reference">
 <link rel="prev" href="NMSettingPppoe.html" title="NMSettingPppoe">
 <link rel="next" href="NMSettingProxy.html" title="NMSettingProxy">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -1159,6 +1159,6 @@ be set to <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macro
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm/html/NMSettingPppoe.html b/docs/libnm/html/NMSettingPppoe.html
index b56bffc4..61858a6d 100644
--- a/docs/libnm/html/NMSettingPppoe.html
+++ b/docs/libnm/html/NMSettingPppoe.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch03.html" title="Connection and Setting API Reference">
 <link rel="prev" href="NMSettingOvsPort.html" title="NMSettingOvsPort">
 <link rel="next" href="NMSettingPpp.html" title="NMSettingPpp">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -415,6 +415,6 @@ access concentrators or a specific service is known to be required.</p>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm/html/NMSettingProxy.html b/docs/libnm/html/NMSettingProxy.html
index 145bc09e..2870c41e 100644
--- a/docs/libnm/html/NMSettingProxy.html
+++ b/docs/libnm/html/NMSettingProxy.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch03.html" title="Connection and Setting API Reference">
 <link rel="prev" href="NMSettingPpp.html" title="NMSettingPpp">
 <link rel="next" href="NMSettingSerial.html" title="NMSettingSerial">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -406,6 +406,6 @@ nm_setting_proxy_get_pac_script (<em class="parameter"><code><a class="link" hre
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm/html/NMSettingSerial.html b/docs/libnm/html/NMSettingSerial.html
index ccdabf98..9cb1f0aa 100644
--- a/docs/libnm/html/NMSettingSerial.html
+++ b/docs/libnm/html/NMSettingSerial.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch03.html" title="Connection and Setting API Reference">
 <link rel="prev" href="NMSettingProxy.html" title="NMSettingProxy">
 <link rel="next" href="NMSettingSriov.html" title="NMSettingSriov">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -458,6 +458,6 @@ The 1 in "8n1" for example.</p>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm/html/NMSettingSriov.html b/docs/libnm/html/NMSettingSriov.html
index 1d2a2b0d..c77a2123 100644
--- a/docs/libnm/html/NMSettingSriov.html
+++ b/docs/libnm/html/NMSettingSriov.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch03.html" title="Connection and Setting API Reference">
 <link rel="prev" href="NMSettingSerial.html" title="NMSettingSerial">
 <link rel="next" href="NMSettingTCConfig.html" title="NMSettingTCConfig">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -1191,6 +1191,6 @@ the value is of the correct type and well-formed.</p>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm/html/NMSettingTCConfig.html b/docs/libnm/html/NMSettingTCConfig.html
index db35030c..52cad487 100644
--- a/docs/libnm/html/NMSettingTCConfig.html
+++ b/docs/libnm/html/NMSettingTCConfig.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch03.html" title="Connection and Setting API Reference">
 <link rel="prev" href="NMSettingSriov.html" title="NMSettingSriov">
 <link rel="next" href="NMSettingTeamPort.html" title="NMSettingTeamPort">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -1693,6 +1693,6 @@ nm_setting_tc_config_clear_tfilters (<em class="parameter"><code><a class="link"
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm/html/NMSettingTeam.html b/docs/libnm/html/NMSettingTeam.html
index 0df3712b..1d4beb4a 100644
--- a/docs/libnm/html/NMSettingTeam.html
+++ b/docs/libnm/html/NMSettingTeam.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch03.html" title="Connection and Setting API Reference">
 <link rel="prev" href="NMSettingTeamPort.html" title="NMSettingTeamPort">
 <link rel="next" href="NMSettingTun.html" title="NMSettingTun">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -2364,6 +2364,6 @@ a default value).</p>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm/html/NMSettingTeamPort.html b/docs/libnm/html/NMSettingTeamPort.html
index 28eaa762..e1cc4098 100644
--- a/docs/libnm/html/NMSettingTeamPort.html
+++ b/docs/libnm/html/NMSettingTeamPort.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch03.html" title="Connection and Setting API Reference">
 <link rel="prev" href="NMSettingTCConfig.html" title="NMSettingTCConfig">
 <link rel="next" href="NMSettingTeam.html" title="NMSettingTeam">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -768,6 +768,6 @@ When set to -1 means the parameter is skipped from the json config.</p>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm/html/NMSettingTun.html b/docs/libnm/html/NMSettingTun.html
index e2fec401..39a3e5a2 100644
--- a/docs/libnm/html/NMSettingTun.html
+++ b/docs/libnm/html/NMSettingTun.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch03.html" title="Connection and Setting API Reference">
 <link rel="prev" href="NMSettingTeam.html" title="NMSettingTeam">
 <link rel="next" href="NMSettingUser.html" title="NMSettingUser">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -530,6 +530,6 @@ network header.</p>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm/html/NMSettingUser.html b/docs/libnm/html/NMSettingUser.html
index 6d977b72..0da8d24a 100644
--- a/docs/libnm/html/NMSettingUser.html
+++ b/docs/libnm/html/NMSettingUser.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch03.html" title="Connection and Setting API Reference">
 <link rel="prev" href="NMSettingTun.html" title="NMSettingTun">
 <link rel="next" href="NMSettingVlan.html" title="NMSettingVlan">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -342,6 +342,6 @@ is a valid user data value.</p>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm/html/NMSettingVlan.html b/docs/libnm/html/NMSettingVlan.html
index d7ab5ef8..7ec017c7 100644
--- a/docs/libnm/html/NMSettingVlan.html
+++ b/docs/libnm/html/NMSettingVlan.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch03.html" title="Connection and Setting API Reference">
 <link rel="prev" href="NMSettingUser.html" title="NMSettingUser">
 <link rel="next" href="NMSettingVpn.html" title="NMSettingVpn">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -889,6 +889,6 @@ with a <a class="link" href="NMSettingWired.html#NMSettingWired--mac-address" ti
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm/html/NMSettingVpn.html b/docs/libnm/html/NMSettingVpn.html
index 2bdba73f..52119bb7 100644
--- a/docs/libnm/html/NMSettingVpn.html
+++ b/docs/libnm/html/NMSettingVpn.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch03.html" title="Connection and Setting API Reference">
 <link rel="prev" href="NMSettingVlan.html" title="NMSettingVlan">
 <link rel="next" href="NMSettingVxlan.html" title="NMSettingVxlan">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -988,6 +988,6 @@ VPN connection.</p>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm/html/NMSettingVxlan.html b/docs/libnm/html/NMSettingVxlan.html
index d697979b..4634af0a 100644
--- a/docs/libnm/html/NMSettingVxlan.html
+++ b/docs/libnm/html/NMSettingVxlan.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch03.html" title="Connection and Setting API Reference">
 <link rel="prev" href="NMSettingVpn.html" title="NMSettingVpn">
 <link rel="next" href="NMSettingWimax.html" title="NMSettingWimax">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -1070,6 +1070,6 @@ tunnel endpoint.</p>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm/html/NMSettingWimax.html b/docs/libnm/html/NMSettingWimax.html
index 4ac21b44..519d0a9c 100644
--- a/docs/libnm/html/NMSettingWimax.html
+++ b/docs/libnm/html/NMSettingWimax.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch03.html" title="Connection and Setting API Reference">
 <link rel="prev" href="NMSettingVxlan.html" title="NMSettingVxlan">
 <link rel="next" href="NMSettingWired.html" title="NMSettingWired">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -268,6 +268,6 @@ should use.</p>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm/html/NMSettingWired.html b/docs/libnm/html/NMSettingWired.html
index 0b20755d..8850803b 100644
--- a/docs/libnm/html/NMSettingWired.html
+++ b/docs/libnm/html/NMSettingWired.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch03.html" title="Connection and Setting API Reference">
 <link rel="prev" href="NMSettingWimax.html" title="NMSettingWimax">
 <link rel="next" href="NMSettingWirelessSecurity.html" title="NMSettingWirelessSecurity">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -1612,6 +1612,6 @@ no password will be required.</p>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm/html/NMSettingWireless.html b/docs/libnm/html/NMSettingWireless.html
index 40b975d9..64488bdc 100644
--- a/docs/libnm/html/NMSettingWireless.html
+++ b/docs/libnm/html/NMSettingWireless.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch03.html" title="Connection and Setting API Reference">
 <link rel="prev" href="NMSettingWirelessSecurity.html" title="NMSettingWirelessSecurity">
 <link rel="next" href="NMSettingWpan.html" title="NMSettingWpan">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -1811,6 +1811,6 @@ NetworkManager).</p>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm/html/NMSettingWirelessSecurity.html b/docs/libnm/html/NMSettingWirelessSecurity.html
index fb43d8bd..515dabd0 100644
--- a/docs/libnm/html/NMSettingWirelessSecurity.html
+++ b/docs/libnm/html/NMSettingWirelessSecurity.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch03.html" title="Connection and Setting API Reference">
 <link rel="prev" href="NMSettingWired.html" title="NMSettingWired">
 <link rel="next" href="NMSettingWireless.html" title="NMSettingWireless">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -2120,6 +2120,6 @@ the Access Point capabilities.</p>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm/html/NMSettingWpan.html b/docs/libnm/html/NMSettingWpan.html
index e28d4119..1ceb07c3 100644
--- a/docs/libnm/html/NMSettingWpan.html
+++ b/docs/libnm/html/NMSettingWpan.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch03.html" title="Connection and Setting API Reference">
 <link rel="prev" href="NMSettingWireless.html" title="NMSettingWireless">
 <link rel="next" href="ch04.html" title="Device and Runtime Configuration API Reference">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -226,6 +226,6 @@ nm_setting_wpan_get_short_address (<em class="parameter"><code><a class="link" h
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm/html/NMSimpleConnection.html b/docs/libnm/html/NMSimpleConnection.html
index 3095ae1d..dba78002 100644
--- a/docs/libnm/html/NMSimpleConnection.html
+++ b/docs/libnm/html/NMSimpleConnection.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch03.html" title="Connection and Setting API Reference">
 <link rel="prev" href="NMConnection.html" title="NMConnection">
 <link rel="next" href="NMRemoteConnection.html" title="NMRemoteConnection">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -188,6 +188,6 @@ and properties as the source <a class="link" href="NMConnection.html" title="NMC
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm/html/NMVpnConnection.html b/docs/libnm/html/NMVpnConnection.html
index b07f9c24..6414ffd3 100644
--- a/docs/libnm/html/NMVpnConnection.html
+++ b/docs/libnm/html/NMVpnConnection.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch04.html" title="Device and Runtime Configuration API Reference">
 <link rel="prev" href="NMActiveConnection.html" title="NMActiveConnection">
 <link rel="next" href="NMAccessPoint.html" title="NMAccessPoint">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -245,6 +245,6 @@ user_function (<a class="link" href="NMVpnConnection.html" title="NMVpnConnectio
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm/html/NMVpnEditor.html b/docs/libnm/html/NMVpnEditor.html
index 51ddc528..847edfbd 100644
--- a/docs/libnm/html/NMVpnEditor.html
+++ b/docs/libnm/html/NMVpnEditor.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch06.html" title="VPN Plugin API Reference">
 <link rel="prev" href="libnm-nm-vpn-plugin-info.html" title="nm-vpn-plugin-info">
 <link rel="next" href="NMVpnEditorPlugin.html" title="NMVpnEditorPlugin">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -140,7 +140,7 @@ nm_vpn_editor_update_connection (<em class="parameter"><code><a class="link" hre
 <tbody>
 <tr>
 <td class="struct_member_name"><p><em class="structfield"><code><a name="NMVpnEditorInterface.get-widget"></a>get_widget</code></em> ()</p></td>
-<td class="struct_member_description"><p>return the <a href="https://developer.gnome.org/gtk4/GtkWidget.html#GtkWidget-struct"><span class="type">GtkWidget</span></a> for the VPN editor's UI</p></td>
+<td class="struct_member_description"><p>return the <span class="type">GtkWidget</span> for the VPN editor's UI</p></td>
 <td class="struct_member_annotations"> </td>
 </tr>
 <tr>
@@ -175,6 +175,6 @@ to write values to the connection.</p></td>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm/html/NMVpnEditorPlugin.html b/docs/libnm/html/NMVpnEditorPlugin.html
index 4cff61e5..f1168013 100644
--- a/docs/libnm/html/NMVpnEditorPlugin.html
+++ b/docs/libnm/html/NMVpnEditorPlugin.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch06.html" title="VPN Plugin API Reference">
 <link rel="prev" href="NMVpnEditor.html" title="NMVpnEditor">
 <link rel="next" href="libnm-nm-vpn-plugin-old.html" title="nm-vpn-plugin-old">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -821,6 +821,6 @@ user_function (<a class="link" href="NMVpnEditor.html" title="NMVpnEditor"><span
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm/html/NMWimaxNsp.html b/docs/libnm/html/NMWimaxNsp.html
index 67b5cc99..eb249419 100644
--- a/docs/libnm/html/NMWimaxNsp.html
+++ b/docs/libnm/html/NMWimaxNsp.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch04.html" title="Device and Runtime Configuration API Reference">
 <link rel="prev" href="NMAccessPoint.html" title="NMAccessPoint">
 <link rel="next" href="NMIPConfig.html" title="NMIPConfig">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -260,7 +260,7 @@ connections will match the <em class="parameter"><code>nsp</code></em>
 </tr>
 <tr>
 <td class="parameter_name"><p>connections</p></td>
-<td class="parameter_description"><p>an array of <span class="type">NMConnections</span> to
+<td class="parameter_description"><p>an array of <a href="/usr/share/gtk-doc/html/libnm-util/NMConnection.html#NMConnection-struct"><span class="type">NMConnections</span></a> to
 filter. </p></td>
 <td class="parameter_annotations"><span class="annotation">[<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> NMConnection]</span></td>
 </tr>
@@ -270,10 +270,10 @@ filter. </p></td>
 <div class="refsect3">
 <a name="nm-wimax-nsp-filter-connections.returns"></a><h4>Returns</h4>
 <p>an array of
-<span class="type">NMConnections</span> that could be activated with the given <em class="parameter"><code>nsp</code></em>
+<a href="/usr/share/gtk-doc/html/libnm-util/NMConnection.html#NMConnection-struct"><span class="type">NMConnections</span></a> that could be activated with the given <em class="parameter"><code>nsp</code></em>
 .  The array should
 be freed with <a href="https://developer.gnome.org/glib/unstable/glib-Pointer-Arrays.html#g-ptr-array-unref"><code class="function">g_ptr_array_unref()</code></a> when it is no longer required. </p>
-<p><span class="annotation">[<acronym title="Free data container after the code is done."><span class="acronym">transfer container</span></acronym>][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> NMConnection]</span></p>
+<p><span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>][<acronym title="Generics and defining elements of containers and arrays."><span class="acronym">element-type</span></acronym> NMConnection]</span></p>
 </div>
 </div>
 <hr>
@@ -371,6 +371,6 @@ against</p></td>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm/html/annotation-glossary.html b/docs/libnm/html/annotation-glossary.html
index c46d5b8f..2c027534 100644
--- a/docs/libnm/html/annotation-glossary.html
+++ b/docs/libnm/html/annotation-glossary.html
@@ -7,7 +7,7 @@
 <link rel="home" href="index.html" title="libnm Reference Manual">
 <link rel="up" href="index.html" title="libnm Reference Manual">
 <link rel="prev" href="api-index-full.html" title="API Index">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -73,6 +73,6 @@
 <dd class="glossdef"><p>Override the parsed C type with given type.</p></dd>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm/html/api-index-full.html b/docs/libnm/html/api-index-full.html
index 16452f62..9d850e33 100644
--- a/docs/libnm/html/api-index-full.html
+++ b/docs/libnm/html/api-index-full.html
@@ -8,7 +8,7 @@
 <link rel="up" href="index.html" title="libnm Reference Manual">
 <link rel="prev" href="object-tree.html" title="Object Hierarchy">
 <link rel="next" href="annotation-glossary.html" title="Annotation Glossary">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -1111,19 +1111,19 @@ NMCheckpoint:rollback-timeout, object property in NMDeviceOvs
 </dt>
 <dd></dd>
 <dt>
-NMConnection, struct in NMSettingOvs
+<a href="/usr/share/gtk-doc/html/libnm-util/NMConnection.html#NMConnection-struct">NMConnection</a>, struct in NMSettingOvs
 </dt>
 <dd></dd>
 <dt>
-NMConnection::changed, object signal in NMSettingOvs
+<a href="/usr/share/gtk-doc/html/libnm-util/NMConnection.html#NMConnection-changed">NMConnection::changed</a>, object signal in NMSettingOvs
 </dt>
 <dd></dd>
 <dt>
-NMConnection::secrets-cleared, object signal in NMSettingOvs
+<a href="/usr/share/gtk-doc/html/libnm-util/NMConnection.html#NMConnection-secrets-cleared">NMConnection::secrets-cleared</a>, object signal in NMSettingOvs
 </dt>
 <dd></dd>
 <dt>
-NMConnection::secrets-updated, object signal in NMSettingOvs
+<a href="/usr/share/gtk-doc/html/libnm-util/NMConnection.html#NMConnection-secrets-updated">NMConnection::secrets-updated</a>, object signal in NMSettingOvs
 </dt>
 <dd></dd>
 <dt>
@@ -1628,11 +1628,11 @@ NMConnection::secrets-updated, object signal in NMSettingOvs
 </dt>
 <dd></dd>
 <dt>
-NM_DBUS_INTERFACE_VPN, macro in nm-vpn-dbus-interface
+<a href="/usr/share/gtk-doc/html/libnm-util/libnm-util-NetworkManagerVPN.html#NM-DBUS-INTERFACE-VPN:CAPS">NM_DBUS_INTERFACE_VPN</a>, macro in nm-vpn-dbus-interface
 </dt>
 <dd></dd>
 <dt>
-NM_DBUS_INTERFACE_VPN_CONNECTION, macro in nm-vpn-dbus-interface
+<a href="/usr/share/gtk-doc/html/libnm-util/libnm-util-NetworkManagerVPN.html#NM-DBUS-INTERFACE-VPN-CONNECTION:CAPS">NM_DBUS_INTERFACE_VPN_CONNECTION</a>, macro in nm-vpn-dbus-interface
 </dt>
 <dd></dd>
 <dt>
@@ -1640,15 +1640,15 @@ NM_DBUS_INTERFACE_VPN_CONNECTION, macro in nm-vpn-dbus-interface
 </dt>
 <dd></dd>
 <dt>
-NM_DBUS_INVALID_VPN_CONNECTION, macro in nm-vpn-dbus-interface
+<a href="/usr/share/gtk-doc/html/libnm-util/libnm-util-NetworkManagerVPN.html#NM-DBUS-INVALID-VPN-CONNECTION:CAPS">NM_DBUS_INVALID_VPN_CONNECTION</a>, macro in nm-vpn-dbus-interface
 </dt>
 <dd></dd>
 <dt>
-NM_DBUS_NO_ACTIVE_VPN_CONNECTION, macro in nm-vpn-dbus-interface
+<a href="/usr/share/gtk-doc/html/libnm-util/libnm-util-NetworkManagerVPN.html#NM-DBUS-NO-ACTIVE-VPN-CONNECTION:CAPS">NM_DBUS_NO_ACTIVE_VPN_CONNECTION</a>, macro in nm-vpn-dbus-interface
 </dt>
 <dd></dd>
 <dt>
-NM_DBUS_NO_VPN_CONNECTIONS, macro in nm-vpn-dbus-interface
+<a href="/usr/share/gtk-doc/html/libnm-util/libnm-util-NetworkManagerVPN.html#NM-DBUS-NO-VPN-CONNECTIONS:CAPS">NM_DBUS_NO_VPN_CONNECTIONS</a>, macro in nm-vpn-dbus-interface
 </dt>
 <dd></dd>
 <dt>
@@ -1680,11 +1680,11 @@ NM_DBUS_NO_VPN_CONNECTIONS, macro in nm-vpn-dbus-interface
 </dt>
 <dd></dd>
 <dt>
-NM_DBUS_PATH_VPN, macro in nm-vpn-dbus-interface
+<a href="/usr/share/gtk-doc/html/libnm-util/libnm-util-NetworkManagerVPN.html#NM-DBUS-PATH-VPN:CAPS">NM_DBUS_PATH_VPN</a>, macro in nm-vpn-dbus-interface
 </dt>
 <dd></dd>
 <dt>
-NM_DBUS_PATH_VPN_CONNECTION, macro in nm-vpn-dbus-interface
+<a href="/usr/share/gtk-doc/html/libnm-util/libnm-util-NetworkManagerVPN.html#NM-DBUS-PATH-VPN-CONNECTION:CAPS">NM_DBUS_PATH_VPN_CONNECTION</a>, macro in nm-vpn-dbus-interface
 </dt>
 <dd></dd>
 <dt>
@@ -1696,67 +1696,67 @@ NM_DBUS_PATH_VPN_CONNECTION, macro in nm-vpn-dbus-interface
 </dt>
 <dd></dd>
 <dt>
-NM_DBUS_VPN_ALREADY_STARTED, macro in nm-vpn-dbus-interface
+<a href="/usr/share/gtk-doc/html/libnm-util/libnm-util-NetworkManagerVPN.html#NM-DBUS-VPN-ALREADY-STARTED:CAPS">NM_DBUS_VPN_ALREADY_STARTED</a>, macro in nm-vpn-dbus-interface
 </dt>
 <dd></dd>
 <dt>
-NM_DBUS_VPN_ALREADY_STOPPED, macro in nm-vpn-dbus-interface
+<a href="/usr/share/gtk-doc/html/libnm-util/libnm-util-NetworkManagerVPN.html#NM-DBUS-VPN-ALREADY-STOPPED:CAPS">NM_DBUS_VPN_ALREADY_STOPPED</a>, macro in nm-vpn-dbus-interface
 </dt>
 <dd></dd>
 <dt>
-NM_DBUS_VPN_BAD_ARGUMENTS, macro in nm-vpn-dbus-interface
+<a href="/usr/share/gtk-doc/html/libnm-util/libnm-util-NetworkManagerVPN.html#NM-DBUS-VPN-BAD-ARGUMENTS:CAPS">NM_DBUS_VPN_BAD_ARGUMENTS</a>, macro in nm-vpn-dbus-interface
 </dt>
 <dd></dd>
 <dt>
-NM_DBUS_VPN_ERROR_PREFIX, macro in nm-vpn-dbus-interface
+<a href="/usr/share/gtk-doc/html/libnm-util/libnm-util-NetworkManagerVPN.html#NM-DBUS-VPN-ERROR-PREFIX:CAPS">NM_DBUS_VPN_ERROR_PREFIX</a>, macro in nm-vpn-dbus-interface
 </dt>
 <dd></dd>
 <dt>
-NM_DBUS_VPN_INTERACTIVE_NOT_SUPPORTED, macro in nm-vpn-dbus-interface
+<a href="/usr/share/gtk-doc/html/libnm-util/libnm-util-NetworkManagerVPN.html#NM-DBUS-VPN-INTERACTIVE-NOT-SUPPORTED:CAPS">NM_DBUS_VPN_INTERACTIVE_NOT_SUPPORTED</a>, macro in nm-vpn-dbus-interface
 </dt>
 <dd></dd>
 <dt>
-NM_DBUS_VPN_SIGNAL_CONNECT_FAILED, macro in nm-vpn-dbus-interface
+<a href="/usr/share/gtk-doc/html/libnm-util/libnm-util-NetworkManagerVPN.html#NM-DBUS-VPN-SIGNAL-CONNECT-FAILED:CAPS">NM_DBUS_VPN_SIGNAL_CONNECT_FAILED</a>, macro in nm-vpn-dbus-interface
 </dt>
 <dd></dd>
 <dt>
-NM_DBUS_VPN_SIGNAL_IP4_CONFIG, macro in nm-vpn-dbus-interface
+<a href="/usr/share/gtk-doc/html/libnm-util/libnm-util-NetworkManagerVPN.html#NM-DBUS-VPN-SIGNAL-IP4-CONFIG:CAPS">NM_DBUS_VPN_SIGNAL_IP4_CONFIG</a>, macro in nm-vpn-dbus-interface
 </dt>
 <dd></dd>
 <dt>
-NM_DBUS_VPN_SIGNAL_IP_CONFIG_BAD, macro in nm-vpn-dbus-interface
+<a href="/usr/share/gtk-doc/html/libnm-util/libnm-util-NetworkManagerVPN.html#NM-DBUS-VPN-SIGNAL-IP-CONFIG-BAD:CAPS">NM_DBUS_VPN_SIGNAL_IP_CONFIG_BAD</a>, macro in nm-vpn-dbus-interface
 </dt>
 <dd></dd>
 <dt>
-NM_DBUS_VPN_SIGNAL_LAUNCH_FAILED, macro in nm-vpn-dbus-interface
+<a href="/usr/share/gtk-doc/html/libnm-util/libnm-util-NetworkManagerVPN.html#NM-DBUS-VPN-SIGNAL-LAUNCH-FAILED:CAPS">NM_DBUS_VPN_SIGNAL_LAUNCH_FAILED</a>, macro in nm-vpn-dbus-interface
 </dt>
 <dd></dd>
 <dt>
-NM_DBUS_VPN_SIGNAL_LOGIN_BANNER, macro in nm-vpn-dbus-interface
+<a href="/usr/share/gtk-doc/html/libnm-util/libnm-util-NetworkManagerVPN.html#NM-DBUS-VPN-SIGNAL-LOGIN-BANNER:CAPS">NM_DBUS_VPN_SIGNAL_LOGIN_BANNER</a>, macro in nm-vpn-dbus-interface
 </dt>
 <dd></dd>
 <dt>
-NM_DBUS_VPN_SIGNAL_LOGIN_FAILED, macro in nm-vpn-dbus-interface
+<a href="/usr/share/gtk-doc/html/libnm-util/libnm-util-NetworkManagerVPN.html#NM-DBUS-VPN-SIGNAL-LOGIN-FAILED:CAPS">NM_DBUS_VPN_SIGNAL_LOGIN_FAILED</a>, macro in nm-vpn-dbus-interface
 </dt>
 <dd></dd>
 <dt>
-NM_DBUS_VPN_SIGNAL_STATE_CHANGE, macro in nm-vpn-dbus-interface
+<a href="/usr/share/gtk-doc/html/libnm-util/libnm-util-NetworkManagerVPN.html#NM-DBUS-VPN-SIGNAL-STATE-CHANGE:CAPS">NM_DBUS_VPN_SIGNAL_STATE_CHANGE</a>, macro in nm-vpn-dbus-interface
 </dt>
 <dd></dd>
 <dt>
-NM_DBUS_VPN_SIGNAL_VPN_CONFIG_BAD, macro in nm-vpn-dbus-interface
+<a href="/usr/share/gtk-doc/html/libnm-util/libnm-util-NetworkManagerVPN.html#NM-DBUS-VPN-SIGNAL-VPN-CONFIG-BAD:CAPS">NM_DBUS_VPN_SIGNAL_VPN_CONFIG_BAD</a>, macro in nm-vpn-dbus-interface
 </dt>
 <dd></dd>
 <dt>
-NM_DBUS_VPN_STARTING_IN_PROGRESS, macro in nm-vpn-dbus-interface
+<a href="/usr/share/gtk-doc/html/libnm-util/libnm-util-NetworkManagerVPN.html#NM-DBUS-VPN-STARTING-IN-PROGRESS:CAPS">NM_DBUS_VPN_STARTING_IN_PROGRESS</a>, macro in nm-vpn-dbus-interface
 </dt>
 <dd></dd>
 <dt>
-NM_DBUS_VPN_STOPPING_IN_PROGRESS, macro in nm-vpn-dbus-interface
+<a href="/usr/share/gtk-doc/html/libnm-util/libnm-util-NetworkManagerVPN.html#NM-DBUS-VPN-STOPPING-IN-PROGRESS:CAPS">NM_DBUS_VPN_STOPPING_IN_PROGRESS</a>, macro in nm-vpn-dbus-interface
 </dt>
 <dd></dd>
 <dt>
-NM_DBUS_VPN_WRONG_STATE, macro in nm-vpn-dbus-interface
+<a href="/usr/share/gtk-doc/html/libnm-util/libnm-util-NetworkManagerVPN.html#NM-DBUS-VPN-WRONG-STATE:CAPS">NM_DBUS_VPN_WRONG_STATE</a>, macro in nm-vpn-dbus-interface
 </dt>
 <dd></dd>
 <dt>
@@ -4455,7 +4455,7 @@ json_object_iter_key, macro in nm-json
 </dt>
 <dd></dd>
 <dt>
-<a href="/usr/share/gtk-doc/html/json-glib/json-glib-JSON-Object.html#json-object-iter-next">json_object_iter_next</a>, macro in nm-json
+json_object_iter_next, macro in nm-json
 </dt>
 <dd></dd>
 <dt>
@@ -11623,11 +11623,11 @@ nm_utils_fixup_vendor_string, function in nm-libnm-utils
 </dt>
 <dd></dd>
 <dt>
-NM_VPN_DBUS_PLUGIN_INTERFACE, macro in nm-vpn-dbus-interface
+<a href="/usr/share/gtk-doc/html/libnm-util/libnm-util-NetworkManagerVPN.html#NM-VPN-DBUS-PLUGIN-INTERFACE:CAPS">NM_VPN_DBUS_PLUGIN_INTERFACE</a>, macro in nm-vpn-dbus-interface
 </dt>
 <dd></dd>
 <dt>
-NM_VPN_DBUS_PLUGIN_PATH, macro in nm-vpn-dbus-interface
+<a href="/usr/share/gtk-doc/html/libnm-util/libnm-util-NetworkManagerVPN.html#NM-VPN-DBUS-PLUGIN-PATH:CAPS">NM_VPN_DBUS_PLUGIN_PATH</a>, macro in nm-vpn-dbus-interface
 </dt>
 <dd></dd>
 <dt>
@@ -11695,27 +11695,27 @@ NM_VPN_DBUS_PLUGIN_PATH, macro in nm-vpn-dbus-interface
 </dt>
 <dd></dd>
 <dt>
-NM_VPN_PLUGIN_CAN_PERSIST, macro in nm-vpn-dbus-interface
+<a href="/usr/share/gtk-doc/html/libnm-util/libnm-util-NetworkManagerVPN.html#NM-VPN-PLUGIN-CAN-PERSIST:CAPS">NM_VPN_PLUGIN_CAN_PERSIST</a>, macro in nm-vpn-dbus-interface
 </dt>
 <dd></dd>
 <dt>
-NM_VPN_PLUGIN_CONFIG_BANNER, macro in nm-vpn-dbus-interface
+<a href="/usr/share/gtk-doc/html/libnm-util/libnm-util-NetworkManagerVPN.html#NM-VPN-PLUGIN-CONFIG-BANNER:CAPS">NM_VPN_PLUGIN_CONFIG_BANNER</a>, macro in nm-vpn-dbus-interface
 </dt>
 <dd></dd>
 <dt>
-NM_VPN_PLUGIN_CONFIG_EXT_GATEWAY, macro in nm-vpn-dbus-interface
+<a href="/usr/share/gtk-doc/html/libnm-util/libnm-util-NetworkManagerVPN.html#NM-VPN-PLUGIN-CONFIG-EXT-GATEWAY:CAPS">NM_VPN_PLUGIN_CONFIG_EXT_GATEWAY</a>, macro in nm-vpn-dbus-interface
 </dt>
 <dd></dd>
 <dt>
-NM_VPN_PLUGIN_CONFIG_HAS_IP4, macro in nm-vpn-dbus-interface
+<a href="/usr/share/gtk-doc/html/libnm-util/libnm-util-NetworkManagerVPN.html#NM-VPN-PLUGIN-CONFIG-HAS-IP4:CAPS">NM_VPN_PLUGIN_CONFIG_HAS_IP4</a>, macro in nm-vpn-dbus-interface
 </dt>
 <dd></dd>
 <dt>
-NM_VPN_PLUGIN_CONFIG_HAS_IP6, macro in nm-vpn-dbus-interface
+<a href="/usr/share/gtk-doc/html/libnm-util/libnm-util-NetworkManagerVPN.html#NM-VPN-PLUGIN-CONFIG-HAS-IP6:CAPS">NM_VPN_PLUGIN_CONFIG_HAS_IP6</a>, macro in nm-vpn-dbus-interface
 </dt>
 <dd></dd>
 <dt>
-NM_VPN_PLUGIN_CONFIG_MTU, macro in nm-vpn-dbus-interface
+<a href="/usr/share/gtk-doc/html/libnm-util/libnm-util-NetworkManagerVPN.html#NM-VPN-PLUGIN-CONFIG-MTU:CAPS">NM_VPN_PLUGIN_CONFIG_MTU</a>, macro in nm-vpn-dbus-interface
 </dt>
 <dd></dd>
 <dt>
@@ -11723,7 +11723,7 @@ NM_VPN_PLUGIN_CONFIG_PROXY_PAC, macro in nm-vpn-dbus-interface
 </dt>
 <dd></dd>
 <dt>
-NM_VPN_PLUGIN_CONFIG_TUNDEV, macro in nm-vpn-dbus-interface
+<a href="/usr/share/gtk-doc/html/libnm-util/libnm-util-NetworkManagerVPN.html#NM-VPN-PLUGIN-CONFIG-TUNDEV:CAPS">NM_VPN_PLUGIN_CONFIG_TUNDEV</a>, macro in nm-vpn-dbus-interface
 </dt>
 <dd></dd>
 <dt>
@@ -11759,55 +11759,55 @@ NM_VPN_PLUGIN_CONFIG_TUNDEV, macro in nm-vpn-dbus-interface
 </dt>
 <dd></dd>
 <dt>
-NM_VPN_PLUGIN_IP4_CONFIG_ADDRESS, macro in nm-vpn-dbus-interface
+<a href="/usr/share/gtk-doc/html/libnm-util/libnm-util-NetworkManagerVPN.html#NM-VPN-PLUGIN-IP4-CONFIG-ADDRESS:CAPS">NM_VPN_PLUGIN_IP4_CONFIG_ADDRESS</a>, macro in nm-vpn-dbus-interface
 </dt>
 <dd></dd>
 <dt>
-NM_VPN_PLUGIN_IP4_CONFIG_BANNER, macro in nm-vpn-dbus-interface
+<a href="/usr/share/gtk-doc/html/libnm-util/libnm-util-NetworkManagerVPN.html#NM-VPN-PLUGIN-IP4-CONFIG-BANNER:CAPS">NM_VPN_PLUGIN_IP4_CONFIG_BANNER</a>, macro in nm-vpn-dbus-interface
 </dt>
 <dd></dd>
 <dt>
-NM_VPN_PLUGIN_IP4_CONFIG_DNS, macro in nm-vpn-dbus-interface
+<a href="/usr/share/gtk-doc/html/libnm-util/libnm-util-NetworkManagerVPN.html#NM-VPN-PLUGIN-IP4-CONFIG-DNS:CAPS">NM_VPN_PLUGIN_IP4_CONFIG_DNS</a>, macro in nm-vpn-dbus-interface
 </dt>
 <dd></dd>
 <dt>
-NM_VPN_PLUGIN_IP4_CONFIG_DOMAIN, macro in nm-vpn-dbus-interface
+<a href="/usr/share/gtk-doc/html/libnm-util/libnm-util-NetworkManagerVPN.html#NM-VPN-PLUGIN-IP4-CONFIG-DOMAIN:CAPS">NM_VPN_PLUGIN_IP4_CONFIG_DOMAIN</a>, macro in nm-vpn-dbus-interface
 </dt>
 <dd></dd>
 <dt>
-NM_VPN_PLUGIN_IP4_CONFIG_DOMAINS, macro in nm-vpn-dbus-interface
+<a href="/usr/share/gtk-doc/html/libnm-util/libnm-util-NetworkManagerVPN.html#NM-VPN-PLUGIN-IP4-CONFIG-DOMAINS:CAPS">NM_VPN_PLUGIN_IP4_CONFIG_DOMAINS</a>, macro in nm-vpn-dbus-interface
 </dt>
 <dd></dd>
 <dt>
-NM_VPN_PLUGIN_IP4_CONFIG_EXT_GATEWAY, macro in nm-vpn-dbus-interface
+<a href="/usr/share/gtk-doc/html/libnm-util/libnm-util-NetworkManagerVPN.html#NM-VPN-PLUGIN-IP4-CONFIG-EXT-GATEWAY:CAPS">NM_VPN_PLUGIN_IP4_CONFIG_EXT_GATEWAY</a>, macro in nm-vpn-dbus-interface
 </dt>
 <dd></dd>
 <dt>
-NM_VPN_PLUGIN_IP4_CONFIG_GATEWAY, macro in nm-vpn-dbus-interface
+<a href="/usr/share/gtk-doc/html/libnm-util/libnm-util-NetworkManagerVPN.html#NM-VPN-PLUGIN-IP4-CONFIG-GATEWAY:CAPS">NM_VPN_PLUGIN_IP4_CONFIG_GATEWAY</a>, macro in nm-vpn-dbus-interface
 </dt>
 <dd></dd>
 <dt>
-NM_VPN_PLUGIN_IP4_CONFIG_INT_GATEWAY, macro in nm-vpn-dbus-interface
+<a href="/usr/share/gtk-doc/html/libnm-util/libnm-util-NetworkManagerVPN.html#NM-VPN-PLUGIN-IP4-CONFIG-INT-GATEWAY:CAPS">NM_VPN_PLUGIN_IP4_CONFIG_INT_GATEWAY</a>, macro in nm-vpn-dbus-interface
 </dt>
 <dd></dd>
 <dt>
-NM_VPN_PLUGIN_IP4_CONFIG_MSS, macro in nm-vpn-dbus-interface
+<a href="/usr/share/gtk-doc/html/libnm-util/libnm-util-NetworkManagerVPN.html#NM-VPN-PLUGIN-IP4-CONFIG-MSS:CAPS">NM_VPN_PLUGIN_IP4_CONFIG_MSS</a>, macro in nm-vpn-dbus-interface
 </dt>
 <dd></dd>
 <dt>
-NM_VPN_PLUGIN_IP4_CONFIG_MTU, macro in nm-vpn-dbus-interface
+<a href="/usr/share/gtk-doc/html/libnm-util/libnm-util-NetworkManagerVPN.html#NM-VPN-PLUGIN-IP4-CONFIG-MTU:CAPS">NM_VPN_PLUGIN_IP4_CONFIG_MTU</a>, macro in nm-vpn-dbus-interface
 </dt>
 <dd></dd>
 <dt>
-NM_VPN_PLUGIN_IP4_CONFIG_NBNS, macro in nm-vpn-dbus-interface
+<a href="/usr/share/gtk-doc/html/libnm-util/libnm-util-NetworkManagerVPN.html#NM-VPN-PLUGIN-IP4-CONFIG-NBNS:CAPS">NM_VPN_PLUGIN_IP4_CONFIG_NBNS</a>, macro in nm-vpn-dbus-interface
 </dt>
 <dd></dd>
 <dt>
-NM_VPN_PLUGIN_IP4_CONFIG_NEVER_DEFAULT, macro in nm-vpn-dbus-interface
+<a href="/usr/share/gtk-doc/html/libnm-util/libnm-util-NetworkManagerVPN.html#NM-VPN-PLUGIN-IP4-CONFIG-NEVER-DEFAULT:CAPS">NM_VPN_PLUGIN_IP4_CONFIG_NEVER_DEFAULT</a>, macro in nm-vpn-dbus-interface
 </dt>
 <dd></dd>
 <dt>
-NM_VPN_PLUGIN_IP4_CONFIG_PREFIX, macro in nm-vpn-dbus-interface
+<a href="/usr/share/gtk-doc/html/libnm-util/libnm-util-NetworkManagerVPN.html#NM-VPN-PLUGIN-IP4-CONFIG-PREFIX:CAPS">NM_VPN_PLUGIN_IP4_CONFIG_PREFIX</a>, macro in nm-vpn-dbus-interface
 </dt>
 <dd></dd>
 <dt>
@@ -11815,47 +11815,47 @@ NM_VPN_PLUGIN_IP4_CONFIG_PRESERVE_ROUTES, macro in nm-vpn-dbus-interface
 </dt>
 <dd></dd>
 <dt>
-NM_VPN_PLUGIN_IP4_CONFIG_PTP, macro in nm-vpn-dbus-interface
+<a href="/usr/share/gtk-doc/html/libnm-util/libnm-util-NetworkManagerVPN.html#NM-VPN-PLUGIN-IP4-CONFIG-PTP:CAPS">NM_VPN_PLUGIN_IP4_CONFIG_PTP</a>, macro in nm-vpn-dbus-interface
 </dt>
 <dd></dd>
 <dt>
-NM_VPN_PLUGIN_IP4_CONFIG_ROUTES, macro in nm-vpn-dbus-interface
+<a href="/usr/share/gtk-doc/html/libnm-util/libnm-util-NetworkManagerVPN.html#NM-VPN-PLUGIN-IP4-CONFIG-ROUTES:CAPS">NM_VPN_PLUGIN_IP4_CONFIG_ROUTES</a>, macro in nm-vpn-dbus-interface
 </dt>
 <dd></dd>
 <dt>
-NM_VPN_PLUGIN_IP4_CONFIG_TUNDEV, macro in nm-vpn-dbus-interface
+<a href="/usr/share/gtk-doc/html/libnm-util/libnm-util-NetworkManagerVPN.html#NM-VPN-PLUGIN-IP4-CONFIG-TUNDEV:CAPS">NM_VPN_PLUGIN_IP4_CONFIG_TUNDEV</a>, macro in nm-vpn-dbus-interface
 </dt>
 <dd></dd>
 <dt>
-NM_VPN_PLUGIN_IP6_CONFIG_ADDRESS, macro in nm-vpn-dbus-interface
+<a href="/usr/share/gtk-doc/html/libnm-util/libnm-util-NetworkManagerVPN.html#NM-VPN-PLUGIN-IP6-CONFIG-ADDRESS:CAPS">NM_VPN_PLUGIN_IP6_CONFIG_ADDRESS</a>, macro in nm-vpn-dbus-interface
 </dt>
 <dd></dd>
 <dt>
-NM_VPN_PLUGIN_IP6_CONFIG_DNS, macro in nm-vpn-dbus-interface
+<a href="/usr/share/gtk-doc/html/libnm-util/libnm-util-NetworkManagerVPN.html#NM-VPN-PLUGIN-IP6-CONFIG-DNS:CAPS">NM_VPN_PLUGIN_IP6_CONFIG_DNS</a>, macro in nm-vpn-dbus-interface
 </dt>
 <dd></dd>
 <dt>
-NM_VPN_PLUGIN_IP6_CONFIG_DOMAIN, macro in nm-vpn-dbus-interface
+<a href="/usr/share/gtk-doc/html/libnm-util/libnm-util-NetworkManagerVPN.html#NM-VPN-PLUGIN-IP6-CONFIG-DOMAIN:CAPS">NM_VPN_PLUGIN_IP6_CONFIG_DOMAIN</a>, macro in nm-vpn-dbus-interface
 </dt>
 <dd></dd>
 <dt>
-NM_VPN_PLUGIN_IP6_CONFIG_DOMAINS, macro in nm-vpn-dbus-interface
+<a href="/usr/share/gtk-doc/html/libnm-util/libnm-util-NetworkManagerVPN.html#NM-VPN-PLUGIN-IP6-CONFIG-DOMAINS:CAPS">NM_VPN_PLUGIN_IP6_CONFIG_DOMAINS</a>, macro in nm-vpn-dbus-interface
 </dt>
 <dd></dd>
 <dt>
-NM_VPN_PLUGIN_IP6_CONFIG_INT_GATEWAY, macro in nm-vpn-dbus-interface
+<a href="/usr/share/gtk-doc/html/libnm-util/libnm-util-NetworkManagerVPN.html#NM-VPN-PLUGIN-IP6-CONFIG-INT-GATEWAY:CAPS">NM_VPN_PLUGIN_IP6_CONFIG_INT_GATEWAY</a>, macro in nm-vpn-dbus-interface
 </dt>
 <dd></dd>
 <dt>
-NM_VPN_PLUGIN_IP6_CONFIG_MSS, macro in nm-vpn-dbus-interface
+<a href="/usr/share/gtk-doc/html/libnm-util/libnm-util-NetworkManagerVPN.html#NM-VPN-PLUGIN-IP6-CONFIG-MSS:CAPS">NM_VPN_PLUGIN_IP6_CONFIG_MSS</a>, macro in nm-vpn-dbus-interface
 </dt>
 <dd></dd>
 <dt>
-NM_VPN_PLUGIN_IP6_CONFIG_NEVER_DEFAULT, macro in nm-vpn-dbus-interface
+<a href="/usr/share/gtk-doc/html/libnm-util/libnm-util-NetworkManagerVPN.html#NM-VPN-PLUGIN-IP6-CONFIG-NEVER-DEFAULT:CAPS">NM_VPN_PLUGIN_IP6_CONFIG_NEVER_DEFAULT</a>, macro in nm-vpn-dbus-interface
 </dt>
 <dd></dd>
 <dt>
-NM_VPN_PLUGIN_IP6_CONFIG_PREFIX, macro in nm-vpn-dbus-interface
+<a href="/usr/share/gtk-doc/html/libnm-util/libnm-util-NetworkManagerVPN.html#NM-VPN-PLUGIN-IP6-CONFIG-PREFIX:CAPS">NM_VPN_PLUGIN_IP6_CONFIG_PREFIX</a>, macro in nm-vpn-dbus-interface
 </dt>
 <dd></dd>
 <dt>
@@ -11863,11 +11863,11 @@ NM_VPN_PLUGIN_IP6_CONFIG_PRESERVE_ROUTES, macro in nm-vpn-dbus-interface
 </dt>
 <dd></dd>
 <dt>
-NM_VPN_PLUGIN_IP6_CONFIG_PTP, macro in nm-vpn-dbus-interface
+<a href="/usr/share/gtk-doc/html/libnm-util/libnm-util-NetworkManagerVPN.html#NM-VPN-PLUGIN-IP6-CONFIG-PTP:CAPS">NM_VPN_PLUGIN_IP6_CONFIG_PTP</a>, macro in nm-vpn-dbus-interface
 </dt>
 <dd></dd>
 <dt>
-NM_VPN_PLUGIN_IP6_CONFIG_ROUTES, macro in nm-vpn-dbus-interface
+<a href="/usr/share/gtk-doc/html/libnm-util/libnm-util-NetworkManagerVPN.html#NM-VPN-PLUGIN-IP6-CONFIG-ROUTES:CAPS">NM_VPN_PLUGIN_IP6_CONFIG_ROUTES</a>, macro in nm-vpn-dbus-interface
 </dt>
 <dd></dd>
 <dt>
@@ -11949,6 +11949,6 @@ NM_VPN_PLUGIN_IP6_CONFIG_ROUTES, macro in nm-vpn-dbus-interface
 <dd></dd>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm/html/ch02.html b/docs/libnm/html/ch02.html
index 5e3bfc04..cb969f84 100644
--- a/docs/libnm/html/ch02.html
+++ b/docs/libnm/html/ch02.html
@@ -8,7 +8,7 @@
 <link rel="up" href="index.html" title="libnm Reference Manual">
 <link rel="prev" href="usage.html" title="Using libnm">
 <link rel="next" href="NMClient.html" title="NMClient">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -41,6 +41,6 @@
 </dl></div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm/html/ch03.html b/docs/libnm/html/ch03.html
index ac1c33f2..4e2b599e 100644
--- a/docs/libnm/html/ch03.html
+++ b/docs/libnm/html/ch03.html
@@ -8,7 +8,7 @@
 <link rel="up" href="index.html" title="libnm Reference Manual">
 <link rel="prev" href="libnm-nm-dbus-interface.html" title="nm-dbus-interface">
 <link rel="next" href="NMConnection.html" title="NMConnection">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -177,6 +177,6 @@ use WEP, LEAP, WPA or WPA2/RSN security</span>
 </dl></div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm/html/ch04.html b/docs/libnm/html/ch04.html
index 395595b2..5553f2c6 100644
--- a/docs/libnm/html/ch04.html
+++ b/docs/libnm/html/ch04.html
@@ -8,7 +8,7 @@
 <link rel="up" href="index.html" title="libnm Reference Manual">
 <link rel="prev" href="NMSettingWpan.html" title="NMSettingWpan">
 <link rel="next" href="NMDevice.html" title="NMDevice">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -128,6 +128,6 @@
 </dl></div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm/html/ch05.html b/docs/libnm/html/ch05.html
index 1d7c88f4..7899678a 100644
--- a/docs/libnm/html/ch05.html
+++ b/docs/libnm/html/ch05.html
@@ -8,7 +8,7 @@
 <link rel="up" href="index.html" title="libnm Reference Manual">
 <link rel="prev" href="NMCheckpoint.html" title="NMCheckpoint">
 <link rel="next" href="libnm-nm-utils.html" title="nm-utils">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -32,6 +32,6 @@
 </dl></div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm/html/ch06.html b/docs/libnm/html/ch06.html
index 8ebc4add..a36e867d 100644
--- a/docs/libnm/html/ch06.html
+++ b/docs/libnm/html/ch06.html
@@ -8,7 +8,7 @@
 <link rel="up" href="index.html" title="libnm Reference Manual">
 <link rel="prev" href="libnm-nm-version.html" title="nm-version">
 <link rel="next" href="libnm-nm-vpn-service-plugin.html" title="nm-vpn-service-plugin">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -41,6 +41,6 @@
 </dl></div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm/html/index.html b/docs/libnm/html/index.html
index f76a50a5..9d83dca8 100644
--- a/docs/libnm/html/index.html
+++ b/docs/libnm/html/index.html
@@ -6,7 +6,7 @@
 <meta name="generator" content="DocBook XSL Stylesheets Vsnapshot">
 <link rel="home" href="index.html" title="libnm Reference Manual">
 <link rel="next" href="ref-overview.html" title="Overview">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -15,7 +15,7 @@
 <div>
 <div><table class="navigation" id="top" width="100%" cellpadding="2" cellspacing="0"><tr><th valign="middle"><p class="title">libnm Reference Manual</p></th></tr></table></div>
 <div><p class="releaseinfo">
-      for libnm 1.14.4
+      for libnm 1.14.6
 
       The latest version of this documentation can be found on-line at
       <a class="ulink" href="https://developer.gnome.org/libnm/stable/" target="_top">https://developer.gnome.org/libnm/stable/</a>.
@@ -362,6 +362,6 @@ use WEP, LEAP, WPA or WPA2/RSN security</span>
 </dl></div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm/html/libnm-nm-dbus-interface.html b/docs/libnm/html/libnm-nm-dbus-interface.html
index 2bab8834..b845c764 100644
--- a/docs/libnm/html/libnm-nm-dbus-interface.html
+++ b/docs/libnm/html/libnm-nm-dbus-interface.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch02.html" title="Client Object API Reference">
 <link rel="prev" href="libnm-nm-errors.html" title="nm-errors">
 <link rel="next" href="ch03.html" title="Connection and Setting API Reference">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -3338,6 +3338,6 @@ VPN plugin authentication dialogs.</p>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm/html/libnm-nm-device-6lowpan.html b/docs/libnm/html/libnm-nm-device-6lowpan.html
index 2839dd8c..35c52a09 100644
--- a/docs/libnm/html/libnm-nm-device-6lowpan.html
+++ b/docs/libnm/html/libnm-nm-device-6lowpan.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch04.html" title="Device and Runtime Configuration API Reference">
 <link rel="prev" href="NMDevice.html" title="NMDevice">
 <link rel="next" href="NMDeviceAdsl.html" title="NMDeviceAdsl">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -152,6 +152,6 @@ device, and must not be modified.</p>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm/html/libnm-nm-device-wpan.html b/docs/libnm/html/libnm-nm-device-wpan.html
index 824848c6..650ef4ec 100644
--- a/docs/libnm/html/libnm-nm-device-wpan.html
+++ b/docs/libnm/html/libnm-nm-device-wpan.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch04.html" title="Device and Runtime Configuration API Reference">
 <link rel="prev" href="NMDeviceWireGuard.html" title="NMDeviceWireGuard">
 <link rel="next" href="NMActiveConnection.html" title="NMActiveConnection">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -102,6 +102,6 @@ device, and must not be modified.</p>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm/html/libnm-nm-errors.html b/docs/libnm/html/libnm-nm-errors.html
index 0e956b21..9e2f2d03 100644
--- a/docs/libnm/html/libnm-nm-errors.html
+++ b/docs/libnm/html/libnm-nm-errors.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch02.html" title="Client Object API Reference">
 <link rel="prev" href="NMObject.html" title="NMObject">
 <link rel="next" href="libnm-nm-dbus-interface.html" title="nm-dbus-interface">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -254,7 +254,7 @@ nm_vpn_plugin_error_quark (<em class="parameter"><code><span class="type">void</
 <a name="NMAgentManagerError"></a><h3>enum NMAgentManagerError</h3>
 <p>Errors returned from the secret-agent manager.</p>
 <p>These errors may be returned from operations that could cause secrets to be
-requested (such as <code class="function">nm_client_activate_connection()</code>), and correspond to D-Bus
+requested (such as <a href="/usr/share/gtk-doc/html/libnm-glib/NMClient.html#nm-client-activate-connection"><code class="function">nm_client_activate_connection()</code></a>), and correspond to D-Bus
 errors in the "org.freedesktop.NetworkManager.AgentManager" namespace.</p>
 <div class="refsect3">
 <a name="NMAgentManagerError.members"></a><h4>Members</h4>
@@ -730,7 +730,7 @@ errors in that namespace.</p>
 when they encounter problems retrieving secrets on behalf of NM. They
 correspond to errors in the "org.freedesktop.NetworkManager.SecretManager"
 namespace.</p>
-<p>Client APIs such as <code class="function">nm_client_activate_connection()</code> will not see these error
+<p>Client APIs such as <a href="/usr/share/gtk-doc/html/libnm-glib/NMClient.html#nm-client-activate-connection"><code class="function">nm_client_activate_connection()</code></a> will not see these error
 codes; instead, the secret agent manager will translate them to the
 corresponding <a class="link" href="libnm-nm-errors.html#NMAgentManagerError" title="enum NMAgentManagerError"><span class="type">NMAgentManagerError</span></a> codes.</p>
 <div class="refsect3">
@@ -991,6 +991,6 @@ to errors in the "org.freedesktop.NetworkManager.VPN.Error" namespace.</p>
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm/html/libnm-nm-utils.html b/docs/libnm/html/libnm-nm-utils.html
index e07cae87..70a83944 100644
--- a/docs/libnm/html/libnm-nm-utils.html
+++ b/docs/libnm/html/libnm-nm-utils.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch05.html" title="Utility API Reference">
 <link rel="prev" href="ch05.html" title="Utility API Reference">
 <link rel="next" href="libnm-nm-version.html" title="nm-version">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -3472,6 +3472,6 @@ for both <a class="link" href="libnm-nm-utils.html#nm-utils-inet4-ntop" title="n
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm/html/libnm-nm-version.html b/docs/libnm/html/libnm-nm-version.html
index 5e06c5d7..bfeff4b5 100644
--- a/docs/libnm/html/libnm-nm-version.html
+++ b/docs/libnm/html/libnm-nm-version.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch05.html" title="Utility API Reference">
 <link rel="prev" href="libnm-nm-utils.html" title="nm-utils">
 <link rel="next" href="ch06.html" title="VPN Plugin API Reference">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -367,6 +367,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm/html/libnm-nm-vpn-plugin-info.html b/docs/libnm/html/libnm-nm-vpn-plugin-info.html
index 22d65ff5..fe4f1a6c 100644
--- a/docs/libnm/html/libnm-nm-vpn-plugin-info.html
+++ b/docs/libnm/html/libnm-nm-vpn-plugin-info.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch06.html" title="VPN Plugin API Reference">
 <link rel="prev" href="libnm-nm-vpn-service-plugin.html" title="nm-vpn-service-plugin">
 <link rel="next" href="NMVpnEditor.html" title="NMVpnEditor">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -126,6 +126,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm/html/libnm-nm-vpn-plugin-old.html b/docs/libnm/html/libnm-nm-vpn-plugin-old.html
index f0dc7b88..bf9d4584 100644
--- a/docs/libnm/html/libnm-nm-vpn-plugin-old.html
+++ b/docs/libnm/html/libnm-nm-vpn-plugin-old.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch06.html" title="VPN Plugin API Reference">
 <link rel="prev" href="NMVpnEditorPlugin.html" title="NMVpnEditorPlugin">
 <link rel="next" href="object-tree.html" title="Object Hierarchy">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -73,6 +73,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm/html/libnm-nm-vpn-service-plugin.html b/docs/libnm/html/libnm-nm-vpn-service-plugin.html
index 836d8075..b427a6b8 100644
--- a/docs/libnm/html/libnm-nm-vpn-service-plugin.html
+++ b/docs/libnm/html/libnm-nm-vpn-service-plugin.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ch06.html" title="VPN Plugin API Reference">
 <link rel="prev" href="ch06.html" title="VPN Plugin API Reference">
 <link rel="next" href="libnm-nm-vpn-plugin-info.html" title="nm-vpn-plugin-info">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -83,6 +83,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm/html/object-tree.html b/docs/libnm/html/object-tree.html
index d863f8c7..d5d0d0c7 100644
--- a/docs/libnm/html/object-tree.html
+++ b/docs/libnm/html/object-tree.html
@@ -8,7 +8,7 @@
 <link rel="up" href="index.html" title="libnm Reference Manual">
 <link rel="prev" href="libnm-nm-vpn-plugin-old.html" title="nm-vpn-plugin-old">
 <link rel="next" href="api-index-full.html" title="API Index">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -204,6 +204,6 @@
 </pre>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm/html/ref-overview.html b/docs/libnm/html/ref-overview.html
index 0c083992..5bb7c4e5 100644
--- a/docs/libnm/html/ref-overview.html
+++ b/docs/libnm/html/ref-overview.html
@@ -8,7 +8,7 @@
 <link rel="up" href="index.html" title="libnm Reference Manual">
 <link rel="prev" href="index.html" title="libnm Reference Manual">
 <link rel="next" href="usage.html" title="Using libnm">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -62,6 +62,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm/html/usage.html b/docs/libnm/html/usage.html
index 19b42b6f..452b8d12 100644
--- a/docs/libnm/html/usage.html
+++ b/docs/libnm/html/usage.html
@@ -8,7 +8,7 @@
 <link rel="up" href="ref-overview.html" title="Overview">
 <link rel="prev" href="ref-overview.html" title="Overview">
 <link rel="next" href="ch02.html" title="Client Object API Reference">
-<meta name="generator" content="GTK-Doc V1.29.1 (XML mode)">
+<meta name="generator" content="GTK-Doc V1.29 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -96,7 +96,7 @@
         </p>
 <pre class="screen"><code class="prompt">$ </code><strong class="userinput"><code>cc $(pkg-config --libs --cflags libnm) -o hello-nm hello-nm.c</code></strong>
   <code class="prompt">$ </code><strong class="userinput"><code>./hello-nm</code></strong>
-  NetworkManager version: 1.14.4
+  NetworkManager version: 1.14.6
 
   <code class="prompt">$ </code></pre>
 <p>
@@ -161,6 +161,6 @@
 </div>
 </div>
 <div class="footer">
-<hr>Generated by GTK-Doc V1.29.1</div>
+<hr>Generated by GTK-Doc V1.29</div>
 </body>
 </html>
\ No newline at end of file
diff --git a/docs/libnm/libnm-docs.xml b/docs/libnm/libnm-docs.xml
index a0f87bfb..8ff9676f 100644
--- a/docs/libnm/libnm-docs.xml
+++ b/docs/libnm/libnm-docs.xml
@@ -294,13 +294,6 @@ print ("NetworkManager version " + client.get_version())]]></programlisting></in
     <xi:include href="xml/nm-vpn-plugin-old.xml"/>
   </chapter>
 
-  <!--
-    These don't contain any useful documentaiton. Keep them here,
-    so that tools/check-docs.sh knows that we did omit them intentionally.
-    <xi:include href="xml/nm-core-enum-types.xml"/>
-    <xi:include href="xml/nm-enum-types.xml"/>
-  -->
-
   <chapter id="object-tree">
     <title>Object Hierarchy</title>
      <xi:include href="xml/tree_index.sgml"/>
diff --git a/docs/libnm/version.xml b/docs/libnm/version.xml
index 4e00d0ac..c6ba3bc1 100644
--- a/docs/libnm/version.xml
+++ b/docs/libnm/version.xml
@@ -1 +1 @@
-1.14.4
+1.14.6
diff --git a/docs/meson.build b/docs/meson.build
index 1fb21fb4..92e6d6e9 100644
--- a/docs/meson.build
+++ b/docs/meson.build
@@ -14,5 +14,5 @@ endif
 test(
   'check-docs',
   find_program(join_paths(meson.source_root(), 'tools', 'check-docs.sh')),
-  args: [meson.source_root()]
+  args: [meson.source_root(), meson.build_root()]
 )
diff --git a/examples/nm-conf.d/31-mac-addr-change.conf b/examples/nm-conf.d/31-mac-addr-change.conf
index 1ae2e0dc..554b698f 100644
--- a/examples/nm-conf.d/31-mac-addr-change.conf
+++ b/examples/nm-conf.d/31-mac-addr-change.conf
@@ -4,8 +4,13 @@
 # See man NetworkManager.conf
 #
 # https://bugzilla.gnome.org/show_bug.cgi?id=777523
-[device-mac-addr-change-wifi]
+[device-31-mac-addr-change]
 match-device=driver:rtl8723bs,driver:rtl8189es,driver:r8188eu,driver:eagle_sdio
 wifi.scan-rand-mac-address=no
+
+[connection-31-mac-addr-change]
+match-device=driver:rtl8723bs,driver:rtl8189es,driver:r8188eu,driver:eagle_sdio
+# these are per-profile properties. Here we overwrite the default
+# value, but explicitly configuring it in the profile takes precedence.
 wifi.cloned-mac-address=preserve
 ethernet.cloned-mac-address=preserve
diff --git a/libnm-core/nm-connection.c b/libnm-core/nm-connection.c
index 172f9c99..5f406cc6 100644
--- a/libnm-core/nm-connection.c
+++ b/libnm-core/nm-connection.c
@@ -1125,6 +1125,29 @@ _normalize_wireless_mac_address_randomization (NMConnection *self, GHashTable *p
 }
 
 static gboolean
+_normalize_macsec (NMConnection *self, GHashTable *parameters)
+{
+	NMSettingMacsec *s_macsec = nm_connection_get_setting_macsec (self);
+	gboolean changed = FALSE;
+
+	if (!s_macsec)
+		return FALSE;
+
+	if (nm_setting_macsec_get_mode (s_macsec) != NM_SETTING_MACSEC_MODE_PSK) {
+		if (nm_setting_macsec_get_mka_cak (s_macsec)) {
+			g_object_set (s_macsec, NM_SETTING_MACSEC_MKA_CAK, NULL, NULL);
+			changed = TRUE;
+		}
+		if (nm_setting_macsec_get_mka_ckn (s_macsec)) {
+			g_object_set (s_macsec, NM_SETTING_MACSEC_MKA_CKN, NULL, NULL);
+			changed = TRUE;
+		}
+	}
+
+	return changed;
+}
+
+static gboolean
 _normalize_team_config (NMConnection *self, GHashTable *parameters)
 {
 	NMSettingTeam *s_team = nm_connection_get_setting_team (self);
@@ -1564,6 +1587,7 @@ nm_connection_normalize (NMConnection *connection,
 	was_modified |= _normalize_bond_mode (connection, parameters);
 	was_modified |= _normalize_bond_options (connection, parameters);
 	was_modified |= _normalize_wireless_mac_address_randomization (connection, parameters);
+	was_modified |= _normalize_macsec (connection, parameters);
 	was_modified |= _normalize_team_config (connection, parameters);
 	was_modified |= _normalize_team_port_config (connection, parameters);
 	was_modified |= _normalize_bluetooth_type (connection, parameters);
diff --git a/libnm-core/nm-connection.h b/libnm-core/nm-connection.h
index 802f68ba..b6e00977 100644
--- a/libnm-core/nm-connection.h
+++ b/libnm-core/nm-connection.h
@@ -121,6 +121,8 @@ typedef enum { /*< flags >*/
 	NM_CONNECTION_SERIALIZE_ALL = 0x00000000,
 	NM_CONNECTION_SERIALIZE_NO_SECRETS = 0x00000001,
 	NM_CONNECTION_SERIALIZE_ONLY_SECRETS = 0x00000002,
+
+	/* 0x80000000 is used for a private flag */
 } NMConnectionSerializationFlags;
 
 GVariant     *nm_connection_to_dbus       (NMConnection *connection,
diff --git a/libnm-core/nm-core-internal.h b/libnm-core/nm-core-internal.h
index f0d4e40f..9d2d0f2c 100644
--- a/libnm-core/nm-core-internal.h
+++ b/libnm-core/nm-core-internal.h
@@ -101,6 +101,11 @@
 #define NM_BR_MIN_AGEING_TIME   0
 #define NM_BR_MAX_AGEING_TIME   1000000
 
+#define NM_BR_PORT_MAX_PRIORITY 63
+#define NM_BR_PORT_DEF_PRIORITY 32
+
+#define NM_BR_PORT_MAX_PATH_COST 65535
+
 /* NM_SETTING_COMPARE_FLAG_INFERRABLE: check whether a device-generated
  * connection can be replaced by a already-defined connection. This flag only
  * takes into account properties marked with the %NM_SETTING_PARAM_INFERRABLE
@@ -174,6 +179,13 @@ NMSettingPriority _nm_setting_get_setting_priority (NMSetting *setting);
 
 gboolean _nm_setting_get_property (NMSetting *setting, const char *name, GValue *value);
 
+/* NM_CONNECTION_SERIALIZE_NO_SYNTH: This flag is passed to _nm_setting_to_dbus()
+ * by nm_setting_to_string() to let it know that it shouldn't serialize the
+ * synthetic properties. It wouldn't be able to do so, since the full connection
+ * is not available, only the setting alone.
+ */
+#define NM_CONNECTION_SERIALIZE_NO_SYNTH ((NMConnectionSerializationFlags) 0x80000000)
+
 /*****************************************************************************/
 
 GHashTable *_nm_setting_gendata_hash (NMSetting *setting,
@@ -212,15 +224,26 @@ guint nm_setting_ethtool_init_features (NMSettingEthtool *setting,
 guint8 *_nm_utils_hwaddr_aton (const char *asc, gpointer buffer, gsize buffer_length, gsize *out_length);
 const char *nm_utils_hwaddr_ntoa_buf (gconstpointer addr, gsize addr_len, gboolean upper_case, char *buf, gsize buf_len);
 
-char *_nm_utils_bin2str (gconstpointer addr, gsize length, gboolean upper_case);
-void _nm_utils_bin2str_full (gconstpointer addr, gsize length, const char delimiter, gboolean upper_case, char *out);
+char *_nm_utils_bin2hexstr_full (gconstpointer addr, gsize length, const char delimiter, gboolean upper_case, char *out);
+
+guint8 *_nm_utils_hexstr2bin_full (const char *hexstr,
+                                   gboolean allow_0x_prefix,
+                                   gboolean delimiter_required,
+                                   const char *delimiter_candidates,
+                                   gsize required_len,
+                                   guint8 *buffer,
+                                   gsize buffer_len,
+                                   gsize *out_len);
+
+#define _nm_utils_hexstr2bin_buf(hexstr, allow_0x_prefix, delimiter_required, delimiter_candidates, buffer) \
+    _nm_utils_hexstr2bin_full ((hexstr), (allow_0x_prefix), (delimiter_required), (delimiter_candidates), G_N_ELEMENTS (buffer), (buffer), G_N_ELEMENTS (buffer), NULL)
 
-guint8 *_nm_utils_str2bin_full (const char *asc,
-                                gboolean delimiter_required,
-                                const char *delimiter_candidates,
-                                guint8 *buffer,
-                                gsize buffer_length,
-                                gsize *out_len);
+guint8 *_nm_utils_hexstr2bin_alloc (const char *hexstr,
+                                    gboolean allow_0x_prefix,
+                                    gboolean delimiter_required,
+                                    const char *delimiter_candidates,
+                                    gsize required_len,
+                                    gsize *out_len);
 
 GSList *    _nm_utils_hash_values_to_slist (GHashTable *hash);
 
@@ -234,7 +257,7 @@ gboolean _nm_ip_route_attribute_validate_all (const NMIPRoute *route);
 const char **_nm_ip_route_get_attribute_names (const NMIPRoute *route, gboolean sorted, guint *out_length);
 GHashTable *_nm_ip_route_get_attributes_direct (NMIPRoute *route);
 
-NMSriovVF *_nm_utils_sriov_vf_from_strparts (const char *index, const char *detail, GError **error);
+NMSriovVF *_nm_utils_sriov_vf_from_strparts (const char *index, const char *detail, gboolean ignore_unknown, GError **error);
 gboolean _nm_sriov_vf_attribute_validate_all (const NMSriovVF *vf, GError **error);
 
 static inline void
@@ -272,8 +295,25 @@ gboolean _nm_utils_check_module_file (const char *name,
                                       gpointer user_data,
                                       GError **error);
 
+/*****************************************************************************/
+
+typedef struct _NMUuid {
+	guchar uuid[16];
+} NMUuid;
+
+NMUuid *_nm_utils_uuid_parse (const char *str,
+                              NMUuid *uuid);
+char *_nm_utils_uuid_unparse (const NMUuid *uuid,
+                              char *out_str /*[37]*/);
+NMUuid *_nm_utils_uuid_generate_random (NMUuid *out_uuid);
+
+gboolean nm_utils_uuid_is_null (const NMUuid *uuid);
+
 #define NM_UTILS_UUID_TYPE_LEGACY            0
-#define NM_UTILS_UUID_TYPE_VARIANT3          1
+#define NM_UTILS_UUID_TYPE_VERSION3          3
+#define NM_UTILS_UUID_TYPE_VERSION5          5
+
+NMUuid *nm_utils_uuid_generate_from_string_bin (NMUuid *uuid, const char *s, gssize slen, int uuid_type, gpointer type_args);
 
 char *nm_utils_uuid_generate_from_string (const char *s, gssize slen, int uuid_type, gpointer type_args);
 
diff --git a/libnm-core/nm-crypto.c b/libnm-core/nm-crypto.c
index dc8f1c15..1af2ea28 100644
--- a/libnm-core/nm-crypto.c
+++ b/libnm-core/nm-crypto.c
@@ -879,13 +879,10 @@ nm_crypto_md5_hash (const guint8 *salt,
                     gsize buflen)
 {
 	nm_auto_free_checksum GChecksum *ctx = NULL;
-#define MD5_DIGEST_LEN 16
-	nm_auto_clear_static_secret_ptr const NMSecretPtr digest = NM_SECRET_PTR_STATIC (MD5_DIGEST_LEN);
+	nm_auto_clear_static_secret_ptr const NMSecretPtr digest = NM_SECRET_PTR_STATIC (NM_UTILS_CHECKSUM_LENGTH_MD5);
 	gsize bufidx = 0;
 	int i;
 
-	nm_assert (g_checksum_type_get_length (G_CHECKSUM_MD5) == MD5_DIGEST_LEN);
-
 	g_return_if_fail (password_len == 0 || password);
 	g_return_if_fail (buffer);
 	g_return_if_fail (buflen > 0);
@@ -894,25 +891,21 @@ nm_crypto_md5_hash (const guint8 *salt,
 	ctx = g_checksum_new (G_CHECKSUM_MD5);
 
 	for (;;) {
-		gsize digest_len;
-
 		if (password_len > 0)
 			g_checksum_update (ctx, (const guchar *) password, password_len);
 		if (salt_len > 0)
 			g_checksum_update (ctx, (const guchar *) salt, salt_len);
 
-		digest_len = MD5_DIGEST_LEN;
-		g_checksum_get_digest (ctx, digest.bin, &digest_len);
-		nm_assert (digest_len == MD5_DIGEST_LEN);
+		nm_utils_checksum_get_digest_len (ctx, digest.bin, NM_UTILS_CHECKSUM_LENGTH_MD5);
 
-		for (i = 0; i < MD5_DIGEST_LEN; i++) {
+		for (i = 0; i < NM_UTILS_CHECKSUM_LENGTH_MD5; i++) {
 			if (bufidx >= buflen)
 				return;
 			buffer[bufidx++] = digest.bin[i];
 		}
 
 		g_checksum_reset (ctx);
-		g_checksum_update (ctx, digest.ptr, MD5_DIGEST_LEN);
+		g_checksum_update (ctx, digest.ptr, NM_UTILS_CHECKSUM_LENGTH_MD5);
 	}
 }
 
diff --git a/libnm-core/nm-keyfile.c b/libnm-core/nm-keyfile.c
index e4ed1899..5aa8a4ac 100644
--- a/libnm-core/nm-keyfile.c
+++ b/libnm-core/nm-keyfile.c
@@ -152,7 +152,7 @@ sriov_vfs_parser (KeyfileReaderInfo *info, NMSetting *setting, const char *key)
 		                                         keys[i],
 		                                         NULL);
 
-		vf = _nm_utils_sriov_vf_from_strparts (rest, value, NULL);
+		vf = _nm_utils_sriov_vf_from_strparts (rest, value, TRUE, NULL);
 		if (vf)
 			g_ptr_array_add (vfs, vf);
 	}
diff --git a/libnm-core/nm-setting-bridge-port.c b/libnm-core/nm-setting-bridge-port.c
index 4104f8c5..bc9c3e6f 100644
--- a/libnm-core/nm-setting-bridge-port.c
+++ b/libnm-core/nm-setting-bridge-port.c
@@ -104,12 +104,6 @@ nm_setting_bridge_port_get_hairpin_mode (NMSettingBridgePort *setting)
 
 /*****************************************************************************/
 
-#define BR_MAX_PORT_PRIORITY 63
-#define BR_DEF_PRIORITY      32
-
-#define BR_MIN_PATH_COST     1
-#define BR_MAX_PATH_COST     65535
-
 static gboolean
 verify (NMSetting *setting, NMConnection *connection, GError **error)
 {
@@ -238,7 +232,7 @@ nm_setting_bridge_port_class_init (NMSettingBridgePortClass *klass)
 	g_object_class_install_property
 		(object_class, PROP_PRIORITY,
 		 g_param_spec_uint (NM_SETTING_BRIDGE_PORT_PRIORITY, "", "",
-		                    0, BR_MAX_PORT_PRIORITY, BR_DEF_PRIORITY,
+		                    0, NM_BR_PORT_MAX_PRIORITY, NM_BR_PORT_DEF_PRIORITY,
 		                    G_PARAM_READWRITE |
 		                    G_PARAM_CONSTRUCT |
 		                    NM_SETTING_PARAM_INFERRABLE |
@@ -261,10 +255,9 @@ nm_setting_bridge_port_class_init (NMSettingBridgePortClass *klass)
 	g_object_class_install_property
 		(object_class, PROP_PATH_COST,
 		 g_param_spec_uint (NM_SETTING_BRIDGE_PORT_PATH_COST, "", "",
-		                    0, BR_MAX_PATH_COST, 100,
+		                    0, NM_BR_PORT_MAX_PATH_COST, 100,
 		                    G_PARAM_READWRITE |
 		                    G_PARAM_CONSTRUCT |
-		                    NM_SETTING_PARAM_INFERRABLE |
 		                    G_PARAM_STATIC_STRINGS));
 
 	/**
diff --git a/libnm-core/nm-setting-connection.c b/libnm-core/nm-setting-connection.c
index 50240bc9..44021b9c 100644
--- a/libnm-core/nm-setting-connection.c
+++ b/libnm-core/nm-setting-connection.c
@@ -1626,11 +1626,11 @@ nm_setting_connection_class_init (NMSettingConnectionClass *klass)
 	 * name is included, so that different interfaces yield different addresses.
 	 *
 	 * The '$' character is treated special to perform dynamic substitutions
-	 * at runtime. Currently supported are "${CONNECTION}", "${DEVICE}",
+	 * at runtime. Currently supported are "${CONNECTION}", "${DEVICE}", "${MAC}",
 	 * "${BOOT}", "${RANDOM}".
 	 * These effectively create unique IDs per-connection, per-device, per-boot,
 	 * or every time. Note that "${DEVICE}" corresponds the the interface name of the
-	 * device.
+	 * device and "${MAC}" is the permanent MAC address of the device.
 	 * Any unrecognized patterns following '$' are treated verbatim, however
 	 * are reserved for future use. You are thus advised to avoid '$' or
 	 * escape it as "$$".
diff --git a/libnm-core/nm-setting-ip4-config.c b/libnm-core/nm-setting-ip4-config.c
index 19f1cc8d..36765484 100644
--- a/libnm-core/nm-setting-ip4-config.c
+++ b/libnm-core/nm-setting-ip4-config.c
@@ -721,11 +721,16 @@ nm_setting_ip4_config_class_init (NMSettingIP4ConfigClass *klass)
 	 * with type ethernet (01). Currently, these options only work for ethernet
 	 * type of links.
 	 *
+	 * The special value "duid" generates a RFC4361-compliant client identifier based
+	 * on a hash of the interface name as IAID and /etc/machine-id.
+	 *
 	 * The special value "stable" is supported to generate a type 0 client identifier based
-	 * on the stable-id (see connection.stable-id) and a per-host key.
+	 * on the stable-id (see connection.stable-id) and a per-host key. If you set the
+	 * stable-id, you may want to include the "${DEVICE}" or "${MAC}" specifier to get a
+	 * per-device key.
 	 *
-	 * If unset, a globally configured default is used. If still unset, the
-	 * client-id from the last lease is reused.
+	 * If unset, a globally configured default is used. If still unset, the default
+	 * depends on the DHCP plugin.
 	 **/
 	/* ---ifcfg-rh---
 	 * property: dhcp-client-id
diff --git a/libnm-core/nm-setting-ip6-config.c b/libnm-core/nm-setting-ip6-config.c
index a55fd801..fa65be91 100644
--- a/libnm-core/nm-setting-ip6-config.c
+++ b/libnm-core/nm-setting-ip6-config.c
@@ -852,7 +852,8 @@ nm_setting_ip6_config_class_init (NMSettingIP6ConfigClass *klass)
 	 *
 	 * The special values "stable-llt", "stable-ll" and "stable-uuid" will generate
 	 * a DUID of the corresponding type, derived from the connection's stable-id and
-	 * a per-host unique key.
+	 * a per-host unique key. You may want to include the "${DEVICE}" or "${MAC}" specifier
+	 * in the stable-id, in case this profile gets activated on multiple devices.
 	 * So, the link-layer address of "stable-ll" and "stable-llt" will be a generated
 	 * address derived from the stable id. The DUID-LLT time value in the "stable-llt"
 	 * option will be picked among a static timespan of three years (the upper bound
diff --git a/libnm-core/nm-setting-macsec.c b/libnm-core/nm-setting-macsec.c
index 2c7cff23..5c468221 100644
--- a/libnm-core/nm-setting-macsec.c
+++ b/libnm-core/nm-setting-macsec.c
@@ -243,6 +243,12 @@ verify_macsec_key (const char *key, gboolean cak, GError **error)
 {
 	int req_len;
 
+	/* CAK is a connection secret and can be NULL for various
+	 * reasons (agent-owned, no permissions to get secrets, etc.)
+	 */
+	if (cak && !key)
+		return TRUE;
+
 	if (!key || !key[0]) {
 		g_set_error_literal (error,
 		                     NM_CONNECTION_ERROR,
@@ -254,7 +260,7 @@ verify_macsec_key (const char *key, gboolean cak, GError **error)
 	req_len = cak ?
 	    NM_SETTING_MACSEC_MKA_CAK_LENGTH :
 	    NM_SETTING_MACSEC_MKA_CKN_LENGTH;
-	if (strlen (key) != req_len) {
+	if (strlen (key) != (gsize) req_len) {
 		g_set_error (error,
 		             NM_CONNECTION_ERROR,
 		             NM_CONNECTION_ERROR_INVALID_PROPERTY,
@@ -340,6 +346,10 @@ verify (NMSetting *setting, NMConnection *connection, GError **error)
 			g_prefix_error (error, "%s.%s: ", NM_SETTING_MACSEC_SETTING_NAME, NM_SETTING_MACSEC_MKA_CKN);
 			return FALSE;
 		}
+		if (!verify_macsec_key (priv->mka_cak, TRUE, error)) {
+			g_prefix_error (error, "%s.%s: ", NM_SETTING_MACSEC_SETTING_NAME, NM_SETTING_MACSEC_MKA_CAK);
+			return FALSE;
+		}
 	} else if (priv->mode == NM_SETTING_MACSEC_MODE_EAP) {
 		if (!s_8021x) {
 			g_set_error (error,
@@ -350,6 +360,13 @@ verify (NMSetting *setting, NMConnection *connection, GError **error)
 			g_prefix_error (error, "%s: ", NM_SETTING_MACSEC_SETTING_NAME);
 			return FALSE;
 		}
+	} else {
+		g_set_error_literal (error,
+		                     NM_CONNECTION_ERROR,
+		                     NM_CONNECTION_ERROR_INVALID_PROPERTY,
+		                     _("must be either psk (0) or eap (1)"));
+		g_prefix_error (error, "%s.%s: ", NM_SETTING_MACSEC_SETTING_NAME, NM_SETTING_MACSEC_MODE);
+		return FALSE;
 	}
 
 	if (priv->port <= 0 || priv->port > 65534) {
@@ -362,6 +379,17 @@ verify (NMSetting *setting, NMConnection *connection, GError **error)
 		return FALSE;
 	}
 
+	if (   priv->mode != NM_SETTING_MACSEC_MODE_PSK
+	    && (priv->mka_cak || priv->mka_ckn)) {
+		g_set_error_literal (error,
+		                     NM_CONNECTION_ERROR,
+		                     NM_CONNECTION_ERROR_INVALID_PROPERTY,
+		                     _("only valid for psk mode"));
+		g_prefix_error (error, "%s.%s: ", NM_SETTING_MACSEC_SETTING_NAME,
+		                priv->mka_cak ? NM_SETTING_MACSEC_MKA_CAK : NM_SETTING_MACSEC_MKA_CKN);
+		return NM_SETTING_VERIFY_NORMALIZABLE;
+	}
+
 	return TRUE;
 }
 
diff --git a/libnm-core/nm-setting-sriov.c b/libnm-core/nm-setting-sriov.c
index 7228fb0c..0addd972 100644
--- a/libnm-core/nm-setting-sriov.c
+++ b/libnm-core/nm-setting-sriov.c
@@ -1248,6 +1248,11 @@ nm_setting_sriov_class_init (NMSettingSriovClass *klass)
 	 *
 	 * The total number of virtual functions to create.
 	 *
+	 * Note that when the sriov setting is present NetworkManager
+	 * enforces the number of virtual functions on the interface
+	 * also when it is zero. To prevent any changes to SR-IOV
+	 * parameters don't add a sriov setting to the connection.
+	 *
 	 * Since: 1.14
 	 **/
 	/* ---ifcfg-rh---
@@ -1283,7 +1288,11 @@ nm_setting_sriov_class_init (NMSettingSriovClass *klass)
 	 *
 	 *   "2 mac=00:11:22:33:44:55 spoof-check=true".
 	 *
-	 * The "vlans" attribute is represented as a semicolor-separated
+	 * Multiple VFs can be specified using a comma as separator.
+	 * Currently the following attributes are supported: mac,
+	 * spoof-check, trust, min-tx-rate, max-tx-rate, vlans.
+	 *
+	 * The "vlans" attribute is represented as a semicolon-separated
 	 * list of VLAN descriptors, where each descriptor has the form
 	 *
 	 *   "ID[.PRIORITY[.PROTO]]".
@@ -1291,6 +1300,7 @@ nm_setting_sriov_class_init (NMSettingSriovClass *klass)
 	 * PROTO can be either 'q' for 802.1Q (the default) or 'ad' for
 	 * 802.1ad.
 	 *
+
 	 * Since: 1.14
 	 **/
 	/* ---ifcfg-rh---
diff --git a/libnm-core/nm-setting.c b/libnm-core/nm-setting.c
index 6b9681b5..047391ce 100644
--- a/libnm-core/nm-setting.c
+++ b/libnm-core/nm-setting.c
@@ -685,10 +685,15 @@ _nm_setting_to_dbus (NMSetting *setting, NMConnection *connection, NMConnectionS
 				continue;
 		}
 
-		if (property->synth_func)
-			dbus_value = property->synth_func (setting, connection, property->name);
-		else
+		if (property->synth_func) {
+			if (!(flags & NM_CONNECTION_SERIALIZE_NO_SYNTH))
+				dbus_value = property->synth_func (setting, connection, property->name);
+			else
+				dbus_value = NULL;
+		} else {
 			dbus_value = get_property_for_dbus (setting, property, TRUE);
+		}
+
 		if (dbus_value) {
 			/* Allow dbus_value to be either floating or not. */
 			g_variant_take_ref (dbus_value);
@@ -2013,7 +2018,8 @@ nm_setting_to_string (NMSetting *setting)
 	string = g_string_new (nm_setting_get_name (setting));
 	g_string_append_c (string, '\n');
 
-	variant = _nm_setting_to_dbus (setting, NULL, NM_CONNECTION_SERIALIZE_ALL);
+	variant = _nm_setting_to_dbus (setting, NULL,   NM_CONNECTION_SERIALIZE_ALL
+	                                              | NM_CONNECTION_SERIALIZE_NO_SYNTH);
 
 	g_variant_iter_init (&iter, variant);
 	while ((child = g_variant_iter_next_value (&iter))) {
diff --git a/libnm-core/nm-utils.c b/libnm-core/nm-utils.c
index 0f524e11..f75276c7 100644
--- a/libnm-core/nm-utils.c
+++ b/libnm-core/nm-utils.c
@@ -2737,11 +2737,14 @@ nm_utils_sriov_vf_from_str (const char *str, GError **error)
 		detail++;
 	}
 
-	return _nm_utils_sriov_vf_from_strparts (str, detail, error);
+	return _nm_utils_sriov_vf_from_strparts (str, detail, FALSE, error);
 }
 
 NMSriovVF *
-_nm_utils_sriov_vf_from_strparts (const char *index, const char *detail, GError **error)
+_nm_utils_sriov_vf_from_strparts (const char *index,
+                                  const char *detail,
+                                  gboolean ignore_unknown,
+                                  GError **error)
 {
 	NMSriovVF *vf;
 	guint32 n_index;
@@ -2761,7 +2764,12 @@ _nm_utils_sriov_vf_from_strparts (const char *index, const char *detail, GError
 
 	vf = nm_sriov_vf_new (n_index);
 	if (detail) {
-		ht = nm_utils_parse_variant_attributes (detail, ' ', '=', TRUE, _nm_sriov_vf_attribute_spec, error);
+		ht = nm_utils_parse_variant_attributes (detail,
+		                                        ' ',
+		                                        '=',
+		                                        ignore_unknown,
+		                                        _nm_sriov_vf_attribute_spec,
+		                                        error);
 		if (!ht) {
 			nm_sriov_vf_unref (vf);
 			return NULL;
@@ -2785,6 +2793,57 @@ _nm_utils_sriov_vf_from_strparts (const char *index, const char *detail, GError
 
 /*****************************************************************************/
 
+NMUuid *
+_nm_utils_uuid_parse (const char *str,
+                      NMUuid *out_uuid)
+{
+	nm_assert (str);
+	nm_assert (out_uuid);
+
+	if (uuid_parse (str, out_uuid->uuid) != 0)
+		return NULL;
+	return out_uuid;
+}
+
+char *
+_nm_utils_uuid_unparse (const NMUuid *uuid,
+                        char *out_str /*[37]*/)
+{
+	nm_assert (uuid);
+
+	if (!out_str) {
+		/* for convenience, allow %NULL to indicate that a new
+		 * string should be allocated. */
+		out_str = g_malloc (37);
+	}
+	uuid_unparse_lower (uuid->uuid, out_str);
+	return out_str;
+}
+
+NMUuid *
+_nm_utils_uuid_generate_random (NMUuid *out_uuid)
+{
+	nm_assert (out_uuid);
+
+	uuid_generate_random (out_uuid->uuid);
+	return out_uuid;
+}
+
+gboolean
+nm_utils_uuid_is_null (const NMUuid *uuid)
+{
+	int i;
+
+	if (!uuid)
+		return TRUE;
+
+	for (i = 0; i < G_N_ELEMENTS (uuid->uuid); i++) {
+		if (uuid->uuid[i])
+			return FALSE;
+	}
+	return TRUE;
+}
+
 /**
  * nm_utils_uuid_generate_buf_:
  * @buf: input buffer, must contain at least 37 bytes
@@ -2794,11 +2853,12 @@ _nm_utils_sriov_vf_from_strparts (const char *index, const char *detail, GError
 char *
 nm_utils_uuid_generate_buf_ (char *buf)
 {
-	uuid_t uuid;
+	NMUuid uuid;
+
+	nm_assert (buf);
 
-	uuid_generate_random (uuid);
-	uuid_unparse_lower (uuid, buf);
-	return buf;
+	_nm_utils_uuid_generate_random (&uuid);
+	return _nm_utils_uuid_unparse (&uuid, buf);
 }
 
 /**
@@ -2814,7 +2874,9 @@ nm_utils_uuid_generate (void)
 }
 
 /**
- * nm_utils_uuid_generate_from_string:
+ * nm_utils_uuid_generate_from_string_bin:
+ * @uuid: the UUID to update inplace. This function cannot
+ *   fail to succeed.
  * @s: a string to use as the seed for the UUID
  * @slen: if negative, treat @s as zero terminated C string.
  *   Otherwise, assume the length as given (and allow @s to be
@@ -2824,60 +2886,92 @@ nm_utils_uuid_generate (void)
  *
  * For a given @s, this function will always return the same UUID.
  *
- * Returns: a newly allocated UUID suitable for use as the #NMSettingConnection
- * object's #NMSettingConnection:id: property
+ * Returns: the input @uuid. This function cannot fail.
  **/
-char *
-nm_utils_uuid_generate_from_string (const char *s, gssize slen, int uuid_type, gpointer type_args)
+NMUuid *
+nm_utils_uuid_generate_from_string_bin (NMUuid *uuid, const char *s, gssize slen, int uuid_type, gpointer type_args)
 {
-	uuid_t uuid;
-	char *buf;
-
+	g_return_val_if_fail (uuid, FALSE);
 	g_return_val_if_fail (slen == 0 || s, FALSE);
 
-	g_return_val_if_fail (uuid_type == NM_UTILS_UUID_TYPE_LEGACY || uuid_type == NM_UTILS_UUID_TYPE_VARIANT3, NULL);
-	g_return_val_if_fail (!type_args || uuid_type == NM_UTILS_UUID_TYPE_VARIANT3, NULL);
-
 	if (slen < 0)
 		slen = s ? strlen (s) : 0;
 
 	switch (uuid_type) {
 	case NM_UTILS_UUID_TYPE_LEGACY:
+		g_return_val_if_fail (!type_args, NULL);
 		nm_crypto_md5_hash (NULL,
 		                    0,
 		                    (guint8 *) s,
 		                    slen,
 		                    (guint8 *) uuid,
-		                    sizeof (uuid));
+		                    sizeof (*uuid));
 		break;
-	case NM_UTILS_UUID_TYPE_VARIANT3: {
-		uuid_t ns_uuid = { 0 };
+	case NM_UTILS_UUID_TYPE_VERSION3:
+	case NM_UTILS_UUID_TYPE_VERSION5: {
+		NMUuid ns_uuid = { 0 };
 
 		if (type_args) {
 			/* type_args can be a name space UUID. Interpret it as (char *) */
-			if (uuid_parse ((char *) type_args, ns_uuid) != 0)
+			if (!_nm_utils_uuid_parse (type_args, &ns_uuid))
 				g_return_val_if_reached (NULL);
 		}
 
-		nm_crypto_md5_hash ((guint8 *) s,
-		                    slen,
-		                    (guint8 *) ns_uuid,
-		                    sizeof (ns_uuid),
-		                    (guint8 *) uuid,
-		                    sizeof (uuid));
+		if (uuid_type == NM_UTILS_UUID_TYPE_VERSION3) {
+			nm_crypto_md5_hash ((guint8 *) s,
+			                    slen,
+			                    (guint8 *) &ns_uuid,
+			                    sizeof (ns_uuid),
+			                    (guint8 *) uuid,
+			                    sizeof (*uuid));
+		} else {
+			nm_auto_free_checksum GChecksum *sum = NULL;
+			union {
+				guint8 sha1[NM_UTILS_CHECKSUM_LENGTH_SHA1];
+				NMUuid uuid;
+			} digest;
+
+			sum = g_checksum_new (G_CHECKSUM_SHA1);
+			g_checksum_update (sum, (guchar *) &ns_uuid, sizeof (ns_uuid));
+			g_checksum_update (sum, (guchar *) s, slen);
+			nm_utils_checksum_get_digest (sum, digest.sha1);
+
+			G_STATIC_ASSERT_EXPR (sizeof (digest.sha1) > sizeof (digest.uuid));
+			*uuid = digest.uuid;
+		}
 
-		uuid[6] = (uuid[6] & 0x0F) | 0x30;
-		uuid[8] = (uuid[8] & 0x3F) | 0x80;
+		uuid->uuid[6] = (uuid->uuid[6] & 0x0F) | (uuid_type << 4);
+		uuid->uuid[8] = (uuid->uuid[8] & 0x3F) | 0x80;
 		break;
 	}
 	default:
 		g_return_val_if_reached (NULL);
 	}
 
-	buf = g_malloc (37);
-	uuid_unparse_lower (uuid, &buf[0]);
+	return uuid;
+}
 
-	return buf;
+/**
+ * nm_utils_uuid_generate_from_string:
+ * @s: a string to use as the seed for the UUID
+ * @slen: if negative, treat @s as zero terminated C string.
+ *   Otherwise, assume the length as given (and allow @s to be
+ *   non-null terminated or contain '\0').
+ * @uuid_type: a type identifier which UUID format to generate.
+ * @type_args: additional arguments, depending on the uuid_type
+ *
+ * For a given @s, this function will always return the same UUID.
+ *
+ * Returns: a newly allocated UUID suitable for use as the #NMSettingConnection
+ * object's #NMSettingConnection:id: property
+ **/
+char *
+nm_utils_uuid_generate_from_string (const char *s, gssize slen, int uuid_type, gpointer type_args)
+{
+	NMUuid uuid;
+
+	nm_utils_uuid_generate_from_string_bin (&uuid, s, slen, uuid_type, type_args);
+	return _nm_utils_uuid_unparse (&uuid, NULL);
 }
 
 /**
@@ -2902,7 +2996,7 @@ _nm_utils_uuid_generate_from_strings (const char *string1, ...)
 	char *uuid;
 
 	if (!string1)
-		return nm_utils_uuid_generate_from_string (NULL, 0, NM_UTILS_UUID_TYPE_VARIANT3, NM_UTILS_UUID_NS);
+		return nm_utils_uuid_generate_from_string (NULL, 0, NM_UTILS_UUID_TYPE_VERSION3, NM_UTILS_UUID_NS);
 
 	str = g_string_sized_new (120); /* effectively allocates power of 2 (128)*/
 
@@ -2916,7 +3010,7 @@ _nm_utils_uuid_generate_from_strings (const char *string1, ...)
 	}
 	va_end (args);
 
-	uuid = nm_utils_uuid_generate_from_string (str->str, str->len, NM_UTILS_UUID_TYPE_VARIANT3, NM_UTILS_UUID_NS);
+	uuid = nm_utils_uuid_generate_from_string (str->str, str->len, NM_UTILS_UUID_TYPE_VERSION3, NM_UTILS_UUID_NS);
 
 	g_string_free (str, TRUE);
 	return uuid;
@@ -3527,60 +3621,68 @@ nm_utils_hwaddr_len (int type)
 }
 
 guint8 *
-_nm_utils_str2bin_full (const char *asc,
-                        gboolean delimiter_required,
-                        const char *delimiter_candidates,
-                        guint8 *buffer,
-                        gsize buffer_length,
-                        gsize *out_len)
-{
-	const char *in = asc;
+_nm_utils_hexstr2bin_full (const char *hexstr,
+                           gboolean allow_0x_prefix,
+                           gboolean delimiter_required,
+                           const char *delimiter_candidates,
+                           gsize required_len,
+                           guint8 *buffer,
+                           gsize buffer_len,
+                           gsize *out_len)
+{
+	const char *in = hexstr;
 	guint8 *out = buffer;
 	gboolean delimiter_has = TRUE;
 	guint8 delimiter = '\0';
+	gsize len;
 
-	nm_assert (asc);
+	nm_assert (hexstr);
 	nm_assert (buffer);
-	nm_assert (buffer_length);
-	nm_assert (out_len);
+	nm_assert (required_len > 0 || out_len);
+
+	if (   allow_0x_prefix
+	    && in[0] == '0'
+	    && in[1] == 'x')
+		in += 2;
 
 	while (TRUE) {
 		const guint8 d1 = in[0];
 		guint8 d2;
+		int i1, i2;
 
-		if (!g_ascii_isxdigit (d1))
-			return NULL;
-
-#define HEXVAL(c) ((c) <= '9' ? (c) - '0' : ((c) & 0x4F) - ('A' - 10))
+		i1 = nm_utils_hexchar_to_int (d1);
+		if (i1 < 0)
+			goto fail;
 
 		/* If there's no leading zero (ie "aa:b:cc") then fake it */
 		d2 = in[1];
-		if (d2 && g_ascii_isxdigit (d2)) {
-			*out++ = (HEXVAL (d1) << 4) + HEXVAL (d2);
+		if (   d2
+		    && (i2 = nm_utils_hexchar_to_int (d2)) >= 0) {
+			*out++ = (i1 << 4) + i2;
 			d2 = in[2];
 			if (!d2)
 				break;
 			in += 2;
 		} else {
 			/* Fake leading zero */
-			*out++ = HEXVAL (d1);
+			*out++ = i1;
 			if (!d2) {
 				if (!delimiter_has) {
 					/* when using no delimiter, there must be pairs of hex chars */
-					return NULL;
+					goto fail;
 				}
 				break;
 			}
 			in += 1;
 		}
 
-		if (--buffer_length == 0)
-			return NULL;
+		if (--buffer_len == 0)
+			goto fail;
 
 		if (delimiter_has) {
 			if (d2 != delimiter) {
 				if (delimiter)
-					return NULL;
+					goto fail;
 				if (delimiter_candidates) {
 					while (delimiter_candidates[0]) {
 						if (delimiter_candidates++[0] == d2)
@@ -3589,7 +3691,7 @@ _nm_utils_str2bin_full (const char *asc,
 				}
 				if (!delimiter) {
 					if (delimiter_required)
-						return NULL;
+						goto fail;
 					delimiter_has = FALSE;
 					continue;
 				}
@@ -3598,11 +3700,66 @@ _nm_utils_str2bin_full (const char *asc,
 		}
 	}
 
-	*out_len = out - buffer;
-	return buffer;
+	len = out - buffer;
+	if (   required_len == 0
+	    || len == required_len) {
+		NM_SET_OUT (out_len, len);
+		return buffer;
+	}
+
+fail:
+	NM_SET_OUT (out_len, 0);
+	return NULL;
 }
 
-#define hwaddr_aton(asc, buffer, buffer_length, out_len) _nm_utils_str2bin_full ((asc), TRUE, ":-", (buffer), (buffer_length), (out_len))
+guint8 *
+_nm_utils_hexstr2bin_alloc (const char *hexstr,
+                            gboolean allow_0x_prefix,
+                            gboolean delimiter_required,
+                            const char *delimiter_candidates,
+                            gsize required_len,
+                            gsize *out_len)
+{
+	guint8 *buffer;
+	gsize buffer_len, len;
+
+	g_return_val_if_fail (hexstr, NULL);
+
+	nm_assert (required_len > 0 || out_len);
+
+	if (   allow_0x_prefix
+	    && hexstr[0] == '0'
+	    && hexstr[1] == 'x')
+		hexstr += 2;
+
+	if (!hexstr[0])
+		goto fail;
+
+	if (required_len > 0)
+		buffer_len = required_len;
+	else
+		buffer_len = strlen (hexstr) / 2 + 3;
+
+	buffer = g_malloc (buffer_len);
+
+	if (_nm_utils_hexstr2bin_full (hexstr,
+	                               FALSE,
+	                               delimiter_required,
+	                               delimiter_candidates,
+	                               required_len,
+	                               buffer,
+	                               buffer_len,
+	                               &len)) {
+		NM_SET_OUT (out_len, len);
+		return buffer;
+	}
+
+	g_free (buffer);
+
+fail:
+	NM_SET_OUT (out_len, 0);
+	return NULL;
+}
 
 /**
  * nm_utils_hexstr2bin:
@@ -3619,23 +3776,17 @@ GBytes *
 nm_utils_hexstr2bin (const char *hex)
 {
 	guint8 *buffer;
-	gsize buffer_length, len;
-
-	g_return_val_if_fail (hex != NULL, NULL);
-
-	if (hex[0] == '0' && hex[1] == 'x')
-		hex += 2;
+	gsize len;
 
-	buffer_length = strlen (hex) / 2 + 3;
-	buffer = g_malloc (buffer_length);
-	if (!_nm_utils_str2bin_full (hex, FALSE, ":", buffer, buffer_length, &len)) {
-		g_free (buffer);
+	buffer = _nm_utils_hexstr2bin_alloc (hex, TRUE, FALSE, ":", 0, &len);
+	if (!buffer)
 		return NULL;
-	}
 	buffer = g_realloc (buffer, len);
 	return g_bytes_new_take (buffer, len);
 }
 
+#define hwaddr_aton(asc, buffer, buffer_len, out_len) _nm_utils_hexstr2bin_full ((asc), FALSE, TRUE, ":-", 0, (buffer), (buffer_len), (out_len))
+
 /**
  * nm_utils_hwaddr_atoba:
  * @asc: the ASCII representation of a hardware address
@@ -3728,16 +3879,46 @@ nm_utils_hwaddr_aton (const char *asc, gpointer buffer, gsize length)
 	return buffer;
 }
 
-void
-_nm_utils_bin2str_full (gconstpointer addr, gsize length, const char delimiter, gboolean upper_case, char *out)
+/**
+ * _nm_utils_bin2hexstr_full:
+ * @addr: pointer of @length bytes.
+ * @length: number of bytes in @addr
+ * @delimiter: either '\0', otherwise the output string will have the
+ *   given delimiter character between each two hex numbers.
+ * @upper_case: if TRUE, use upper case ASCII characters for hex.
+ * @out: if %NULL, the function will allocate a new buffer of
+ *   either (@length*2+1) or (@length*3) bytes, depending on whether
+ *   a @delimiter is specified. In that case, the allocated buffer will
+ *   be returned and must be freed by the caller.
+ *   If not %NULL, the buffer must already be preallocated and contain
+ *   at least (@length*2+1) or (@length*3) bytes, depending on the delimiter.
+ *
+ * Returns: the binary value converted to a hex string. If @out is given,
+ *   this always returns @out. If @out is %NULL, a newly allocated string
+ *   is returned.
+ */
+char *
+_nm_utils_bin2hexstr_full (gconstpointer addr,
+                           gsize length,
+                           char delimiter,
+                           gboolean upper_case,
+                           char *out)
 {
 	const guint8 *in = addr;
 	const char *LOOKUP = upper_case ? "0123456789ABCDEF" : "0123456789abcdef";
+	char *out0;
 
 	nm_assert (addr);
-	nm_assert (out);
 	nm_assert (length > 0);
 
+	if (out)
+		out0 = out;
+	else {
+		out0 = out = g_new (char, delimiter == '\0'
+		                          ? length * 2 + 1
+		                          : length * 3);
+	}
+
 	/* @out must contain at least @length*3 bytes if @delimiter is set,
 	 * otherwise, @length*2+1. */
 
@@ -3754,6 +3935,7 @@ _nm_utils_bin2str_full (gconstpointer addr, gsize length, const char delimiter,
 	}
 
 	*out = 0;
+	return out0;
 }
 
 /**
@@ -3779,7 +3961,8 @@ nm_utils_bin2hexstr (gconstpointer src, gsize len, int final_len)
 	g_return_val_if_fail (final_len < 0 || (gsize) final_len < buflen, NULL);
 
 	result = g_malloc (buflen);
-	_nm_utils_bin2str_full (src, len, '\0', FALSE, result);
+
+	_nm_utils_bin2hexstr_full (src, len, '\0', FALSE, result);
 
 	/* Cut converted key off at the correct length for this cipher type */
 	if (final_len >= 0 && (gsize) final_len < buflen)
@@ -3800,14 +3983,10 @@ nm_utils_bin2hexstr (gconstpointer src, gsize len, int final_len)
 char *
 nm_utils_hwaddr_ntoa (gconstpointer addr, gsize length)
 {
-	char *result;
-
 	g_return_val_if_fail (addr, g_strdup (""));
 	g_return_val_if_fail (length > 0, g_strdup (""));
 
-	result = g_malloc (length * 3);
-	_nm_utils_bin2str_full (addr, length, ':', TRUE, result);
-	return result;
+	return _nm_utils_bin2hexstr_full (addr, length, ':', TRUE, NULL);
 }
 
 const char *
@@ -3819,31 +3998,7 @@ nm_utils_hwaddr_ntoa_buf (gconstpointer addr, gsize addr_len, gboolean upper_cas
 	if (buf_len < addr_len * 3)
 		g_return_val_if_reached (NULL);
 
-	_nm_utils_bin2str_full (addr, addr_len, ':', upper_case, buf);
-	return buf;
-}
-
-/**
- * _nm_utils_bin2str:
- * @addr: (type guint8) (array length=length): a binary hardware address
- * @length: the length of @addr
- * @upper_case: the case for the hexadecimal digits.
- *
- * Converts @addr to textual form.
- *
- * Return value: (transfer full): the textual form of @addr
- */
-char *
-_nm_utils_bin2str (gconstpointer addr, gsize length, gboolean upper_case)
-{
-	char *result;
-
-	g_return_val_if_fail (addr, g_strdup (""));
-	g_return_val_if_fail (length > 0, g_strdup (""));
-
-	result = g_malloc (length * 3);
-	_nm_utils_bin2str_full (addr, length, ':', upper_case, result);
-	return result;
+	return _nm_utils_bin2hexstr_full (addr, addr_len, ':', upper_case, buf);
 }
 
 /**
@@ -4510,7 +4665,7 @@ _nm_utils_dhcp_duid_valid (const char *duid, GBytes **out_duid_bin)
 		return TRUE;
 	}
 
-	if (_nm_utils_str2bin_full (duid, FALSE, ":", duid_arr, sizeof (duid_arr), &duid_len)) {
+	if (_nm_utils_hexstr2bin_full (duid, FALSE, FALSE, ":", 0, duid_arr, sizeof (duid_arr), &duid_len)) {
 		/* MAX DUID length is 128 octects + the type code (2 octects). */
 		if (   duid_len > 2
 		    && duid_len <= (128 + 2)) {
diff --git a/libnm-core/tests/test-general.c b/libnm-core/tests/test-general.c
index 5a954270..67b80098 100644
--- a/libnm-core/tests/test-general.c
+++ b/libnm-core/tests/test-general.c
@@ -5439,8 +5439,21 @@ test_nm_strquote (void)
 
 /*****************************************************************************/
 
-#define UUID_NIL        "00000000-0000-0000-0000-000000000000"
+#define UUID_NS_ZERO    "00000000-0000-0000-0000-000000000000"
 #define UUID_NS_DNS     "6ba7b810-9dad-11d1-80b4-00c04fd430c8"
+#define UUID_NS_URL     "6ba7b811-9dad-11d1-80b4-00c04fd430c8"
+#define UUID_NS_OID     "6ba7b812-9dad-11d1-80b4-00c04fd430c8"
+#define UUID_NS_X500    "6ba7b814-9dad-11d1-80b4-00c04fd430c8"
+
+static const NMUuid *
+_uuid (const char *str)
+{
+	static NMUuid u;
+
+	g_assert (str);
+	g_assert (_nm_utils_uuid_parse (str, &u));
+	return &u;
+}
 
 static void
 _test_uuid (int uuid_type, const char *expected_uuid, const char *str, gssize slen, gpointer type_args)
@@ -5452,9 +5465,17 @@ _test_uuid (int uuid_type, const char *expected_uuid, const char *str, gssize sl
 	g_assert (uuid_test);
 	g_assert (nm_utils_is_uuid (uuid_test));
 
-	if (strcmp (uuid_test, expected_uuid)) {
-		g_error ("UUID test failed: type=%d; text=%s, len=%lld, uuid=%s, expected=%s", uuid_type,
-		         str, (long long) slen, uuid_test, expected_uuid);
+	if (!nm_streq (uuid_test, expected_uuid)) {
+		g_error ("UUID test failed: type=%d; text=%s, len=%lld, ns=%s, uuid=%s, expected=%s",
+		         uuid_type,
+		         str,
+		         (long long) slen,
+		         NM_IN_SET (uuid_type, NM_UTILS_UUID_TYPE_VERSION3,
+		                               NM_UTILS_UUID_TYPE_VERSION5)
+		           ? (((const char *) type_args) ?: "(all-zero)")
+		           : (type_args ? "(unknown)" : "(null)"),
+		         uuid_test,
+		         expected_uuid);
 	}
 
 	if (slen < 0) {
@@ -5465,30 +5486,174 @@ _test_uuid (int uuid_type, const char *expected_uuid, const char *str, gssize sl
 		_test_uuid (uuid_type, expected_uuid, NULL, 0, type_args);
 	}
 
-	if (uuid_type == NM_UTILS_UUID_TYPE_VARIANT3 && !type_args) {
-		/* For NM_UTILS_UUID_TYPE_VARIANT3, a missing @type_args is equal to UUID_NIL */
-		_test_uuid (uuid_type, expected_uuid, str, slen, UUID_NIL);
+	if (   NM_IN_SET (uuid_type, NM_UTILS_UUID_TYPE_VERSION3,
+	                             NM_UTILS_UUID_TYPE_VERSION5)
+	    && !type_args) {
+		/* For version3 and version5, a missing @type_args is equal to UUID_NS_ZERO */
+		_test_uuid (uuid_type, expected_uuid, str, slen, UUID_NS_ZERO);
 	}
 }
 
+typedef struct {
+	const char *uuid3;
+	const char *uuid5;
+} ExpectedUuids;
+
 static void
 test_nm_utils_uuid_generate_from_string (void)
 {
+	const ExpectedUuids zero_uuids[] = {
+	    { .uuid3 = "19826852-5007-3022-a72a-212f66e9fac3", .uuid5 = "b6c54489-38a0-5f50-a60a-fd8d76219cae", },
+	    { .uuid3 = "9153af2e-fc8e-34f3-9e8b-81f73b33d0cb", .uuid5 = "11116e73-1c03-5de6-9130-5f9925ae8ab4", },
+	    { .uuid3 = "2f06a3ae-d78d-30d7-b898-088a0e0b76f6", .uuid5 = "1087ebe8-1ef8-5d97-8873-735b4949004d", },
+	    { .uuid3 = "aca948e0-1468-3a51-9f2e-c688a484efd7", .uuid5 = "7e57d004-2b97-5e7a-b45f-5387367791cd", },
+	    { .uuid3 = "b74e537a-53e8-3808-9abd-58546a6542bd", .uuid5 = "1dd80df1-492c-5dc5-aec2-6bf0e104f923", },
+	    { .uuid3 = "1b00958a-7d76-3d08-8aba-c66c5828658c", .uuid5 = "f797f61e-a392-5acf-af25-b46057f1c8e8", },
+	    { .uuid3 = "7ba18f7d-c9cf-3b48-a89e-ad79243135cc", .uuid5 = "e02c9780-2fc5-5d57-b92f-4cc3a64bff16", },
+	    { .uuid3 = "9baf0978-1a60-35c5-9e9b-bec8d259fd4e", .uuid5 = "94167980-f909-527e-a4af-bc3155f586d3", },
+	    { .uuid3 = "588668c0-7631-39c7-9976-c7d414adf7ba", .uuid5 = "9e3eefda-b56e-56bd-8a3a-0b8009d4a536", },
+	    { .uuid3 = "8edb3613-9612-3b32-9dd7-0a01aa8ed453", .uuid5 = "9b75648e-d38c-54e8-adee-1fb295a079c9", },
+	    { .uuid3 = "f3b34394-63a5-3773-9014-1f8a50d765b8", .uuid5 = "dd56b598-9e74-58c3-b3e8-2c623780b8ed", },
+	    { .uuid3 = "0572965f-05b8-342b-b225-d5c29d449eee", .uuid5 = "5666449a-fb7e-55b7-ae9f-0552e6513a10", },
+	    { .uuid3 = "6f7177c3-77b0-3f42-82a8-7031e25fcccf", .uuid5 = "10b38db9-82fc-528e-9ddb-1f09b7dbf907", },
+	    { .uuid3 = "d1e0f845-bc1b-368c-b8c8-49ab0b9e486b", .uuid5 = "85492596-9468-5845-9c7f-d4ae999cb751", },
+	    { .uuid3 = "46371ea3-c8a3-34d8-b2cf-2fa90bda4378", .uuid5 = "22b1c0dd-aa5d-54a4-8768-5adfd0d112bd", },
+	    { .uuid3 = "f1e6b499-9b68-343b-a5c5-ece7acc49a68", .uuid5 = "9cc429f8-200e-52a3-9e3b-ef134afa1e29", },
+	    { .uuid3 = "9ed06458-c712-31dd-aba5-6cf79879fabe", .uuid5 = "3949f95c-5d76-5ee2-af60-8e2d8fcf649d", },
+	    { .uuid3 = "4ddd5cd7-bc83-36aa-909c-4e660f57c830", .uuid5 = "0e994a02-069b-58fb-b3a4-d7dc94e90fca", },
+	    { .uuid3 = "335fa537-0909-395d-a696-6f41827dcbeb", .uuid5 = "17db3a41-de9b-5c6b-904d-833943209b3c", },
+	    { .uuid3 = "dbd58444-05ad-3edd-adc7-4393ecbcb43c", .uuid5 = "1bd906f2-05f9-5ab5-a39a-4c17a188f886", },
+	    { .uuid3 = "a1c62d82-d13c-361b-8f4e-ca91bc2f7fc5", .uuid5 = "ce6550fd-95b7-57e4-9aa7-461522666be4", },
+	    { .uuid3 = "e943d83e-3f82-307f-81ed-b7a7bcd0743e", .uuid5 = "04aa09ee-b420-57ac-8a23-5d99907fb0a1", },
+	    { .uuid3 = "cabf46dd-9f09-375c-8f6e-f2a8cf114709", .uuid5 = "8ece2c62-0c31-5c55-b7c6-155381e3780e", },
+	    { .uuid3 = "19beddf3-f2fb-340f-96ac-4f394960b7a7", .uuid5 = "5762a9f9-9a21-59ab-b0d2-2cb90027ef7f", },
+	    { .uuid3 = "08d835c2-f4ca-394c-ba7f-2494d8b60c6c", .uuid5 = "23c8409d-4b5f-5b6a-b946-41e49bad6c78", },
+	    { .uuid3 = "3b8c6847-5331-35bf-9cd9-ced50e53cd7c", .uuid5 = "e8e396be-95d5-5569-8edc-e0b64c2b7613", },
+	    { .uuid3 = "e601f160-484b-3254-8f3b-0a25c7203d8a", .uuid5 = "bc8b3cbc-ad5b-5808-a1b0-e0f7a1ad68a3", },
+	    { .uuid3 = "e5e492ed-5349-379d-b7de-a370a51e44a3", .uuid5 = "62c5ed3f-9afa-59ad-874f-a9dd8afc69d4", },
+	    { .uuid3 = "c40111f6-fe97-305e-bfce-7db730c3d2ec", .uuid5 = "66877a72-7243-59ed-b9e3-b5023b6da9c2", },
+	    { .uuid3 = "21e18ea8-95c2-362b-9ca9-25d6a0ff2dff", .uuid5 = "49a49eee-7e86-5d66-837a-8a8810cb5562", },
+	    { .uuid3 = "adab623b-1343-307f-80d8-58d005376ad9", .uuid5 = "e4a2a7ed-3bf3-53cf-a2bb-154dbb39a38c", },
+	    { .uuid3 = "67e9fc7c-dafe-356d-ac1a-a63ce3f44813", .uuid5 = "50cacfc9-f5d2-52dd-897c-a25a0927b816", },
+	    { .uuid3 = "36cc7f20-126c-3e40-94e7-737ac7486547", .uuid5 = "ca629991-3f2b-5e86-9bb7-37a335f7d809", },
+	    { .uuid3 = "fe282996-ac5e-3d13-b478-5def30007a8e", .uuid5 = "c1adf8a7-f72a-58ae-82d5-d18807f12e2e", },
+	    { .uuid3 = "3bfe339c-05ae-3233-a1a5-ebf1ead589db", .uuid5 = "6120c3cd-24e1-5ce4-987b-f8bfee2e4633", },
+	    { .uuid3 = "d1d90bc7-da4a-3cd7-a7c8-a1a89765d8ee", .uuid5 = "433d6a26-c319-5fcf-9a30-5ec6ad59d109", },
+	    { .uuid3 = "10b88a02-0102-359b-81e9-7e3b0ff7d25e", .uuid5 = "77d228d9-1b96-59e2-a07e-a8fdd4f62884", },
+	    { .uuid3 = "7da5e4f2-6df0-3aca-a1b0-b7f8b1340e1d", .uuid5 = "698259bf-a32b-5e00-9ec6-88b12278c4ad", },
+	    { .uuid3 = "cbe24d98-ca20-3058-86b6-24a6b36ceff0", .uuid5 = "60dbca63-704f-5666-9f64-f4e1a630c4aa", },
+	    { .uuid3 = "04d84e6a-b793-3993-afbf-bae7cfc42b49", .uuid5 = "79d63ec0-a39d-557d-8299-f4c97acfadc3", },
+	    { .uuid3 = "fdd157d8-a537-350a-9cc9-1930e8666c63", .uuid5 = "7df7f75e-a146-5a76-828b-bac052db312b", },
+	    { .uuid3 = "0bea36bb-24a7-3ee6-a98d-116433c14cd4", .uuid5 = "2bcca2e9-2879-53e3-b09d-cbbfd58771b2", },
+	    { .uuid3 = "52b040a4-1b84-32d2-b758-f82386f7e0f0", .uuid5 = "cb7bdca3-e9f7-50cd-b72e-73cb9ff24f62", },
+	    { .uuid3 = "0f0a4e26-e034-3021-acf2-4e886af43092", .uuid5 = "8e428e2b-5da3-5368-b760-5ca07ccbd819", },
+	    { .uuid3 = "819d3cd1-afe5-3e4a-9f0c-945e25d09879", .uuid5 = "f340ef4d-139c-567a-b0fc-7c495336674e", },
+	    { .uuid3 = "e7df1a3b-c9f8-3e5a-88d6-ba72b2a0f27b", .uuid5 = "7e3f5fd2-3c93-58d6-9f35-6e0192445b11", },
+	    { .uuid3 = "0854bedf-74ba-3f2b-b823-dc2c90d27c76", .uuid5 = "bc112b6b-c5de-5ee9-b816-808792743a20", },
+	    { .uuid3 = "a1b8c3ba-f821-32ef-a3fd-b97b3855efa8", .uuid5 = "47f8f82d-9fcd-553c-90c5-3f3cb3ad00ad", },
+	    { .uuid3 = "9458f819-079b-3033-9430-ba10f576c067", .uuid5 = "bee5c091-5f01-51fa-86bb-e9488fd3b4da", },
+	    { .uuid3 = "8e1f240a-e386-3e00-866a-6f9da1e3503f", .uuid5 = "8ea92cea-d741-566f-a44a-d51e65b4c5e4", },
+	};
+	const ExpectedUuids dns_uuids[] = {
+	    { .uuid3 = "4385125b-dd1e-3025-880f-3311517cc8d5", .uuid5 = "6af613b6-569c-5c22-9c37-2ed93f31d3af", },
+	    { .uuid3 = "afd0b036-625a-3aa8-b639-9dc8c8fff0ff", .uuid5 = "b04965e6-a9bb-591f-8f8a-1adcb2c8dc39", },
+	    { .uuid3 = "9c45c2f1-1761-3daa-ad31-1ff8703ae846", .uuid5 = "4b166dbe-d99d-5091-abdd-95b83330ed3a", },
+	    { .uuid3 = "15e0ba07-10e4-3d7f-aaff-c00fed873c88", .uuid5 = "98123fde-012f-5ff3-8b50-881449dac91a", },
+	    { .uuid3 = "bc27b4db-bc0f-34f9-ae8e-4b72f2d51b60", .uuid5 = "6ed955c6-506a-5343-9be4-2c0afae02eef", },
+	    { .uuid3 = "7586bfed-b8b8-3bb3-9c95-09a4a79dc0f7", .uuid5 = "c8691da2-158a-5ed6-8537-0e6f140801f2", },
+	    { .uuid3 = "881430b6-8d28-3175-b87d-e81f2f5978c6", .uuid5 = "a6c4fc8f-6950-51de-a9ae-2c519c465071", },
+	    { .uuid3 = "24075675-98ae-354e-89ca-0126a9ad36e3", .uuid5 = "a9f96b98-dd44-5216-ab0d-dbfc6b262edf", },
+	    { .uuid3 = "2c269ea4-dbfd-32dd-9bd7-a5c22677d18b", .uuid5 = "e99caacd-6c45-5906-bd9f-b79e62f25963", },
+	    { .uuid3 = "44eb0948-118f-3f28-87e4-f61c8f889aba", .uuid5 = "e4d80b30-151e-51b5-9f4f-18a3b82718e6", },
+	    { .uuid3 = "fc72beeb-f790-36ee-a73d-33888c9d8880", .uuid5 = "0159d6c7-973f-5e7a-a9a0-d195d0ea6fe2", },
+	    { .uuid3 = "1e46afa2-6176-3cd3-9750-3015846723df", .uuid5 = "7fef88f7-411d-5669-b42d-bf5fc7f9b58b", },
+	    { .uuid3 = "0042b01d-95bd-343f-bd9f-3186bfd63508", .uuid5 = "52524d6e-10dc-5261-aa36-8b2efcbaa5f0", },
+	    { .uuid3 = "115ff52f-d605-3b4b-98fe-c0ea57f4930c", .uuid5 = "91c274f2-9a0d-5ce6-ac3d-7529f452df21", },
+	    { .uuid3 = "ed0221e8-ac7d-393b-821d-25183567885b", .uuid5 = "0ff1e264-520d-543a-87dd-181a491e667e", },
+	    { .uuid3 = "508ef333-85a6-314c-bcf3-17ddc32b2216", .uuid5 = "23986425-d3a5-5e13-8bab-299745777a8d", },
+	    { .uuid3 = "a4715ee0-524a-37cc-beb2-a0b5030757b7", .uuid5 = "c15b38c9-9a3e-543c-a703-dd742f25b4d5", },
+	    { .uuid3 = "d1c72756-aaec-3470-a2f2-97415f44d72f", .uuid5 = "db680066-c83d-5ed7-89a4-1d79466ea62d", },
+	    { .uuid3 = "7aec2f01-586e-3d53-b8f3-6cf7e6b649a4", .uuid5 = "cadb7952-2bba-5609-88d4-8e47ec4e7920", },
+	    { .uuid3 = "3d234b88-8d6f-319a-91ea-edb6059fc825", .uuid5 = "35140057-a2a4-5adb-a500-46f8ed8b66a9", },
+	    { .uuid3 = "d2568554-93ec-30c7-9e15-f383be19e5bb", .uuid5 = "66e549b7-01e2-5d07-98d5-430f74d8d3b2", },
+	    { .uuid3 = "800e59a7-dd0f-3114-8e58-ab7e213895ca", .uuid5 = "292c8e99-2378-55aa-83d8-350e0ac3f1cc", },
+	    { .uuid3 = "3b7d03f0-e067-3d72-84f4-e410ac36ef57", .uuid5 = "0e3b230a-0509-55d8-96a0-9875f387a2be", },
+	    { .uuid3 = "8762be68-de95-391a-94a0-c5fd0446e037", .uuid5 = "4c507660-a83b-55c0-9b2b-83eccb07723d", },
+	    { .uuid3 = "2bd8b4c9-01af-3cd0-aced-94ee6e2004b8", .uuid5 = "a1b9b633-da11-58be-b1a9-5cfa2848f186", },
+	    { .uuid3 = "a627d6a4-394a-33f5-b68e-22bfb6488d01", .uuid5 = "c2708a8b-120a-56f5-a30d-990048af87cc", },
+	    { .uuid3 = "6a592510-17d9-3925-b321-4a8d4927f8d0", .uuid5 = "e7263999-68b6-5a23-b530-af25b7efd632", },
+	    { .uuid3 = "9ee72491-59c4-333c-bb93-fe733a842fdb", .uuid5 = "ce1ae2d5-3454-5952-97ff-36ff935bcfe9", },
+	    { .uuid3 = "2591c62c-0a9d-3c28-97bc-fa0401556a3c", .uuid5 = "33677b87-bc8d-5ff6-9a25-fe60225e4bf0", },
+	    { .uuid3 = "7912be1e-4562-373b-92e2-3d6d2123bc8e", .uuid5 = "ed2305ae-e8f9-5387-b860-3d80ae6c02f7", },
+	    { .uuid3 = "09370cda-89a4-3a48-b592-9c0486e0d5e4", .uuid5 = "604ed872-ae2d-5d91-8e3e-572f3a3aaaa5", },
+	    { .uuid3 = "de5980d3-a137-373c-850b-ca3e5f100779", .uuid5 = "8f8173d9-2f8d-5636-a693-24d9f79ba651", },
+	    { .uuid3 = "9441501d-f633-365a-8955-9df443edc762", .uuid5 = "36eb8d4d-b854-51f1-9fdf-3735964225d5", },
+	    { .uuid3 = "434ada18-13ce-3c08-8b40-a1a1ae030569", .uuid5 = "3493b6ca-f84b-56a9-97cc-c0bd1c46c4c0", },
+	    { .uuid3 = "a13b6160-bd23-3710-a150-41d800dd30b4", .uuid5 = "f413ea13-fcd9-5b44-9d22-1fa1f7b063a5", },
+	    { .uuid3 = "73a67c12-c5f0-3288-ad6a-c78aea0917b0", .uuid5 = "f468d924-d23b-56c2-b90f-3d1cf4b45337", },
+	    { .uuid3 = "a126ee4f-a222-357d-b71b-7d3f226c559f", .uuid5 = "8828c9d6-ed76-5c09-bf64-ba9e9cd90896", },
+	    { .uuid3 = "48f4f36b-b015-3137-9b6e-351bb175c7f7", .uuid5 = "facb7618-55ca-5c30-9cba-fd567b6c0611", },
+	    { .uuid3 = "3fe8f6a3-fe4a-3487-89d6-dd06c6ad02e3", .uuid5 = "96f3de0e-6412-5434-b406-67ef3352ab85", },
+	    { .uuid3 = "d68fa2d4-adc9-3b20-ac77-42585cd1d59f", .uuid5 = "9ebacb89-40ab-52b3-93a2-9054611d8f55", },
+	    { .uuid3 = "819f86a3-31d5-3e72-a83e-142c3a3e4832", .uuid5 = "681046ff-9129-5ade-b11c-769864e02184", },
+	    { .uuid3 = "9957b433-ddc8-3113-a3e6-5512cf13dab1", .uuid5 = "c13d0b5d-1ca3-57b6-a23f-8586bca44928", },
+	    { .uuid3 = "5aab6e0c-b7d3-379c-92e3-2bfbb5572511", .uuid5 = "7c411b5e-9d3f-50b5-9c28-62096e41c4ed", },
+	    { .uuid3 = "11c8ff30-3a7d-3547-80a7-d61b8abeeda8", .uuid5 = "f825aafe-6696-5121-b263-6b2c408b7f43", },
+	    { .uuid3 = "98799b9f-1c5e-30b3-930f-e412b862cbe4", .uuid5 = "f2b4caea-61c3-5bed-8ce7-d8b9d16e129e", },
+	    { .uuid3 = "9bdf2544-31d8-3555-94b0-6a749118a996", .uuid5 = "3593855a-6557-5736-8cab-172c6987f949", },
+	    { .uuid3 = "ddcfb9b3-e990-3985-9021-546a2711e7e5", .uuid5 = "36392431-d554-5385-b876-7bc6e1cb26b3", },
+	    { .uuid3 = "190d7a78-1484-3136-80a6-40f28852785c", .uuid5 = "7e645493-0898-5501-8155-e8578b4f5224", },
+	    { .uuid3 = "6ed693e4-7dc0-3210-856b-a6eb4cc73e13", .uuid5 = "14dc6a81-0491-5683-baaf-7582a61c5798", },
+	    { .uuid3 = "b6a14b21-e73a-3ce2-9076-a804c434f5c6", .uuid5 = "883e0a9c-e3b3-5f9c-8073-2913cbbb99ec", },
+	};
+	char i_str[30];
+	guint i;
+
 	_test_uuid (NM_UTILS_UUID_TYPE_LEGACY, "d41d8cd9-8f00-b204-e980-0998ecf8427e", "", -1, NULL);
 	_test_uuid (NM_UTILS_UUID_TYPE_LEGACY, "0cc175b9-c0f1-b6a8-31c3-99e269772661", "a", -1, NULL);
 	_test_uuid (NM_UTILS_UUID_TYPE_LEGACY, "098f6bcd-4621-d373-cade-4e832627b4f6", "test", -1, NULL);
 	_test_uuid (NM_UTILS_UUID_TYPE_LEGACY, "70350f60-27bc-e371-3f6b-76473084309b", "a\0b", 3, NULL);
 	_test_uuid (NM_UTILS_UUID_TYPE_LEGACY, "59c0547b-7fe2-1c15-2cce-e328e8bf6742", "/etc/NetworkManager/system-connections/em1", -1, NULL);
 
-	_test_uuid (NM_UTILS_UUID_TYPE_VARIANT3, "4ae71336-e44b-39bf-b9d2-752e234818a5", "", -1, NULL);
-	_test_uuid (NM_UTILS_UUID_TYPE_VARIANT3, "0531103a-d8fc-3dd4-b972-d98e4750994e", "a", -1, NULL);
-	_test_uuid (NM_UTILS_UUID_TYPE_VARIANT3, "96e17d7a-ac89-38cf-95e1-bf5098da34e1", "test", -1, NULL);
-	_test_uuid (NM_UTILS_UUID_TYPE_VARIANT3, "8156568e-4ae6-3f34-a93e-18e2c6cbbf78", "a\0b", 3, NULL);
+	_test_uuid (NM_UTILS_UUID_TYPE_VERSION3, "4ae71336-e44b-39bf-b9d2-752e234818a5", "", -1, NULL);
+	_test_uuid (NM_UTILS_UUID_TYPE_VERSION3, "0531103a-d8fc-3dd4-b972-d98e4750994e", "a", -1, NULL);
+	_test_uuid (NM_UTILS_UUID_TYPE_VERSION3, "96e17d7a-ac89-38cf-95e1-bf5098da34e1", "test", -1, NULL);
+	_test_uuid (NM_UTILS_UUID_TYPE_VERSION3, "8156568e-4ae6-3f34-a93e-18e2c6cbbf78", "a\0b", 3, NULL);
+
+	_test_uuid (NM_UTILS_UUID_TYPE_VERSION3, "c87ee674-4ddc-3efe-a74e-dfe25da5d7b3", "", -1, UUID_NS_DNS);
+	_test_uuid (NM_UTILS_UUID_TYPE_VERSION3, "4c104dd0-4821-30d5-9ce3-0e7a1f8b7c0d", "a", -1, UUID_NS_DNS);
+	_test_uuid (NM_UTILS_UUID_TYPE_VERSION3, "45a113ac-c7f2-30b0-90a5-a399ab912716", "test", -1, UUID_NS_DNS);
+	_test_uuid (NM_UTILS_UUID_TYPE_VERSION3, "002a0ada-f547-375a-bab5-896a11d1927e", "a\0b", 3, UUID_NS_DNS);
+	_test_uuid (NM_UTILS_UUID_TYPE_VERSION3, "9a75f5f2-195e-31a9-9d07-8c18b5d3b285", "test123", -1, UUID_NS_DNS);
+	_test_uuid (NM_UTILS_UUID_TYPE_VERSION3, "ec794efe-a384-3b11-a0b6-ec8995bc6acc", "x", -1, UUID_NS_DNS);
+
+	_test_uuid (NM_UTILS_UUID_TYPE_VERSION5, "a7650b9f-f19f-5300-8a13-91160ea8de2c", "a\0b", 3, NULL);
+	_test_uuid (NM_UTILS_UUID_TYPE_VERSION5, "4f3f2898-69e3-5a0d-820a-c4e87987dbce", "a", -1, UUID_NS_DNS);
+	_test_uuid (NM_UTILS_UUID_TYPE_VERSION5, "05b16a01-46c6-56dd-bd6e-c6dfb4a1427a", "x", -1, UUID_NS_DNS);
+	_test_uuid (NM_UTILS_UUID_TYPE_VERSION5, "c9ed566a-6b79-5d3a-b2b7-96a936b48cf3", "test123", -1, UUID_NS_DNS);
+
+	for (i = 0; i < G_N_ELEMENTS (zero_uuids); i++) {
+		nm_sprintf_buf (i_str, "%u", i),
+		_test_uuid (NM_UTILS_UUID_TYPE_VERSION3, zero_uuids[i].uuid3, i_str, -1, NULL);
+		_test_uuid (NM_UTILS_UUID_TYPE_VERSION5, zero_uuids[i].uuid5, i_str, -1, NULL);
+	}
+	for (i = 0; i < G_N_ELEMENTS (dns_uuids); i++) {
+		nm_sprintf_buf (i_str, "%u", i),
+		_test_uuid (NM_UTILS_UUID_TYPE_VERSION3, dns_uuids[i].uuid3, i_str, -1, UUID_NS_DNS);
+		_test_uuid (NM_UTILS_UUID_TYPE_VERSION5, dns_uuids[i].uuid5, i_str, -1, UUID_NS_DNS);
+	}
+
+	/* examples from cpython unit tests: */
+	_test_uuid (NM_UTILS_UUID_TYPE_VERSION3, "6fa459ea-ee8a-3ca4-894e-db77e160355e", "python.org", -1, UUID_NS_DNS);
+	_test_uuid (NM_UTILS_UUID_TYPE_VERSION5, "886313e1-3b8a-5372-9b90-0c9aee199e5d", "python.org", -1, UUID_NS_DNS);
+	_test_uuid (NM_UTILS_UUID_TYPE_VERSION3, "9fe8e8c4-aaa8-32a9-a55c-4535a88b748d", "http://python.org/", -1, UUID_NS_URL);
+	_test_uuid (NM_UTILS_UUID_TYPE_VERSION5, "4c565f0d-3f5a-5890-b41b-20cf47701c5e", "http://python.org/", -1, UUID_NS_URL);
+	_test_uuid (NM_UTILS_UUID_TYPE_VERSION3, "dd1a1cef-13d5-368a-ad82-eca71acd4cd1", "1.3.6.1", -1, UUID_NS_OID);
+	_test_uuid (NM_UTILS_UUID_TYPE_VERSION5, "1447fa61-5277-5fef-a9b3-fbc6e44f4af3", "1.3.6.1", -1, UUID_NS_OID);
+	_test_uuid (NM_UTILS_UUID_TYPE_VERSION3, "658d3002-db6b-3040-a1d1-8ddd7d189a4d", "c=ca", -1, UUID_NS_X500);
+	_test_uuid (NM_UTILS_UUID_TYPE_VERSION5, "cc957dd1-a972-5349-98cd-874190002798", "c=ca", -1, UUID_NS_X500);
 
-	_test_uuid (NM_UTILS_UUID_TYPE_VARIANT3, "c87ee674-4ddc-3efe-a74e-dfe25da5d7b3", "", -1, UUID_NS_DNS);
-	_test_uuid (NM_UTILS_UUID_TYPE_VARIANT3, "4c104dd0-4821-30d5-9ce3-0e7a1f8b7c0d", "a", -1, UUID_NS_DNS);
-	_test_uuid (NM_UTILS_UUID_TYPE_VARIANT3, "45a113ac-c7f2-30b0-90a5-a399ab912716", "test", -1, UUID_NS_DNS);
-	_test_uuid (NM_UTILS_UUID_TYPE_VARIANT3, "002a0ada-f547-375a-bab5-896a11d1927e", "a\0b", 3, UUID_NS_DNS);
+	_test_uuid (NM_UTILS_UUID_TYPE_VERSION5, "74738ff5-5367-5958-9aee-98fffdcd1876", "www.example.org", -1, UUID_NS_DNS);
 }
 
 /*****************************************************************************/
@@ -5505,7 +5670,7 @@ __test_uuid (const char *expected_uuid, const char *str, gssize slen, char *uuid
 	}
 	g_free (uuid_test);
 
-	uuid_test = nm_utils_uuid_generate_from_string (str, slen, NM_UTILS_UUID_TYPE_VARIANT3, NM_UTILS_UUID_NS);
+	uuid_test = nm_utils_uuid_generate_from_string (str, slen, NM_UTILS_UUID_TYPE_VERSION3, NM_UTILS_UUID_NS);
 
 	g_assert (uuid_test);
 	g_assert (nm_utils_is_uuid (uuid_test));
@@ -5522,6 +5687,15 @@ __test_uuid (const char *expected_uuid, const char *str, gssize slen, char *uuid
 static void
 test_nm_utils_uuid_generate_from_strings (void)
 {
+	const NMUuid uuid0 = { 0 };
+
+	g_assert_cmpmem (&uuid0, sizeof (uuid0), _uuid ("00000000-0000-0000-0000-000000000000"), 16);
+
+	g_assert (nm_utils_uuid_is_null (NULL));
+	g_assert (nm_utils_uuid_is_null (&uuid0));
+	g_assert ( nm_utils_uuid_is_null (_uuid ("00000000-0000-0000-0000-000000000000")));
+	g_assert (!nm_utils_uuid_is_null (_uuid ("10000000-0000-0000-0000-000000000000")));
+
 	_test_uuid ("b07c334a-399b-32de-8d50-58e4e08f98e3", "",         0, NULL);
 	_test_uuid ("b8a426cb-bcb5-30a3-bd8f-6786fea72df9", "\0",       1, "");
 	_test_uuid ("12a4a982-7aae-39e1-951e-41aeb1250959", "a\0",      2, "a");
diff --git a/libnm/meson.build b/libnm/meson.build
index 62e3e9d7..62e37993 100644
--- a/libnm/meson.build
+++ b/libnm/meson.build
@@ -184,7 +184,7 @@ pkg.generate(
   requires: 'gio-2.0',
   variables: [
     'exec_prefix=${prefix}',
-    'vpnservicedir=' + join_paths(nm_pkglibdir, 'VPN')
+    'vpnservicedir=' + join_paths('${prefix}', 'lib', nm_name, 'VPN')
   ]
 )
 
diff --git a/libnm/nm-access-point.c b/libnm/nm-access-point.c
index 1cac12f9..25281c92 100644
--- a/libnm/nm-access-point.c
+++ b/libnm/nm-access-point.c
@@ -367,7 +367,7 @@ nm_access_point_connection_valid (NMAccessPoint *ap, NMConnection *connection)
  * #NMDevice using nm_device_filter_connections() and finally filter that list
  * with this function.
  *
- * Returns: (transfer container) (element-type NMConnection): an array of
+ * Returns: (transfer full) (element-type NMConnection): an array of
  * #NMConnections that could be activated with the given @ap.  The array should
  * be freed with g_ptr_array_unref() when it is no longer required.
  **/
diff --git a/libnm/nm-device-tun.c b/libnm/nm-device-tun.c
index 2c88bf33..b5721350 100644
--- a/libnm/nm-device-tun.c
+++ b/libnm/nm-device-tun.c
@@ -268,6 +268,7 @@ finalize (GObject *object)
 	NMDeviceTunPrivate *priv = NM_DEVICE_TUN_GET_PRIVATE (object);
 
 	g_free (priv->mode);
+	g_free (priv->hw_address);
 
 	G_OBJECT_CLASS (nm_device_tun_parent_class)->finalize (object);
 }
diff --git a/libnm/nm-device.c b/libnm/nm-device.c
index aa45c4ad..3f1cc636 100644
--- a/libnm/nm-device.c
+++ b/libnm/nm-device.c
@@ -2533,7 +2533,7 @@ nm_device_connection_compatible (NMDevice *device, NMConnection *connection, GEr
  * incompatible with the device. To get the full list of connections see
  * nm_client_get_connections().
  *
- * Returns: (transfer container) (element-type NMConnection): an array of
+ * Returns: (transfer full) (element-type NMConnection): an array of
  * #NMConnections that could be activated with the given @device.  The array
  * should be freed with g_ptr_array_unref() when it is no longer required.
  **/
diff --git a/libnm/nm-manager.c b/libnm/nm-manager.c
index aac120c6..e108f2b0 100644
--- a/libnm/nm-manager.c
+++ b/libnm/nm-manager.c
@@ -885,22 +885,20 @@ activate_info_complete (ActivateInfo *info,
                         NMActiveConnection *active,
                         GError *error)
 {
+	nm_clear_g_signal_handler (info->cancellable, &info->cancelled_id);
+
+	c_list_unlink_stale (&info->lst);
+
 	if (active)
 		g_simple_async_result_set_op_res_gpointer (info->simple, g_object_ref (active), g_object_unref);
 	else
 		g_simple_async_result_set_from_error (info->simple, error);
 	g_simple_async_result_complete (info->simple);
 
-	c_list_unlink_stale (&info->lst);
-
 	g_free (info->active_path);
 	g_free (info->new_connection_path);
 	g_object_unref (info->simple);
-	if (info->cancellable) {
-		if (info->cancelled_id)
-			g_signal_handler_disconnect (info->cancellable, info->cancelled_id);
-		g_object_unref (info->cancellable);
-	}
+	nm_g_object_unref (info->cancellable);
 	g_slice_free (ActivateInfo, info);
 }
 
@@ -1538,7 +1536,7 @@ nm_manager_checkpoint_rollback_finish (NMManager *manager,
 	if (g_simple_async_result_propagate_error (simple, error))
 		return NULL;
 	else
-		return g_simple_async_result_get_op_res_gpointer (simple);
+		return g_hash_table_ref (g_simple_async_result_get_op_res_gpointer (simple));
 }
 
 static void
@@ -1732,6 +1730,8 @@ dispose (GObject *object)
 		priv->all_devices = NULL;
 	}
 
+	nm_clear_pointer (&priv->checkpoints, g_ptr_array_unref);
+
 	free_active_connections (manager);
 	g_clear_object (&priv->primary_connection);
 	g_clear_object (&priv->activating_connection);
diff --git a/libnm/nm-property-docs.xml b/libnm/nm-property-docs.xml
index 22aed0ea..4016bc07 100644
--- a/libnm/nm-property-docs.xml
+++ b/libnm/nm-property-docs.xml
@@ -22,7 +22,7 @@
     <property name="read-only" name_upper="READ_ONLY" type="boolean" default="FALSE" description="FALSE if the connection can be modified using the provided settings service's D-Bus interface with the right privileges, or TRUE if the connection is read-only and cannot be modified." />
     <property name="secondaries" name_upper="SECONDARIES" type="array of string" default="[]" description="List of connection UUIDs that should be activated when the base connection itself is activated. Currently only VPN connections are supported." />
     <property name="slave-type" name_upper="SLAVE_TYPE" type="string" description="Setting name of the device type of this slave's master connection (eg, &quot;bond&quot;), or NULL if this connection is not a slave." />
-    <property name="stable-id" name_upper="STABLE_ID" type="string" description="This represents the identity of the connection used for various purposes. It allows to configure multiple profiles to share the identity. Also, the stable-id can contain placeholders that are substituted dynamically and deterministically depending on the context. The stable-id is used for generating IPv6 stable private addresses with ipv6.addr-gen-mode=stable-privacy. It is also used to seed the generated cloned MAC address for ethernet.cloned-mac-address=stable and wifi.cloned-mac-address=stable. It is also used as DHCP client identifier with ipv4.dhcp-client-id=stable and to derive the DHCP DUID with ipv6.dhcp-duid=stable-[llt,ll,uuid]. Note that depending on the context where it is used, other parameters are also seeded into the generation algorithm. For example, a per-host key is commonly also included, so that different systems end up generating different IDs. Or with ipv6.addr-gen-mode=stable-privacy, also the device's name is included, so that different interfaces yield different addresses. The '$' character is treated special to perform dynamic substitutions at runtime. Currently supported are &quot;${CONNECTION}&quot;, &quot;${DEVICE}&quot;, &quot;${BOOT}&quot;, &quot;${RANDOM}&quot;. These effectively create unique IDs per-connection, per-device, per-boot, or every time. Note that &quot;${DEVICE}&quot; corresponds the the interface name of the device. Any unrecognized patterns following '$' are treated verbatim, however are reserved for future use. You are thus advised to avoid '$' or escape it as &quot;$$&quot;. For example, set it to &quot;${CONNECTION}-${BOOT}-${DEVICE}&quot; to create a unique id for this connection that changes with every reboot and differs depending on the interface where the profile activates. If the value is unset, a global connection default is consulted. If the value is still unset, the default is similar to &quot;${CONNECTION}&quot; and uses a unique, fixed ID for the connection." />
+    <property name="stable-id" name_upper="STABLE_ID" type="string" description="This represents the identity of the connection used for various purposes. It allows to configure multiple profiles to share the identity. Also, the stable-id can contain placeholders that are substituted dynamically and deterministically depending on the context. The stable-id is used for generating IPv6 stable private addresses with ipv6.addr-gen-mode=stable-privacy. It is also used to seed the generated cloned MAC address for ethernet.cloned-mac-address=stable and wifi.cloned-mac-address=stable. It is also used as DHCP client identifier with ipv4.dhcp-client-id=stable and to derive the DHCP DUID with ipv6.dhcp-duid=stable-[llt,ll,uuid]. Note that depending on the context where it is used, other parameters are also seeded into the generation algorithm. For example, a per-host key is commonly also included, so that different systems end up generating different IDs. Or with ipv6.addr-gen-mode=stable-privacy, also the device's name is included, so that different interfaces yield different addresses. The '$' character is treated special to perform dynamic substitutions at runtime. Currently supported are &quot;${CONNECTION}&quot;, &quot;${DEVICE}&quot;, &quot;${MAC}&quot;, &quot;${BOOT}&quot;, &quot;${RANDOM}&quot;. These effectively create unique IDs per-connection, per-device, per-boot, or every time. Note that &quot;${DEVICE}&quot; corresponds the the interface name of the device and &quot;${MAC}&quot; is the permanent MAC address of the device. Any unrecognized patterns following '$' are treated verbatim, however are reserved for future use. You are thus advised to avoid '$' or escape it as &quot;$$&quot;. For example, set it to &quot;${CONNECTION}-${BOOT}-${DEVICE}&quot; to create a unique id for this connection that changes with every reboot and differs depending on the interface where the profile activates. If the value is unset, a global connection default is consulted. If the value is still unset, the default is similar to &quot;${CONNECTION}&quot; and uses a unique, fixed ID for the connection." />
     <property name="timestamp" name_upper="TIMESTAMP" type="uint64" default="0" description="The time, in seconds since the Unix Epoch, that the connection was last _successfully_ fully activated. NetworkManager updates the connection timestamp periodically when the connection is active to ensure that an active connection has the latest timestamp. The property is only meant for reading (changes to this property will not be preserved)." />
     <property name="type" name_upper="TYPE" type="string" description="Base type of the connection. For hardware-dependent connections, should contain the setting name of the hardware-type specific setting (ie, &quot;802-3-ethernet&quot; or &quot;802-11-wireless&quot; or &quot;bluetooth&quot;, etc), and for non-hardware dependent connections like VPN or otherwise, should contain the setting name of that setting type (ie, &quot;vpn&quot; or &quot;bridge&quot;, etc)." />
     <property name="uuid" name_upper="UUID" type="string" description="A universally unique identifier for the connection, for example generated with libuuid.  It should be assigned when the connection is created, and never changed as long as the connection still applies to the same network.  For example, it should not be changed when the &quot;id&quot; property or NMSettingIP4Config changes, but might need to be re-created when the Wi-Fi SSID, mobile broadband network provider, or &quot;type&quot; property changes. The UUID must be in the format &quot;2815492f-7e56-435e-b2e9-246bd7cdc664&quot; (ie, contains only hexadecimal characters and &quot;-&quot;)." />
@@ -164,7 +164,7 @@
   <setting name="ipv4" description="IPv4 Settings" name_upper="IP4_CONFIG" >
     <property name="addresses" name_upper="ADDRESSES" type="array of array of uint32" default="[]" description="Array of IP addresses." />
     <property name="dad-timeout" name_upper="DAD_TIMEOUT" type="int32" default="-1" description="Timeout in milliseconds used to check for the presence of duplicate IP addresses on the network.  If an address conflict is detected, the activation will fail.  A zero value means that no duplicate address detection is performed, -1 means the default value (either configuration ipvx.dad-timeout override or zero).  A value greater than zero is a timeout in milliseconds. The property is currently implemented only for IPv4." />
-    <property name="dhcp-client-id" name_upper="DHCP_CLIENT_ID" type="string" description="A string sent to the DHCP server to identify the local machine which the DHCP server may use to customize the DHCP lease and options. When the property is a hex string ('aa:bb:cc') it is interpreted as a binary client ID, in which case the first byte is assumed to be the 'type' field as per RFC 2132 section 9.14 and the remaining bytes may be an hardware address (e.g. '01:xx:xx:xx:xx:xx:xx' where 1 is the Ethernet ARP type and the rest is a MAC address). If the property is not a hex string it is considered as a non-hardware-address client ID and the 'type' field is set to 0. The special values &quot;mac&quot; and &quot;perm-mac&quot; are supported, which use the current or permanent MAC address of the device to generate a client identifier with type ethernet (01). Currently, these options only work for ethernet type of links. The special value &quot;stable&quot; is supported to generate a type 0 client identifier based on the stable-id (see connection.stable-id) and a per-host key. If unset, a globally configured default is used. If still unset, the client-id from the last lease is reused." />
+    <property name="dhcp-client-id" name_upper="DHCP_CLIENT_ID" type="string" description="A string sent to the DHCP server to identify the local machine which the DHCP server may use to customize the DHCP lease and options. When the property is a hex string ('aa:bb:cc') it is interpreted as a binary client ID, in which case the first byte is assumed to be the 'type' field as per RFC 2132 section 9.14 and the remaining bytes may be an hardware address (e.g. '01:xx:xx:xx:xx:xx:xx' where 1 is the Ethernet ARP type and the rest is a MAC address). If the property is not a hex string it is considered as a non-hardware-address client ID and the 'type' field is set to 0. The special values &quot;mac&quot; and &quot;perm-mac&quot; are supported, which use the current or permanent MAC address of the device to generate a client identifier with type ethernet (01). Currently, these options only work for ethernet type of links. The special value &quot;duid&quot; generates a RFC4361-compliant client identifier based on a hash of the interface name as IAID and /etc/machine-id. The special value &quot;stable&quot; is supported to generate a type 0 client identifier based on the stable-id (see connection.stable-id) and a per-host key. If you set the stable-id, you may want to include the &quot;${DEVICE}&quot; or &quot;${MAC}&quot; specifier to get a per-device key. If unset, a globally configured default is used. If still unset, the default depends on the DHCP plugin." />
     <property name="dhcp-fqdn" name_upper="DHCP_FQDN" type="string" description="If the &quot;dhcp-send-hostname&quot; property is TRUE, then the specified FQDN will be sent to the DHCP server when acquiring a lease. This property and &quot;dhcp-hostname&quot; are mutually exclusive and cannot be set at the same time." />
     <property name="dhcp-hostname" name_upper="DHCP_HOSTNAME" type="string" description="If the &quot;dhcp-send-hostname&quot; property is TRUE, then the specified name will be sent to the DHCP server when acquiring a lease. This property and &quot;dhcp-fqdn&quot; are mutually exclusive and cannot be set at the same time." />
     <property name="dhcp-send-hostname" name_upper="DHCP_SEND_HOSTNAME" type="boolean" default="TRUE" description="If TRUE, a hostname is sent to the DHCP server when acquiring a lease. Some DHCP servers use this hostname to update DNS databases, essentially providing a static hostname for the computer.  If the &quot;dhcp-hostname&quot; property is NULL and this property is TRUE, the current persistent hostname of the computer is sent." />
@@ -187,7 +187,7 @@
     <property name="addr-gen-mode" name_upper="ADDR_GEN_MODE" type="int32" default="1" description="Configure method for creating the address for use with RFC4862 IPv6 Stateless Address Autoconfiguration. The permitted values are: NM_SETTING_IP6_CONFIG_ADDR_GEN_MODE_EUI64 (0) or NM_SETTING_IP6_CONFIG_ADDR_GEN_MODE_STABLE_PRIVACY (1). If the property is set to EUI64, the addresses will be generated using the interface tokens derived from hardware address. This makes the host part of the address to stay constant, making it possible to track host's presence when it changes networks. The address changes when the interface hardware is replaced. The value of stable-privacy enables use of cryptographically secure hash of a secret host-specific key along with the connection's stable-id and the network address as specified by RFC7217. This makes it impossible to use the address track host's presence, and makes the address stable when the network interface hardware is replaced. On D-Bus, the absence of an addr-gen-mode setting equals enabling stable-privacy. For keyfile plugin, the absence of the setting on disk means EUI64 so that the property doesn't change on upgrade from older versions. Note that this setting is distinct from the Privacy Extensions as configured by &quot;ip6-privacy&quot; property and it does not affect the temporary addresses configured with this option." />
     <property name="addresses" name_upper="ADDRESSES" type="array of legacy IPv6 address struct" default="[]" description="Array of IP addresses." />
     <property name="dad-timeout" name_upper="DAD_TIMEOUT" type="int32" default="-1" description="Timeout in milliseconds used to check for the presence of duplicate IP addresses on the network.  If an address conflict is detected, the activation will fail.  A zero value means that no duplicate address detection is performed, -1 means the default value (either configuration ipvx.dad-timeout override or zero).  A value greater than zero is a timeout in milliseconds. The property is currently implemented only for IPv4." />
-    <property name="dhcp-duid" name_upper="DHCP_DUID" type="string" description="A string containing the DHCPv6 Unique Identifier (DUID) used by the dhcp client to identify itself to DHCPv6 servers (RFC 3315). The DUID is carried in the Client Identifier option. If the property is a hex string ('aa:bb:cc') it is interpreted as a binary DUID and filled as an opaque value in the Client Identifier option. The special value &quot;lease&quot; will retrieve the DUID previously used from the lease file belonging to the connection. If no DUID is found and &quot;dhclient&quot; is the configured dhcp client, the DUID is searched in the system-wide dhclient lease file. If still no DUID is found, or another dhcp client is used, a global and permanent DUID-UUID (RFC 6355) will be generated based on the machine-id. The special values &quot;llt&quot; and &quot;ll&quot; will generate a DUID of type LLT or LL (see RFC 3315) based on the current MAC address of the device. In order to try providing a stable DUID-LLT, the time field will contain a constant timestamp that is used globally (for all profiles) and persisted to disk. The special values &quot;stable-llt&quot;, &quot;stable-ll&quot; and &quot;stable-uuid&quot; will generate a DUID of the corresponding type, derived from the connection's stable-id and a per-host unique key. So, the link-layer address of &quot;stable-ll&quot; and &quot;stable-llt&quot; will be a generated address derived from the stable id. The DUID-LLT time value in the &quot;stable-llt&quot; option will be picked among a static timespan of three years (the upper bound of the interval is the same constant timestamp used in &quot;llt&quot;). When the property is unset, the global value provided for &quot;ipv6.dhcp-duid&quot; is used. If no global value is provided, the default &quot;lease&quot; value is assumed." />
+    <property name="dhcp-duid" name_upper="DHCP_DUID" type="string" description="A string containing the DHCPv6 Unique Identifier (DUID) used by the dhcp client to identify itself to DHCPv6 servers (RFC 3315). The DUID is carried in the Client Identifier option. If the property is a hex string ('aa:bb:cc') it is interpreted as a binary DUID and filled as an opaque value in the Client Identifier option. The special value &quot;lease&quot; will retrieve the DUID previously used from the lease file belonging to the connection. If no DUID is found and &quot;dhclient&quot; is the configured dhcp client, the DUID is searched in the system-wide dhclient lease file. If still no DUID is found, or another dhcp client is used, a global and permanent DUID-UUID (RFC 6355) will be generated based on the machine-id. The special values &quot;llt&quot; and &quot;ll&quot; will generate a DUID of type LLT or LL (see RFC 3315) based on the current MAC address of the device. In order to try providing a stable DUID-LLT, the time field will contain a constant timestamp that is used globally (for all profiles) and persisted to disk. The special values &quot;stable-llt&quot;, &quot;stable-ll&quot; and &quot;stable-uuid&quot; will generate a DUID of the corresponding type, derived from the connection's stable-id and a per-host unique key. You may want to include the &quot;${DEVICE}&quot; or &quot;${MAC}&quot; specifier in the stable-id, in case this profile gets activated on multiple devices. So, the link-layer address of &quot;stable-ll&quot; and &quot;stable-llt&quot; will be a generated address derived from the stable id. The DUID-LLT time value in the &quot;stable-llt&quot; option will be picked among a static timespan of three years (the upper bound of the interval is the same constant timestamp used in &quot;llt&quot;). When the property is unset, the global value provided for &quot;ipv6.dhcp-duid&quot; is used. If no global value is provided, the default &quot;lease&quot; value is assumed." />
     <property name="dhcp-hostname" name_upper="DHCP_HOSTNAME" type="string" description="If the &quot;dhcp-send-hostname&quot; property is TRUE, then the specified name will be sent to the DHCP server when acquiring a lease. This property and &quot;dhcp-fqdn&quot; are mutually exclusive and cannot be set at the same time." />
     <property name="dhcp-send-hostname" name_upper="DHCP_SEND_HOSTNAME" type="boolean" default="TRUE" description="If TRUE, a hostname is sent to the DHCP server when acquiring a lease. Some DHCP servers use this hostname to update DNS databases, essentially providing a static hostname for the computer.  If the &quot;dhcp-hostname&quot; property is NULL and this property is TRUE, the current persistent hostname of the computer is sent." />
     <property name="dhcp-timeout" name_upper="DHCP_TIMEOUT" type="int32" default="0" description="A timeout for a DHCP transaction in seconds." />
@@ -309,8 +309,8 @@
   </setting>
   <setting name="sriov" description="SR-IOV settings." name_upper="SRIOV" >
     <property name="autoprobe-drivers" name_upper="AUTOPROBE_DRIVERS" type="NMTernary (int32)" description="Whether to autoprobe virtual functions by a compatible driver. If set to NM_TERNARY_TRUE (1), the kernel will try to bind VFs to a compatible driver and if this succeeds a new network interface will be instantiated for each VF. If set to NM_TERNARY_FALSE (0), VFs will not be claimed and no network interfaces will be created for them. When set to NM_TERNARY_DEFAULT (-1), the global default is used; in case the global default is unspecified it is assumed to be NM_TERNARY_TRUE (1)." />
-    <property name="total-vfs" name_upper="TOTAL_VFS" type="uint32" default="0" description="The total number of virtual functions to create." />
-    <property name="vfs" name_upper="VFS" type="array of vardict" default="[]" description="Array of virtual function descriptors. Each VF descriptor is a dictionary mapping attribute names to GVariant values. The 'index' entry is mandatory for each VF. When represented as string a VF is in the form: &quot;INDEX [ATTR=VALUE[ ATTR=VALUE]...]&quot;. for example: &quot;2 mac=00:11:22:33:44:55 spoof-check=true&quot;. The &quot;vlans&quot; attribute is represented as a semicolor-separated list of VLAN descriptors, where each descriptor has the form &quot;ID[.PRIORITY[.PROTO]]&quot;. PROTO can be either 'q' for 802.1Q (the default) or 'ad' for 802.1ad." />
+    <property name="total-vfs" name_upper="TOTAL_VFS" type="uint32" default="0" description="The total number of virtual functions to create. Note that when the sriov setting is present NetworkManager enforces the number of virtual functions on the interface also when it is zero. To prevent any changes to SR-IOV parameters don't add a sriov setting to the connection." />
+    <property name="vfs" name_upper="VFS" type="array of vardict" default="[]" description="Array of virtual function descriptors. Each VF descriptor is a dictionary mapping attribute names to GVariant values. The 'index' entry is mandatory for each VF. When represented as string a VF is in the form: &quot;INDEX [ATTR=VALUE[ ATTR=VALUE]...]&quot;. for example: &quot;2 mac=00:11:22:33:44:55 spoof-check=true&quot;. Multiple VFs can be specified using a comma as separator. Currently the following attributes are supported: mac, spoof-check, trust, min-tx-rate, max-tx-rate, vlans. The &quot;vlans&quot; attribute is represented as a semicolon-separated list of VLAN descriptors, where each descriptor has the form &quot;ID[.PRIORITY[.PROTO]]&quot;. PROTO can be either 'q' for 802.1Q (the default) or 'ad' for 802.1ad." />
   </setting>
   <setting name="tc" description="Linux Traffic Control Settings." name_upper="TC_CONFIG" >
     <property name="qdiscs" name_upper="QDISCS" type="array of vardict" default="[]" description="Array of TC queueing disciplines." />
diff --git a/libnm/nm-remote-connection.c b/libnm/nm-remote-connection.c
index 6c1e0924..08faa77e 100644
--- a/libnm/nm-remote-connection.c
+++ b/libnm/nm-remote-connection.c
@@ -918,7 +918,7 @@ get_property (GObject *object, guint prop_id,
 		g_value_set_boolean (value, NM_REMOTE_CONNECTION_GET_PRIVATE (object)->unsaved);
 		break;
 	case PROP_FLAGS:
-		g_value_set_boolean (value, NM_REMOTE_CONNECTION_GET_PRIVATE (object)->flags);
+		g_value_set_uint (value, NM_REMOTE_CONNECTION_GET_PRIVATE (object)->flags);
 		break;
 	case PROP_FILENAME:
 		g_value_set_string (value, NM_REMOTE_CONNECTION_GET_PRIVATE (object)->filename);
diff --git a/libnm/nm-settings-docs.xml b/libnm/nm-settings-docs.xml
index 258d3558..f3dca3fb 100644
--- a/libnm/nm-settings-docs.xml
+++ b/libnm/nm-settings-docs.xml
@@ -22,7 +22,7 @@
     <property name="read-only" name_upper="READ_ONLY" type="boolean" default="FALSE" description="FALSE if the connection can be modified using the provided settings service's D-Bus interface with the right privileges, or TRUE if the connection is read-only and cannot be modified." />
     <property name="secondaries" name_upper="SECONDARIES" type="array of string" default="[]" description="List of connection UUIDs that should be activated when the base connection itself is activated. Currently only VPN connections are supported." />
     <property name="slave-type" name_upper="SLAVE_TYPE" type="string" description="Setting name of the device type of this slave's master connection (eg, &quot;bond&quot;), or NULL if this connection is not a slave." />
-    <property name="stable-id" name_upper="STABLE_ID" type="string" description="This represents the identity of the connection used for various purposes. It allows to configure multiple profiles to share the identity. Also, the stable-id can contain placeholders that are substituted dynamically and deterministically depending on the context. The stable-id is used for generating IPv6 stable private addresses with ipv6.addr-gen-mode=stable-privacy. It is also used to seed the generated cloned MAC address for ethernet.cloned-mac-address=stable and wifi.cloned-mac-address=stable. It is also used as DHCP client identifier with ipv4.dhcp-client-id=stable and to derive the DHCP DUID with ipv6.dhcp-duid=stable-[llt,ll,uuid]. Note that depending on the context where it is used, other parameters are also seeded into the generation algorithm. For example, a per-host key is commonly also included, so that different systems end up generating different IDs. Or with ipv6.addr-gen-mode=stable-privacy, also the device's name is included, so that different interfaces yield different addresses. The '$' character is treated special to perform dynamic substitutions at runtime. Currently supported are &quot;${CONNECTION}&quot;, &quot;${DEVICE}&quot;, &quot;${BOOT}&quot;, &quot;${RANDOM}&quot;. These effectively create unique IDs per-connection, per-device, per-boot, or every time. Note that &quot;${DEVICE}&quot; corresponds the the interface name of the device. Any unrecognized patterns following '$' are treated verbatim, however are reserved for future use. You are thus advised to avoid '$' or escape it as &quot;$$&quot;. For example, set it to &quot;${CONNECTION}-${BOOT}-${DEVICE}&quot; to create a unique id for this connection that changes with every reboot and differs depending on the interface where the profile activates. If the value is unset, a global connection default is consulted. If the value is still unset, the default is similar to &quot;${CONNECTION}&quot; and uses a unique, fixed ID for the connection." />
+    <property name="stable-id" name_upper="STABLE_ID" type="string" description="This represents the identity of the connection used for various purposes. It allows to configure multiple profiles to share the identity. Also, the stable-id can contain placeholders that are substituted dynamically and deterministically depending on the context. The stable-id is used for generating IPv6 stable private addresses with ipv6.addr-gen-mode=stable-privacy. It is also used to seed the generated cloned MAC address for ethernet.cloned-mac-address=stable and wifi.cloned-mac-address=stable. It is also used as DHCP client identifier with ipv4.dhcp-client-id=stable and to derive the DHCP DUID with ipv6.dhcp-duid=stable-[llt,ll,uuid]. Note that depending on the context where it is used, other parameters are also seeded into the generation algorithm. For example, a per-host key is commonly also included, so that different systems end up generating different IDs. Or with ipv6.addr-gen-mode=stable-privacy, also the device's name is included, so that different interfaces yield different addresses. The '$' character is treated special to perform dynamic substitutions at runtime. Currently supported are &quot;${CONNECTION}&quot;, &quot;${DEVICE}&quot;, &quot;${MAC}&quot;, &quot;${BOOT}&quot;, &quot;${RANDOM}&quot;. These effectively create unique IDs per-connection, per-device, per-boot, or every time. Note that &quot;${DEVICE}&quot; corresponds the the interface name of the device and &quot;${MAC}&quot; is the permanent MAC address of the device. Any unrecognized patterns following '$' are treated verbatim, however are reserved for future use. You are thus advised to avoid '$' or escape it as &quot;$$&quot;. For example, set it to &quot;${CONNECTION}-${BOOT}-${DEVICE}&quot; to create a unique id for this connection that changes with every reboot and differs depending on the interface where the profile activates. If the value is unset, a global connection default is consulted. If the value is still unset, the default is similar to &quot;${CONNECTION}&quot; and uses a unique, fixed ID for the connection." />
     <property name="timestamp" name_upper="TIMESTAMP" type="uint64" default="0" description="The time, in seconds since the Unix Epoch, that the connection was last _successfully_ fully activated. NetworkManager updates the connection timestamp periodically when the connection is active to ensure that an active connection has the latest timestamp. The property is only meant for reading (changes to this property will not be preserved)." />
     <property name="type" name_upper="TYPE" type="string" description="Base type of the connection. For hardware-dependent connections, should contain the setting name of the hardware-type specific setting (ie, &quot;802-3-ethernet&quot; or &quot;802-11-wireless&quot; or &quot;bluetooth&quot;, etc), and for non-hardware dependent connections like VPN or otherwise, should contain the setting name of that setting type (ie, &quot;vpn&quot; or &quot;bridge&quot;, etc)." />
     <property name="uuid" name_upper="UUID" type="string" description="A universally unique identifier for the connection, for example generated with libuuid.  It should be assigned when the connection is created, and never changed as long as the connection still applies to the same network.  For example, it should not be changed when the &quot;id&quot; property or NMSettingIP4Config changes, but might need to be re-created when the Wi-Fi SSID, mobile broadband network provider, or &quot;type&quot; property changes. The UUID must be in the format &quot;2815492f-7e56-435e-b2e9-246bd7cdc664&quot; (ie, contains only hexadecimal characters and &quot;-&quot;)." />
@@ -167,7 +167,7 @@
     <property name="address-data" name_upper="ADDRESS_DATA" type="array of vardict" description="Array of IPv4 addresses. Each address dictionary contains at least 'address' and 'prefix' entries, containing the IP address as a string, and the prefix length as a uint32. Additional attributes may also exist on some addresses." />
     <property name="addresses" name_upper="ADDRESSES" type="array of array of uint32" default="[]" description="Deprecated in favor of the 'address-data' and 'gateway' properties, but this can be used for backward-compatibility with older daemons. Note that if you send this property the daemon will ignore 'address-data' and 'gateway'.  Array of IPv4 address structures.  Each IPv4 address structure is composed of 3 32-bit values; the first being the IPv4 address (network byte order), the second the prefix (1 - 32), and last the IPv4 gateway (network byte order). The gateway may be left as 0 if no gateway exists for that subnet." />
     <property name="dad-timeout" name_upper="DAD_TIMEOUT" type="int32" default="-1" description="Timeout in milliseconds used to check for the presence of duplicate IP addresses on the network.  If an address conflict is detected, the activation will fail.  A zero value means that no duplicate address detection is performed, -1 means the default value (either configuration ipvx.dad-timeout override or zero).  A value greater than zero is a timeout in milliseconds. The property is currently implemented only for IPv4." />
-    <property name="dhcp-client-id" name_upper="DHCP_CLIENT_ID" type="string" description="A string sent to the DHCP server to identify the local machine which the DHCP server may use to customize the DHCP lease and options. When the property is a hex string ('aa:bb:cc') it is interpreted as a binary client ID, in which case the first byte is assumed to be the 'type' field as per RFC 2132 section 9.14 and the remaining bytes may be an hardware address (e.g. '01:xx:xx:xx:xx:xx:xx' where 1 is the Ethernet ARP type and the rest is a MAC address). If the property is not a hex string it is considered as a non-hardware-address client ID and the 'type' field is set to 0. The special values &quot;mac&quot; and &quot;perm-mac&quot; are supported, which use the current or permanent MAC address of the device to generate a client identifier with type ethernet (01). Currently, these options only work for ethernet type of links. The special value &quot;stable&quot; is supported to generate a type 0 client identifier based on the stable-id (see connection.stable-id) and a per-host key. If unset, a globally configured default is used. If still unset, the client-id from the last lease is reused." />
+    <property name="dhcp-client-id" name_upper="DHCP_CLIENT_ID" type="string" description="A string sent to the DHCP server to identify the local machine which the DHCP server may use to customize the DHCP lease and options. When the property is a hex string ('aa:bb:cc') it is interpreted as a binary client ID, in which case the first byte is assumed to be the 'type' field as per RFC 2132 section 9.14 and the remaining bytes may be an hardware address (e.g. '01:xx:xx:xx:xx:xx:xx' where 1 is the Ethernet ARP type and the rest is a MAC address). If the property is not a hex string it is considered as a non-hardware-address client ID and the 'type' field is set to 0. The special values &quot;mac&quot; and &quot;perm-mac&quot; are supported, which use the current or permanent MAC address of the device to generate a client identifier with type ethernet (01). Currently, these options only work for ethernet type of links. The special value &quot;duid&quot; generates a RFC4361-compliant client identifier based on a hash of the interface name as IAID and /etc/machine-id. The special value &quot;stable&quot; is supported to generate a type 0 client identifier based on the stable-id (see connection.stable-id) and a per-host key. If you set the stable-id, you may want to include the &quot;${DEVICE}&quot; or &quot;${MAC}&quot; specifier to get a per-device key. If unset, a globally configured default is used. If still unset, the default depends on the DHCP plugin." />
     <property name="dhcp-fqdn" name_upper="DHCP_FQDN" type="string" description="If the &quot;dhcp-send-hostname&quot; property is TRUE, then the specified FQDN will be sent to the DHCP server when acquiring a lease. This property and &quot;dhcp-hostname&quot; are mutually exclusive and cannot be set at the same time." />
     <property name="dhcp-hostname" name_upper="DHCP_HOSTNAME" type="string" description="If the &quot;dhcp-send-hostname&quot; property is TRUE, then the specified name will be sent to the DHCP server when acquiring a lease. This property and &quot;dhcp-fqdn&quot; are mutually exclusive and cannot be set at the same time." />
     <property name="dhcp-send-hostname" name_upper="DHCP_SEND_HOSTNAME" type="boolean" default="TRUE" description="If TRUE, a hostname is sent to the DHCP server when acquiring a lease. Some DHCP servers use this hostname to update DNS databases, essentially providing a static hostname for the computer.  If the &quot;dhcp-hostname&quot; property is NULL and this property is TRUE, the current persistent hostname of the computer is sent." />
@@ -192,7 +192,7 @@
     <property name="address-data" name_upper="ADDRESS_DATA" type="array of vardict" description="Array of IPv6 addresses. Each address dictionary contains at least 'address' and 'prefix' entries, containing the IP address as a string, and the prefix length as a uint32. Additional attributes may also exist on some addresses." />
     <property name="addresses" name_upper="ADDRESSES" type="array of legacy IPv6 address struct (a(ayuay))" default="[]" description="Deprecated in favor of the 'address-data' and 'gateway' properties, but this can be used for backward-compatibility with older daemons. Note that if you send this property the daemon will ignore 'address-data' and 'gateway'.  Array of IPv6 address structures.  Each IPv6 address structure is composed of an IPv6 address, a prefix length (1 - 128), and an IPv6 gateway address. The gateway may be zeroed out if no gateway exists for that subnet." />
     <property name="dad-timeout" name_upper="DAD_TIMEOUT" type="int32" default="-1" description="Timeout in milliseconds used to check for the presence of duplicate IP addresses on the network.  If an address conflict is detected, the activation will fail.  A zero value means that no duplicate address detection is performed, -1 means the default value (either configuration ipvx.dad-timeout override or zero).  A value greater than zero is a timeout in milliseconds. The property is currently implemented only for IPv4." />
-    <property name="dhcp-duid" name_upper="DHCP_DUID" type="string" description="A string containing the DHCPv6 Unique Identifier (DUID) used by the dhcp client to identify itself to DHCPv6 servers (RFC 3315). The DUID is carried in the Client Identifier option. If the property is a hex string ('aa:bb:cc') it is interpreted as a binary DUID and filled as an opaque value in the Client Identifier option. The special value &quot;lease&quot; will retrieve the DUID previously used from the lease file belonging to the connection. If no DUID is found and &quot;dhclient&quot; is the configured dhcp client, the DUID is searched in the system-wide dhclient lease file. If still no DUID is found, or another dhcp client is used, a global and permanent DUID-UUID (RFC 6355) will be generated based on the machine-id. The special values &quot;llt&quot; and &quot;ll&quot; will generate a DUID of type LLT or LL (see RFC 3315) based on the current MAC address of the device. In order to try providing a stable DUID-LLT, the time field will contain a constant timestamp that is used globally (for all profiles) and persisted to disk. The special values &quot;stable-llt&quot;, &quot;stable-ll&quot; and &quot;stable-uuid&quot; will generate a DUID of the corresponding type, derived from the connection's stable-id and a per-host unique key. So, the link-layer address of &quot;stable-ll&quot; and &quot;stable-llt&quot; will be a generated address derived from the stable id. The DUID-LLT time value in the &quot;stable-llt&quot; option will be picked among a static timespan of three years (the upper bound of the interval is the same constant timestamp used in &quot;llt&quot;). When the property is unset, the global value provided for &quot;ipv6.dhcp-duid&quot; is used. If no global value is provided, the default &quot;lease&quot; value is assumed." />
+    <property name="dhcp-duid" name_upper="DHCP_DUID" type="string" description="A string containing the DHCPv6 Unique Identifier (DUID) used by the dhcp client to identify itself to DHCPv6 servers (RFC 3315). The DUID is carried in the Client Identifier option. If the property is a hex string ('aa:bb:cc') it is interpreted as a binary DUID and filled as an opaque value in the Client Identifier option. The special value &quot;lease&quot; will retrieve the DUID previously used from the lease file belonging to the connection. If no DUID is found and &quot;dhclient&quot; is the configured dhcp client, the DUID is searched in the system-wide dhclient lease file. If still no DUID is found, or another dhcp client is used, a global and permanent DUID-UUID (RFC 6355) will be generated based on the machine-id. The special values &quot;llt&quot; and &quot;ll&quot; will generate a DUID of type LLT or LL (see RFC 3315) based on the current MAC address of the device. In order to try providing a stable DUID-LLT, the time field will contain a constant timestamp that is used globally (for all profiles) and persisted to disk. The special values &quot;stable-llt&quot;, &quot;stable-ll&quot; and &quot;stable-uuid&quot; will generate a DUID of the corresponding type, derived from the connection's stable-id and a per-host unique key. You may want to include the &quot;${DEVICE}&quot; or &quot;${MAC}&quot; specifier in the stable-id, in case this profile gets activated on multiple devices. So, the link-layer address of &quot;stable-ll&quot; and &quot;stable-llt&quot; will be a generated address derived from the stable id. The DUID-LLT time value in the &quot;stable-llt&quot; option will be picked among a static timespan of three years (the upper bound of the interval is the same constant timestamp used in &quot;llt&quot;). When the property is unset, the global value provided for &quot;ipv6.dhcp-duid&quot; is used. If no global value is provided, the default &quot;lease&quot; value is assumed." />
     <property name="dhcp-hostname" name_upper="DHCP_HOSTNAME" type="string" description="If the &quot;dhcp-send-hostname&quot; property is TRUE, then the specified name will be sent to the DHCP server when acquiring a lease. This property and &quot;dhcp-fqdn&quot; are mutually exclusive and cannot be set at the same time." />
     <property name="dhcp-send-hostname" name_upper="DHCP_SEND_HOSTNAME" type="boolean" default="TRUE" description="If TRUE, a hostname is sent to the DHCP server when acquiring a lease. Some DHCP servers use this hostname to update DNS databases, essentially providing a static hostname for the computer.  If the &quot;dhcp-hostname&quot; property is NULL and this property is TRUE, the current persistent hostname of the computer is sent." />
     <property name="dhcp-timeout" name_upper="DHCP_TIMEOUT" type="int32" default="0" description="A timeout for a DHCP transaction in seconds." />
@@ -315,8 +315,8 @@
   </setting>
   <setting name="sriov" description="SR-IOV settings." name_upper="SRIOV" >
     <property name="autoprobe-drivers" name_upper="AUTOPROBE_DRIVERS" type="NMTernary (int32)" description="Whether to autoprobe virtual functions by a compatible driver. If set to NM_TERNARY_TRUE (1), the kernel will try to bind VFs to a compatible driver and if this succeeds a new network interface will be instantiated for each VF. If set to NM_TERNARY_FALSE (0), VFs will not be claimed and no network interfaces will be created for them. When set to NM_TERNARY_DEFAULT (-1), the global default is used; in case the global default is unspecified it is assumed to be NM_TERNARY_TRUE (1)." />
-    <property name="total-vfs" name_upper="TOTAL_VFS" type="uint32" default="0" description="The total number of virtual functions to create." />
-    <property name="vfs" name_upper="VFS" type="array of vardict" default="[]" description="Array of virtual function descriptors. Each VF descriptor is a dictionary mapping attribute names to GVariant values. The 'index' entry is mandatory for each VF. When represented as string a VF is in the form: &quot;INDEX [ATTR=VALUE[ ATTR=VALUE]...]&quot;. for example: &quot;2 mac=00:11:22:33:44:55 spoof-check=true&quot;. The &quot;vlans&quot; attribute is represented as a semicolor-separated list of VLAN descriptors, where each descriptor has the form &quot;ID[.PRIORITY[.PROTO]]&quot;. PROTO can be either 'q' for 802.1Q (the default) or 'ad' for 802.1ad." />
+    <property name="total-vfs" name_upper="TOTAL_VFS" type="uint32" default="0" description="The total number of virtual functions to create. Note that when the sriov setting is present NetworkManager enforces the number of virtual functions on the interface also when it is zero. To prevent any changes to SR-IOV parameters don't add a sriov setting to the connection." />
+    <property name="vfs" name_upper="VFS" type="array of vardict" default="[]" description="Array of virtual function descriptors. Each VF descriptor is a dictionary mapping attribute names to GVariant values. The 'index' entry is mandatory for each VF. When represented as string a VF is in the form: &quot;INDEX [ATTR=VALUE[ ATTR=VALUE]...]&quot;. for example: &quot;2 mac=00:11:22:33:44:55 spoof-check=true&quot;. Multiple VFs can be specified using a comma as separator. Currently the following attributes are supported: mac, spoof-check, trust, min-tx-rate, max-tx-rate, vlans. The &quot;vlans&quot; attribute is represented as a semicolon-separated list of VLAN descriptors, where each descriptor has the form &quot;ID[.PRIORITY[.PROTO]]&quot;. PROTO can be either 'q' for 802.1Q (the default) or 'ad' for 802.1ad." />
   </setting>
   <setting name="tc" description="Linux Traffic Control Settings." name_upper="TC_CONFIG" >
     <property name="qdiscs" name_upper="QDISCS" type="array of vardict" default="[]" description="Array of TC queueing disciplines." />
diff --git a/libnm/nm-wimax-nsp.c b/libnm/nm-wimax-nsp.c
index f8c8ca42..90c2c2bb 100644
--- a/libnm/nm-wimax-nsp.c
+++ b/libnm/nm-wimax-nsp.c
@@ -151,7 +151,7 @@ nm_wimax_nsp_connection_valid (NMWimaxNsp *nsp, NMConnection *connection)
  * return connections which may be activated with the NSP.  Any returned
  * connections will match the @nsp's network name and other attributes.
  *
- * Returns: (transfer container) (element-type NMConnection): an array of
+ * Returns: (transfer full) (element-type NMConnection): an array of
  * #NMConnections that could be activated with the given @nsp.  The array should
  * be freed with g_ptr_array_unref() when it is no longer required.
  **/
diff --git a/man/NetworkManager.8 b/man/NetworkManager.8
index 5cf80c19..4d82097c 100644
--- a/man/NetworkManager.8
+++ b/man/NetworkManager.8
@@ -2,12 +2,12 @@
 .\"     Title: NetworkManager
 .\"    Author: 
 .\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\"      Date: 10/24/2018
+.\"      Date: 02/23/2019
 .\"    Manual: Network management daemons
-.\"    Source: NetworkManager 1.14.4
+.\"    Source: NetworkManager 1.14.6
 .\"  Language: English
 .\"
-.TH "NETWORKMANAGER" "8" "" "NetworkManager 1\&.14\&.4" "Network management daemons"
+.TH "NETWORKMANAGER" "8" "" "NetworkManager 1\&.14\&.6" "Network management daemons"
 .\" -----------------------------------------------------------------
 .\" * Define some portability stuff
 .\" -----------------------------------------------------------------
diff --git a/man/NetworkManager.conf.5 b/man/NetworkManager.conf.5
index a27b8c3e..13efa991 100644
--- a/man/NetworkManager.conf.5
+++ b/man/NetworkManager.conf.5
@@ -2,12 +2,12 @@
 .\"     Title: NetworkManager.conf
 .\"    Author: 
 .\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\"      Date: 10/24/2018
+.\"      Date: 02/23/2019
 .\"    Manual: Configuration
-.\"    Source: NetworkManager 1.14.4
+.\"    Source: NetworkManager 1.14.6
 .\"  Language: English
 .\"
-.TH "NETWORKMANAGER\&.CONF" "5" "" "NetworkManager 1\&.14\&.4" "Configuration"
+.TH "NETWORKMANAGER\&.CONF" "5" "" "NetworkManager 1\&.14\&.6" "Configuration"
 .\" -----------------------------------------------------------------
 .\" * Define some portability stuff
 .\" -----------------------------------------------------------------
@@ -584,6 +584,14 @@ Not all properties can be overwritten, only the following properties are support
 \fBnm-settings\fR(5)
 for details)\&. A default value is only consulted if the corresponding per\-connection value explicitly allows for that\&.
 .PP
+\fI802\-1x\&.auth\-timeout\fR
+.RS 4
+.RE
+.PP
+\fIcdma\&.mtu\fR
+.RS 4
+.RE
+.PP
 \fIconnection\&.auth\-retries\fR
 .RS 4
 If left unspecified, the default value is 3 tries before failing the connection\&.
@@ -627,6 +635,10 @@ If configured explicitly to 0, the MTU is not reconfigured during device activat
 .RS 4
 .RE
 .PP
+\fIgsm\&.mtu\fR
+.RS 4
+.RE
+.PP
 \fIinfiniband\&.mtu\fR
 .RS 4
 If configured explicitly to 0, the MTU is not reconfigured during device activation unless it is required due to IPv6 constraints\&. If left unspecified, a DHCP/IPv6 SLAAC provided value is used or the MTU is left unspecified on activation\&.
@@ -729,6 +741,10 @@ If left unspecified, the default value "optional" will be used\&.
 .RS 4
 If left unspecified, the default value "optional" will be used\&.
 .RE
+.PP
+\fIwifi\&.wake\-on\-wlan\fR
+.RS 4
+.RE
 .SS "Sections"
 .PP
 You can configure multiple
@@ -1004,7 +1020,7 @@ enable=env:TAG1
 .RE
 .\}
 .sp
-More then one match can be specified\&. The configuration will be enabled if one of the predicates matches ("or")\&. The special prefix "except:" can be used to negate the match\&. Note that if one except\-predicate matches, the entire configuration will be disabled\&. In other words, a except predicate always wins over other predicates\&.
+More then one match can be specified\&. The configuration will be enabled if one of the predicates matches ("or")\&. The special prefix "except:" can be used to negate the match\&. Note that if one except\-predicate matches, the entire configuration will be disabled\&. In other words, a except predicate always wins over other predicates\&. If the setting only consists of "except:" matches and none of the negative conditions are satisfied, the configuration is still enabled\&.
 .sp
 .if n \{\
 .RS 4
@@ -1161,12 +1177,22 @@ driver:DRIVER
 Match the device driver as reported by "nmcli \-f GENERAL\&.DRIVER,GENERAL\&.DRIVER\-VERSION device show"\&. "DRIVER" must match the driver name exactly and does not support globbing\&. Optionally, a driver version may be specified separated by \*(Aq/\*(Aq\&. Globbing is supported for the version\&.
 .RE
 .PP
+dhcp\-plugin:DHCP
+.RS 4
+Match the configured DHCP plugin "main\&.dhcp"\&.
+.RE
+.PP
 except:SPEC
 .RS 4
 Negative match of a device\&.
 SPEC
 must be explicitly qualified with a prefix such as
 interface\-name:\&. A negative match has higher priority then the positive matches above\&.
+.sp
+If there is a list consisting only of negative matches, the behavior is the same as if there is also match\-all\&. That means, if none of all the negative matches is satisfied, the overall result is still a positive match\&. That means,
+"except:interface\-name:eth0"
+is the same as
+"*,except:interface\-name:eth0"\&.
 .RE
 .PP
 SPEC[,;]SPEC
diff --git a/man/NetworkManager.conf.xml b/man/NetworkManager.conf.xml
index 87cf0016..94a23fe8 100644
--- a/man/NetworkManager.conf.xml
+++ b/man/NetworkManager.conf.xml
@@ -643,6 +643,12 @@ ipv6.ip6-privacy=0
       explicitly allows for that.
       <variablelist>
         <varlistentry>
+          <term><varname>802-1x.auth-timeout</varname></term>
+        </varlistentry>
+        <varlistentry>
+          <term><varname>cdma.mtu</varname></term>
+        </varlistentry>
+        <varlistentry>
           <term><varname>connection.auth-retries</varname></term>
           <listitem><para>If left unspecified, the default value is 3 tries before failing the connection.
           </para></listitem>
@@ -677,6 +683,9 @@ ipv6.ip6-privacy=0
           <term><varname>ethernet.wake-on-lan</varname></term>
         </varlistentry>
         <varlistentry>
+          <term><varname>gsm.mtu</varname></term>
+        </varlistentry>
+        <varlistentry>
           <term><varname>infiniband.mtu</varname></term>
           <listitem><para>If configured explicitly to 0, the MTU is not reconfigured during device activation unless it is required due to IPv6 constraints. If left unspecified, a DHCP/IPv6 SLAAC provided value is used or the MTU is left unspecified on activation.</para></listitem>
         </varlistentry>
@@ -770,6 +779,9 @@ ipv6.ip6-privacy=0
           <listitem><para>If left unspecified, the default value
           "<literal>optional</literal>" will be used.</para></listitem>
         </varlistentry>
+        <varlistentry>
+          <term><varname>wifi.wake-on-wlan</varname></term>
+        </varlistentry>
       </variablelist>
     </para>
     </refsect2>
@@ -1158,6 +1170,8 @@ enable=env:TAG1
               be used to negate the match. Note that if one except-predicate
               matches, the entire configuration will be disabled.
               In other words, a except predicate always wins over other predicates.
+              If the setting only consists of "except:" matches and none of the
+              negative conditions are satisfied, the configuration is still enabled.
 <programlisting>
 # enable the configuration either when the environment variable
 # is present or the version is at least 1.2.0.
@@ -1344,10 +1358,19 @@ enable=nm-version-min:1.3,nm-version-min:1.2.6,nm-version-min:1.0.16
           </para></listitem>
         </varlistentry>
         <varlistentry>
+          <term>dhcp-plugin:DHCP</term>
+          <listitem><para>Match the configured DHCP plugin "<literal>main.dhcp</literal>".
+          </para></listitem>
+        </varlistentry>
+        <varlistentry>
           <term>except:SPEC</term>
           <listitem><para>Negative match of a device. <literal>SPEC</literal> must be explicitly qualified with
              a prefix such as <literal>interface-name:</literal>. A negative match has higher priority then the positive
-             matches above.</para></listitem>
+             matches above.</para>
+             <para>If there is a list consisting only of negative matches, the behavior is the same as if there
+             is also match-all. That means, if none of all the negative matches is satisfied, the overall result is
+             still a positive match. That means, <literal>"except:interface-name:eth0"</literal> is the same as
+             <literal>"*,except:interface-name:eth0"</literal>.</para></listitem>
         </varlistentry>
         <varlistentry>
           <term>SPEC[,;]SPEC</term>
diff --git a/man/nm-initrd-generator.8 b/man/nm-initrd-generator.8
index 0f53f770..eaebea30 100644
--- a/man/nm-initrd-generator.8
+++ b/man/nm-initrd-generator.8
@@ -2,12 +2,12 @@
 .\"     Title: nm-initrd-generator
 .\"    Author: 
 .\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\"      Date: 10/24/2018
+.\"      Date: 02/23/2019
 .\"    Manual: System Administration
-.\"    Source: NetworkManager 1.14.4
+.\"    Source: NetworkManager 1.14.6
 .\"  Language: English
 .\"
-.TH "NM\-INITRD\-GENERATOR" "8" "" "NetworkManager 1\&.14\&.4" "System Administration"
+.TH "NM\-INITRD\-GENERATOR" "8" "" "NetworkManager 1\&.14\&.6" "System Administration"
 .\" -----------------------------------------------------------------
 .\" * Define some portability stuff
 .\" -----------------------------------------------------------------
diff --git a/man/nm-online.1 b/man/nm-online.1
index 9e2f23e9..be044e0b 100644
--- a/man/nm-online.1
+++ b/man/nm-online.1
@@ -2,12 +2,12 @@
 .\"     Title: nm-online
 .\"    Author: 
 .\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\"      Date: 10/24/2018
+.\"      Date: 02/23/2019
 .\"    Manual: General Commands Manual
-.\"    Source: NetworkManager 1.14.4
+.\"    Source: NetworkManager 1.14.6
 .\"  Language: English
 .\"
-.TH "NM\-ONLINE" "1" "" "NetworkManager 1\&.14\&.4" "General Commands Manual"
+.TH "NM\-ONLINE" "1" "" "NetworkManager 1\&.14\&.6" "General Commands Manual"
 .\" -----------------------------------------------------------------
 .\" * Define some portability stuff
 .\" -----------------------------------------------------------------
diff --git a/man/nm-openvswitch.7 b/man/nm-openvswitch.7
index 4b6c23b9..1a63813b 100644
--- a/man/nm-openvswitch.7
+++ b/man/nm-openvswitch.7
@@ -2,12 +2,12 @@
 .\"     Title: nm-openvswitch
 .\"    Author: 
 .\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\"      Date: 10/24/2018
+.\"      Date: 02/23/2019
 .\"    Manual: OpenVSwitch support overview
-.\"    Source: NetworkManager 1.14.4
+.\"    Source: NetworkManager 1.14.6
 .\"  Language: English
 .\"
-.TH "NM\-OPENVSWITCH" "7" "" "NetworkManager 1\&.14\&.4" "OpenVSwitch support overview"
+.TH "NM\-OPENVSWITCH" "7" "" "NetworkManager 1\&.14\&.6" "OpenVSwitch support overview"
 .\" -----------------------------------------------------------------
 .\" * Define some portability stuff
 .\" -----------------------------------------------------------------
diff --git a/man/nm-settings-ifcfg-rh.5 b/man/nm-settings-ifcfg-rh.5
index 99434ecc..eba90b88 100644
--- a/man/nm-settings-ifcfg-rh.5
+++ b/man/nm-settings-ifcfg-rh.5
@@ -2,12 +2,12 @@
 .\"     Title: nm-settings-ifcfg-rh
 .\"    Author: 
 .\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\"      Date: 10/24/2018
+.\"      Date: 02/23/2019
 .\"    Manual: Configuration
-.\"    Source: NetworkManager 1.14.4
+.\"    Source: NetworkManager 1.14.6
 .\"  Language: English
 .\"
-.TH "NM\-SETTINGS\-IFCFG\-RH" "5" "" "NetworkManager 1\&.14\&.4" "Configuration"
+.TH "NM\-SETTINGS\-IFCFG\-RH" "5" "" "NetworkManager 1\&.14\&.6" "Configuration"
 .\" -----------------------------------------------------------------
 .\" * Define some portability stuff
 .\" -----------------------------------------------------------------
diff --git a/man/nm-settings-ifcfg-rh.xml b/man/nm-settings-ifcfg-rh.xml
index 3739fb28..0c534728 100644
--- a/man/nm-settings-ifcfg-rh.xml
+++ b/man/nm-settings-ifcfg-rh.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0"?>
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd">
-<refentry id="nm-settings-ifcfg-rh"><refentryinfo><title>nm-settings-ifcfg-rh</title><author>NetworkManager developers</author></refentryinfo><refmeta><refentrytitle>nm-settings-ifcfg-rh</refentrytitle><manvolnum>5</manvolnum><refmiscinfo class="source">NetworkManager</refmiscinfo><refmiscinfo class="manual">Configuration</refmiscinfo><refmiscinfo class="version">1.14.4</refmiscinfo></refmeta><refnamediv><refname>nm-settings-ifcfg-rh</refname><refpurpose>Description of <emphasis>ifcfg-rh</emphasis> settings plugin</refpurpose></refnamediv><refsect1 id="description"><title>Description</title><para>
+<refentry id="nm-settings-ifcfg-rh"><refentryinfo><title>nm-settings-ifcfg-rh</title><author>NetworkManager developers</author></refentryinfo><refmeta><refentrytitle>nm-settings-ifcfg-rh</refentrytitle><manvolnum>5</manvolnum><refmiscinfo class="source">NetworkManager</refmiscinfo><refmiscinfo class="manual">Configuration</refmiscinfo><refmiscinfo class="version">1.14.6</refmiscinfo></refmeta><refnamediv><refname>nm-settings-ifcfg-rh</refname><refpurpose>Description of <emphasis>ifcfg-rh</emphasis> settings plugin</refpurpose></refnamediv><refsect1 id="description"><title>Description</title><para>
           NetworkManager is based on the concept of connection profiles that contain
           network configuration (see <citerefentry><refentrytitle>nm-settings</refentrytitle><manvolnum>5</manvolnum></citerefentry> for details). The profiles can be
           stored in various formats. NetworkManager uses plugins for reading and writing
diff --git a/man/nm-settings-keyfile.5 b/man/nm-settings-keyfile.5
index 09f40a7a..e6fe5c05 100644
--- a/man/nm-settings-keyfile.5
+++ b/man/nm-settings-keyfile.5
@@ -2,12 +2,12 @@
 .\"     Title: nm-settings-keyfile
 .\"    Author: 
 .\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\"      Date: 10/24/2018
+.\"      Date: 02/23/2019
 .\"    Manual: Configuration
-.\"    Source: NetworkManager 1.14.4
+.\"    Source: NetworkManager 1.14.6
 .\"  Language: English
 .\"
-.TH "NM\-SETTINGS\-KEYFILE" "5" "" "NetworkManager 1\&.14\&.4" "Configuration"
+.TH "NM\-SETTINGS\-KEYFILE" "5" "" "NetworkManager 1\&.14\&.6" "Configuration"
 .\" -----------------------------------------------------------------
 .\" * Define some portability stuff
 .\" -----------------------------------------------------------------
diff --git a/man/nm-settings-keyfile.xml b/man/nm-settings-keyfile.xml
index 9731f684..4fbbef11 100644
--- a/man/nm-settings-keyfile.xml
+++ b/man/nm-settings-keyfile.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0"?>
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd">
-<refentry id="nm-settings-keyfile"><refentryinfo><title>nm-settings-keyfile</title><author>NetworkManager developers</author></refentryinfo><refmeta><refentrytitle>nm-settings-keyfile</refentrytitle><manvolnum>5</manvolnum><refmiscinfo class="source">NetworkManager</refmiscinfo><refmiscinfo class="manual">Configuration</refmiscinfo><refmiscinfo class="version">1.14.4</refmiscinfo></refmeta><refnamediv><refname>nm-settings-keyfile</refname><refpurpose>Description of <emphasis>keyfile</emphasis> settings plugin</refpurpose></refnamediv><refsect1 id="description"><title>Description</title><para>
+<refentry id="nm-settings-keyfile"><refentryinfo><title>nm-settings-keyfile</title><author>NetworkManager developers</author></refentryinfo><refmeta><refentrytitle>nm-settings-keyfile</refentrytitle><manvolnum>5</manvolnum><refmiscinfo class="source">NetworkManager</refmiscinfo><refmiscinfo class="manual">Configuration</refmiscinfo><refmiscinfo class="version">1.14.6</refmiscinfo></refmeta><refnamediv><refname>nm-settings-keyfile</refname><refpurpose>Description of <emphasis>keyfile</emphasis> settings plugin</refpurpose></refnamediv><refsect1 id="description"><title>Description</title><para>
           NetworkManager is based on the concept of connection profiles that contain
           network configuration (see <citerefentry><refentrytitle>nm-settings</refentrytitle><manvolnum>5</manvolnum></citerefentry> for details). The profiles can be
           stored in various formats. NetworkManager uses plugins for reading and writing
diff --git a/man/nm-settings.5 b/man/nm-settings.5
index 59c7f754..70ee2711 100644
--- a/man/nm-settings.5
+++ b/man/nm-settings.5
@@ -2,12 +2,12 @@
 .\"     Title: nm-settings
 .\"    Author: 
 .\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\"      Date: 10/24/2018
+.\"      Date: 02/23/2019
 .\"    Manual: Configuration
-.\"    Source: NetworkManager 1.14.4
+.\"    Source: NetworkManager 1.14.6
 .\"  Language: English
 .\"
-.TH "NM\-SETTINGS" "5" "" "NetworkManager 1\&.14\&.4" "Configuration"
+.TH "NM\-SETTINGS" "5" "" "NetworkManager 1\&.14\&.6" "Configuration"
 .\" -----------------------------------------------------------------
 .\" * Define some portability stuff
 .\" -----------------------------------------------------------------
@@ -266,7 +266,7 @@ string
 T}:T{
 \ \&
 T}:T{
-This represents the identity of the connection used for various purposes\&. It allows to configure multiple profiles to share the identity\&. Also, the stable\-id can contain placeholders that are substituted dynamically and deterministically depending on the context\&. The stable\-id is used for generating IPv6 stable private addresses with ipv6\&.addr\-gen\-mode=stable\-privacy\&. It is also used to seed the generated cloned MAC address for ethernet\&.cloned\-mac\-address=stable and wifi\&.cloned\-mac\-address=stable\&. It is also used as DHCP client identifier with ipv4\&.dhcp\-client\-id=stable and to derive the DHCP DUID with ipv6\&.dhcp\-duid=stable\-[llt,ll,uuid]\&. Note that depending on the context where it is used, other parameters are also seeded into the generation algorithm\&. For example, a per\-host key is commonly also included, so that different systems end up generating different IDs\&. Or with ipv6\&.addr\-gen\-mode=stable\-privacy, also the device\*(Aqs name is included, so that different interfaces yield different addresses\&. The \*(Aq$\*(Aq character is treated special to perform dynamic substitutions at runtime\&. Currently supported are "${CONNECTION}", "${DEVICE}", "${BOOT}", "${RANDOM}"\&. These effectively create unique IDs per\-connection, per\-device, per\-boot, or every time\&. Note that "${DEVICE}" corresponds the the interface name of the device\&. Any unrecognized patterns following \*(Aq$\*(Aq are treated verbatim, however are reserved for future use\&. You are thus advised to avoid \*(Aq$\*(Aq or escape it as "$$"\&. For example, set it to "${CONNECTION}\-${BOOT}\-${DEVICE}" to create a unique id for this connection that changes with every reboot and differs depending on the interface where the profile activates\&. If the value is unset, a global connection default is consulted\&. If the value is still unset, the default is similar to "${CONNECTION}" and uses a unique, fixed ID for the connection\&.
+This represents the identity of the connection used for various purposes\&. It allows to configure multiple profiles to share the identity\&. Also, the stable\-id can contain placeholders that are substituted dynamically and deterministically depending on the context\&. The stable\-id is used for generating IPv6 stable private addresses with ipv6\&.addr\-gen\-mode=stable\-privacy\&. It is also used to seed the generated cloned MAC address for ethernet\&.cloned\-mac\-address=stable and wifi\&.cloned\-mac\-address=stable\&. It is also used as DHCP client identifier with ipv4\&.dhcp\-client\-id=stable and to derive the DHCP DUID with ipv6\&.dhcp\-duid=stable\-[llt,ll,uuid]\&. Note that depending on the context where it is used, other parameters are also seeded into the generation algorithm\&. For example, a per\-host key is commonly also included, so that different systems end up generating different IDs\&. Or with ipv6\&.addr\-gen\-mode=stable\-privacy, also the device\*(Aqs name is included, so that different interfaces yield different addresses\&. The \*(Aq$\*(Aq character is treated special to perform dynamic substitutions at runtime\&. Currently supported are "${CONNECTION}", "${DEVICE}", "${MAC}", "${BOOT}", "${RANDOM}"\&. These effectively create unique IDs per\-connection, per\-device, per\-boot, or every time\&. Note that "${DEVICE}" corresponds the the interface name of the device and "${MAC}" is the permanent MAC address of the device\&. Any unrecognized patterns following \*(Aq$\*(Aq are treated verbatim, however are reserved for future use\&. You are thus advised to avoid \*(Aq$\*(Aq or escape it as "$$"\&. For example, set it to "${CONNECTION}\-${BOOT}\-${DEVICE}" to create a unique id for this connection that changes with every reboot and differs depending on the interface where the profile activates\&. If the value is unset, a global connection default is consulted\&. If the value is still unset, the default is similar to "${CONNECTION}" and uses a unique, fixed ID for the connection\&.
 T}
 T{
 timestamp
@@ -1703,7 +1703,7 @@ string
 T}:T{
 \ \&
 T}:T{
-A string sent to the DHCP server to identify the local machine which the DHCP server may use to customize the DHCP lease and options\&. When the property is a hex string (\*(Aqaa:bb:cc\*(Aq) it is interpreted as a binary client ID, in which case the first byte is assumed to be the \*(Aqtype\*(Aq field as per RFC 2132 section 9\&.14 and the remaining bytes may be an hardware address (e\&.g\&. \*(Aq01:xx:xx:xx:xx:xx:xx\*(Aq where 1 is the Ethernet ARP type and the rest is a MAC address)\&. If the property is not a hex string it is considered as a non\-hardware\-address client ID and the \*(Aqtype\*(Aq field is set to 0\&. The special values "mac" and "perm\-mac" are supported, which use the current or permanent MAC address of the device to generate a client identifier with type ethernet (01)\&. Currently, these options only work for ethernet type of links\&. The special value "stable" is supported to generate a type 0 client identifier based on the stable\-id (see connection\&.stable\-id) and a per\-host key\&. If unset, a globally configured default is used\&. If still unset, the client\-id from the last lease is reused\&.
+A string sent to the DHCP server to identify the local machine which the DHCP server may use to customize the DHCP lease and options\&. When the property is a hex string (\*(Aqaa:bb:cc\*(Aq) it is interpreted as a binary client ID, in which case the first byte is assumed to be the \*(Aqtype\*(Aq field as per RFC 2132 section 9\&.14 and the remaining bytes may be an hardware address (e\&.g\&. \*(Aq01:xx:xx:xx:xx:xx:xx\*(Aq where 1 is the Ethernet ARP type and the rest is a MAC address)\&. If the property is not a hex string it is considered as a non\-hardware\-address client ID and the \*(Aqtype\*(Aq field is set to 0\&. The special values "mac" and "perm\-mac" are supported, which use the current or permanent MAC address of the device to generate a client identifier with type ethernet (01)\&. Currently, these options only work for ethernet type of links\&. The special value "duid" generates a RFC4361\-compliant client identifier based on a hash of the interface name as IAID and /etc/machine\-id\&. The special value "stable" is supported to generate a type 0 client identifier based on the stable\-id (see connection\&.stable\-id) and a per\-host key\&. If you set the stable\-id, you may want to include the "${DEVICE}" or "${MAC}" specifier to get a per\-device key\&. If unset, a globally configured default is used\&. If still unset, the default depends on the DHCP plugin\&.
 T}
 T{
 dhcp\-fqdn
@@ -1952,7 +1952,7 @@ string
 T}:T{
 \ \&
 T}:T{
-A string containing the DHCPv6 Unique Identifier (DUID) used by the dhcp client to identify itself to DHCPv6 servers (RFC 3315)\&. The DUID is carried in the Client Identifier option\&. If the property is a hex string (\*(Aqaa:bb:cc\*(Aq) it is interpreted as a binary DUID and filled as an opaque value in the Client Identifier option\&. The special value "lease" will retrieve the DUID previously used from the lease file belonging to the connection\&. If no DUID is found and "dhclient" is the configured dhcp client, the DUID is searched in the system\-wide dhclient lease file\&. If still no DUID is found, or another dhcp client is used, a global and permanent DUID\-UUID (RFC 6355) will be generated based on the machine\-id\&. The special values "llt" and "ll" will generate a DUID of type LLT or LL (see RFC 3315) based on the current MAC address of the device\&. In order to try providing a stable DUID\-LLT, the time field will contain a constant timestamp that is used globally (for all profiles) and persisted to disk\&. The special values "stable\-llt", "stable\-ll" and "stable\-uuid" will generate a DUID of the corresponding type, derived from the connection\*(Aqs stable\-id and a per\-host unique key\&. So, the link\-layer address of "stable\-ll" and "stable\-llt" will be a generated address derived from the stable id\&. The DUID\-LLT time value in the "stable\-llt" option will be picked among a static timespan of three years (the upper bound of the interval is the same constant timestamp used in "llt")\&. When the property is unset, the global value provided for "ipv6\&.dhcp\-duid" is used\&. If no global value is provided, the default "lease" value is assumed\&.
+A string containing the DHCPv6 Unique Identifier (DUID) used by the dhcp client to identify itself to DHCPv6 servers (RFC 3315)\&. The DUID is carried in the Client Identifier option\&. If the property is a hex string (\*(Aqaa:bb:cc\*(Aq) it is interpreted as a binary DUID and filled as an opaque value in the Client Identifier option\&. The special value "lease" will retrieve the DUID previously used from the lease file belonging to the connection\&. If no DUID is found and "dhclient" is the configured dhcp client, the DUID is searched in the system\-wide dhclient lease file\&. If still no DUID is found, or another dhcp client is used, a global and permanent DUID\-UUID (RFC 6355) will be generated based on the machine\-id\&. The special values "llt" and "ll" will generate a DUID of type LLT or LL (see RFC 3315) based on the current MAC address of the device\&. In order to try providing a stable DUID\-LLT, the time field will contain a constant timestamp that is used globally (for all profiles) and persisted to disk\&. The special values "stable\-llt", "stable\-ll" and "stable\-uuid" will generate a DUID of the corresponding type, derived from the connection\*(Aqs stable\-id and a per\-host unique key\&. You may want to include the "${DEVICE}" or "${MAC}" specifier in the stable\-id, in case this profile gets activated on multiple devices\&. So, the link\-layer address of "stable\-ll" and "stable\-llt" will be a generated address derived from the stable id\&. The DUID\-LLT time value in the "stable\-llt" option will be picked among a static timespan of three years (the upper bound of the interval is the same constant timestamp used in "llt")\&. When the property is unset, the global value provided for "ipv6\&.dhcp\-duid" is used\&. If no global value is provided, the default "lease" value is assumed\&.
 T}
 T{
 dhcp\-hostname
@@ -3136,7 +3136,7 @@ uint32
 T}:T{
 0
 T}:T{
-The total number of virtual functions to create\&.
+The total number of virtual functions to create\&. Note that when the sriov setting is present NetworkManager enforces the number of virtual functions on the interface also when it is zero\&. To prevent any changes to SR\-IOV parameters don\*(Aqt add a sriov setting to the connection\&.
 T}
 T{
 vfs
@@ -3145,7 +3145,7 @@ array of vardict
 T}:T{
 []
 T}:T{
-Array of virtual function descriptors\&. Each VF descriptor is a dictionary mapping attribute names to GVariant values\&. The \*(Aqindex\*(Aq entry is mandatory for each VF\&. When represented as string a VF is in the form: "INDEX [ATTR=VALUE[ ATTR=VALUE]\&.\&.\&.]"\&. for example: "2 mac=00:11:22:33:44:55 spoof\-check=true"\&. The "vlans" attribute is represented as a semicolor\-separated list of VLAN descriptors, where each descriptor has the form "ID[\&.PRIORITY[\&.PROTO]]"\&. PROTO can be either \*(Aqq\*(Aq for 802\&.1Q (the default) or \*(Aqad\*(Aq for 802\&.1ad\&.
+Array of virtual function descriptors\&. Each VF descriptor is a dictionary mapping attribute names to GVariant values\&. The \*(Aqindex\*(Aq entry is mandatory for each VF\&. When represented as string a VF is in the form: "INDEX [ATTR=VALUE[ ATTR=VALUE]\&.\&.\&.]"\&. for example: "2 mac=00:11:22:33:44:55 spoof\-check=true"\&. Multiple VFs can be specified using a comma as separator\&. Currently the following attributes are supported: mac, spoof\-check, trust, min\-tx\-rate, max\-tx\-rate, vlans\&. The "vlans" attribute is represented as a semicolon\-separated list of VLAN descriptors, where each descriptor has the form "ID[\&.PRIORITY[\&.PROTO]]"\&. PROTO can be either \*(Aqq\*(Aq for 802\&.1Q (the default) or \*(Aqad\*(Aq for 802\&.1ad\&.
 T}
 .TE
 .sp 1
diff --git a/man/nm-settings.xml b/man/nm-settings.xml
index bd255cb1..5e7029e0 100644
--- a/man/nm-settings.xml
+++ b/man/nm-settings.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0"?>
 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd">
-<refentry id="nm-settings"><refentryinfo><title>nm-settings</title><author>NetworkManager developers</author></refentryinfo><refmeta><refentrytitle>nm-settings</refentrytitle><manvolnum>5</manvolnum><refmiscinfo class="source">NetworkManager</refmiscinfo><refmiscinfo class="manual">Configuration</refmiscinfo><refmiscinfo class="version">1.14.4</refmiscinfo></refmeta><refnamediv><refname>nm-settings</refname><refpurpose>Description of settings and properties of NetworkManager connection profiles</refpurpose></refnamediv><refsect1 id="description"><title>Description</title><para>
+<refentry id="nm-settings"><refentryinfo><title>nm-settings</title><author>NetworkManager developers</author></refentryinfo><refmeta><refentrytitle>nm-settings</refentrytitle><manvolnum>5</manvolnum><refmiscinfo class="source">NetworkManager</refmiscinfo><refmiscinfo class="manual">Configuration</refmiscinfo><refmiscinfo class="version">1.14.6</refmiscinfo></refmeta><refnamediv><refname>nm-settings</refname><refpurpose>Description of settings and properties of NetworkManager connection profiles</refpurpose></refnamediv><refsect1 id="description"><title>Description</title><para>
           NetworkManager is based on a concept of connection profiles, sometimes referred to as
           connections only. These connection profiles contain a network configuration. When
           NetworkManager activates a connection profile on a network device the configuration will
@@ -52,7 +52,7 @@
     <row><entry align="left" id="nm-settings.property.connection.read-only">read-only</entry><entry align="left">boolean</entry><entry align="left">FALSE</entry><entry>FALSE if the connection can be modified using the provided settings service's D-Bus interface with the right privileges, or TRUE if the connection is read-only and cannot be modified.</entry></row>
     <row><entry align="left" id="nm-settings.property.connection.secondaries">secondaries</entry><entry align="left">array of string</entry><entry align="left">[]</entry><entry>List of connection UUIDs that should be activated when the base connection itself is activated. Currently only VPN connections are supported.</entry></row>
     <row><entry align="left" id="nm-settings.property.connection.slave-type">slave-type</entry><entry align="left">string</entry><entry align="left"/><entry>Setting name of the device type of this slave's master connection (eg, "bond"), or NULL if this connection is not a slave.</entry></row>
-    <row><entry align="left" id="nm-settings.property.connection.stable-id">stable-id</entry><entry align="left">string</entry><entry align="left"/><entry>This represents the identity of the connection used for various purposes. It allows to configure multiple profiles to share the identity. Also, the stable-id can contain placeholders that are substituted dynamically and deterministically depending on the context. The stable-id is used for generating IPv6 stable private addresses with ipv6.addr-gen-mode=stable-privacy. It is also used to seed the generated cloned MAC address for ethernet.cloned-mac-address=stable and wifi.cloned-mac-address=stable. It is also used as DHCP client identifier with ipv4.dhcp-client-id=stable and to derive the DHCP DUID with ipv6.dhcp-duid=stable-[llt,ll,uuid]. Note that depending on the context where it is used, other parameters are also seeded into the generation algorithm. For example, a per-host key is commonly also included, so that different systems end up generating different IDs. Or with ipv6.addr-gen-mode=stable-privacy, also the device's name is included, so that different interfaces yield different addresses. The '$' character is treated special to perform dynamic substitutions at runtime. Currently supported are "${CONNECTION}", "${DEVICE}", "${BOOT}", "${RANDOM}". These effectively create unique IDs per-connection, per-device, per-boot, or every time. Note that "${DEVICE}" corresponds the the interface name of the device. Any unrecognized patterns following '$' are treated verbatim, however are reserved for future use. You are thus advised to avoid '$' or escape it as "$$". For example, set it to "${CONNECTION}-${BOOT}-${DEVICE}" to create a unique id for this connection that changes with every reboot and differs depending on the interface where the profile activates. If the value is unset, a global connection default is consulted. If the value is still unset, the default is similar to "${CONNECTION}" and uses a unique, fixed ID for the connection.</entry></row>
+    <row><entry align="left" id="nm-settings.property.connection.stable-id">stable-id</entry><entry align="left">string</entry><entry align="left"/><entry>This represents the identity of the connection used for various purposes. It allows to configure multiple profiles to share the identity. Also, the stable-id can contain placeholders that are substituted dynamically and deterministically depending on the context. The stable-id is used for generating IPv6 stable private addresses with ipv6.addr-gen-mode=stable-privacy. It is also used to seed the generated cloned MAC address for ethernet.cloned-mac-address=stable and wifi.cloned-mac-address=stable. It is also used as DHCP client identifier with ipv4.dhcp-client-id=stable and to derive the DHCP DUID with ipv6.dhcp-duid=stable-[llt,ll,uuid]. Note that depending on the context where it is used, other parameters are also seeded into the generation algorithm. For example, a per-host key is commonly also included, so that different systems end up generating different IDs. Or with ipv6.addr-gen-mode=stable-privacy, also the device's name is included, so that different interfaces yield different addresses. The '$' character is treated special to perform dynamic substitutions at runtime. Currently supported are "${CONNECTION}", "${DEVICE}", "${MAC}", "${BOOT}", "${RANDOM}". These effectively create unique IDs per-connection, per-device, per-boot, or every time. Note that "${DEVICE}" corresponds the the interface name of the device and "${MAC}" is the permanent MAC address of the device. Any unrecognized patterns following '$' are treated verbatim, however are reserved for future use. You are thus advised to avoid '$' or escape it as "$$". For example, set it to "${CONNECTION}-${BOOT}-${DEVICE}" to create a unique id for this connection that changes with every reboot and differs depending on the interface where the profile activates. If the value is unset, a global connection default is consulted. If the value is still unset, the default is similar to "${CONNECTION}" and uses a unique, fixed ID for the connection.</entry></row>
     <row><entry align="left" id="nm-settings.property.connection.timestamp">timestamp</entry><entry align="left">uint64</entry><entry align="left">0</entry><entry>The time, in seconds since the Unix Epoch, that the connection was last _successfully_ fully activated. NetworkManager updates the connection timestamp periodically when the connection is active to ensure that an active connection has the latest timestamp. The property is only meant for reading (changes to this property will not be preserved).</entry></row>
     <row><entry align="left" id="nm-settings.property.connection.type">type</entry><entry align="left">string</entry><entry align="left"/><entry>Base type of the connection. For hardware-dependent connections, should contain the setting name of the hardware-type specific setting (ie, "802-3-ethernet" or "802-11-wireless" or "bluetooth", etc), and for non-hardware dependent connections like VPN or otherwise, should contain the setting name of that setting type (ie, "vpn" or "bridge", etc).</entry></row>
     <row><entry align="left" id="nm-settings.property.connection.uuid">uuid</entry><entry align="left">string</entry><entry align="left"/><entry>A universally unique identifier for the connection, for example generated with libuuid.  It should be assigned when the connection is created, and never changed as long as the connection still applies to the same network.  For example, it should not be changed when the "id" property or NMSettingIP4Config changes, but might need to be re-created when the Wi-Fi SSID, mobile broadband network provider, or "type" property changes. The UUID must be in the format "2815492f-7e56-435e-b2e9-246bd7cdc664" (ie, contains only hexadecimal characters and "-").</entry></row>
@@ -197,7 +197,7 @@
     <row><entry align="left" id="nm-settings.property.ipv4.address-data">address-data</entry><entry align="left">array of vardict</entry><entry align="left"/><entry>Array of IPv4 addresses. Each address dictionary contains at least 'address' and 'prefix' entries, containing the IP address as a string, and the prefix length as a uint32. Additional attributes may also exist on some addresses.</entry></row>
     <row><entry align="left" id="nm-settings.property.ipv4.addresses">addresses</entry><entry align="left">array of array of uint32</entry><entry align="left">[]</entry><entry>Deprecated in favor of the 'address-data' and 'gateway' properties, but this can be used for backward-compatibility with older daemons. Note that if you send this property the daemon will ignore 'address-data' and 'gateway'.  Array of IPv4 address structures.  Each IPv4 address structure is composed of 3 32-bit values; the first being the IPv4 address (network byte order), the second the prefix (1 - 32), and last the IPv4 gateway (network byte order). The gateway may be left as 0 if no gateway exists for that subnet.</entry></row>
     <row><entry align="left" id="nm-settings.property.ipv4.dad-timeout">dad-timeout</entry><entry align="left">int32</entry><entry align="left">-1</entry><entry>Timeout in milliseconds used to check for the presence of duplicate IP addresses on the network.  If an address conflict is detected, the activation will fail.  A zero value means that no duplicate address detection is performed, -1 means the default value (either configuration ipvx.dad-timeout override or zero).  A value greater than zero is a timeout in milliseconds. The property is currently implemented only for IPv4.</entry></row>
-    <row><entry align="left" id="nm-settings.property.ipv4.dhcp-client-id">dhcp-client-id</entry><entry align="left">string</entry><entry align="left"/><entry>A string sent to the DHCP server to identify the local machine which the DHCP server may use to customize the DHCP lease and options. When the property is a hex string ('aa:bb:cc') it is interpreted as a binary client ID, in which case the first byte is assumed to be the 'type' field as per RFC 2132 section 9.14 and the remaining bytes may be an hardware address (e.g. '01:xx:xx:xx:xx:xx:xx' where 1 is the Ethernet ARP type and the rest is a MAC address). If the property is not a hex string it is considered as a non-hardware-address client ID and the 'type' field is set to 0. The special values "mac" and "perm-mac" are supported, which use the current or permanent MAC address of the device to generate a client identifier with type ethernet (01). Currently, these options only work for ethernet type of links. The special value "stable" is supported to generate a type 0 client identifier based on the stable-id (see connection.stable-id) and a per-host key. If unset, a globally configured default is used. If still unset, the client-id from the last lease is reused.</entry></row>
+    <row><entry align="left" id="nm-settings.property.ipv4.dhcp-client-id">dhcp-client-id</entry><entry align="left">string</entry><entry align="left"/><entry>A string sent to the DHCP server to identify the local machine which the DHCP server may use to customize the DHCP lease and options. When the property is a hex string ('aa:bb:cc') it is interpreted as a binary client ID, in which case the first byte is assumed to be the 'type' field as per RFC 2132 section 9.14 and the remaining bytes may be an hardware address (e.g. '01:xx:xx:xx:xx:xx:xx' where 1 is the Ethernet ARP type and the rest is a MAC address). If the property is not a hex string it is considered as a non-hardware-address client ID and the 'type' field is set to 0. The special values "mac" and "perm-mac" are supported, which use the current or permanent MAC address of the device to generate a client identifier with type ethernet (01). Currently, these options only work for ethernet type of links. The special value "duid" generates a RFC4361-compliant client identifier based on a hash of the interface name as IAID and /etc/machine-id. The special value "stable" is supported to generate a type 0 client identifier based on the stable-id (see connection.stable-id) and a per-host key. If you set the stable-id, you may want to include the "${DEVICE}" or "${MAC}" specifier to get a per-device key. If unset, a globally configured default is used. If still unset, the default depends on the DHCP plugin.</entry></row>
     <row><entry align="left" id="nm-settings.property.ipv4.dhcp-fqdn">dhcp-fqdn</entry><entry align="left">string</entry><entry align="left"/><entry>If the "dhcp-send-hostname" property is TRUE, then the specified FQDN will be sent to the DHCP server when acquiring a lease. This property and "dhcp-hostname" are mutually exclusive and cannot be set at the same time.</entry></row>
     <row><entry align="left" id="nm-settings.property.ipv4.dhcp-hostname">dhcp-hostname</entry><entry align="left">string</entry><entry align="left"/><entry>If the "dhcp-send-hostname" property is TRUE, then the specified name will be sent to the DHCP server when acquiring a lease. This property and "dhcp-fqdn" are mutually exclusive and cannot be set at the same time.</entry></row>
     <row><entry align="left" id="nm-settings.property.ipv4.dhcp-send-hostname">dhcp-send-hostname</entry><entry align="left">boolean</entry><entry align="left">TRUE</entry><entry>If TRUE, a hostname is sent to the DHCP server when acquiring a lease. Some DHCP servers use this hostname to update DNS databases, essentially providing a static hostname for the computer.  If the "dhcp-hostname" property is NULL and this property is TRUE, the current persistent hostname of the computer is sent.</entry></row>
@@ -222,7 +222,7 @@
     <row><entry align="left" id="nm-settings.property.ipv6.address-data">address-data</entry><entry align="left">array of vardict</entry><entry align="left"/><entry>Array of IPv6 addresses. Each address dictionary contains at least 'address' and 'prefix' entries, containing the IP address as a string, and the prefix length as a uint32. Additional attributes may also exist on some addresses.</entry></row>
     <row><entry align="left" id="nm-settings.property.ipv6.addresses">addresses</entry><entry align="left">array of legacy IPv6 address struct (a(ayuay))</entry><entry align="left">[]</entry><entry>Deprecated in favor of the 'address-data' and 'gateway' properties, but this can be used for backward-compatibility with older daemons. Note that if you send this property the daemon will ignore 'address-data' and 'gateway'.  Array of IPv6 address structures.  Each IPv6 address structure is composed of an IPv6 address, a prefix length (1 - 128), and an IPv6 gateway address. The gateway may be zeroed out if no gateway exists for that subnet.</entry></row>
     <row><entry align="left" id="nm-settings.property.ipv6.dad-timeout">dad-timeout</entry><entry align="left">int32</entry><entry align="left">-1</entry><entry>Timeout in milliseconds used to check for the presence of duplicate IP addresses on the network.  If an address conflict is detected, the activation will fail.  A zero value means that no duplicate address detection is performed, -1 means the default value (either configuration ipvx.dad-timeout override or zero).  A value greater than zero is a timeout in milliseconds. The property is currently implemented only for IPv4.</entry></row>
-    <row><entry align="left" id="nm-settings.property.ipv6.dhcp-duid">dhcp-duid</entry><entry align="left">string</entry><entry align="left"/><entry>A string containing the DHCPv6 Unique Identifier (DUID) used by the dhcp client to identify itself to DHCPv6 servers (RFC 3315). The DUID is carried in the Client Identifier option. If the property is a hex string ('aa:bb:cc') it is interpreted as a binary DUID and filled as an opaque value in the Client Identifier option. The special value "lease" will retrieve the DUID previously used from the lease file belonging to the connection. If no DUID is found and "dhclient" is the configured dhcp client, the DUID is searched in the system-wide dhclient lease file. If still no DUID is found, or another dhcp client is used, a global and permanent DUID-UUID (RFC 6355) will be generated based on the machine-id. The special values "llt" and "ll" will generate a DUID of type LLT or LL (see RFC 3315) based on the current MAC address of the device. In order to try providing a stable DUID-LLT, the time field will contain a constant timestamp that is used globally (for all profiles) and persisted to disk. The special values "stable-llt", "stable-ll" and "stable-uuid" will generate a DUID of the corresponding type, derived from the connection's stable-id and a per-host unique key. So, the link-layer address of "stable-ll" and "stable-llt" will be a generated address derived from the stable id. The DUID-LLT time value in the "stable-llt" option will be picked among a static timespan of three years (the upper bound of the interval is the same constant timestamp used in "llt"). When the property is unset, the global value provided for "ipv6.dhcp-duid" is used. If no global value is provided, the default "lease" value is assumed.</entry></row>
+    <row><entry align="left" id="nm-settings.property.ipv6.dhcp-duid">dhcp-duid</entry><entry align="left">string</entry><entry align="left"/><entry>A string containing the DHCPv6 Unique Identifier (DUID) used by the dhcp client to identify itself to DHCPv6 servers (RFC 3315). The DUID is carried in the Client Identifier option. If the property is a hex string ('aa:bb:cc') it is interpreted as a binary DUID and filled as an opaque value in the Client Identifier option. The special value "lease" will retrieve the DUID previously used from the lease file belonging to the connection. If no DUID is found and "dhclient" is the configured dhcp client, the DUID is searched in the system-wide dhclient lease file. If still no DUID is found, or another dhcp client is used, a global and permanent DUID-UUID (RFC 6355) will be generated based on the machine-id. The special values "llt" and "ll" will generate a DUID of type LLT or LL (see RFC 3315) based on the current MAC address of the device. In order to try providing a stable DUID-LLT, the time field will contain a constant timestamp that is used globally (for all profiles) and persisted to disk. The special values "stable-llt", "stable-ll" and "stable-uuid" will generate a DUID of the corresponding type, derived from the connection's stable-id and a per-host unique key. You may want to include the "${DEVICE}" or "${MAC}" specifier in the stable-id, in case this profile gets activated on multiple devices. So, the link-layer address of "stable-ll" and "stable-llt" will be a generated address derived from the stable id. The DUID-LLT time value in the "stable-llt" option will be picked among a static timespan of three years (the upper bound of the interval is the same constant timestamp used in "llt"). When the property is unset, the global value provided for "ipv6.dhcp-duid" is used. If no global value is provided, the default "lease" value is assumed.</entry></row>
     <row><entry align="left" id="nm-settings.property.ipv6.dhcp-hostname">dhcp-hostname</entry><entry align="left">string</entry><entry align="left"/><entry>If the "dhcp-send-hostname" property is TRUE, then the specified name will be sent to the DHCP server when acquiring a lease. This property and "dhcp-fqdn" are mutually exclusive and cannot be set at the same time.</entry></row>
     <row><entry align="left" id="nm-settings.property.ipv6.dhcp-send-hostname">dhcp-send-hostname</entry><entry align="left">boolean</entry><entry align="left">TRUE</entry><entry>If TRUE, a hostname is sent to the DHCP server when acquiring a lease. Some DHCP servers use this hostname to update DNS databases, essentially providing a static hostname for the computer.  If the "dhcp-hostname" property is NULL and this property is TRUE, the current persistent hostname of the computer is sent.</entry></row>
     <row><entry align="left" id="nm-settings.property.ipv6.dhcp-timeout">dhcp-timeout</entry><entry align="left">int32</entry><entry align="left">0</entry><entry>A timeout for a DHCP transaction in seconds.</entry></row>
@@ -345,8 +345,8 @@
   </tbody></tgroup></informaltable></refsect2>
   <refsect2><title>sriov setting</title><para>SR-IOV settings..</para><informaltable><tgroup cols="4"><thead><row><entry>Key Name</entry><entry>Value Type</entry><entry>Default Value</entry><entry>Value Description</entry></row></thead><tbody>
     <row><entry align="left" id="nm-settings.property.sriov.autoprobe-drivers">autoprobe-drivers</entry><entry align="left">NMTernary (int32)</entry><entry align="left"/><entry>Whether to autoprobe virtual functions by a compatible driver. If set to NM_TERNARY_TRUE (1), the kernel will try to bind VFs to a compatible driver and if this succeeds a new network interface will be instantiated for each VF. If set to NM_TERNARY_FALSE (0), VFs will not be claimed and no network interfaces will be created for them. When set to NM_TERNARY_DEFAULT (-1), the global default is used; in case the global default is unspecified it is assumed to be NM_TERNARY_TRUE (1).</entry></row>
-    <row><entry align="left" id="nm-settings.property.sriov.total-vfs">total-vfs</entry><entry align="left">uint32</entry><entry align="left">0</entry><entry>The total number of virtual functions to create.</entry></row>
-    <row><entry align="left" id="nm-settings.property.sriov.vfs">vfs</entry><entry align="left">array of vardict</entry><entry align="left">[]</entry><entry>Array of virtual function descriptors. Each VF descriptor is a dictionary mapping attribute names to GVariant values. The 'index' entry is mandatory for each VF. When represented as string a VF is in the form: "INDEX [ATTR=VALUE[ ATTR=VALUE]...]". for example: "2 mac=00:11:22:33:44:55 spoof-check=true". The "vlans" attribute is represented as a semicolor-separated list of VLAN descriptors, where each descriptor has the form "ID[.PRIORITY[.PROTO]]". PROTO can be either 'q' for 802.1Q (the default) or 'ad' for 802.1ad.</entry></row>
+    <row><entry align="left" id="nm-settings.property.sriov.total-vfs">total-vfs</entry><entry align="left">uint32</entry><entry align="left">0</entry><entry>The total number of virtual functions to create. Note that when the sriov setting is present NetworkManager enforces the number of virtual functions on the interface also when it is zero. To prevent any changes to SR-IOV parameters don't add a sriov setting to the connection.</entry></row>
+    <row><entry align="left" id="nm-settings.property.sriov.vfs">vfs</entry><entry align="left">array of vardict</entry><entry align="left">[]</entry><entry>Array of virtual function descriptors. Each VF descriptor is a dictionary mapping attribute names to GVariant values. The 'index' entry is mandatory for each VF. When represented as string a VF is in the form: "INDEX [ATTR=VALUE[ ATTR=VALUE]...]". for example: "2 mac=00:11:22:33:44:55 spoof-check=true". Multiple VFs can be specified using a comma as separator. Currently the following attributes are supported: mac, spoof-check, trust, min-tx-rate, max-tx-rate, vlans. The "vlans" attribute is represented as a semicolon-separated list of VLAN descriptors, where each descriptor has the form "ID[.PRIORITY[.PROTO]]". PROTO can be either 'q' for 802.1Q (the default) or 'ad' for 802.1ad.</entry></row>
   </tbody></tgroup></informaltable></refsect2>
   <refsect2><title>tc setting</title><para>Linux Traffic Control Settings..</para><informaltable><tgroup cols="4"><thead><row><entry>Key Name</entry><entry>Value Type</entry><entry>Default Value</entry><entry>Value Description</entry></row></thead><tbody>
     <row><entry align="left" id="nm-settings.property.tc.qdiscs">qdiscs</entry><entry align="left">array of vardict</entry><entry align="left">[]</entry><entry>Array of TC queueing disciplines.</entry></row>
diff --git a/man/nmcli-examples.7 b/man/nmcli-examples.7
index b5a5e7d3..0bdbc359 100644
--- a/man/nmcli-examples.7
+++ b/man/nmcli-examples.7
@@ -2,12 +2,12 @@
 .\"     Title: nmcli-examples
 .\"    Author: 
 .\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\"      Date: 10/24/2018
+.\"      Date: 02/23/2019
 .\"    Manual: Examples
-.\"    Source: NetworkManager 1.14.4
+.\"    Source: NetworkManager 1.14.6
 .\"  Language: English
 .\"
-.TH "NMCLI\-EXAMPLES" "7" "" "NetworkManager 1\&.14\&.4" "Examples"
+.TH "NMCLI\-EXAMPLES" "7" "" "NetworkManager 1\&.14\&.6" "Examples"
 .\" -----------------------------------------------------------------
 .\" * Define some portability stuff
 .\" -----------------------------------------------------------------
@@ -352,7 +352,30 @@ This example shows retrieval of ip4 connection field values via the \-\-get\-val
 \fBnmcli\fR(1)
 manual page for more customized output\&.
 .PP
-\fBExample\ \&11.\ \&Escaping colon characters in tabular mode\fR
+\fBExample\ \&11.\ \&Adding an Ethernet connection and configuring SR\-IOV VFs\fR
+.sp
+.if n \{\
+.RS 4
+.\}
+.nf
+$ \fBnmcli con add type ethernet con\-name EthernetPF ifname em1\fR
+$ \fBnmcli con modify EthernetPF sriov\&.total\-vfs 3 sriov\&.autoprobe\-drivers false\fR
+$ \fBnmcli con modify EthernetPF sriov\&.vfs \*(Aq0 mac=00:11:22:33:44:55 vlans=10, 1 trust=true spoof\-check=false\*(Aq\fR
+$ \fBnmcli con modify EthernetPF +sriov\&.vfs \*(Aq2 max\-tx\-rate=20\*(Aq\fR
+.fi
+.if n \{\
+.RE
+.\}
+.PP
+This example demonstrates adding an Ethernet connection for physical function (PF)
+\fIens4\fR
+and configuring 3 SR\-IOV virtual functions (VFs) on it\&. The first VF is configured with MAC address 00:11:22:33:44:55 and VLAN 10, the second one has the
+\fItrust\fR
+and
+\fIspoof\-check\fR
+features respectively enabled and disabled\&. VF number 2 has a maximux transmission rate of 20Mbps\&. The kernel is instructed to not automatically instantiate a network interface for the VFs\&.
+.PP
+\fBExample\ \&12.\ \&Escaping colon characters in tabular mode\fR
 .sp
 .if n \{\
 .RS 4
@@ -371,7 +394,7 @@ nager/ActiveConnection/9
 .PP
 This example shows escaping colon characters in tabular mode\&. It may be useful for script processing, because \*(Aq:\*(Aq is used as a field separator\&.
 .PP
-\fBExample\ \&12.\ \&nmcli usage in a NetworkManager dispatcher script to make Ethernet and Wi\-Fi mutually exclusive\fR
+\fBExample\ \&13.\ \&nmcli usage in a NetworkManager dispatcher script to make Ethernet and Wi\-Fi mutually exclusive\fR
 .sp
 .if n \{\
 .RS 4
@@ -409,7 +432,7 @@ manual page for more information about NetworkManager dispatcher scripts\&.
 .PP
 \fBExample sessions of interactive connection editor\fR
 .PP
-\fBExample\ \&13.\ \&Adding an ethernet connection profile in interactive editor (a)\fR
+\fBExample\ \&14.\ \&Adding an ethernet connection profile in interactive editor (a)\fR
 .sp
 .if n \{\
 .RS 4
diff --git a/man/nmcli-examples.xml b/man/nmcli-examples.xml
index 0b15f112..8be3903a 100644
--- a/man/nmcli-examples.xml
+++ b/man/nmcli-examples.xml
@@ -272,6 +272,23 @@ IP4:192.168.1.12/24:192.168.1.1::192.168.1.1::</screen>
       </para>
     </example>
 
+    <example><title>Adding an Ethernet connection and configuring SR-IOV VFs</title>
+<screen><prompt>$ </prompt><userinput>nmcli con add type ethernet con-name EthernetPF ifname em1</userinput>
+<prompt>$ </prompt><userinput>nmcli con modify EthernetPF sriov.total-vfs 3 sriov.autoprobe-drivers false</userinput>
+<prompt>$ </prompt><userinput>nmcli con modify EthernetPF sriov.vfs '0 mac=00:11:22:33:44:55 vlans=10, 1 trust=true spoof-check=false'</userinput>
+<prompt>$ </prompt><userinput>nmcli con modify EthernetPF +sriov.vfs '2 max-tx-rate=20'</userinput></screen>
+      <para>
+        This example demonstrates adding an Ethernet connection for
+        physical function (PF) <emphasis>ens4</emphasis> and
+        configuring 3 SR-IOV virtual functions (VFs) on it. The first
+        VF is configured with MAC address 00:11:22:33:44:55 and VLAN
+        10, the second one has the <emphasis>trust</emphasis> and
+        <emphasis>spoof-check</emphasis> features respectively enabled
+        and disabled. VF number 2 has a maximux transmission rate of
+        20Mbps. The kernel is instructed to not automatically
+        instantiate a network interface for the VFs.
+      </para>
+    </example>
 
     <example><title>Escaping colon characters in tabular mode</title>
 <screen><prompt>$ </prompt><userinput>nmcli -t -f general -e yes -m tab dev show eth0</userinput>
diff --git a/man/nmcli.1 b/man/nmcli.1
index 00fdcdd4..00ab979b 100644
--- a/man/nmcli.1
+++ b/man/nmcli.1
@@ -2,12 +2,12 @@
 .\"     Title: nmcli
 .\"    Author: 
 .\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\"      Date: 10/24/2018
+.\"      Date: 02/23/2019
 .\"    Manual: General Commands Manual
-.\"    Source: NetworkManager 1.14.4
+.\"    Source: NetworkManager 1.14.6
 .\"  Language: English
 .\"
-.TH "NMCLI" "1" "" "NetworkManager 1\&.14\&.4" "General Commands Manual"
+.TH "NMCLI" "1" "" "NetworkManager 1\&.14\&.6" "General Commands Manual"
 .\" -----------------------------------------------------------------
 .\" * Define some portability stuff
 .\" -----------------------------------------------------------------
diff --git a/man/nmtui.1 b/man/nmtui.1
index 7a27832b..f87bc088 100644
--- a/man/nmtui.1
+++ b/man/nmtui.1
@@ -2,12 +2,12 @@
 .\"     Title: nmtui
 .\"    Author: 
 .\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\"      Date: 10/24/2018
+.\"      Date: 02/23/2019
 .\"    Manual: General Commands Manual
-.\"    Source: NetworkManager 1.14.4
+.\"    Source: NetworkManager 1.14.6
 .\"  Language: English
 .\"
-.TH "NMTUI" "1" "" "NetworkManager 1\&.14\&.4" "General Commands Manual"
+.TH "NMTUI" "1" "" "NetworkManager 1\&.14\&.6" "General Commands Manual"
 .\" -----------------------------------------------------------------
 .\" * Define some portability stuff
 .\" -----------------------------------------------------------------
diff --git a/meson.build b/meson.build
index eebc7232..7627c2a9 100644
--- a/meson.build
+++ b/meson.build
@@ -4,7 +4,7 @@ project(
 #  - add corresponding NM_VERSION_x_y_z macros in
 #    "shared/nm-version-macros.h.in"
 #  - update number in configure.ac
-  version: '1.14.4',
+  version: '1.14.6',
   license: 'GPL2+',
   default_options: [
     'buildtype=debugoptimized',
diff --git a/meson_options.txt b/meson_options.txt
index 0f93d77f..f4c8e5ee 100644
--- a/meson_options.txt
+++ b/meson_options.txt
@@ -73,4 +73,3 @@ option('libpsl', type: 'boolean', value: true, description: 'Link against libpsl
 option('json_validation', type: 'boolean', value: true, description: 'Enable JSON validation in libnm')
 option('crypto', type: 'combo', choices: ['nss', 'gnutls'], value: 'nss', description: 'Cryptography library to use for certificate and key operations')
 option('qt', type: 'boolean', value: true, description: 'enable Qt examples')
-option('check_settings_docs', type: 'boolean', value: false, description: 'compare check settings-docs.h file')
diff --git a/shared/nm-utils/nm-hash-utils.c b/shared/nm-utils/nm-hash-utils.c
index 4bc12b7c..80387c71 100644
--- a/shared/nm-utils/nm-hash-utils.c
+++ b/shared/nm-utils/nm-hash-utils.c
@@ -40,53 +40,66 @@ static const guint8 *volatile global_seed = NULL;
 static const guint8 *
 _get_hash_key_init (void)
 {
+	static gsize g_lock;
 	/* the returned hash is aligned to guin64, hence, it is safe
 	 * to use it as guint* or guint64* pointer. */
 	static union {
 		guint8 v8[HASH_KEY_SIZE];
 	} g_arr _nm_alignas (guint64);
-	static gsize g_lock;
 	const guint8 *g;
-	CSipHash siph_state;
-	uint64_t h;
-	guint *p;
+	union {
+		guint8 v8[HASH_KEY_SIZE];
+		guint vuint;
+	} t_arr;
 
-	g = global_seed;
+again:
+	g = g_atomic_pointer_get (&global_seed);
 	if (G_LIKELY (g != NULL)) {
 		nm_assert (g == g_arr.v8);
 		return g;
 	}
 
-	if (g_once_init_enter (&g_lock)) {
+	{
+		CSipHash siph_state;
+		uint64_t h;
 
-		nm_utils_random_bytes (g_arr.v8, sizeof (g_arr.v8));
+		/* initialize a random key in t_arr. */
+
+		nm_utils_random_bytes (&t_arr, sizeof (t_arr));
 
 		/* use siphash() of the key-size, to mangle the first guint. Otherwise,
 		 * the first guint has only the entropy that nm_utils_random_bytes()
-		 * generated for the first 4 bytes and relies on a good random generator. */
-		c_siphash_init (&siph_state, g_arr.v8);
-		c_siphash_append (&siph_state, g_arr.v8, sizeof (g_arr.v8));
+		 * generated for the first 4 bytes and relies on a good random generator.
+		 *
+		 * The first int is especially intersting for nm_hash_static() below, and we
+		 * want to have it all the entropy of t_arr. */
+		c_siphash_init (&siph_state, t_arr.v8);
+		c_siphash_append (&siph_state, (const guint8 *) &t_arr, sizeof (t_arr));
 		h = c_siphash_finalize (&siph_state);
-		p = (guint *) g_arr.v8;
 		if (sizeof (guint) < sizeof (h))
-			*p = *p ^ ((guint) (h & 0xFFFFFFFFu)) ^ ((guint) (h >> 32));
+			t_arr.vuint = t_arr.vuint ^ ((guint) (h & 0xFFFFFFFFu)) ^ ((guint) (h >> 32));
 		else
-			*p = *p ^ ((guint) (h & 0xFFFFFFFFu));
+			t_arr.vuint = t_arr.vuint ^ ((guint) (h & 0xFFFFFFFFu));
+	}
 
-		g_atomic_pointer_compare_and_exchange (&global_seed, NULL, g_arr.v8);
-		g_once_init_leave (&g_lock, 1);
+	if (!g_once_init_enter (&g_lock)) {
+		/* lost a race. The random key is already initialized. */
+		goto again;
 	}
 
-	nm_assert (global_seed == g_arr.v8);
-	return g_arr.v8;
+	memcpy (g_arr.v8, t_arr.v8, HASH_KEY_SIZE);
+	g = g_arr.v8;
+	g_atomic_pointer_set (&global_seed, g);
+	g_once_init_leave (&g_lock, 1);
+	return g;
 }
 
 #define _get_hash_key() \
 	({ \
 		const guint8 *_g; \
 		\
-		_g = global_seed; \
-		if (G_UNLIKELY (_g == NULL)) \
+		_g = g_atomic_pointer_get (&global_seed); \
+		if (G_UNLIKELY (!_g)) \
 			_g = _get_hash_key_init (); \
 		_g; \
 	})
@@ -109,17 +122,17 @@ nm_hash_static (guint static_seed)
 }
 
 void
-nm_hash_init (NMHashState *state, guint static_seed)
+nm_hash_siphash42_init (CSipHash *h, guint static_seed)
 {
 	const guint8 *g;
 	guint seed[HASH_KEY_SIZE_GUINT];
 
-	nm_assert (state);
+	nm_assert (h);
 
 	g = _get_hash_key ();
 	memcpy (seed, g, HASH_KEY_SIZE);
 	seed[0] ^= static_seed;
-	c_siphash_init (&state->_state, (const guint8 *) seed);
+	c_siphash_init (h, (const guint8 *) seed);
 }
 
 guint
diff --git a/shared/nm-utils/nm-hash-utils.h b/shared/nm-utils/nm-hash-utils.h
index b797fb75..cf71a7e9 100644
--- a/shared/nm-utils/nm-hash-utils.h
+++ b/shared/nm-utils/nm-hash-utils.h
@@ -25,6 +25,39 @@
 #include "c-siphash/src/c-siphash.h"
 #include "nm-macros-internal.h"
 
+/*****************************************************************************/
+
+void nm_hash_siphash42_init (CSipHash *h, guint static_seed);
+
+/* Siphash24 of binary buffer @arr and @len, using the randomized seed from
+ * other NMHash functions.
+ *
+ * Note, that this is guaranteed to use siphash42 under the hood (contrary to
+ * all other NMHash API, which leave this undefined). That matters at the point,
+ * where the caller needs to be sure that a reasonably strong hasing algorithm
+ * is used.  (Yes, NMHash is all about siphash24, but otherwise that is not promised
+ * anywhere).
+ *
+ * Another difference is, that this returns guint64 (not guint like other NMHash functions).
+ *
+ * Another difference is, that this may also return zero (not like nm_hash_complete()).
+ *
+ * Then, why not use c_siphash_hash() directly? Because this also uses the randomized,
+ * per-run hash-seed like nm_hash_init(). So, you get siphash24 with a random
+ * seed (which is cached for the current run of the program).
+ */
+static inline guint64
+nm_hash_siphash42 (guint static_seed, const void *ptr, gsize n)
+{
+	CSipHash h;
+
+	nm_hash_siphash42_init (&h, static_seed);
+	c_siphash_append (&h, ptr, n);
+	return c_siphash_finalize (&h);
+}
+
+/*****************************************************************************/
+
 struct _NMHashState {
 	CSipHash _state;
 };
@@ -33,16 +66,33 @@ typedef struct _NMHashState NMHashState;
 
 guint nm_hash_static (guint static_seed);
 
-void nm_hash_init (NMHashState *state, guint static_seed);
+static inline void
+nm_hash_init (NMHashState *state, guint static_seed)
+{
+	nm_assert (state);
+
+	nm_hash_siphash42_init (&state->_state, static_seed);
+}
+
+static inline guint64
+nm_hash_complete_u64 (NMHashState *state)
+{
+	nm_assert (state);
+
+	/* this returns the native u64 hash value. Note that this differs
+	 * from nm_hash_complete() in two ways:
+	 *
+	 * - the type, guint64 vs. guint.
+	 * - nm_hash_complete() never returns zero. */
+	return c_siphash_finalize (&state->_state);
+}
 
 static inline guint
 nm_hash_complete (NMHashState *state)
 {
 	guint64 h;
 
-	nm_assert (state);
-
-	h = c_siphash_finalize (&state->_state);
+	h = nm_hash_complete_u64 (state);
 
 	/* we don't ever want to return a zero hash.
 	 *
@@ -218,8 +268,8 @@ guint nm_str_hash (gconstpointer str);
 	({ \
 		NMHashState _h; \
 		\
-		nm_hash_init (&_h, static_seed); \
-		nm_hash_update_val (&_h, val); \
+		nm_hash_init (&_h, (static_seed)); \
+		nm_hash_update_val (&_h, (val)); \
 		nm_hash_complete (&_h); \
 	})
 
diff --git a/shared/nm-utils/nm-jansson.h b/shared/nm-utils/nm-jansson.h
index b00c75c6..cacf87a6 100644
--- a/shared/nm-utils/nm-jansson.h
+++ b/shared/nm-utils/nm-jansson.h
@@ -41,6 +41,9 @@
             n = json_object_iter_next(object, json_object_key_to_iter(key)))
 #endif
 
+NM_AUTO_DEFINE_FCN0 (json_t *, _nm_auto_decref_json, json_decref)
+#define nm_auto_decref_json nm_auto(_nm_auto_decref_json)
+
 #endif /* WITH_JANSON */
 
 #endif  /* __NM_JANSSON_H__ */
diff --git a/shared/nm-utils/nm-macros-internal.h b/shared/nm-utils/nm-macros-internal.h
index 084219b4..9059783f 100644
--- a/shared/nm-utils/nm-macros-internal.h
+++ b/shared/nm-utils/nm-macros-internal.h
@@ -639,6 +639,9 @@ NM_G_ERROR_MSG (GError *error)
 #define NM_PROPAGATE_CONST(test_expr, ptr) (ptr)
 #endif
 
+#define NM_MAKE_STRV(...) \
+	((const char *const[]) { __VA_ARGS__, NULL })
+
 /*****************************************************************************/
 
 #define _NM_IN_SET_EVAL_1( op, _x, y)           (_x == (y))
@@ -1321,6 +1324,16 @@ nm_strcmp_p (gconstpointer a, gconstpointer b)
 		     : NM_UNIQ_T(X,xq)); \
 	})
 
+#define NM_MAX_WITH_CMP(cmp, a, b) \
+	({ \
+		typeof (a) _a = (a); \
+		typeof (b) _b = (b); \
+		\
+		(  ((cmp (_a, _b)) >= 0) \
+		 ? _a \
+		 : _b); \
+	})
+
 /*****************************************************************************/
 
 static inline guint
diff --git a/shared/nm-utils/nm-shared-utils.c b/shared/nm-utils/nm-shared-utils.c
index ba38237b..d399ce3f 100644
--- a/shared/nm-utils/nm-shared-utils.c
+++ b/shared/nm-utils/nm-shared-utils.c
@@ -1081,11 +1081,24 @@ nm_utils_error_is_cancelled (GError *error,
                              gboolean consider_is_disposing)
 {
 	if (error) {
-		if (g_error_matches (error, G_IO_ERROR, G_IO_ERROR_CANCELLED))
-			return TRUE;
-		if (   consider_is_disposing
-		    && g_error_matches (error, NM_UTILS_ERROR, NM_UTILS_ERROR_CANCELLED_DISPOSING))
-			return TRUE;
+		if (error->domain == G_IO_ERROR)
+			return NM_IN_SET (error->code, G_IO_ERROR_CANCELLED);
+		if (consider_is_disposing) {
+			if (error->domain == NM_UTILS_ERROR)
+				return NM_IN_SET (error->code, NM_UTILS_ERROR_CANCELLED_DISPOSING);
+		}
+	}
+	return FALSE;
+}
+
+gboolean
+nm_utils_error_is_notfound (GError *error)
+{
+	if (error) {
+		if (error->domain == G_IO_ERROR)
+			return NM_IN_SET (error->code, G_IO_ERROR_NOT_FOUND);
+		if (error->domain == G_FILE_ERROR)
+			return NM_IN_SET (error->code, G_FILE_ERROR_NOENT);
 	}
 	return FALSE;
 }
diff --git a/shared/nm-utils/nm-shared-utils.h b/shared/nm-utils/nm-shared-utils.h
index 3ea887b4..82eebc9d 100644
--- a/shared/nm-utils/nm-shared-utils.h
+++ b/shared/nm-utils/nm-shared-utils.h
@@ -379,6 +379,46 @@ char **_nm_utils_strv_cleanup (char **strv,
 
 /*****************************************************************************/
 
+#define NM_UTILS_CHECKSUM_LENGTH_MD5          16
+#define NM_UTILS_CHECKSUM_LENGTH_SHA1         20
+#define NM_UTILS_CHECKSUM_LENGTH_SHA256       32
+
+#define nm_utils_checksum_get_digest(sum, arr) \
+	G_STMT_START { \
+		GChecksum *const _sum = (sum); \
+		gsize _len; \
+		\
+		G_STATIC_ASSERT_EXPR (   sizeof (arr) == NM_UTILS_CHECKSUM_LENGTH_MD5 \
+		                      || sizeof (arr) == NM_UTILS_CHECKSUM_LENGTH_SHA1 \
+		                      || sizeof (arr) == NM_UTILS_CHECKSUM_LENGTH_SHA256); \
+		G_STATIC_ASSERT_EXPR (sizeof (arr) == G_N_ELEMENTS (arr)); \
+		\
+		nm_assert (_sum); \
+		\
+		_len = G_N_ELEMENTS (arr); \
+		\
+		g_checksum_get_digest (_sum, (arr), &_len); \
+		nm_assert (_len == G_N_ELEMENTS (arr)); \
+	} G_STMT_END
+
+#define nm_utils_checksum_get_digest_len(sum, buf, len) \
+	G_STMT_START { \
+		GChecksum *const _sum = (sum); \
+		const gsize _len0 = (len); \
+		gsize _len; \
+		\
+		nm_assert (NM_IN_SET (_len0, NM_UTILS_CHECKSUM_LENGTH_MD5, \
+		                             NM_UTILS_CHECKSUM_LENGTH_SHA1, \
+		                             NM_UTILS_CHECKSUM_LENGTH_SHA256)); \
+		nm_assert (_sum); \
+		\
+		_len = _len0; \
+		g_checksum_get_digest (_sum, (buf), &_len); \
+		nm_assert (_len == _len0); \
+	} G_STMT_END
+
+/*****************************************************************************/
+
 guint32 _nm_utils_ip4_prefix_to_netmask (guint32 prefix);
 guint32 _nm_utils_ip4_get_default_prefix (guint32 ip);
 
@@ -605,6 +645,8 @@ void nm_utils_error_set_cancelled (GError **error,
 gboolean nm_utils_error_is_cancelled (GError *error,
                                       gboolean consider_is_disposing);
 
+gboolean nm_utils_error_is_notfound (GError *error);
+
 static inline void
 nm_utils_error_set_literal (GError **error, int error_code, const char *literal)
 {
diff --git a/shared/nm-utils/nm-test-utils.h b/shared/nm-utils/nm-test-utils.h
index c8139862..7decd363 100644
--- a/shared/nm-utils/nm-test-utils.h
+++ b/shared/nm-utils/nm-test-utils.h
@@ -1337,6 +1337,42 @@ _nmtst_assert_resolve_relative_path_equals (const char *f1, const char *f2, cons
 
 /*****************************************************************************/
 
+#ifdef __NETWORKMANAGER_LOGGING_H__
+static inline gpointer
+nmtst_logging_disable (gboolean always)
+{
+	gpointer p;
+
+	g_assert (nmtst_initialized ());
+	if (!always && __nmtst_internal.no_expect_message) {
+		/* The caller does not want to @always suppress logging. Instead,
+		 * the caller wants to suppress unexpected log messages that would
+		 * fail assertions (since we possibly assert against all unexpected
+		 * log messages).
+		 *
+		 * If the test is run with no-expect-message, then don't suppress
+		 * the loggings, because they also wouldn't fail assertions. */
+		return NULL;
+	}
+
+	p = g_memdup (_nm_logging_enabled_state, sizeof (_nm_logging_enabled_state));
+	memset (_nm_logging_enabled_state, 0, sizeof (_nm_logging_enabled_state));
+	return p;
+}
+
+static inline void
+nmtst_logging_reenable (gpointer old_state)
+{
+	g_assert (nmtst_initialized ());
+	if (old_state) {
+		memcpy (_nm_logging_enabled_state, old_state, sizeof (_nm_logging_enabled_state));
+		g_free (old_state);
+	}
+}
+#endif
+
+/*****************************************************************************/
+
 #ifdef NM_SETTING_IP_CONFIG_H
 static inline void
 nmtst_setting_ip_config_add_address (NMSettingIPConfig *s_ip,
diff --git a/shared/nm-utils/nm-udev-utils.c b/shared/nm-utils/nm-udev-utils.c
index 709f7590..5d0919b3 100644
--- a/shared/nm-utils/nm-udev-utils.c
+++ b/shared/nm-utils/nm-udev-utils.c
@@ -241,26 +241,23 @@ nm_udev_client_new (const char *const*subsystems,
 		if (self->subsystems) {
 			/* install subsystem filters to only wake up for certain events */
 			for (n = 0; self->subsystems[n]; n++) {
-				if (self->monitor) {
-					gs_free char *to_free = NULL;
-					const char *subsystem;
-					const char *devtype;
-
-					_subsystem_split (self->subsystems[n], &subsystem, &devtype, &to_free);
-					udev_monitor_filter_add_match_subsystem_devtype (self->monitor, subsystem, devtype);
-				}
+				gs_free char *to_free = NULL;
+				const char *subsystem;
+				const char *devtype;
+
+				_subsystem_split (self->subsystems[n], &subsystem, &devtype, &to_free);
+				udev_monitor_filter_add_match_subsystem_devtype (self->monitor, subsystem, devtype);
 			}
 
 			/* listen to events, and buffer them */
-			if (self->monitor) {
-				udev_monitor_enable_receiving (self->monitor);
-				channel = g_io_channel_unix_new (udev_monitor_get_fd (self->monitor));
-				self->watch_source = g_io_create_watch (channel, G_IO_IN);
-				g_io_channel_unref (channel);
-				g_source_set_callback (self->watch_source, (GSourceFunc)(void (*) (void)) monitor_event, self, NULL);
-				g_source_attach (self->watch_source, g_main_context_get_thread_default ());
-				g_source_unref (self->watch_source);
-			}
+			udev_monitor_set_receive_buffer_size (self->monitor, 4*1024*1024);
+			udev_monitor_enable_receiving (self->monitor);
+			channel = g_io_channel_unix_new (udev_monitor_get_fd (self->monitor));
+			self->watch_source = g_io_create_watch (channel, G_IO_IN);
+			g_io_channel_unref (channel);
+			g_source_set_callback (self->watch_source, (GSourceFunc)(void (*) (void)) monitor_event, self, NULL);
+			g_source_attach (self->watch_source, g_main_context_get_thread_default ());
+			g_source_unref (self->watch_source);
 		}
 	}
 
diff --git a/shared/nm-version-macros.h b/shared/nm-version-macros.h
index e9f61081..7dc2760e 100644
--- a/shared/nm-version-macros.h
+++ b/shared/nm-version-macros.h
@@ -45,7 +45,7 @@
  * Evaluates to the micro version number of NetworkManager which this source
  * compiled against.
  */
-#define NM_MICRO_VERSION (4)
+#define NM_MICRO_VERSION (6)
 
 /**
  * NM_CHECK_VERSION:
@@ -76,6 +76,7 @@
 #define NM_VERSION_1_14   (NM_ENCODE_VERSION (1, 14, 0))
 #define NM_VERSION_1_14_2 (NM_ENCODE_VERSION (1, 14, 2))
 #define NM_VERSION_1_14_4 (NM_ENCODE_VERSION (1, 14, 4))
+#define NM_VERSION_1_14_6 (NM_ENCODE_VERSION (1, 14, 6))
 
 /* For releases, NM_API_VERSION is equal to NM_VERSION.
  *
diff --git a/shared/nm-version-macros.h.in b/shared/nm-version-macros.h.in
index 08717101..dead985a 100644
--- a/shared/nm-version-macros.h.in
+++ b/shared/nm-version-macros.h.in
@@ -76,6 +76,7 @@
 #define NM_VERSION_1_14   (NM_ENCODE_VERSION (1, 14, 0))
 #define NM_VERSION_1_14_2 (NM_ENCODE_VERSION (1, 14, 2))
 #define NM_VERSION_1_14_4 (NM_ENCODE_VERSION (1, 14, 4))
+#define NM_VERSION_1_14_6 (NM_ENCODE_VERSION (1, 14, 6))
 
 /* For releases, NM_API_VERSION is equal to NM_VERSION.
  *
diff --git a/src/NetworkManagerUtils.c b/src/NetworkManagerUtils.c
index 1404854d..e3766809 100644
--- a/src/NetworkManagerUtils.c
+++ b/src/NetworkManagerUtils.c
@@ -881,6 +881,7 @@ nm_utils_match_connection (NMConnection *const*connections,
 int
 nm_match_spec_device_by_pllink (const NMPlatformLink *pllink,
                                 const char *match_device_type,
+                                const char *match_dhcp_plugin,
                                 const GSList *specs,
                                 int no_match_value)
 {
@@ -897,7 +898,8 @@ nm_match_spec_device_by_pllink (const NMPlatformLink *pllink,
 	                          pllink ? pllink->driver : NULL,
 	                          NULL,
 	                          NULL,
-	                          NULL);
+	                          NULL,
+	                          match_dhcp_plugin);
 
 	switch (m) {
 	case NM_MATCH_SPEC_MATCH:
diff --git a/src/NetworkManagerUtils.h b/src/NetworkManagerUtils.h
index b26d08bd..efbd9037 100644
--- a/src/NetworkManagerUtils.h
+++ b/src/NetworkManagerUtils.h
@@ -50,6 +50,7 @@ NMConnection *nm_utils_match_connection (NMConnection *const*connections,
 
 int nm_match_spec_device_by_pllink (const NMPlatformLink *pllink,
                                     const char *match_device_type,
+                                    const char *match_dhcp_plugin,
                                     const GSList *specs,
                                     int no_match_value);
 
diff --git a/src/devices/bluetooth/nm-device-bt.c b/src/devices/bluetooth/nm-device-bt.c
index 1f650d33..f4a1b709 100644
--- a/src/devices/bluetooth/nm-device-bt.c
+++ b/src/devices/bluetooth/nm-device-bt.c
@@ -323,7 +323,7 @@ complete_connection (NMDevice *device,
 		} else {
 			fallback_prefix = _("CDMA connection");
 			if (!nm_setting_cdma_get_number (s_cdma))
-				g_object_set (G_OBJECT (s_cdma), NM_SETTING_GSM_NUMBER, "#777", NULL);
+				g_object_set (G_OBJECT (s_cdma), NM_SETTING_CDMA_NUMBER, "#777", NULL);
 		}
 	} else {
 		g_set_error_literal (error,
diff --git a/src/devices/nm-device-bridge.c b/src/devices/nm-device-bridge.c
index e79de95c..68e1ac28 100644
--- a/src/devices/nm-device-bridge.c
+++ b/src/devices/nm-device-bridge.c
@@ -168,26 +168,52 @@ complete_connection (NMDevice *device,
 typedef struct {
 	const char *name;
 	const char *sysname;
-	gboolean default_if_zero;
-	gboolean user_hz_compensate;
+	uint nm_min;
+	uint nm_max;
+	uint nm_default;
+	bool default_if_zero;
+	bool user_hz_compensate;
+	bool only_with_stp;
 } Option;
 
 static const Option master_options[] = {
-	{ NM_SETTING_BRIDGE_STP, "stp_state", FALSE, FALSE },
-	{ NM_SETTING_BRIDGE_PRIORITY, "priority", TRUE, FALSE },
-	{ NM_SETTING_BRIDGE_FORWARD_DELAY, "forward_delay", TRUE, TRUE },
-	{ NM_SETTING_BRIDGE_HELLO_TIME, "hello_time", TRUE, TRUE },
-	{ NM_SETTING_BRIDGE_MAX_AGE, "max_age", TRUE, TRUE },
-	{ NM_SETTING_BRIDGE_AGEING_TIME, "ageing_time", TRUE, TRUE },
-	{ NM_SETTING_BRIDGE_GROUP_FORWARD_MASK, "group_fwd_mask", TRUE, FALSE },
-	{ NM_SETTING_BRIDGE_MULTICAST_SNOOPING, "multicast_snooping", FALSE, FALSE },
+	{ NM_SETTING_BRIDGE_STP,                "stp_state", /* this must stay as the first item */
+	                                        0, 1, 1,
+	                                        FALSE, FALSE, FALSE },
+	{ NM_SETTING_BRIDGE_PRIORITY,           "priority",
+	                                        0, G_MAXUINT16, 0x8000,
+	                                        TRUE, FALSE, TRUE },
+	{ NM_SETTING_BRIDGE_FORWARD_DELAY,      "forward_delay",
+	                                        0, NM_BR_MAX_FORWARD_DELAY, 15,
+	                                        TRUE, TRUE, TRUE},
+	{ NM_SETTING_BRIDGE_HELLO_TIME,         "hello_time",
+	                                        0, NM_BR_MAX_HELLO_TIME, 2,
+	                                        TRUE, TRUE, TRUE },
+	{ NM_SETTING_BRIDGE_MAX_AGE,            "max_age",
+	                                        0, NM_BR_MAX_MAX_AGE, 20,
+	                                        TRUE, TRUE, TRUE },
+	{ NM_SETTING_BRIDGE_AGEING_TIME,        "ageing_time",
+	                                        NM_BR_MIN_AGEING_TIME, NM_BR_MAX_AGEING_TIME, 300,
+	                                        TRUE, TRUE, FALSE },
+	{ NM_SETTING_BRIDGE_GROUP_FORWARD_MASK, "group_fwd_mask",
+	                                        0, 0xFFFF, 0,
+	                                        TRUE, FALSE, FALSE },
+	{ NM_SETTING_BRIDGE_MULTICAST_SNOOPING, "multicast_snooping",
+	                                        0, 1, 1,
+	                                        FALSE, FALSE, FALSE },
 	{ NULL, NULL }
 };
 
 static const Option slave_options[] = {
-	{ NM_SETTING_BRIDGE_PORT_PRIORITY, "priority", TRUE, FALSE },
-	{ NM_SETTING_BRIDGE_PORT_PATH_COST, "path_cost", TRUE, FALSE },
-	{ NM_SETTING_BRIDGE_PORT_HAIRPIN_MODE, "hairpin_mode", FALSE, FALSE },
+	{ NM_SETTING_BRIDGE_PORT_PRIORITY,     "priority",
+	                                       0, NM_BR_PORT_MAX_PRIORITY, NM_BR_PORT_DEF_PRIORITY,
+	                                       TRUE, FALSE },
+	{ NM_SETTING_BRIDGE_PORT_PATH_COST,    "path_cost",
+	                                       0, NM_BR_PORT_MAX_PATH_COST, 100,
+	                                       TRUE, FALSE },
+	{ NM_SETTING_BRIDGE_PORT_HAIRPIN_MODE, "hairpin_mode",
+	                                       0, 1, 0,
+	                                       FALSE, FALSE },
 	{ NULL, NULL }
 };
 
@@ -275,23 +301,43 @@ update_connection (NMDevice *device, NMConnection *connection)
 	NMSettingBridge *s_bridge = nm_connection_get_setting_bridge (connection);
 	int ifindex = nm_device_get_ifindex (device);
 	const Option *option;
+	gs_free char *stp = NULL;
+	int stp_value;
 
 	if (!s_bridge) {
 		s_bridge = (NMSettingBridge *) nm_setting_bridge_new ();
 		nm_connection_add_setting (connection, (NMSetting *) s_bridge);
 	}
 
-	for (option = master_options; option->name; option++) {
+	option = master_options;
+	nm_assert (nm_streq (option->sysname, "stp_state"));
+
+	stp = nm_platform_sysctl_master_get_option (nm_device_get_platform (device), ifindex, option->sysname);
+	stp_value = _nm_utils_ascii_str_to_int64 (stp, 10, option->nm_min, option->nm_max, option->nm_default);
+	g_object_set (s_bridge, option->name, stp_value, NULL);
+	option++;
+
+	for (; option->name; option++) {
 		gs_free char *str = nm_platform_sysctl_master_get_option (nm_device_get_platform (device), ifindex, option->sysname);
-		int value;
+		uint value;
 
-		if (str) {
-			value = strtol (str, NULL, 10);
+		if (!stp_value && option->only_with_stp)
+			continue;
 
+		if (str) {
 			/* See comments in set_sysfs_uint() about centiseconds. */
-			if (option->user_hz_compensate)
+			if (option->user_hz_compensate) {
+				value = _nm_utils_ascii_str_to_int64 (str, 10,
+				                                      option->nm_min * 100,
+				                                      option->nm_max * 100,
+				                                      option->nm_default * 100);
 				value /= 100;
-
+			} else {
+				value = _nm_utils_ascii_str_to_int64 (str, 10,
+				                                      option->nm_min,
+				                                      option->nm_max,
+				                                      option->nm_default);
+			}
 			g_object_set (s_bridge, option->name, value, NULL);
 		} else
 			_LOGW (LOGD_BRIDGE, "failed to read bridge setting '%s'", option->sysname);
@@ -322,15 +368,22 @@ master_update_slave_connection (NMDevice *device,
 
 	for (option = slave_options; option->name; option++) {
 		gs_free char *str = nm_platform_sysctl_slave_get_option (nm_device_get_platform (device), ifindex_slave, option->sysname);
-		int value;
+		uint value;
 
 		if (str) {
-			value = strtol (str, NULL, 10);
-
 			/* See comments in set_sysfs_uint() about centiseconds. */
-			if (option->user_hz_compensate)
+			if (option->user_hz_compensate) {
+				value = _nm_utils_ascii_str_to_int64 (str, 10,
+				                                      option->nm_min * 100,
+				                                      option->nm_max * 100,
+				                                      option->nm_default * 100);
 				value /= 100;
-
+			} else {
+				value = _nm_utils_ascii_str_to_int64 (str, 10,
+				                                      option->nm_min,
+				                                      option->nm_max,
+				                                      option->nm_default);
+			}
 			g_object_set (s_port, option->name, value, NULL);
 		} else
 			_LOGW (LOGD_BRIDGE, "failed to read bridge port setting '%s'", option->sysname);
diff --git a/src/devices/nm-device-ethernet.c b/src/devices/nm-device-ethernet.c
index 0fb8fea4..e7262683 100644
--- a/src/devices/nm-device-ethernet.c
+++ b/src/devices/nm-device-ethernet.c
@@ -1446,7 +1446,6 @@ new_default_connection (NMDevice *self)
 	const char *uprop = "0";
 	gs_free char *defname = NULL;
 	gs_free char *uuid = NULL;
-	gs_free char *machine_id = NULL;
 	guint i, n_connections;
 
 	if (nm_config_get_no_auto_default_for_device (nm_config_get (), self))
@@ -1470,12 +1469,10 @@ new_default_connection (NMDevice *self)
 	if (!defname)
 		return NULL;
 
-	machine_id = nm_utils_machine_id_read ();
-
 	/* Create a stable UUID. The UUID is also the Network_ID for stable-privacy addr-gen-mode,
 	 * thus when it changes we will also generate different IPv6 addresses. */
 	uuid = _nm_utils_uuid_generate_from_strings ("default-wired",
-	                                             machine_id ?: "",
+	                                             nm_utils_machine_id_str (),
 	                                             defname,
 	                                             perm_hw_addr,
 	                                             NULL);
diff --git a/src/devices/nm-device-infiniband.c b/src/devices/nm-device-infiniband.c
index 41fac157..5138b684 100644
--- a/src/devices/nm-device-infiniband.c
+++ b/src/devices/nm-device-infiniband.c
@@ -22,6 +22,7 @@
 
 #include "nm-device-infiniband.h"
 
+#include <linux/if.h>
 #include <linux/if_infiniband.h>
 
 #include "NetworkManagerUtils.h"
diff --git a/src/devices/nm-device-ip-tunnel.c b/src/devices/nm-device-ip-tunnel.c
index 568403c6..1c7e6d51 100644
--- a/src/devices/nm-device-ip-tunnel.c
+++ b/src/devices/nm-device-ip-tunnel.c
@@ -27,6 +27,7 @@
 #include <linux/if.h>
 #include <linux/ip.h>
 #include <linux/if_tunnel.h>
+#include <linux/ip6_tunnel.h>
 
 #include "nm-device-private.h"
 #include "nm-manager.h"
diff --git a/src/devices/nm-device-macvlan.c b/src/devices/nm-device-macvlan.c
index ff386c82..2b212154 100644
--- a/src/devices/nm-device-macvlan.c
+++ b/src/devices/nm-device-macvlan.c
@@ -23,6 +23,7 @@
 #include "nm-device-macvlan.h"
 
 #include <string.h>
+#include <linux/if_link.h>
 
 #include "nm-device-private.h"
 #include "settings/nm-settings.h"
diff --git a/src/devices/nm-device-wpan.c b/src/devices/nm-device-wpan.c
index f910b0b8..05b507d5 100644
--- a/src/devices/nm-device-wpan.c
+++ b/src/devices/nm-device-wpan.c
@@ -25,6 +25,7 @@
 #include <stdlib.h>
 #include <string.h>
 #include <sys/types.h>
+#include <linux/if.h>
 
 #include "nm-act-request.h"
 #include "nm-device-private.h"
diff --git a/src/devices/nm-device.c b/src/devices/nm-device.c
index f2dbe659..89e1cc51 100644
--- a/src/devices/nm-device.c
+++ b/src/devices/nm-device.c
@@ -37,7 +37,6 @@
 #include <linux/if_arp.h>
 #include <linux/rtnetlink.h>
 #include <linux/pkt_sched.h>
-#include <uuid/uuid.h>
 
 #include "nm-utils/nm-dedup-multi.h"
 #include "nm-utils/nm-random-utils.h"
@@ -386,13 +385,14 @@ typedef struct _NMDevicePrivate {
 	bool            v4_route_table_initialized:1;
 	bool            v6_route_table_initialized:1;
 
-	NMDeviceAutoconnectBlockedFlags autoconnect_blocked_flags:4;
+	NMDeviceAutoconnectBlockedFlags autoconnect_blocked_flags:5;
 
 	bool            is_enslaved:1;
 	bool            master_ready_handled:1;
 
 	bool            ipv6ll_handle:1; /* TRUE if NM handles the device's IPv6LL address */
 	bool            ipv6ll_has:1;
+	bool            device_link_changed_down:1;
 
 	/* Generic DHCP stuff */
 	char *          dhcp_anycast_address;
@@ -1264,6 +1264,8 @@ _get_stable_id (NMDevice *self,
 		gs_free char *generated = NULL;
 		NMUtilsStableType stable_type;
 		NMSettingConnection *s_con;
+		gboolean hwaddr_is_fake;
+		const char *hwaddr;
 		const char *stable_id;
 		const char *uuid;
 
@@ -1280,9 +1282,15 @@ _get_stable_id (NMDevice *self,
 
 		uuid = nm_connection_get_uuid (connection);
 
+		/* the cloned-mac-address may be generated based on the stable-id.
+		 * Thus, at this point, we can only use the permanant MAC address
+		 * as seed. */
+		hwaddr = nm_device_get_permanent_hw_address_full (self, TRUE, &hwaddr_is_fake);
+
 		stable_type = nm_utils_stable_id_parse (stable_id,
 		                                        nm_device_get_ip_iface (self),
-		                                        NULL,
+		                                        !hwaddr_is_fake ? hwaddr : NULL,
+		                                        nm_utils_boot_id_str (),
 		                                        uuid,
 		                                        &generated);
 
@@ -3585,8 +3593,10 @@ device_link_changed (NMDevice *self)
 	gboolean was_up;
 	gboolean update_unmanaged_specs = FALSE;
 	gboolean got_hw_addr = FALSE, had_hw_addr;
+	gboolean seen_down = priv->device_link_changed_down;
 
 	priv->device_link_changed_id = 0;
+	priv->device_link_changed_down = FALSE;
 
 	ifindex = nm_device_get_ifindex (self);
 	pllink = nm_platform_link_get (nm_device_get_platform (self), ifindex);
@@ -3696,7 +3706,7 @@ device_link_changed (NMDevice *self)
 
 	device_recheck_slave_status (self, pllink);
 
-	if (priv->up && !was_up) {
+	if (priv->up && (!was_up || seen_down)) {
 		/* the link was down and just came up. That happens for example, while changing MTU.
 		 * We must restore IP configuration. */
 		if (priv->ip4_state == IP_DONE) {
@@ -3772,6 +3782,8 @@ link_changed_cb (NMPlatform *platform,
 	priv = NM_DEVICE_GET_PRIVATE (self);
 
 	if (ifindex == nm_device_get_ifindex (self)) {
+		if (!(info->n_ifi_flags & IFF_UP))
+			priv->device_link_changed_down = TRUE;
 		if (!priv->device_link_changed_id) {
 			priv->device_link_changed_id = g_idle_add ((GSourceFunc) device_link_changed, self);
 			_LOGD (LOGD_DEVICE, "queued link change for ifindex %d", ifindex);
@@ -4133,7 +4145,7 @@ device_init_static_sriov_num_vfs (NMDevice *self)
 		num_vfs = _nm_utils_ascii_str_to_int64 (value, 10, 0, G_MAXINT32, -1);
 		if (num_vfs >= 0) {
 			nm_platform_link_set_sriov_params (nm_device_get_platform (self),
-			                                   priv->ifindex, num_vfs, -1);
+			                                   priv->ifindex, num_vfs, NM_TERNARY_DEFAULT);
 		}
 	}
 }
@@ -4296,8 +4308,6 @@ realize_start_setup (NMDevice *self,
 
 	nm_device_set_carrier_from_platform (self);
 
-	device_init_static_sriov_num_vfs (self);
-
 	nm_assert (!priv->stats.timeout_id);
 	real_rate = _stats_refresh_rate_real (priv->stats.refresh_rate_ms);
 	if (real_rate)
@@ -6201,7 +6211,7 @@ act_stage1_prepare (NMDevice *self, NMDeviceStateReason *out_failure_reason)
 		nm_auto_freev NMPlatformVF **plat_vfs = NULL;
 		gs_free_error GError *error = NULL;
 		NMSriovVF *vf;
-		int autoprobe;
+		NMTernary autoprobe;
 
 		autoprobe = nm_setting_sriov_get_autoprobe_drivers (s_sriov);
 		if (autoprobe == NM_TERNARY_DEFAULT) {
@@ -7450,18 +7460,6 @@ get_dhcp_timeout (NMDevice *self, int addr_family)
 }
 
 static GBytes *
-dhcp4_get_client_id_mac (const guint8 *hwaddr /* ETH_ALEN bytes */)
-{
-	guint8 *client_id_buf;
-	guint8 hwaddr_type = ARPHRD_ETHER;
-
-	client_id_buf = g_malloc (ETH_ALEN + 1);
-	client_id_buf[0] = hwaddr_type;
-	memcpy (&client_id_buf[1], hwaddr, ETH_ALEN);
-	return g_bytes_new_take (client_id_buf, ETH_ALEN + 1);
-}
-
-static GBytes *
 dhcp4_get_client_id (NMDevice *self,
                      NMConnection *connection,
                      GBytes *hwaddr)
@@ -7473,6 +7471,7 @@ dhcp4_get_client_id (NMDevice *self,
 	const char *fail_reason;
 	guint8 hwaddr_bin_buf[NM_UTILS_HWADDR_LEN_MAX];
 	const guint8 *hwaddr_bin;
+	int arp_type;
 	gsize hwaddr_len;
 	GBytes *result;
 	gs_free char *logstr1 = NULL;
@@ -7497,17 +7496,18 @@ dhcp4_get_client_id (NMDevice *self,
 
 	if (nm_streq (client_id, "mac")) {
 		if (!hwaddr) {
-			fail_reason = "failed to get current MAC address";
+			fail_reason = "missing link-layer address";
 			goto out_fail;
 		}
 
 		hwaddr_bin = g_bytes_get_data (hwaddr, &hwaddr_len);
-		if (hwaddr_len != ETH_ALEN) {
-			fail_reason = "MAC address is not ethernet";
+		arp_type = nm_utils_arp_type_detect_from_hwaddrlen (hwaddr_len);
+		if (arp_type < 0) {
+			fail_reason = "unsupported link-layer address";
 			goto out_fail;
 		}
 
-		result = dhcp4_get_client_id_mac (hwaddr_bin);
+		result = nm_utils_dhcp_client_id_mac (arp_type, hwaddr_bin, hwaddr_len);
 		goto out_good;
 	}
 
@@ -7516,32 +7516,37 @@ dhcp4_get_client_id (NMDevice *self,
 
 		hwaddr_str = nm_device_get_permanent_hw_address (self);
 		if (!hwaddr_str) {
-			fail_reason = "failed to get permanent MAC address";
+			fail_reason = "missing permanent link-layer address";
 			goto out_fail;
 		}
 
 		if (!_nm_utils_hwaddr_aton (hwaddr_str, hwaddr_bin_buf, sizeof (hwaddr_bin_buf), &hwaddr_len))
 			g_return_val_if_reached (NULL);
 
-		if (hwaddr_len != ETH_ALEN) {
-			/* unsupported type. */
-			fail_reason = "MAC address is not ethernet";
+		arp_type = nm_utils_arp_type_detect_from_hwaddrlen (hwaddr_len);
+		if (arp_type < 0) {
+			fail_reason = "unsupported permanent link-layer address";
 			goto out_fail;
 		}
 
-		result = dhcp4_get_client_id_mac (hwaddr_bin_buf);
+		result = nm_utils_dhcp_client_id_mac (arp_type, hwaddr_bin_buf, hwaddr_len);
+		goto out_good;
+	}
+
+	if (nm_streq (client_id, "duid")) {
+		result = nm_utils_dhcp_client_id_systemd_node_specific (TRUE,
+		                                                        nm_device_get_ip_iface (self));
 		goto out_good;
 	}
 
 	if (nm_streq (client_id, "stable")) {
+		nm_auto_free_checksum GChecksum *sum = NULL;
+		guint8 digest[NM_UTILS_CHECKSUM_LENGTH_SHA1];
 		NMUtilsStableType stable_type;
 		const char *stable_id;
-		GChecksum *sum;
-		guint8 buf[20];
-		gsize buf_size;
 		guint32 salted_header;
-		const guint8 *secret_key;
-		gsize secret_key_len;
+		const guint8 *host_id;
+		gsize host_id_len;
 
 		stable_id = _get_stable_id (self, connection, &stable_type);
 		if (!stable_id)
@@ -7549,23 +7554,17 @@ dhcp4_get_client_id (NMDevice *self,
 
 		salted_header = htonl (2011610591 + stable_type);
 
-		nm_utils_secret_key_get (&secret_key, &secret_key_len);
+		nm_utils_host_id_get (&host_id, &host_id_len);
 
 		sum = g_checksum_new (G_CHECKSUM_SHA1);
-
 		g_checksum_update (sum, (const guchar *) &salted_header, sizeof (salted_header));
 		g_checksum_update (sum, (const guchar *) stable_id, strlen (stable_id) + 1);
-		g_checksum_update (sum, (const guchar *) secret_key, secret_key_len);
-
-		buf_size = sizeof (buf);
-		g_checksum_get_digest (sum, buf, &buf_size);
-		nm_assert (buf_size == sizeof (buf));
-
-		g_checksum_free (sum);
+		g_checksum_update (sum, (const guchar *) host_id, host_id_len);
+		nm_utils_checksum_get_digest (sum, digest);
 
 		client_id_buf = g_malloc (1 + 15);
 		client_id_buf[0] = 0;
-		memcpy (&client_id_buf[1], buf, 15);
+		memcpy (&client_id_buf[1], digest, 15);
 		result = g_bytes_new_take (client_id_buf, 1 + 15);
 		goto out_good;
 	}
@@ -8187,53 +8186,63 @@ dhcp6_prefix_delegated (NMDhcpClient *client,
 	g_signal_emit (self, signals[IP6_PREFIX_DELEGATED], 0, prefix);
 }
 
+/*****************************************************************************/
+
 /* RFC 3315 defines the epoch for the DUID-LLT time field on Jan 1st 2000. */
 #define EPOCH_DATETIME_200001010000  946684800
 
 static GBytes *
-generate_duid_llt (const guint8 *hwaddr /* ETH_ALEN bytes */,
+generate_duid_llt (int arp_type,
+                   const guint8 *hwaddr,
+                   gsize hwaddr_len,
                    gint64 time)
 {
 	guint8 *arr;
 	const guint16 duid_type = htons (1);
-	const guint16 hw_type = htons (ARPHRD_ETHER);
+	const guint16 hw_type = htons (arp_type);
 	const guint32 duid_time = htonl (NM_MAX (0, time - EPOCH_DATETIME_200001010000));
 
-	arr = g_new (guint8, 2 + 2 + 4 + ETH_ALEN);
+	if (!nm_utils_arp_type_get_hwaddr_relevant_part (arp_type, &hwaddr, &hwaddr_len))
+		nm_assert_not_reached ();
+
+	arr = g_new (guint8, 2 + 2 + 4 + hwaddr_len);
 
 	memcpy (&arr[0], &duid_type, 2);
 	memcpy (&arr[2], &hw_type, 2);
 	memcpy (&arr[4], &duid_time, 4);
-	memcpy (&arr[8], hwaddr, ETH_ALEN);
+	memcpy (&arr[8], hwaddr, hwaddr_len);
 
-	return g_bytes_new_take (arr, 2 + 2 + 4 + ETH_ALEN);
+	return g_bytes_new_take (arr, 2 + 2 + 4 + hwaddr_len);
 }
 
 static GBytes *
-generate_duid_ll (const guint8 *hwaddr /* ETH_ALEN bytes */)
+generate_duid_ll (int arp_type,
+                  const guint8 *hwaddr,
+                  gsize hwaddr_len)
 {
 	guint8 *arr;
 	const guint16 duid_type = htons (3);
-	const guint16 hw_type = htons (ARPHRD_ETHER);
+	const guint16 hw_type = htons (arp_type);
 
-	arr = g_new (guint8, 2 + 2 + ETH_ALEN);
+	if (!nm_utils_arp_type_get_hwaddr_relevant_part (arp_type, &hwaddr, &hwaddr_len))
+		nm_assert_not_reached ();
+
+	arr = g_new (guint8, 2 + 2 + hwaddr_len);
 
 	memcpy (&arr[0], &duid_type, 2);
 	memcpy (&arr[2], &hw_type, 2);
-	memcpy (&arr[4], hwaddr, ETH_ALEN);
+	memcpy (&arr[4], hwaddr, hwaddr_len);
 
-	return g_bytes_new_take (arr, 2 + 2 + ETH_ALEN);
+	return g_bytes_new_take (arr, 2 + 2 + hwaddr_len);
 }
 
 static GBytes *
-generate_duid_uuid (guint8 *data, gsize data_len)
+generate_duid_uuid (const NMUuid *uuid)
 {
-	const guint16 duid_type = g_htons (4);
-	const int DUID_SIZE = 18;
+	const guint16 duid_type = htons (4);
 	guint8 *duid_buffer;
 
-	nm_assert (data);
-	nm_assert (data_len >= 16);
+	nm_assert (uuid);
 
 	/* Generate a DHCP Unique Identifier for DHCPv6 using the
 	 * DUID-UUID method (see RFC 6355 section 4).  Format is:
@@ -8241,44 +8250,47 @@ generate_duid_uuid (guint8 *data, gsize data_len)
 	 * u16: type (DUID-UUID = 4)
 	 * u8[16]: UUID bytes
 	 */
-	duid_buffer = g_malloc (DUID_SIZE);
-
 	G_STATIC_ASSERT_EXPR (sizeof (duid_type) == 2);
+	G_STATIC_ASSERT_EXPR (sizeof (*uuid) == 16);
+	duid_buffer = g_malloc (18);
 	memcpy (&duid_buffer[0], &duid_type, 2);
-
-	/* UUID is 128 bits, we just take the first 128 bits
-	 * (regardless of data size) as the DUID-UUID.
-	 */
-	memcpy (&duid_buffer[2], data, 16);
-
-	return g_bytes_new_take (duid_buffer, DUID_SIZE);
+	memcpy (&duid_buffer[2], uuid, 16);
+	return g_bytes_new_take (duid_buffer, 18);
 }
 
 static GBytes *
 generate_duid_from_machine_id (void)
 {
-	gs_free const char *machine_id_s = NULL;
-	uuid_t uuid;
-	GChecksum *sum;
-	guint8 sha256_digest[32];
-	gsize len = sizeof (sha256_digest);
-	static GBytes *global_duid = NULL;
+	static GBytes *volatile global_duid = NULL;
+	GBytes *p;
 
-	if (global_duid)
-		return g_bytes_ref (global_duid);
+again:
+	p = g_atomic_pointer_get (&global_duid);
+	if (G_UNLIKELY (!p)) {
+		nm_auto_free_checksum GChecksum *sum = NULL;
+		const NMUuid *machine_id;
+		union {
+			guint8 sha256[NM_UTILS_CHECKSUM_LENGTH_SHA256];
+			NMUuid uuid;
+		} digest;
 
-	machine_id_s = nm_utils_machine_id_read ();
-	if (!nm_utils_machine_id_parse (machine_id_s, uuid))
-		return NULL;
+		machine_id = nm_utils_machine_id_bin ();
+
+		/* Hash the machine ID so it's not leaked to the network */
+		sum = g_checksum_new (G_CHECKSUM_SHA256);
+		g_checksum_update (sum, (const guchar *) machine_id, sizeof (*machine_id));
+		nm_utils_checksum_get_digest (sum, digest.sha256);
 
-	/* Hash the machine ID so it's not leaked to the network */
-	sum = g_checksum_new (G_CHECKSUM_SHA256);
-	g_checksum_update (sum, (const guchar *) &uuid, sizeof (uuid));
-	g_checksum_get_digest (sum, sha256_digest, &len);
-	g_checksum_free (sum);
+		G_STATIC_ASSERT_EXPR (sizeof (digest.sha256) > sizeof (digest.uuid));
+		p = generate_duid_uuid (&digest.uuid);
+
+		if (!g_atomic_pointer_compare_and_exchange (&global_duid, NULL, p)) {
+			g_bytes_unref (p);
+			goto again;
+		}
+	}
 
-	global_duid = generate_duid_uuid (sha256_digest, len);
-	return g_bytes_ref (global_duid);
+	return g_bytes_ref (p);
 }
 
 static GBytes *
@@ -8289,10 +8301,11 @@ dhcp6_get_duid (NMDevice *self, NMConnection *connection, GBytes *hwaddr, gboole
 	gs_free char *duid_default = NULL;
 	const char *duid_error;
 	GBytes *duid_out;
-	guint8 sha256_digest[32];
-	gsize len = sizeof (sha256_digest);
 	gboolean duid_enforce = TRUE;
 	gs_free char *logstr1 = NULL;
+	const guint8 *hwaddr_bin;
+	gsize hwaddr_len;
+	int arp_type;
 
 	s_ip6 = nm_connection_get_setting_ip6_config (connection);
 	duid = nm_setting_ip6_config_get_dhcp_duid (NM_SETTING_IP6_CONFIG (s_ip6));
@@ -8308,10 +8321,6 @@ dhcp6_get_duid (NMDevice *self, NMConnection *connection, GBytes *hwaddr, gboole
 	if (nm_streq (duid, "lease")) {
 		duid_enforce = FALSE;
 		duid_out = generate_duid_from_machine_id ();
-		if (!duid_out) {
-			duid_error = "failure to read machine-id";
-			goto out_fail;
-		}
 		goto out_good;
 	}
 
@@ -8328,78 +8337,138 @@ dhcp6_get_duid (NMDevice *self, NMConnection *connection, GBytes *hwaddr, gboole
 			duid_error = "missing link-layer address";
 			goto out_fail;
 		}
-		if (g_bytes_get_size (hwaddr) != ETH_ALEN) {
+
+		hwaddr_bin = g_bytes_get_data (hwaddr, &hwaddr_len);
+		arp_type = nm_utils_arp_type_detect_from_hwaddrlen (hwaddr_len);
+		if (arp_type < 0) {
 			duid_error = "unsupported link-layer address";
 			goto out_fail;
 		}
 
-		if (nm_streq (duid, "ll")) {
-			duid_out = generate_duid_ll (g_bytes_get_data (hwaddr, NULL));
-		} else {
-			gint64 time;
-
-			time = nm_utils_secret_key_get_timestamp ();
-			if (!time) {
-				duid_error = "cannot retrieve the secret key timestamp";
-				goto out_fail;
-			}
-
-			duid_out = generate_duid_llt (g_bytes_get_data (hwaddr, NULL), time);
+		if (nm_streq (duid, "ll"))
+			duid_out = generate_duid_ll (arp_type, hwaddr_bin, hwaddr_len);
+		else {
+			duid_out = generate_duid_llt (arp_type, hwaddr_bin, hwaddr_len,
+			                              nm_utils_host_id_get_timestamp_ns () / NM_UTILS_NS_PER_SECOND);
 		}
 
 		goto out_good;
 	}
 
 	if (NM_IN_STRSET (duid, "stable-ll", "stable-llt", "stable-uuid")) {
+		/* preferably, we would salt the checksum differently for each @duid type. We missed
+		 * to do that initially, so most types use the DEFAULT_SALT.
+		 *
+		 * Implemenations that are added later, should use a distinct salt instead,
+		 * like "stable-ll"/"stable-llt" with ARPHRD_INFINIBAND below. */
+		const guint32 DEFAULT_SALT = 670531087u;
+		nm_auto_free_checksum GChecksum *sum = NULL;
 		NMUtilsStableType stable_type;
 		const char *stable_id = NULL;
 		guint32 salted_header;
-		GChecksum *sum;
-		const guint8 *secret_key;
-		gsize secret_key_len;
+		const guint8 *host_id;
+		gsize host_id_len;
+		union {
+			guint8 sha256[NM_UTILS_CHECKSUM_LENGTH_SHA256];
+			guint8 hwaddr_eth[ETH_ALEN];
+			guint8 hwaddr_infiniband[INFINIBAND_ALEN];
+			NMUuid uuid;
+			struct _nm_packed {
+				guint8 hwaddr[ETH_ALEN];
+				guint32 timestamp;
+			} llt_eth;
+			struct _nm_packed {
+				guint8 hwaddr[INFINIBAND_ALEN];
+				guint32 timestamp;
+			} llt_infiniband;
+		} digest;
 
 		stable_id = _get_stable_id (self, connection, &stable_type);
 		if (!stable_id)
 			g_return_val_if_reached (NULL);
 
-		salted_header = htonl (670531087 + stable_type);
+		if (NM_IN_STRSET (duid, "stable-ll", "stable-llt")) {
+			/* for stable LL/LLT DUIDs, we still need a hardware address to detect
+			 * the arp-type. Alternatively, we would be able to detect it based on
+			 * other means (e.g. NMDevice type), but instead require the hardware
+			 * address to be present. This is at least consistent with the "ll"/"llt"
+			 * modes above. */
+			if (!hwaddr) {
+				duid_error = "missing link-layer address";
+				goto out_fail;
+			}
+			if ((arp_type = nm_utils_arp_type_detect_from_hwaddrlen (g_bytes_get_size (hwaddr))) < 0) {
+				duid_error = "unsupported link-layer address";
+				goto out_fail;
+			}
+
+			if (arp_type == ARPHRD_ETHER)
+				salted_header = DEFAULT_SALT;
+			else {
+				nm_assert (arp_type == ARPHRD_INFINIBAND);
+				salted_header = 0x42492CEFu + ((guint32) arp_type);
+			}
+		} else {
+			salted_header = DEFAULT_SALT;
+			arp_type = -1;
+		}
 
-		nm_utils_secret_key_get (&secret_key, &secret_key_len);
+		salted_header = htonl (salted_header + ((guint32) stable_type));
 
-		sum = g_checksum_new (G_CHECKSUM_SHA256);
+		nm_utils_host_id_get (&host_id, &host_id_len);
 
+		sum = g_checksum_new (G_CHECKSUM_SHA256);
 		g_checksum_update (sum, (const guchar *) &salted_header, sizeof (salted_header));
 		g_checksum_update (sum, (const guchar *) stable_id, -1);
-		g_checksum_update (sum, (const guchar *) secret_key, secret_key_len);
+		g_checksum_update (sum, (const guchar *) host_id, host_id_len);
+		nm_utils_checksum_get_digest (sum, digest.sha256);
 
-		g_checksum_get_digest (sum, sha256_digest, &len);
-		g_checksum_free (sum);
+		G_STATIC_ASSERT_EXPR (sizeof (digest) == sizeof (digest.sha256));
 
 		if (nm_streq (duid, "stable-ll")) {
-			duid_out = generate_duid_ll (sha256_digest);
+			switch (arp_type) {
+			case ARPHRD_ETHER:
+				duid_out = generate_duid_ll (arp_type, digest.hwaddr_eth, sizeof (digest.hwaddr_eth));
+				break;
+			case ARPHRD_INFINIBAND:
+				duid_out = generate_duid_ll (arp_type, digest.hwaddr_infiniband, sizeof (digest.hwaddr_infiniband));
+				break;
+			default:
+				g_return_val_if_reached (NULL);
+			}
 		} else if (nm_streq (duid, "stable-llt")) {
 			gint64 time;
+			guint32 timestamp;
 
 #define EPOCH_DATETIME_THREE_YEARS  (356 * 24 * 3600 * 3)
 
-			/* We want a variable time between the secret_key timestamp and three years
+			/* We want a variable time between the host_id timestamp and three years
 			 * before. Let's compute the time (in seconds) from 0 to 3 years; then we'll
-			 * subtract it from the secret_key timestamp.
+			 * subtract it from the host_id timestamp.
 			 */
-			time = nm_utils_secret_key_get_timestamp ();
-			if (!time) {
-				duid_error = "cannot retrieve the secret key timestamp";
-				goto out_fail;
-			}
+			time = nm_utils_host_id_get_timestamp_ns () / NM_UTILS_NS_PER_SECOND;
+
 			/* don't use too old timestamps. They cannot be expressed in DUID-LLT and
 			 * would all be truncated to zero. */
 			time = NM_MAX (time, EPOCH_DATETIME_200001010000 + EPOCH_DATETIME_THREE_YEARS);
-			time -= (unaligned_read_be32 (&sha256_digest[ETH_ALEN]) % EPOCH_DATETIME_THREE_YEARS);
 
-			duid_out = generate_duid_llt (sha256_digest, time);
+			switch (arp_type) {
+			case ARPHRD_ETHER:
+				timestamp = unaligned_read_be32 (&digest.llt_eth.timestamp);
+				time -= timestamp % EPOCH_DATETIME_THREE_YEARS;
+				duid_out = generate_duid_llt (arp_type, digest.llt_eth.hwaddr, sizeof (digest.llt_eth.hwaddr), time);
+				break;
+			case ARPHRD_INFINIBAND:
+				timestamp = unaligned_read_be32 (&digest.llt_infiniband.timestamp);
+				time -= timestamp % EPOCH_DATETIME_THREE_YEARS;
+				duid_out = generate_duid_llt (arp_type, digest.llt_infiniband.hwaddr, sizeof (digest.llt_infiniband.hwaddr), time);
+				break;
+			default:
+				g_return_val_if_reached (NULL);
+			}
 		} else {
 			nm_assert (nm_streq (duid, "stable-uuid"));
-			duid_out = generate_duid_uuid (sha256_digest, len);
+			duid_out = generate_duid_uuid (&digest.uuid);
 		}
 
 		goto out_good;
@@ -8410,14 +8479,14 @@ dhcp6_get_duid (NMDevice *self, NMConnection *connection, GBytes *hwaddr, gboole
 out_fail:
 	nm_assert (!duid_out && duid_error);
 	{
-		guint8 uuid[16];
+		NMUuid uuid;
 
 		_LOGW (LOGD_IP6 | LOGD_DHCP6,
 		       "ipv6.dhcp-duid: failure to generate %s DUID: %s. Fallback to random DUID-UUID.",
 		       duid, duid_error);
 
-		nm_utils_random_bytes (uuid, sizeof (uuid));
-		duid_out = generate_duid_uuid (uuid, sizeof (uuid));
+		nm_utils_random_bytes (&uuid, sizeof (uuid));
+		duid_out = generate_duid_uuid (&uuid);
 	}
 
 out_good:
@@ -8432,6 +8501,8 @@ out_good:
 	return duid_out;
 }
 
+/*****************************************************************************/
+
 static gboolean
 dhcp6_start_with_link_ready (NMDevice *self, NMConnection *connection)
 {
@@ -11961,7 +12032,7 @@ nm_device_set_ip_config (NMDevice *self,
 			priv->needs_ip6_subnet = FALSE;
 	}
 
-	if (IS_IPv4) {
+	if (IS_IPv4 && FALSE /* rp_filter handling is disabled */) {
 		if (!nm_device_sys_iface_state_is_external_or_assume (self))
 			ip4_rp_filter_update (self);
 	}
@@ -12859,7 +12930,7 @@ queued_ip_config_change (NMDevice *self, int addr_family)
 
 	set_unmanaged_external_down (self, TRUE);
 
-	if (IS_IPv4) {
+	if (IS_IPv4 && FALSE /* rp_filter handling is disabled */) {
 		if (!nm_device_sys_iface_state_is_external_or_assume (self)) {
 			priv->v4_has_shadowed_routes = _v4_has_shadowed_routes_detect (self);;
 			ip4_rp_filter_update (self);
@@ -14384,9 +14455,11 @@ nm_device_spawn_iface_helper (NMDevice *self)
 			if (client_id) {
 				g_ptr_array_add (argv, g_strdup ("--dhcp4-clientid"));
 				g_ptr_array_add (argv,
-				                 _nm_utils_bin2str (g_bytes_get_data (client_id, NULL),
-				                                    g_bytes_get_size (client_id),
-				                                    FALSE));
+				                 _nm_utils_bin2hexstr_full (g_bytes_get_data (client_id, NULL),
+				                                            g_bytes_get_size (client_id),
+				                                            ':',
+				                                            FALSE,
+				                                            NULL));
 			}
 
 			hostname = nm_dhcp_client_get_hostname (priv->dhcp4.client);
@@ -14424,9 +14497,11 @@ nm_device_spawn_iface_helper (NMDevice *self)
 		if (nm_device_get_ip_iface_identifier (self, &iid, FALSE)) {
 			g_ptr_array_add (argv, g_strdup ("--iid"));
 			g_ptr_array_add (argv,
-			                 _nm_utils_bin2str (iid.id_u8,
-			                                    sizeof (NMUtilsIPv6IfaceId),
-			                                    FALSE));
+			                 _nm_utils_bin2hexstr_full (iid.id_u8,
+			                                            sizeof (NMUtilsIPv6IfaceId),
+			                                            ':',
+			                                            FALSE,
+			                                            NULL));
 		}
 
 		g_ptr_array_add (argv, g_strdup ("--addr-gen-mode"));
@@ -14561,6 +14636,7 @@ _set_state_full (NMDevice *self,
 	NMActRequest *req;
 	gboolean no_firmware = FALSE;
 	NMSettingsConnection *sett_conn;
+	NMSettingSriov *s_sriov;
 
 	g_return_if_fail (NM_IS_DEVICE (self));
 
@@ -14668,6 +14744,7 @@ _set_state_full (NMDevice *self,
 			save_ip6_properties (self);
 			if (priv->sys_iface_state == NM_DEVICE_SYS_IFACE_STATE_MANAGED)
 				ip6_managed_setup (self);
+			device_init_static_sriov_num_vfs (self);
 		}
 
 		if (priv->sys_iface_state == NM_DEVICE_SYS_IFACE_STATE_MANAGED) {
@@ -14756,6 +14833,12 @@ _set_state_full (NMDevice *self,
 		}
 		break;
 	case NM_DEVICE_STATE_DEACTIVATING:
+		if (   (s_sriov = (NMSettingSriov *) nm_device_get_applied_setting (self, NM_TYPE_SETTING_SRIOV))
+		    && priv->ifindex > 0) {
+			nm_platform_link_set_sriov_params (nm_device_get_platform (self),
+			                                   priv->ifindex, 0, NM_TERNARY_TRUE);
+		}
+
 		_cancel_activation (self);
 
 		/* We cache the ignore_carrier state to not react on config-reloads while the connection
@@ -15273,7 +15356,7 @@ _get_generate_mac_address_mask_setting (NMDevice *self, NMConnection *connection
 	}
 
 	a = nm_config_data_get_connection_default (NM_CONFIG_GET_DATA,
-	                                           is_wifi ? "wifi.generate-mac-address-mask" : "ethernet.generate-mac-mac-address-mask",
+	                                           is_wifi ? "wifi.generate-mac-address-mask" : "ethernet.generate-mac-address-mask",
 	                                           self);
 	if (!a)
 		return NULL;
@@ -15314,7 +15397,8 @@ _hw_addr_set (NMDevice *self,
 	NMPlatformError plerr;
 	guint8 addr_bytes[NM_UTILS_HWADDR_LEN_MAX];
 	gsize addr_len;
-	gboolean was_up;
+	gboolean was_taken_down = FALSE;
+	gboolean retry_down;
 
 	nm_assert (NM_IS_DEVICE (self));
 	nm_assert (addr);
@@ -15337,21 +15421,37 @@ _hw_addr_set (NMDevice *self,
 
 	_LOGT (LOGD_DEVICE, "set-hw-addr: setting MAC address to '%s' (%s, %s)...", addr, operation, detail);
 
-	was_up = nm_device_is_up (self);
-	if (was_up) {
-		/* Can't change MAC address while device is up */
+	if (nm_device_get_device_type (self) == NM_DEVICE_TYPE_WIFI) {
+		/* Always take the device down for Wi-Fi because
+		 * wpa_supplicant needs it to properly detect the MAC
+		 * change. */
+		retry_down = FALSE;
+		was_taken_down = TRUE;
 		nm_device_take_down (self, FALSE);
 	}
 
+again:
 	plerr = nm_platform_link_set_address (nm_device_get_platform (self), nm_device_get_ip_ifindex (self), addr_bytes, addr_len);
 	success = (plerr == NM_PLATFORM_ERROR_SUCCESS);
-	if (success) {
-		/* MAC address succesfully changed; update the current MAC to match */
+	if (!success) {
+		retry_down =    !was_taken_down
+		             && plerr != NM_PLATFORM_ERROR_NOT_FOUND
+		             && nm_platform_link_is_up (nm_device_get_platform (self),
+		                                        nm_device_get_ip_ifindex (self));
+		_NMLOG (     retry_down
+		          || plerr == NM_PLATFORM_ERROR_NOT_FOUND
+		        ? LOGL_DEBUG
+		        : LOGL_WARN,
+		        LOGD_DEVICE,
+		        "set-hw-addr: failed to %s MAC address to %s (%s) (%s)%s",
+		        operation, addr, detail,
+		        nm_platform_error_to_string_a (plerr),
+		        retry_down ? " (retry with taking down)" : "");
+	} else {
+		/* MAC address successfully changed; update the current MAC to match */
 		nm_device_update_hw_address (self);
-		if (_hw_addr_matches (self, addr_bytes, addr_len)) {
-			_LOGI (LOGD_DEVICE, "set-hw-addr: %s MAC address to %s (%s)",
-			       operation, addr, detail);
-		} else {
+
+		if (!_hw_addr_matches (self, addr_bytes, addr_len)) {
 			gint64 poll_end, now;
 
 			_LOGD (LOGD_DEVICE,
@@ -15392,24 +15492,40 @@ handle_fail:
 				success = FALSE;
 				break;
 			}
+		}
 
-			if (success) {
-				_LOGI (LOGD_DEVICE, "set-hw-addr: %s MAC address to %s (%s)",
-				       operation, addr, detail);
-			} else {
-				_LOGW (LOGD_DEVICE,
-				       "set-hw-addr: new MAC address %s not successfully %s (%s)",
-				       addr, operation, detail);
-			}
+		if (success) {
+			retry_down = FALSE;
+			_LOGI (LOGD_DEVICE, "set-hw-addr: %s MAC address to %s (%s)",
+			       operation, addr, detail);
+		} else {
+			retry_down =    !was_taken_down
+			             && nm_platform_link_is_up (nm_device_get_platform (self),
+			                                        nm_device_get_ip_ifindex (self));
+
+			_NMLOG (  retry_down
+			        ? LOGL_DEBUG
+			        : LOGL_WARN,
+			        LOGD_DEVICE,
+			        "set-hw-addr: new MAC address %s not successfully %s (%s)%s",
+			        addr,
+			        operation,
+			        detail,
+			        retry_down ? " (retry with taking down)" : "");
 		}
-	} else {
-		_NMLOG (plerr == NM_PLATFORM_ERROR_NOT_FOUND ? LOGL_DEBUG : LOGL_WARN,
-		        LOGD_DEVICE, "set-hw-addr: failed to %s MAC address to %s (%s) (%s)",
-		        operation, addr, detail,
-		        nm_platform_error_to_string_a (plerr));
 	}
 
-	if (was_up) {
+	if (retry_down) {
+		/* changing the MAC address failed, but also the device was up (and we did not yet try to take
+		 * it down). Optimally, we change the MAC address without taking the device down, but some
+		 * devices don't like that. So, retry with taking the device down. */
+		retry_down = FALSE;
+		was_taken_down = TRUE;
+		nm_device_take_down (self, FALSE);
+		goto again;
+	}
+
+	if (was_taken_down) {
 		if (!nm_device_bring_up (self, TRUE, NULL))
 			return FALSE;
 	}
@@ -15728,7 +15844,8 @@ nm_device_spec_match_list_full (NMDevice *self, const GSList *specs, int no_matc
 	                          nm_device_get_driver (self),
 	                          nm_device_get_driver_version (self),
 	                          nm_device_get_permanent_hw_address (self),
-	                          klass->get_s390_subchannels ? klass->get_s390_subchannels (self) : NULL);
+	                          klass->get_s390_subchannels ? klass->get_s390_subchannels (self) : NULL,
+	                          nm_dhcp_manager_get_config (nm_dhcp_manager_get ()));
 
 	switch (m) {
 	case NM_MATCH_SPEC_MATCH:
diff --git a/src/devices/nm-device.h b/src/devices/nm-device.h
index 8f376b20..3c703564 100644
--- a/src/devices/nm-device.h
+++ b/src/devices/nm-device.h
@@ -722,6 +722,8 @@ typedef enum {
 
 	NM_DEVICE_AUTOCONNECT_BLOCKED_WRONG_PIN             = (1LL <<  1),
 	NM_DEVICE_AUTOCONNECT_BLOCKED_MANUAL_DISCONNECT     = (1LL <<  2),
+	NM_DEVICE_AUTOCONNECT_BLOCKED_SIM_MISSING           = (1LL <<  3),
+	NM_DEVICE_AUTOCONNECT_BLOCKED_INIT_FAILED           = (1LL <<  4),
 
 	_NM_DEVICE_AUTOCONNECT_BLOCKED_LAST,
 
diff --git a/src/devices/nm-lldp-listener.c b/src/devices/nm-lldp-listener.c
index f637825b..c0484ed3 100644
--- a/src/devices/nm-lldp-listener.c
+++ b/src/devices/nm-lldp-listener.c
@@ -534,11 +534,13 @@ lldp_neighbor_new (sd_lldp_neighbor *neighbor_sd, GError **error)
 				l = data8[2];
 				if (len != 3 + l)
 					continue;
+				if (l > 32)
+					continue;
 
 				_lldp_attr_set_uint32 (neigh->attrs, LLDP_ATTR_ID_IEEE_802_1_VID,
 				                       _access_uint16 (&data8[0]));
 				_lldp_attr_set_str_ptr (neigh->attrs, LLDP_ATTR_ID_IEEE_802_1_VLAN_NAME,
-				                        &data8[3], len);
+				                        &data8[3], l);
 				break;
 			}
 			default:
diff --git a/src/devices/ovs/nm-ovsdb.c b/src/devices/ovs/nm-ovsdb.c
index b00397cf..494e2ea0 100644
--- a/src/devices/ovs/nm-ovsdb.c
+++ b/src/devices/ovs/nm-ovsdb.c
@@ -349,14 +349,14 @@ _insert_interface (json_t *params, NMConnection *interface)
 	if (s_ovs_iface)
 		type = nm_setting_ovs_interface_get_interface_type (s_ovs_iface);
 
-	json_array_append (options, json_string ("map"));
+	json_array_append_new (options, json_string ("map"));
 	s_ovs_patch = nm_connection_get_setting_ovs_patch (interface);
 	if (s_ovs_patch) {
-		json_array_append (options, json_pack ("[[s, s]]",
+		json_array_append_new (options, json_pack ("[[s, s]]",
 		                                       "peer",
 		                                        nm_setting_ovs_patch_get_peer (s_ovs_patch)));
 	} else {
-		json_array_append (options, json_array ());
+		json_array_append_new (options, json_array ());
 	}
 
 	json_array_append_new (params,
@@ -504,12 +504,15 @@ _add_interface (NMOvsdb *self, json_t *params,
 	OpenvswitchBridge *ovs_bridge = NULL;
 	OpenvswitchPort *ovs_port = NULL;
 	OpenvswitchInterface *ovs_interface = NULL;
+	nm_auto_decref_json json_t *bridges = NULL;
+	nm_auto_decref_json json_t *new_bridges = NULL;
+	nm_auto_decref_json json_t *ports = NULL;
+	nm_auto_decref_json json_t *new_ports = NULL;
+	nm_auto_decref_json json_t *interfaces = NULL;
+	nm_auto_decref_json json_t *new_interfaces = NULL;
+	gboolean has_interface = FALSE;
 	int pi;
 	int ii;
-	json_t *bridges, *new_bridges;
-	json_t *ports, *new_ports;
-	json_t *interfaces, *new_interfaces;
-	gboolean has_interface = FALSE;
 
 	bridges = json_array ();
 	ports = json_array ();
@@ -585,14 +588,6 @@ _add_interface (NMOvsdb *self, json_t *params,
 		_insert_interface (params, interface);
 		json_array_append_new (new_interfaces, json_pack ("[s, s]", "named-uuid", "rowInterface"));
 	}
-
-	json_decref (interfaces);
-	json_decref (ports);
-	json_decref (bridges);
-
-	json_decref (new_interfaces);
-	json_decref (new_ports);
-	json_decref (new_bridges);
 }
 
 /**
@@ -612,14 +607,13 @@ _delete_interface (NMOvsdb *self, json_t *params, const char *ifname)
 	OpenvswitchBridge *ovs_bridge;
 	OpenvswitchPort *ovs_port;
 	OpenvswitchInterface *ovs_interface;
-	int pi;
-	int ii;
-	json_t *bridges, *new_bridges;
-	json_t *ports, *new_ports;
-	json_t *interfaces, *new_interfaces;
+	nm_auto_decref_json json_t *bridges = NULL;
+	nm_auto_decref_json json_t *new_bridges = NULL;
 	gboolean bridges_changed;
 	gboolean ports_changed;
 	gboolean interfaces_changed;
+	int pi;
+	int ii;
 
 	bridges = json_array ();
 	new_bridges = json_array ();
@@ -627,20 +621,26 @@ _delete_interface (NMOvsdb *self, json_t *params, const char *ifname)
 
 	g_hash_table_iter_init (&iter, priv->bridges);
 	while (g_hash_table_iter_next (&iter, (gpointer) &bridge_uuid, (gpointer) &ovs_bridge)) {
-		json_array_append_new (bridges, json_pack ("[s,s]", "uuid", bridge_uuid));
+		nm_auto_decref_json json_t *ports = NULL;
+		nm_auto_decref_json json_t *new_ports = NULL;
 
 		ports = json_array ();
 		new_ports = json_array ();
 		ports_changed = FALSE;
 
+		json_array_append_new (bridges, json_pack ("[s,s]", "uuid", bridge_uuid));
+
 		for (pi = 0; pi < ovs_bridge->ports->len; pi++) {
+			nm_auto_decref_json json_t *interfaces = NULL;
+			nm_auto_decref_json json_t *new_interfaces = NULL;
+
+			interfaces = json_array ();
+			new_interfaces = json_array ();
 			port_uuid = g_ptr_array_index (ovs_bridge->ports, pi);
 			ovs_port = g_hash_table_lookup (priv->ports, port_uuid);
 
 			json_array_append_new (ports, json_pack ("[s,s]", "uuid", port_uuid));
 
-			interfaces = json_array ();
-			new_interfaces = json_array ();
 			interfaces_changed = FALSE;
 
 			for (ii = 0; ii < ovs_port->interfaces->len; ii++) {
@@ -667,9 +667,6 @@ _delete_interface (NMOvsdb *self, json_t *params, const char *ifname)
 				}
 				json_array_append_new (new_ports, json_pack ("[s,s]", "uuid", port_uuid));
 			}
-
-			json_decref (interfaces);
-			json_decref (new_interfaces);
 		}
 
 		if (json_array_size (new_ports) == 0) {
@@ -681,9 +678,6 @@ _delete_interface (NMOvsdb *self, json_t *params, const char *ifname)
 			}
 			json_array_append_new (new_bridges, json_pack ("[s,s]", "uuid", bridge_uuid));
 		}
-
-		json_decref (ports);
-		json_decref (new_ports);
 	}
 
 	if (bridges_changed) {
@@ -708,7 +702,7 @@ ovsdb_next_command (NMOvsdb *self)
 	NMOvsdbPrivate *priv = NM_OVSDB_GET_PRIVATE (self);
 	OvsdbMethodCall *call = NULL;
 	char *cmd;
-	json_t *msg = NULL;
+	nm_auto_decref_json json_t *msg = NULL;
 	json_t *params;
 
 	if (!priv->conn)
@@ -764,7 +758,6 @@ ovsdb_next_command (NMOvsdb *self)
 	cmd = json_dumps (msg, 0);
 
 	g_string_append (priv->output, cmd);
-	json_decref (msg);
 	free (cmd);
 
 	ovsdb_write (self);
@@ -1041,7 +1034,7 @@ static void
 ovsdb_got_echo (NMOvsdb *self, json_int_t id, json_t *data)
 {
 	NMOvsdbPrivate *priv = NM_OVSDB_GET_PRIVATE (self);
-	json_t *msg;
+	nm_auto_decref_json json_t *msg = NULL;
 	char *reply;
 	gboolean output_was_empty;
 
@@ -1050,7 +1043,6 @@ ovsdb_got_echo (NMOvsdb *self, json_int_t id, json_t *data)
 	msg = json_pack ("{s:I, s:O}", "id", id, "result", data);
 	reply = json_dumps (msg, 0);
 	g_string_append (priv->output, reply);
-	json_decref (msg);
 	free (reply);
 
 	if (output_was_empty)
@@ -1300,6 +1292,9 @@ ovsdb_disconnect (NMOvsdb *self, gboolean is_disposing)
 	gpointer user_data;
 	gs_free_error GError *error = NULL;
 
+	if (!priv->client)
+		return;
+
 	_LOGD ("disconnecting from ovsdb");
 	nm_utils_error_set_cancelled (&error, is_disposing, "NMOvsdb");
 
@@ -1317,6 +1312,7 @@ ovsdb_disconnect (NMOvsdb *self, gboolean is_disposing)
 	g_clear_object (&priv->client);
 	g_clear_object (&priv->conn);
 	g_clear_pointer (&priv->db_uuid, g_free);
+	nm_clear_g_cancellable (&priv->cancellable);
 }
 
 static void
@@ -1535,11 +1531,14 @@ dispose (GObject *object)
 
 	ovsdb_disconnect (self, TRUE);
 
-	g_string_free (priv->input, TRUE);
-	priv->input = NULL;
-	g_string_free (priv->output, TRUE);
-	priv->output = NULL;
-
+	if (priv->input) {
+		g_string_free (priv->input, TRUE);
+		priv->input = NULL;
+	}
+	if (priv->output) {
+		g_string_free (priv->output, TRUE);
+		priv->output = NULL;
+	}
 	if (priv->calls) {
 		g_array_free (priv->calls, TRUE);
 		priv->calls = NULL;
@@ -1549,9 +1548,6 @@ dispose (GObject *object)
 	g_clear_pointer (&priv->ports, g_hash_table_destroy);
 	g_clear_pointer (&priv->interfaces, g_hash_table_destroy);
 
-	g_cancellable_cancel (priv->cancellable);
-	g_clear_object (&priv->cancellable);
-
 	G_OBJECT_CLASS (nm_ovsdb_parent_class)->dispose (object);
 }
 
diff --git a/src/devices/tests/test-lldp.c b/src/devices/tests/test-lldp.c
index c2ac8e19..7227d082 100644
--- a/src/devices/tests/test-lldp.c
+++ b/src/devices/tests/test-lldp.c
@@ -219,11 +219,10 @@ TEST_RECV_FRAME_DEFINE (_test_recv_data1_frame0,
 	0x01, 0xe8,
 	0xfe, 0x07, 0x00, 0x80, 0xc2, 0x02, /* IEEE 802.1 - Port and Protocol VLAN ID */
 	0x01, 0x00, 0x00,
-	0xfe, 0x17, 0x00, 0x80, 0xc2, 0x03, /* IEEE 802.1 - VLAN Name */
-	0x01, 0xe8, 0x10, 0x76, 0x32, 0x2d,
+	0xfe, 0x16, 0x00, 0x80, 0xc2, 0x03, /* IEEE 802.1 - VLAN Name */
+	0x01, 0xe8, 0x0f, 0x76, 0x32, 0x2d,
 	0x30, 0x34, 0x38, 0x38, 0x2d, 0x30,
 	0x33, 0x2d, 0x30, 0x35, 0x30, 0x35,
-	0x00,
 	0xfe, 0x05, 0x00, 0x80, 0xc2, 0x04, /* IEEE 802.1 - Protocol Identity */
 	0x00,
 	0x00, 0x00                          /* End of LLDPDU */
diff --git a/src/devices/wifi/nm-device-olpc-mesh.c b/src/devices/wifi/nm-device-olpc-mesh.c
index 9ae81139..4c42e7d3 100644
--- a/src/devices/wifi/nm-device-olpc-mesh.c
+++ b/src/devices/wifi/nm-device-olpc-mesh.c
@@ -82,7 +82,19 @@ G_DEFINE_TYPE (NMDeviceOlpcMesh, nm_device_olpc_mesh, NM_TYPE_DEVICE)
 static gboolean
 get_autoconnect_allowed (NMDevice *device)
 {
-	return FALSE;
+	NMDeviceOlpcMesh *self = NM_DEVICE_OLPC_MESH (device);
+	NMDeviceOlpcMeshPrivate *priv = NM_DEVICE_OLPC_MESH_GET_PRIVATE (self);
+
+	/* We shall always have a companion if we're >= DISCONENCTED, and this
+	 * ought not be called until then. */
+	g_return_val_if_fail (priv->companion, FALSE);
+
+	/* We must not attempt to autoconnect when the companion is connected or
+	 * connecting, * because we'd tear down its connection. */
+	if (nm_device_get_state (priv->companion) > NM_DEVICE_STATE_DISCONNECTED)
+		return FALSE;
+
+	return TRUE;
 }
 
 #define DEFAULT_SSID "olpc-mesh"
@@ -265,6 +277,11 @@ companion_state_changed_cb (NMDeviceWifi *companion,
 	NMDeviceOlpcMesh *self = NM_DEVICE_OLPC_MESH (user_data);
 	NMDeviceState self_state = nm_device_get_state (NM_DEVICE (self));
 
+	if (   old_state > NM_DEVICE_STATE_DISCONNECTED
+	    && state <= NM_DEVICE_STATE_DISCONNECTED) {
+		nm_device_emit_recheck_auto_activate (NM_DEVICE (self));
+	}
+
 	if (   self_state < NM_DEVICE_STATE_PREPARE
 	    || self_state > NM_DEVICE_STATE_ACTIVATED
 	    || state < NM_DEVICE_STATE_PREPARE
diff --git a/src/devices/wwan/nm-device-modem.c b/src/devices/wwan/nm-device-modem.c
index 4119d598..8ff931aa 100644
--- a/src/devices/wwan/nm-device-modem.c
+++ b/src/devices/wwan/nm-device-modem.c
@@ -125,14 +125,40 @@ modem_prepare_result (NMModem *modem,
 	if (success)
 		nm_device_activate_schedule_stage2_device_config (device);
 	else {
-		if (nm_device_state_reason_check (reason) == NM_DEVICE_STATE_REASON_SIM_PIN_INCORRECT) {
-			/* If the connect failed because the SIM PIN was wrong don't allow
-			 * the device to be auto-activated anymore, which would risk locking
-			 * the SIM if the incorrect PIN continues to be used.
-			 */
+		/* There are several reasons to block autoconnection at device level:
+		 *
+		 *  - Wrong SIM-PIN: The device won't autoconnect because it doesn't make sense
+		 *    to retry the connection with the same PIN. This error also makes autoconnection
+		 *    blocked at settings level, so not even a modem unplug and replug will allow
+		 *    autoconnection again. It is somewhat redundant to block autoconnection at
+		 *    both device and setting level really.
+		 *
+		 *  - SIM wrong or not inserted: If the modem is reporting a SIM not inserted error,
+		 *    we can block autoconnection at device level, so that if the same device is
+		 *    unplugged and replugged with a SIM (or if a SIM hotplug event happens in MM,
+		 *    recreating the device completely), we can try the autoconnection again.
+		 *
+		 *  - Modem initialization failed: For some reason unknown to NM, the modem wasn't
+		 *    initialized correctly, which leads to an unusable device. A device unplug and
+		 *    replug may solve the issue, so make it a device-level autoconnection blocking
+		 *    reason.
+		 */
+		switch (nm_device_state_reason_check (reason)) {
+		case NM_DEVICE_STATE_REASON_GSM_SIM_PIN_REQUIRED:
+		case NM_DEVICE_STATE_REASON_GSM_SIM_PUK_REQUIRED:
+		case NM_DEVICE_STATE_REASON_SIM_PIN_INCORRECT:
 			nm_device_autoconnect_blocked_set (device, NM_DEVICE_AUTOCONNECT_BLOCKED_WRONG_PIN);
+			break;
+		case NM_DEVICE_STATE_REASON_GSM_SIM_NOT_INSERTED:
+		case NM_DEVICE_STATE_REASON_GSM_SIM_WRONG:
+			nm_device_autoconnect_blocked_set (device, NM_DEVICE_AUTOCONNECT_BLOCKED_SIM_MISSING);
+			break;
+		case NM_DEVICE_STATE_REASON_MODEM_INIT_FAILED:
+			nm_device_autoconnect_blocked_set (device, NM_DEVICE_AUTOCONNECT_BLOCKED_INIT_FAILED);
+			break;
+		default:
+			break;
 		}
-
 		nm_device_state_changed (device, NM_DEVICE_STATE_FAILED, reason);
 	}
 }
diff --git a/src/dhcp/nm-dhcp-client.c b/src/dhcp/nm-dhcp-client.c
index 16db8306..37fb18c4 100644
--- a/src/dhcp/nm-dhcp-client.c
+++ b/src/dhcp/nm-dhcp-client.c
@@ -28,7 +28,6 @@
 #include <unistd.h>
 #include <stdio.h>
 #include <stdlib.h>
-#include <uuid/uuid.h>
 #include <linux/rtnetlink.h>
 
 #include "nm-utils/nm-dedup-multi.h"
@@ -62,6 +61,7 @@ NM_GOBJECT_PROPERTIES_DEFINE (NMDhcpClient,
 	PROP_ROUTE_TABLE,
 	PROP_TIMEOUT,
 	PROP_UUID,
+	PROP_HOSTNAME,
 );
 
 typedef struct _NMDhcpClientPrivate {
@@ -69,7 +69,6 @@ typedef struct _NMDhcpClientPrivate {
 	char *       iface;
 	GBytes *     hwaddr;
 	char *       uuid;
-	GBytes *     duid;
 	GBytes *     client_id;
 	char *       hostname;
 	pid_t        pid;
@@ -140,14 +139,6 @@ nm_dhcp_client_get_uuid (NMDhcpClient *self)
 }
 
 GBytes *
-nm_dhcp_client_get_duid (NMDhcpClient *self)
-{
-	g_return_val_if_fail (NM_IS_DHCP_CLIENT (self), NULL);
-
-	return NM_DHCP_CLIENT_GET_PRIVATE (self)->duid;
-}
-
-GBytes *
 nm_dhcp_client_get_hw_addr (NMDhcpClient *self)
 {
 	g_return_val_if_fail (NM_IS_DHCP_CLIENT (self), NULL);
@@ -230,6 +221,18 @@ _set_client_id (NMDhcpClient *self, GBytes *client_id, gboolean take)
 	priv->client_id = client_id;
 	if (!take && client_id)
 		g_bytes_ref (client_id);
+
+	{
+		gs_free char *s = NULL;
+
+		_LOGT ("%s: set %s",
+		       nm_dhcp_client_get_addr_family (self) == AF_INET6
+		         ? "duid"
+		         : "client-id",
+		       priv->client_id
+		         ? (s = nm_dhcp_utils_duid_to_string (priv->client_id))
+		         : "default");
+	}
 }
 
 void
@@ -362,7 +365,7 @@ nm_dhcp_client_stop_pid (pid_t pid, const char *iface)
 }
 
 static void
-stop (NMDhcpClient *self, gboolean release, GBytes *duid)
+stop (NMDhcpClient *self, gboolean release)
 {
 	NMDhcpClientPrivate *priv;
 
@@ -509,7 +512,6 @@ gboolean
 nm_dhcp_client_start_ip4 (NMDhcpClient *self,
                           GBytes *client_id,
                           const char *dhcp_anycast_addr,
-                          const char *hostname,
                           const char *last_ip4_address,
                           GError **error)
 {
@@ -529,9 +531,6 @@ nm_dhcp_client_start_ip4 (NMDhcpClient *self,
 
 	nm_dhcp_client_set_client_id (self, client_id);
 
-	g_clear_pointer (&priv->hostname, g_free);
-	priv->hostname = g_strdup (hostname);
-
 	return NM_DHCP_CLIENT_GET_CLASS (self)->ip4_start (self,
 	                                                   dhcp_anycast_addr,
 	                                                   last_ip4_address,
@@ -550,34 +549,29 @@ nm_dhcp_client_start_ip6 (NMDhcpClient *self,
                           gboolean enforce_duid,
                           const char *dhcp_anycast_addr,
                           const struct in6_addr *ll_addr,
-                          const char *hostname,
                           NMSettingIP6ConfigPrivacy privacy,
                           guint needed_prefixes,
                           GError **error)
 {
 	NMDhcpClientPrivate *priv;
-	gs_free char *str = NULL;
+	gs_unref_bytes GBytes *own_client_id = NULL;
 
 	g_return_val_if_fail (NM_IS_DHCP_CLIENT (self), FALSE);
+	g_return_val_if_fail (client_id, FALSE);
 
 	priv = NM_DHCP_CLIENT_GET_PRIVATE (self);
+
 	g_return_val_if_fail (priv->pid == -1, FALSE);
 	g_return_val_if_fail (priv->addr_family == AF_INET6, FALSE);
 	g_return_val_if_fail (priv->uuid != NULL, FALSE);
-
-	nm_assert (!priv->duid);
-	nm_assert (client_id);
+	g_return_val_if_fail (!priv->client_id, FALSE);
 
 	if (!enforce_duid)
-		priv->duid = NM_DHCP_CLIENT_GET_CLASS (self)->get_duid (self);
-
-	if (!priv->duid)
-		priv->duid = g_bytes_ref (client_id);
-
-	_LOGD ("DUID is '%s'", (str = nm_dhcp_utils_duid_to_string (priv->duid)));
+		own_client_id = NM_DHCP_CLIENT_GET_CLASS (self)->get_duid (self);
 
-	g_clear_pointer (&priv->hostname, g_free);
-	priv->hostname = g_strdup (hostname);
+	_set_client_id (self,
+	                own_client_id ?: client_id,
+	                FALSE);
 
 	if (priv->timeout == NM_DHCP_TIMEOUT_INFINITY)
 		_LOGI ("activation: beginning transaction (no timeout)");
@@ -588,7 +582,6 @@ nm_dhcp_client_start_ip6 (NMDhcpClient *self,
 	                                                   dhcp_anycast_addr,
 	                                                   ll_addr,
 	                                                   privacy,
-	                                                   priv->duid,
 	                                                   needed_prefixes,
 	                                                   error);
 }
@@ -655,7 +648,7 @@ nm_dhcp_client_stop (NMDhcpClient *self, gboolean release)
 
 	/* Kill the DHCP client */
 	old_pid = priv->pid;
-	NM_DHCP_CLIENT_GET_CLASS (self)->stop (self, release, priv->duid);
+	NM_DHCP_CLIENT_GET_CLASS (self)->stop (self, release);
 	if (old_pid > 0)
 		_LOGI ("canceled DHCP transaction, DHCP client pid %d", old_pid);
 	else
@@ -859,6 +852,9 @@ get_property (GObject *object, guint prop_id,
 	case PROP_UUID:
 		g_value_set_string (value, priv->uuid);
 		break;
+	case PROP_HOSTNAME:
+		g_value_set_string (value, priv->hostname);
+		break;
 	case PROP_ROUTE_METRIC:
 		g_value_set_uint (value, priv->route_metric);
 		break;
@@ -899,11 +895,13 @@ set_property (GObject *object, guint prop_id,
 	case PROP_IFACE:
 		/* construct-only */
 		priv->iface = g_value_dup_string (value);
+		g_return_if_fail (   priv->iface
+		                  && nm_utils_is_valid_iface_name (priv->iface, NULL));
 		break;
 	case PROP_IFINDEX:
 		/* construct-only */
 		priv->ifindex = g_value_get_int (value);
-		g_warn_if_fail (priv->ifindex > 0);
+		g_return_if_fail (priv->ifindex > 0);
 		break;
 	case PROP_HWADDR:
 		/* construct-only */
@@ -919,6 +917,10 @@ set_property (GObject *object, guint prop_id,
 		/* construct-only */
 		priv->uuid = g_value_dup_string (value);
 		break;
+	case PROP_HOSTNAME:
+		/* construct-only */
+		priv->hostname = g_value_dup_string (value);
+		break;
 	case PROP_ROUTE_TABLE:
 		priv->route_table = g_value_get_uint (value);
 		break;
@@ -971,7 +973,6 @@ dispose (GObject *object)
 	g_clear_pointer (&priv->uuid, g_free);
 	g_clear_pointer (&priv->client_id, g_bytes_unref);
 	g_clear_pointer (&priv->hwaddr, g_bytes_unref);
-	g_clear_pointer (&priv->duid, g_bytes_unref);
 
 	G_OBJECT_CLASS (nm_dhcp_client_parent_class)->dispose (object);
 
@@ -1028,6 +1029,12 @@ nm_dhcp_client_class_init (NMDhcpClientClass *client_class)
 	                         G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY |
 	                         G_PARAM_STATIC_STRINGS);
 
+	obj_properties[PROP_HOSTNAME] =
+	    g_param_spec_string (NM_DHCP_CLIENT_HOSTNAME, "", "",
+	                         NULL,
+	                         G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY |
+	                         G_PARAM_STATIC_STRINGS);
+
 	obj_properties[PROP_ROUTE_TABLE] =
 	    g_param_spec_uint (NM_DHCP_CLIENT_ROUTE_TABLE, "", "",
 	                       0, G_MAXUINT32, RT_TABLE_MAIN,
@@ -1058,7 +1065,7 @@ nm_dhcp_client_class_init (NMDhcpClientClass *client_class)
 	    g_signal_new (NM_DHCP_CLIENT_SIGNAL_STATE_CHANGED,
 	                  G_OBJECT_CLASS_TYPE (object_class),
 	                  G_SIGNAL_RUN_FIRST,
-	                  G_STRUCT_OFFSET (NMDhcpClientClass, state_changed),
+	                  0,
 	                  NULL, NULL, NULL,
 	                  G_TYPE_NONE, 4, G_TYPE_UINT, G_TYPE_OBJECT, G_TYPE_HASH_TABLE, G_TYPE_STRING);
 
@@ -1066,7 +1073,7 @@ nm_dhcp_client_class_init (NMDhcpClientClass *client_class)
 	    g_signal_new (NM_DHCP_CLIENT_SIGNAL_PREFIX_DELEGATED,
 	                  G_OBJECT_CLASS_TYPE (object_class),
 	                  G_SIGNAL_RUN_FIRST,
-	                  G_STRUCT_OFFSET (NMDhcpClientClass, state_changed),
+	                  0,
 	                  NULL, NULL, NULL,
 	                  G_TYPE_NONE, 1, G_TYPE_POINTER);
 }
diff --git a/src/dhcp/nm-dhcp-client.h b/src/dhcp/nm-dhcp-client.h
index 86d60e38..8be50717 100644
--- a/src/dhcp/nm-dhcp-client.h
+++ b/src/dhcp/nm-dhcp-client.h
@@ -41,6 +41,7 @@
 #define NM_DHCP_CLIENT_IFINDEX      "ifindex"
 #define NM_DHCP_CLIENT_INTERFACE    "iface"
 #define NM_DHCP_CLIENT_MULTI_IDX    "multi-idx"
+#define NM_DHCP_CLIENT_HOSTNAME     "hostname"
 #define NM_DHCP_CLIENT_ROUTE_METRIC "route-metric"
 #define NM_DHCP_CLIENT_ROUTE_TABLE  "route-table"
 #define NM_DHCP_CLIENT_TIMEOUT      "timeout"
@@ -85,13 +86,11 @@ typedef struct {
 	                           const char *anycast_addr,
 	                           const struct in6_addr *ll_addr,
 	                           NMSettingIP6ConfigPrivacy privacy,
-	                           GBytes *duid,
 	                           guint needed_prefixes,
 	                           GError **error);
 
 	void (*stop)              (NMDhcpClient *self,
-	                           gboolean release,
-	                           GBytes *duid);
+	                           gboolean release);
 
 	/**
 	 * get_duid:
@@ -103,12 +102,6 @@ typedef struct {
 	 * returned.
 	 */
 	GBytes *(*get_duid) (NMDhcpClient *self);
-
-	/* Signals */
-	void (*state_changed) (NMDhcpClient *self,
-	                       NMDhcpState state,
-	                       GObject *ip_config,
-	                       GHashTable *options);
 } NMDhcpClientClass;
 
 GType nm_dhcp_client_get_type (void);
@@ -150,7 +143,6 @@ gboolean nm_dhcp_client_get_use_fqdn (NMDhcpClient *self);
 gboolean nm_dhcp_client_start_ip4 (NMDhcpClient *self,
                                    GBytes *client_id,
                                    const char *dhcp_anycast_addr,
-                                   const char *hostname,
                                    const char *last_ip4_address,
                                    GError **error);
 
@@ -159,7 +151,6 @@ gboolean nm_dhcp_client_start_ip6 (NMDhcpClient *self,
                                    gboolean enforce_duid,
                                    const char *dhcp_anycast_addr,
                                    const struct in6_addr *ll_addr,
-                                   const char *hostname,
                                    NMSettingIP6ConfigPrivacy privacy,
                                    guint needed_prefixes,
                                    GError **error);
diff --git a/src/dhcp/nm-dhcp-dhclient-utils.c b/src/dhcp/nm-dhcp-dhclient-utils.c
index a2c3bfb6..be8d06d9 100644
--- a/src/dhcp/nm-dhcp-dhclient-utils.c
+++ b/src/dhcp/nm-dhcp-dhclient-utils.c
@@ -24,6 +24,7 @@
 #include <string.h>
 #include <ctype.h>
 #include <arpa/inet.h>
+#include <net/if.h>
 
 #include "nm-utils/nm-dedup-multi.h"
 
@@ -233,29 +234,6 @@ read_client_id (const char *str)
 	return nm_utils_hexstr2bin (s);
 }
 
-GBytes *
-nm_dhcp_dhclient_get_client_id_from_config_file (const char *path)
-{
-	gs_free char *contents = NULL;
-	gs_strfreev char **lines = NULL;
-	char **line;
-
-	g_return_val_if_fail (path != NULL, NULL);
-
-	if (!g_file_test (path, G_FILE_TEST_EXISTS))
-		return NULL;
-
-	if (!g_file_get_contents (path, &contents, NULL, NULL))
-		return NULL;
-
-	lines = g_strsplit_set (contents, "\n\r", 0);
-	for (line = lines; lines && *line; line++) {
-		if (!strncmp (*line, CLIENTID_TAG, NM_STRLEN (CLIENTID_TAG)))
-			return read_client_id (*line);
-	}
-	return NULL;
-}
-
 static gboolean
 read_interface (const char *line, char *interface, guint size)
 {
@@ -570,6 +548,7 @@ error:
 
 #define DUID_PREFIX "default-duid \""
 
+/* Beware: @error may be unset even if the function returns %NULL. */
 GBytes *
 nm_dhcp_dhclient_read_duid (const char *leasefile, GError **error)
 {
@@ -606,9 +585,10 @@ nm_dhcp_dhclient_read_duid (const char *leasefile, GError **error)
 
 gboolean
 nm_dhcp_dhclient_save_duid (const char *leasefile,
-                            const char *escaped_duid,
+                            GBytes *duid,
                             GError **error)
 {
+	gs_free char *escaped_duid = NULL;
 	gs_strfreev char **lines = NULL;
 	char **iter, *l;
 	GString *s;
@@ -616,6 +596,14 @@ nm_dhcp_dhclient_save_duid (const char *leasefile,
 	gsize len = 0;
 
 	g_return_val_if_fail (leasefile != NULL, FALSE);
+
+	if (!duid) {
+		nm_utils_error_set_literal (error, NM_UTILS_ERROR_UNKNOWN,
+		                            "missing duid");
+		g_return_val_if_reached (FALSE);
+	}
+
+	escaped_duid = nm_dhcp_dhclient_escape_duid (duid);
 	g_return_val_if_fail (escaped_duid != NULL, FALSE);
 
 	if (g_file_test (leasefile, G_FILE_TEST_EXISTS)) {
diff --git a/src/dhcp/nm-dhcp-dhclient-utils.h b/src/dhcp/nm-dhcp-dhclient-utils.h
index fab9196a..57a711db 100644
--- a/src/dhcp/nm-dhcp-dhclient-utils.h
+++ b/src/dhcp/nm-dhcp-dhclient-utils.h
@@ -40,10 +40,7 @@ GBytes *nm_dhcp_dhclient_unescape_duid (const char *duid);
 GBytes *nm_dhcp_dhclient_read_duid (const char *leasefile, GError **error);
 
 gboolean nm_dhcp_dhclient_save_duid (const char *leasefile,
-                                     const char *escaped_duid,
+                                     GBytes *duid,
                                      GError **error);
 
-GBytes *nm_dhcp_dhclient_get_client_id_from_config_file (const char *path);
-
 #endif /* __NETWORKMANAGER_DHCP_DHCLIENT_UTILS_H__ */
-
diff --git a/src/dhcp/nm-dhcp-dhclient.c b/src/dhcp/nm-dhcp-dhclient.c
index 33c26712..0146c8b4 100644
--- a/src/dhcp/nm-dhcp-dhclient.c
+++ b/src/dhcp/nm-dhcp-dhclient.c
@@ -121,8 +121,8 @@ get_dhclient_leasefile (int addr_family,
                         const char *uuid,
                         char **out_preferred_path)
 {
-	char *rundir_path;
-	char *path;
+	gs_free char *rundir_path = NULL;
+	gs_free char *path = NULL;
 
 	/* First, see if the lease file is in /run */
 	rundir_path = g_strdup_printf (NMRUNDIR "/dhclient%s-%s-%s.lease",
@@ -132,7 +132,7 @@ get_dhclient_leasefile (int addr_family,
 
 	if (g_file_test (rundir_path, G_FILE_TEST_EXISTS)) {
 		NM_SET_OUT (out_preferred_path, g_strdup (rundir_path));
-		return rundir_path;
+		return g_steal_pointer (&rundir_path);
 	}
 
 	/* /var/lib/NetworkManager is the preferred leasefile path */
@@ -142,18 +142,14 @@ get_dhclient_leasefile (int addr_family,
 	                        iface);
 
 	if (g_file_test (path, G_FILE_TEST_EXISTS)) {
-		g_free (rundir_path);
 		NM_SET_OUT (out_preferred_path, g_strdup (path));
-		return path;
+		return g_steal_pointer (&path);
 	}
 
-	if (nm_config_get_configure_and_quit (nm_config_get ()) == NM_CONFIG_CONFIGURE_AND_QUIT_INITRD) {
-		g_free (path);
-		path = rundir_path;
-	} else {
-		g_free (rundir_path);
-	}
-	NM_SET_OUT (out_preferred_path, g_steal_pointer (&path));
+	if (nm_config_get_configure_and_quit (nm_config_get ()) == NM_CONFIG_CONFIGURE_AND_QUIT_INITRD)
+		NM_SET_OUT (out_preferred_path, g_steal_pointer (&rundir_path));
+	else
+		NM_SET_OUT (out_preferred_path, g_steal_pointer (&path));
 
 	/* If the leasefile we're looking for doesn't exist yet in the new location
 	 * (eg, /var/lib/NetworkManager) then look in old locations to maintain
@@ -166,17 +162,16 @@ get_dhclient_leasefile (int addr_family,
 	path = g_strdup_printf (LOCALSTATEDIR "/lib/dhcp/dhclient%s-%s-%s.lease",
 	                        _addr_family_to_path_part (addr_family), uuid, iface);
 	if (g_file_test (path, G_FILE_TEST_EXISTS))
-		return path;
+		return g_steal_pointer (&path);
 
 	/* Old Red Hat and Fedora location */
 	g_free (path);
 	path = g_strdup_printf (LOCALSTATEDIR "/lib/dhclient/dhclient%s-%s-%s.lease",
 	                        _addr_family_to_path_part (addr_family), uuid, iface);
 	if (g_file_test (path, G_FILE_TEST_EXISTS))
-		return path;
+		return g_steal_pointer (&path);
 
 	/* Fail */
-	g_free (path);
 	return NULL;
 }
 
@@ -327,8 +322,18 @@ create_dhclient_config (NMDhcpDhclient *self,
 	else
 		_LOGD ("no existing dhclient configuration to merge");
 
-	if (!merge_dhclient_config (self, addr_family, iface, new, client_id, dhcp_anycast_addr,
-	                            hostname, timeout, use_fqdn, orig, out_new_client_id, &error)) {
+	if (!merge_dhclient_config (self,
+	                            addr_family,
+	                            iface,
+	                            new,
+	                            client_id,
+	                            dhcp_anycast_addr,
+	                            hostname,
+	                            timeout,
+	                            use_fqdn,
+	                            orig,
+	                            out_new_client_id,
+	                            &error)) {
 		_LOGW ("error creating dhclient configuration: %s", error->message);
 		g_clear_error (&error);
 	}
@@ -339,7 +344,6 @@ create_dhclient_config (NMDhcpDhclient *self,
 static gboolean
 dhclient_start (NMDhcpClient *client,
                 const char *mode_opt,
-                GBytes *duid,
                 gboolean release,
                 pid_t *out_pid,
                 int prefixes,
@@ -418,10 +422,9 @@ dhclient_start (NMDhcpClient *client,
 
 	/* Save the DUID to the leasefile dhclient will actually use */
 	if (addr_family == AF_INET6) {
-		gs_free char *escaped = NULL;
-
-		escaped = nm_dhcp_dhclient_escape_duid (duid);
-		if (!nm_dhcp_dhclient_save_duid (priv->lease_file, escaped, &local)) {
+		if (!nm_dhcp_dhclient_save_duid (priv->lease_file,
+		                                 nm_dhcp_client_get_client_id (client),
+		                                 &local)) {
 			nm_utils_error_set (error,
 			                    NM_UTILS_ERROR_UNKNOWN,
 			                    "failed to save DUID to '%s': %s",
@@ -541,7 +544,6 @@ ip4_start (NMDhcpClient *client,
 	}
 	return dhclient_start (client,
 	                       NULL,
-	                       NULL,
 	                       FALSE,
 	                       NULL,
 	                       0,
@@ -553,7 +555,6 @@ ip6_start (NMDhcpClient *client,
            const char *dhcp_anycast_addr,
            const struct in6_addr *ll_addr,
            NMSettingIP6ConfigPrivacy privacy,
-           GBytes *duid,
            guint needed_prefixes,
            GError **error)
 {
@@ -581,7 +582,6 @@ ip6_start (NMDhcpClient *client,
 	                       nm_dhcp_client_get_info_only (NM_DHCP_CLIENT (self))
 	                         ? "-S"
 	                         : "-N",
-	                       duid,
 	                       FALSE,
 	                       NULL,
 	                       needed_prefixes,
@@ -589,12 +589,12 @@ ip6_start (NMDhcpClient *client,
 }
 
 static void
-stop (NMDhcpClient *client, gboolean release, GBytes *duid)
+stop (NMDhcpClient *client, gboolean release)
 {
 	NMDhcpDhclient *self = NM_DHCP_DHCLIENT (client);
 	NMDhcpDhclientPrivate *priv = NM_DHCP_DHCLIENT_GET_PRIVATE (self);
 
-	NM_DHCP_CLIENT_CLASS (nm_dhcp_dhclient_parent_class)->stop (client, release, duid);
+	NM_DHCP_CLIENT_CLASS (nm_dhcp_dhclient_parent_class)->stop (client, release);
 
 	if (priv->conf_file)
 		if (remove (priv->conf_file) == -1)
@@ -613,7 +613,6 @@ stop (NMDhcpClient *client, gboolean release, GBytes *duid)
 
 		if (dhclient_start (client,
 		                    NULL,
-		                    duid,
 		                    TRUE,
 		                    &rpid,
 		                    0,
@@ -624,31 +623,13 @@ stop (NMDhcpClient *client, gboolean release, GBytes *duid)
 	}
 }
 
-static void
-state_changed (NMDhcpClient *client,
-               NMDhcpState state,
-               GObject *ip_config,
-               GHashTable *options)
-{
-	NMDhcpDhclientPrivate *priv = NM_DHCP_DHCLIENT_GET_PRIVATE ((NMDhcpDhclient *) client);
-	gs_unref_bytes GBytes *client_id = NULL;
-
-	if (nm_dhcp_client_get_client_id (client))
-		return;
-	if (state != NM_DHCP_STATE_BOUND)
-		return;
-
-	client_id = nm_dhcp_dhclient_get_client_id_from_config_file (priv->conf_file);
-	nm_dhcp_client_set_client_id (client, client_id);
-}
-
 static GBytes *
 get_duid (NMDhcpClient *client)
 {
 	NMDhcpDhclient *self = NM_DHCP_DHCLIENT (client);
 	NMDhcpDhclientPrivate *priv = NM_DHCP_DHCLIENT_GET_PRIVATE (self);
 	GBytes *duid = NULL;
-	char *leasefile;
+	gs_free char *leasefile = NULL;
 	GError *error = NULL;
 
 	/* Look in interface-specific leasefile first for backwards compat */
@@ -659,25 +640,23 @@ get_duid (NMDhcpClient *client)
 	if (leasefile) {
 		_LOGD ("looking for DUID in '%s'", leasefile);
 		duid = nm_dhcp_dhclient_read_duid (leasefile, &error);
-
 		if (error) {
 			_LOGW ("failed to read leasefile '%s': %s",
 			       leasefile, error->message);
 			g_clear_error (&error);
 		}
-		g_free (leasefile);
+		if (duid)
+			return duid;
 	}
 
-	if (!duid) {
-		/* Otherwise read the default machine-wide DUID */
-		_LOGD ("looking for default DUID in '%s'", priv->def_leasefile);
-		duid = nm_dhcp_dhclient_read_duid (priv->def_leasefile, &error);
-		if (error) {
-			_LOGW ("failed to read leasefile '%s': %s",
-			        priv->def_leasefile,
-			        error->message);
-			g_clear_error (&error);
-		}
+	/* Otherwise read the default machine-wide DUID */
+	_LOGD ("looking for default DUID in '%s'", priv->def_leasefile);
+	duid = nm_dhcp_dhclient_read_duid (priv->def_leasefile, &error);
+	if (error) {
+		_LOGW ("failed to read leasefile '%s': %s",
+		        priv->def_leasefile,
+		        error->message);
+		g_clear_error (&error);
 	}
 
 	return duid;
@@ -742,7 +721,6 @@ nm_dhcp_dhclient_class_init (NMDhcpDhclientClass *dhclient_class)
 	client_class->ip6_start = ip6_start;
 	client_class->stop = stop;
 	client_class->get_duid = get_duid;
-	client_class->state_changed = state_changed;
 }
 
 const NMDhcpClientFactory _nm_dhcp_client_factory_dhclient = {
diff --git a/src/dhcp/nm-dhcp-dhcpcanon.c b/src/dhcp/nm-dhcp-dhcpcanon.c
index de403020..0f033e22 100644
--- a/src/dhcp/nm-dhcp-dhcpcanon.c
+++ b/src/dhcp/nm-dhcp-dhcpcanon.c
@@ -193,20 +193,20 @@ ip6_start (NMDhcpClient *client,
            const char *dhcp_anycast_addr,
            const struct in6_addr *ll_addr,
            NMSettingIP6ConfigPrivacy privacy,
-           GBytes *duid,
            guint needed_prefixes,
            GError **error)
 {
 	nm_utils_error_set_literal (error, NM_UTILS_ERROR_UNKNOWN, "dhcpcanon plugin does not support IPv6");
 	return FALSE;
 }
+
 static void
-stop (NMDhcpClient *client, gboolean release, GBytes *duid)
+stop (NMDhcpClient *client, gboolean release)
 {
 	NMDhcpDhcpcanon *self = NM_DHCP_DHCPCANON (client);
 	NMDhcpDhcpcanonPrivate *priv = NM_DHCP_DHCPCANON_GET_PRIVATE (self);
 
-	NM_DHCP_CLIENT_CLASS (nm_dhcp_dhcpcanon_parent_class)->stop (client, release, duid);
+	NM_DHCP_CLIENT_CLASS (nm_dhcp_dhcpcanon_parent_class)->stop (client, release);
 
 	if (priv->pid_file) {
 		if (remove (priv->pid_file) == -1)
@@ -216,18 +216,6 @@ stop (NMDhcpClient *client, gboolean release, GBytes *duid)
 	}
 }
 
-static void
-state_changed (NMDhcpClient *client,
-               NMDhcpState state,
-               GObject *ip_config,
-               GHashTable *options)
-{
-	if (nm_dhcp_client_get_client_id (client))
-		return;
-	if (state != NM_DHCP_STATE_BOUND)
-		return;
-}
-
 /*****************************************************************************/
 
 static void
@@ -270,7 +258,6 @@ nm_dhcp_dhcpcanon_class_init (NMDhcpDhcpcanonClass *dhcpcanon_class)
 	client_class->ip4_start = ip4_start;
 	client_class->ip6_start = ip6_start;
 	client_class->stop = stop;
-	client_class->state_changed = state_changed;
 }
 
 const NMDhcpClientFactory _nm_dhcp_client_factory_dhcpcanon = {
diff --git a/src/dhcp/nm-dhcp-dhcpcd.c b/src/dhcp/nm-dhcp-dhcpcd.c
index 98ab5342..e2a1354f 100644
--- a/src/dhcp/nm-dhcp-dhcpcd.c
+++ b/src/dhcp/nm-dhcp-dhcpcd.c
@@ -187,7 +187,6 @@ ip6_start (NMDhcpClient *client,
            const char *dhcp_anycast_addr,
            const struct in6_addr *ll_addr,
            NMSettingIP6ConfigPrivacy privacy,
-           GBytes *duid,
            guint needed_prefixes,
            GError **error)
 {
@@ -196,12 +195,12 @@ ip6_start (NMDhcpClient *client,
 }
 
 static void
-stop (NMDhcpClient *client, gboolean release, GBytes *duid)
+stop (NMDhcpClient *client, gboolean release)
 {
 	NMDhcpDhcpcd *self = NM_DHCP_DHCPCD (client);
 	NMDhcpDhcpcdPrivate *priv = NM_DHCP_DHCPCD_GET_PRIVATE (self);
 
-	NM_DHCP_CLIENT_CLASS (nm_dhcp_dhcpcd_parent_class)->stop (client, release, duid);
+	NM_DHCP_CLIENT_CLASS (nm_dhcp_dhcpcd_parent_class)->stop (client, release);
 
 	if (priv->pid_file) {
 		if (remove (priv->pid_file) == -1)
diff --git a/src/dhcp/nm-dhcp-manager.c b/src/dhcp/nm-dhcp-manager.c
index 5ae16d72..a51c6e38 100644
--- a/src/dhcp/nm-dhcp-manager.c
+++ b/src/dhcp/nm-dhcp-manager.c
@@ -181,6 +181,7 @@ client_start (NMDhcpManager *self,
 	gsize hwaddr_len;
 
 	g_return_val_if_fail (NM_IS_DHCP_MANAGER (self), NULL);
+	g_return_val_if_fail (iface, NULL);
 	g_return_val_if_fail (ifindex > 0, NULL);
 	g_return_val_if_fail (uuid != NULL, NULL);
 	g_return_val_if_fail (!dhcp_client_id || g_bytes_get_size (dhcp_client_id) >= 2, NULL);
@@ -221,6 +222,7 @@ client_start (NMDhcpManager *self,
 	                       NM_DHCP_CLIENT_IFINDEX, ifindex,
 	                       NM_DHCP_CLIENT_HWADDR, hwaddr,
 	                       NM_DHCP_CLIENT_UUID, uuid,
+	                       NM_DHCP_CLIENT_HOSTNAME, hostname,
 	                       NM_DHCP_CLIENT_ROUTE_TABLE, (guint) route_table,
 	                       NM_DHCP_CLIENT_ROUTE_METRIC, (guint) route_metric,
 	                       NM_DHCP_CLIENT_TIMEOUT, (guint) timeout,
@@ -233,11 +235,36 @@ client_start (NMDhcpManager *self,
 	c_list_link_tail (&priv->dhcp_client_lst_head, &client->dhcp_client_lst);
 	g_signal_connect (client, NM_DHCP_CLIENT_SIGNAL_STATE_CHANGED, G_CALLBACK (client_state_changed), self);
 
+	/* unfortunately, our implementations work differently per address-family regarding client-id/DUID.
+	 *
+	 * - for IPv4, the calling code may determine a client-id (from NM's connection profile).
+	 *   If present, it is taken. If not present, the DHCP plugin uses a plugin specific default.
+	 *     - for "internal" plugin, the default is just "duid".
+	 *     - for "dhclient", we try to get the configuration from dhclient's /etc/dhcp or fallback
+	 *       to whatever dhclient uses by default.
+	 *   We do it this way, because for dhclient the user may configure a default
+	 *   outside of NM, and we want to honor that. Worse, dhclient could be a wapper
+	 *   script where the wrapper script overwrites the client-id. We need to distinguish
+	 *   between: force a particular client-id and leave it unspecified to whatever dhclient
+	 *   wants.
+	 *
+	 * - for IPv6, the calling code always determines a client-id. It also specifies @enforce_duid,
+	 *   to determine whether the given client-id must be used.
+	 *     - for "internal" plugin @enforce_duid doesn't matter and the given client-id is
+	 *       always used.
+	 *     - for "dhclient", @enforce_duid FALSE means to first try to load the DUID from the
+	 *       lease file, and only otherwise fallback to the given client-id.
+	 *     - other plugins don't support DHCPv6.
+	 *   It's done this way, so that existing dhclient setups don't change behavior on upgrade.
+	 *
+	 * This difference is cumbersome and only exists because of "dhclient" which supports hacking the
+	 * default outside of NetworkManager API.
+	 */
+
 	if (addr_family == AF_INET) {
 		success = nm_dhcp_client_start_ip4 (client,
 		                                    dhcp_client_id,
 		                                    dhcp_anycast_addr,
-		                                    hostname,
 		                                    last_ip4_address,
 		                                    error);
 	} else {
@@ -246,7 +273,6 @@ client_start (NMDhcpManager *self,
 		                                    enforce_duid,
 		                                    dhcp_anycast_addr,
 		                                    ipv6_ll_addr,
-		                                    hostname,
 		                                    privacy,
 		                                    needed_prefixes,
 		                                    error);
@@ -311,10 +337,27 @@ nm_dhcp_manager_start_ip4 (NMDhcpManager *self,
 		}
 	}
 
-	return client_start (self, AF_INET, multi_idx, iface, ifindex, hwaddr, uuid,
-	                     route_table, route_metric, NULL,
-	                     dhcp_client_id, 0, timeout, dhcp_anycast_addr, hostname,
-	                     use_fqdn, FALSE, 0, last_ip_address, 0, error);
+	return client_start (self,
+	                     AF_INET,
+	                     multi_idx,
+	                     iface,
+	                     ifindex,
+	                     hwaddr,
+	                     uuid,
+	                     route_table,
+	                     route_metric,
+	                     NULL,
+	                     dhcp_client_id,
+	                     FALSE,
+	                     timeout,
+	                     dhcp_anycast_addr,
+	                     hostname,
+	                     use_fqdn,
+	                     FALSE,
+	                     0,
+	                     last_ip_address,
+	                     0,
+	                     error);
 }
 
 /* Caller owns a reference to the NMDhcpClient on return */
@@ -349,10 +392,27 @@ nm_dhcp_manager_start_ip6 (NMDhcpManager *self,
 		/* Always prefer the explicit dhcp-hostname if given */
 		hostname = dhcp_hostname ?: priv->default_hostname;
 	}
-	return client_start (self, AF_INET6, multi_idx, iface, ifindex, hwaddr, uuid,
-	                     route_table, route_metric, ll_addr, duid, enforce_duid,
-	                     timeout, dhcp_anycast_addr, hostname, TRUE, info_only,
-	                     privacy, NULL, needed_prefixes, error);
+	return client_start (self,
+	                     AF_INET6,
+	                     multi_idx,
+	                     iface,
+	                     ifindex,
+	                     hwaddr,
+	                     uuid,
+	                     route_table,
+	                     route_metric,
+	                     ll_addr,
+	                     duid,
+	                     enforce_duid,
+	                     timeout,
+	                     dhcp_anycast_addr,
+	                     hostname,
+	                     TRUE,
+	                     info_only,
+	                     privacy,
+	                     NULL,
+	                     needed_prefixes,
+	                     error);
 }
 
 void
@@ -384,6 +444,12 @@ nm_dhcp_manager_get_config (NMDhcpManager *self)
 
 NM_DEFINE_SINGLETON_GETTER (NMDhcpManager, nm_dhcp_manager_get, NM_TYPE_DHCP_MANAGER);
 
+void
+nmtst_dhcp_manager_unget (gpointer self)
+{
+	_nmtst_nm_dhcp_manager_get_reset (self);
+}
+
 static void
 nm_dhcp_manager_init (NMDhcpManager *self)
 {
@@ -446,6 +512,10 @@ nm_dhcp_manager_init (NMDhcpManager *self)
 
 	nm_log_info (LOGD_DHCP, "dhcp-init: Using DHCP client '%s'", client_factory->name);
 
+	/* NOTE: currently the DHCP plugin is chosen once at start. It's not
+	 * possible to reload that configuration. If that ever becomes possible,
+	 * beware that the "dhcp-plugin" device spec made decisions based on
+	 * the previous plugin and may need reevaluation. */
 	priv->client_factory = client_factory;
 }
 
diff --git a/src/dhcp/nm-dhcp-manager.h b/src/dhcp/nm-dhcp-manager.h
index 1d9e5c21..f8f39e53 100644
--- a/src/dhcp/nm-dhcp-manager.h
+++ b/src/dhcp/nm-dhcp-manager.h
@@ -87,4 +87,6 @@ extern const char* nm_dhcp_helper_path;
 
 extern const NMDhcpClientFactory *const _nm_dhcp_manager_factories[4];
 
+void nmtst_dhcp_manager_unget (gpointer singleton_instance);
+
 #endif /* __NETWORKMANAGER_DHCP_MANAGER_H__ */
diff --git a/src/dhcp/nm-dhcp-systemd.c b/src/dhcp/nm-dhcp-systemd.c
index 5b7b5fbe..5c60af5f 100644
--- a/src/dhcp/nm-dhcp-systemd.c
+++ b/src/dhcp/nm-dhcp-systemd.c
@@ -34,6 +34,7 @@
 #include "nm-utils.h"
 #include "nm-config.h"
 #include "nm-dhcp-utils.h"
+#include "nm-core-utils.h"
 #include "NetworkManagerUtils.h"
 #include "platform/nm-platform.h"
 #include "nm-dhcp-client-logging.h"
@@ -483,22 +484,6 @@ get_leasefile_path (int addr_family, const char *iface, const char *uuid)
 /*****************************************************************************/
 
 static void
-_save_client_id (NMDhcpSystemd *self,
-                 uint8_t type,
-                 const uint8_t *client_id,
-                 size_t len)
-{
-	g_return_if_fail (self != NULL);
-	g_return_if_fail (client_id != NULL);
-	g_return_if_fail (len > 0);
-
-	if (!nm_dhcp_client_get_client_id (NM_DHCP_CLIENT (self))) {
-		nm_dhcp_client_set_client_id_bin (NM_DHCP_CLIENT (self),
-		                                  type, client_id, len);
-	}
-}
-
-static void
 bound4_handle (NMDhcpSystemd *self)
 {
 	NMDhcpSystemdPrivate *priv = NM_DHCP_SYSTEMD_GET_PRIVATE (self);
@@ -529,17 +514,9 @@ bound4_handle (NMDhcpSystemd *self)
 	                                  TRUE,
 	                                  &error);
 	if (ip4_config) {
-		const uint8_t *client_id = NULL;
-		size_t client_id_len = 0;
-		uint8_t type = 0;
-
 		add_requests_to_options (options, dhcp4_requests);
 		dhcp_lease_save (lease, priv->lease_file);
 
-		sd_dhcp_client_get_client_id (priv->client4, &type, &client_id, &client_id_len);
-		if (client_id)
-			_save_client_id (self, type, client_id, client_id_len);
-
 		nm_dhcp_client_set_state (NM_DHCP_CLIENT (self),
 		                          NM_DHCP_STATE_BOUND,
 		                          NM_IP_CONFIG_CAST (ip4_config),
@@ -582,127 +559,122 @@ dhcp_event_cb (sd_dhcp_client *client, int event, gpointer user_data)
 	}
 }
 
-static guint16
-get_arp_type (GBytes *hwaddr)
-{
-	switch (g_bytes_get_size (hwaddr)) {
-	case ETH_ALEN:
-		return ARPHRD_ETHER;
-	case INFINIBAND_ALEN:
-		return ARPHRD_INFINIBAND;
-	default:
-		return ARPHRD_NONE;
-	}
-}
-
 static gboolean
 ip4_start (NMDhcpClient *client,
            const char *dhcp_anycast_addr,
            const char *last_ip4_address,
            GError **error)
 {
+	nm_auto (sd_dhcp_client_unrefp) sd_dhcp_client *sd_client = NULL;
 	NMDhcpSystemd *self = NM_DHCP_SYSTEMD (client);
 	NMDhcpSystemdPrivate *priv = NM_DHCP_SYSTEMD_GET_PRIVATE (self);
-	const char *iface = nm_dhcp_client_get_iface (client);
+	gs_free char *lease_file = NULL;
 	GBytes *hwaddr;
-	sd_dhcp_lease *lease = NULL;
-	GBytes *override_client_id;
-	const uint8_t *client_id = NULL;
-	size_t client_id_len = 0;
+	const uint8_t *hwaddr_arr;
+	gsize hwaddr_len;
+	int arp_type;
+	GBytes *client_id;
+	gs_unref_bytes GBytes *client_id_new = NULL;
+	const uint8_t *client_id_arr;
+	size_t client_id_len;
 	struct in_addr last_addr = { 0 };
 	const char *hostname;
 	int r, i;
-	gboolean success = FALSE;
 
-	g_assert (priv->client4 == NULL);
-	g_assert (priv->client6 == NULL);
-
-	g_free (priv->lease_file);
-	priv->lease_file = get_leasefile_path (AF_INET, iface, nm_dhcp_client_get_uuid (client));
+	g_return_val_if_fail (!priv->client4, FALSE);
+	g_return_val_if_fail (!priv->client6, FALSE);
 
-	r = sd_dhcp_client_new (&priv->client4, FALSE);
+	r = sd_dhcp_client_new (&sd_client, FALSE);
 	if (r < 0) {
 		nm_utils_error_set_errno (error, r, "failed to create dhcp-client: %s");
 		return FALSE;
 	}
 
-	_LOGT ("dhcp-client4: set %p", priv->client4);
+	_LOGT ("dhcp-client4: set %p", sd_client);
 
-	r = sd_dhcp_client_attach_event (priv->client4, NULL, 0);
+	r = sd_dhcp_client_attach_event (sd_client, NULL, 0);
 	if (r < 0) {
 		nm_utils_error_set_errno (error, r, "failed to attach event: %s");
-		goto errout;
+		return FALSE;
 	}
 
 	hwaddr = nm_dhcp_client_get_hw_addr (client);
-	if (hwaddr) {
-		const uint8_t *data;
-		gsize len;
-
-		data = g_bytes_get_data (hwaddr, &len);
-		r = sd_dhcp_client_set_mac (priv->client4,
-		                            data,
-		                            len,
-		                            get_arp_type (hwaddr));
-		if (r < 0) {
-			nm_utils_error_set_errno (error, r, "failed to set MAC address: %s");
-			goto errout;
-		}
+	if (   !hwaddr
+	    || !(hwaddr_arr = g_bytes_get_data (hwaddr, &hwaddr_len))
+	    || (arp_type = nm_utils_arp_type_detect_from_hwaddrlen (hwaddr_len)) < 0) {
+		nm_utils_error_set_literal (error, NM_UTILS_ERROR_UNKNOWN, "invalid MAC address");
+		return FALSE;
 	}
-
-	r = sd_dhcp_client_set_ifindex (priv->client4, nm_dhcp_client_get_ifindex (client));
+	r = sd_dhcp_client_set_mac (sd_client,
+	                            hwaddr_arr,
+	                            hwaddr_len,
+	                            (guint16) arp_type);
 	if (r < 0) {
-		nm_utils_error_set_errno (error, r, "failed to set ifindex: %s");
-		goto errout;
+		nm_utils_error_set_errno (error, r, "failed to set MAC address: %s");
+		return FALSE;
 	}
 
-	r = sd_dhcp_client_set_callback (priv->client4, dhcp_event_cb, client);
+	r = sd_dhcp_client_set_ifindex (sd_client,
+	                                nm_dhcp_client_get_ifindex (client));
 	if (r < 0) {
-		nm_utils_error_set_errno (error, r, "failed to set callback: %s");
-		goto errout;
+		nm_utils_error_set_errno (error, r, "failed to set ifindex: %s");
+		return FALSE;
 	}
 
-	dhcp_lease_load (&lease, priv->lease_file);
+	lease_file = get_leasefile_path (AF_INET,
+	                                 nm_dhcp_client_get_iface (client),
+	                                 nm_dhcp_client_get_uuid (client));
 
 	if (last_ip4_address)
 		inet_pton (AF_INET, last_ip4_address, &last_addr);
-	else if (lease)
-		sd_dhcp_lease_get_address (lease, &last_addr);
+	else {
+		nm_auto (sd_dhcp_lease_unrefp) sd_dhcp_lease *lease = NULL;
+
+		dhcp_lease_load (&lease, lease_file);
+		if (lease)
+			sd_dhcp_lease_get_address (lease, &last_addr);
+	}
 
 	if (last_addr.s_addr) {
-		r = sd_dhcp_client_set_request_address (priv->client4, &last_addr);
+		r = sd_dhcp_client_set_request_address (sd_client, &last_addr);
 		if (r < 0) {
 			nm_utils_error_set_errno (error, r, "failed to set last IPv4 address: %s");
-			goto errout;
+			return FALSE;
 		}
 	}
 
-	override_client_id = nm_dhcp_client_get_client_id (client);
-	if (override_client_id) {
-		client_id = g_bytes_get_data (override_client_id, &client_id_len);
-		nm_assert (client_id && client_id_len >= 2);
-		sd_dhcp_client_set_client_id (priv->client4,
-		                              client_id[0],
-		                              client_id + 1,
-		                              NM_MIN (client_id_len - 1, _NM_SD_MAX_CLIENT_ID_LEN));
-	} else if (lease) {
-		r = sd_dhcp_lease_get_client_id (lease, (const void **) &client_id, &client_id_len);
-		if (r == 0 && client_id_len >= 2) {
-			sd_dhcp_client_set_client_id (priv->client4,
-			                              client_id[0],
-			                              client_id + 1,
-			                              client_id_len - 1);
-			_save_client_id (NM_DHCP_SYSTEMD (client),
-			                 client_id[0],
-			                 client_id + 1,
-			                 client_id_len - 1);
-		}
+	client_id = nm_dhcp_client_get_client_id (client);
+	if (!client_id) {
+		client_id_new = nm_utils_dhcp_client_id_systemd_node_specific (TRUE,
+		                                                               nm_dhcp_client_get_iface (client));
+		client_id = client_id_new;
+	}
+
+	if (   !(client_id_arr = g_bytes_get_data (client_id, &client_id_len))
+	    || client_id_len < 2) {
+
+		/* invalid client-ids are not expected. */
+		nm_assert_not_reached ();
+
+		nm_utils_error_set_literal (error, NM_UTILS_ERROR_UNKNOWN, "no valid IPv4 client-id");
+		return FALSE;
+	}
+
+	/* Note that we always set a client-id. In particular for infiniband that is necessary,
+	 * see https://tools.ietf.org/html/rfc4390#section-2.1 . */
+	r = sd_dhcp_client_set_client_id (sd_client,
+	                                  client_id_arr[0],
+	                                  client_id_arr + 1,
+	                                  NM_MIN (client_id_len - 1, _NM_SD_MAX_CLIENT_ID_LEN));
+	if (r < 0) {
+		nm_utils_error_set_errno (error, r, "failed to set IPv4 client-id: %s");
+		return FALSE;
 	}
 
 	/* Add requested options */
 	for (i = 0; dhcp4_requests[i].name; i++) {
 		if (dhcp4_requests[i].include)
-			sd_dhcp_client_set_request_option (priv->client4, dhcp4_requests[i].num);
+			sd_dhcp_client_set_request_option (sd_client, dhcp4_requests[i].num);
 	}
 
 	hostname = nm_dhcp_client_get_hostname (client);
@@ -711,28 +683,36 @@ ip4_start (NMDhcpClient *client,
 		 * only based on whether the hostname has a domain part or not. At the
 		 * moment there is no way to force one or another.
 		 */
-		r = sd_dhcp_client_set_hostname (priv->client4, hostname);
+		r = sd_dhcp_client_set_hostname (sd_client, hostname);
 		if (r < 0) {
 			nm_utils_error_set_errno (error, r, "failed to set DHCP hostname: %s");
-			goto errout;
+			return FALSE;
 		}
 	}
 
+	r = sd_dhcp_client_set_callback (sd_client, dhcp_event_cb, client);
+	if (r < 0) {
+		nm_utils_error_set_errno (error, r, "failed to set callback: %s");
+		return FALSE;
+	}
+
+	priv->client4 = g_steal_pointer (&sd_client);
+
+	g_free (priv->lease_file);
+	priv->lease_file = g_steal_pointer (&lease_file);
+
+	nm_dhcp_client_set_client_id (client, client_id);
+
 	r = sd_dhcp_client_start (priv->client4);
 	if (r < 0) {
+		sd_dhcp_client_set_callback (priv->client4, NULL, NULL);
+		nm_clear_pointer (&priv->client4, sd_dhcp_client_unref);
 		nm_utils_error_set_errno (error, r, "failed to start DHCP client: %s");
-		goto errout;
+		return FALSE;
 	}
 
 	nm_dhcp_client_start_timeout (client);
-
-	success = TRUE;
-
-errout:
-	sd_dhcp_lease_unref (lease);
-	if (!success)
-		sd_dhcp_client_unref (g_steal_pointer (&priv->client4));
-	return success;
+	return TRUE;
 }
 
 static NMIP6Config *
@@ -895,31 +875,33 @@ ip6_start (NMDhcpClient *client,
            const char *dhcp_anycast_addr,
            const struct in6_addr *ll_addr,
            NMSettingIP6ConfigPrivacy privacy,
-           GBytes *duid,
            guint needed_prefixes,
            GError **error)
 {
 	NMDhcpSystemd *self = NM_DHCP_SYSTEMD (client);
 	NMDhcpSystemdPrivate *priv = NM_DHCP_SYSTEMD_GET_PRIVATE (self);
-	const char *iface = nm_dhcp_client_get_iface (client);
+	nm_auto (sd_dhcp6_client_unrefp) sd_dhcp6_client *sd_client = NULL;
 	GBytes *hwaddr;
 	const char *hostname;
 	int r, i;
 	const guint8 *duid_arr;
 	gsize duid_len;
-
-	g_assert (priv->client4 == NULL);
-	g_assert (priv->client6 == NULL);
-	g_return_val_if_fail (duid != NULL, FALSE);
-
-	duid_arr = g_bytes_get_data (duid, &duid_len);
-	if (!duid_arr || duid_len < 2)
+	GBytes *duid;
+	const uint8_t *hwaddr_arr;
+	gsize hwaddr_len;
+	int arp_type;
+
+	g_return_val_if_fail (!priv->client4, FALSE);
+	g_return_val_if_fail (!priv->client6, FALSE);
+
+	if (   !(duid = nm_dhcp_client_get_client_id (client))
+	    || !(duid_arr = g_bytes_get_data (duid, &duid_len))
+	    || duid_len < 2) {
+		nm_utils_error_set_literal (error, NM_UTILS_ERROR_UNKNOWN, "missing DUID");
 		g_return_val_if_reached (FALSE);
+	}
 
-	g_free (priv->lease_file);
-	priv->lease_file = get_leasefile_path (AF_INET6, iface, nm_dhcp_client_get_uuid (client));
-
-	r = sd_dhcp6_client_new (&priv->client6);
+	r = sd_dhcp6_client_new (&sd_client);
 	if (r < 0) {
 		nm_utils_error_set_errno (error, r, "failed to create dhcp-client: %s");
 		return FALSE;
@@ -930,12 +912,12 @@ ip6_start (NMDhcpClient *client,
 		       needed_prefixes);
 	}
 
-	_LOGT ("dhcp-client6: set %p", priv->client6);
+	_LOGT ("dhcp-client6: set %p", sd_client);
 
 	if (nm_dhcp_client_get_info_only (client))
-		sd_dhcp6_client_set_information_request (priv->client6, 1);
+		sd_dhcp6_client_set_information_request (sd_client, 1);
 
-	r = sd_dhcp6_client_set_duid (priv->client6,
+	r = sd_dhcp6_client_set_duid (sd_client,
 	                              unaligned_read_be16 (&duid_arr[0]),
 	                              &duid_arr[2],
 	                              duid_len - 2);
@@ -944,82 +926,82 @@ ip6_start (NMDhcpClient *client,
 		return FALSE;
 	}
 
-	r = sd_dhcp6_client_attach_event (priv->client6, NULL, 0);
+	r = sd_dhcp6_client_attach_event (sd_client, NULL, 0);
 	if (r < 0) {
 		nm_utils_error_set_errno (error, r, "failed to attach event: %s");
-		goto errout;
+		return FALSE;
 	}
 
 	hwaddr = nm_dhcp_client_get_hw_addr (client);
-	if (hwaddr) {
-		const uint8_t *data;
-		gsize len;
-
-		data = g_bytes_get_data (hwaddr, &len);
-		r = sd_dhcp6_client_set_mac (priv->client6,
-		                             data,
-		                             len,
-		                             get_arp_type (hwaddr));
-		if (r < 0) {
-			nm_utils_error_set_errno (error, r, "failed to set MAC address: %s");
-			goto errout;
-		}
+	if (   !hwaddr
+	    || !(hwaddr_arr = g_bytes_get_data (hwaddr, &hwaddr_len))
+	    || (arp_type = nm_utils_arp_type_detect_from_hwaddrlen (hwaddr_len)) < 0) {
+		nm_utils_error_set_literal (error, NM_UTILS_ERROR_UNKNOWN, "invalid MAC address");
+		return FALSE;
 	}
-
-	r = sd_dhcp6_client_set_ifindex (priv->client6, nm_dhcp_client_get_ifindex (client));
+	r = sd_dhcp6_client_set_mac (sd_client,
+	                             hwaddr_arr,
+	                             hwaddr_len,
+	                             (guint16) arp_type);
 	if (r < 0) {
-		nm_utils_error_set_errno (error, r, "failed to set ifindex: %s");
-		goto errout;
+		nm_utils_error_set_errno (error, r, "failed to set MAC address: %s");
+		return FALSE;
 	}
 
-	r = sd_dhcp6_client_set_callback (priv->client6, dhcp6_event_cb, client);
+	r = sd_dhcp6_client_set_ifindex (sd_client,
+	                                 nm_dhcp_client_get_ifindex (client));
 	if (r < 0) {
-		nm_utils_error_set_errno (error, r, "failed to set callback: %s");
-		goto errout;
+		nm_utils_error_set_errno (error, r, "failed to set ifindex: %s");
+		return FALSE;
 	}
 
 	/* Add requested options */
 	for (i = 0; dhcp6_requests[i].name; i++) {
 		if (dhcp6_requests[i].include)
-			sd_dhcp6_client_set_request_option (priv->client6, dhcp6_requests[i].num);
+			sd_dhcp6_client_set_request_option (sd_client, dhcp6_requests[i].num);
 	}
 
-	r = sd_dhcp6_client_set_local_address (priv->client6, ll_addr);
+	r = sd_dhcp6_client_set_local_address (sd_client, ll_addr);
 	if (r < 0) {
 		nm_utils_error_set_errno (error, r, "failed to set local address: %s");
-		goto errout;
+		return FALSE;
 	}
 
 	hostname = nm_dhcp_client_get_hostname (client);
-	r = sd_dhcp6_client_set_fqdn (priv->client6, hostname);
+	r = sd_dhcp6_client_set_fqdn (sd_client, hostname);
 	if (r < 0) {
 		nm_utils_error_set_errno (error, r, "failed to set DHCP hostname: %s");
-		goto errout;
+		return FALSE;
 	}
 
+	r = sd_dhcp6_client_set_callback (sd_client, dhcp6_event_cb, client);
+	if (r < 0) {
+		nm_utils_error_set_errno (error, r, "failed to set callback: %s");
+		return FALSE;
+	}
+
+	priv->client6 = g_steal_pointer (&sd_client);
+
 	r = sd_dhcp6_client_start (priv->client6);
 	if (r < 0) {
+		sd_dhcp6_client_set_callback (priv->client6, NULL, NULL);
+		nm_clear_pointer (&priv->client6, sd_dhcp6_client_unref);
 		nm_utils_error_set_errno (error, r, "failed to start client: %s");
-		goto errout;
+		return FALSE;
 	}
 
 	nm_dhcp_client_start_timeout (client);
-
 	return TRUE;
-
-errout:
-	sd_dhcp6_client_unref (g_steal_pointer (&priv->client6));
-	return FALSE;
 }
 
 static void
-stop (NMDhcpClient *client, gboolean release, GBytes *duid)
+stop (NMDhcpClient *client, gboolean release)
 {
 	NMDhcpSystemd *self = NM_DHCP_SYSTEMD (client);
 	NMDhcpSystemdPrivate *priv = NM_DHCP_SYSTEMD_GET_PRIVATE (self);
 	int r = 0;
 
-	NM_DHCP_CLIENT_CLASS (nm_dhcp_systemd_parent_class)->stop (client, release, duid);
+	NM_DHCP_CLIENT_CLASS (nm_dhcp_systemd_parent_class)->stop (client, release);
 
 	_LOGT ("dhcp-client%d: stop %p",
 	       priv->client4 ? '4' : '6',
diff --git a/src/dhcp/nm-dhcp-utils.c b/src/dhcp/nm-dhcp-utils.c
index 6bbc670b..9b1653b8 100644
--- a/src/dhcp/nm-dhcp-utils.c
+++ b/src/dhcp/nm-dhcp-utils.c
@@ -726,10 +726,10 @@ nm_dhcp_utils_duid_to_string (GBytes *duid)
 	gconstpointer data;
 	gsize len;
 
-	g_return_val_if_fail (duid != NULL, NULL);
+	g_return_val_if_fail (duid, NULL);
 
 	data = g_bytes_get_data (duid, &len);
-	return _nm_utils_bin2str (data, len, FALSE);
+	return _nm_utils_bin2hexstr_full (data, len, ':', FALSE, NULL);
 }
 
 /**
diff --git a/src/dhcp/tests/test-dhcp-dhclient.c b/src/dhcp/tests/test-dhcp-dhclient.c
index edac4257..ab1f5551 100644
--- a/src/dhcp/tests/test-dhcp-dhclient.c
+++ b/src/dhcp/tests/test-dhcp-dhclient.c
@@ -760,62 +760,74 @@ test_read_commented_duid_from_leasefile (void)
 	g_assert (duid == NULL);
 }
 
+/*****************************************************************************/
+
+static void
+_save_duid (const char *path,
+            const guint8 *duid_bin,
+            gsize duid_len)
+{
+	gs_unref_bytes GBytes *duid = NULL;
+	GError *error = NULL;
+	gboolean success;
+
+	g_assert (path);
+	g_assert (duid_bin);
+	g_assert (duid_len > 0);
+
+	duid = g_bytes_new (duid_bin, duid_len);
+	success = nm_dhcp_dhclient_save_duid (path, duid, &error);
+	nmtst_assert_success (success, error);
+}
+
 static void
 test_write_duid (void)
 {
-	const char *duid = "\\000\\001\\000\\001\\027X\\350X\\000#\\025\\010~\\254";
+	const guint8 duid[] = { 000, 001, 000, 001, 027, 'X', 0350, 'X', 0, '#', 025, 010, '~', 0254 };
 	const char *expected_contents = "default-duid \"\\000\\001\\000\\001\\027X\\350X\\000#\\025\\010~\\254\";\n";
 	GError *error = NULL;
-	char *contents = NULL;
+	gs_free char *contents = NULL;
 	gboolean success;
 	const char *path = "test-dhclient-write-duid.leases";
 
-	success = nm_dhcp_dhclient_save_duid (path, duid, &error);
-	g_assert_no_error (error);
-	g_assert (success);
+	_save_duid (path, duid, G_N_ELEMENTS (duid));
 
 	success = g_file_get_contents (path, &contents, NULL, &error);
-	g_assert_no_error (error);
-	g_assert (success);
+	nmtst_assert_success (success, error);
 
 	unlink (path);
-	g_assert_cmpstr (expected_contents, ==, contents);
 
-	g_free (contents);
+	g_assert_cmpstr (expected_contents, ==, contents);
 }
 
 static void
 test_write_existing_duid (void)
 {
-	const char *duid = "\\000\\001\\000\\001\\023o\\023n\\000\\\"\\372\\214\\326\\302";
+	const guint8 duid[] = { 000, 001, 000, 001, 023, 'o', 023, 'n', 000, '\"', 0372, 0214, 0326, 0302 };
 	const char *original_contents = "default-duid \"\\000\\001\\000\\001\\027X\\350X\\000#\\025\\010~\\254\";\n";
 	const char *expected_contents = "default-duid \"\\000\\001\\000\\001\\023o\\023n\\000\\\"\\372\\214\\326\\302\";\n";
 	GError *error = NULL;
-	char *contents = NULL;
+	gs_free char *contents = NULL;
 	gboolean success;
 	const char *path = "test-dhclient-write-existing-duid.leases";
 
 	success = g_file_set_contents (path, original_contents, -1, &error);
-	g_assert_no_error (error);
-	g_assert (success);
+	nmtst_assert_success (success, error);
 
 	/* Save other DUID; should be overwritten */
-	success = nm_dhcp_dhclient_save_duid (path, duid, &error);
-	g_assert_no_error (error);
-	g_assert (success);
+	_save_duid (path, duid, G_N_ELEMENTS (duid));
 
 	/* reread original contents */
 	success = g_file_get_contents (path, &contents, NULL, &error);
-	g_assert_no_error (error);
-	g_assert (success);
+	nmtst_assert_success (success, error);
 
 	unlink (path);
 	g_assert_cmpstr (expected_contents, ==, contents);
-
-	g_free (contents);
 }
 
+static const guint8 DUID_BIN[] = { 000, 001, 000, 001, 023, 'o', 023, 'n', 000, '\"', 0372, 0214, 0326, 0302 };
 #define DUID "\\000\\001\\000\\001\\023o\\023n\\000\\\"\\372\\214\\326\\302"
+
 static void
 test_write_existing_commented_duid (void)
 {
@@ -824,28 +836,22 @@ test_write_existing_commented_duid (void)
 	    "default-duid \"" DUID "\";\n"
 	    ORIG_CONTENTS;
 	GError *error = NULL;
-	char *contents = NULL;
+	gs_free char *contents = NULL;
 	gboolean success;
 	const char *path = "test-dhclient-write-existing-commented-duid.leases";
 
 	success = g_file_set_contents (path, ORIG_CONTENTS, -1, &error);
-	g_assert_no_error (error);
-	g_assert (success);
+	nmtst_assert_success (success, error);
 
 	/* Save other DUID; should be saved on top */
-	success = nm_dhcp_dhclient_save_duid (path, DUID, &error);
-	g_assert_no_error (error);
-	g_assert (success);
+	_save_duid (path, DUID_BIN, G_N_ELEMENTS (DUID_BIN));
 
 	/* reread original contents */
 	success = g_file_get_contents (path, &contents, NULL, &error);
-	g_assert_no_error (error);
-	g_assert (success);
+	nmtst_assert_success (success, error);
 
 	unlink (path);
 	g_assert_cmpstr (expected_contents, ==, contents);
-
-	g_free (contents);
 #undef ORIG_CONTENTS
 }
 
@@ -865,8 +871,7 @@ test_write_existing_multiline_duid (void)
 	success = g_file_set_contents (path, ORIG_CONTENTS, -1, &error);
 	nmtst_assert_success (success, error);
 
-	success = nm_dhcp_dhclient_save_duid (path, DUID, &error);
-	nmtst_assert_success (success, error);
+	_save_duid (path, DUID_BIN, G_N_ELEMENTS (DUID_BIN));
 
 	success = g_file_get_contents (path, &contents, NULL, &error);
 	nmtst_assert_success (success, error);
diff --git a/src/dns/nm-dns-dnsmasq.c b/src/dns/nm-dns-dnsmasq.c
index b48c6b87..b54df730 100644
--- a/src/dns/nm-dns-dnsmasq.c
+++ b/src/dns/nm-dns-dnsmasq.c
@@ -254,9 +254,16 @@ name_owner_changed (GObject    *object,
 		priv->running = TRUE;
 		send_dnsmasq_update (self);
 	} else {
-		_LOGI ("dnsmasq disappeared");
-		priv->running = FALSE;
-		g_signal_emit_by_name (self, NM_DNS_PLUGIN_FAILED);
+		if (priv->running) {
+			_LOGI ("dnsmasq disappeared");
+			priv->running = FALSE;
+			g_signal_emit_by_name (self, NM_DNS_PLUGIN_FAILED);
+		} else {
+			/* The only reason for which (!priv->running) here
+			 * is that the dnsmasq process quit. We don't care
+			 * of that here, the manager handles child restarts
+			 * by itself. */
+		}
 	}
 }
 
diff --git a/src/dns/nm-dns-manager.c b/src/dns/nm-dns-manager.c
index 6a59b41c..aebe3e12 100644
--- a/src/dns/nm-dns-manager.c
+++ b/src/dns/nm-dns-manager.c
@@ -55,7 +55,7 @@
 #include "nm-dns-systemd-resolved.h"
 #include "nm-dns-unbound.h"
 
-#define HASH_LEN 20
+#define HASH_LEN   NM_UTILS_CHECKSUM_LENGTH_SHA1
 
 #ifndef RESOLVCONF_PATH
 #define RESOLVCONF_PATH "/sbin/resolvconf"
@@ -582,53 +582,85 @@ again:
 }
 
 static char *
-create_resolv_conf (char **searches,
-                    char **nameservers,
-                    char **options)
+create_resolv_conf (const char *const*searches,
+                    const char *const*nameservers,
+                    const char *const*options)
 {
-	gs_free char *searches_str = NULL;
-	gs_free char *nameservers_str = NULL;
-	gs_free char *options_str = NULL;
-	char *tmp_str;
 	GString *str;
-	int i;
+	gsize i;
 
-	if (searches) {
-		tmp_str = g_strjoinv (" ", searches);
-		searches_str = g_strconcat ("search ", tmp_str, "\n", NULL);
-		g_free (tmp_str);
-	}
+	str = g_string_new_len (NULL, 245);
 
-	if (options) {
-		tmp_str = g_strjoinv (" ", options);
-		options_str = g_strconcat ("options ", tmp_str, "\n", NULL);
-		g_free (tmp_str);
-	}
+	g_string_append (str, "# Generated by NetworkManager\n");
 
-	if (nameservers) {
-		int num = g_strv_length (nameservers);
+	if (searches && searches[0]) {
+		gsize search_base_idx;
 
-		str = g_string_new ("");
-		for (i = 0; i < num; i++) {
-			if (i == 3) {
-				g_string_append (str, "# ");
-				g_string_append (str, "NOTE: the libc resolver may not support more than 3 nameservers.");
-				g_string_append (str, "\n# ");
-				g_string_append (str, "The nameservers listed below may not be recognized.");
-				g_string_append_c (str, '\n');
+		g_string_append (str, "search");
+		search_base_idx = str->len;
+
+		for (i = 0; searches[i]; i++) {
+			const char *s = searches[i];
+			gsize l = strlen (s);
+
+			if (   l == 0
+			    || NM_STRCHAR_ANY (s, ch, NM_IN_SET (ch, ' ', '\t', '\n'))) {
+				/* there should be no such characters in the search entry. Also,
+				 * because glibc parser would treat them as line/word separator.
+				 *
+				 * Skip the value silently. */
+				continue;
 			}
 
+			if (search_base_idx > 0) {
+				if (str->len - search_base_idx + 1 + l > 254) {
+					/* this entry crosses the 256 character boundery. Older glibc versions
+					 * would truncate the entry at this point.
+					 *
+					 * Fill the line with spaces to cross the 256 char boundary and continue
+					 * afterwards. This way, the truncation happens between two search entries. */
+					while (str->len - search_base_idx < 257)
+						g_string_append_c (str, ' ');
+					search_base_idx = 0;
+				}
+			}
+
+			g_string_append_c (str, ' ');
+			g_string_append_len (str, s, l);
+		}
+		g_string_append_c (str, '\n');
+	}
+
+	if (nameservers && nameservers[0]) {
+		for (i = 0; nameservers[i]; i++) {
+			if (i == 3) {
+				g_string_append (str, "# NOTE: the libc resolver may not support more than 3 nameservers.\n");
+				g_string_append (str, "# The nameservers listed below may not be recognized.\n");
+			}
 			g_string_append (str, "nameserver ");
 			g_string_append (str, nameservers[i]);
 			g_string_append_c (str, '\n');
 		}
-		nameservers_str = g_string_free (str, FALSE);
 	}
 
-	return g_strdup_printf ("# Generated by NetworkManager\n%s%s%s",
-	                        searches_str ?: "",
-	                        nameservers_str ?: "",
-	                        options_str ?: "");
+	if (options && options[0]) {
+		g_string_append (str, "options");
+		for (i = 0; options[i]; i++) {
+			g_string_append_c (str, ' ');
+			g_string_append (str, options[i]);
+		}
+		g_string_append_c (str, '\n');
+	}
+
+	return g_string_free (str, FALSE);
+}
+
+char *
+nmtst_dns_create_resolv_conf (const char *const*searches,
+                              const char *const*nameservers,
+                              const char *const*options)
+{
+	return create_resolv_conf (searches, nameservers, options);
 }
 
 static gboolean
@@ -654,9 +686,9 @@ write_resolv_conf_contents (FILE *f,
 
 static gboolean
 write_resolv_conf (FILE *f,
-                   char **searches,
-                   char **nameservers,
-                   char **options,
+                   const char *const*searches,
+                   const char *const*nameservers,
+                   const char *const*options,
                    GError **error)
 {
 	gs_free char *content = NULL;
@@ -718,7 +750,11 @@ dispatch_resolvconf (NMDnsManager *self,
 		return SR_ERROR;
 	}
 
-	success = write_resolv_conf (f, searches, nameservers, options, error);
+	success = write_resolv_conf (f,
+	                             NM_CAST_STRV_CC (searches),
+	                             NM_CAST_STRV_CC (nameservers),
+	                             NM_CAST_STRV_CC (options),
+	                             error);
 	err = pclose (f);
 	if (err < 0) {
 		errnosv = errno;
@@ -757,9 +793,9 @@ _read_link_cached (const char *path, gboolean *is_cached, char **cached)
 
 static SpawnResult
 update_resolv_conf (NMDnsManager *self,
-                    char **searches,
-                    char **nameservers,
-                    char **options,
+                    const char *const*searches,
+                    const char *const*nameservers,
+                    const char *const*options,
                     GError **error,
                     NMDnsManagerResolvConfManager rc_manager)
 {
@@ -958,12 +994,11 @@ update_resolv_conf (NMDnsManager *self,
 static void
 compute_hash (NMDnsManager *self, const NMGlobalDnsConfig *global, guint8 buffer[HASH_LEN])
 {
-	GChecksum *sum;
-	gsize len = HASH_LEN;
+	nm_auto_free_checksum GChecksum *sum = NULL;
 	NMDnsIPConfigData *ip_data;
 
 	sum = g_checksum_new (G_CHECKSUM_SHA1);
-	nm_assert (len == g_checksum_type_get_length (G_CHECKSUM_SHA1));
+	nm_assert (HASH_LEN == g_checksum_type_get_length (G_CHECKSUM_SHA1));
 
 	if (global)
 		nm_global_dns_config_update_checksum (global, sum);
@@ -977,8 +1012,7 @@ compute_hash (NMDnsManager *self, const NMGlobalDnsConfig *global, guint8 buffer
 			nm_ip_config_hash (ip_data->ip_config, sum, TRUE);
 	}
 
-	g_checksum_get_digest (sum, buffer, &len);
-	g_checksum_free (sum);
+	nm_utils_checksum_get_digest_len (sum, buffer, HASH_LEN);
 }
 
 static gboolean
@@ -1066,7 +1100,6 @@ _collect_resolv_conf_data (NMDnsManager *self,
                            const char **out_nis_domain)
 {
 	NMDnsManagerPrivate *priv;
-	guint i, num, len;
 	NMResolvConfData rc = {
 		.nameservers = g_ptr_array_new (),
 		.searches = g_ptr_array_new (),
@@ -1136,17 +1169,6 @@ _collect_resolv_conf_data (NMDnsManager *self,
 		}
 	}
 
-	/* Per 'man resolv.conf', the search list is limited to 6 domains
-	 * totalling 256 characters.
-	 */
-	num = MIN (rc.searches->len, 6u);
-	for (i = 0, len = 0; i < num; i++) {
-		len += strlen (rc.searches->pdata[i]) + 1; /* +1 for spaces */
-		if (len > 256)
-			break;
-	}
-	g_ptr_array_set_size (rc.searches, i);
-
 	*out_searches = _ptrarray_to_strv (rc.searches);
 	*out_options = _ptrarray_to_strv (rc.options);
 	*out_nameservers = _ptrarray_to_strv (rc.nameservers);
@@ -1449,7 +1471,12 @@ update_dns (NMDnsManager *self,
 		switch (priv->rc_manager) {
 		case NM_DNS_MANAGER_RESOLV_CONF_MAN_SYMLINK:
 		case NM_DNS_MANAGER_RESOLV_CONF_MAN_FILE:
-			result = update_resolv_conf (self, searches, nameservers, options, error, priv->rc_manager);
+			result = update_resolv_conf (self,
+			                             NM_CAST_STRV_CC (searches),
+			                             NM_CAST_STRV_CC (nameservers),
+			                             NM_CAST_STRV_CC (options),
+			                             error,
+			                             priv->rc_manager);
 			resolv_conf_updated = TRUE;
 			/* If we have ended with no nameservers avoid updating again resolv.conf
 			 * on stop, as some external changes may be applied to it in the meanwhile */
@@ -1474,15 +1501,26 @@ update_dns (NMDnsManager *self,
 		if (result == SR_NOTFOUND) {
 			_LOGD ("update-dns: program not available, writing to resolv.conf");
 			g_clear_error (error);
-			result = update_resolv_conf (self, searches, nameservers, options, error, NM_DNS_MANAGER_RESOLV_CONF_MAN_SYMLINK);
+			result = update_resolv_conf (self,
+			                             NM_CAST_STRV_CC (searches),
+			                             NM_CAST_STRV_CC (nameservers),
+			                             NM_CAST_STRV_CC (options),
+			                             error,
+			                             NM_DNS_MANAGER_RESOLV_CONF_MAN_SYMLINK);
 			resolv_conf_updated = TRUE;
 		}
 	}
 
 	/* Unless we've already done it, update private resolv.conf in NMRUNDIR
 	   ignoring any errors */
-	if (!resolv_conf_updated)
-		update_resolv_conf (self, searches, nameservers, options, NULL, NM_DNS_MANAGER_RESOLV_CONF_MAN_UNMANAGED);
+	if (!resolv_conf_updated) {
+		update_resolv_conf (self,
+		                    NM_CAST_STRV_CC (searches),
+		                    NM_CAST_STRV_CC (nameservers),
+		                    NM_CAST_STRV_CC (options),
+		                    NULL,
+		                    NM_DNS_MANAGER_RESOLV_CONF_MAN_UNMANAGED);
+	}
 
 	/* signal that resolv.conf was changed */
 	if (update && result == SR_SUCCESS)
@@ -1542,6 +1580,7 @@ plugin_child_quit (NMDnsPlugin *plugin, int exit_status, gpointer user_data)
 	} else {
 		priv->plugin_ratelimit.num_restarts++;
 		if (priv->plugin_ratelimit.num_restarts > PLUGIN_RATELIMIT_BURST) {
+			plugin_failed (plugin, self);
 			_LOGW ("plugin %s child respawning too fast, delaying update for %u seconds",
 			        nm_dns_plugin_get_name (plugin), PLUGIN_RATELIMIT_DELAY);
 			priv->plugin_ratelimit.timer = g_timeout_add_seconds (PLUGIN_RATELIMIT_DELAY,
diff --git a/src/dns/nm-dns-manager.h b/src/dns/nm-dns-manager.h
index ed1974a5..a3e9472e 100644
--- a/src/dns/nm-dns-manager.h
+++ b/src/dns/nm-dns-manager.h
@@ -129,4 +129,10 @@ typedef enum {
 
 void nm_dns_manager_stop (NMDnsManager *self);
 
+/*****************************************************************************/
+
+char *nmtst_dns_create_resolv_conf (const char *const*searches,
+                                    const char *const*nameservers,
+                                    const char *const*options);
+
 #endif /* __NETWORKMANAGER_DNS_MANAGER_H__ */
diff --git a/src/dnsmasq/nm-dnsmasq-manager.c b/src/dnsmasq/nm-dnsmasq-manager.c
index 09889441..3fe2f489 100644
--- a/src/dnsmasq/nm-dnsmasq-manager.c
+++ b/src/dnsmasq/nm-dnsmasq-manager.c
@@ -235,6 +235,7 @@ create_dm_cmd_line (const char *iface,
 			g_string_append_c (s, ',');
 			g_string_append (s, nm_utils_inet4_ntop (nm_ip4_config_get_nameserver (ip4_config, i), tmpaddr));
 		}
+		nm_cmd_line_add_string (cmd, s->str);
 		g_string_truncate (s, 0);
 	}
 
@@ -244,6 +245,7 @@ create_dm_cmd_line (const char *iface,
 			g_string_append_c (s, ',');
 			g_string_append (s, nm_ip4_config_get_search (ip4_config, i));
 		}
+		nm_cmd_line_add_string (cmd, s->str);
 		g_string_truncate (s, 0);
 	}
 
diff --git a/src/initrd/meson.build b/src/initrd/meson.build
new file mode 100644
index 00000000..66e825d5
--- /dev/null
+++ b/src/initrd/meson.build
@@ -0,0 +1,32 @@
+sources = files(
+  'nmi-cmdline-reader.c',
+  'nmi-ibft-reader.c'
+)
+
+nm_cflags = ['-DNETWORKMANAGER_COMPILATION=NM_NETWORKMANAGER_COMPILATION_DAEMON']
+
+libnmi_core = static_library(
+  'nmi-core',
+  c_args: nm_cflags,
+  sources: sources,
+  include_directories: src_inc,
+  dependencies: nm_core_dep,
+)
+
+name = 'nm-initrd-generator'
+executable(
+  name,
+  name + '.c',
+  c_args: nm_cflags,
+  include_directories: src_inc,
+  dependencies: [ nm_core_dep ],
+  link_with: [libnetwork_manager_base, libnmi_core],
+  link_args: ldflags_linker_script_binary,
+  link_depends: linker_script_binary,
+  install: true,
+  install_dir: nm_libexecdir,
+)
+
+if enable_tests
+  subdir('tests')
+endif
diff --git a/src/initrd/tests/meson.build b/src/initrd/tests/meson.build
new file mode 100644
index 00000000..6b316d4e
--- /dev/null
+++ b/src/initrd/tests/meson.build
@@ -0,0 +1,23 @@
+test_units = [
+  'test-ibft-reader',
+  'test-cmdline-reader',
+]
+
+cflags = [
+  '-DTEST_INITRD_DIR="@0@"'.format(meson.current_source_dir()),
+]
+
+foreach test_unit : test_units
+  exe = executable(
+    test_unit,
+    test_unit + '.c',
+    dependencies: test_nm_dep,
+    c_args: cflags,
+    link_with: libnmi_core
+  )
+  test(
+    'initrd/' + test_unit,
+    test_script,
+    args: test_args + [exe.full_path()]
+  )
+endforeach
diff --git a/src/ndisc/nm-ndisc.h b/src/ndisc/nm-ndisc.h
index 73eef368..6c0c0264 100644
--- a/src/ndisc/nm-ndisc.h
+++ b/src/ndisc/nm-ndisc.h
@@ -23,6 +23,7 @@
 
 #include <stdlib.h>
 #include <netinet/in.h>
+#include <linux/if_addr.h>
 
 #include "nm-setting-ip6-config.h"
 #include "NetworkManagerUtils.h"
diff --git a/src/nm-config-data.c b/src/nm-config-data.c
index 8d84e74a..0259f001 100644
--- a/src/nm-config-data.c
+++ b/src/nm-config-data.c
@@ -1241,9 +1241,13 @@ _match_section_infos_lookup (const MatchSectionInfo *match_section_infos,
                              const char *match_device_type,
                              char **out_value)
 {
+	const char *match_dhcp_plugin;
+
 	if (!match_section_infos)
 		return NULL;
 
+	match_dhcp_plugin = nm_dhcp_manager_get_config (nm_dhcp_manager_get ());
+
 	for (; match_section_infos->group_name; match_section_infos++) {
 		char *value = NULL;
 		gboolean match;
@@ -1263,7 +1267,7 @@ _match_section_infos_lookup (const MatchSectionInfo *match_section_infos,
 			if (device)
 				match = nm_device_spec_match_list (device, match_section_infos->match_device.spec);
 			else if (pllink)
-				match = nm_match_spec_device_by_pllink (pllink, match_device_type, match_section_infos->match_device.spec, FALSE);
+				match = nm_match_spec_device_by_pllink (pllink, match_device_type, match_dhcp_plugin, match_section_infos->match_device.spec, FALSE);
 			else
 				match = FALSE;
 		} else
diff --git a/src/nm-config-data.h b/src/nm-config-data.h
index b52ddcc4..545d9a87 100644
--- a/src/nm-config-data.h
+++ b/src/nm-config-data.h
@@ -232,5 +232,14 @@ GKeyFile *_nm_config_data_get_keyfile (const NMConfigData *self);
 GKeyFile *_nm_config_data_get_keyfile_user (const NMConfigData *self);
 GKeyFile *_nm_config_data_get_keyfile_intern (const NMConfigData *self);
 
+/*****************************************************************************/
+
+/* nm-config-data.c requires getting the DHCP manager's configuration. That is a bit
+ * ugly, and optimally, NMConfig* is independent of NMDhcpManager. Instead of
+ * including the header, forward declare the two functions that we need. */
+struct _NMDhcpManager;
+struct _NMDhcpManager *nm_dhcp_manager_get (void);
+const char *nm_dhcp_manager_get_config (struct _NMDhcpManager *self);
+
 #endif /* NM_CONFIG_DATA_H */
 
diff --git a/src/nm-connectivity.h b/src/nm-connectivity.h
index 178f27ad..99333ced 100644
--- a/src/nm-connectivity.h
+++ b/src/nm-connectivity.h
@@ -24,6 +24,21 @@
 
 #include "nm-dbus-interface.h"
 
+/*****************************************************************************/
+
+static inline int
+nm_connectivity_state_cmp (NMConnectivityState a, NMConnectivityState b)
+{
+	if (a == NM_CONNECTIVITY_PORTAL && b == NM_CONNECTIVITY_LIMITED)
+		return 1;
+	if (b == NM_CONNECTIVITY_PORTAL && a == NM_CONNECTIVITY_LIMITED)
+		return -1;
+	NM_CMP_DIRECT (a, b);
+	return 0;
+}
+
+/*****************************************************************************/
+
 #define NM_CONNECTIVITY_ERROR     ((NMConnectivityState) -1)
 #define NM_CONNECTIVITY_FAKE      ((NMConnectivityState) -2)
 #define NM_CONNECTIVITY_CANCELLED ((NMConnectivityState) -3)
diff --git a/src/nm-core-utils.c b/src/nm-core-utils.c
index ca8c9526..a65ac636 100644
--- a/src/nm-core-utils.c
+++ b/src/nm-core-utils.c
@@ -30,15 +30,19 @@
 #include <unistd.h>
 #include <stdlib.h>
 #include <resolv.h>
+#include <byteswap.h>
 #include <sys/types.h>
 #include <sys/wait.h>
 #include <sys/stat.h>
 #include <linux/if.h>
 #include <linux/if_infiniband.h>
+#include <net/if_arp.h>
 #include <net/ethernet.h>
 
 #include "nm-utils/nm-random-utils.h"
 #include "nm-utils/nm-io-utils.h"
+#include "nm-utils/unaligned.h"
+#include "nm-utils/nm-secret-utils.h"
 #include "nm-utils.h"
 #include "nm-core-internal.h"
 #include "nm-setting-connection.h"
@@ -48,6 +52,17 @@
 #include "nm-setting-wireless-security.h"
 
 G_STATIC_ASSERT (sizeof (NMUtilsTestFlags) <= sizeof (int));
+
+/* we read _nm_utils_testing without memory barrier. This is thread-safe,
+ * because the static variable is initialized to zero, and only reset
+ * once to a non-zero value (via g_atomic_int_compare_and_exchange()).
+ *
+ * Since there is only one integer that contains the data, there is no
+ * caching problem reading this (atomic int) variable without
+ * synchronization/memory-barrier. Contrary to a double-checked locking,
+ * where one needs a memory barrier to read the variable and ensure
+ * that also the related data is coherent in cache. Here there is no
+ * related data. */
 static int _nm_utils_testing = 0;
 
 gboolean
@@ -66,6 +81,7 @@ nm_utils_get_testing ()
 {
 	NMUtilsTestFlags flags;
 
+again:
 	flags = (NMUtilsTestFlags) _nm_utils_testing;
 	if (flags != NM_UTILS_TEST_NONE) {
 		/* Flags already initialized. Return them. */
@@ -78,12 +94,11 @@ nm_utils_get_testing ()
 	if (g_test_initialized ())
 		flags |= _NM_UTILS_TEST_GENERAL;
 
-	if (g_atomic_int_compare_and_exchange (&_nm_utils_testing, 0, (int) flags)) {
-		/* Done. We set it. */
-		return flags & NM_UTILS_TEST_ALL;
-	}
-	/* It changed in the meantime (??). Re-read the value. */
-	return ((NMUtilsTestFlags) _nm_utils_testing) & NM_UTILS_TEST_ALL;
+	g_atomic_int_compare_and_exchange (&_nm_utils_testing, 0, (int) flags);
+
+	/* regardless of whether we won the race of initializing _nm_utils_testing,
+	 * go back and read the value again. It must be non-zero by now. */
+	goto again;
 }
 
 void
@@ -1133,6 +1148,7 @@ nm_utils_read_link_absolute (const char *link_file, GError **error)
 #define DEVICE_TYPE_TAG "type:"
 #define DRIVER_TAG "driver:"
 #define SUBCHAN_TAG "s390-subchannels:"
+#define DHCP_PLUGIN_TAG "dhcp-plugin:"
 #define EXCEPT_TAG "except:"
 #define MATCH_TAG_CONFIG_NM_VERSION             "nm-version:"
 #define MATCH_TAG_CONFIG_NM_VERSION_MIN         "nm-version-min:"
@@ -1144,6 +1160,7 @@ typedef struct {
 	const char *device_type;
 	const char *driver;
 	const char *driver_version;
+	const char *dhcp_plugin;
 	struct {
 		const char *value;
 		gboolean is_parsed;
@@ -1280,6 +1297,34 @@ match_device_hwaddr_eval (const char *spec_str,
 		_has; \
 	})
 
+static NMMatchSpecMatchType
+_match_result (gboolean has_except,
+               gboolean has_not_except,
+               gboolean has_match,
+               gboolean has_match_except)
+{
+	if (   has_except
+	    && !has_not_except) {
+		/* a match spec that only consists of a list of except matches is treated specially. */
+		nm_assert (!has_match);
+		if (has_match_except) {
+			/* one of the "except:" matches matched. The result is an explicit
+			 * negative match. */
+			return NM_MATCH_SPEC_NEG_MATCH;
+		} else {
+			/* none of the "except:" matches matched. The result is a positive match,
+			 * despite there being no positive match. */
+			return NM_MATCH_SPEC_MATCH;
+		}
+	}
+
+	if (has_match_except)
+		return NM_MATCH_SPEC_NEG_MATCH;
+	if (has_match)
+		return NM_MATCH_SPEC_MATCH;
+	return NM_MATCH_SPEC_NO_MATCH;
+}
+
 static const char *
 match_except (const char *spec_str, gboolean *out_except)
 {
@@ -1361,6 +1406,9 @@ match_device_eval (const char *spec_str,
 	if (_MATCH_CHECK (spec_str, SUBCHAN_TAG))
 		return match_data_s390_subchannels_eval (spec_str, match_data);
 
+	if (_MATCH_CHECK (spec_str, DHCP_PLUGIN_TAG))
+		return nm_streq0 (spec_str, match_data->dhcp_plugin);
+
 	if (allow_fuzzy) {
 		if (match_device_hwaddr_eval (spec_str, match_data))
 			return TRUE;
@@ -1379,17 +1427,21 @@ nm_match_spec_device (const GSList *specs,
                       const char *driver,
                       const char *driver_version,
                       const char *hwaddr,
-                      const char *s390_subchannels)
+                      const char *s390_subchannels,
+                      const char *dhcp_plugin)
 {
 	const GSList *iter;
-	NMMatchSpecMatchType match;
+	gboolean has_match = FALSE;
+	gboolean has_match_except = FALSE;
+	gboolean has_except = FALSE;
+	gboolean has_not_except = FALSE;
 	const char *spec_str;
-	gboolean except;
 	MatchDeviceData match_data = {
 	    .interface_name = interface_name,
 	    .device_type = nm_str_not_empty (device_type),
 	    .driver = nm_str_not_empty (driver),
 	    .driver_version = nm_str_not_empty (driver_version),
+	    .dhcp_plugin = nm_str_not_empty (dhcp_plugin),
 	    .hwaddr = {
 	        .value = hwaddr,
 	    },
@@ -1403,19 +1455,9 @@ nm_match_spec_device (const GSList *specs,
 	if (!specs)
 		return NM_MATCH_SPEC_NO_MATCH;
 
-	match = NM_MATCH_SPEC_NO_MATCH;
-
-	/* pre-search for "*" */
 	for (iter = specs; iter; iter = iter->next) {
-		spec_str = iter->data;
-
-		if (spec_str && spec_str[0] == '*' && spec_str[1] == '\0') {
-			match = NM_MATCH_SPEC_MATCH;
-			break;
-		}
-	}
+		gboolean except;
 
-	for (iter = specs; iter; iter = iter->next) {
 		spec_str = iter->data;
 
 		if (!spec_str || !*spec_str)
@@ -1423,10 +1465,14 @@ nm_match_spec_device (const GSList *specs,
 
 		spec_str = match_except (spec_str, &except);
 
-		if (   !except
-		    && match == NM_MATCH_SPEC_MATCH) {
-			/* we have no "except-match" but already match. No need to evaluate
-			 * the match, we cannot match stronger. */
+		if (except)
+			has_except = TRUE;
+		else
+			has_not_except = TRUE;
+
+		if (   ( except && has_match_except)
+		    || (!except && has_match)) {
+			/* evaluating the match does not give new information. Skip it. */
 			continue;
 		}
 
@@ -1436,11 +1482,12 @@ nm_match_spec_device (const GSList *specs,
 			continue;
 
 		if (except)
-			return NM_MATCH_SPEC_NEG_MATCH;
-		match = NM_MATCH_SPEC_MATCH;
+			has_match_except = TRUE;
+		else
+			has_match = TRUE;
 	}
 
-	return match;
+	return _match_result (has_except, has_not_except, has_match, has_match_except);
 }
 
 static gboolean
@@ -1510,7 +1557,10 @@ NMMatchSpecMatchType
 nm_match_spec_config (const GSList *specs, guint cur_nm_version, const char *env)
 {
 	const GSList *iter;
-	NMMatchSpecMatchType match = NM_MATCH_SPEC_NO_MATCH;
+	gboolean has_match = FALSE;
+	gboolean has_match_except = FALSE;
+	gboolean has_except = FALSE;
+	gboolean has_not_except = FALSE;
 
 	if (!specs)
 		return NM_MATCH_SPEC_NO_MATCH;
@@ -1525,6 +1575,17 @@ nm_match_spec_config (const GSList *specs, guint cur_nm_version, const char *env
 
 		spec_str = match_except (spec_str, &except);
 
+		if (except)
+			has_except = TRUE;
+		else
+			has_not_except = TRUE;
+
+		if (   ( except && has_match_except)
+		    || (!except && has_match)) {
+			/* evaluating the match does not give new information. Skip it. */
+			continue;
+		}
+
 		if (_MATCH_CHECK (spec_str, MATCH_TAG_CONFIG_NM_VERSION))
 			v_match = match_config_eval (spec_str, MATCH_TAG_CONFIG_NM_VERSION, cur_nm_version);
 		else if (_MATCH_CHECK (spec_str, MATCH_TAG_CONFIG_NM_VERSION_MIN))
@@ -1534,15 +1595,18 @@ nm_match_spec_config (const GSList *specs, guint cur_nm_version, const char *env
 		else if (_MATCH_CHECK (spec_str, MATCH_TAG_CONFIG_ENV))
 			v_match = env && env[0] && !strcmp (spec_str, env);
 		else
+			v_match = FALSE;
+
+		if (!v_match)
 			continue;
 
-		if (v_match) {
-			if (except)
-				return NM_MATCH_SPEC_NEG_MATCH;
-			match = NM_MATCH_SPEC_MATCH;
-		}
+		if (except)
+			has_match_except = TRUE;
+		else
+			has_match = TRUE;
 	}
-	return match;
+
+	return _match_result (has_except, has_not_except, has_match, has_match_except);
 }
 
 #undef _MATCH_CHECK
@@ -2503,209 +2567,549 @@ nm_utils_is_specific_hostname (const char *name)
 
 /*****************************************************************************/
 
-gboolean
-nm_utils_machine_id_parse (const char *id_str, /*uuid_t*/ guchar *out_uuid)
-{
-	int i;
-	guint8 v0, v1;
-
-	if (!id_str)
-		return FALSE;
-
-	for (i = 0; i < 32; i++) {
-		if (!g_ascii_isxdigit (id_str[i]))
-			return FALSE;
-	}
-	if (id_str[i] != '\0')
-		return FALSE;
+typedef struct {
+	NMUuid bin;
+	char _nul_sentinel; /* just for safety, if somebody accidentally uses the binary in a string context. */
 
-	if (out_uuid) {
-		for (i = 0; i < 16; i++) {
-			v0 = g_ascii_xdigit_value (*(id_str++));
-			v1 = g_ascii_xdigit_value (*(id_str++));
-			out_uuid[i] = (v0 << 4) + v1;
-		}
+	/* depending on whether the string is packed or not (with/without hyphens),
+	 * it's 32 or 36 characters long (plus the trailing NUL).
+	 *
+	 * The difference is that boot-id is a valid RFC 4211 UUID and represented
+	 * as a 36 ascii string (with hyphens). The machine-id technically is not
+	 * a UUID, but just a 32 byte sequence of hexchars. */
+	char str[37];
+	bool is_fake;
+} UuidData;
+
+static UuidData *
+_uuid_data_init (UuidData *uuid_data,
+                 gboolean packed,
+                 gboolean is_fake,
+                 const NMUuid *uuid)
+{
+	nm_assert (uuid_data);
+	nm_assert (uuid);
+
+	uuid_data->bin = *uuid;
+	uuid_data->_nul_sentinel = '\0';
+	uuid_data->is_fake = is_fake;
+	if (packed) {
+		G_STATIC_ASSERT_EXPR (sizeof (uuid_data->str) >= (sizeof (*uuid) * 2 + 1));
+		_nm_utils_bin2hexstr_full (uuid,
+		                           sizeof (*uuid),
+		                           '\0',
+		                           FALSE,
+		                           uuid_data->str);
+	} else {
+		G_STATIC_ASSERT_EXPR (sizeof (uuid_data->str) >= 37);
+		_nm_utils_uuid_unparse (uuid, uuid_data->str);
 	}
-	return TRUE;
+	return uuid_data;
 }
 
-char *
-nm_utils_machine_id_read (void)
+/*****************************************************************************/
+
+static const UuidData *
+_machine_id_get (gboolean allow_fake)
 {
-	gs_free char *contents = NULL;
-	int i;
+	static const UuidData *volatile p_uuid_data;
+	const UuidData *d;
+
+again:
+	d = g_atomic_pointer_get (&p_uuid_data);
+	if (G_UNLIKELY (!d)) {
+		static gsize lock;
+		static UuidData uuid_data;
+		gs_free char *content = NULL;
+		gboolean is_fake = TRUE;
+		const char *fake_type = NULL;
+		NMUuid uuid;
+
+		/* Get the machine ID from /etc/machine-id; it's always in /etc no matter
+		 * where our configured SYSCONFDIR is.  Alternatively, it might be in
+		 * LOCALSTATEDIR /lib/dbus/machine-id.
+		 */
+		if (   nm_utils_file_get_contents (-1, "/etc/machine-id", 100*1024, 0, &content, NULL, NULL) >= 0
+		    || nm_utils_file_get_contents (-1, LOCALSTATEDIR"/lib/dbus/machine-id", 100*1024, 0, &content, NULL, NULL) >= 0) {
+			g_strstrip (content);
+			if (_nm_utils_hexstr2bin_full (content,
+			                               FALSE,
+			                               FALSE,
+			                               NULL,
+			                               16,
+			                               (guint8 *) &uuid,
+			                               sizeof (uuid),
+			                               NULL)) {
+				if (!nm_utils_uuid_is_null (&uuid)) {
+					/* an all-zero machine-id is not valid. */
+					is_fake = FALSE;
+				}
+			}
+		}
 
-	/* Get the machine ID from /etc/machine-id; it's always in /etc no matter
-	 * where our configured SYSCONFDIR is.  Alternatively, it might be in
-	 * LOCALSTATEDIR /lib/dbus/machine-id.
-	 */
-	if (   !g_file_get_contents ("/etc/machine-id", &contents, NULL, NULL)
-	    && !g_file_get_contents (LOCALSTATEDIR "/lib/dbus/machine-id", &contents, NULL, NULL))
-		return NULL;
+		if (is_fake) {
+			const guint8 *seed_bin;
+			const char *hash_seed;
+			gsize seed_len;
+
+			if (!allow_fake) {
+				/* we don't allow generating (and memoizing) a fake key.
+				 * Signal that no valid machine-id exists. */
+				return NULL;
+			}
 
-	contents = g_strstrip (contents);
+			if (nm_utils_host_id_get (&seed_bin, &seed_len)) {
+				/* we have no valid machine-id. Generate a fake one by hashing
+				 * the secret-key. This key is commonly persisted, so it should be
+				 * stable accross reboots (despite having a broken system without
+				 * proper machine-id). */
+				fake_type = "secret-key";
+				hash_seed = "ab085f06-b629-46d1-a553-84eeba5683b6";
+			} else {
+				/* the secret-key is not valid/persistent either. That happens when we fail
+				 * to read/write the secret-key to disk. Fallback to boot-id. The boot-id
+				 * itself may be fake and randomly generated ad-hoc, but that is as best
+				 * as it gets.  */
+				seed_bin = (const guint8 *) nm_utils_boot_id_bin ();
+				seed_len = sizeof (NMUuid);
+				fake_type = "boot-id";
+				hash_seed = "7ff0c8f5-5399-4901-ab63-61bf594abe8b";
+			}
 
-	for (i = 0; i < 32; i++) {
-		if (!g_ascii_isxdigit (contents[i]))
-			return NULL;
-		if (contents[i] >= 'A' && contents[i] <= 'F') {
-			/* canonicalize to lower-case */
-			contents[i] = 'a' + (contents[i] - 'A');
+			/* the fake machine-id is based on secret-key/boot-id, but we hash it
+			 * again, so that they are not literally the same. */
+			nm_utils_uuid_generate_from_string_bin (&uuid,
+			                                        (const char *) seed_bin,
+			                                        seed_len,
+			                                        NM_UTILS_UUID_TYPE_VERSION5,
+			                                        (gpointer) hash_seed);
 		}
+
+		if (!g_once_init_enter (&lock))
+			goto again;
+
+		d = _uuid_data_init (&uuid_data, TRUE, is_fake, &uuid);
+		g_atomic_pointer_set (&p_uuid_data, d);
+		g_once_init_leave (&lock, 1);
+
+		if (is_fake) {
+			nm_log_err (LOGD_CORE,
+			            "/etc/machine-id: no valid machine-id. Use fake one based on %s: %s",
+			            fake_type,
+			            d->str);
+		} else
+			nm_log_dbg (LOGD_CORE, "/etc/machine-id: %s", d->str);
 	}
-	if (contents[i] != '\0')
-		return NULL;
 
-	return g_steal_pointer (&contents);
+	return d;
+}
+
+const char *
+nm_utils_machine_id_str (void)
+{
+	return _machine_id_get (TRUE)->str;
+}
+
+const NMUuid *
+nm_utils_machine_id_bin (void)
+{
+	return &_machine_id_get (TRUE)->bin;
+}
+
+gboolean
+nm_utils_machine_id_is_fake (void)
+{
+	return _machine_id_get (TRUE)->is_fake;
 }
 
 /*****************************************************************************/
 
+/* prefix for version2 secret key. The secret key is hashed with /etc/machine-id. */
+#define SECRET_KEY_V2_PREFIX "nm-v2:"
+#define SECRET_KEY_FILE      NMSTATEDIR"/secret_key"
+
 static gboolean
-_secret_key_read (guint8 **out_secret_key,
-                  gsize *out_key_len)
+_host_id_read_timestamp (gboolean use_secret_key_file,
+                         const guint8 *host_id,
+                         gsize host_id_len,
+                         gint64 *out_timestamp_ns)
 {
-	guint8 *secret_key;
-	gboolean success = TRUE;
-	gsize key_len;
-	gs_free_error GError *error = NULL;
+	struct stat st;
+	gint64 now;
+	guint64 v;
+
+	if (   use_secret_key_file
+	    && stat (SECRET_KEY_FILE, &st) == 0) {
+		/* don't check for overflow or timestamps in the future. We get whatever
+		 * (bogus) date is on the file. */
+		*out_timestamp_ns = (st.st_mtim.tv_sec * NM_UTILS_NS_PER_SECOND) + st.st_mtim.tv_nsec;
+		return TRUE;
+	}
 
-	/* Let's try to load a saved secret key first. */
-	if (g_file_get_contents (NMSTATEDIR "/secret_key", (char **) &secret_key, &key_len, &error)) {
-		if (key_len >= 16)
-			goto out;
+	/* generate a fake timestamp based on the host-id.
+	 *
+	 * This really should never happen under normal circumstances. We already
+	 * are in a code path, where the system has a problem (unable to get good randomness
+	 * and/or can't access the secret_key). In such a scenario, a fake timestamp is the
+	 * least of our problems.
+	 *
+	 * At least, generate something sensible so we don't have to worry about the
+	 * timestamp. It is wrong to worry about using a fake timestamp (which is tied to
+	 * the secret_key) if we are unable to access the secret_key file in the first place.
+	 *
+	 * Pick a random timestamp from the past two years. Yes, this timestamp
+	 * is not stable accross restarts, but apparently neither is the host-id
+	 * nor the secret_key itself. */
 
-		/* the secret key is borked. Log a warning, but proceed below to generate
-		 * a new one. */
-		nm_log_warn (LOGD_CORE, "secret-key: too short secret key in \"%s\" (generate new key)", NMSTATEDIR "/secret_key");
-		nm_clear_g_free (&secret_key);
-	} else {
-		if (!g_error_matches (error, G_IO_ERROR, G_IO_ERROR_NOT_FOUND)) {
+#define EPOCH_TWO_YEARS  (G_GINT64_CONSTANT (2 * 365 * 24 * 3600) * NM_UTILS_NS_PER_SECOND)
+
+	v = nm_hash_siphash42 (1156657133u, host_id, host_id_len);
+
+	now = time (NULL);
+	*out_timestamp_ns = NM_MAX ((gint64) 1,
+	                            (now * NM_UTILS_NS_PER_SECOND) - ((gint64) (v % ((guint64) (EPOCH_TWO_YEARS)))));
+	return FALSE;
+}
+
+static const guint8 *
+_host_id_hash_v2 (const guint8 *seed_arr,
+                  gsize seed_len,
+                  guint8 *out_digest /* 32 bytes (NM_UTILS_CHECKSUM_LENGTH_SHA256) */)
+{
+	nm_auto_free_checksum GChecksum *sum = g_checksum_new (G_CHECKSUM_SHA256);
+	const UuidData *machine_id_data;
+	char slen[100];
+
+	/*
+	    (stat -c '%s' /var/lib/NetworkManager/secret_key;
+	     echo -n ' ';
+	     cat /var/lib/NetworkManager/secret_key;
+	     cat /etc/machine-id | tr -d '\n' | sed -n 's/[a-f0-9-]/\0/pg') | sha256sum
+	*/
+
+	nm_sprintf_buf (slen, "%"G_GSIZE_FORMAT" ", seed_len);
+	g_checksum_update (sum, (const guchar *) slen, strlen (slen));
+
+	g_checksum_update (sum, (const guchar *) seed_arr, seed_len);
+
+	machine_id_data = _machine_id_get (FALSE);
+	if (   machine_id_data
+	    && !machine_id_data->is_fake)
+		g_checksum_update (sum, (const guchar *) machine_id_data->str, strlen (machine_id_data->str));
+
+	nm_utils_checksum_get_digest_len (sum, out_digest, NM_UTILS_CHECKSUM_LENGTH_SHA256);
+	return out_digest;
+}
+
+static gboolean
+_host_id_read (guint8 **out_host_id,
+               gsize *out_host_id_len)
+{
+#define SECRET_KEY_LEN 32u
+	guint8 sha256_digest[NM_UTILS_CHECKSUM_LENGTH_SHA256];
+	nm_auto_clear_secret_ptr NMSecretPtr file_content = { 0 };
+	const guint8 *secret_arr;
+	gsize secret_len;
+	GError *error = NULL;
+	gboolean success;
+
+	if (nm_utils_file_get_contents (-1,
+	                                SECRET_KEY_FILE,
+	                                10*1024,
+	                                NM_UTILS_FILE_GET_CONTENTS_FLAG_SECRET,
+	                                (char **) &file_content.str,
+	                                &file_content.len,
+	                                &error) < 0) {
+		if (!nm_utils_error_is_notfound (error)) {
 			nm_log_warn (LOGD_CORE, "secret-key: failure reading secret key in \"%s\": %s (generate new key)",
-			             NMSTATEDIR "/secret_key", error->message);
+			             SECRET_KEY_FILE, error->message);
 		}
 		g_clear_error (&error);
-	}
-
-	/* RFC7217 mandates the key SHOULD be at least 128 bits.
-	 * Let's use twice as much. */
-	key_len = 32;
-	secret_key = g_malloc (key_len + 1);
-
-	/* the secret-key is binary. Still, ensure that it's NULL terminated, just like
-	 * g_file_set_contents() does. */
-	secret_key[32] = '\0';
+	} else if (   file_content.len >= NM_STRLEN (SECRET_KEY_V2_PREFIX) + SECRET_KEY_LEN
+	           && memcmp (file_content.bin, SECRET_KEY_V2_PREFIX, NM_STRLEN (SECRET_KEY_V2_PREFIX)) == 0) {
+		/* for this type of secret key, we require a prefix followed at least SECRET_KEY_LEN (32) bytes. We
+		 * (also) do that, because older versions of NetworkManager wrote exactly 32 bytes without
+		 * prefix, so we won't wrongly interpret such legacy keys as v2 (if they accidentally have
+		 * a SECRET_KEY_V2_PREFIX prefix, they'll still have the wrong size).
+		 *
+		 * Note that below we generate the random seed in base64 encoding. But that is only done
+		 * to write an ASCII file. There is no base64 decoding and the ASCII is hashed as-is.
+		 * We would accept any binary data just as well (provided a suitable prefix and at least
+		 * 32 bytes).
+		 *
+		 * Note that when hashing the v2 content, we also hash the prefix. There is no strong reason,
+		 * except that it seems simpler not to distinguish between the v2 prefix and the content.
+		 * It's all just part of the seed. */
 
-	if (!nm_utils_random_bytes (secret_key, key_len)) {
-		nm_log_warn (LOGD_CORE, "secret-key: failure to generate good random data for secret-key (use non-persistent key)");
-		success = FALSE;
+		secret_arr = _host_id_hash_v2 (file_content.bin, file_content.len, sha256_digest);
+		secret_len = NM_UTILS_CHECKSUM_LENGTH_SHA256;
+		success = TRUE;
 		goto out;
+	} else if (file_content.len >= 16) {
+		secret_arr = file_content.bin;
+		secret_len = file_content.len;
+		success = TRUE;
+		goto out;
+	} else {
+		/* the secret key is borked. Log a warning, but proceed below to generate
+		 * a new one. */
+		nm_log_warn (LOGD_CORE, "secret-key: too short secret key in \"%s\" (generate new key)", SECRET_KEY_FILE);
 	}
 
-	if (!nm_utils_file_set_contents (NMSTATEDIR "/secret_key", (char *) secret_key, key_len, 0077, &error)) {
-		nm_log_warn (LOGD_CORE, "secret-key: failure to persist secret key in \"%s\" (%s) (use non-persistent key)",
-		             NMSTATEDIR "/secret_key", error->message);
-		success = FALSE;
-		goto out;
+	/* generate and persist new key */
+	{
+#define SECRET_KEY_LEN_BASE64 ((((SECRET_KEY_LEN / 3) + 1) * 4) + 4)
+		guint8 rnd_buf[SECRET_KEY_LEN];
+		guint8 new_content[NM_STRLEN (SECRET_KEY_V2_PREFIX) + SECRET_KEY_LEN_BASE64];
+		int base64_state = 0;
+		int base64_save = 0;
+		gsize len;
+
+		success = nm_utils_random_bytes (rnd_buf, sizeof (rnd_buf));
+
+		/* Our key is really binary data. But since we anyway generate a random seed
+		 * (with 32 random bytes), don't write it in binary, but instead create
+		 * an pure ASCII (base64) representation. Note that the ASCII will still be taken
+		 * as-is (no base64 decoding is done). The sole purpose is to write a ASCII file
+		 * instead of a binary. The content is gibberish either way. */
+		memcpy (new_content, SECRET_KEY_V2_PREFIX, NM_STRLEN (SECRET_KEY_V2_PREFIX));
+		len = NM_STRLEN (SECRET_KEY_V2_PREFIX);
+		len += g_base64_encode_step (rnd_buf,
+		                             sizeof (rnd_buf),
+		                             FALSE,
+		                             (char *) &new_content[len],
+		                             &base64_state,
+		                             &base64_save);
+		len += g_base64_encode_close (FALSE,
+		                              (char *) &new_content[len],
+		                              &base64_state,
+		                              &base64_save);
+		nm_assert (len <= sizeof (new_content));
+
+		secret_arr = _host_id_hash_v2 (new_content, len, sha256_digest);
+		secret_len = NM_UTILS_CHECKSUM_LENGTH_SHA256;
+
+		if (!success)
+			nm_log_warn (LOGD_CORE, "secret-key: failure to generate good random data for secret-key (use non-persistent key)");
+		else if (nm_utils_get_testing ()) {
+			/* for test code, we don't write the generated secret-key to disk. */
+		} else if (!nm_utils_file_set_contents (SECRET_KEY_FILE,
+		                                        (const char *) new_content,
+		                                        len,
+		                                        0077,
+		                                        &error)) {
+			nm_log_warn (LOGD_CORE, "secret-key: failure to persist secret key in \"%s\" (%s) (use non-persistent key)",
+			             SECRET_KEY_FILE, error->message);
+			g_clear_error (&error);
+			success = FALSE;
+		} else
+			nm_log_dbg (LOGD_CORE, "secret-key: persist new secret key to \"%s\"", SECRET_KEY_FILE);
+
+		nm_explicit_bzero (rnd_buf, sizeof (rnd_buf));
+		nm_explicit_bzero (new_content, sizeof (new_content));
 	}
 
 out:
-	/* regardless of success or failue, we always return a secret-key. The
-	 * caller may choose to ignore the error and proceed. */
-	*out_key_len = key_len;
-	*out_secret_key = secret_key;
+	*out_host_id_len = secret_len;
+	*out_host_id = nm_memdup (secret_arr, secret_len);
 	return success;
 }
 
 typedef struct {
-	const guint8 *secret_key;
-	gsize key_len;
+	guint8 *host_id;
+	gsize host_id_len;
+	gint64 timestamp_ns;
 	bool is_good:1;
-} SecretKeyData;
+	bool timestamp_is_good:1;
+} HostIdData;
 
-gboolean
-nm_utils_secret_key_get (const guint8 **out_secret_key,
-                         gsize *out_key_len)
+static const HostIdData *
+_host_id_get (void)
 {
-	static volatile const SecretKeyData *secret_key_static;
-	const SecretKeyData *secret_key;
+	static const HostIdData *volatile host_id_static;
+	const HostIdData *host_id;
 
-	secret_key = g_atomic_pointer_get (&secret_key_static);
-	if (G_UNLIKELY (!secret_key)) {
+again:
+	host_id = g_atomic_pointer_get (&host_id_static);
+	if (G_UNLIKELY (!host_id)) {
+		static HostIdData host_id_data;
 		static gsize init_value = 0;
-		static SecretKeyData secret_key_data;
-		gboolean tmp_success;
-		gs_free guint8 *tmp_secret_key = NULL;
-		gsize tmp_key_len;
-
-		tmp_success = _secret_key_read (&tmp_secret_key, &tmp_key_len);
-		if (g_once_init_enter (&init_value)) {
-			secret_key_data.secret_key = tmp_secret_key;
-			secret_key_data.key_len = tmp_key_len;
-			secret_key_data.is_good = tmp_success;
-
-			if (g_atomic_pointer_compare_and_exchange (&secret_key_static, NULL, &secret_key_data)) {
-				g_steal_pointer (&tmp_secret_key);
-				secret_key = &secret_key_data;
-			}
 
-			g_once_init_leave (&init_value, 1);
-		}
-		if (!secret_key)
-			secret_key = g_atomic_pointer_get (&secret_key_static);
+		if (!g_once_init_enter (&init_value))
+			goto again;
+
+		host_id_data.is_good = _host_id_read (&host_id_data.host_id,
+		                                      &host_id_data.host_id_len);
+
+		host_id_data.timestamp_is_good = _host_id_read_timestamp (host_id_data.is_good,
+		                                                          host_id_data.host_id,
+		                                                          host_id_data.host_id_len,
+		                                                          &host_id_data.timestamp_ns);
+		if (   !host_id_data.timestamp_is_good
+		    && host_id_data.is_good)
+			nm_log_warn (LOGD_CORE, "secret-key: failure reading host timestamp (use fake one)");
+
+		host_id = &host_id_data;
+		g_atomic_pointer_set (&host_id_static, host_id);
+		g_once_init_leave (&init_value, 1);
 	}
 
-	*out_secret_key = secret_key->secret_key;
-	*out_key_len = secret_key->key_len;
-	return secret_key->is_good;
+	return host_id;
 }
 
-gint64
-nm_utils_secret_key_get_timestamp (void)
+/**
+ * nm_utils_host_id_get:
+ * @out_host_id: (out) (transfer none): the binary host key
+ * @out_host_id_len: the length of the host key.
+ *
+ * This returns a per-host key that depends on /var/lib/NetworkManage/secret_key
+ * and (depending on the version) on /etc/machine-id. If /var/lib/NetworkManage/secret_key
+ * does not exist, it will be generated and persisted for next boot.
+ *
+ * Returns: %TRUE, if the host key is "good". Note that this function
+ *   will always succeed to return a host-key, and that this key
+ *   won't change during the run of the program (no matter what).
+ *   A %FALSE return possibly means, that the secret_key is not persisted
+ *   to disk, and/or that it was generated with bad randomness.
+ */
+gboolean
+nm_utils_host_id_get (const guint8 **out_host_id,
+                      gsize *out_host_id_len)
 {
-	struct stat stat_buf;
-	const guint8 *key;
-	gsize key_len;
+	const HostIdData *host_id;
 
-	if (!nm_utils_secret_key_get (&key, &key_len))
-		return 0;
-
-	if (stat (NMSTATEDIR "/secret_key", &stat_buf) != 0)
-		return 0;
+	host_id = _host_id_get ();
+	*out_host_id = host_id->host_id;
+	*out_host_id_len = host_id->host_id_len;
+	return host_id->is_good;
+}
 
-	return stat_buf.st_mtim.tv_sec;
+gint64
+nm_utils_host_id_get_timestamp_ns (void)
+{
+	return _host_id_get ()->timestamp_ns;
 }
 
 /*****************************************************************************/
 
-const char *
-nm_utils_get_boot_id (void)
+static const UuidData *
+_boot_id_get (void)
 {
-	static const char *boot_id;
-
-	if (G_UNLIKELY (!boot_id)) {
+	static const UuidData *volatile p_boot_id;
+	const UuidData *d;
+
+again:
+	d = g_atomic_pointer_get (&p_boot_id);
+	if (G_UNLIKELY (!d)) {
+		static gsize lock;
+		static UuidData boot_id;
 		gs_free char *contents = NULL;
+		NMUuid uuid;
+		gboolean is_fake = FALSE;
 
 		nm_utils_file_get_contents (-1, "/proc/sys/kernel/random/boot_id", 0,
 		                            NM_UTILS_FILE_GET_CONTENTS_FLAG_NONE,
 		                            &contents, NULL, NULL);
-		if (contents) {
-			g_strstrip (contents);
-			if (contents[0]) {
-				/* clone @contents because we keep @boot_id until the program
-				 * ends.
-				 * nm_utils_file_get_contents() likely allocated a larger
-				 * buffer chunk initially and (although using realloc to shrink
-				 * the buffer) it might not be best to keep this memory
-				 * around. */
-				boot_id = g_strdup (contents);
-			}
+		if (   !contents
+		    || !_nm_utils_uuid_parse (nm_strstrip (contents), &uuid)) {
+			/* generate a random UUID instead. */
+			is_fake = TRUE;
+			_nm_utils_uuid_generate_random (&uuid);
 		}
-		if (!boot_id)
-			boot_id = nm_utils_uuid_generate ();
+
+		if (!g_once_init_enter (&lock))
+			goto again;
+
+		d = _uuid_data_init (&boot_id, FALSE, is_fake, &uuid);
+		g_atomic_pointer_set (&p_boot_id, d);
+		g_once_init_leave (&lock, 1);
 	}
 
-	return boot_id;
+	return d;
+}
+
+const char *
+nm_utils_boot_id_str (void)
+{
+	return _boot_id_get ()->str;
+}
+
+const NMUuid *
+nm_utils_boot_id_bin (void)
+{
+	return &_boot_id_get ()->bin;
+}
+
+/*****************************************************************************/
+
+/**
+ * nm_utils_arp_type_detect_from_hwaddrlen:
+ * @hwaddr_len: the length of the hardware address in bytes.
+ *
+ * Detects the arp-type based on the length of the MAC address.
+ * On success, this returns a (positive) value in uint16_t range,
+ * like ARPHRD_ETHER or ARPHRD_INFINIBAND.
+ *
+ * On failure, returns a negative error code.
+ *
+ * Returns: the arp-type or negative value on error. */
+int
+nm_utils_arp_type_detect_from_hwaddrlen (gsize hwaddr_len)
+{
+	switch (hwaddr_len) {
+	case ETH_ALEN:
+		return ARPHRD_ETHER;
+	case INFINIBAND_ALEN:
+		return ARPHRD_INFINIBAND;
+	default:
+		/* Note: if you ever support anything but ethernet and infiniband,
+		 * make sure to look at all callers. They assert that it's one of
+		 * these two. */
+		return -EINVAL;
+	}
+}
+
+gboolean
+nm_utils_arp_type_validate_hwaddr (int arp_type,
+                                   const guint8 *hwaddr,
+                                   gsize hwaddr_len)
+{
+
+	if (!hwaddr)
+		return FALSE;
+
+	if (arp_type == ARPHRD_ETHER) {
+		G_STATIC_ASSERT (ARPHRD_ETHER >= 0 && ARPHRD_ETHER <= 0xFF);
+		if (hwaddr_len != ETH_ALEN)
+			return FALSE;
+	} else if (arp_type == ARPHRD_INFINIBAND) {
+		G_STATIC_ASSERT (ARPHRD_INFINIBAND >= 0 && ARPHRD_INFINIBAND <= 0xFF);
+		if (hwaddr_len != INFINIBAND_ALEN)
+			return FALSE;
+	} else
+		return FALSE;
+
+	nm_assert (arp_type == nm_utils_arp_type_detect_from_hwaddrlen (hwaddr_len));
+	return TRUE;
+}
+
+gboolean
+nm_utils_arp_type_get_hwaddr_relevant_part (int arp_type,
+                                            const guint8 **hwaddr,
+                                            gsize *hwaddr_len)
+{
+	g_return_val_if_fail (   hwaddr
+	                      && hwaddr_len
+	                      && nm_utils_arp_type_validate_hwaddr (arp_type, *hwaddr, *hwaddr_len),
+	                      FALSE);
+
+	/* for infiniband, we only consider the last 8 bytes. */
+	if (arp_type == ARPHRD_INFINIBAND) {
+		*hwaddr += (INFINIBAND_ALEN - 8);
+		*hwaddr_len = 8;
+	}
+
+	return TRUE;
 }
 
 /*****************************************************************************/
@@ -2920,9 +3324,8 @@ nm_utils_stable_id_random (void)
 char *
 nm_utils_stable_id_generated_complete (const char *stable_id_generated)
 {
-	guint8 buf[20];
-	GChecksum *sum;
-	gsize buf_size;
+	nm_auto_free_checksum GChecksum *sum = NULL;
+	guint8 buf[NM_UTILS_CHECKSUM_LENGTH_SHA1];
 	char *base64;
 
 	/* for NM_UTILS_STABLE_TYPE_GENERATED we genererate a possibly long string
@@ -2933,15 +3336,8 @@ nm_utils_stable_id_generated_complete (const char *stable_id_generated)
 	g_return_val_if_fail (stable_id_generated, NULL);
 
 	sum = g_checksum_new (G_CHECKSUM_SHA1);
-	nm_assert (sum);
-
 	g_checksum_update (sum, (guchar *) stable_id_generated, strlen (stable_id_generated));
-
-	buf_size = sizeof (buf);
-	g_checksum_get_digest (sum, buf, &buf_size);
-	nm_assert (buf_size == sizeof (buf));
-
-	g_checksum_free (sum);
+	nm_utils_checksum_get_digest (sum, buf);
 
 	/* we don't care to use the sha1 sum in common hex representation.
 	 * Use instead base64, it's 27 chars (stripping the padding) vs.
@@ -2967,6 +3363,7 @@ _stable_id_append (GString *str,
 NMUtilsStableType
 nm_utils_stable_id_parse (const char *stable_id,
                           const char *deviceid,
+                          const char *hwaddr,
                           const char *bootid,
                           const char *uuid,
                           char **out_generated)
@@ -3042,9 +3439,11 @@ nm_utils_stable_id_parse (const char *stable_id,
 		if (CHECK_PREFIX ("${CONNECTION}"))
 			_stable_id_append (str, uuid);
 		else if (CHECK_PREFIX ("${BOOT}"))
-			_stable_id_append (str, bootid ?: nm_utils_get_boot_id ());
+			_stable_id_append (str, bootid);
 		else if (CHECK_PREFIX ("${DEVICE}"))
 			_stable_id_append (str, deviceid);
+		else if (CHECK_PREFIX ("${MAC}"))
+			_stable_id_append (str, hwaddr);
 		else if (g_str_has_prefix (&stable_id[i], "${RANDOM}")) {
 			/* RANDOM makes not so much sense for cloned-mac-address
 			 * as the result is simmilar to specyifing "cloned-mac-address=random".
@@ -3121,28 +3520,20 @@ _set_stable_privacy (NMUtilsStableType stable_type,
                      const char *ifname,
                      const char *network_id,
                      guint32 dad_counter,
-                     const guint8 *secret_key,
-                     gsize key_len,
+                     const guint8 *host_id,
+                     gsize host_id_len,
                      GError **error)
 {
-	GChecksum *sum;
-	guint8 digest[32];
+	nm_auto_free_checksum GChecksum *sum = NULL;
+	guint8 digest[NM_UTILS_CHECKSUM_LENGTH_SHA256];
 	guint32 tmp[2];
-	gsize len = sizeof (digest);
 
-	nm_assert (key_len);
+	nm_assert (host_id_len);
 	nm_assert (network_id);
 
-	/* Documentation suggests that this can fail.
-	 * Maybe in case of a missing algorithm in crypto library? */
 	sum = g_checksum_new (G_CHECKSUM_SHA256);
-	if (!sum) {
-		g_set_error_literal (error, NM_UTILS_ERROR, NM_UTILS_ERROR_UNKNOWN,
-		                     "Can't create a SHA256 hash");
-		return FALSE;
-	}
 
-	key_len = MIN (key_len, G_MAXUINT32);
+	host_id_len = MIN (host_id_len, G_MAXUINT32);
 
 	if (stable_type != NM_UTILS_STABLE_TYPE_UUID) {
 		guint8 stable_type_uint8;
@@ -3155,7 +3546,7 @@ _set_stable_privacy (NMUtilsStableType stable_type,
 		 *
 		 * That is no real problem and it is still impossible to
 		 * force a collision here, because of how the remaining
-		 * fields are hashed. That is, as we also hash @key_len
+		 * fields are hashed. That is, as we also hash @host_id_len
 		 * and the terminating '\0' of @network_id, it is unambigiously
 		 * possible to revert the process and deduce the @stable_type.
 		 */
@@ -3166,27 +3557,20 @@ _set_stable_privacy (NMUtilsStableType stable_type,
 	g_checksum_update (sum, (const guchar *) ifname, strlen (ifname) + 1);
 	g_checksum_update (sum, (const guchar *) network_id, strlen (network_id) + 1);
 	tmp[0] = htonl (dad_counter);
-	tmp[1] = htonl (key_len);
+	tmp[1] = htonl (host_id_len);
 	g_checksum_update (sum, (const guchar *) tmp, sizeof (tmp));
-	g_checksum_update (sum, (const guchar *) secret_key, key_len);
-
-	g_checksum_get_digest (sum, digest, &len);
-
-	nm_assert (len == sizeof (digest));
+	g_checksum_update (sum, (const guchar *) host_id, host_id_len);
+	nm_utils_checksum_get_digest (sum, digest);
 
 	while (_is_reserved_ipv6_iid (digest)) {
 		g_checksum_reset (sum);
 		tmp[0] = htonl (++dad_counter);
-		g_checksum_update (sum, digest, len);
+		g_checksum_update (sum, digest, sizeof (digest));
 		g_checksum_update (sum, (const guchar *) &tmp[0], sizeof (tmp[0]));
-		g_checksum_get_digest (sum, digest, &len);
-		nm_assert (len == sizeof (digest));
+		nm_utils_checksum_get_digest (sum, digest);
 	}
 
-	g_checksum_free (sum);
-
 	memcpy (addr->s6_addr + 8, &digest[0], 8);
-
 	return TRUE;
 }
 
@@ -3196,11 +3580,11 @@ nm_utils_ipv6_addr_set_stable_privacy_impl (NMUtilsStableType stable_type,
                                             const char *ifname,
                                             const char *network_id,
                                             guint32 dad_counter,
-                                            guint8 *secret_key,
-                                            gsize key_len,
+                                            guint8 *host_id,
+                                            gsize host_id_len,
                                             GError **error)
 {
-	return _set_stable_privacy (stable_type, addr, ifname, network_id, dad_counter, secret_key, key_len, error);
+	return _set_stable_privacy (stable_type, addr, ifname, network_id, dad_counter, host_id, host_id_len, error);
 }
 
 #define RFC7217_IDGEN_RETRIES 3
@@ -3220,8 +3604,8 @@ nm_utils_ipv6_addr_set_stable_privacy (NMUtilsStableType stable_type,
                                        guint32 dad_counter,
                                        GError **error)
 {
-	const guint8 *secret_key;
-	gsize key_len;
+	const guint8 *host_id;
+	gsize host_id_len;
 
 	g_return_val_if_fail (network_id, FALSE);
 
@@ -3231,10 +3615,10 @@ nm_utils_ipv6_addr_set_stable_privacy (NMUtilsStableType stable_type,
 		return FALSE;
 	}
 
-	nm_utils_secret_key_get (&secret_key, &key_len);
+	nm_utils_host_id_get (&host_id, &host_id_len);
 
 	return _set_stable_privacy (stable_type, addr, ifname, network_id, dad_counter,
-	                            secret_key, key_len, error);
+	                            host_id, host_id_len, error);
 }
 
 /*****************************************************************************/
@@ -3306,42 +3690,36 @@ nm_utils_hw_addr_gen_random_eth (const char *current_mac_address,
 static char *
 _hw_addr_gen_stable_eth (NMUtilsStableType stable_type,
                          const char *stable_id,
-                         const guint8 *secret_key,
-                         gsize key_len,
+                         const guint8 *host_id,
+                         gsize host_id_len,
                          const char *ifname,
                          const char *current_mac_address,
                          const char *generate_mac_address_mask)
 {
-	GChecksum *sum;
+	nm_auto_free_checksum GChecksum *sum = NULL;
 	guint32 tmp;
-	guint8 digest[32];
-	gsize len = sizeof (digest);
+	guint8 digest[NM_UTILS_CHECKSUM_LENGTH_SHA256];
 	struct ether_addr bin_addr;
 	guint8 stable_type_uint8;
 
 	nm_assert (stable_id);
-	nm_assert (secret_key);
+	nm_assert (host_id);
 
 	sum = g_checksum_new (G_CHECKSUM_SHA256);
-	if (!sum)
-		return NULL;
 
-	key_len = MIN (key_len, G_MAXUINT32);
+	host_id_len = MIN (host_id_len, G_MAXUINT32);
 
 	nm_assert (stable_type < (NMUtilsStableType) 255);
 	stable_type_uint8 = stable_type;
 	g_checksum_update (sum, (const guchar *) &stable_type_uint8, sizeof (stable_type_uint8));
 
-	tmp = htonl ((guint32) key_len);
+	tmp = htonl ((guint32) host_id_len);
 	g_checksum_update (sum, (const guchar *) &tmp, sizeof (tmp));
-	g_checksum_update (sum, (const guchar *) secret_key, key_len);
+	g_checksum_update (sum, (const guchar *) host_id, host_id_len);
 	g_checksum_update (sum, (const guchar *) (ifname ?: ""), ifname ? (strlen (ifname) + 1) : 1);
 	g_checksum_update (sum, (const guchar *) stable_id, strlen (stable_id) + 1);
 
-	g_checksum_get_digest (sum, digest, &len);
-	g_checksum_free (sum);
-
-	g_return_val_if_fail (len == 32, NULL);
+	nm_utils_checksum_get_digest (sum, digest);
 
 	memcpy (&bin_addr, digest, ETH_ALEN);
 	_hw_addr_eth_complete (&bin_addr, current_mac_address, generate_mac_address_mask);
@@ -3351,13 +3729,13 @@ _hw_addr_gen_stable_eth (NMUtilsStableType stable_type,
 char *
 nm_utils_hw_addr_gen_stable_eth_impl (NMUtilsStableType stable_type,
                                       const char *stable_id,
-                                      const guint8 *secret_key,
-                                      gsize key_len,
+                                      const guint8 *host_id,
+                                      gsize host_id_len,
                                       const char *ifname,
                                       const char *current_mac_address,
                                       const char *generate_mac_address_mask)
 {
-	return _hw_addr_gen_stable_eth (stable_type, stable_id, secret_key, key_len, ifname, current_mac_address, generate_mac_address_mask);
+	return _hw_addr_gen_stable_eth (stable_type, stable_id, host_id, host_id_len, ifname, current_mac_address, generate_mac_address_mask);
 }
 
 char *
@@ -3367,17 +3745,17 @@ nm_utils_hw_addr_gen_stable_eth (NMUtilsStableType stable_type,
                                  const char *current_mac_address,
                                  const char *generate_mac_address_mask)
 {
-	const guint8 *secret_key;
-	gsize key_len;
+	const guint8 *host_id;
+	gsize host_id_len;
 
 	g_return_val_if_fail (stable_id, NULL);
 
-	nm_utils_secret_key_get (&secret_key, &key_len);
+	nm_utils_host_id_get (&host_id, &host_id_len);
 
 	return _hw_addr_gen_stable_eth (stable_type,
 	                                stable_id,
-	                                secret_key,
-	                                key_len,
+	                                host_id,
+	                                host_id_len,
 	                                ifname,
 	                                current_mac_address,
 	                                generate_mac_address_mask);
@@ -3385,6 +3763,118 @@ nm_utils_hw_addr_gen_stable_eth (NMUtilsStableType stable_type,
 
 /*****************************************************************************/
 
+GBytes *
+nm_utils_dhcp_client_id_mac (int arp_type,
+                             const guint8 *hwaddr,
+                             gsize hwaddr_len)
+{
+	guint8 *client_id_buf;
+	const guint8 hwaddr_type = arp_type;
+
+	if (!nm_utils_arp_type_get_hwaddr_relevant_part (arp_type, &hwaddr, &hwaddr_len))
+		g_return_val_if_reached (NULL);
+
+	client_id_buf = g_malloc (hwaddr_len + 1);
+	client_id_buf[0] = hwaddr_type;
+	memcpy (&client_id_buf[1], hwaddr, hwaddr_len);
+	return g_bytes_new_take (client_id_buf, hwaddr_len + 1);
+}
+
+/**
+ * nm_utils_dhcp_client_id_systemd_node_specific_full:
+ * @legacy_unstable_byteorder: historically, the code would generate a iaid
+ *   dependent on host endianness. This is undesirable, if backward compatibility
+ *   are not a concern, generate stable endianness.
+ * @interface_id: a binary identifer that is hashed into the DUID.
+ *   Comonly this is the interface-name, but it may be the MAC address.
+ * @interface_id_len: the length of @interface_id.
+ * @machine_id: the binary identifier for the machine. It is hashed
+ *   into the DUID. It commonly is /etc/machine-id (parsed in binary as NMUuid).
+ * @machine_id_len: the length of the @machine_id.
+ *
+ * Systemd's sd_dhcp_client generates a default client ID (type 255, node-specific,
+ * RFC 4361) if no explicit client-id is set. This function duplicates that
+ * implementation and exposes it as (internal) API.
+ *
+ * Returns: a %GBytes of generated client-id. This function cannot fail.
+ */
+GBytes *
+nm_utils_dhcp_client_id_systemd_node_specific_full (gboolean legacy_unstable_byteorder,
+                                                    const guint8 *interface_id,
+                                                    gsize interface_id_len,
+                                                    const guint8 *machine_id,
+                                                    gsize machine_id_len)
+{
+	const guint8 HASH_KEY[16] = { 0x80, 0x11, 0x8c, 0xc2, 0xfe, 0x4a, 0x03, 0xee, 0x3e, 0xd6, 0x0c, 0x6f, 0x36, 0x39, 0x14, 0x09 };
+	const guint16 DUID_TYPE_EN = 2;
+	const guint32 SYSTEMD_PEN = 43793;
+	struct _nm_packed {
+		guint8 type;
+		guint32 iaid;
+		struct _nm_packed {
+			guint16 type;
+			union {
+				struct _nm_packed {
+						/* DUID_TYPE_EN */
+						guint32 pen;
+						uint8_t id[8];
+				} en;
+			};
+		} duid;
+	} *client_id;
+	guint64 u64;
+	guint32 u32;
+
+	g_return_val_if_fail (interface_id, NULL);
+	g_return_val_if_fail (interface_id_len > 0, NULL);
+	g_return_val_if_fail (machine_id, NULL);
+	g_return_val_if_fail (machine_id_len > 0, NULL);
+
+	client_id = g_malloc (sizeof (*client_id));
+
+	client_id->type = 255;
+
+	u64 = c_siphash_hash (HASH_KEY, interface_id, interface_id_len);
+	u32 = (u64 & 0xffffffffu) ^ (u64 >> 32);
+	if (legacy_unstable_byteorder) {
+		/* original systemd code dhcp_identifier_set_iaid() generates the iaid
+		 * in native endianness. Do that too, to preserve compatibility
+		 * (https://github.com/systemd/systemd/pull/10614). */
+		u32 = bswap_32 (u32);
+	} else {
+		/* generate fixed byteorder, in a way that on little endian systems
+		 * the values agree. Meaning: legacy behavior is identical to this
+		 * on little endian. */
+		u32 = be32toh (u32);
+	}
+	unaligned_write_ne32 (&client_id->iaid, u32);
+
+	unaligned_write_be16 (&client_id->duid.type, DUID_TYPE_EN);
+
+	unaligned_write_be32 (&client_id->duid.en.pen, SYSTEMD_PEN);
+
+	u64 = htole64 (c_siphash_hash (HASH_KEY, machine_id, machine_id_len));
+	memcpy(client_id->duid.en.id, &u64, sizeof (client_id->duid.en.id));
+
+	G_STATIC_ASSERT_EXPR (sizeof (*client_id) == 19);
+	return g_bytes_new_take (client_id, 19);
+}
+
+GBytes *
+nm_utils_dhcp_client_id_systemd_node_specific (gboolean legacy_unstable_byteorder,
+                                               const char *ifname)
+{
+	g_return_val_if_fail (ifname && ifname[0], NULL);
+
+	return nm_utils_dhcp_client_id_systemd_node_specific_full (legacy_unstable_byteorder,
+	                                                           (const guint8 *) ifname,
+	                                                           strlen (ifname),
+	                                                           (const guint8 *) nm_utils_machine_id_bin (),
+	                                                           sizeof (NMUuid));
+}
+
+/*****************************************************************************/
+
 /**
  * nm_utils_setpgid:
  * @unused: unused
diff --git a/src/nm-core-utils.h b/src/nm-core-utils.h
index 30d1360a..2e75ea62 100644
--- a/src/nm-core-utils.h
+++ b/src/nm-core-utils.h
@@ -61,20 +61,35 @@ void _nm_singleton_instance_register_destruction (GObject *instance);
 #define NM_DEFINE_SINGLETON_GETTER(TYPE, GETTER, GTYPE, ...) \
 NM_DEFINE_SINGLETON_INSTANCE (TYPE); \
 NM_DEFINE_SINGLETON_REGISTER (TYPE); \
+static char _already_created_##GETTER = FALSE; \
 TYPE * \
 GETTER (void) \
 { \
 	if (G_UNLIKELY (!singleton_instance)) { \
-		static char _already_created = FALSE; \
-\
-		g_assert (!_already_created || (NM_DEFINE_SINGLETON_ALLOW_MULTIPLE)); \
-		_already_created = TRUE;\
+		g_assert (!(_already_created_##GETTER) || (NM_DEFINE_SINGLETON_ALLOW_MULTIPLE)); \
+		(_already_created_##GETTER) = TRUE;\
 		singleton_instance = (g_object_new (GTYPE, ##__VA_ARGS__, NULL)); \
 		g_assert (singleton_instance); \
 		nm_singleton_instance_register (); \
 		nm_log_dbg (LOGD_CORE, "create %s singleton (%p)", G_STRINGIFY (TYPE), singleton_instance); \
 	} \
 	return singleton_instance; \
+} \
+_nm_unused static void \
+_nmtst_##GETTER##_reset (TYPE *instance) \
+{ \
+	/* usually, the singleton can only be created once (and further instantiations
+	 * are guarded by an assert). For testing, we need to reset the singleton to
+	 * allow multiple instantiations. */ \
+	g_assert (G_IS_OBJECT (instance)); \
+	g_assert (instance == singleton_instance); \
+	g_assert (_already_created_##GETTER); \
+	g_object_unref (instance); \
+	\
+	/* require that the last unref also destroyed the singleton. If this fails,
+	 * somebody still keeps a reference. Fix your test! */ \
+	g_assert (!singleton_instance); \
+	_already_created_##GETTER = FALSE; \
 }
 
 /* attach @instance to the data or @owner. @owner owns a reference
@@ -208,7 +223,8 @@ NMMatchSpecMatchType nm_match_spec_device (const GSList *specs,
                                            const char *driver,
                                            const char *driver_version,
                                            const char *hwaddr,
-                                           const char *s390_subchannels);
+                                           const char *s390_subchannels,
+                                           const char *dhcp_plugin);
 NMMatchSpecMatchType nm_match_spec_config (const GSList *specs,
                                            guint nm_version,
                                            const char *env);
@@ -264,14 +280,32 @@ gboolean nm_utils_sysctl_ip_conf_is_path (int addr_family, const char *path, con
 
 gboolean nm_utils_is_specific_hostname (const char *name);
 
-char *nm_utils_machine_id_read (void);
-gboolean nm_utils_machine_id_parse (const char *id_str, /*uuid_t*/ guchar *out_uuid);
+struct _NMUuid;
+
+const char *nm_utils_machine_id_str (void);
+const struct _NMUuid *nm_utils_machine_id_bin (void);
+gboolean nm_utils_machine_id_is_fake (void);
 
-gboolean nm_utils_secret_key_get (const guint8 **out_secret_key,
-                                  gsize *out_key_len);
-gint64 nm_utils_secret_key_get_timestamp (void);
+const char *nm_utils_boot_id_str (void);
+const struct _NMUuid *nm_utils_boot_id_bin (void);
 
-const char *nm_utils_get_boot_id (void);
+gboolean nm_utils_host_id_get (const guint8 **out_host_id,
+                               gsize *out_host_id_len);
+gint64 nm_utils_host_id_get_timestamp_ns (void);
+
+/*****************************************************************************/
+
+int nm_utils_arp_type_detect_from_hwaddrlen (gsize hwaddr_len);
+
+gboolean nm_utils_arp_type_validate_hwaddr (int arp_type,
+                                            const guint8 *hwaddr,
+                                            gsize hwaddr_len);
+
+gboolean nm_utils_arp_type_get_hwaddr_relevant_part (int arp_type,
+                                                     const guint8 **hwaddr,
+                                                     gsize *hwaddr_len);
+
+/*****************************************************************************/
 
 /* IPv6 Interface Identifier helpers */
 
@@ -326,6 +360,7 @@ typedef enum {
 
 NMUtilsStableType nm_utils_stable_id_parse (const char *stable_id,
                                             const char *deviceid,
+                                            const char *hwaddr,
                                             const char *bootid,
                                             const char *uuid,
                                             char **out_generated);
@@ -338,8 +373,8 @@ gboolean nm_utils_ipv6_addr_set_stable_privacy_impl (NMUtilsStableType stable_ty
                                                      const char *ifname,
                                                      const char *network_id,
                                                      guint32 dad_counter,
-                                                     guint8 *secret_key,
-                                                     gsize key_len,
+                                                     guint8 *host_id,
+                                                     gsize host_id_len,
                                                      GError **error);
 
 gboolean nm_utils_ipv6_addr_set_stable_privacy (NMUtilsStableType id_type,
@@ -353,8 +388,8 @@ char *nm_utils_hw_addr_gen_random_eth (const char *current_mac_address,
                                        const char *generate_mac_address_mask);
 char *nm_utils_hw_addr_gen_stable_eth_impl (NMUtilsStableType stable_type,
                                             const char *stable_id,
-                                            const guint8 *secret_key,
-                                            gsize key_len,
+                                            const guint8 *host_id,
+                                            gsize host_id_len,
                                             const char *ifname,
                                             const char *current_mac_address,
                                             const char *generate_mac_address_mask);
@@ -364,6 +399,23 @@ char *nm_utils_hw_addr_gen_stable_eth (NMUtilsStableType stable_type,
                                        const char *current_mac_address,
                                        const char *generate_mac_address_mask);
 
+/*****************************************************************************/
+
+GBytes *nm_utils_dhcp_client_id_mac (int arp_type,
+                                     const guint8 *hwaddr,
+                                     gsize hwaddr_len);
+
+GBytes *nm_utils_dhcp_client_id_systemd_node_specific_full (gboolean legacy_unstable_byteorder,
+                                                            const guint8 *interface_id,
+                                                            gsize interface_id_len,
+                                                            const guint8 *machine_id,
+                                                            gsize machine_id_len);
+
+GBytes *nm_utils_dhcp_client_id_systemd_node_specific (gboolean legacy_unstable_byteorder,
+                                                       const char *ifname);
+
+/*****************************************************************************/
+
 void nm_utils_array_remove_at_indexes (GArray *array, const guint *indexes_to_delete, gsize len);
 
 void nm_utils_setpgid (gpointer unused);
diff --git a/src/nm-dbus-manager.c b/src/nm-dbus-manager.c
index ca7bde57..a5c7c12b 100644
--- a/src/nm-dbus-manager.c
+++ b/src/nm-dbus-manager.c
@@ -1538,6 +1538,18 @@ nm_dbus_manager_acquire_bus (NMDBusManager *self)
 		return FALSE;
 	}
 
+	registration_id = g_dbus_connection_register_object (connection,
+	                                                     OBJECT_MANAGER_SERVER_BASE_PATH,
+	                                                     NM_UNCONST_PTR (GDBusInterfaceInfo, &interface_info_objmgr),
+	                                                     &dbus_vtable_objmgr,
+	                                                     self,
+	                                                     NULL,
+	                                                     &error);
+	if (!registration_id) {
+		_LOGE ("failure to register object manager: %s", error->message);
+		return FALSE;
+	}
+
 	ret = _nm_dbus_proxy_call_sync (proxy,
 	                                "RequestName",
 	                                g_variant_new ("(su)",
@@ -1550,6 +1562,7 @@ nm_dbus_manager_acquire_bus (NMDBusManager *self)
 	if (!ret) {
 		_LOGE ("fatal failure to acquire D-Bus service \"%s"": %s",
 		       NM_DBUS_SERVICE, error->message);
+		g_dbus_connection_unregister_object(connection, registration_id);
 		return FALSE;
 	}
 
@@ -1557,18 +1570,7 @@ nm_dbus_manager_acquire_bus (NMDBusManager *self)
 	if (result != DBUS_REQUEST_NAME_REPLY_PRIMARY_OWNER) {
 		_LOGE ("fatal failure to acquire D-Bus service \"%s\" (%u). Service already taken",
 		       NM_DBUS_SERVICE, (guint) result);
-		return FALSE;
-	}
-
-	registration_id = g_dbus_connection_register_object (connection,
-	                                                     OBJECT_MANAGER_SERVER_BASE_PATH,
-	                                                     NM_UNCONST_PTR (GDBusInterfaceInfo, &interface_info_objmgr),
-	                                                     &dbus_vtable_objmgr,
-	                                                     self,
-	                                                     NULL,
-	                                                     &error);
-	if (!registration_id) {
-		_LOGE ("failure to register object manager: %s", error->message);
+		g_dbus_connection_unregister_object(connection, registration_id);
 		return FALSE;
 	}
 
diff --git a/src/nm-ip4-config.c b/src/nm-ip4-config.c
index 6604711c..ce7f7fc4 100644
--- a/src/nm-ip4-config.c
+++ b/src/nm-ip4-config.c
@@ -2996,29 +2996,19 @@ nm_ip4_config_hash (const NMIP4Config *self, GChecksum *sum, gboolean dns_only)
 gboolean
 nm_ip4_config_equal (const NMIP4Config *a, const NMIP4Config *b)
 {
-	GChecksum *a_checksum = g_checksum_new (G_CHECKSUM_SHA1);
-	GChecksum *b_checksum = g_checksum_new (G_CHECKSUM_SHA1);
-	guchar a_data[20], b_data[20];
-	gsize a_len = sizeof (a_data);
-	gsize b_len = sizeof (b_data);
-	gboolean equal;
+	nm_auto_free_checksum GChecksum *a_checksum = g_checksum_new (G_CHECKSUM_SHA1);
+	nm_auto_free_checksum GChecksum *b_checksum = g_checksum_new (G_CHECKSUM_SHA1);
+	guint8 a_data[NM_UTILS_CHECKSUM_LENGTH_SHA1];
+	guint8 b_data[NM_UTILS_CHECKSUM_LENGTH_SHA1];
 
 	if (a)
 		nm_ip4_config_hash (a, a_checksum, FALSE);
 	if (b)
 		nm_ip4_config_hash (b, b_checksum, FALSE);
 
-	g_checksum_get_digest (a_checksum, a_data, &a_len);
-	g_checksum_get_digest (b_checksum, b_data, &b_len);
-
-	nm_assert (a_len == sizeof (a_data));
-	nm_assert (b_len == sizeof (b_data));
-	equal = !memcmp (a_data, b_data, a_len);
-
-	g_checksum_free (a_checksum);
-	g_checksum_free (b_checksum);
-
-	return equal;
+	nm_utils_checksum_get_digest (a_checksum, a_data);
+	nm_utils_checksum_get_digest (b_checksum, b_data);
+	return !memcmp (a_data, b_data, sizeof (a_data));
 }
 
 /*****************************************************************************/
diff --git a/src/nm-ip6-config.c b/src/nm-ip6-config.c
index a8c4aecd..42240e69 100644
--- a/src/nm-ip6-config.c
+++ b/src/nm-ip6-config.c
@@ -2426,29 +2426,19 @@ nm_ip6_config_hash (const NMIP6Config *self, GChecksum *sum, gboolean dns_only)
 gboolean
 nm_ip6_config_equal (const NMIP6Config *a, const NMIP6Config *b)
 {
-	GChecksum *a_checksum = g_checksum_new (G_CHECKSUM_SHA1);
-	GChecksum *b_checksum = g_checksum_new (G_CHECKSUM_SHA1);
-	guchar a_data[20], b_data[20];
-	gsize a_len = sizeof (a_data);
-	gsize b_len = sizeof (b_data);
-	gboolean equal;
+	nm_auto_free_checksum GChecksum *a_checksum = g_checksum_new (G_CHECKSUM_SHA1);
+	nm_auto_free_checksum GChecksum *b_checksum = g_checksum_new (G_CHECKSUM_SHA1);
+	guint8 a_data[NM_UTILS_CHECKSUM_LENGTH_SHA1];
+	guint8 b_data[NM_UTILS_CHECKSUM_LENGTH_SHA1];
 
 	if (a)
 		nm_ip6_config_hash (a, a_checksum, FALSE);
 	if (b)
 		nm_ip6_config_hash (b, b_checksum, FALSE);
 
-	g_checksum_get_digest (a_checksum, a_data, &a_len);
-	g_checksum_get_digest (b_checksum, b_data, &b_len);
-
-	nm_assert (a_len == sizeof (a_data));
-	nm_assert (b_len == sizeof (b_data));
-	equal = !memcmp (a_data, b_data, a_len);
-
-	g_checksum_free (a_checksum);
-	g_checksum_free (b_checksum);
-
-	return equal;
+	nm_utils_checksum_get_digest (a_checksum, a_data);
+	nm_utils_checksum_get_digest (b_checksum, b_data);
+	return !memcmp (a_data, b_data, sizeof (a_data));
 }
 
 /*****************************************************************************/
diff --git a/src/nm-manager.c b/src/nm-manager.c
index 7598995d..3ddc3b92 100644
--- a/src/nm-manager.c
+++ b/src/nm-manager.c
@@ -1596,7 +1596,12 @@ again:
 static gboolean
 device_is_wake_on_lan (NMPlatform *platform, NMDevice *device)
 {
-	return nm_platform_link_get_wake_on_lan (platform, nm_device_get_ip_ifindex (device));
+	int ifindex;
+
+	ifindex = nm_device_get_ip_ifindex (device);
+	if (ifindex <= 0)
+		return FALSE;
+	return nm_platform_link_get_wake_on_lan (platform, ifindex);
 }
 
 static void
@@ -2816,18 +2821,21 @@ device_connectivity_changed (NMDevice *device,
 
 	best_state = nm_device_get_connectivity_state (device);
 	if (best_state < NM_CONNECTIVITY_FULL) {
+		/* FIXME: is this really correct, to considere devices that don't have
+		 * (the best) default route for connectivity checking? */
 		c_list_for_each_entry (dev, &priv->devices_lst_head, devices_lst) {
 			state = nm_device_get_connectivity_state (dev);
-			if (state <= best_state)
+			if (nm_connectivity_state_cmp (state, best_state) <= 0)
 				continue;
 			best_state = state;
-			if (best_state >= NM_CONNECTIVITY_FULL) {
+			if (nm_connectivity_state_cmp (best_state, NM_CONNECTIVITY_FULL) >= 0) {
 				/* it doesn't get better than this. */
 				break;
 			}
 		}
 	}
 	nm_assert (best_state <= NM_CONNECTIVITY_FULL);
+	nm_assert (nm_connectivity_state_cmp (best_state, NM_CONNECTIVITY_FULL) <= 0);
 
 	if (best_state != priv->connectivity_state) {
 		priv->connectivity_state = best_state;
diff --git a/src/nm-policy.c b/src/nm-policy.c
index 7f8c665c..a5960105 100644
--- a/src/nm-policy.c
+++ b/src/nm-policy.c
@@ -1751,17 +1751,14 @@ device_state_changed (NMDevice *device,
 	NMSettingConnection *s_con = NULL;
 
 	switch (nm_device_state_reason_check (reason)) {
-	case NM_DEVICE_STATE_REASON_GSM_REGISTRATION_DENIED:
-	case NM_DEVICE_STATE_REASON_GSM_REGISTRATION_NOT_SEARCHING:
-	case NM_DEVICE_STATE_REASON_GSM_SIM_NOT_INSERTED:
 	case NM_DEVICE_STATE_REASON_GSM_SIM_PIN_REQUIRED:
 	case NM_DEVICE_STATE_REASON_GSM_SIM_PUK_REQUIRED:
-	case NM_DEVICE_STATE_REASON_GSM_SIM_WRONG:
 	case NM_DEVICE_STATE_REASON_SIM_PIN_INCORRECT:
-	case NM_DEVICE_STATE_REASON_MODEM_INIT_FAILED:
 	case NM_DEVICE_STATE_REASON_GSM_APN_FAILED:
-		/* Block autoconnect of the just-failed connection for situations
-		 * where a retry attempt would just fail again.
+		/* Block autoconnection at settings level if there is any settings-specific
+		 * error reported by the modem (e.g. wrong SIM-PIN or wrong APN). Do not block
+		 * autoconnection at settings level for errors in the device domain (e.g.
+		 * a missing SIM or wrong modem initialization).
 		 */
 		if (sett_conn) {
 			nm_settings_connection_autoconnect_blocked_reason_set (sett_conn,
diff --git a/src/nm-test-utils-core.h b/src/nm-test-utils-core.h
index 5e89cb39..dbfe71ad 100644
--- a/src/nm-test-utils-core.h
+++ b/src/nm-test-utils-core.h
@@ -88,8 +88,8 @@ nmtst_platform_ip4_address_full (const char *address, const char *peer_address,
 {
 	NMPlatformIP4Address *addr = nmtst_platform_ip4_address (address, peer_address, plen);
 
-	G_STATIC_ASSERT (IFNAMSIZ == sizeof (addr->label));
-	g_assert (!label || strlen (label) < IFNAMSIZ);
+	G_STATIC_ASSERT (NMP_IFNAMSIZ == sizeof (addr->label));
+	g_assert (!label || strlen (label) < NMP_IFNAMSIZ);
 
 	addr->ifindex = ifindex;
 	addr->addr_source = source;
diff --git a/src/platform/nm-fake-platform.c b/src/platform/nm-fake-platform.c
index 82f9e2fb..ef69b391 100644
--- a/src/platform/nm-fake-platform.c
+++ b/src/platform/nm-fake-platform.c
@@ -26,6 +26,7 @@
 #include <unistd.h>
 #include <netinet/icmp6.h>
 #include <netinet/in.h>
+#include <linux/if.h>
 #include <linux/rtnetlink.h>
 
 #include "nm-utils.h"
diff --git a/src/platform/nm-linux-platform.c b/src/platform/nm-linux-platform.c
index e73d5d8c..c0224fff 100644
--- a/src/platform/nm-linux-platform.c
+++ b/src/platform/nm-linux-platform.c
@@ -2031,7 +2031,7 @@ _wireguard_update_from_peers_nla (CList *peers,
 			}
 		}
 		if (tb[WGPEER_A_PERSISTENT_KEEPALIVE_INTERVAL])
-			peer_c->data.persistent_keepalive_interval = nla_get_u64 (tb[WGPEER_A_PERSISTENT_KEEPALIVE_INTERVAL]);
+			peer_c->data.persistent_keepalive_interval = nla_get_u16 (tb[WGPEER_A_PERSISTENT_KEEPALIVE_INTERVAL]);
 		if (tb[WGPEER_A_LAST_HANDSHAKE_TIME])
 			nla_memcpy (&peer_c->data.last_handshake_time, tb[WGPEER_A_LAST_HANDSHAKE_TIME], sizeof (peer_c->data.last_handshake_time));
 		if (tb[WGPEER_A_RX_BYTES])
@@ -5737,12 +5737,13 @@ static gboolean
 link_set_sriov_params (NMPlatform *platform,
                        int ifindex,
                        guint num_vfs,
-                       int autoprobe)
+                       NMTernary autoprobe)
 {
 	nm_auto_pop_netns NMPNetns *netns = NULL;
 	nm_auto_close int dirfd = -1;
-	gboolean current_autoprobe;
-	guint total, current_num;
+	int current_autoprobe;
+	guint total;
+	gint64 current_num;
 	char ifname[IFNAMSIZ];
 	char buf[64];
 
@@ -5775,14 +5776,14 @@ link_set_sriov_params (NMPlatform *platform,
 	                                                  NMP_SYSCTL_PATHID_NETDIR (dirfd,
 	                                                                            ifname,
 	                                                                            "device/sriov_numvfs"),
-	                                                  10, 0, G_MAXUINT, 0);
+	                                                  10, 0, G_MAXUINT, -1);
 	current_autoprobe = nm_platform_sysctl_get_int_checked (platform,
 	                                                        NMP_SYSCTL_PATHID_NETDIR (dirfd,
 	                                                                                  ifname,
 	                                                                                  "device/sriov_drivers_autoprobe"),
-	                                                        10, 0, G_MAXUINT, 0);
+	                                                        10, 0, 1, -1);
 	if (   current_num == num_vfs
-	    && (autoprobe == -1 || current_autoprobe == autoprobe))
+	    && (autoprobe == NM_TERNARY_DEFAULT || current_autoprobe == autoprobe))
 		return TRUE;
 
 	if (current_num != 0) {
@@ -5800,14 +5801,14 @@ link_set_sriov_params (NMPlatform *platform,
 	if (num_vfs == 0)
 		return TRUE;
 
-	if (   autoprobe >= 0
+	if (   NM_IN_SET (autoprobe, NM_TERNARY_TRUE, NM_TERNARY_FALSE)
 	    && current_autoprobe != autoprobe
 	    && !nm_platform_sysctl_set (NM_PLATFORM_GET,
 	                                NMP_SYSCTL_PATHID_NETDIR (dirfd,
 	                                                          ifname,
 	                                                          "device/sriov_drivers_autoprobe"),
-	                                nm_sprintf_buf (buf, "%d", autoprobe))) {
-		_LOGW ("link: couldn't set SR-IOV drivers-autoprobe to %d: %s", autoprobe, strerror (errno));
+	                                nm_sprintf_buf (buf, "%d", (int) autoprobe))) {
+		_LOGW ("link: couldn't set SR-IOV drivers-autoprobe to %d: %s", (int) autoprobe, strerror (errno));
 		return FALSE;
 	}
 
@@ -7044,7 +7045,7 @@ ip6_address_add (NMPlatform *platform,
 	                             ifindex,
 	                             &addr,
 	                             plen,
-	                             &peer_addr,
+	                             IN6_IS_ADDR_UNSPECIFIED (&peer_addr) ? NULL : &peer_addr,
 	                             flags,
 	                             RT_SCOPE_UNIVERSE,
 	                             lifetime,
diff --git a/src/platform/nm-platform-utils.c b/src/platform/nm-platform-utils.c
index 216b1547..cc43b27f 100644
--- a/src/platform/nm-platform-utils.c
+++ b/src/platform/nm-platform-utils.c
@@ -29,6 +29,7 @@
 #include <linux/ethtool.h>
 #include <linux/sockios.h>
 #include <linux/mii.h>
+#include <linux/if.h>
 #include <linux/version.h>
 #include <linux/rtnetlink.h>
 #include <fcntl.h>
diff --git a/src/platform/nm-platform.c b/src/platform/nm-platform.c
index 7ddcf41a..757a0f43 100644
--- a/src/platform/nm-platform.c
+++ b/src/platform/nm-platform.c
@@ -31,6 +31,7 @@
 #include <netdb.h>
 #include <string.h>
 #include <linux/ip.h>
+#include <linux/if.h>
 #include <linux/if_tun.h>
 #include <linux/if_tunnel.h>
 #include <linux/rtnetlink.h>
@@ -1192,13 +1193,29 @@ nm_platform_link_refresh (NMPlatform *self, int ifindex)
 	return TRUE;
 }
 
-static guint
-_link_get_flags (NMPlatform *self, int ifindex)
+int
+nm_platform_link_get_ifi_flags (NMPlatform *self,
+                                int ifindex,
+                                guint requested_flags)
 {
 	const NMPlatformLink *pllink;
 
-	pllink = nm_platform_link_get (self, ifindex);
-	return pllink ? pllink->n_ifi_flags : IFF_NOARP;
+	_CHECK_SELF (self, klass, -EINVAL);
+
+	if (ifindex <= 0)
+		return -EINVAL;
+
+	/* include invisible links (only in netlink, not udev). */
+	pllink = NMP_OBJECT_CAST_LINK (nm_platform_link_get_obj (self, ifindex, FALSE));
+	if (!pllink)
+		return -ENODEV;
+
+	/* Errors are signaled as negative values. That means, you cannot request
+	 * the most significant bit (2^31) with this API. Assert against that. */
+	nm_assert ((int) requested_flags >= 0);
+	nm_assert (requested_flags < (guint) G_MAXINT);
+
+	return (int) (pllink->n_ifi_flags & requested_flags);
 }
 
 /**
@@ -1211,9 +1228,7 @@ _link_get_flags (NMPlatform *self, int ifindex)
 gboolean
 nm_platform_link_is_up (NMPlatform *self, int ifindex)
 {
-	_CHECK_SELF (self, klass, FALSE);
-
-	return NM_FLAGS_HAS (_link_get_flags (self, ifindex), IFF_UP);
+	return nm_platform_link_get_ifi_flags (self, ifindex, IFF_UP) == IFF_UP;
 }
 
 /**
@@ -1244,9 +1259,15 @@ nm_platform_link_is_connected (NMPlatform *self, int ifindex)
 gboolean
 nm_platform_link_uses_arp (NMPlatform *self, int ifindex)
 {
-	_CHECK_SELF (self, klass, FALSE);
+	int f;
+
+	f = nm_platform_link_get_ifi_flags (self, ifindex, IFF_NOARP);
 
-	return !NM_FLAGS_HAS (_link_get_flags (self, ifindex), IFF_NOARP);
+	if (f < 0)
+		return FALSE;
+	if (f == IFF_NOARP)
+		return FALSE;
+	return TRUE;
 }
 
 /**
@@ -1468,25 +1489,25 @@ nm_platform_link_supports_sriov (NMPlatform *self, int ifindex)
  * @self: platform instance
  * @ifindex: the index of the interface to change
  * @num_vfs: the number of VFs to create
- * @autoprobe: -1 to keep the current autoprobe-drivers value,
- *   or {0,1} to set a new value
+ * @autoprobe: the new autoprobe-drivers value (pass
+ *     %NM_TERNARY_DEFAULT to keep current value)
  */
 gboolean
 nm_platform_link_set_sriov_params (NMPlatform *self,
                                    int ifindex,
                                    guint num_vfs,
-                                   int autoprobe)
+                                   NMTernary autoprobe)
 {
 	_CHECK_SELF (self, klass, FALSE);
 
 	g_return_val_if_fail (ifindex > 0, FALSE);
-	g_return_val_if_fail (NM_IN_SET (autoprobe, -1, 0, 1), FALSE);
 
 	_LOGD ("link: setting %u total VFs and autoprobe %d for %s (%d)",
 	       num_vfs,
-	       autoprobe,
+	       (int) autoprobe,
 	       nm_strquote_a (25, nm_platform_link_get_name (self, ifindex)),
 	       ifindex);
+
 	return klass->link_set_sriov_params (self, ifindex, num_vfs, autoprobe);
 }
 
diff --git a/src/platform/nm-platform.h b/src/platform/nm-platform.h
index 11495aff..7e91f1f3 100644
--- a/src/platform/nm-platform.h
+++ b/src/platform/nm-platform.h
@@ -21,12 +21,6 @@
 #ifndef __NETWORKMANAGER_PLATFORM_H__
 #define __NETWORKMANAGER_PLATFORM_H__
 
-#include <netinet/in.h>
-#include <linux/if.h>
-#include <linux/if_addr.h>
-#include <linux/if_link.h>
-#include <linux/ip6_tunnel.h>
-
 #include "nm-dbus-interface.h"
 #include "nm-core-types-internal.h"
 
@@ -53,6 +47,12 @@
 
 /*****************************************************************************/
 
+/* IFNAMSIZ is both defined in <linux/if.h> and <net/if.h>. In the past, these
+ * headers conflicted, so we cannot simply include either of them in a header-file.*/
+#define NMP_IFNAMSIZ 16
+
+/*****************************************************************************/
+
 struct udev_device;
 
 typedef gboolean (*NMPObjectPredicateFunc) (const NMPObject *obj,
@@ -208,7 +208,7 @@ typedef enum {
 
 struct _NMPlatformLink {
 	__NMPlatformObject_COMMON;
-	char name[IFNAMSIZ];
+	char name[NMP_IFNAMSIZ];
 	NMLinkType type;
 
 	/* rtnl_link_get_type(), IFLA_INFO_KIND. */
@@ -355,7 +355,7 @@ struct _NMPlatformIP4Address {
 	 * */
 	in_addr_t peer_address;  /* PTP peer address */
 
-	char label[IFNAMSIZ];
+	char label[NMP_IFNAMSIZ];
 };
 
 /**
@@ -1105,12 +1105,12 @@ const char *nm_platform_error_to_string (NMPlatformError error,
 	((const char *) NULL), -1, (path)
 
 #define NMP_SYSCTL_PATHID_NETDIR_unsafe(dirfd, ifname, path) \
-	nm_sprintf_bufa (NM_STRLEN ("net:/sys/class/net//\0") + IFNAMSIZ + strlen (path), \
+	nm_sprintf_bufa (NM_STRLEN ("net:/sys/class/net//\0") + NMP_IFNAMSIZ + strlen (path), \
 	                 "net:/sys/class/net/%s/%s", (ifname), (path)), \
 	(dirfd), (path)
 
 #define NMP_SYSCTL_PATHID_NETDIR(dirfd, ifname, path) \
-	nm_sprintf_bufa (NM_STRLEN ("net:/sys/class/net//"path"/\0") + IFNAMSIZ, \
+	nm_sprintf_bufa (NM_STRLEN ("net:/sys/class/net//"path"/\0") + NMP_IFNAMSIZ, \
 	                 "net:/sys/class/net/%s/%s", (ifname), path), \
 	(dirfd), (""path"")
 
@@ -1165,6 +1165,7 @@ int nm_platform_link_get_ifindex (NMPlatform *self, const char *name);
 const char *nm_platform_link_get_name (NMPlatform *self, int ifindex);
 NMLinkType nm_platform_link_get_type (NMPlatform *self, int ifindex);
 gboolean nm_platform_link_is_software (NMPlatform *self, int ifindex);
+int nm_platform_link_get_ifi_flags (NMPlatform *self, int ifindex, guint requested_flags);
 gboolean nm_platform_link_is_up (NMPlatform *self, int ifindex);
 gboolean nm_platform_link_is_connected (NMPlatform *self, int ifindex);
 gboolean nm_platform_link_uses_arp (NMPlatform *self, int ifindex);
diff --git a/src/platform/nmp-object.c b/src/platform/nmp-object.c
index fdc27440..f7fa6cb3 100644
--- a/src/platform/nmp-object.c
+++ b/src/platform/nmp-object.c
@@ -24,6 +24,7 @@
 
 #include <unistd.h>
 #include <linux/rtnetlink.h>
+#include <linux/if.h>
 #include <libudev.h>
 
 #include "nm-utils.h"
diff --git a/src/platform/tests/test-common.c b/src/platform/tests/test-common.c
index 3dedbd10..1cb2f516 100644
--- a/src/platform/tests/test-common.c
+++ b/src/platform/tests/test-common.c
@@ -787,8 +787,6 @@ nmtstp_ip_address_assert_lifetime (const NMPlatformIPAddress *addr,
 		if (lft == NM_PLATFORM_LIFETIME_PERMANENT)
 			g_assert_cmpint (adr, ==, NM_PLATFORM_LIFETIME_PERMANENT);
 		else {
-			g_assert_cmpint (adr, <=, lft);
-			g_assert_cmpint (offset, <=, adr);
 			g_assert_cmpint (adr - offset, <=, lft + CHECK_LIFETIME_MAX_DIFF);
 			g_assert_cmpint (adr - offset, >=, lft - CHECK_LIFETIME_MAX_DIFF);
 		}
diff --git a/src/platform/tests/test-common.h b/src/platform/tests/test-common.h
index 1baadfa1..7e81baea 100644
--- a/src/platform/tests/test-common.h
+++ b/src/platform/tests/test-common.h
@@ -21,6 +21,9 @@
 #include <syslog.h>
 #include <string.h>
 #include <arpa/inet.h>
+#include <linux/if.h>
+#include <linux/if_link.h>
+#include <linux/ip6_tunnel.h>
 
 #include "platform/nm-platform.h"
 #include "platform/nmp-object.h"
diff --git a/src/platform/wifi/nm-wifi-utils-nl80211.c b/src/platform/wifi/nm-wifi-utils-nl80211.c
index b3bb2bb6..39e3f971 100644
--- a/src/platform/wifi/nm-wifi-utils-nl80211.c
+++ b/src/platform/wifi/nm-wifi-utils-nl80211.c
@@ -30,6 +30,7 @@
 #include <net/ethernet.h>
 #include <unistd.h>
 #include <linux/nl80211.h>
+#include <linux/if.h>
 
 #include "platform/nm-netlink.h"
 #include "nm-wifi-utils-private.h"
diff --git a/src/platform/wpan/nm-wpan-utils.c b/src/platform/wpan/nm-wpan-utils.c
index 0544539a..882c4eec 100644
--- a/src/platform/wpan/nm-wpan-utils.c
+++ b/src/platform/wpan/nm-wpan-utils.c
@@ -21,6 +21,8 @@
 
 #include "nm-wpan-utils.h"
 
+#include <linux/if.h>
+
 #include "platform/linux/nl802154.h"
 #include "platform/nm-netlink.h"
 
diff --git a/src/settings/nm-settings-connection.c b/src/settings/nm-settings-connection.c
index 4c25d0e9..6f47e14d 100644
--- a/src/settings/nm-settings-connection.c
+++ b/src/settings/nm-settings-connection.c
@@ -640,7 +640,9 @@ nm_settings_connection_update (NMSettingsConnection *self,
 	gboolean replaced = FALSE;
 	gs_free char *logmsg_change = NULL;
 	GError *local = NULL;
+	gs_unref_object NMConnection *simple = NULL;
 	gs_unref_variant GVariant *con_agent_secrets = NULL;
+	gs_unref_variant GVariant *new_agent_secrets = NULL;
 
 	g_return_val_if_fail (NM_IS_SETTINGS_CONNECTION (self), FALSE);
 
@@ -681,6 +683,16 @@ nm_settings_connection_update (NMSettingsConnection *self,
 
 	replace_connection = reread_connection ?: new_connection;
 
+	/* Save agent-owned secrets from the new connection for later use */
+	if (new_connection) {
+		simple = nm_simple_connection_new_clone (new_connection);
+		nm_connection_clear_secrets_with_flags (simple,
+		                                        secrets_filter_cb,
+		                                        GUINT_TO_POINTER (NM_SETTING_SECRET_FLAG_AGENT_OWNED));
+		new_agent_secrets = nm_connection_to_dbus (simple, NM_CONNECTION_SERIALIZE_ONLY_SECRETS);
+		g_clear_object (&simple);
+	}
+
 	/* Disconnect the changed signal to ensure we don't set Unsaved when
 	 * it's not required.
 	 */
@@ -691,7 +703,6 @@ nm_settings_connection_update (NMSettingsConnection *self,
 	    && !nm_connection_compare (nm_settings_connection_get_connection (self),
 	                               replace_connection,
 	                               NM_SETTING_COMPARE_FLAG_EXACT)) {
-		gs_unref_object NMConnection *simple = NULL;
 
 		if (log_diff_name) {
 			nm_utils_log_connection_diff (replace_connection, nm_settings_connection_get_connection (self), LOGL_DEBUG, LOGD_CORE, log_diff_name, "++ ",
@@ -738,6 +749,15 @@ nm_settings_connection_update (NMSettingsConnection *self,
 			(void) nm_connection_update_secrets (nm_settings_connection_get_connection (self), NULL, con_agent_secrets, NULL);
 	}
 
+	/* Apply agent-owned secrets from the new connection so that
+	 * they can be sent to agents */
+	if (new_agent_secrets) {
+		(void) nm_connection_update_secrets (nm_settings_connection_get_connection (self),
+		                                     NULL,
+		                                     new_agent_secrets,
+		                                     NULL);
+	}
+
 	nm_settings_connection_recheck_visibility (self);
 
 	if (   replaced
diff --git a/src/settings/plugins/ibft/tests/iscsiadm-test-bad-dns1 b/src/settings/plugins/ibft/tests/iscsiadm-test-bad-dns1
new file mode 100755
index 00000000..54f02da6
--- /dev/null
+++ b/src/settings/plugins/ibft/tests/iscsiadm-test-bad-dns1
@@ -0,0 +1,21 @@
+#!/bin/bash
+
+cat << EOF
+# BEGIN RECORD
+iface.initiatorname = iqn.pjones6
+iface.hwaddress = 00:33:21:98:b9:f0
+iface.bootproto = STATIC
+iface.ipaddress = 192.168.32.72
+iface.subnet_mask = 255.255.252.0
+iface.gateway = 192.168.35.254
+iface.primary_dns = 10000.500.250.1
+iface.secondary_dns = 10.16.255.3
+iface.vlan_id = 0
+iface.net_ifacename = eth0
+node.name = iqn.0.2008-11.com.blahblah:iscsi0
+node.conn[0].address = 10.16.52.16
+node.conn[0].port = 3260
+node.boot_lun = 00000000
+# END RECORD
+EOF
+
diff --git a/src/settings/plugins/ibft/tests/iscsiadm-test-bad-dns2 b/src/settings/plugins/ibft/tests/iscsiadm-test-bad-dns2
new file mode 100755
index 00000000..ebd7a9ca
--- /dev/null
+++ b/src/settings/plugins/ibft/tests/iscsiadm-test-bad-dns2
@@ -0,0 +1,21 @@
+#!/bin/bash
+
+cat << EOF
+# BEGIN RECORD
+iface.initiatorname = iqn.pjones6
+iface.hwaddress = 00:33:21:98:b9:f0
+iface.bootproto = STATIC
+iface.ipaddress = 192.168.32.72
+iface.subnet_mask = 255.255.252.0
+iface.gateway = 192.168.35.254
+iface.primary_dns = 10.16.255.2
+iface.secondary_dns = blah.foo.bar.baz
+iface.vlan_id = 0
+iface.net_ifacename = eth0
+node.name = iqn.0.2008-11.com.blahblah:iscsi0
+node.conn[0].address = 10.16.52.16
+node.conn[0].port = 3260
+node.boot_lun = 00000000
+# END RECORD
+EOF
+
diff --git a/src/settings/plugins/ibft/tests/iscsiadm-test-bad-entry b/src/settings/plugins/ibft/tests/iscsiadm-test-bad-entry
new file mode 100755
index 00000000..4e326048
--- /dev/null
+++ b/src/settings/plugins/ibft/tests/iscsiadm-test-bad-entry
@@ -0,0 +1,20 @@
+#!/bin/bash
+
+cat << EOF
+# BEGIN RECORD
+iface.initiatorname = iqn.pjones6
+iface.hwaddress = 00:33:21:98:b9:f0
+iface.bootproto = STATIC
+iface.ipaddress 192.168.32.72
+iface.subnet_mask = 255.255.252.0
+iface.gateway = 192.168.35.254
+iface.primary_dns = 10.16.255.2
+iface.secondary_dns = 10.16.255.3
+iface.vlan_id = 0
+iface.net_ifacename = eth0
+node.name = iqn.0.2008-11.com.blahblah:iscsi0
+node.conn[0].address = 10.16.52.16
+node.conn[0].port = 3260
+node.boot_lun = 00000000
+# END RECORD
+
diff --git a/src/settings/plugins/ibft/tests/iscsiadm-test-bad-gateway b/src/settings/plugins/ibft/tests/iscsiadm-test-bad-gateway
new file mode 100755
index 00000000..5390a6c3
--- /dev/null
+++ b/src/settings/plugins/ibft/tests/iscsiadm-test-bad-gateway
@@ -0,0 +1,21 @@
+#!/bin/bash
+
+cat << EOF
+# BEGIN RECORD
+iface.initiatorname = iqn.pjones6
+iface.hwaddress = 00:33:21:98:b9:f0
+iface.bootproto = STATIC
+iface.ipaddress = 192.168.32.72
+iface.subnet_mask = 255.255.252.0
+iface.gateway = bb.cc.dd.ee
+iface.primary_dns = 10.16.255.2
+iface.secondary_dns = 10.16.255.3
+iface.vlan_id = 0
+iface.net_ifacename = eth0
+node.name = iqn.0.2008-11.com.blahblah:iscsi0
+node.conn[0].address = 10.16.52.16
+node.conn[0].port = 3260
+node.boot_lun = 00000000
+# END RECORD
+EOF
+
diff --git a/src/settings/plugins/ibft/tests/iscsiadm-test-bad-ipaddr b/src/settings/plugins/ibft/tests/iscsiadm-test-bad-ipaddr
new file mode 100755
index 00000000..b41cd1f1
--- /dev/null
+++ b/src/settings/plugins/ibft/tests/iscsiadm-test-bad-ipaddr
@@ -0,0 +1,21 @@
+#!/bin/bash
+
+cat << EOF
+# BEGIN RECORD
+iface.initiatorname = iqn.pjones6
+iface.hwaddress = 00:33:21:98:b9:f0
+iface.bootproto = STATIC
+iface.ipaddress = aa.bb.cc.dd
+iface.subnet_mask = 255.255.252.0
+iface.gateway = 192.168.35.254
+iface.primary_dns = 10.16.255.2
+iface.secondary_dns = 10.16.255.3
+iface.vlan_id = 0
+iface.net_ifacename = eth0
+node.name = iqn.0.2008-11.com.blahblah:iscsi0
+node.conn[0].address = 10.16.52.16
+node.conn[0].port = 3260
+node.boot_lun = 00000000
+# END RECORD
+EOF
+
diff --git a/src/settings/plugins/ibft/tests/iscsiadm-test-bad-record b/src/settings/plugins/ibft/tests/iscsiadm-test-bad-record
new file mode 100755
index 00000000..22b34e6f
--- /dev/null
+++ b/src/settings/plugins/ibft/tests/iscsiadm-test-bad-record
@@ -0,0 +1,18 @@
+#!/bin/bash
+
+cat << EOF
+# BEGIN RECORD
+iface.initiatorname = iqn.pjones6
+iface.hwaddress = 00:33:21:98:b9:f0
+iface.bootproto = DHCP
+iface.gateway = 10.16.52.254
+iface.primary_dns = 10.16.255.2
+iface.secondary_dns = 10.16.255.3
+iface.vlan_id = 0
+iface.net_ifacename = eth0
+node.name = iqn.0.2008-11.com.blahblah:iscsi0
+node.conn[0].address = 10.16.52.16
+node.conn[0].port = 3260
+node.boot_lun = 00000000
+EOF
+
diff --git a/src/settings/plugins/ibft/tests/iscsiadm-test-dhcp b/src/settings/plugins/ibft/tests/iscsiadm-test-dhcp
new file mode 100755
index 00000000..556b0586
--- /dev/null
+++ b/src/settings/plugins/ibft/tests/iscsiadm-test-dhcp
@@ -0,0 +1,33 @@
+#!/bin/bash
+
+cat << EOF
+# BEGIN RECORD
+iface.initiatorname = iqn.pjones6
+iface.hwaddress = 00:33:21:98:b9:f0
+iface.bootproto = DHCP
+iface.gateway = 10.16.52.254
+iface.primary_dns = 10.16.255.2
+iface.secondary_dns = 10.16.255.3
+iface.vlan_id = 0
+iface.net_ifacename = eth0
+node.name = iqn.0.2008-11.com.blahblah:iscsi0
+node.conn[0].address = 10.16.52.16
+node.conn[0].port = 3260
+node.boot_lun = 00000000
+# END RECORD
+# BEGIN RECORD
+iface.initiatorname = iqn.pjones6
+iface.hwaddress = 00:33:21:98:b9:f1
+iface.bootproto = DHCP
+iface.gateway = 10.16.52.254
+iface.primary_dns = 10.16.255.2
+iface.secondary_dns = 10.16.255.3
+iface.vlan_id = 0
+iface.net_ifacename = eth1
+node.name = iqn.1.2008-11.com.blahblah:iscsi1
+node.conn[0].address = 10.16.52.16
+node.conn[0].port = 3260
+node.boot_lun = 00000000
+# END RECORD
+EOF
+
diff --git a/src/settings/plugins/ibft/tests/iscsiadm-test-static b/src/settings/plugins/ibft/tests/iscsiadm-test-static
new file mode 100755
index 00000000..51711480
--- /dev/null
+++ b/src/settings/plugins/ibft/tests/iscsiadm-test-static
@@ -0,0 +1,35 @@
+#!/bin/bash
+
+cat << EOF
+# BEGIN RECORD
+iface.initiatorname = iqn.pjones6
+iface.hwaddress = 00:33:21:98:b9:f0
+iface.bootproto = STATIC
+iface.ipaddress = 192.168.32.72
+iface.subnet_mask = 255.255.252.0
+iface.gateway = 192.168.35.254
+iface.primary_dns = 10.16.255.2
+iface.secondary_dns = 10.16.255.3
+iface.vlan_id = 0
+iface.net_ifacename = eth0
+node.name = iqn.0.2008-11.com.blahblah:iscsi0
+node.conn[0].address = 10.16.52.16
+node.conn[0].port = 3260
+node.boot_lun = 00000000
+# END RECORD
+# BEGIN RECORD
+iface.initiatorname = iqn.pjones6
+iface.hwaddress = 00:33:21:98:b9:f1
+iface.bootproto = DHCP
+iface.gateway = 10.16.52.254
+iface.primary_dns = 10.16.255.2
+iface.secondary_dns = 10.16.255.3
+iface.vlan_id = 0
+iface.net_ifacename = eth1
+node.name = iqn.1.2008-11.com.blahblah:iscsi1
+node.conn[0].address = 10.16.52.16
+node.conn[0].port = 3260
+node.boot_lun = 00000000
+# END RECORD
+EOF
+
diff --git a/src/settings/plugins/ibft/tests/iscsiadm-test-vlan b/src/settings/plugins/ibft/tests/iscsiadm-test-vlan
new file mode 100755
index 00000000..59b80bd0
--- /dev/null
+++ b/src/settings/plugins/ibft/tests/iscsiadm-test-vlan
@@ -0,0 +1,19 @@
+#!/bin/bash
+
+cat << EOF
+# BEGIN RECORD 6.2.0.873-21
+iface.initiatorname = iqn.2010-04.org.ipxe:d05faa97-c4be-44f6-a723-efde9aa399a0
+iface.transport_name = tcp
+iface.hwaddress = 00:33:21:98:b9:f0
+iface.bootproto = STATIC
+iface.ipaddress = 192.168.6.200
+iface.subnet_mask = 255.255.255.0
+iface.vlan_id = 123
+iface.net_ifacename = eth0
+node.name = iqn.2003-01.org.x:disk1
+node.conn[0].address = 192.168.6.32
+node.conn[0].port = 3260
+node.boot_lun = 01000000
+# END RECORD
+EOF
+
diff --git a/src/settings/plugins/ifcfg-rh/nms-ifcfg-rh-reader.c b/src/settings/plugins/ifcfg-rh/nms-ifcfg-rh-reader.c
index 09a37991..261dfea2 100644
--- a/src/settings/plugins/ifcfg-rh/nms-ifcfg-rh-reader.c
+++ b/src/settings/plugins/ifcfg-rh/nms-ifcfg-rh-reader.c
@@ -189,7 +189,7 @@ _secret_password_raw_to_bytes (const char *ifcfg_key,
 		password_raw += 2;
 
 	secret = nm_secret_buf_new (strlen (password_raw) / 2 + 3);
-	if (!_nm_utils_str2bin_full (password_raw, FALSE, ":", secret->bin, secret->len, &len)) {
+	if (!_nm_utils_hexstr2bin_full (password_raw, FALSE, FALSE, ":", 0, secret->bin, secret->len, &len)) {
 		g_set_error (error, NM_SETTINGS_ERROR, NM_SETTINGS_ERROR_INVALID_CONNECTION,
 		             "Invalid hex password in %s",
 		             ifcfg_key);
@@ -2226,20 +2226,19 @@ make_sriov_setting (shvarFile *ifcfg)
 {
 	gs_unref_hashtable GHashTable *keys = NULL;
 	gs_unref_ptrarray GPtrArray *vfs = NULL;
-	NMTernary autoprobe_drivers;
+	int autoprobe_drivers;
 	NMSettingSriov *s_sriov;
-	int total_vfs;
+	gint64 total_vfs;
 
-	total_vfs = svGetValueInt64 (ifcfg, "SRIOV_TOTAL_VFS", 10, 0, G_MAXINT32, 0);
-	if (!total_vfs)
-		return NULL;
+
+	total_vfs = svGetValueInt64 (ifcfg, "SRIOV_TOTAL_VFS", 10, 0, G_MAXUINT32, -1);
 
 	autoprobe_drivers = svGetValueInt64 (ifcfg,
 	                                     "SRIOV_AUTOPROBE_DRIVERS",
 	                                     10,
-	                                     NM_TERNARY_FALSE,
+	                                     NM_TERNARY_DEFAULT,
 	                                     NM_TERNARY_TRUE,
-	                                     NM_TERNARY_DEFAULT);
+	                                     -2);
 
 	keys = svGetKeys (ifcfg, SV_KEY_TYPE_SRIOV_VF);
 	if (keys) {
@@ -2261,7 +2260,7 @@ make_sriov_setting (shvarFile *ifcfg)
 
 			key += NM_STRLEN ("SRIOV_VF");
 
-			vf = _nm_utils_sriov_vf_from_strparts (key, value, &error);
+			vf = _nm_utils_sriov_vf_from_strparts (key, value, TRUE, &error);
 			if (!vf) {
 				PARSE_WARNING ("ignoring invalid SR-IOV VF '%s %s': %s",
 				               key, value, error->message);
@@ -2273,11 +2272,21 @@ make_sriov_setting (shvarFile *ifcfg)
 		}
 	}
 
+	/* Create the setting when at least one key is set */
+	if (   total_vfs < 0
+	    && !vfs
+	    && autoprobe_drivers < NM_TERNARY_DEFAULT)
+		return NULL;
+
 	s_sriov = (NMSettingSriov *) nm_setting_sriov_new ();
+
+	autoprobe_drivers = NM_MAX (autoprobe_drivers, NM_TERNARY_DEFAULT);
+	total_vfs = NM_MAX (total_vfs, 0);
+
 	g_object_set (s_sriov,
-	              NM_SETTING_SRIOV_TOTAL_VFS, total_vfs,
+	              NM_SETTING_SRIOV_TOTAL_VFS, (guint) total_vfs,
 	              NM_SETTING_SRIOV_VFS, vfs,
-	              NM_SETTING_SRIOV_AUTOPROBE_DRIVERS, (int) autoprobe_drivers,
+	              NM_SETTING_SRIOV_AUTOPROBE_DRIVERS, autoprobe_drivers,
 	              NULL);
 
 	return (NMSetting *) s_sriov;
diff --git a/src/settings/plugins/ifcfg-rh/nms-ifcfg-rh-writer.c b/src/settings/plugins/ifcfg-rh/nms-ifcfg-rh-writer.c
index b70690cc..f5be7520 100644
--- a/src/settings/plugins/ifcfg-rh/nms-ifcfg-rh-writer.c
+++ b/src/settings/plugins/ifcfg-rh/nms-ifcfg-rh-writer.c
@@ -2223,16 +2223,15 @@ write_sriov_setting (NMConnection *connection, shvarFile *ifcfg)
 
 	svUnsetAll (ifcfg, SV_KEY_TYPE_SRIOV_VF);
 
-	s_sriov = NM_SETTING_SRIOV (nm_connection_get_setting (connection, NM_TYPE_SETTING_SRIOV));
-	if (s_sriov)
-		num = nm_setting_sriov_get_total_vfs (s_sriov);
-	if (num == 0) {
+	s_sriov = NM_SETTING_SRIOV (nm_connection_get_setting (connection,
+	                                                       NM_TYPE_SETTING_SRIOV));
+	if (!s_sriov) {
 		svUnsetValue (ifcfg, "SRIOV_TOTAL_VFS");
 		svUnsetValue (ifcfg, "SRIOV_AUTOPROBE_DRIVERS");
 		return;
 	}
 
-	svSetValueInt64 (ifcfg, "SRIOV_TOTAL_VFS", num);
+	svSetValueInt64 (ifcfg, "SRIOV_TOTAL_VFS", nm_setting_sriov_get_total_vfs (s_sriov));
 
 	b = nm_setting_sriov_get_autoprobe_drivers (s_sriov);
 	if (b != NM_TERNARY_DEFAULT)
diff --git a/src/settings/plugins/ifupdown/nms-ifupdown-plugin.c b/src/settings/plugins/ifupdown/nms-ifupdown-plugin.c
index b66eedc7..f0e64d1d 100644
--- a/src/settings/plugins/ifupdown/nms-ifupdown-plugin.c
+++ b/src/settings/plugins/ifupdown/nms-ifupdown-plugin.c
@@ -282,8 +282,10 @@ initialize (NMSettingsPlugin *plugin)
 
 		g_hash_table_iter_init (&iter, priv->eni_ifaces);
 		while (g_hash_table_iter_next (&iter, NULL, (gpointer *) conn)) {
-			_nm_settings_plugin_emit_signal_connection_added (NM_SETTINGS_PLUGIN (self),
-			                                                  NM_SETTINGS_CONNECTION (conn));
+			if (conn) {
+				_nm_settings_plugin_emit_signal_connection_added (NM_SETTINGS_PLUGIN (self),
+				                                                  NM_SETTINGS_CONNECTION (conn));
+			}
 		}
 	}
 }
diff --git a/src/supplicant/nm-supplicant-config.c b/src/supplicant/nm-supplicant-config.c
index 043b5550..cfb33008 100644
--- a/src/supplicant/nm-supplicant-config.c
+++ b/src/supplicant/nm-supplicant-config.c
@@ -648,31 +648,28 @@ add_string_val (NMSupplicantConfig *self,
 
 static void
 wep128_passphrase_hash (const char *input,
-                        size_t input_len,
-                        guint8 *out_digest,
-                        size_t *out_digest_len)
+                        gsize input_len,
+                        guint8 *digest /* 13 bytes */)
 {
-	GChecksum *sum;
+	nm_auto_free_checksum GChecksum *sum = NULL;
+	guint8 md5[NM_UTILS_CHECKSUM_LENGTH_MD5];
 	guint8 data[64];
 	int i;
 
-	g_return_if_fail (out_digest != NULL);
-	g_return_if_fail (out_digest_len != NULL);
-	g_return_if_fail (*out_digest_len >= 16);
+	nm_assert (input);
+	nm_assert (input_len);
+	nm_assert (digest);
 
 	/* Get at least 64 bytes by repeating the passphrase into the buffer */
 	for (i = 0; i < sizeof (data); i++)
 		data[i] = input[i % input_len];
 
 	sum = g_checksum_new (G_CHECKSUM_MD5);
-	g_assert (sum);
 	g_checksum_update (sum, data, sizeof (data));
-	g_checksum_get_digest (sum, out_digest, out_digest_len);
-	g_checksum_free (sum);
+	nm_utils_checksum_get_digest (sum, md5);
 
-	g_assert (*out_digest_len == 16);
 	/* WEP104 keys are 13 bytes in length (26 hex characters) */
-	*out_digest_len = 13;
+	memcpy (digest, md5, 13);
 }
 
 static gboolean
@@ -682,9 +679,10 @@ add_wep_key (NMSupplicantConfig *self,
              NMWepKeyType wep_type,
              GError **error)
 {
-	size_t key_len = key ? strlen (key) : 0;
+	gsize key_len;
 
-	if (!key || !key_len)
+	if (   !key
+	    || (key_len = strlen (key)) == 0)
 		return TRUE;
 
 	if (wep_type == NM_WEP_KEY_TYPE_UNKNOWN) {
@@ -723,11 +721,10 @@ add_wep_key (NMSupplicantConfig *self,
 			return FALSE;
 		}
 	} else if (wep_type == NM_WEP_KEY_TYPE_PASSPHRASE) {
-		guint8 digest[16];
-		size_t digest_len = sizeof (digest);
+		guint8 digest[13];
 
-		wep128_passphrase_hash (key, key_len, digest, &digest_len);
-		if (!nm_supplicant_config_add_option (self, name, (const char *) digest, digest_len, "<hidden>", error))
+		wep128_passphrase_hash (key, key_len, digest);
+		if (!nm_supplicant_config_add_option (self, name, (const char *) digest, sizeof (digest), "<hidden>", error))
 			return FALSE;
 	}
 
@@ -747,6 +744,7 @@ nm_supplicant_config_add_setting_wireless_security (NMSupplicantConfig *self,
 	NMSupplicantConfigPrivate *priv = NM_SUPPLICANT_CONFIG_GET_PRIVATE (self);
 	const char *key_mgmt, *key_mgmt_conf, *auth_alg;
 	const char *psk;
+	gboolean set_pmf;
 
 	g_return_val_if_fail (NM_IS_SUPPLICANT_CONFIG (self), FALSE);
 	g_return_val_if_fail (setting != NULL, FALSE);
@@ -834,13 +832,14 @@ nm_supplicant_config_add_setting_wireless_security (NMSupplicantConfig *self,
 		pmf = NM_SETTING_WIRELESS_SECURITY_PMF_DISABLE;
 
 	/* Check if we actually support PMF */
+	set_pmf = TRUE;
 	if (!priv->support_pmf) {
 		if (pmf == NM_SETTING_WIRELESS_SECURITY_PMF_REQUIRED) {
 			g_set_error_literal (error, NM_SUPPLICANT_ERROR, NM_SUPPLICANT_ERROR_CONFIG,
 			                     "Supplicant does not support PMF");
 			return FALSE;
-		} else if (pmf == NM_SETTING_WIRELESS_SECURITY_PMF_OPTIONAL)
-			pmf = NM_SETTING_WIRELESS_SECURITY_PMF_DISABLE;
+		}
+		set_pmf = FALSE;
 	}
 
 	/* Only WPA-specific things when using WPA */
@@ -854,13 +853,14 @@ nm_supplicant_config_add_setting_wireless_security (NMSupplicantConfig *self,
 		if (!ADD_STRING_LIST_VAL (self, setting, wireless_security, group, groups, "group", ' ', TRUE, NULL, error))
 			return FALSE;
 
-		if (   !nm_streq (key_mgmt, "wpa-none")
+		if (   set_pmf
+		    && !nm_streq (key_mgmt, "wpa-none")
 		    && NM_IN_SET (pmf,
-		                  NM_SETTING_WIRELESS_SECURITY_PMF_OPTIONAL,
+		                  NM_SETTING_WIRELESS_SECURITY_PMF_DISABLE,
 		                  NM_SETTING_WIRELESS_SECURITY_PMF_REQUIRED)) {
 			if (!nm_supplicant_config_add_option (self,
 			                                      "ieee80211w",
-			                                      pmf == NM_SETTING_WIRELESS_SECURITY_PMF_OPTIONAL ? "1" : "2",
+			                                      pmf == NM_SETTING_WIRELESS_SECURITY_PMF_DISABLE ? "0" : "2",
 			                                      -1,
 			                                      NULL,
 			                                      error))
diff --git a/src/supplicant/nm-supplicant-interface.c b/src/supplicant/nm-supplicant-interface.c
index 5237acb2..0af9ebdb 100644
--- a/src/supplicant/nm-supplicant-interface.c
+++ b/src/supplicant/nm-supplicant-interface.c
@@ -555,6 +555,26 @@ iface_check_netreply_cb (GDBusProxy *proxy, GAsyncResult *result, gpointer user_
 	iface_check_ready (self);
 }
 
+static void
+iface_set_pmf_cb (GDBusProxy *proxy, GAsyncResult *result, gpointer user_data)
+{
+	NMSupplicantInterface *self;
+	gs_unref_variant GVariant *variant = NULL;
+	gs_free_error GError *error = NULL;
+
+	variant = g_dbus_proxy_call_finish (proxy, result, &error);
+	if (g_error_matches (error, G_IO_ERROR, G_IO_ERROR_CANCELLED))
+		return;
+
+	self = NM_SUPPLICANT_INTERFACE (user_data);
+
+	/* This can fail if the supplicant doesn't support PMF */
+	if (error)
+		_LOGD ("failed to set Pmf=1: %s", error->message);
+
+	iface_check_ready (self);
+}
+
 NMSupplicantFeature
 nm_supplicant_interface_get_ap_support (NMSupplicantInterface *self)
 {
@@ -1155,9 +1175,23 @@ on_iface_proxy_acquired (GDBusProxy *proxy, GAsyncResult *result, gpointer user_
 	                   NULL,
 	                   NULL);
 
-	/* Check whether NetworkReply and AP mode are supported */
+	/* Initialize global PMF setting to 'optional' */
 	priv->ready_count = 1;
 	g_dbus_proxy_call (priv->iface_proxy,
+	                   DBUS_INTERFACE_PROPERTIES ".Set",
+	                   g_variant_new ("(ssv)",
+	                                  WPAS_DBUS_IFACE_INTERFACE,
+	                                  "Pmf",
+	                                  g_variant_new_string ("1")),
+	                   G_DBUS_CALL_FLAGS_NONE,
+	                   -1,
+	                   priv->init_cancellable,
+	                   (GAsyncReadyCallback) iface_set_pmf_cb,
+	                   self);
+
+	/* Check whether NetworkReply and AP mode are supported */
+	priv->ready_count++;
+	g_dbus_proxy_call (priv->iface_proxy,
 	                   "NetworkReply",
 	                   g_variant_new ("(oss)",
 	                                  "/fff",
diff --git a/src/supplicant/tests/test-supplicant-config.c b/src/supplicant/tests/test-supplicant-config.c
index 36831e67..d7ec1fe2 100644
--- a/src/supplicant/tests/test-supplicant-config.c
+++ b/src/supplicant/tests/test-supplicant-config.c
@@ -359,8 +359,8 @@ test_wifi_wpa_psk (const char *detail,
 	NMTST_EXPECT_NM_INFO ("Config: added 'pairwise' value 'TKIP CCMP'");
 	NMTST_EXPECT_NM_INFO ("Config: added 'group' value 'TKIP CCMP'");
 	switch (pmf) {
-	case NM_SETTING_WIRELESS_SECURITY_PMF_OPTIONAL:
-		NMTST_EXPECT_NM_INFO ("Config: added 'ieee80211w' value '1'");
+	case NM_SETTING_WIRELESS_SECURITY_PMF_DISABLE:
+		NMTST_EXPECT_NM_INFO ("Config: added 'ieee80211w' value '0'");
 		break;
 	case NM_SETTING_WIRELESS_SECURITY_PMF_REQUIRED:
 		NMTST_EXPECT_NM_INFO ("Config: added 'ieee80211w' value '2'");
diff --git a/src/systemd/meson.build b/src/systemd/meson.build
index 870721b0..1bf1ea41 100644
--- a/src/systemd/meson.build
+++ b/src/systemd/meson.build
@@ -49,7 +49,8 @@ sources = files(
   'src/libsystemd/sd-id128/id128-util.c',
   'src/libsystemd/sd-id128/sd-id128.c',
   'src/shared/dns-domain.c',
-  'nm-sd.c'
+  'nm-sd.c',
+  'nm-sd-utils.c',
 )
 
 incs = [
diff --git a/src/systemd/nm-sd-utils.c b/src/systemd/nm-sd-utils.c
new file mode 100644
index 00000000..c6c4c123
--- /dev/null
+++ b/src/systemd/nm-sd-utils.c
@@ -0,0 +1,61 @@
+/* This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301 USA.
+ *
+ * Copyright (C) 2018 Red Hat, Inc.
+ */
+
+#include "nm-default.h"
+
+#include "nm-sd-utils.h"
+
+#include "nm-core-internal.h"
+
+#include "nm-sd-adapt.h"
+
+#include "path-util.h"
+#include "sd-id128.h"
+
+/*****************************************************************************/
+
+gboolean
+nm_sd_utils_path_equal (const char *a, const char *b)
+{
+	return path_equal (a, b);
+}
+
+char *
+nm_sd_utils_path_simplify (char *path, gboolean kill_dots)
+{
+	return path_simplify (path, kill_dots);
+}
+
+const char *
+nm_sd_utils_path_startswith (const char *path, const char *prefix)
+{
+	return path_startswith (path, prefix);
+}
+
+/*****************************************************************************/
+
+NMUuid *
+nm_sd_utils_id128_get_machine (NMUuid *out_uuid)
+{
+	g_assert (out_uuid);
+
+	G_STATIC_ASSERT_EXPR (sizeof (*out_uuid) == sizeof (sd_id128_t));
+	if (sd_id128_get_machine ((sd_id128_t *) out_uuid) < 0)
+		return NULL;
+	return out_uuid;
+}
diff --git a/src/systemd/nm-sd-utils.h b/src/systemd/nm-sd-utils.h
new file mode 100644
index 00000000..0af514eb
--- /dev/null
+++ b/src/systemd/nm-sd-utils.h
@@ -0,0 +1,38 @@
+/* This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301 USA.
+ *
+ * Copyright (C) 2018 Red Hat, Inc.
+ */
+
+#ifndef __NM_SD_UTILS_H__
+#define __NM_SD_UTILS_H__
+
+/*****************************************************************************/
+
+gboolean nm_sd_utils_path_equal (const char *a, const char *b);
+
+char *nm_sd_utils_path_simplify (char *path, gboolean kill_dots);
+
+const char *nm_sd_utils_path_startswith (const char *path, const char *prefix);
+
+/*****************************************************************************/
+
+struct _NMUuid;
+
+struct _NMUuid *nm_sd_utils_id128_get_machine (struct _NMUuid *out_uuid);
+
+/*****************************************************************************/
+
+#endif /* __NM_SD_UTILS_H__ */
diff --git a/src/systemd/src/basic/path-util.c b/src/systemd/src/basic/path-util.c
index 5202eae3..3656a011 100644
--- a/src/systemd/src/basic/path-util.c
+++ b/src/systemd/src/basic/path-util.c
@@ -380,7 +380,6 @@ char *path_simplify(char *path, bool kill_dots) {
         return path;
 }
 
-#if 0 /* NM_IGNORED */
 char* path_startswith(const char *path, const char *prefix) {
         assert(path);
         assert(prefix);
@@ -423,7 +422,6 @@ char* path_startswith(const char *path, const char *prefix) {
                 prefix += b;
         }
 }
-#endif /* NM_IGNORED */
 
 int path_compare(const char *a, const char *b) {
         int d;
diff --git a/src/systemd/src/libsystemd-network/dhcp-identifier.c b/src/systemd/src/libsystemd-network/dhcp-identifier.c
index f18713e8..b1afbf00 100644
--- a/src/systemd/src/libsystemd-network/dhcp-identifier.c
+++ b/src/systemd/src/libsystemd-network/dhcp-identifier.c
@@ -25,13 +25,19 @@
 #define APPLICATION_ID SD_ID128_MAKE(a5,0a,d1,12,bf,60,45,77,a2,fb,74,1a,b1,95,5b,03)
 #define USEC_2000       ((usec_t) 946684800000000) /* 2000-01-01 00:00:00 UTC */
 
-int dhcp_validate_duid_len(uint16_t duid_type, size_t duid_len) {
+int dhcp_validate_duid_len(uint16_t duid_type, size_t duid_len, bool strict) {
         struct duid d;
 
         assert_cc(sizeof(d.raw) >= MAX_DUID_LEN);
         if (duid_len > MAX_DUID_LEN)
                 return -EINVAL;
 
+        if (!strict) {
+                /* Strict validation is not requested. We only ensure that the
+                 * DUID is not too long. */
+                return 0;
+        }
+
         switch (duid_type) {
         case DUID_TYPE_LLT:
                 if (duid_len <= sizeof(d.llt))
diff --git a/src/systemd/src/libsystemd-network/dhcp-identifier.h b/src/systemd/src/libsystemd-network/dhcp-identifier.h
index 64315d3a..e6834039 100644
--- a/src/systemd/src/libsystemd-network/dhcp-identifier.h
+++ b/src/systemd/src/libsystemd-network/dhcp-identifier.h
@@ -52,7 +52,7 @@ struct duid {
         };
 } _packed_;
 
-int dhcp_validate_duid_len(uint16_t duid_type, size_t duid_len);
+int dhcp_validate_duid_len(uint16_t duid_type, size_t duid_len, bool strict);
 int dhcp_identifier_set_duid_llt(struct duid *duid, usec_t t, const uint8_t *addr, size_t addr_len, uint16_t arp_type, size_t *len);
 int dhcp_identifier_set_duid_ll(struct duid *duid, const uint8_t *addr, size_t addr_len, uint16_t arp_type, size_t *len);
 int dhcp_identifier_set_duid_en(struct duid *duid, size_t *len);
diff --git a/src/systemd/src/libsystemd-network/dhcp6-option.c b/src/systemd/src/libsystemd-network/dhcp6-option.c
index ff1cbf13..22970443 100644
--- a/src/systemd/src/libsystemd-network/dhcp6-option.c
+++ b/src/systemd/src/libsystemd-network/dhcp6-option.c
@@ -105,7 +105,7 @@ int dhcp6_option_append_ia(uint8_t **buf, size_t *buflen, DHCP6IA *ia) {
                 return -EINVAL;
         }
 
-        if (*buflen < len)
+        if (*buflen < offsetof(DHCP6Option, data) + len)
                 return -ENOBUFS;
 
         ia_hdr = *buf;
@@ -465,13 +465,15 @@ int dhcp6_option_parse_ia(DHCP6Option *iaoption, DHCP6IA *ia) {
 
                 case SD_DHCP6_OPTION_STATUS_CODE:
 
-                        status = dhcp6_option_parse_status(option, optlen);
-                        if (status) {
+                        status = dhcp6_option_parse_status(option, optlen + sizeof(DHCP6Option));
+                        if (status < 0) {
+                                r = status;
+                                goto error;
+                        }
+                        if (status > 0) {
                                 log_dhcp6_client(client, "IA status %d",
                                                  status);
 
-                                dhcp6_lease_free_ia(ia);
-
                                 r = -EINVAL;
                                 goto error;
                         }
@@ -553,6 +555,7 @@ int dhcp6_option_parse_domainname(const uint8_t *optval, uint16_t optlen, char *
                 bool first = true;
 
                 for (;;) {
+                        const char *label;
                         uint8_t c;
 
                         c = optval[pos++];
@@ -560,47 +563,41 @@ int dhcp6_option_parse_domainname(const uint8_t *optval, uint16_t optlen, char *
                         if (c == 0)
                                 /* End of name */
                                 break;
-                        else if (c <= 63) {
-                                const char *label;
-
-                                /* Literal label */
-                                label = (const char *)&optval[pos];
-                                pos += c;
-                                if (pos >= optlen)
-                                        return -EMSGSIZE;
-
-                                if (!GREEDY_REALLOC(ret, allocated, n + !first + DNS_LABEL_ESCAPED_MAX)) {
-                                        r = -ENOMEM;
-                                        goto fail;
-                                }
-
-                                if (first)
-                                        first = false;
-                                else
-                                        ret[n++] = '.';
-
-                                r = dns_label_escape(label, c, ret + n, DNS_LABEL_ESCAPED_MAX);
-                                if (r < 0)
-                                        goto fail;
-
-                                n += r;
-                                continue;
-                        } else {
-                                r = -EBADMSG;
-                                goto fail;
-                        }
-                }
+                        if (c > 63)
+                                return -EBADMSG;
+
+                        /* Literal label */
+                        label = (const char *)&optval[pos];
+                        pos += c;
+                        if (pos >= optlen)
+                                return -EMSGSIZE;
+
+                        if (!GREEDY_REALLOC(ret, allocated, n + !first + DNS_LABEL_ESCAPED_MAX))
+                                return -ENOMEM;
+
+                        if (first)
+                                first = false;
+                        else
+                                ret[n++] = '.';
 
-                if (!GREEDY_REALLOC(ret, allocated, n + 1)) {
-                        r = -ENOMEM;
-                        goto fail;
+                        r = dns_label_escape(label, c, ret + n, DNS_LABEL_ESCAPED_MAX);
+                        if (r < 0)
+                                return r;
+
+                        n += r;
                 }
 
+                if (n == 0)
+                        continue;
+
+                if (!GREEDY_REALLOC(ret, allocated, n + 1))
+                        return -ENOMEM;
+
                 ret[n] = 0;
 
                 r = strv_extend(&names, ret);
                 if (r < 0)
-                        goto fail;
+                        return r;
 
                 idx++;
         }
@@ -608,7 +605,4 @@ int dhcp6_option_parse_domainname(const uint8_t *optval, uint16_t optlen, char *
         *str_arr = TAKE_PTR(names);
 
         return idx;
-
-fail:
-        return r;
 }
diff --git a/src/systemd/src/libsystemd-network/sd-dhcp-client.c b/src/systemd/src/libsystemd-network/sd-dhcp-client.c
index 42707f10..0c385a84 100644
--- a/src/systemd/src/libsystemd-network/sd-dhcp-client.c
+++ b/src/systemd/src/libsystemd-network/sd-dhcp-client.c
@@ -301,27 +301,22 @@ int sd_dhcp_client_set_client_id(
         assert_return(data_len > 0 && data_len <= MAX_CLIENT_ID_LEN, -EINVAL);
         G_STATIC_ASSERT_EXPR (_NM_SD_MAX_CLIENT_ID_LEN == MAX_CLIENT_ID_LEN);
 
-        switch (type) {
-
-        case ARPHRD_ETHER:
-                if (data_len != ETH_ALEN)
-                        return -EINVAL;
-                break;
-
-        case ARPHRD_INFINIBAND:
-                if (data_len != INFINIBAND_ALEN)
-                        return -EINVAL;
-                break;
-
-        default:
-                break;
-        }
-
         if (client->client_id_len == data_len + sizeof(client->client_id.type) &&
             client->client_id.type == type &&
             memcmp(&client->client_id.raw.data, data, data_len) == 0)
                 return 0;
 
+        /* For hardware types, log debug message about unexpected data length.
+         *
+         * Note that infiniband's INFINIBAND_ALEN is 20 bytes long, but only
+         * last last 8 bytes of the address are stable and suitable to put into
+         * the client-id. The caller is advised to account for that. */
+        if ((type == ARPHRD_ETHER && data_len != ETH_ALEN) ||
+            (type == ARPHRD_INFINIBAND && data_len != 8))
+                log_dhcp_client(client, "Changing client ID to hardware type %u with "
+                                "unexpected address length %zu",
+                                type, data_len);
+
         if (!IN_SET(client->state, DHCP_STATE_INIT, DHCP_STATE_STOPPED)) {
                 log_dhcp_client(client, "Changing client ID on running DHCP "
                                 "client, restarting");
@@ -362,7 +357,7 @@ static int dhcp_client_set_iaid_duid_internal(
         assert_return(duid_len == 0 || duid != NULL, -EINVAL);
 
         if (duid != NULL) {
-                r = dhcp_validate_duid_len(duid_type, duid_len);
+                r = dhcp_validate_duid_len(duid_type, duid_len, true);
                 if (r < 0)
                         return r;
         }
@@ -1688,6 +1683,8 @@ static int client_handle_message(sd_dhcp_client *client, DHCPMessage *message, i
                         client->timeout_resend =
                                 sd_event_source_unref(client->timeout_resend);
 
+                        client_notify(client, SD_DHCP_CLIENT_EVENT_EXPIRED);
+
                         r = client_initialize(client);
                         if (r < 0)
                                 goto error;
diff --git a/src/systemd/src/libsystemd-network/sd-dhcp-lease.c b/src/systemd/src/libsystemd-network/sd-dhcp-lease.c
index d2402595..cac07d3e 100644
--- a/src/systemd/src/libsystemd-network/sd-dhcp-lease.c
+++ b/src/systemd/src/libsystemd-network/sd-dhcp-lease.c
@@ -279,6 +279,8 @@ sd_dhcp_lease *sd_dhcp_lease_unref(sd_dhcp_lease *lease) {
                 free(option);
         }
 
+        free(lease->root_path);
+        free(lease->timezone);
         free(lease->hostname);
         free(lease->domainname);
         free(lease->dns);
diff --git a/src/systemd/src/libsystemd-network/sd-dhcp6-client.c b/src/systemd/src/libsystemd-network/sd-dhcp6-client.c
index 8444a750..f0cd2f97 100644
--- a/src/systemd/src/libsystemd-network/sd-dhcp6-client.c
+++ b/src/systemd/src/libsystemd-network/sd-dhcp6-client.c
@@ -197,9 +197,13 @@ static int dhcp6_client_set_duid_internal(
         assert_return(IN_SET(client->state, DHCP6_STATE_STOPPED), -EBUSY);
 
         if (duid != NULL) {
-                r = dhcp_validate_duid_len(duid_type, duid_len);
-                if (r < 0)
-                        return r;
+                r = dhcp_validate_duid_len(duid_type, duid_len, true);
+                if (r < 0) {
+                        r = dhcp_validate_duid_len(duid_type, duid_len, false);
+                        if (r < 0)
+                                return r;
+                        log_dhcp6_client(client, "Setting DUID of type %u with unexpected content", duid_type);
+                }
 
                 client->duid.type = htobe16(duid_type);
                 memcpy(&client->duid.raw.data, duid, duid_len);
@@ -818,8 +822,8 @@ static int client_parse_message(
                 uint8_t *optval;
                 be32_t iaid_lease;
 
-                if (len < offsetof(DHCP6Option, data) ||
-                    len < offsetof(DHCP6Option, data) + be16toh(option->len))
+                if (len < pos + offsetof(DHCP6Option, data) ||
+                    len < pos + offsetof(DHCP6Option, data) + be16toh(option->len))
                         return -ENOBUFS;
 
                 optcode = be16toh(option->code);
@@ -870,13 +874,14 @@ static int client_parse_message(
                         break;
 
                 case SD_DHCP6_OPTION_STATUS_CODE:
-                        status = dhcp6_option_parse_status(option, optlen);
-                        if (status) {
+                        status = dhcp6_option_parse_status(option, optlen + sizeof(DHCP6Option));
+                        if (status < 0)
+                                return status;
+
+                        if (status > 0) {
                                 log_dhcp6_client(client, "%s Status %s",
                                                  dhcp6_message_type_to_string(message->type),
                                                  dhcp6_message_status_to_string(status));
-                                dhcp6_lease_free_ia(&lease->ia);
-                                dhcp6_lease_free_ia(&lease->pd);
 
                                 return -EINVAL;
                         }
@@ -1274,6 +1279,7 @@ static int client_start(sd_dhcp6_client *client, enum DHCP6State state) {
                 log_dhcp6_client(client, "T1 expires in %s",
                                  format_timespan(time_string, FORMAT_TIMESPAN_MAX, timeout, USEC_PER_SEC));
 
+                client->lease->ia.timeout_t1 = sd_event_source_unref(client->lease->ia.timeout_t1);
                 r = sd_event_add_time(client->event,
                                       &client->lease->ia.timeout_t1,
                                       clock_boottime_or_monotonic(), time_now + timeout,
@@ -1296,6 +1302,7 @@ static int client_start(sd_dhcp6_client *client, enum DHCP6State state) {
                 log_dhcp6_client(client, "T2 expires in %s",
                                  format_timespan(time_string, FORMAT_TIMESPAN_MAX, timeout, USEC_PER_SEC));
 
+                client->lease->ia.timeout_t2 = sd_event_source_unref(client->lease->ia.timeout_t2);
                 r = sd_event_add_time(client->event,
                                       &client->lease->ia.timeout_t2,
                                       clock_boottime_or_monotonic(), time_now + timeout,
diff --git a/src/tests/config/test-config.c b/src/tests/config/test-config.c
index 75fef4fa..20a05df1 100644
--- a/src/tests/config/test-config.c
+++ b/src/tests/config/test-config.c
@@ -25,6 +25,7 @@
 #include "nm-config.h"
 #include "nm-test-device.h"
 #include "platform/nm-fake-platform.h"
+#include "dhcp/nm-dhcp-manager.h"
 #include "nm-dbus-manager.h"
 #include "nm-connectivity.h"
 
@@ -123,6 +124,24 @@ setup_config (GError **error, const char *config_file, const char *intern_config
 		g_assert_no_error (local_error);
 	}
 	nm_config_cmd_line_options_free (cli);
+
+	if (config) {
+		NMDhcpManager *dhcp_manager;
+		gpointer logging_old_state;
+
+		logging_old_state = nmtst_logging_disable (FALSE);
+
+		dhcp_manager = nm_dhcp_manager_get ();
+		g_test_assert_expected_messages ();
+
+		nmtst_logging_reenable (logging_old_state);
+
+		g_object_set_data_full (G_OBJECT (config),
+		                        "nmtst-config-keep-dhcp-manager-alive",
+		                        dhcp_manager,
+		                        nmtst_dhcp_manager_unget);
+	}
+
 	return config;
 }
 
diff --git a/src/tests/test-general.c b/src/tests/test-general.c
index 1e7329d1..9dce9435 100644
--- a/src/tests/test-general.c
+++ b/src/tests/test-general.c
@@ -22,12 +22,19 @@
 
 #include <string.h>
 #include <errno.h>
+#include <net/if.h>
+#include <byteswap.h>
 
 /* need math.h for isinf() and INFINITY. No need to link with -lm */
 #include <math.h>
 
 #include "NetworkManagerUtils.h"
 #include "nm-core-internal.h"
+#include "nm-core-utils.h"
+#include "systemd/nm-sd-utils.h"
+
+#include "dns/nm-dns-manager.h"
+#include "nm-connectivity.h"
 
 #include "nm-test-utils-core.h"
 
@@ -1093,7 +1100,7 @@ static NMMatchSpecMatchType
 _test_match_spec_device (const GSList *specs, const char *match_str)
 {
 	if (match_str && g_str_has_prefix (match_str, MATCH_S390))
-		return nm_match_spec_device (specs, NULL, NULL, NULL, NULL, NULL, &match_str[NM_STRLEN (MATCH_S390)]);
+		return nm_match_spec_device (specs, NULL, NULL, NULL, NULL, NULL, &match_str[NM_STRLEN (MATCH_S390)], NULL);
 	if (match_str && g_str_has_prefix (match_str, MATCH_DRIVER)) {
 		gs_free char *s = g_strdup (&match_str[NM_STRLEN (MATCH_DRIVER)]);
 		char *t;
@@ -1103,9 +1110,9 @@ _test_match_spec_device (const GSList *specs, const char *match_str)
 			t[0] = '\0';
 			t++;
 		}
-		return nm_match_spec_device (specs, NULL, NULL, s, t, NULL, NULL);
+		return nm_match_spec_device (specs, NULL, NULL, s, t, NULL, NULL, NULL);
 	}
-	return nm_match_spec_device (specs, match_str, NULL, NULL, NULL, NULL, NULL);
+	return nm_match_spec_device (specs, match_str, NULL, NULL, NULL, NULL, NULL, NULL);
 }
 
 static void
@@ -1226,6 +1233,10 @@ test_match_spec_device (void)
 	                            S ("em", "em\\", "em\\*", "em\\1", "em\\11", "em\\2", "em1", "em11", "em2", "em3"),
 	                            NULL,
 	                            S ("em*"));
+	_do_test_match_spec_device ("except:interface-name:em*",
+	                            S ("", "eth", "eth1", "e1"),
+	                            S (NULL),
+	                            S ("em", "em\\", "em\\*", "em\\1", "em\\11", "em\\2", "em1", "em11", "em2", "em3"));
 	_do_test_match_spec_device ("aa,bb,cc\\,dd,e,,",
 	                            S ("aa", "bb", "cc,dd", "e"),
 	                            NULL,
@@ -1298,7 +1309,8 @@ _do_test_match_spec_config (const char *file, int line, const char *spec_str, gu
 	if (expected != match_result)
 		g_error ("%s:%d: faild comparing \"%s\" with %u.%u.%u. Expected %d, but got %d", file, line, spec_str, v_maj, v_min, v_mic, (int) expected, (int) match_result);
 
-	if (g_slist_length (specs) == 1 && match_result != NM_MATCH_SPEC_NEG_MATCH) {
+	if (   g_slist_length (specs) == 1
+	    && !g_str_has_prefix (specs->data, "except:")) {
 		/* there is only one spec in the list... test that we match except: */
 		char *sss = g_strdup_printf ("except:%s", (char *) specs->data);
 		GSList *specs2 = g_slist_append (NULL, sss);
@@ -1306,7 +1318,7 @@ _do_test_match_spec_config (const char *file, int line, const char *spec_str, gu
 
 		match_result2 = nm_match_spec_config (specs2, version, NULL);
 		if (match_result == NM_MATCH_SPEC_NO_MATCH)
-			g_assert_cmpint (match_result2, ==, NM_MATCH_SPEC_NO_MATCH);
+			g_assert_cmpint (match_result2, ==, NM_MATCH_SPEC_MATCH);
 		else
 			g_assert_cmpint (match_result2, ==, NM_MATCH_SPEC_NEG_MATCH);
 
@@ -1390,7 +1402,7 @@ test_match_spec_config (void)
 	do_test_match_spec_config ("nm-version-max:1", 1, 4, 30, NM_MATCH_SPEC_MATCH);
 	do_test_match_spec_config ("nm-version-max:1", 2, 4, 30, NM_MATCH_SPEC_NO_MATCH);
 
-	do_test_match_spec_config ("except:nm-version:1.4.8", 1, 6, 0, NM_MATCH_SPEC_NO_MATCH);
+	do_test_match_spec_config ("except:nm-version:1.4.8", 1, 6, 0, NM_MATCH_SPEC_MATCH);
 	do_test_match_spec_config ("nm-version-min:1.6,except:nm-version:1.4.8", 1, 6, 0, NM_MATCH_SPEC_MATCH);
 
 	do_test_match_spec_config ("nm-version-min:1.6,nm-version-min:1.4.6,nm-version-min:1.2.16,except:nm-version:1.4.8", 1, 2, 0, NM_MATCH_SPEC_NO_MATCH);
@@ -1733,7 +1745,7 @@ do_test_stable_id_parse (const char *stable_id,
 	else
 		g_assert (stable_id);
 
-	stable_type = nm_utils_stable_id_parse (stable_id, "_DEVICE", "_BOOT", "_CONNECTION", &generated);
+	stable_type = nm_utils_stable_id_parse (stable_id, "_DEVICE", "_MAC", "_BOOT", "_CONNECTION", &generated);
 
 	g_assert_cmpint (expected_stable_type, ==, stable_type);
 
@@ -1772,6 +1784,7 @@ test_stable_id_parse (void)
 	_parse_generated ("x${BOOT}", "x${BOOT}=5{_BOOT}");
 	_parse_generated ("x${BOOT}${CONNECTION}", "x${BOOT}=5{_BOOT}${CONNECTION}=11{_CONNECTION}");
 	_parse_generated ("xX${BOOT}yY${CONNECTION}zZ", "xX${BOOT}=5{_BOOT}yY${CONNECTION}=11{_CONNECTION}zZ");
+	_parse_generated ("${MAC}x", "${MAC}=4{_MAC}x");
 	_parse_random ("${RANDOM}");
 	_parse_random (" ${RANDOM}");
 	_parse_random ("${BOOT}${RANDOM}");
@@ -1845,6 +1858,223 @@ test_nm_utils_exp10 (void)
 
 /*****************************************************************************/
 
+#define _TEST_RC(searches, nameservers, options, expected) \
+	G_STMT_START { \
+		const char *const*const _searches = (searches); \
+		const char *const*const _nameservers = (nameservers); \
+		const char *const*const _options = (options); \
+		gs_free char *_content = NULL; \
+		\
+		_content = nmtst_dns_create_resolv_conf (_searches, _nameservers, _options); \
+		g_assert_cmpstr (_content, ==, expected); \
+	} G_STMT_END
+
+static void
+test_dns_create_resolv_conf (void)
+{
+	_TEST_RC (NM_MAKE_STRV ("a"),
+	          NULL,
+	          NULL,
+	          "# Generated by NetworkManager\n"
+	          "search a\n"
+	          "");
+
+	_TEST_RC (NM_MAKE_STRV ("a", "b.com"),
+	          NM_MAKE_STRV ("192.168.55.1", "192.168.56.1"),
+	          NM_MAKE_STRV ("opt1", "opt2"),
+	          "# Generated by NetworkManager\n"
+	          "search a b.com\n"
+	          "nameserver 192.168.55.1\n"
+	          "nameserver 192.168.56.1\n"
+	          "options opt1 opt2\n"
+	          "");
+
+	_TEST_RC (NM_MAKE_STRV ("a2x456789.b2x456789.c2x456789.d2x456789.e2x456789.f2x456789.g2x456789.h2x456789.i2x456789.j2x4567890",
+	                        "a2y456789.b2y456789.c2y456789.d2y456789.e2y456789.f2y456789.g2y456789.h2y456789.i2y456789.j2y4567890",
+	                        "a2z456789.b2z456789.c2z456789.d2z456789.e2z456789.f2z456789.g2z456789.h2z456789.i2z456789.j2z4567890"),
+	          NULL,
+	          NULL,
+	          "# Generated by NetworkManager\n"
+	          "search a2x456789.b2x456789.c2x456789.d2x456789.e2x456789.f2x456789.g2x456789.h2x456789.i2x456789.j2x4567890 a2y456789.b2y456789.c2y456789.d2y456789.e2y456789.f2y456789.g2y456789.h2y456789.i2y456789.j2y4567890                                                        a2z456789.b2z456789.c2z456789.d2z456789.e2z456789.f2z456789.g2z456789.h2z456789.i2z456789.j2z4567890\n"
+	          "");
+
+}
+
+/*****************************************************************************/
+
+static void
+test_machine_id_read (void)
+{
+	NMUuid machine_id_sd;
+	const NMUuid *machine_id;
+	char machine_id_str[33];
+	gpointer logstate;
+
+	logstate = nmtst_logging_disable (FALSE);
+	/* If you run this test as root, without a valid /etc/machine-id,
+	 * the code will try to get the secret-key. That is a bit ugly,
+	 * but no real problem. */
+	machine_id = nm_utils_machine_id_bin ();
+	nmtst_logging_reenable (logstate);
+
+	g_assert (machine_id);
+	g_assert (_nm_utils_bin2hexstr_full (machine_id,
+	                                     sizeof (NMUuid),
+	                                     '\0',
+	                                     FALSE,
+	                                     machine_id_str) == machine_id_str);
+	g_assert (strlen (machine_id_str) == 32);
+	g_assert_cmpstr (machine_id_str, ==, nm_utils_machine_id_str ());
+
+	/* double check with systemd's implementation... */
+	if (!nm_sd_utils_id128_get_machine (&machine_id_sd)) {
+		/* if systemd failed to read /etc/machine-id, the file likely
+		 * is invalid. Our machine-id is fake, and we have nothing to
+		 * compare against. */
+
+		/* NOTE: this test will fail, if you don't have /etc/machine-id,
+		 * but a valid "LOCALSTATEDIR/lib/dbus/machine-id" file.
+		 * Just don't do that. */
+		g_assert (nm_utils_machine_id_is_fake ());
+	} else {
+		g_assert (!nm_utils_machine_id_is_fake ());
+		g_assert_cmpmem (&machine_id_sd, sizeof (NMUuid), machine_id, 16);
+	}
+}
+
+/*****************************************************************************/
+
+static void
+test_nm_utils_dhcp_client_id_systemd_node_specific (gconstpointer test_data)
+{
+	const int TEST_IDX = GPOINTER_TO_INT (test_data);
+	const guint8 HASH_KEY[16] = { 0x80, 0x11, 0x8c, 0xc2, 0xfe, 0x4a, 0x03, 0xee, 0x3e, 0xd6, 0x0c, 0x6f, 0x36, 0x39, 0x14, 0x09 };
+	const guint16 duid_type_en = htons (2);
+	const guint32 systemd_pen = htonl (43793);
+	const struct {
+		NMUuid machine_id;
+		const char *ifname;
+		guint64 ifname_hash_1;
+		guint32 iaid_ifname;
+		guint64 duid_id;
+	} d_array[] = {
+		[0] = {
+			.machine_id = { 0xcb, 0xc2, 0x2e, 0x47, 0x41, 0x8e, 0x40, 0x2a, 0xa7, 0xb3, 0x0d, 0xea, 0x92, 0x83, 0x94, 0xef },
+			.ifname = "lo",
+			.ifname_hash_1 = 0x7297085c2b12c911llu,
+			.iaid_ifname = htobe32 (0x5985c14du),
+			.duid_id = htobe64 (0x3d769bb2c14d29e1u),
+		},
+		[1] = {
+			.machine_id = { 0x11, 0x4e, 0xb4, 0xda, 0xd3, 0x22, 0x4a, 0xff, 0x9f, 0xc3, 0x30, 0x83, 0x38, 0xa0, 0xeb, 0xb7 },
+			.ifname = "eth0",
+			.ifname_hash_1 = 0x9e1cb083b54cd7b6llu,
+			.iaid_ifname = htobe32 (0x2b506735u),
+			.duid_id = htobe64 (0x551572e0f2a2a10fu),
+		},
+	};
+	int i;
+	typeof (d_array[0]) *d = &d_array[TEST_IDX];
+	gint64 u64;
+	gint32 u32;
+
+	/* the test already hard-codes the expected values iaid_ifname and duid_id
+	 * above. Still, redo the steps to derive them from the ifname/machine-id
+	 * and double check. */
+	u64 = c_siphash_hash (HASH_KEY, (const guint8 *) d->ifname, strlen (d->ifname));
+	g_assert_cmpint (u64, ==, d->ifname_hash_1);
+	u32 = be32toh ((u64 & 0xffffffffu) ^ (u64 >> 32));
+	g_assert_cmpint (u32, ==, d->iaid_ifname);
+
+	u64 = htole64 (c_siphash_hash (HASH_KEY, (const guint8 *) &d->machine_id, sizeof (d->machine_id)));
+	g_assert_cmpint (u64, ==, d->duid_id);
+
+	for (i = 0; i < 2; i++) {
+		const gboolean legacy_unstable_byteorder = (i != 0);
+		gs_unref_bytes GBytes *client_id = NULL;
+		const guint8 *cid;
+		guint32 iaid = d->iaid_ifname;
+
+		client_id = nm_utils_dhcp_client_id_systemd_node_specific_full (legacy_unstable_byteorder,
+		                                                                (const guint8 *) d->ifname,
+		                                                                strlen (d->ifname),
+		                                                                (const guint8 *) &d->machine_id,
+		                                                                sizeof (d->machine_id));
+
+		g_assert (client_id);
+		g_assert_cmpint (g_bytes_get_size (client_id), ==, 19);
+		cid = g_bytes_get_data (client_id, NULL);
+		g_assert_cmpint (cid[0], ==, 255);
+#if __BYTE_ORDER == __BIG_ENDIAN
+		if (legacy_unstable_byteorder) {
+			/* on non-little endian, the legacy behavior is to have the bytes
+			 * swapped. */
+			iaid = bswap_32 (iaid);
+		}
+#endif
+		g_assert_cmpmem (&cid[1], 4, &iaid, sizeof (iaid));
+		g_assert_cmpmem (&cid[5], 2, &duid_type_en, sizeof (duid_type_en));
+		g_assert_cmpmem (&cid[7], 4, &systemd_pen, sizeof (systemd_pen));
+		g_assert_cmpmem (&cid[11], 8, &d->duid_id, sizeof (d->duid_id));
+	}
+}
+
+/*****************************************************************************/
+
+static void
+test_connectivity_state_cmp (void)
+{
+	NMConnectivityState a;
+
+#define _cmp(a, b, cmp) \
+	G_STMT_START { \
+		const NMConnectivityState _a = (a); \
+		const NMConnectivityState _b = (b); \
+		const int _cmp = (cmp); \
+		\
+		g_assert (NM_IN_SET (_cmp, -1, 0, 1)); \
+		g_assert_cmpint (nm_connectivity_state_cmp (_a, _b), ==, _cmp); \
+		g_assert_cmpint (nm_connectivity_state_cmp (_b, _a), ==, -_cmp); \
+	} G_STMT_END
+
+	for (a = NM_CONNECTIVITY_UNKNOWN; a <= NM_CONNECTIVITY_FULL; a++)
+		_cmp (a, a, 0);
+
+	_cmp (NM_CONNECTIVITY_UNKNOWN, NM_CONNECTIVITY_UNKNOWN,  0);
+	_cmp (NM_CONNECTIVITY_UNKNOWN, NM_CONNECTIVITY_NONE,    -1);
+	_cmp (NM_CONNECTIVITY_UNKNOWN, NM_CONNECTIVITY_LIMITED, -1);
+	_cmp (NM_CONNECTIVITY_UNKNOWN, NM_CONNECTIVITY_PORTAL,  -1);
+	_cmp (NM_CONNECTIVITY_UNKNOWN, NM_CONNECTIVITY_FULL,    -1);
+
+	_cmp (NM_CONNECTIVITY_NONE,    NM_CONNECTIVITY_UNKNOWN,  1);
+	_cmp (NM_CONNECTIVITY_NONE,    NM_CONNECTIVITY_NONE,     0);
+	_cmp (NM_CONNECTIVITY_NONE,    NM_CONNECTIVITY_LIMITED, -1);
+	_cmp (NM_CONNECTIVITY_NONE,    NM_CONNECTIVITY_PORTAL,  -1);
+	_cmp (NM_CONNECTIVITY_NONE,    NM_CONNECTIVITY_FULL,    -1);
+
+	_cmp (NM_CONNECTIVITY_LIMITED, NM_CONNECTIVITY_UNKNOWN,  1);
+	_cmp (NM_CONNECTIVITY_LIMITED, NM_CONNECTIVITY_NONE,     1);
+	_cmp (NM_CONNECTIVITY_LIMITED, NM_CONNECTIVITY_LIMITED,  0);
+	_cmp (NM_CONNECTIVITY_LIMITED, NM_CONNECTIVITY_PORTAL,  -1);
+	_cmp (NM_CONNECTIVITY_LIMITED, NM_CONNECTIVITY_FULL,    -1);
+
+	_cmp (NM_CONNECTIVITY_PORTAL,  NM_CONNECTIVITY_UNKNOWN,  1);
+	_cmp (NM_CONNECTIVITY_PORTAL,  NM_CONNECTIVITY_NONE,     1);
+	_cmp (NM_CONNECTIVITY_PORTAL,  NM_CONNECTIVITY_LIMITED,  1);
+	_cmp (NM_CONNECTIVITY_PORTAL,  NM_CONNECTIVITY_PORTAL,   0);
+	_cmp (NM_CONNECTIVITY_PORTAL,  NM_CONNECTIVITY_FULL,    -1);
+
+	_cmp (NM_CONNECTIVITY_FULL,    NM_CONNECTIVITY_UNKNOWN,  1);
+	_cmp (NM_CONNECTIVITY_FULL,    NM_CONNECTIVITY_NONE,     1);
+	_cmp (NM_CONNECTIVITY_FULL,    NM_CONNECTIVITY_LIMITED,  1);
+	_cmp (NM_CONNECTIVITY_FULL,    NM_CONNECTIVITY_PORTAL,   1);
+	_cmp (NM_CONNECTIVITY_FULL,    NM_CONNECTIVITY_FULL,     0);
+
+#undef _cmp
+}
+
+/*****************************************************************************/
+
 NMTST_DEFINE ();
 
 int
@@ -1891,6 +2121,15 @@ main (int argc, char **argv)
 	g_test_add_func ("/general/stable-id/parse", test_stable_id_parse);
 	g_test_add_func ("/general/stable-id/generated-complete", test_stable_id_generated_complete);
 
+	g_test_add_func ("/general/machine-id/read", test_machine_id_read);
+
+	g_test_add_func ("/general/test_dns_create_resolv_conf", test_dns_create_resolv_conf);
+
+	g_test_add_data_func ("/general/nm_utils_dhcp_client_id_systemd_node_specific/0", GINT_TO_POINTER (0), test_nm_utils_dhcp_client_id_systemd_node_specific);
+	g_test_add_data_func ("/general/nm_utils_dhcp_client_id_systemd_node_specific/1", GINT_TO_POINTER (1), test_nm_utils_dhcp_client_id_systemd_node_specific);
+
+	g_test_add_func ("/core/general/test_connectivity_state_cmp", test_connectivity_state_cmp);
+
 	return g_test_run ();
 }
 
diff --git a/src/tests/test-ip6-config.c b/src/tests/test-ip6-config.c
index a03d89b0..5b255068 100644
--- a/src/tests/test-ip6-config.c
+++ b/src/tests/test-ip6-config.c
@@ -22,6 +22,7 @@
 
 #include <string.h>
 #include <arpa/inet.h>
+#include <linux/if_addr.h>
 
 #include "nm-ip6-config.h"
 
diff --git a/src/tests/test-systemd.c b/src/tests/test-systemd.c
index ab5fed22..4660bd0d 100644
--- a/src/tests/test-systemd.c
+++ b/src/tests/test-systemd.c
@@ -20,6 +20,7 @@
 #include "nm-default.h"
 
 #include "systemd/nm-sd.h"
+#include "systemd/nm-sd-utils.h"
 
 #include "nm-test-utils-core.h"
 
@@ -173,6 +174,50 @@ test_sd_event (void)
 
 /*****************************************************************************/
 
+static void
+test_path_equal (void)
+{
+#define _path_equal_check1(path, kill_dots, expected) \
+	G_STMT_START { \
+		const gboolean _kill_dots = (kill_dots); \
+		const char *_path0 = (path); \
+		const char *_expected = (expected); \
+		gs_free char *_path = g_strdup (_path0); \
+		const char *_path_result; \
+		\
+		if (   !_kill_dots \
+		    && !nm_sd_utils_path_equal (_path0, _expected)) \
+			g_error ("Paths \"%s\" and \"%s\" don't compare equal", _path0, _expected); \
+		\
+		_path_result = nm_sd_utils_path_simplify (_path, _kill_dots); \
+		g_assert (_path_result == _path); \
+		g_assert_cmpstr (_path, ==, _expected); \
+	} G_STMT_END
+
+#define _path_equal_check(path, expected_no_kill_dots, expected_kill_dots) \
+	G_STMT_START { \
+		_path_equal_check1 (path, FALSE, expected_no_kill_dots); \
+		_path_equal_check1 (path, TRUE,  expected_kill_dots ?: expected_no_kill_dots); \
+	} G_STMT_END
+
+	_path_equal_check ("",                  "",                NULL);
+	_path_equal_check (".",                 ".",               "");
+	_path_equal_check ("..",                "..",              NULL);
+	_path_equal_check ("/..",               "/..",             NULL);
+	_path_equal_check ("//..",              "/..",             NULL);
+	_path_equal_check ("/.",                "/.",              "/");
+	_path_equal_check ("./",                ".",               "");
+	_path_equal_check ("./.",               "./.",             "");
+	_path_equal_check (".///.",             "./.",             "");
+	_path_equal_check (".///./",            "./.",             "");
+	_path_equal_check (".////",             ".",               "");
+	_path_equal_check ("//..//foo/",        "/../foo",         NULL);
+	_path_equal_check ("///foo//./bar/.",   "/foo/./bar/.",    "/foo/bar");
+	_path_equal_check (".//./foo//./bar/.", "././foo/./bar/.", "foo/bar");
+}
+
+/*****************************************************************************/
+
 NMTST_DEFINE ();
 
 int
@@ -183,6 +228,7 @@ main (int argc, char **argv)
 	g_test_add_func ("/systemd/dhcp/create", test_dhcp_create);
 	g_test_add_func ("/systemd/lldp/create", test_lldp_create);
 	g_test_add_func ("/systemd/sd-event", test_sd_event);
+	g_test_add_func ("/systemd/test_path_equal", test_path_equal);
 
 	return g_test_run ();
 }
diff --git a/src/vpn/nm-vpn-connection.c b/src/vpn/nm-vpn-connection.c
index bd847d75..3b3a97f4 100644
--- a/src/vpn/nm-vpn-connection.c
+++ b/src/vpn/nm-vpn-connection.c
@@ -729,15 +729,23 @@ add_ip4_vpn_gateway_route (NMIP4Config *config,
 		const NMPlatformIP4Route *r = NMP_OBJECT_CAST_IP4_ROUTE (route_resolved);
 
 		if (r->ifindex == ifindex) {
+			const NMPObject *obj;
+
 			/* `ip route get` always resolves the route, even if the destination is unreachable.
 			 * In which case, it pretends the destination is directly reachable.
 			 *
-			 * So, only accept direct routes, if @vpn_gw is a private network. */
-			if (   nm_platform_route_table_is_main (r->table_coerced)
-			    && (   r->gateway
-			        || nm_utils_ip_is_site_local (AF_INET, &vpn_gw))) {
-				parent_gw = r->gateway;
-				has_parent_gw = TRUE;
+			 * So, only accept direct routes if @vpn_gw is a private network
+			 * or if the parent device also has a direct default route */
+			if (nm_platform_route_table_is_main (r->table_coerced)) {
+				if (r->gateway) {
+					parent_gw = r->gateway;
+					has_parent_gw = TRUE;
+				} else if (nm_utils_ip_is_site_local (AF_INET, &vpn_gw)) {
+					has_parent_gw = TRUE;
+				} else if (   (obj = nm_device_get_best_default_route (parent_device, AF_INET))
+				           && !NMP_OBJECT_CAST_IP4_ROUTE (obj)->gateway) {
+					has_parent_gw = TRUE;
+				}
 			}
 		}
 	}
@@ -803,15 +811,23 @@ add_ip6_vpn_gateway_route (NMIP6Config *config,
 		const NMPlatformIP6Route *r = NMP_OBJECT_CAST_IP6_ROUTE (route_resolved);
 
 		if (r->ifindex == ifindex) {
+			const NMPObject *obj;
+
 			/* `ip route get` always resolves the route, even if the destination is unreachable.
 			 * In which case, it pretends the destination is directly reachable.
 			 *
-			 * So, only accept direct routes, if @vpn_gw is a private network. */
-			if (   nm_platform_route_table_is_main (r->table_coerced)
-			    && (   !IN6_IS_ADDR_UNSPECIFIED (&r->gateway)
-			        || nm_utils_ip_is_site_local (AF_INET6, &vpn_gw))) {
-				parent_gw = &r->gateway;
-				has_parent_gw = TRUE;
+			 * So, only accept direct routes if @vpn_gw is a private network
+			 * or if the parent device also has a direct default route */
+			if (nm_platform_route_table_is_main (r->table_coerced)) {
+				if (!IN6_IS_ADDR_UNSPECIFIED (&r->gateway)) {
+					parent_gw = &r->gateway;
+					has_parent_gw = TRUE;
+				} else if (nm_utils_ip_is_site_local (AF_INET6, &vpn_gw)) {
+					has_parent_gw = TRUE;
+				} else if (   (obj = nm_device_get_best_default_route (parent_device, AF_INET6))
+				           && IN6_IS_ADDR_UNSPECIFIED (&NMP_OBJECT_CAST_IP6_ROUTE (obj)->gateway)) {
+					has_parent_gw = TRUE;
+				}
 			}
 		}
 	}
diff --git a/tools/check-docs.sh b/tools/check-docs.sh
index 9dcdb1ef..b6fca6e0 100755
--- a/tools/check-docs.sh
+++ b/tools/check-docs.sh
@@ -1,22 +1,73 @@
-#!/bin/sh
+#!/bin/bash
 
-SOURCEDIR=$1
+set -e
+
+export LANG=C
+
+die() {
+    printf '%s\n' "$@" >&2
+    exit 1
+}
+
+word_regex() {
+    tr '\n|<>\\' ' ' \
+    | sed -e 's, *$,\\>,' \
+          -e 's,^ *,\\<,' \
+          -e 's, \+,\\>\\|\\<,g'
+}
+
+same_lines() {
+    diff <(printf "%s\n" "$1" | sed '/^$/d' | sort) \
+         <(printf "%s\n" "$2" | sed '/^$/d' | sort) >&2
+}
+
+libnm_headers() {
+    (
+        ls -1 "$1"libnm/*.h "$1"libnm-core/*.h
+        if [ -n "$2" ]; then
+            ls -1 "$2"/libnm/*.h "$2"/libnm-core/*.h
+        fi
+    ) | sort | uniq
+}
+
+
+SOURCEDIR="$1"
+BUILDDIR="$2"
+if test "$SOURCEDIR" == "$BUILDDIR"; then
+    BUILDDIR=
+fi
 [ -n "$SOURCEDIR" ] && SOURCEDIR="$SOURCEDIR/"
 
+
 # Check that the D-Bus API docs contain all known interfaces
-if (sed -n 's/.*<xi:include href="dbus-\(.*\.xml\)".*/\1\n\1/p' $SOURCEDIR''docs/api/network-manager-docs.xml;
-    cd $SOURCEDIR''introspection; ls *.xml) |sort |uniq -u| grep . >&2; then
-	echo "*** Error: D-Bus interfaces not included in docs/api/network-manager-docs.xml ***" >&2
-	exit 1
+F1="$(sed -n 's,^      <xi:include href="dbus-\([^"]*\.xml\)"/>$,\1,p' "$SOURCEDIR"docs/api/network-manager-docs.xml)"
+F1_EXTRA="
+org.freedesktop.NetworkManager.Device.WiMax.xml
+org.freedesktop.NetworkManager.WiMax.Nsp.xml
+"
+F2="$(cd "$SOURCEDIR"introspection; ls -1 *.xml)"
+if ! same_lines "$F1"$'\n'"$F1_EXTRA" "$F2" ; then
+    die "*** Error: D-Bus interfaces not included in docs/api/network-manager-docs.xml ***"
 fi
 
+
 # Check that files that define types that are in public libnm API are included in libnm documentation.
-# Don't complain about readability or I'll rewrite this in Perl.
-if (sed -n 's/.*<xi:include href="\(xml\/.*\.xml\)".*/\1\n\1/p' $SOURCEDIR''docs/libnm/libnm-docs.xml;
-    grep -lE "$(sed -n 's/^[\t ]*\(.*_get_type\);/\1/p' $SOURCEDIR''libnm/libnm.ver |xargs echo |sed 's/ /|/g')" $SOURCEDIR''libnm{,-core}/*.h |
-    sed 's,.*/,xml/,;s/\.h$/.xml/') |sort |uniq -u| grep . >&2; then
-	echo "*** Error: libnm classes not included in docs/libnm/libnm-docs.xml ***" >&2
-	exit 1
+F1="$(sed -n 's/.*<xi:include href="xml\/\([^"]*\)\.xml".*/\1/p' "$SOURCEDIR"docs/libnm/libnm-docs.xml)"
+F1_EXTRA="
+nm-core-enum-types
+nm-enum-types
+"
+F2="$(grep -l "$(sed -n 's/^[\t ]*\(.*_get_type\);/\1/p' "$SOURCEDIR"libnm/libnm.ver | word_regex)" \
+           $(libnm_headers "$SOURCEDIR" "$BUILDDIR") \
+      | sed 's,.*/\([^/]\+\)\.h$,\1,')"
+F2_EXTRA="
+annotation-glossary
+api-index-full
+nm-dbus-interface
+nm-errors
+nm-utils
+nm-version
+"
+if ! same_lines "$F1"$'\n'"$F1_EXTRA" "$F2"$'\n'"$F2_EXTRA"; then
+    die "*** Error: libnm classes not included in docs/libnm/libnm-docs.xml ***"
 fi
-
-exit 0
diff --git a/tools/check-settings-docs.sh b/tools/check-settings-docs.sh
new file mode 100755
index 00000000..8695ccc0
--- /dev/null
+++ b/tools/check-settings-docs.sh
@@ -0,0 +1,19 @@
+#!/bin/sh
+
+srcdir=$1
+builddir=$2
+doc_h=$3
+
+if [ -z "$NMTST_NO_CHECK_SETTINGS_DOCS" ] ; then
+    if ! cmp -s "${srcdir}/${doc_h}.in" "${builddir}/${doc_h}"; then
+        if [ "$NM_TEST_REGENERATE" = 1 ] ; then
+            cp -f "${builddir}/${doc_h}" "${srcdir}/${doc_h}.in"
+        else
+            echo "*** Error: the generated file '${builddir}/${doc_h}' differs from the source file '${srcdir}/${doc_h}.in'. You probably should copy the generated file over to the source file. You can skip this test by setting NMTST_NO_CHECK_SETTINGS_DOCS=yes. You can also automatically copy the file by rerunning the test with NM_TEST_REGENERATE=1"
+            exit 1
+        fi
+    fi
+fi
+
+exit 0
+
diff --git a/tools/create-exports-NetworkManager.sh b/tools/create-exports-NetworkManager.sh
index 3c5789d8..375141aa 100755
--- a/tools/create-exports-NetworkManager.sh
+++ b/tools/create-exports-NetworkManager.sh
@@ -19,7 +19,7 @@ die() {
 _build() {
     git clean -fdx
     ./autogen.sh --enable-ld-gc --enable-ifcfg-rh --enable-ifupdown \
-        --enable-ibft --enable-teamdctl --enable-wifi \
+        --enable-config-plugin-ibft --enable-teamdctl --enable-wifi \
         --with-modem-manager-1 --with-ofono --with-more-asserts \
         --with-more-logging
     make -j20
diff --git a/tools/meson-post-install.sh b/tools/meson-post-install.sh
index 8a60ce33..2037c0ce 100755
--- a/tools/meson-post-install.sh
+++ b/tools/meson-post-install.sh
@@ -42,6 +42,6 @@ if [ "$6" = install_docs ]; then
         ln -f "${DESTDIR}${mandir}/man1/nmtui.1" "${DESTDIR}${mandir}/man1/${alias}.1"
     done
 
-    ln -f "${DESTDIR}${mandir}/man5/NetworkManager.conf.5" "${DESTDIR}${mandir}/man5/nm-system-settings.conf"
+    ln -f "${DESTDIR}${mandir}/man5/NetworkManager.conf.5" "${DESTDIR}${mandir}/man5/nm-system-settings.conf.5"
 fi
 
diff --git a/tools/test-networkmanager-service.py b/tools/test-networkmanager-service.py
index 8a37fb17..9aa44a90 100755
--- a/tools/test-networkmanager-service.py
+++ b/tools/test-networkmanager-service.py
@@ -916,16 +916,8 @@ class WifiDevice(Device):
         self.aps = []
         self.scan_cb_id = None
 
-        # Note: we would like to simulate how nmcli calls RequestScan() and we could
-        # do so by using an older timestamp. However, that makes the client tests
-        # racy, because if a bunch of nmcli instances run in parallel against this
-        # service, earlier instances will issue a RequestScan(), while later instances
-        # won't do that (because the LastScan timestamp is already updated). That means,
-        # the later instances will print the scan result immediately, and in another sort
-        # order. That should be fixed, by nmcli not starting to print anything, before
-        # all RequestScan() requests complete, and thus, always print a consistent list
-        # of results.
-        ts = NM.utils_get_timestamp_msec()
+        # Use a randomly older timestamp to trigger RequestScan() from the client
+        ts = max(0, NM.utils_get_timestamp_msec() - Util.random_int(self.path, 20000, 40000))
 
         props = {
             PRP_WIFI_HW_ADDRESS:            mac,