diff options
author | Beniamino Galvani <bgalvani@redhat.com> | 2017-06-06 15:55:08 +0200 |
---|---|---|
committer | Beniamino Galvani <bgalvani@redhat.com> | 2017-08-05 08:03:15 +0200 |
commit | df72cad107fd4e721488195109e29fae5f9b8e20 (patch) | |
tree | ebd07a03c365a200c1bb6c6336dec7bf96b72b41 | |
parent | d5c2c3f6d7dff4d763d460052671d32f5389c815 (diff) | |
download | NetworkManager-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.am | 8 | ||||
-rw-r--r-- | introspection/org.freedesktop.NetworkManager.Device.Ppp.xml | 20 | ||||
-rw-r--r-- | libnm-core/nm-dbus-interface.h | 3 | ||||
-rw-r--r-- | libnm/libnm.ver | 1 | ||||
-rw-r--r-- | libnm/nm-client.c | 3 | ||||
-rw-r--r-- | libnm/nm-device-ppp.c | 39 | ||||
-rw-r--r-- | libnm/nm-device-ppp.h | 36 | ||||
-rw-r--r-- | libnm/nm-device.c | 3 | ||||
-rw-r--r-- | libnm/nm-types.h | 1 | ||||
-rw-r--r-- | src/devices/nm-device-factory.c | 1 | ||||
-rw-r--r-- | src/devices/nm-device-ppp.c | 103 | ||||
-rw-r--r-- | src/devices/nm-device-ppp.h | 30 | ||||
-rw-r--r-- | src/devices/nm-device.c | 2 | ||||
-rw-r--r-- | src/nm-types.h | 5 | ||||
-rw-r--r-- | src/platform/nm-linux-platform.c | 5 |
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; |