summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLubomir Rintel <lkundrak@v3.sk>2017-08-01 20:28:05 +0200
committerLubomir Rintel <lkundrak@v3.sk>2017-10-11 11:52:19 +0200
commit3d1f51841c6c10ecfd7130a16daca3cf8f09fc77 (patch)
tree0e3a2ac214dbbab5c88f406c5f3a971d73ec6431
parent616a697f5eaf2d81ebd282ff3678703e6b80a8c5 (diff)
downloadNetworkManager-3d1f51841c6c10ecfd7130a16daca3cf8f09fc77.tar.gz
clients: add support for ovs-bridge setting
-rw-r--r--clients/cli/connections.c1
-rw-r--r--clients/common/nm-meta-setting-desc.c41
-rw-r--r--libnm/NetworkManager.h1
-rw-r--r--shared/nm-meta-setting.c6
-rw-r--r--shared/nm-meta-setting.h1
5 files changed, 50 insertions, 0 deletions
diff --git a/clients/cli/connections.c b/clients/cli/connections.c
index 6085f09782..0690dcda0c 100644
--- a/clients/cli/connections.c
+++ b/clients/cli/connections.c
@@ -134,6 +134,7 @@ const NmcMetaGenericInfo *const nmc_fields_con_active_details_general[] = {
NM_SETTING_BRIDGE_PORT_SETTING_NAME","\
NM_SETTING_TEAM_SETTING_NAME","\
NM_SETTING_TEAM_PORT_SETTING_NAME"," \
+ NM_SETTING_OVS_BRIDGE_SETTING_NAME","\
NM_SETTING_OVS_INTERFACE_SETTING_NAME","\
NM_SETTING_OVS_PORT_SETTING_NAME","\
NM_SETTING_DCB_SETTING_NAME"," \
diff --git a/clients/common/nm-meta-setting-desc.c b/clients/common/nm-meta-setting-desc.c
index 27dccc868a..7553eaa8d3 100644
--- a/clients/common/nm-meta-setting-desc.c
+++ b/clients/common/nm-meta-setting-desc.c
@@ -5008,6 +5008,7 @@ static const NMMetaPropertyInfo *const property_infos_CONNECTION[] = {
.property_typ_data = DEFINE_PROPERTY_TYP_DATA (
.values_static = VALUES_STATIC (NM_SETTING_BOND_SETTING_NAME,
NM_SETTING_BRIDGE_SETTING_NAME,
+ NM_SETTING_OVS_BRIDGE_SETTING_NAME,
NM_SETTING_OVS_PORT_SETTING_NAME,
NM_SETTING_TEAM_SETTING_NAME),
),
@@ -5804,6 +5805,27 @@ static const NMMetaPropertyInfo *const property_infos_PPPOE[] = {
};
#undef _CURRENT_NM_META_SETTING_TYPE
+#define _CURRENT_NM_META_SETTING_TYPE NM_META_SETTING_TYPE_OVS_BRIDGE
+static const NMMetaPropertyInfo *const property_infos_OVS_BRIDGE[] = {
+ PROPERTY_INFO_WITH_DESC (NM_SETTING_OVS_BRIDGE_FAIL_MODE,
+ .property_type = &_pt_gobject_string,
+ .property_typ_data = DEFINE_PROPERTY_TYP_DATA (
+ .values_static = VALUES_STATIC ("secure", "standalone"),
+ ),
+ ),
+ PROPERTY_INFO_WITH_DESC (NM_SETTING_OVS_BRIDGE_MCAST_SNOOPING_ENABLE,
+ .property_type = &_pt_gobject_bool,
+ ),
+ PROPERTY_INFO_WITH_DESC (NM_SETTING_OVS_BRIDGE_RSTP_ENABLE,
+ .property_type = &_pt_gobject_bool,
+ ),
+ PROPERTY_INFO_WITH_DESC (NM_SETTING_OVS_BRIDGE_STP_ENABLE,
+ .property_type = &_pt_gobject_bool,
+ ),
+ NULL
+};
+
+#undef _CURRENT_NM_META_SETTING_TYPE
#define _CURRENT_NM_META_SETTING_TYPE NM_META_SETTING_TYPE_OVS_INTERFACE
static const NMMetaPropertyInfo *const property_infos_OVS_INTERFACE[] = {
PROPERTY_INFO_WITH_DESC (NM_SETTING_OVS_INTERFACE_TYPE,
@@ -6767,6 +6789,7 @@ _setting_init_fcn_wireless (ARGS_SETTING_INIT_FCN)
#define SETTING_PRETTY_NAME_MACSEC N_("MACsec connection")
#define SETTING_PRETTY_NAME_MACVLAN N_("macvlan connection")
#define SETTING_PRETTY_NAME_OLPC_MESH N_("OLPC Mesh connection")
+#define SETTING_PRETTY_NAME_OVS_BRIDGE N_("OpenVSwitch bridge settings")
#define SETTING_PRETTY_NAME_OVS_INTERFACE N_("OpenVSwitch interface settings")
#define SETTING_PRETTY_NAME_OVS_PORT N_("OpenVSwitch port settings")
#define SETTING_PRETTY_NAME_PPP N_("PPP settings")
@@ -6918,6 +6941,14 @@ const NMMetaSettingInfoEditor nm_meta_setting_infos_editor[] = {
),
.setting_init_fcn = _setting_init_fcn_olpc_mesh,
),
+ SETTING_INFO (OVS_BRIDGE,
+ .valid_parts = NM_META_SETTING_VALID_PARTS (
+ NM_META_SETTING_VALID_PART_ITEM (CONNECTION, TRUE),
+ NM_META_SETTING_VALID_PART_ITEM (OVS_BRIDGE, TRUE),
+ NM_META_SETTING_VALID_PART_ITEM (OVS_PORT, FALSE),
+ NM_META_SETTING_VALID_PART_ITEM (WIRED, FALSE),
+ ),
+ ),
SETTING_INFO (OVS_INTERFACE,
.valid_parts = NM_META_SETTING_VALID_PARTS (
NM_META_SETTING_VALID_PART_ITEM (CONNECTION, TRUE),
@@ -7041,6 +7072,12 @@ static const NMMetaSettingValidPartItem *const valid_settings_slave_bridge[] = {
NULL,
};
+static const NMMetaSettingValidPartItem *const valid_settings_slave_ovs_bridge[] = {
+ NM_META_SETTING_VALID_PART_ITEM (OVS_PORT, FALSE),
+ NM_META_SETTING_VALID_PART_ITEM (OVS_INTERFACE, FALSE),
+ NULL,
+};
+
static const NMMetaSettingValidPartItem *const valid_settings_slave_ovs_port[] = {
NM_META_SETTING_VALID_PART_ITEM (OVS_INTERFACE, FALSE),
NULL,
@@ -7066,6 +7103,10 @@ nm_meta_setting_info_valid_parts_for_slave_type (const char *slave_type, const c
NM_SET_OUT (out_slave_name, "bridge-slave");
return valid_settings_slave_bridge;
}
+ if (nm_streq (slave_type, NM_SETTING_OVS_BRIDGE_SETTING_NAME)) {
+ NM_SET_OUT (out_slave_name, "ovs-slave");
+ return valid_settings_slave_ovs_bridge;
+ }
if (nm_streq (slave_type, NM_SETTING_OVS_PORT_SETTING_NAME)) {
NM_SET_OUT (out_slave_name, "ovs-slave");
return valid_settings_slave_ovs_port;
diff --git a/libnm/NetworkManager.h b/libnm/NetworkManager.h
index 4f871e2cc8..dfb75edb83 100644
--- a/libnm/NetworkManager.h
+++ b/libnm/NetworkManager.h
@@ -76,6 +76,7 @@
#include "nm-setting-macsec.h"
#include "nm-setting-macvlan.h"
#include "nm-setting-olpc-mesh.h"
+#include "nm-setting-ovs-bridge.h"
#include "nm-setting-ovs-interface.h"
#include "nm-setting-ovs-port.h"
#include "nm-setting-ppp.h"
diff --git a/shared/nm-meta-setting.c b/shared/nm-meta-setting.c
index c5f6ff9ae3..702467b839 100644
--- a/shared/nm-meta-setting.c
+++ b/shared/nm-meta-setting.c
@@ -43,6 +43,7 @@
#include "nm-setting-macsec.h"
#include "nm-setting-macvlan.h"
#include "nm-setting-olpc-mesh.h"
+#include "nm-setting-ovs-bridge.h"
#include "nm-setting-ovs-interface.h"
#include "nm-setting-ovs-port.h"
#include "nm-setting-ppp.h"
@@ -237,6 +238,11 @@ const NMMetaSettingInfo nm_meta_setting_infos[] = {
.setting_name = NM_SETTING_OLPC_MESH_SETTING_NAME,
.get_setting_gtype = nm_setting_olpc_mesh_get_type,
},
+ [NM_META_SETTING_TYPE_OVS_BRIDGE] = {
+ .meta_type = NM_META_SETTING_TYPE_OVS_BRIDGE,
+ .setting_name = NM_SETTING_OVS_BRIDGE_SETTING_NAME,
+ .get_setting_gtype = nm_setting_ovs_bridge_get_type,
+ },
[NM_META_SETTING_TYPE_OVS_INTERFACE] = {
.meta_type = NM_META_SETTING_TYPE_OVS_INTERFACE,
.setting_name = NM_SETTING_OVS_INTERFACE_SETTING_NAME,
diff --git a/shared/nm-meta-setting.h b/shared/nm-meta-setting.h
index b07bcfbdeb..8b57d358b7 100644
--- a/shared/nm-meta-setting.h
+++ b/shared/nm-meta-setting.h
@@ -75,6 +75,7 @@ typedef enum {
NM_META_SETTING_TYPE_MACSEC,
NM_META_SETTING_TYPE_MACVLAN,
NM_META_SETTING_TYPE_OLPC_MESH,
+ NM_META_SETTING_TYPE_OVS_BRIDGE,
NM_META_SETTING_TYPE_OVS_INTERFACE,
NM_META_SETTING_TYPE_OVS_PORT,
NM_META_SETTING_TYPE_PPP,