NMSettingVlan

NMSettingVlan — Describes connection properties for VLAN interfaces

Synopsis

#include <nm-setting-vlan.h>

#define             NM_SETTING_VLAN_SETTING_NAME
enum                NMSettingVlanError;
#define             NM_SETTING_VLAN_ERROR
GQuark              nm_setting_vlan_error_quark         (void);
#define             NM_SETTING_VLAN_INTERFACE_NAME
#define             NM_SETTING_VLAN_PARENT
#define             NM_SETTING_VLAN_ID
#define             NM_SETTING_VLAN_FLAGS
#define             NM_SETTING_VLAN_INGRESS_PRIORITY_MAP
#define             NM_SETTING_VLAN_EGRESS_PRIORITY_MAP
                    NMSettingVlan;
                    NMSettingVlanClass;
enum                NMVlanPriorityMap;
enum                NMVlanFlags;
NMSetting *         nm_setting_vlan_new                 (void);
const char *        nm_setting_vlan_get_interface_name  (NMSettingVlan *setting);
const char *        nm_setting_vlan_get_parent          (NMSettingVlan *setting);
guint32             nm_setting_vlan_get_id              (NMSettingVlan *setting);
guint32             nm_setting_vlan_get_flags           (NMSettingVlan *setting);
gint32              nm_setting_vlan_get_num_priorities  (NMSettingVlan *setting,
                                                         NMVlanPriorityMap map);
gboolean            nm_setting_vlan_get_priority        (NMSettingVlan *setting,
                                                         NMVlanPriorityMap map,
                                                         guint32 idx,
                                                         guint32 *out_from,
                                                         guint32 *out_to);
gboolean            nm_setting_vlan_add_priority        (NMSettingVlan *setting,
                                                         NMVlanPriorityMap map,
                                                         guint32 from,
                                                         guint32 to);
void                nm_setting_vlan_remove_priority     (NMSettingVlan *setting,
                                                         NMVlanPriorityMap map,
                                                         guint32 idx);
void                nm_setting_vlan_clear_priorities    (NMSettingVlan *setting,
                                                         NMVlanPriorityMap map);
gboolean            nm_setting_vlan_add_priority_str    (NMSettingVlan *setting,
                                                         NMVlanPriorityMap map,
                                                         const char *str);

Object Hierarchy

  GEnum
   +----NMSettingVlanError
  GObject
   +----NMSetting
         +----NMSettingVlan
  GEnum
   +----NMVlanPriorityMap
  GEnum
   +----NMVlanFlags

Properties

  "egress-priority-map"      GSList_gchararray_*   : Read / Write
  "flags"                    guint                 : Read / Write / Construct
  "id"                       guint                 : Read / Write / Construct
  "ingress-priority-map"     GSList_gchararray_*   : Read / Write
  "interface-name"           gchar*                : Read / Write / Construct
  "parent"                   gchar*                : Read / Write / Construct

Description

The NMSettingVlan object is a NMSetting subclass that describes properties necessary for connection to VLAN interfaces.

Details

NM_SETTING_VLAN_SETTING_NAME

#define NM_SETTING_VLAN_SETTING_NAME "vlan"


enum NMSettingVlanError

typedef enum {
	NM_SETTING_VLAN_ERROR_UNKNOWN = 0,      /*< nick=Unknown >*/
	NM_SETTING_VLAN_ERROR_INVALID_PROPERTY, /*< nick=InvalidProperty >*/
	NM_SETTING_VLAN_ERROR_MISSING_PROPERTY, /*< nick=MissingProperty >*/
	NM_SETTING_VLAN_ERROR_INVALID_PARENT    /*< nick=InvalidParent >*/
} NMSettingVlanError;

NM_SETTING_VLAN_ERROR_UNKNOWN

unknown or unclassified error

NM_SETTING_VLAN_ERROR_INVALID_PROPERTY

the property was invalid

NM_SETTING_VLAN_ERROR_MISSING_PROPERTY

the property was missing and is required

NM_SETTING_VLAN_ERROR_INVALID_PARENT

the VLAN parent was specified inconsistently

NM_SETTING_VLAN_ERROR

#define NM_SETTING_VLAN_ERROR nm_setting_vlan_error_quark ()


nm_setting_vlan_error_quark ()

