diff options
author | Dan Williams <dcbw@redhat.com> | 2014-03-20 12:39:44 -0500 |
---|---|---|
committer | Dan Williams <dcbw@redhat.com> | 2014-03-25 22:46:59 -0500 |
commit | ebc06a001582b780ee29ab4eea838042300b46aa (patch) | |
tree | 030e3720a34519077662154e1ebae854ff7b0f04 /src/nm-dcb.c | |
parent | 32670b52647046536f876b974480059a3d2c4c02 (diff) | |
download | NetworkManager-ebc06a001582b780ee29ab4eea838042300b46aa.tar.gz |
dcb: turn off all DCB features when disabling DCB
Don't just disable DCB, but turn off the features too.
Diffstat (limited to 'src/nm-dcb.c')
-rw-r--r-- | src/nm-dcb.c | 22 |
1 files changed, 20 insertions, 2 deletions
diff --git a/src/nm-dcb.c b/src/nm-dcb.c index cef7ed9932..d937d341dc 100644 --- a/src/nm-dcb.c +++ b/src/nm-dcb.c @@ -228,8 +228,26 @@ _dcb_cleanup (const char *iface, gpointer user_data, GError **error) { - /* FIXME: do we need to turn off features individually here? */ - return do_helper (iface, DCBTOOL, run_func, user_data, error, "dcb off"); + const char *cmds[] = { + "dcb off", + "app:fcoe e:0", + "app:iscsi e:0", + "app:fip e:0", + "pfc e:0", + "pg e:0", + NULL + }; + const char **iter = cmds; + gboolean success = TRUE; + + /* Turn everything off and return first error we get (if any) */ + while (iter && *iter) { + if (!do_helper (iface, DCBTOOL, run_func, user_data, success ? error : NULL, *iter)) + success = FALSE; + iter++; + } + + return success; } gboolean |