You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
51 lines
1.4 KiB
51 lines
1.4 KiB
Disabling PG currently validates the entire given PG config, |
|
even if no configuration is given. Of course since PG is |
|
being disabled, the configuration wouldn't be used anyway, so |
|
ignore any PG configuration given when disabling it. |
|
|
|
Signed-off-by: Dan Williams <dcbw at redhat.com> |
|
--- |
|
lldp_dcbx_cmds.c | 5 +++++ |
|
1 file changed, 5 insertions(+) |
|
|
|
diff --git a/lldp_dcbx_cmds.c b/lldp_dcbx_cmds.c |
|
index 7fdf6c4..8dcee7a 100644 |
|
--- a/lldp_dcbx_cmds.c |
|
+++ b/lldp_dcbx_cmds.c |
|
@@ -939,14 +939,18 @@ static int set_pg_config(pg_attribs *pg_data, char *port_id, char *ibuf, |
|
cmd_status status = cmd_success; |
|
int i, is_pfc; |
|
int plen; |
|
int off; |
|
bool used[MAX_BANDWIDTH_GROUPS]; |
|
bool uppcts_changed = false; |
|
|
|
+ /* If PG is disabled, skip changing any other attributes */ |
|
+ if (!(pg_data->protocol.Enable)) |
|
+ goto done; |
|
+ |
|
plen=strlen(port_id); |
|
off = DCB_PORT_OFF + plen + CFG_LEN; |
|
|
|
if (ilen == (off + CFG_PG_DLEN)) { |
|
for (i = 0; i < MAX_USER_PRIORITIES; i++) { |
|
flag = *(ibuf+off+PG_UP2TC(i)); |
|
if (flag == CLIF_NOT_SUPPLIED) |
|
@@ -1063,14 +1067,15 @@ static int set_pg_config(pg_attribs *pg_data, char *port_id, char *ibuf, |
|
} |
|
|
|
if (status != cmd_success) { |
|
printf("invalid DCB settings\n"); |
|
return status; |
|
} |
|
|
|
+done: |
|
is_pfc = get_pfc(port_id, &pfc_data); |
|
if (is_pfc == cmd_success) |
|
status = put_pg(port_id, pg_data, &pfc_data); |
|
else |
|
status = put_pg(port_id, pg_data, NULL); |
|
|
|
if (status != cmd_success) |
|
-- |
|
1.8.5.3
|
|
|