From a09e713299e3490866b9ce38558de14849d80e3b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= Date: Wed, 6 Jan 2016 18:32:13 +0000 Subject: [PATCH] swconfig: support sending SWITCH_TYPE_LINK to kernel MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Rafał Miłecki SVN-Revision: 48141 --- package/network/config/swconfig/src/swlib.c | 28 +++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/package/network/config/swconfig/src/swlib.c b/package/network/config/swconfig/src/swlib.c index 908e0fb496..eeabbf14e9 100644 --- a/package/network/config/swconfig/src/swlib.c +++ b/package/network/config/swconfig/src/swlib.c @@ -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; }