]> git.ipfire.org Git - thirdparty/iproute2.git/commitdiff
iplink: add support for IFLA_CARRIER attribute
authorZhang Shengju <zhangshengju@cmss.chinamobile.com>
Wed, 26 Apr 2017 07:08:39 +0000 (15:08 +0800)
committerStephen Hemminger <stephen@networkplumber.org>
Mon, 1 May 2017 16:06:54 +0000 (09:06 -0700)
Add support to set IFLA_CARRIER attribute.

Signed-off-by: Zhang Shengju <zhangshengju@cmss.chinamobile.com>
ip/iplink.c

index 866ad723f4a292ce8309002c952bbdab84d81f46..263bfdde5a42cb43c19566b9a990e2bf378eaac1 100644 (file)
@@ -72,6 +72,7 @@ void iplink_usage(void)
                "                         [ allmulticast { on | off } ]\n"
                "                         [ promisc { on | off } ]\n"
                "                         [ trailers { on | off } ]\n"
+               "                         [ carrier { on | off } ]\n"
                "                         [ txqueuelen PACKETS ]\n"
                "                         [ name NEWNAME ]\n"
                "                         [ address LLADDR ]\n"
@@ -673,6 +674,17 @@ int iplink_parse(int argc, char **argv, struct iplink_req *req,
                                req->i.ifi_flags |= IFF_NOARP;
                        else
                                return on_off("arp", *argv);
+               } else if (strcmp(*argv, "carrier") == 0) {
+                       int carrier;
+                       NEXT_ARG();
+                       if (strcmp(*argv, "on") == 0)
+                               carrier = 1;
+                       else if (strcmp(*argv, "off") == 0)
+                               carrier = 0;
+                       else
+                               return on_off("carrier", *argv);
+
+                       addattr8(&req->n, sizeof(*req), IFLA_CARRIER, carrier);
                } else if (strcmp(*argv, "vf") == 0) {
                        struct rtattr *vflist;