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 | 46 |
1 files changed, 45 insertions, 1 deletions
diff --git a/src/libnm-core-impl/nm-setting-ovs-dpdk.c b/src/libnm-core-impl/nm-setting-ovs-dpdk.c index 53931f46..3f5cbe11 100644 --- a/src/libnm-core-impl/nm-setting-ovs-dpdk.c +++ b/src/libnm-core-impl/nm-setting-ovs-dpdk.c @@ -22,7 +22,11 @@ /*****************************************************************************/ -NM_GOBJECT_PROPERTIES_DEFINE_BASE(PROP_DEVARGS, PROP_N_RXQ, PROP_N_RXQ_DESC, PROP_N_TXQ_DESC, ); +NM_GOBJECT_PROPERTIES_DEFINE_BASE(PROP_DEVARGS, + PROP_N_RXQ, + PROP_N_RXQ_DESC, + PROP_N_TXQ_DESC, + PROP_LSC_INTERRUPT, ); /** * NMSettingOvsDpdk: @@ -36,6 +40,7 @@ struct _NMSettingOvsDpdk { guint32 n_rxq; guint32 n_rxq_desc; guint32 n_txq_desc; + int lsc_interrupt; }; struct _NMSettingOvsDpdkClass { @@ -110,6 +115,22 @@ nm_setting_ovs_dpdk_get_n_txq_desc(NMSettingOvsDpdk *self) return self->n_txq_desc; } +/** + * nm_setting_ovs_dpdk_get_lsc_interrupt: + * @self: the #NMSettingOvsDpdk + * + * Returns: the #NMSettingOvsDpdk:lsc-interrupt property of the setting + * + * Since: 1.54 + **/ +NMSettingOvsDpdkLscInterrupt +nm_setting_ovs_dpdk_get_lsc_interrupt(NMSettingOvsDpdk *self) +{ + g_return_val_if_fail(NM_IS_SETTING_OVS_DPDK(self), NM_SETTING_OVS_DPDK_LSC_INTERRUPT_IGNORE); + + return self->lsc_interrupt; +} + /*****************************************************************************/ static gboolean @@ -257,6 +278,29 @@ nm_setting_ovs_dpdk_class_init(NMSettingOvsDpdkClass *klass) NMSettingOvsDpdk, n_txq_desc); + /** + * NMSettingOvsDpdk:lsc-interrupt: + * + * Configures the Link State Change (LSC) detection mode for the OVS DPDK interface. + * When set to %NM_SETTING_OVS_DPDK_LSC_INTERRUPT_IGNORE, NetworkManager doesn't + * change the default value configured by Open vSwitch. + * %NM_SETTING_OVS_DPDK_LSC_INTERRUPT_ENABLED enables interrupts. + * %NM_SETTING_OVS_DPDK_LSC_INTERRUPT_DISABLED disables interrupts, thus setting the + * interface in poll mode. + * + * Since: 1.54 + **/ + _nm_setting_property_define_direct_enum(properties_override, + obj_properties, + NM_SETTING_OVS_DPDK_LSC_INTERRUPT, + PROP_LSC_INTERRUPT, + NM_TYPE_SETTING_OVS_DPDK_LSC_INTERRUPT, + NM_SETTING_OVS_DPDK_LSC_INTERRUPT_IGNORE, + NM_SETTING_PARAM_NONE, + NULL, + NMSettingOvsDpdk, + lsc_interrupt); + g_object_class_install_properties(object_class, _PROPERTY_ENUMS_LAST, obj_properties); _nm_setting_class_commit(setting_class, |