summaryrefslogtreecommitdiff
path: root/libnm-core/nm-setting-ovs-interface.c
diff options
context:
space:
mode:
Diffstat (limited to 'libnm-core/nm-setting-ovs-interface.c')
-rw-r--r--libnm-core/nm-setting-ovs-interface.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/libnm-core/nm-setting-ovs-interface.c b/libnm-core/nm-setting-ovs-interface.c
index b9e749ba96..3b214af892 100644
--- a/libnm-core/nm-setting-ovs-interface.c
+++ b/libnm-core/nm-setting-ovs-interface.c
@@ -85,6 +85,7 @@ verify (NMSetting *setting, NMConnection *connection, GError **error)
if (connection) {
NMSettingConnection *s_con;
+ const char *slave_type;
s_con = nm_connection_get_setting_connection (connection);
if (!s_con) {
@@ -105,6 +106,20 @@ verify (NMSetting *setting, NMConnection *connection, GError **error)
g_prefix_error (error, "%s.%s: ", NM_SETTING_CONNECTION_SETTING_NAME, NM_SETTING_CONNECTION_MASTER);
return FALSE;
}
+
+ slave_type = nm_setting_connection_get_slave_type (s_con);
+ if ( slave_type
+ && strcmp (slave_type, NM_SETTING_OVS_PORT_SETTING_NAME)) {
+ g_set_error (error,
+ NM_CONNECTION_ERROR,
+ NM_CONNECTION_ERROR_INVALID_PROPERTY,
+ _("A connection with a '%s' setting must have the slave-type set to '%s'. Instead it is '%s'"),
+ NM_SETTING_OVS_INTERFACE_SETTING_NAME,
+ NM_SETTING_OVS_PORT_SETTING_NAME,
+ slave_type);
+ g_prefix_error (error, "%s.%s: ", NM_SETTING_CONNECTION_SETTING_NAME, NM_SETTING_CONNECTION_SLAVE_TYPE);
+ return FALSE;
+ }
}
if (!NM_IN_STRSET (self->type, "internal", "system", "patch", "", NULL)) {