summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDan Williams <dcbw@redhat.com>2013-11-05 14:11:04 -0600
committerDan Williams <dcbw@redhat.com>2013-11-05 14:11:04 -0600
commit154264d99c75ee8db920b3ba5ea609b57c2298d4 (patch)
treed02794ca0bda69774939af9f96d08832342ed14c
parentbeb56eab9a9cb56f0c40b11296feea9274329240 (diff)
downloadNetworkManager-154264d99c75ee8db920b3ba5ea609b57c2298d4.tar.gz
ifcfg-rh: clear DCB values when DCB is disabled
-rw-r--r--src/settings/plugins/ifcfg-rh/common.h24
-rw-r--r--src/settings/plugins/ifcfg-rh/reader.c24
-rw-r--r--src/settings/plugins/ifcfg-rh/writer.c46
3 files changed, 73 insertions, 21 deletions
diff --git a/src/settings/plugins/ifcfg-rh/common.h b/src/settings/plugins/ifcfg-rh/common.h
index 9f288631e7..c944b4a5bd 100644
--- a/src/settings/plugins/ifcfg-rh/common.h
+++ b/src/settings/plugins/ifcfg-rh/common.h
@@ -54,6 +54,30 @@
#define SECRET_FLAG_NOT_SAVED "ask"
#define SECRET_FLAG_NOT_REQUIRED "unused"
+/* DCB key names */
+#define KEY_DCB_APP_FCOE_ENABLE "DCB_APP_FCOE_ENABLE"
+#define KEY_DCB_APP_FCOE_ADVERTISE "DCB_APP_FCOE_ADVERTISE"
+#define KEY_DCB_APP_FCOE_WILLING "DCB_APP_FCOE_WILLING"
+#define KEY_DCB_APP_FCOE_MODE "DCB_APP_FCOE_MODE"
+#define KEY_DCB_APP_ISCSI_ENABLE "DCB_APP_ISCSI_ENABLE"
+#define KEY_DCB_APP_ISCSI_ADVERTISE "DCB_APP_ISCSI_ADVERTISE"
+#define KEY_DCB_APP_ISCSI_WILLING "DCB_APP_ISCSI_WILLING"
+#define KEY_DCB_APP_FIP_ENABLE "DCB_APP_FIP_ENABLE"
+#define KEY_DCB_APP_FIP_ADVERTISE "DCB_APP_FIP_ADVERTISE"
+#define KEY_DCB_APP_FIP_WILLING "DCB_APP_FIP_WILLING"
+#define KEY_DCB_PFC_ENABLE "DCB_PFC_ENABLE"
+#define KEY_DCB_PFC_ADVERTISE "DCB_PFC_ADVERTISE"
+#define KEY_DCB_PFC_WILLING "DCB_PFC_WILLING"
+#define KEY_DCB_PFC_UP "DCB_PFC_UP"
+#define KEY_DCB_PG_ENABLE "DCB_PG_ENABLE"
+#define KEY_DCB_PG_ADVERTISE "DCB_PG_ADVERTISE"
+#define KEY_DCB_PG_WILLING "DCB_PG_WILLING"
+#define KEY_DCB_PG_ID "DCB_PG_ID"
+#define KEY_DCB_PG_PCT "DCB_PG_PCT"
+#define KEY_DCB_PG_UPPCT "DCB_PG_UPPCT"
+#define KEY_DCB_PG_STRICT "DCB_PG_STRICT"
+#define KEY_DCB_PG_UP2TC "DCB_PG_UP2TC"
+
#define IFCFG_PLUGIN_ERROR (ifcfg_plugin_error_quark ())
GQuark ifcfg_plugin_error_quark (void);
diff --git a/src/settings/plugins/ifcfg-rh/reader.c b/src/settings/plugins/ifcfg-rh/reader.c
index 272f9b4252..325bee6c8c 100644
--- a/src/settings/plugins/ifcfg-rh/reader.c
+++ b/src/settings/plugins/ifcfg-rh/reader.c
@@ -1790,11 +1790,11 @@ enum {
};
static DcbFlagsProperty dcb_flags_props[] = {
- { "DCB_APP_FCOE_ENABLE", "DCB_APP_FCOE_ADVERTISE", "DCB_APP_FCOE_WILLING", NM_SETTING_DCB_APP_FCOE_FLAGS },
- { "DCB_APP_ISCSI_ENABLE", "DCB_APP_ISCSI_ADVERTISE", "DCB_APP_ISCSI_WILLING", NM_SETTING_DCB_APP_ISCSI_FLAGS },
- { "DCB_APP_FIP_ENABLE", "DCB_APP_FIP_ADVERTISE", "DCB_APP_FIP_WILLING", NM_SETTING_DCB_APP_FIP_FLAGS },
- { "DCB_PFC_ENABLE", "DCB_PFC_ADVERTISE", "DCB_PFC_WILLING", NM_SETTING_DCB_PRIORITY_FLOW_CONTROL_FLAGS },
- { "DCB_PG_ENABLE", "DCB_PG_ADVERTISE", "DCB_PG_WILLING", NM_SETTING_DCB_PRIORITY_GROUP_FLAGS },
+ { KEY_DCB_APP_FCOE_ENABLE, KEY_DCB_APP_FCOE_ADVERTISE, KEY_DCB_APP_FCOE_WILLING, NM_SETTING_DCB_APP_FCOE_FLAGS },
+ { KEY_DCB_APP_ISCSI_ENABLE, KEY_DCB_APP_ISCSI_ADVERTISE, KEY_DCB_APP_ISCSI_WILLING, NM_SETTING_DCB_APP_ISCSI_FLAGS },
+ { KEY_DCB_APP_FIP_ENABLE, KEY_DCB_APP_FIP_ADVERTISE, KEY_DCB_APP_FIP_WILLING, NM_SETTING_DCB_APP_FIP_FLAGS },
+ { KEY_DCB_PFC_ENABLE, KEY_DCB_PFC_ADVERTISE, KEY_DCB_PFC_WILLING, NM_SETTING_DCB_PRIORITY_FLOW_CONTROL_FLAGS },
+ { KEY_DCB_PG_ENABLE, KEY_DCB_PG_ADVERTISE, KEY_DCB_PG_WILLING, NM_SETTING_DCB_PRIORITY_GROUP_FLAGS },
{ NULL },
};
@@ -2046,7 +2046,7 @@ make_dcb_setting (shvarFile *ifcfg,
return FALSE;
}
if (nm_setting_dcb_get_app_fcoe_flags (s_dcb) & NM_SETTING_DCB_FLAG_ENABLE) {
- val = svGetValue (ifcfg, "DCB_APP_FCOE_MODE", FALSE);
+ val = svGetValue (ifcfg, KEY_DCB_APP_FCOE_MODE, FALSE);
if (val) {
if (strcmp (val, NM_SETTING_DCB_FCOE_MODE_FABRIC) == 0 ||
strcmp (val, NM_SETTING_DCB_FCOE_MODE_VN2VN) == 0)
@@ -2087,7 +2087,7 @@ make_dcb_setting (shvarFile *ifcfg,
if (!read_dcb_bool_array (ifcfg,
s_dcb,
flags,
- "DCB_PFC_UP",
+ KEY_DCB_PFC_UP,
"PFC",
nm_setting_dcb_set_priority_flow_control,
error)) {
@@ -2102,7 +2102,7 @@ make_dcb_setting (shvarFile *ifcfg,
if (!read_dcb_uint_array (ifcfg,
s_dcb,
flags,
- "DCB_PG_ID",
+ KEY_DCB_PG_ID,
"PGID",
TRUE,
nm_setting_dcb_set_priority_group_id,
@@ -2115,7 +2115,7 @@ make_dcb_setting (shvarFile *ifcfg,
if (!read_dcb_percent_array (ifcfg,
s_dcb,
flags,
- "DCB_PG_PCT",
+ KEY_DCB_PG_PCT,
"PGPCT",
TRUE,
nm_setting_dcb_set_priority_group_bandwidth,
@@ -2128,7 +2128,7 @@ make_dcb_setting (shvarFile *ifcfg,
if (!read_dcb_percent_array (ifcfg,
s_dcb,
flags,
- "DCB_PG_UPPCT",
+ KEY_DCB_PG_UPPCT,
"UPPCT",
FALSE,
nm_setting_dcb_set_priority_bandwidth,
@@ -2141,7 +2141,7 @@ make_dcb_setting (shvarFile *ifcfg,
if (!read_dcb_bool_array (ifcfg,
s_dcb,
flags,
- "DCB_PG_STRICT",
+ KEY_DCB_PG_STRICT,
"STRICT",
nm_setting_dcb_set_priority_strict_bandwidth,
error)) {
@@ -2152,7 +2152,7 @@ make_dcb_setting (shvarFile *ifcfg,
if (!read_dcb_uint_array (ifcfg,
s_dcb,
flags,
- "DCB_PG_UP2TC",
+ KEY_DCB_PG_UP2TC,
"UP2TC",
FALSE,
nm_setting_dcb_set_priority_traffic_class,
diff --git a/src/settings/plugins/ifcfg-rh/writer.c b/src/settings/plugins/ifcfg-rh/writer.c
index 01304c0826..6abbe2a568 100644
--- a/src/settings/plugins/ifcfg-rh/writer.c
+++ b/src/settings/plugins/ifcfg-rh/writer.c
@@ -1592,7 +1592,35 @@ write_dcb_setting (NMConnection *connection, shvarFile *ifcfg, GError **error)
s_dcb = nm_connection_get_setting_dcb (connection);
if (!s_dcb) {
- svSetValue (ifcfg, "DCB", NULL, FALSE);
+ static const char *clear_keys[] = {
+ "DCB",
+ KEY_DCB_APP_FCOE_ENABLE,
+ KEY_DCB_APP_FCOE_ADVERTISE,
+ KEY_DCB_APP_FCOE_WILLING,
+ KEY_DCB_APP_FCOE_MODE,
+ KEY_DCB_APP_ISCSI_ENABLE,
+ KEY_DCB_APP_ISCSI_ADVERTISE,
+ KEY_DCB_APP_ISCSI_WILLING,
+ KEY_DCB_APP_FIP_ENABLE,
+ KEY_DCB_APP_FIP_ADVERTISE,
+ KEY_DCB_APP_FIP_WILLING,
+ KEY_DCB_PFC_ENABLE,
+ KEY_DCB_PFC_ADVERTISE,
+ KEY_DCB_PFC_WILLING,
+ KEY_DCB_PFC_UP,
+ KEY_DCB_PG_ENABLE,
+ KEY_DCB_PG_ADVERTISE,
+ KEY_DCB_PG_WILLING,
+ KEY_DCB_PG_ID,
+ KEY_DCB_PG_PCT,
+ KEY_DCB_PG_UPPCT,
+ KEY_DCB_PG_STRICT,
+ KEY_DCB_PG_UP2TC,
+ NULL };
+ const char **iter;
+
+ for (iter = clear_keys; *iter; iter++)
+ svSetValue (ifcfg, *iter, NULL, FALSE);
return TRUE;
}
@@ -1602,9 +1630,9 @@ write_dcb_setting (NMConnection *connection, shvarFile *ifcfg, GError **error)
nm_setting_dcb_get_app_fcoe_flags (s_dcb),
nm_setting_dcb_get_app_fcoe_priority (s_dcb));
if (nm_setting_dcb_get_app_fcoe_flags (s_dcb) & NM_SETTING_DCB_FLAG_ENABLE)
- svSetValue (ifcfg, "DCB_APP_FCOE_MODE", nm_setting_dcb_get_app_fcoe_mode (s_dcb), FALSE);
+ svSetValue (ifcfg, KEY_DCB_APP_FCOE_MODE, nm_setting_dcb_get_app_fcoe_mode (s_dcb), FALSE);
else
- svSetValue (ifcfg, "DCB_APP_FCOE_MODE", NULL, FALSE);
+ svSetValue (ifcfg, KEY_DCB_APP_FCOE_MODE, NULL, FALSE);
write_dcb_app (ifcfg, "APP_ISCSI",
nm_setting_dcb_get_app_iscsi_flags (s_dcb),
@@ -1614,17 +1642,17 @@ write_dcb_setting (NMConnection *connection, shvarFile *ifcfg, GError **error)
nm_setting_dcb_get_app_fip_priority (s_dcb));
write_dcb_flags (ifcfg, "PFC", nm_setting_dcb_get_priority_flow_control_flags (s_dcb));
- write_dcb_bool_array (ifcfg, "DCB_PFC_UP", s_dcb,
+ write_dcb_bool_array (ifcfg, KEY_DCB_PFC_UP, s_dcb,
nm_setting_dcb_get_priority_flow_control_flags (s_dcb),
nm_setting_dcb_get_priority_flow_control);
flags = nm_setting_dcb_get_priority_group_flags (s_dcb);
write_dcb_flags (ifcfg, "PG", flags);
- write_dcb_uint_array (ifcfg, "DCB_PG_ID", s_dcb, flags, nm_setting_dcb_get_priority_group_id);
- write_dcb_percent_array (ifcfg, "DCB_PG_PCT", s_dcb, flags, nm_setting_dcb_get_priority_group_bandwidth);
- write_dcb_percent_array (ifcfg, "DCB_PG_UPPCT", s_dcb, flags, nm_setting_dcb_get_priority_bandwidth);
- write_dcb_bool_array (ifcfg, "DCB_PG_STRICT", s_dcb, flags, nm_setting_dcb_get_priority_strict_bandwidth);
- write_dcb_uint_array (ifcfg, "DCB_PG_UP2TC", s_dcb, flags, nm_setting_dcb_get_priority_traffic_class);
+ write_dcb_uint_array (ifcfg, KEY_DCB_PG_ID, s_dcb, flags, nm_setting_dcb_get_priority_group_id);
+ write_dcb_percent_array (ifcfg, KEY_DCB_PG_PCT, s_dcb, flags, nm_setting_dcb_get_priority_group_bandwidth);
+ write_dcb_percent_array (ifcfg, KEY_DCB_PG_UPPCT, s_dcb, flags, nm_setting_dcb_get_priority_bandwidth);
+ write_dcb_bool_array (ifcfg, KEY_DCB_PG_STRICT, s_dcb, flags, nm_setting_dcb_get_priority_strict_bandwidth);
+ write_dcb_uint_array (ifcfg, KEY_DCB_PG_UP2TC, s_dcb, flags, nm_setting_dcb_get_priority_traffic_class);
return TRUE;
}