Commit 337304f1 authored by Beniamino Galvani's avatar Beniamino Galvani

libnm: add NMDeviceTun

parent 9110ad39
......@@ -148,6 +148,7 @@ typedef enum {
* @NM_DEVICE_TYPE_ADSL: ADSL modem
* @NM_DEVICE_TYPE_BRIDGE: a bridge master interface
* @NM_DEVICE_TYPE_TEAM: a team master interface
* @NM_DEVICE_TYPE_TUN: a TUN or TAP interface
*
* #NMDeviceType values indicate the type of hardware represented by
* an #NMDevice.
......@@ -171,6 +172,7 @@ typedef enum {
NM_DEVICE_TYPE_BRIDGE = 13,
NM_DEVICE_TYPE_GENERIC = 14,
NM_DEVICE_TYPE_TEAM = 15,
NM_DEVICE_TYPE_TUN = 16,
} NMDeviceType;
/**
......
......@@ -41,6 +41,7 @@ libnminclude_hfiles = \
nm-device-modem.h \
nm-device-olpc-mesh.h \
nm-device-team.h \
nm-device-tun.h \
nm-device-vlan.h \
nm-device-wifi.h \
nm-device-wimax.h \
......@@ -92,6 +93,7 @@ libnm_la_csources = \
nm-device-modem.c \
nm-device-olpc-mesh.c \
nm-device-team.c \
nm-device-tun.c \
nm-device-vlan.c \
nm-device-wifi.c \
nm-device-wimax.c \
......
......@@ -864,6 +864,14 @@ global:
nm_device_get_metered;
nm_device_get_nm_plugin_missing;
nm_device_set_managed;
nm_device_tun_get_group;
nm_device_tun_get_hw_address;
nm_device_tun_get_mode;
nm_device_tun_get_multi_queue;
nm_device_tun_get_owner;
nm_device_tun_get_no_pi;
nm_device_tun_get_type;
nm_device_tun_get_vnet_hdr;
nm_device_wifi_request_scan_options;
nm_device_wifi_request_scan_options_async;
nm_lldp_neighbor_get_attr_names;
......
This diff is collapsed.
/* -*- 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.
*
* 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 2015 Red Hat, Inc.
*/
#ifndef __NM_DEVICE_TUN_H__
#define __NM_DEVICE_TUN_H__
#if !defined (__NETWORKMANAGER_H_INSIDE__) && !defined(NETWORKMANAGER_COMPILATION)
#error "Only <NetworkManager.h> can be included directly."
#endif
#include <nm-device.h>
G_BEGIN_DECLS
#define NM_TYPE_DEVICE_TUN (nm_device_tun_get_type ())
#define NM_DEVICE_TUN(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NM_TYPE_DEVICE_TUN, NMDeviceTun))
#define NM_DEVICE_TUN_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), NM_TYPE_DEVICE_TUN, NMDeviceTunClass))
#define NM_IS_DEVICE_TUN(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NM_TYPE_DEVICE_TUN))
#define NM_IS_DEVICE_TUN_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NM_TYPE_DEVICE_TUN))
#define NM_DEVICE_TUN_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NM_TYPE_DEVICE_TUN, NMDeviceTunClass))
#define NM_DEVICE_TUN_HW_ADDRESS "hw-address"
#define NM_DEVICE_TUN_OWNER "owner"
#define NM_DEVICE_TUN_GROUP "group"
#define NM_DEVICE_TUN_MODE "mode"
#define NM_DEVICE_TUN_NO_PI "no-pi"
#define NM_DEVICE_TUN_VNET_HDR "vnet-hdr"
#define NM_DEVICE_TUN_MULTI_QUEUE "multi-queue"
struct _NMDeviceTun {
NMDevice parent;
};
typedef struct {
NMDeviceClass parent;
/*< private >*/
gpointer padding[4];
} NMDeviceTunClass;
NM_AVAILABLE_IN_1_2
GType nm_device_tun_get_type (void);
NM_AVAILABLE_IN_1_2
const char * nm_device_tun_get_hw_address (NMDeviceTun *device);
NM_AVAILABLE_IN_1_2
const char * nm_device_tun_get_mode (NMDeviceTun *device);
NM_AVAILABLE_IN_1_2
gint64 nm_device_tun_get_owner (NMDeviceTun *device);
NM_AVAILABLE_IN_1_2
gint64 nm_device_tun_get_group (NMDeviceTun *device);
NM_AVAILABLE_IN_1_2
gboolean nm_device_tun_get_no_pi (NMDeviceTun *device);
NM_AVAILABLE_IN_1_2
gboolean nm_device_tun_get_vnet_hdr (NMDeviceTun *device);
NM_AVAILABLE_IN_1_2
gboolean nm_device_tun_get_multi_queue (NMDeviceTun *device);
G_END_DECLS
#endif /* __NM_DEVICE_TUN_H__ */
......@@ -53,6 +53,7 @@
#include "nm-core-internal.h"
#include "nm-utils.h"
#include "nm-dbus-helpers.h"
#include "nm-device-tun.h"
#include "nm-setting-connection.h"
#include "nm-macros-internal.h"
......@@ -362,6 +363,8 @@ _nm_device_gtype_from_dtype (NMDeviceType dtype)
return NM_TYPE_DEVICE_VLAN;
case NM_DEVICE_TYPE_GENERIC:
return NM_TYPE_DEVICE_GENERIC;
case NM_DEVICE_TYPE_TUN:
return NM_TYPE_DEVICE_TUN;
default:
g_warning ("Unknown device type %d", dtype);
return G_TYPE_INVALID;
......
......@@ -40,6 +40,7 @@ typedef struct _NMDeviceInfiniband NMDeviceInfiniband;
typedef struct _NMDeviceModem NMDeviceModem;
typedef struct _NMDeviceOlpcMesh NMDeviceOlpcMesh;
typedef struct _NMDeviceTeam NMDeviceTeam;
typedef struct _NMDeviceTun NMDeviceTun;
typedef struct _NMDeviceVlan NMDeviceVlan;
typedef struct _NMDeviceWifi NMDeviceWifi;
typedef struct _NMDeviceWimax NMDeviceWimax;
......
......@@ -117,6 +117,7 @@ libnm/nm-device-bridge.c
libnm/nm-device-bt.c
libnm/nm-device-ethernet.c
libnm/nm-device-generic.c
libnm/nm-device-tun.c
libnm/nm-device-infiniband.c
libnm/nm-device-modem.c
libnm/nm-device-olpc-mesh.c
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment