## NMSettingVlan

NMSettingVlan — Describes connection properties for VLAN interfaces

## Functions

GQuark | nm_setting_vlan_error_quark ()
NMSetting * | nm_setting_vlan_new ()
const char * | nm_setting_vlan_get_interface_name ()
const char * | nm_setting_vlan_get_parent ()
guint32 | nm_setting_vlan_get_id ()
guint32 | nm_setting_vlan_get_flags ()
gint32 | nm_setting_vlan_get_num_priorities ()
gboolean | nm_setting_vlan_get_priority ()
gboolean | nm_setting_vlan_add_priority ()
void | nm_setting_vlan_remove_priority ()
gboolean | nm_setting_vlan_remove_priority_by_value ()
gboolean | nm_setting_vlan_remove_priority_str_by_value ()
void | nm_setting_vlan_clear_priorities ()
gboolean | nm_setting_vlan_add_priority_str ()

## Properties

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

## Types and Values

#define | NM_SETTING_VLAN_SETTING_NAME
enum | NMSettingVlanError
#define | NM_SETTING_VLAN_ERROR
#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
enum | NMVlanPriorityMap
enum | NMVlanFlags
#define | NM_VLAN_FLAGS_ALL

## Object Hierarchy

        GEnum
        ├── NMSettingVlanError
        ├── NMVlanFlags
        ╰── NMVlanPriorityMap
        GObject
        ╰── NMSetting
            ╰── NMSettingVlan

## Includes

    #include <nm-setting-vlan.h>

## Description

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

## Functions

### 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_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);

#### Parameters

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);

#### Parameters

setting | the NMSettingVlan |

#### Returns

the “parent” property of the setting

### nm_setting_vlan_get_id ()

    guint32
    nm_setting_vlan_get_id (NMSettingVlan *setting);

#### Parameters

setting | the NMSettingVlan |

#### Returns

the “id” property of the setting

### nm_setting_vlan_get_flags ()

    guint32
    nm_setting_vlan_get_flags (NMSettingVlan *setting);

#### Parameters

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.

#### Parameters

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.

#### Parameters

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.

#### Parameters

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.

#### Parameters

setting | the NMSettingVlan |
map | the type of priority map |
idx | the zero-based index of the priority map to remove |

### nm_setting_vlan_remove_priority_by_value ()

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

Removes the priority map `form` :`to` from the “ingress_priority_map” or “egress_priority_map” (according to `map` argument) properties.

#### Parameters

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 priority mapping was found and removed; `FALSE` if it was not.

Since: 0.9.10

### nm_setting_vlan_remove_priority_str_by_value ()

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

Removes the priority map `str` from the “ingress_priority_map” or “egress_priority_map” (according to `map` argument) properties.

#### Parameters

setting | the NMSettingVlan |
map | the type of priority map |
str | the string which contains a priority map, like "3:7" |

#### Returns

`TRUE` if the priority mapping was found and removed; `FALSE` if it was not.

Since: 0.9.10

### 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.

#### Parameters

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.

#### Parameters

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

## Types and Values

### NM_SETTING_VLAN_SETTING_NAME

    #define NM_SETTING_VLAN_SETTING_NAME "vlan"

### enum NMSettingVlanError

#### Members

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_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"

### enum NMVlanPriorityMap

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

#### Members

NM_VLAN_INGRESS_MAP | map for incoming data |
NM_VLAN_EGRESS_MAP | map for outgoing data |

### enum NMVlanFlags

NMVlanFlags values control the behavior of the VLAN interface.

#### Members

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_VLAN_FLAG_MVRP | indicates that this interface should use MVRP to register itself with it's switch |

### NM_VLAN_FLAGS_ALL

    #define             NM_VLAN_FLAGS_ALL

## Property Details

### The `“egress-priority-map”` property

      “egress-priority-map”      GSList_gchararray_ *

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".

Flags: Read / Write

### The `“flags”` property

      “flags”                    guint

One or more flags which control the behavior and features of the VLAN interface. Flags include `NM_VLAN_FLAG_REORDER_HEADERS` (reordering of output packet headers), `NM_VLAN_FLAG_GVRP` (use of the GVRP protocol), and `NM_VLAN_FLAG_LOOSE_BINDING` (loose binding of the interface to its master device's operating state), `NM_VLAN_FLAG_MVRP` (use of the MVRP protocol).

Flags: Read / Write / Construct

Default value: 0

### The `“id”` property

      “id”                       guint

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

Flags: Read / Write / Construct

Allowed values: <= 4095

Default value: 0

### The `“ingress-priority-map”` property

      “ingress-priority-map”     GSList_gchararray_ *

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".

Flags: Read / Write

### The `“interface-name”` property

      “interface-name”           gchar *

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” property, eg "eth2.1". The parent interface may be given by the “parent” property or by the “mac-address” property of an NMSettingWired setting.

Flags: Read / Write / Construct

Default value: NULL

### The `“parent”` property

      “parent”                   gchar *

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 an NMSettingWired setting with a “mac-address” property.

Flags: Read / Write / Construct

Default value: NULL