diff options
Diffstat (limited to 'libnm-core/nm-setting-vxlan.c')
| -rw-r--r-- | libnm-core/nm-setting-vxlan.c | 417 |
1 files changed, 204 insertions, 213 deletions
diff --git a/libnm-core/nm-setting-vxlan.c b/libnm-core/nm-setting-vxlan.c index d00c5a7a..0c116f06 100644 --- a/libnm-core/nm-setting-vxlan.c +++ b/libnm-core/nm-setting-vxlan.c @@ -21,10 +21,10 @@ #include "nm-default.h" +#include "nm-setting-vxlan.h" + #include <stdlib.h> -#include <string.h> -#include "nm-setting-vxlan.h" #include "nm-utils.h" #include "nm-setting-private.h" @@ -36,9 +36,28 @@ * necessary for connection to VXLAN interfaces. **/ -G_DEFINE_TYPE (NMSettingVxlan, nm_setting_vxlan, NM_TYPE_SETTING) +#define DST_PORT_DEFAULT 8472 -#define NM_SETTING_VXLAN_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_SETTING_VXLAN, NMSettingVxlanPrivate)) +/*****************************************************************************/ + +NM_GOBJECT_PROPERTIES_DEFINE_BASE ( + PROP_PARENT, + PROP_ID, + PROP_LOCAL, + PROP_REMOTE, + PROP_SOURCE_PORT_MIN, + PROP_SOURCE_PORT_MAX, + PROP_DESTINATION_PORT, + PROP_TOS, + PROP_TTL, + PROP_AGEING, + PROP_LIMIT, + PROP_LEARNING, + PROP_PROXY, + PROP_RSC, + PROP_L2_MISS, + PROP_L3_MISS, +); typedef struct { char *parent; @@ -59,44 +78,11 @@ typedef struct { gboolean l3_miss; } NMSettingVxlanPrivate; -enum { - PROP_0, - PROP_PARENT, - PROP_ID, - PROP_LOCAL, - PROP_REMOTE, - PROP_SOURCE_PORT_MIN, - PROP_SOURCE_PORT_MAX, - PROP_DESTINATION_PORT, - PROP_TOS, - PROP_TTL, - PROP_AGEING, - PROP_LIMIT, - PROP_LEARNING, - PROP_PROXY, - PROP_RSC, - PROP_L2_MISS, - PROP_L3_MISS, - - LAST_PROP -}; +G_DEFINE_TYPE (NMSettingVxlan, nm_setting_vxlan, NM_TYPE_SETTING) -#define DST_PORT_DEFAULT 8472 +#define NM_SETTING_VXLAN_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), NM_TYPE_SETTING_VXLAN, NMSettingVxlanPrivate)) -/** - * nm_setting_vxlan_new: - * - * Creates a new #NMSettingVxlan object with default values. - * - * Returns: (transfer full): the new empty #NMSettingVxlan object - * - * Since: 1.2 - **/ -NMSetting * -nm_setting_vxlan_new (void) -{ - return (NMSetting *) g_object_new (NM_TYPE_SETTING_VXLAN, NULL); -} +/*****************************************************************************/ /** * nm_setting_vxlan_get_parent: @@ -340,11 +326,6 @@ nm_setting_vxlan_get_l3_miss (NMSettingVxlan *setting) /*****************************************************************************/ -static void -nm_setting_vxlan_init (NMSettingVxlan *setting) -{ -} - static gboolean verify (NMSetting *setting, NMConnection *connection, GError **error) { @@ -422,64 +403,63 @@ verify (NMSetting *setting, NMConnection *connection, GError **error) return TRUE; } +/*****************************************************************************/ + static void -set_property (GObject *object, guint prop_id, - const GValue *value, GParamSpec *pspec) +get_property (GObject *object, guint prop_id, + GValue *value, GParamSpec *pspec) { NMSettingVxlan *setting = NM_SETTING_VXLAN (object); NMSettingVxlanPrivate *priv = NM_SETTING_VXLAN_GET_PRIVATE (setting); switch (prop_id) { case PROP_PARENT: - g_free (priv->parent); - priv->parent = g_value_dup_string (value); + g_value_set_string (value, priv->parent); break; case PROP_ID: - priv->id = g_value_get_uint (value); + g_value_set_uint (value, priv->id); break; case PROP_LOCAL: - g_free (priv->local); - priv->local = g_value_dup_string (value); + g_value_set_string (value, priv->local); break; case PROP_REMOTE: - g_free (priv->remote); - priv->remote = g_value_dup_string (value); + g_value_set_string (value, priv->remote); break; case PROP_SOURCE_PORT_MIN: - priv->source_port_min = g_value_get_uint (value); + g_value_set_uint (value, priv->source_port_min); break; case PROP_SOURCE_PORT_MAX: - priv->source_port_max = g_value_get_uint (value); + g_value_set_uint (value, priv->source_port_max); break; case PROP_DESTINATION_PORT: - priv->destination_port = g_value_get_uint (value); + g_value_set_uint (value, priv->destination_port); break; case PROP_TOS: - priv->tos = g_value_get_uint (value); + g_value_set_uint (value, priv->tos); break; case PROP_AGEING: - priv->ageing = g_value_get_uint (value); + g_value_set_uint (value, priv->ageing); break; case PROP_LIMIT: - priv->limit = g_value_get_uint (value); + g_value_set_uint (value, priv->limit); break; case PROP_PROXY: - priv->proxy = g_value_get_boolean (value); + g_value_set_boolean (value, priv->proxy); break; case PROP_TTL: - priv->ttl = g_value_get_uint (value); + g_value_set_uint (value, priv->ttl); break; case PROP_LEARNING: - priv->learning = g_value_get_boolean (value); + g_value_set_boolean (value, priv->learning); break; case PROP_RSC: - priv->rsc = g_value_get_boolean (value); + g_value_set_boolean (value, priv->rsc); break; case PROP_L2_MISS: - priv->l2_miss = g_value_get_boolean (value); + g_value_set_boolean (value, priv->l2_miss); break; case PROP_L3_MISS: - priv->l3_miss = g_value_get_boolean (value); + g_value_set_boolean (value, priv->l3_miss); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); @@ -488,60 +468,63 @@ set_property (GObject *object, guint prop_id, } static void -get_property (GObject *object, guint prop_id, - GValue *value, GParamSpec *pspec) +set_property (GObject *object, guint prop_id, + const GValue *value, GParamSpec *pspec) { NMSettingVxlan *setting = NM_SETTING_VXLAN (object); NMSettingVxlanPrivate *priv = NM_SETTING_VXLAN_GET_PRIVATE (setting); switch (prop_id) { case PROP_PARENT: - g_value_set_string (value, priv->parent); + g_free (priv->parent); + priv->parent = g_value_dup_string (value); break; case PROP_ID: - g_value_set_uint (value, priv->id); + priv->id = g_value_get_uint (value); break; case PROP_LOCAL: - g_value_set_string (value, priv->local); + g_free (priv->local); + priv->local = g_value_dup_string (value); break; case PROP_REMOTE: - g_value_set_string (value, priv->remote); + g_free (priv->remote); + priv->remote = g_value_dup_string (value); break; case PROP_SOURCE_PORT_MIN: - g_value_set_uint (value, priv->source_port_min); + priv->source_port_min = g_value_get_uint (value); break; case PROP_SOURCE_PORT_MAX: - g_value_set_uint (value, priv->source_port_max); + priv->source_port_max = g_value_get_uint (value); break; case PROP_DESTINATION_PORT: - g_value_set_uint (value, priv->destination_port); + priv->destination_port = g_value_get_uint (value); break; case PROP_TOS: - g_value_set_uint (value, priv->tos); + priv->tos = g_value_get_uint (value); break; case PROP_AGEING: - g_value_set_uint (value, priv->ageing); + priv->ageing = g_value_get_uint (value); break; case PROP_LIMIT: - g_value_set_uint (value, priv->limit); + priv->limit = g_value_get_uint (value); break; case PROP_PROXY: - g_value_set_boolean (value, priv->proxy); + priv->proxy = g_value_get_boolean (value); break; case PROP_TTL: - g_value_set_uint (value, priv->ttl); + priv->ttl = g_value_get_uint (value); break; case PROP_LEARNING: - g_value_set_boolean (value, priv->learning); + priv->learning = g_value_get_boolean (value); break; case PROP_RSC: - g_value_set_boolean (value, priv->rsc); + priv->rsc = g_value_get_boolean (value); break; case PROP_L2_MISS: - g_value_set_boolean (value, priv->l2_miss); + priv->l2_miss = g_value_get_boolean (value); break; case PROP_L3_MISS: - g_value_set_boolean (value, priv->l3_miss); + priv->l3_miss = g_value_get_boolean (value); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); @@ -549,6 +532,28 @@ get_property (GObject *object, guint prop_id, } } +/*****************************************************************************/ + +static void +nm_setting_vxlan_init (NMSettingVxlan *setting) +{ +} + +/** + * nm_setting_vxlan_new: + * + * Creates a new #NMSettingVxlan object with default values. + * + * Returns: (transfer full): the new empty #NMSettingVxlan object + * + * Since: 1.2 + **/ +NMSetting * +nm_setting_vxlan_new (void) +{ + return (NMSetting *) g_object_new (NM_TYPE_SETTING_VXLAN, NULL); +} + static void finalize (GObject *object) { @@ -570,8 +575,8 @@ nm_setting_vxlan_class_init (NMSettingVxlanClass *klass) g_type_class_add_private (klass, sizeof (NMSettingVxlanPrivate)); - object_class->set_property = set_property; object_class->get_property = get_property; + object_class->set_property = set_property; object_class->finalize = finalize; setting_class->verify = verify; @@ -583,14 +588,13 @@ nm_setting_vxlan_class_init (NMSettingVxlanClass *klass) * * Since: 1.2 **/ - g_object_class_install_property - (object_class, PROP_PARENT, - g_param_spec_string (NM_SETTING_VXLAN_PARENT, "", "", - NULL, - G_PARAM_READWRITE | - G_PARAM_CONSTRUCT | - NM_SETTING_PARAM_INFERRABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_PARENT] = + g_param_spec_string (NM_SETTING_VXLAN_PARENT, "", "", + NULL, + G_PARAM_READWRITE | + G_PARAM_CONSTRUCT | + NM_SETTING_PARAM_INFERRABLE | + G_PARAM_STATIC_STRINGS); /** * NMSettingVxlan:id: * @@ -599,14 +603,13 @@ nm_setting_vxlan_class_init (NMSettingVxlanClass *klass) * * Since: 1.2 **/ - g_object_class_install_property - (object_class, PROP_ID, - g_param_spec_uint (NM_SETTING_VXLAN_ID, "", "", - 0, (1 << 24) - 1, 0, - G_PARAM_READWRITE | - G_PARAM_CONSTRUCT | - NM_SETTING_PARAM_INFERRABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_ID] = + g_param_spec_uint (NM_SETTING_VXLAN_ID, "", "", + 0, (1 << 24) - 1, 0, + G_PARAM_READWRITE | + G_PARAM_CONSTRUCT | + NM_SETTING_PARAM_INFERRABLE | + G_PARAM_STATIC_STRINGS); /** * NMSettingVxlan:local: @@ -615,14 +618,13 @@ nm_setting_vxlan_class_init (NMSettingVxlanClass *klass) * * Since: 1.2 **/ - g_object_class_install_property - (object_class, PROP_LOCAL, - g_param_spec_string (NM_SETTING_VXLAN_LOCAL, "", "", - NULL, - G_PARAM_READWRITE | - G_PARAM_CONSTRUCT | - NM_SETTING_PARAM_INFERRABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_LOCAL] = + g_param_spec_string (NM_SETTING_VXLAN_LOCAL, "", "", + NULL, + G_PARAM_READWRITE | + G_PARAM_CONSTRUCT | + NM_SETTING_PARAM_INFERRABLE | + G_PARAM_STATIC_STRINGS); /** * NMSettingVxlan:remote: @@ -633,14 +635,13 @@ nm_setting_vxlan_class_init (NMSettingVxlanClass *klass) * * Since: 1.2 **/ - g_object_class_install_property - (object_class, PROP_REMOTE, - g_param_spec_string (NM_SETTING_VXLAN_REMOTE, "", "", - NULL, - G_PARAM_READWRITE | - G_PARAM_CONSTRUCT | - NM_SETTING_PARAM_INFERRABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_REMOTE] = + g_param_spec_string (NM_SETTING_VXLAN_REMOTE, "", "", + NULL, + G_PARAM_READWRITE | + G_PARAM_CONSTRUCT | + NM_SETTING_PARAM_INFERRABLE | + G_PARAM_STATIC_STRINGS); /** * NMSettingVxlan:source-port-min: @@ -650,14 +651,13 @@ nm_setting_vxlan_class_init (NMSettingVxlanClass *klass) * * Since: 1.2 **/ - g_object_class_install_property - (object_class, PROP_SOURCE_PORT_MIN, - g_param_spec_uint (NM_SETTING_VXLAN_SOURCE_PORT_MIN, "", "", - 0, G_MAXUINT16, 0, - G_PARAM_READWRITE | - G_PARAM_CONSTRUCT | - NM_SETTING_PARAM_INFERRABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_SOURCE_PORT_MIN] = + g_param_spec_uint (NM_SETTING_VXLAN_SOURCE_PORT_MIN, "", "", + 0, G_MAXUINT16, 0, + G_PARAM_READWRITE | + G_PARAM_CONSTRUCT | + NM_SETTING_PARAM_INFERRABLE | + G_PARAM_STATIC_STRINGS); /** * NMSettingVxlan:source-port-max: @@ -667,14 +667,13 @@ nm_setting_vxlan_class_init (NMSettingVxlanClass *klass) * * Since: 1.2 **/ - g_object_class_install_property - (object_class, PROP_SOURCE_PORT_MAX, - g_param_spec_uint (NM_SETTING_VXLAN_SOURCE_PORT_MAX, "", "", - 0, G_MAXUINT16, 0, - G_PARAM_READWRITE | - G_PARAM_CONSTRUCT | - NM_SETTING_PARAM_INFERRABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_SOURCE_PORT_MAX] = + g_param_spec_uint (NM_SETTING_VXLAN_SOURCE_PORT_MAX, "", "", + 0, G_MAXUINT16, 0, + G_PARAM_READWRITE | + G_PARAM_CONSTRUCT | + NM_SETTING_PARAM_INFERRABLE | + G_PARAM_STATIC_STRINGS); /** * NMSettingVxlan:destination-port: @@ -684,14 +683,13 @@ nm_setting_vxlan_class_init (NMSettingVxlanClass *klass) * * Since: 1.2 **/ - g_object_class_install_property - (object_class, PROP_DESTINATION_PORT, - g_param_spec_uint (NM_SETTING_VXLAN_DESTINATION_PORT, "", "", - 0, G_MAXUINT16, DST_PORT_DEFAULT, - G_PARAM_READWRITE | - G_PARAM_CONSTRUCT | - NM_SETTING_PARAM_INFERRABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_DESTINATION_PORT] = + g_param_spec_uint (NM_SETTING_VXLAN_DESTINATION_PORT, "", "", + 0, G_MAXUINT16, DST_PORT_DEFAULT, + G_PARAM_READWRITE | + G_PARAM_CONSTRUCT | + NM_SETTING_PARAM_INFERRABLE | + G_PARAM_STATIC_STRINGS); /** * NMSettingVxlan:ageing: @@ -700,14 +698,13 @@ nm_setting_vxlan_class_init (NMSettingVxlanClass *klass) * * Since: 1.2 **/ - g_object_class_install_property - (object_class, PROP_AGEING, - g_param_spec_uint (NM_SETTING_VXLAN_AGEING, "", "", - 0, G_MAXUINT32, 300, - G_PARAM_READWRITE | - G_PARAM_CONSTRUCT | - NM_SETTING_PARAM_INFERRABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_AGEING] = + g_param_spec_uint (NM_SETTING_VXLAN_AGEING, "", "", + 0, G_MAXUINT32, 300, + G_PARAM_READWRITE | + G_PARAM_CONSTRUCT | + NM_SETTING_PARAM_INFERRABLE | + G_PARAM_STATIC_STRINGS); /** * NMSettingVxlan:limit: @@ -717,14 +714,13 @@ nm_setting_vxlan_class_init (NMSettingVxlanClass *klass) * * Since: 1.2 **/ - g_object_class_install_property - (object_class, PROP_LIMIT, - g_param_spec_uint (NM_SETTING_VXLAN_LIMIT, "", "", - 0, G_MAXUINT32, 0, - G_PARAM_READWRITE | - G_PARAM_CONSTRUCT | - NM_SETTING_PARAM_INFERRABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_LIMIT] = + g_param_spec_uint (NM_SETTING_VXLAN_LIMIT, "", "", + 0, G_MAXUINT32, 0, + G_PARAM_READWRITE | + G_PARAM_CONSTRUCT | + NM_SETTING_PARAM_INFERRABLE | + G_PARAM_STATIC_STRINGS); /** * NMSettingVxlan:tos: @@ -733,14 +729,13 @@ nm_setting_vxlan_class_init (NMSettingVxlanClass *klass) * * Since: 1.2 **/ - g_object_class_install_property - (object_class, PROP_TOS, - g_param_spec_uint (NM_SETTING_VXLAN_TOS, "", "", - 0, 255, 0, - G_PARAM_READWRITE | - G_PARAM_CONSTRUCT | - NM_SETTING_PARAM_INFERRABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_TOS] = + g_param_spec_uint (NM_SETTING_VXLAN_TOS, "", "", + 0, 255, 0, + G_PARAM_READWRITE | + G_PARAM_CONSTRUCT | + NM_SETTING_PARAM_INFERRABLE | + G_PARAM_STATIC_STRINGS); /** * NMSettingVxlan:ttl: @@ -749,14 +744,13 @@ nm_setting_vxlan_class_init (NMSettingVxlanClass *klass) * * Since: 1.2 **/ - g_object_class_install_property - (object_class, PROP_TTL, - g_param_spec_uint (NM_SETTING_VXLAN_TTL, "", "", - 0, 255, 0, - G_PARAM_READWRITE | - G_PARAM_CONSTRUCT | - NM_SETTING_PARAM_INFERRABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_TTL] = + g_param_spec_uint (NM_SETTING_VXLAN_TTL, "", "", + 0, 255, 0, + G_PARAM_READWRITE | + G_PARAM_CONSTRUCT | + NM_SETTING_PARAM_INFERRABLE | + G_PARAM_STATIC_STRINGS); /** * NMSettingVxlan:proxy: @@ -765,14 +759,13 @@ nm_setting_vxlan_class_init (NMSettingVxlanClass *klass) * * Since: 1.2 **/ - g_object_class_install_property - (object_class, PROP_PROXY, - g_param_spec_boolean (NM_SETTING_VXLAN_PROXY, "", "", - FALSE, - G_PARAM_READWRITE | - G_PARAM_CONSTRUCT | - NM_SETTING_PARAM_INFERRABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_PROXY] = + g_param_spec_boolean (NM_SETTING_VXLAN_PROXY, "", "", + FALSE, + G_PARAM_READWRITE | + G_PARAM_CONSTRUCT | + NM_SETTING_PARAM_INFERRABLE | + G_PARAM_STATIC_STRINGS); /** * NMSettingVxlan:learning: @@ -782,14 +775,13 @@ nm_setting_vxlan_class_init (NMSettingVxlanClass *klass) * * Since: 1.2 **/ - g_object_class_install_property - (object_class, PROP_LEARNING, - g_param_spec_boolean (NM_SETTING_VXLAN_LEARNING, "", "", - TRUE, - G_PARAM_READWRITE | - G_PARAM_CONSTRUCT | - NM_SETTING_PARAM_INFERRABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_LEARNING] = + g_param_spec_boolean (NM_SETTING_VXLAN_LEARNING, "", "", + TRUE, + G_PARAM_READWRITE | + G_PARAM_CONSTRUCT | + NM_SETTING_PARAM_INFERRABLE | + G_PARAM_STATIC_STRINGS); /** * NMSettingVxlan:rsc: * @@ -797,14 +789,13 @@ nm_setting_vxlan_class_init (NMSettingVxlanClass *klass) * * Since: 1.2 **/ - g_object_class_install_property - (object_class, PROP_RSC, - g_param_spec_boolean (NM_SETTING_VXLAN_RSC, "", "", - FALSE, - G_PARAM_READWRITE | - G_PARAM_CONSTRUCT | - NM_SETTING_PARAM_INFERRABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_RSC] = + g_param_spec_boolean (NM_SETTING_VXLAN_RSC, "", "", + FALSE, + G_PARAM_READWRITE | + G_PARAM_CONSTRUCT | + NM_SETTING_PARAM_INFERRABLE | + G_PARAM_STATIC_STRINGS); /** * NMSettingVxlan:l2-miss: * @@ -812,14 +803,13 @@ nm_setting_vxlan_class_init (NMSettingVxlanClass *klass) * * Since: 1.2 **/ - g_object_class_install_property - (object_class, PROP_L2_MISS, - g_param_spec_boolean (NM_SETTING_VXLAN_L2_MISS, "", "", - FALSE, - G_PARAM_READWRITE | - G_PARAM_CONSTRUCT | - NM_SETTING_PARAM_INFERRABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_L2_MISS] = + g_param_spec_boolean (NM_SETTING_VXLAN_L2_MISS, "", "", + FALSE, + G_PARAM_READWRITE | + G_PARAM_CONSTRUCT | + NM_SETTING_PARAM_INFERRABLE | + G_PARAM_STATIC_STRINGS); /** * NMSettingVxlan:l3-miss: @@ -828,14 +818,15 @@ nm_setting_vxlan_class_init (NMSettingVxlanClass *klass) * * Since: 1.2 **/ - g_object_class_install_property - (object_class, PROP_L3_MISS, - g_param_spec_boolean (NM_SETTING_VXLAN_L3_MISS, "", "", - FALSE, - G_PARAM_READWRITE | - G_PARAM_CONSTRUCT | - NM_SETTING_PARAM_INFERRABLE | - G_PARAM_STATIC_STRINGS)); + obj_properties[PROP_L3_MISS] = + g_param_spec_boolean (NM_SETTING_VXLAN_L3_MISS, "", "", + FALSE, + G_PARAM_READWRITE | + G_PARAM_CONSTRUCT | + NM_SETTING_PARAM_INFERRABLE | + G_PARAM_STATIC_STRINGS); + + g_object_class_install_properties (object_class, _PROPERTY_ENUMS_LAST, obj_properties); _nm_setting_class_commit (setting_class, NM_META_SETTING_TYPE_VXLAN); } |