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);
|
nm_clear_g_free (&value);
|
||||||
v = svGetValueStr (ifcfg, "GATEWAY_PING_TIMEOUT", &value);
|
v = svGetValueStr (ifcfg, "GATEWAY_PING_TIMEOUT", &value);
|
||||||
if (v) {
|
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_FLAGS", NMS_IFCFG_KEY_TYPE_IS_PLAIN ),
|
||||||
_KEY_TYPE ("VLAN_ID", 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 ("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 ("WEP_KEY_FLAGS", NMS_IFCFG_KEY_TYPE_IS_PLAIN ),
|
||||||
_KEY_TYPE ("WPA_ALLOW_WPA", 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 ),
|
_KEY_TYPE ("WPA_ALLOW_WPA2", NMS_IFCFG_KEY_TYPE_IS_PLAIN ),
|
||||||
|
@@ -33,7 +33,7 @@ typedef struct {
|
|||||||
NMSIfcfgKeyTypeFlags key_flags;
|
NMSIfcfgKeyTypeFlags key_flags;
|
||||||
} NMSIfcfgKeyTypeInfo;
|
} 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);
|
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)) {
|
} 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_UUID", master);
|
||||||
svSetValueStr (ifcfg, "OVS_PORT", master_iface);
|
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 {
|
} else {
|
||||||
_LOGW ("don't know how to set master for a %s slave",
|
_LOGW ("don't know how to set master for a %s slave",
|
||||||
nm_setting_connection_get_slave_type (s_con));
|
nm_setting_connection_get_slave_type (s_con));
|
||||||
|
Reference in New Issue
Block a user