diff options
Diffstat (limited to 'src/libnm-core-impl/nm-setting-ovs-dpdk.c')
| -rw-r--r-- | src/libnm-core-impl/nm-setting-ovs-dpdk.c | 106 |
1 files changed, 53 insertions, 53 deletions
diff --git a/src/libnm-core-impl/nm-setting-ovs-dpdk.c b/src/libnm-core-impl/nm-setting-ovs-dpdk.c index 3107531b..e26f918b 100644 --- a/src/libnm-core-impl/nm-setting-ovs-dpdk.c +++ b/src/libnm-core-impl/nm-setting-ovs-dpdk.c @@ -10,6 +10,7 @@ #include "nm-connection-private.h" #include "nm-setting-connection.h" #include "nm-setting-private.h" +#include "nm-utils-private.h" /** * SECTION:nm-setting-ovs-dpdk @@ -21,7 +22,7 @@ /*****************************************************************************/ -NM_GOBJECT_PROPERTIES_DEFINE_BASE(PROP_DEVARGS, ); +NM_GOBJECT_PROPERTIES_DEFINE_BASE(PROP_DEVARGS, PROP_N_RXQ, ); /** * NMSettingOvsDpdk: @@ -31,7 +32,8 @@ NM_GOBJECT_PROPERTIES_DEFINE_BASE(PROP_DEVARGS, ); struct _NMSettingOvsDpdk { NMSetting parent; - char *devargs; + char *devargs; + guint32 n_rxq; }; struct _NMSettingOvsDpdkClass { @@ -58,37 +60,20 @@ nm_setting_ovs_dpdk_get_devargs(NMSettingOvsDpdk *self) return self->devargs; } -/*****************************************************************************/ - -static void -get_property(GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) +/** + * nm_setting_ovs_dpdk_get_n_rxq: + * @self: the #NMSettingOvsDpdk + * + * Returns: the #NMSettingOvsDpdk:n-rxq property of the setting + * + * Since: 1.36 + **/ +guint32 +nm_setting_ovs_dpdk_get_n_rxq(NMSettingOvsDpdk *self) { - NMSettingOvsDpdk *self = NM_SETTING_OVS_DPDK(object); - - switch (prop_id) { - case PROP_DEVARGS: - g_value_set_string(value, self->devargs); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); - break; - } -} + g_return_val_if_fail(NM_IS_SETTING_OVS_DPDK(self), 0); -static void -set_property(GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec) -{ - NMSettingOvsDpdk *self = NM_SETTING_OVS_DPDK(object); - - switch (prop_id) { - case PROP_DEVARGS: - g_free(self->devargs); - self->devargs = g_value_dup_string(value); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); - break; - } + return self->n_rxq; } /*****************************************************************************/ @@ -113,24 +98,14 @@ nm_setting_ovs_dpdk_new(void) } static void -finalize(GObject *object) -{ - NMSettingOvsDpdk *self = NM_SETTING_OVS_DPDK(object); - - g_free(self->devargs); - - G_OBJECT_CLASS(nm_setting_ovs_dpdk_parent_class)->finalize(object); -} - -static void nm_setting_ovs_dpdk_class_init(NMSettingOvsDpdkClass *klass) { - GObjectClass * object_class = G_OBJECT_CLASS(klass); - NMSettingClass *setting_class = NM_SETTING_CLASS(klass); + GObjectClass *object_class = G_OBJECT_CLASS(klass); + NMSettingClass *setting_class = NM_SETTING_CLASS(klass); + GArray *properties_override = _nm_sett_info_property_override_create_array(); - object_class->set_property = set_property; - object_class->get_property = get_property; - object_class->finalize = finalize; + object_class->get_property = _nm_setting_property_get_property_direct; + object_class->set_property = _nm_setting_property_set_property_direct; /** * NMSettingOvsDpdk:devargs: @@ -139,14 +114,39 @@ nm_setting_ovs_dpdk_class_init(NMSettingOvsDpdkClass *klass) * * Since: 1.20 **/ - obj_properties[PROP_DEVARGS] = g_param_spec_string( - NM_SETTING_OVS_DPDK_DEVARGS, - "", - "", - NULL, - G_PARAM_READWRITE | NM_SETTING_PARAM_INFERRABLE | G_PARAM_STATIC_STRINGS); + _nm_setting_property_define_direct_string(properties_override, + obj_properties, + NM_SETTING_OVS_DPDK_DEVARGS, + PROP_DEVARGS, + NM_SETTING_PARAM_INFERRABLE, + NMSettingOvsDpdk, + devargs); + + /** + * NMSettingOvsDpdk:n-rxq: + * + * Open vSwitch DPDK number of rx queues. + * Defaults to zero which means to leave the parameter in OVS unspecified + * and effectively configures one queue. + * + * Since: 1.36 + **/ + _nm_setting_property_define_direct_uint32(properties_override, + obj_properties, + NM_SETTING_OVS_DPDK_N_RXQ, + PROP_N_RXQ, + 0, + G_MAXUINT32, + 0, + NM_SETTING_PARAM_INFERRABLE, + NMSettingOvsDpdk, + n_rxq); g_object_class_install_properties(object_class, _PROPERTY_ENUMS_LAST, obj_properties); - _nm_setting_class_commit(setting_class, NM_META_SETTING_TYPE_OVS_DPDK, NULL, NULL, 0); + _nm_setting_class_commit(setting_class, + NM_META_SETTING_TYPE_OVS_DPDK, + NULL, + properties_override, + 0); } |