swconfig: support sending SWITCH_TYPE_LINK to kernel

Signed-off-by: Rafał Miłecki <zajec5@gmail.com>

SVN-Revision: 48141
This commit is contained in:
Rafał Miłecki 2016-01-06 18:32:13 +00:00
parent 56608a777e
commit a09e713299
1 changed files with 28 additions and 0 deletions

View File

@ -336,6 +336,30 @@ nla_put_failure:
return -1;
}
static int
send_attr_link(struct nl_msg *msg, struct switch_val *val)
{
struct switch_port_link *link = val->value.link;
struct nlattr *n;
n = nla_nest_start(msg, SWITCH_ATTR_OP_VALUE_LINK);
if (!n)
goto nla_put_failure;
if (link->duplex)
NLA_PUT_FLAG(msg, SWITCH_LINK_FLAG_DUPLEX);
if (link->aneg)
NLA_PUT_FLAG(msg, SWITCH_LINK_FLAG_ANEG);
NLA_PUT_U32(msg, SWITCH_LINK_SPEED, link->speed);
nla_nest_end(msg, n);
return 0;
nla_put_failure:
return -1;
}
static int
send_attr_val(struct nl_msg *msg, void *arg)
{
@ -360,6 +384,10 @@ send_attr_val(struct nl_msg *msg, void *arg)
if (send_attr_ports(msg, val) < 0)
goto nla_put_failure;
break;
case SWITCH_TYPE_LINK:
if (send_attr_link(msg, val))
goto nla_put_failure;
break;
default:
goto nla_put_failure;
}