diff options
author | Dan Williams <dcbw@redhat.com> | 2013-11-05 14:11:04 -0600 |
---|---|---|
committer | Dan Williams <dcbw@redhat.com> | 2013-11-05 14:11:04 -0600 |
commit | 154264d99c75ee8db920b3ba5ea609b57c2298d4 (patch) | |
tree | d02794ca0bda69774939af9f96d08832342ed14c | |
parent | beb56eab9a9cb56f0c40b11296feea9274329240 (diff) | |
download | NetworkManager-154264d99c75ee8db920b3ba5ea609b57c2298d4.tar.gz |
ifcfg-rh: clear DCB values when DCB is disabled
-rw-r--r-- | src/settings/plugins/ifcfg-rh/common.h | 24 | ||||
-rw-r--r-- | src/settings/plugins/ifcfg-rh/reader.c | 24 | ||||
-rw-r--r-- | src/settings/plugins/ifcfg-rh/writer.c | 46 |
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; } |