ifcfg-rh: add support for VRF slaves
Even if the ifcfg-rh plugin doesn't support VRF connections, it must be able to read and write other connection types that have a VRF master.
This commit is contained in:
@@ -501,6 +501,24 @@ make_connection_setting (const char *file,
|
||||
}
|
||||
}
|
||||
|
||||
nm_clear_g_free (&value);
|
||||
v = svGetValueStr (ifcfg, "VRF_UUID", &value);
|
||||
if (!v)
|
||||
v = svGetValueStr (ifcfg, "VRF", &value);
|
||||
if (v) {
|
||||
const char *old_value;
|
||||
|
||||
if ((old_value = nm_setting_connection_get_master (s_con))) {
|
||||
PARSE_WARNING ("Already configured as slave of %s. Ignoring VRF{_UUID}=\"%s\"",
|
||||
old_value, v);
|
||||
} else {
|
||||
g_object_set (s_con, NM_SETTING_CONNECTION_MASTER, v, NULL);
|
||||
g_object_set (s_con, NM_SETTING_CONNECTION_SLAVE_TYPE,
|
||||
NM_SETTING_VRF_SETTING_NAME, NULL);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
nm_clear_g_free (&value);
|
||||
v = svGetValueStr (ifcfg, "GATEWAY_PING_TIMEOUT", &value);
|
||||
if (v) {
|
||||
|
@@ -850,6 +850,8 @@ const NMSIfcfgKeyTypeInfo nms_ifcfg_well_known_keys[] = {
|
||||
_KEY_TYPE ("VLAN_FLAGS", NMS_IFCFG_KEY_TYPE_IS_PLAIN ),
|
||||
_KEY_TYPE ("VLAN_ID", NMS_IFCFG_KEY_TYPE_IS_PLAIN ),
|
||||
_KEY_TYPE ("VLAN_INGRESS_PRIORITY_MAP", NMS_IFCFG_KEY_TYPE_IS_PLAIN ),
|
||||
_KEY_TYPE ("VRF", NMS_IFCFG_KEY_TYPE_IS_PLAIN ),
|
||||
_KEY_TYPE ("VRF_UUID", NMS_IFCFG_KEY_TYPE_IS_PLAIN ),
|
||||
_KEY_TYPE ("WEP_KEY_FLAGS", NMS_IFCFG_KEY_TYPE_IS_PLAIN ),
|
||||
_KEY_TYPE ("WPA_ALLOW_WPA", NMS_IFCFG_KEY_TYPE_IS_PLAIN ),
|
||||
_KEY_TYPE ("WPA_ALLOW_WPA2", NMS_IFCFG_KEY_TYPE_IS_PLAIN ),
|
||||
|
@@ -33,7 +33,7 @@ typedef struct {
|
||||
NMSIfcfgKeyTypeFlags key_flags;
|
||||
} NMSIfcfgKeyTypeInfo;
|
||||
|
||||
const NMSIfcfgKeyTypeInfo nms_ifcfg_well_known_keys[225];
|
||||
const NMSIfcfgKeyTypeInfo nms_ifcfg_well_known_keys[227];
|
||||
|
||||
const NMSIfcfgKeyTypeInfo *nms_ifcfg_well_known_key_find_info (const char *key, gssize *out_idx);
|
||||
|
||||
|
@@ -1851,6 +1851,9 @@ write_connection_setting (NMSettingConnection *s_con, shvarFile *ifcfg)
|
||||
} else if (nm_setting_connection_is_slave_type (s_con, NM_SETTING_OVS_PORT_SETTING_NAME)) {
|
||||
svSetValueStr (ifcfg, "OVS_PORT_UUID", master);
|
||||
svSetValueStr (ifcfg, "OVS_PORT", master_iface);
|
||||
} else if (nm_setting_connection_is_slave_type (s_con, NM_SETTING_VRF_SETTING_NAME)) {
|
||||
svSetValueStr (ifcfg, "VRF_UUID", master);
|
||||
svSetValueStr (ifcfg, "VRF", master_iface);
|
||||
} else {
|
||||
_LOGW ("don't know how to set master for a %s slave",
|
||||
nm_setting_connection_get_slave_type (s_con));
|
||||
|
Reference in New Issue
Block a user