ifcfg-rh: clear DCB values when DCB is disabled
This commit is contained in:
@@ -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);
|
||||
|
||||
|
@@ -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,
|
||||
|
@@ -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;
|
||||
}
|
||||
|
Reference in New Issue
Block a user