summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBeniamino Galvani <bgalvani@redhat.com>2017-06-06 15:55:08 +0200
committerBeniamino Galvani <bgalvani@redhat.com>2017-08-05 08:03:15 +0200
commitdf72cad107fd4e721488195109e29fae5f9b8e20 (patch)
treeebd07a03c365a200c1bb6c6336dec7bf96b72b41
parentd5c2c3f6d7dff4d763d460052671d32f5389c815 (diff)
downloadNetworkManager-df72cad107fd4e721488195109e29fae5f9b8e20.tar.gz
device: add NMDevicePPP
The new device type represents a PPP interface, and will implement the activation of new-style PPPoE connections, i.e. the ones that don't claim the parent device.
-rw-r--r--Makefile.am8
-rw-r--r--introspection/org.freedesktop.NetworkManager.Device.Ppp.xml20
-rw-r--r--libnm-core/nm-dbus-interface.h3
-rw-r--r--libnm/libnm.ver1
-rw-r--r--libnm/nm-client.c3
-rw-r--r--libnm/nm-device-ppp.c39
-rw-r--r--libnm/nm-device-ppp.h36
-rw-r--r--libnm/nm-device.c3
-rw-r--r--libnm/nm-types.h1
-rw-r--r--src/devices/nm-device-factory.c1
-rw-r--r--src/devices/nm-device-ppp.c103
-rw-r--r--src/devices/nm-device-ppp.h30
-rw-r--r--src/devices/nm-device.c2
-rw-r--r--src/nm-types.h5
-rw-r--r--src/platform/nm-linux-platform.c5
15 files changed, 257 insertions, 3 deletions
diff --git a/Makefile.am b/Makefile.am
index ed9417a4d6..4e66a5e68b 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -206,6 +206,8 @@ introspection_sources = \
introspection/org.freedesktop.NetworkManager.Device.Modem.h \
introspection/org.freedesktop.NetworkManager.Device.OlpcMesh.c \
introspection/org.freedesktop.NetworkManager.Device.OlpcMesh.h \
+ introspection/org.freedesktop.NetworkManager.Device.Ppp.c \
+ introspection/org.freedesktop.NetworkManager.Device.Ppp.h \
introspection/org.freedesktop.NetworkManager.Device.Statistics.c \
introspection/org.freedesktop.NetworkManager.Device.Statistics.h \
introspection/org.freedesktop.NetworkManager.Device.Team.c \
@@ -279,6 +281,7 @@ DBUS_INTERFACE_DOCS = \
docs/api/dbus-org.freedesktop.NetworkManager.Device.Tun.xml \
docs/api/dbus-org.freedesktop.NetworkManager.Device.Bridge.xml \
docs/api/dbus-org.freedesktop.NetworkManager.Device.OlpcMesh.xml \
+ docs/api/dbus-org.freedesktop.NetworkManager.Device.Ppp.xml \
docs/api/dbus-org.freedesktop.NetworkManager.DHCP4Config.xml \
docs/api/dbus-org.freedesktop.NetworkManager.Device.Generic.xml \
docs/api/dbus-org.freedesktop.NetworkManager.Device.Infiniband.xml \
@@ -326,6 +329,7 @@ dbusinterfaces_DATA = \
introspection/org.freedesktop.NetworkManager.Device.Macvlan.xml \
introspection/org.freedesktop.NetworkManager.Device.Modem.xml \
introspection/org.freedesktop.NetworkManager.Device.OlpcMesh.xml \
+ introspection/org.freedesktop.NetworkManager.Device.Ppp.xml \
introspection/org.freedesktop.NetworkManager.Device.Statistics.xml \
introspection/org.freedesktop.NetworkManager.Device.Team.xml \
introspection/org.freedesktop.NetworkManager.Device.Tun.xml \
@@ -721,6 +725,7 @@ libnm_lib_h_pub_real = \
libnm/nm-device-macvlan.h \
libnm/nm-device-modem.h \
libnm/nm-device-olpc-mesh.h \
+ libnm/nm-device-ppp.h \
libnm/nm-device-team.h \
libnm/nm-device-tun.h \
libnm/nm-device-vlan.h \
@@ -773,6 +778,7 @@ libnm_lib_c_real = \
libnm/nm-device-macvlan.c \
libnm/nm-device-modem.c \
libnm/nm-device-olpc-mesh.c \
+ libnm/nm-device-ppp.c \
libnm/nm-device-team.c \
libnm/nm-device-tun.c \
libnm/nm-device-vlan.c \
@@ -1388,6 +1394,8 @@ src_libNetworkManager_la_SOURCES = \
src/devices/nm-device-macsec.h \
src/devices/nm-device-macvlan.c \
src/devices/nm-device-macvlan.h \
+ src/devices/nm-device-ppp.c \
+ src/devices/nm-device-ppp.h \
src/devices/nm-device-tun.c \
src/devices/nm-device-tun.h \
src/devices/nm-device-veth.c \
diff --git a/introspection/org.freedesktop.NetworkManager.Device.Ppp.xml b/introspection/org.freedesktop.NetworkManager.Device.Ppp.xml
new file mode 100644
index 0000000000..00605f7219
--- /dev/null
+++ b/introspection/org.freedesktop.NetworkManager.Device.Ppp.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<node name="/">
+ <!--
+ org.freedesktop.NetworkManager.Device.Ppp:
+ @short_description: PPP Device
+
+ -->
+ <interface name="org.freedesktop.NetworkManager.Device.Ppp">
+
+ <!--
+ PropertiesChanged:
+ @properties: A dictionary mapping property names to variant boxed values
+
+ DEPRECATED. Use the standard "PropertiesChanged" signal from "org.freedesktop.DBus.Properties" instead which exists since version NetworkManager 1.2.0.
+ -->
+ <signal name="PropertiesChanged">
+ <arg name="properties" type="a{sv}"/>
+ </signal>
+ </interface>
+</node>
diff --git a/libnm-core/nm-dbus-interface.h b/libnm-core/nm-dbus-interface.h
index dd05f5e756..b089365ccc 100644
--- a/libnm-core/nm-dbus-interface.h
+++ b/libnm-core/nm-dbus-interface.h
@@ -68,6 +68,7 @@
#define NM_DBUS_INTERFACE_DEVICE_TUN NM_DBUS_INTERFACE_DEVICE ".Tun"
#define NM_DBUS_INTERFACE_DEVICE_MACSEC NM_DBUS_INTERFACE_DEVICE ".Macsec"
#define NM_DBUS_INTERFACE_DEVICE_MACVLAN NM_DBUS_INTERFACE_DEVICE ".Macvlan"
+#define NM_DBUS_INTERFACE_DEVICE_PPP NM_DBUS_INTERFACE_DEVICE ".Ppp"
#define NM_DBUS_INTERFACE_DEVICE_VXLAN NM_DBUS_INTERFACE_DEVICE ".Vxlan"
#define NM_DBUS_INTERFACE_DEVICE_GRE NM_DBUS_INTERFACE_DEVICE ".Gre"
#define NM_DBUS_INTERFACE_DEVICE_IP_TUNNEL NM_DBUS_INTERFACE_DEVICE ".IPTunnel"
@@ -203,6 +204,7 @@ typedef enum {
* @NM_DEVICE_TYPE_VETH: a VETH interface
* @NM_DEVICE_TYPE_MACSEC: a MACsec interface
* @NM_DEVICE_TYPE_DUMMY: a dummy interface
+ * @NM_DEVICE_TYPE_PPP: a PPP interface
*
* #NMDeviceType values indicate the type of hardware represented by a
* device object.
@@ -231,6 +233,7 @@ typedef enum {
NM_DEVICE_TYPE_VETH = 20,
NM_DEVICE_TYPE_MACSEC = 21,
NM_DEVICE_TYPE_DUMMY = 22,
+ NM_DEVICE_TYPE_PPP = 23,
} NMDeviceType;
/**
diff --git a/libnm/libnm.ver b/libnm/libnm.ver
index f22a0f1064..85ec20c929 100644
--- a/libnm/libnm.ver
+++ b/libnm/libnm.ver
@@ -1181,6 +1181,7 @@ global:
libnm_1_10_0 {
global:
nm_device_dummy_get_hw_address;
+ nm_device_ppp_get_type;
nm_setting_bridge_get_group_forward_mask;
nm_setting_pppoe_get_parent;
nm_setting_wireless_security_get_pmf;
diff --git a/libnm/nm-client.c b/libnm/nm-client.c
index 38b69100f9..c8ce2d6eca 100644
--- a/libnm/nm-client.c
+++ b/libnm/nm-client.c
@@ -63,6 +63,7 @@
#include "nm-device-macvlan.h"
#include "nm-device-modem.h"
#include "nm-device-olpc-mesh.h"
+#include "nm-device-ppp.h"
#include "nm-device-team.h"
#include "nm-device-tun.h"
#include "nm-device-vlan.h"
@@ -2078,6 +2079,8 @@ obj_nm_for_gdbus_object (NMClient *self, GDBusObject *object, GDBusObjectManager
type = NM_TYPE_DEVICE_MODEM;
else if (strcmp (ifname, NM_DBUS_INTERFACE_DEVICE_OLPC_MESH) == 0)
type = NM_TYPE_DEVICE_OLPC_MESH;
+ else if (strcmp (ifname, NM_DBUS_INTERFACE_DEVICE_PPP) == 0)
+ type = NM_TYPE_DEVICE_PPP;
else if (strcmp (ifname, NM_DBUS_INTERFACE_DEVICE_TEAM) == 0)
type = NM_TYPE_DEVICE_TEAM;
else if (strcmp (ifname, NM_DBUS_INTERFACE_DEVICE_TUN) == 0)
diff --git a/libnm/nm-device-ppp.c b/libnm/nm-device-ppp.c
new file mode 100644
index 0000000000..805d142820
--- /dev/null
+++ b/libnm/nm-device-ppp.c
@@ -0,0 +1,39 @@
+/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */
+/*
+ * 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.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ * Copyright 2017 Red Hat, Inc.
+ */
+
+#include "nm-default.h"
+
+#include "nm-device-ppp.h"
+#include "nm-device.h"
+
+struct _NMDevicePpp {
+ NMDevice parent;
+};
+
+struct _NMDevicePppClass {
+ NMDeviceClass parent;
+};
+
+G_DEFINE_TYPE (NMDevicePpp, nm_device_ppp, NM_TYPE_DEVICE)
+
+#define NM_DEVICE_PPP_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_DEVICE_PPP, NMDevicePppPrivate))
+
+static void
+nm_device_ppp_init (NMDevicePpp *device)
+{
+}
+
+static void
+nm_device_ppp_class_init (NMDevicePppClass *klass)
+{
+}
diff --git a/libnm/nm-device-ppp.h b/libnm/nm-device-ppp.h
new file mode 100644
index 0000000000..58ff5e1882
--- /dev/null
+++ b/libnm/nm-device-ppp.h
@@ -0,0 +1,36 @@
+/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */
+/*
+ * 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.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ * Copyright 2017 Red Hat, Inc.
+ */
+
+#ifndef __NM_DEVICE_PPP_H__
+#define __NM_DEVICE_PPP_H__
+
+#if !defined (__NETWORKMANAGER_H_INSIDE__) && !defined (NETWORKMANAGER_COMPILATION)
+#error "Only <NetworkManager.h> can be included directly."
+#endif
+
+G_BEGIN_DECLS
+
+#define NM_TYPE_DEVICE_PPP (nm_device_ppp_get_type ())
+#define NM_DEVICE_PPP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NM_TYPE_DEVICE_PPP, NMDevicePpp))
+#define NM_DEVICE_PPP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), NM_TYPE_DEVICE_PPP, NMDevicePppClass))
+#define NM_IS_DEVICE_PPP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NM_TYPE_DEVICE_PPP))
+#define NM_IS_DEVICE_PPP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NM_TYPE_DEVICE_PPP))
+#define NM_DEVICE_PPP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NM_TYPE_DEVICE_PPP, NMDevicePppClass))
+
+typedef struct _NMDevicePppClass NMDevicePppClass;
+
+GType nm_device_ppp_get_type (void);
+
+G_END_DECLS
+
+#endif /* __NM_DEVICE_PPP_H__ */
diff --git a/libnm/nm-device.c b/libnm/nm-device.c
index 8c31e6cfa0..7f15436638 100644
--- a/libnm/nm-device.c
+++ b/libnm/nm-device.c
@@ -280,6 +280,7 @@ coerce_type (NMDeviceType type)
case NM_DEVICE_TYPE_UNUSED2:
case NM_DEVICE_TYPE_UNKNOWN:
case NM_DEVICE_TYPE_DUMMY:
+ case NM_DEVICE_TYPE_PPP:
return type;
}
return NM_DEVICE_TYPE_UNKNOWN;
@@ -1551,6 +1552,8 @@ get_type_name (NMDevice *device)
return _("MACsec");
case NM_DEVICE_TYPE_DUMMY:
return _("Dummy");
+ case NM_DEVICE_TYPE_PPP:
+ return _("PPP");
case NM_DEVICE_TYPE_GENERIC:
case NM_DEVICE_TYPE_UNUSED1:
case NM_DEVICE_TYPE_UNUSED2:
diff --git a/libnm/nm-types.h b/libnm/nm-types.h
index 84cf48f4c5..1e06d15feb 100644
--- a/libnm/nm-types.h
+++ b/libnm/nm-types.h
@@ -43,6 +43,7 @@ typedef struct _NMDeviceMacsec NMDeviceMacsec;
typedef struct _NMDeviceMacvlan NMDeviceMacvlan;
typedef struct _NMDeviceModem NMDeviceModem;
typedef struct _NMDeviceOlpcMesh NMDeviceOlpcMesh;
+typedef struct _NMDevicePpp NMDevicePpp;
typedef struct _NMDeviceTeam NMDeviceTeam;
typedef struct _NMDeviceTun NMDeviceTun;
typedef struct _NMDeviceVlan NMDeviceVlan;
diff --git a/src/devices/nm-device-factory.c b/src/devices/nm-device-factory.c
index d0ad791acb..b163bc3d22 100644
--- a/src/devices/nm-device-factory.c
+++ b/src/devices/nm-device-factory.c
@@ -362,6 +362,7 @@ nm_device_factory_manager_load_factories (NMDeviceFactoryManagerFactoryFunc call
_ADD_INTERNAL (nm_ip_tunnel_device_factory_get_type);
_ADD_INTERNAL (nm_macsec_device_factory_get_type);
_ADD_INTERNAL (nm_macvlan_device_factory_get_type);
+ _ADD_INTERNAL (nm_ppp_device_factory_get_type);
_ADD_INTERNAL (nm_tun_device_factory_get_type);
_ADD_INTERNAL (nm_veth_device_factory_get_type);
_ADD_INTERNAL (nm_vlan_device_factory_get_type);
diff --git a/src/devices/nm-device-ppp.c b/src/devices/nm-device-ppp.c
new file mode 100644
index 0000000000..d0f2c9526e
--- /dev/null
+++ b/src/devices/nm-device-ppp.c
@@ -0,0 +1,103 @@
+/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */
+/* NetworkManager -- Network link manager
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ * Copyright (C) 2017 Red Hat, Inc.
+ */
+
+#include "nm-default.h"
+
+#include "nm-device-ppp.h"
+
+#include "nm-device-factory.h"
+#include "nm-device-private.h"
+#include "platform/nm-platform.h"
+
+#include "introspection/org.freedesktop.NetworkManager.Device.Ppp.h"
+
+#include "nm-device-logging.h"
+_LOG_DECLARE_SELF(NMDevicePpp);
+
+/*****************************************************************************/
+
+typedef struct _NMDevicePppPrivate {
+ int dummy;
+} NMDevicePppPrivate;
+
+struct _NMDevicePpp {
+ NMDevice parent;
+ NMDevicePppPrivate _priv;
+};
+
+struct _NMDevicePppClass {
+ NMDeviceClass parent;
+};
+
+G_DEFINE_TYPE (NMDevicePpp, nm_device_ppp, NM_TYPE_DEVICE)
+
+#define NM_DEVICE_PPP_GET_PRIVATE(self) _NM_GET_PRIVATE (self, NMDevicePpp, NM_IS_DEVICE_PPP)
+
+static NMDeviceCapabilities
+get_generic_capabilities (NMDevice *device)
+{
+ return NM_DEVICE_CAP_IS_SOFTWARE;
+}
+
+static void
+nm_device_ppp_init (NMDevicePpp *self)
+{
+}
+
+static void
+dispose (GObject *object)
+{
+ G_OBJECT_CLASS (nm_device_ppp_parent_class)->dispose (object);
+}
+
+static void
+nm_device_ppp_class_init (NMDevicePppClass *klass)
+{
+ GObjectClass *object_class = G_OBJECT_CLASS (klass);
+ NMDeviceClass *parent_class = NM_DEVICE_CLASS (klass);
+
+ NM_DEVICE_CLASS_DECLARE_TYPES (klass, NULL, NM_LINK_TYPE_PPP)
+
+ object_class->dispose = dispose;
+ parent_class->get_generic_capabilities = get_generic_capabilities;
+
+ nm_exported_object_class_add_interface (NM_EXPORTED_OBJECT_CLASS (klass),
+ NMDBUS_TYPE_DEVICE_PPP_SKELETON,
+ NULL);
+}
+
+/*****************************************************************************/
+
+#define NM_TYPE_PPP_DEVICE_FACTORY (nm_ppp_device_factory_get_type ())
+#define NM_PPP_DEVICE_FACTORY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NM_TYPE_PPP_DEVICE_FACTORY, NMPppDeviceFactory))
+
+static NMDevice *
+create_device (NMDeviceFactory *factory,
+ const char *iface,
+ const NMPlatformLink *plink,
+ NMConnection *connection,
+ gboolean *out_ignore)
+{
+ return (NMDevice *) g_object_new (NM_TYPE_DEVICE_PPP,
+ NM_DEVICE_IFACE, iface,
+ NM_DEVICE_TYPE_DESC, "Ppp",
+ NM_DEVICE_DEVICE_TYPE, NM_DEVICE_TYPE_PPP,
+ NM_DEVICE_LINK_TYPE, NM_LINK_TYPE_PPP,
+ NULL);
+}
+
+NM_DEVICE_FACTORY_DEFINE_INTERNAL (PPP, Ppp, ppp,
+ NM_DEVICE_FACTORY_DECLARE_LINK_TYPES (NM_LINK_TYPE_PPP),
+ factory_class->create_device = create_device;
+);
diff --git a/src/devices/nm-device-ppp.h b/src/devices/nm-device-ppp.h
new file mode 100644
index 0000000000..aaa18b9b12
--- /dev/null
+++ b/src/devices/nm-device-ppp.h
@@ -0,0 +1,30 @@
+/* -*- Mode: C; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */
+/* NetworkManager -- Network link manager
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ * Copyright (C) 2017 Red Hat, Inc.
+ */
+
+#ifndef __NETWORKMANAGER_DEVICE_PPP_H__
+#define __NETWORKMANAGER_DEVICE_PPP_H__
+
+#define NM_TYPE_DEVICE_PPP (nm_device_ppp_get_type ())
+#define NM_DEVICE_PPP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NM_TYPE_DEVICE_PPP, NMDevicePpp))
+#define NM_DEVICE_PPP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), NM_TYPE_DEVICE_PPP, NMDevicePppClass))
+#define NM_IS_DEVICE_PPP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NM_TYPE_DEVICE_PPP))
+#define NM_IS_DEVICE_PPP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NM_TYPE_DEVICE_PPP))
+#define NM_DEVICE_PPP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NM_TYPE_DEVICE_PPP, NMDevicePppClass))
+
+typedef struct _NMDevicePpp NMDevicePpp;
+typedef struct _NMDevicePppClass NMDevicePppClass;
+
+GType nm_device_ppp_get_type (void);
+
+#endif /* __NETWORKMANAGER_DEVICE_PPP_H__ */
diff --git a/src/devices/nm-device.c b/src/devices/nm-device.c
index 259f776e54..1530b60716 100644
--- a/src/devices/nm-device.c
+++ b/src/devices/nm-device.c
@@ -1555,6 +1555,8 @@ nm_device_get_priority (NMDevice *self)
return 425;
case NM_DEVICE_TYPE_TUN:
return 450;
+ case NM_DEVICE_TYPE_PPP:
+ return 460;
case NM_DEVICE_TYPE_VXLAN:
return 500;
case NM_DEVICE_TYPE_DUMMY:
diff --git a/src/nm-types.h b/src/nm-types.h
index 2cc5769467..136cc450a8 100644
--- a/src/nm-types.h
+++ b/src/nm-types.h
@@ -142,7 +142,8 @@ typedef enum {
NM_LINK_TYPE_WIMAX,
/* Software types */
- NM_LINK_TYPE_DUMMY = 0x10000,
+ NM_LINK_TYPE_BNEP = 0x10000, /* Bluetooth Ethernet emulation */
+ NM_LINK_TYPE_DUMMY,
NM_LINK_TYPE_GRE,
NM_LINK_TYPE_GRETAP,
NM_LINK_TYPE_IFB,
@@ -153,13 +154,13 @@ typedef enum {
NM_LINK_TYPE_MACVLAN,
NM_LINK_TYPE_MACVTAP,
NM_LINK_TYPE_OPENVSWITCH,
+ NM_LINK_TYPE_PPP,
NM_LINK_TYPE_SIT,
NM_LINK_TYPE_TAP,
NM_LINK_TYPE_TUN,
NM_LINK_TYPE_VETH,
NM_LINK_TYPE_VLAN,
NM_LINK_TYPE_VXLAN,
- NM_LINK_TYPE_BNEP, /* Bluetooth Ethernet emulation */
/* Software types with slaves */
NM_LINK_TYPE_BRIDGE = 0x10000 | 0x20000,
diff --git a/src/platform/nm-linux-platform.c b/src/platform/nm-linux-platform.c
index 85d1591f1c..cd45a2bf39 100644
--- a/src/platform/nm-linux-platform.c
+++ b/src/platform/nm-linux-platform.c
@@ -380,6 +380,7 @@ static const LinkDesc linktypes[] = {
{ NM_LINK_TYPE_WWAN_NET, "wwan", NULL, "wwan" },
{ NM_LINK_TYPE_WIMAX, "wimax", "wimax", "wimax" },
+ { NM_LINK_TYPE_BNEP, "bluetooth", NULL, "bluetooth" },
{ NM_LINK_TYPE_DUMMY, "dummy", "dummy", NULL },
{ NM_LINK_TYPE_GRE, "gre", "gre", NULL },
{ NM_LINK_TYPE_GRETAP, "gretap", "gretap", NULL },
@@ -391,13 +392,13 @@ static const LinkDesc linktypes[] = {
{ NM_LINK_TYPE_MACVLAN, "macvlan", "macvlan", NULL },
{ NM_LINK_TYPE_MACVTAP, "macvtap", "macvtap", NULL },
{ NM_LINK_TYPE_OPENVSWITCH, "openvswitch", "openvswitch", NULL },
+ { NM_LINK_TYPE_PPP, "ppp", NULL, "ppp" },
{ NM_LINK_TYPE_SIT, "sit", "sit", NULL },
{ NM_LINK_TYPE_TAP, "tap", NULL, NULL },
{ NM_LINK_TYPE_TUN, "tun", NULL, NULL },
{ NM_LINK_TYPE_VETH, "veth", "veth", NULL },
{ NM_LINK_TYPE_VLAN, "vlan", "vlan", "vlan" },
{ NM_LINK_TYPE_VXLAN, "vxlan", "vxlan", "vxlan" },
- { NM_LINK_TYPE_BNEP, "bluetooth", NULL, "bluetooth" },
{ NM_LINK_TYPE_BRIDGE, "bridge", "bridge", "bridge" },
{ NM_LINK_TYPE_BOND, "bond", "bond", "bond" },
@@ -696,6 +697,8 @@ _linktype_get_type (NMPlatform *platform,
return NM_LINK_TYPE_SIT;
else if (arptype == ARPHRD_TUNNEL6)
return NM_LINK_TYPE_IP6TNL;
+ else if (arptype == ARPHRD_PPP)
+ return NM_LINK_TYPE_PPP;
{
NMPUtilsEthtoolDriverInfo driver_info;