GQuark              nm_setting_vlan_error_quark         (void);

Registers an error quark for NMSettingVlan if necessary.

Returns :

the error quark used for NMSettingVlan errors.

NM_SETTING_VLAN_INTERFACE_NAME

#define NM_SETTING_VLAN_INTERFACE_NAME       "interface-name"


NM_SETTING_VLAN_PARENT

#define NM_SETTING_VLAN_PARENT               "parent"


NM_SETTING_VLAN_ID

#define NM_SETTING_VLAN_ID                   "id"


NM_SETTING_VLAN_FLAGS

#define NM_SETTING_VLAN_FLAGS                "flags"


NM_SETTING_VLAN_INGRESS_PRIORITY_MAP

#define NM_SETTING_VLAN_INGRESS_PRIORITY_MAP "ingress-priority-map"


NM_SETTING_VLAN_EGRESS_PRIORITY_MAP

#define NM_SETTING_VLAN_EGRESS_PRIORITY_MAP  "egress-priority-map"


NMSettingVlan

typedef struct _NMSettingVlan NMSettingVlan;


NMSettingVlanClass

typedef struct {
	NMSettingClass parent;

	/* Padding for future expansion */
	void (*_reserved1) (void);
	void (*_reserved2) (void);
	void (*_reserved3) (void);
	void (*_reserved4) (void);
} NMSettingVlanClass;


enum NMVlanPriorityMap

typedef enum {
	NM_VLAN_INGRESS_MAP,
	NM_VLAN_EGRESS_MAP
} NMVlanPriorityMap;

A selector for traffic priority maps; these map Linux SKB priorities to 802.1p priorities used in VLANs.

NM_VLAN_INGRESS_MAP

map for incoming data

NM_VLAN_EGRESS_MAP

map for outgoing data

enum NMVlanFlags

typedef enum {
	NM_VLAN_FLAG_REORDER_HEADERS = 0x1,
	NM_VLAN_FLAG_GVRP            = 0x2,
	NM_VLAN_FLAG_LOOSE_BINDING   = 0x4,

	/* NOTE: if adding flags update nm-setting-vlan.c::verify() */
} NMVlanFlags;

NMVlanFlags values control the behavior of the VLAN interface.

NM_VLAN_FLAG_REORDER_HEADERS

indicates that this interface should reorder outgoing packet headers to look more like a non-VLAN ethernet interface

NM_VLAN_FLAG_GVRP

indicates that this interface should use GVRP to register itself with it's switch

NM_VLAN_FLAG_LOOSE_BINDING

indicates that this interface's operating state is tied to the underlying network interface but other details (like routing) are not.

nm_setting_vlan_new ()

NMSetting *         nm_setting_vlan_new                 (void);

Creates a new NMSettingVlan object with default values.

Returns :

the new empty NMSettingVlan object. [transfer full]

nm_setting_vlan_get_interface_name ()

const char *        nm_setting_vlan_get_interface_name  (NMSettingVlan *setting);

setting :

the NMSettingVlan

Returns :

the "interface_name" property of the setting

nm_setting_vlan_get_parent ()

const char *        nm_setting_vlan_get_parent          (NMSettingVlan *setting);

setting :

the NMSettingVlan

Returns :

the "parent" property of the setting

nm_setting_vlan_get_id ()

guint32             nm_setting_vlan_get_id              (NMSettingVlan *setting);

setting :

the NMSettingVlan

Returns :

the "id" property of the setting

nm_setting_vlan_get_flags ()

guint32             nm_setting_vlan_get_flags           (NMSettingVlan *setting);

setting :

the NMSettingVlan

Returns :

the "flags" property of the setting

nm_setting_vlan_get_num_priorities ()

gint32              nm_setting_vlan_get_num_priorities  (NMSettingVlan *setting,
                                                         NMVlanPriorityMap map);

Returns the number of entires in the "ingress_priority_map" or "egress_priority_map" properties of this setting.

setting :

the NMSettingVlan

map :

the type of priority map

Returns :

return the number of ingress/egress priority entries, -1 if error

nm_setting_vlan_get_priority ()

gboolean            nm_setting_vlan_get_priority        (NMSettingVlan *setting,
                                                         NMVlanPriorityMap map,
                                                         guint32 idx,
                                                         guint32 *out_from,
                                                         guint32 *out_to);

Retrieve one of the entries of the "ingress_priority_map" or "egress_priority_map" properties of this setting.

setting :

the NMSettingVlan

map :

the type of priority map

idx :

the zero-based index of the ingress/egress priority map entry

out_from :

on return the value of the priority map's 'from' item. [out]

out_to :

on return the value of priority map's 'to' item. [out]

Returns :

TRUE if a priority map was returned, FALSE if error

nm_setting_vlan_add_priority ()

gboolean            nm_setting_vlan_add_priority        (NMSettingVlan *setting,
                                                         NMVlanPriorityMap map,
                                                         guint32 from,
                                                         guint32 to);

Adds a priority mapping to the "ingress_priority_map" or "egress_priority_map" properties of the setting. If from is already in the given priority map, this function will overwrite the existing entry with the new to.

If map is NM_VLAN_INGRESS_MAP then from is the incoming 802.1q VLAN Priority Code Point (PCP) value, and to is the Linux SKB priority value.

If map is NM_VLAN_EGRESS_MAP then from is the Linux SKB priority value and to is the outgoing 802.1q VLAN Priority Code Point (PCP) value.

setting :

the NMSettingVlan

map :

the type of priority map

from :

the priority to map to to

to :

the priority to map from to

Returns :

TRUE if the new priority mapping was successfully added to the list, FALSE if error

nm_setting_vlan_remove_priority ()

void                nm_setting_vlan_remove_priority     (NMSettingVlan *setting,
                                                         NMVlanPriorityMap map,
                                                         guint32 idx);

Removes the priority map at index idx from the "ingress_priority_map" or "egress_priority_map" properties.

setting :

the NMSettingVlan

map :

the type of priority map

idx :

the zero-based index of the priority map to remove

nm_setting_vlan_clear_priorities ()

void                nm_setting_vlan_clear_priorities    (NMSettingVlan *setting,
                                                         NMVlanPriorityMap map);

Clear all the entires from "ingress_priority_map" or "egress_priority_map" properties.

setting :

the NMSettingVlan

map :

the type of priority map

nm_setting_vlan_add_priority_str ()

gboolean            nm_setting_vlan_add_priority_str    (NMSettingVlan *setting,
                                                         NMVlanPriorityMap map,
                                                         const char *str);

Adds a priority map entry into either the "ingress_priority_map" or the "egress_priority_map" properties. The priority map maps the Linux SKB priorities to 802.1p priorities.

setting :

the NMSettingVlan

map :

the type of priority map

str :

the string which contains a priority map, like "3:7"

Returns :

TRUE if the entry was successfully added to the list, or it overwrote the old value, FALSE if error

Property Details

The "egress-priority-map" property

  "egress-priority-map"      GSList_gchararray_*   : Read / Write

For outgoing packets, a list of mappings from Linux SKB priorities to 802.1p priorities. The mapping is given in the format 'from:to' where both 'from' and 'to' are unsigned integers, ie '7:3'.


The "flags" property

  "flags"                    guint                 : Read / Write / Construct

One or more of NMVlanFlags which control the behavior and features of the VLAN interface.

Default value: 0


The "id" property

  "id"                       guint                 : Read / Write / Construct

The VLAN identifier the interface created by this connection should be assigned.

Allowed values: <= 4095

Default value: 0


The "ingress-priority-map" property

  "ingress-priority-map"     GSList_gchararray_*   : Read / Write

For incoming packets, a list of mappings from 802.1p priorities to Linux SKB priorities. The mapping is given in the format 'from:to' where both 'from' and 'to' are unsigned integers, ie '7:3'.


The "interface-name" property

  "interface-name"           gchar*                : Read / Write / Construct

If given, specifies the kernel name of the VLAN interface. If not given, a default name will be constructed from the interface described by the parent interface and the "id" , ex 'eth2.1'. The parent interface may be given by the "parent" property or by a hardware address property, eg "mac-address".

Default value: NULL


The "parent" property

  "parent"                   gchar*                : Read / Write / Construct

If given, specifies the parent interface name or parent connection UUID from which this VLAN interface should be created. If this property is not specified, the connection must contain a hardware address in a hardware-specific setting, like "mac-address".

Default value: NULL