diff --git a/ip/ipaddress.c b/ip/ipaddress.c index a732d80c..28d3c2d2 100644 --- a/ip/ipaddress.c +++ b/ip/ipaddress.c @@ -281,6 +281,10 @@ int print_linkinfo(const struct sockaddr_nl *who, if (do_link && tb[IFLA_LINKINFO] && show_details) print_linktype(fp, tb[IFLA_LINKINFO]); + if (do_link && tb[IFLA_IFALIAS]) + fprintf(fp,"\n alias %s", + (const char *) RTA_DATA(tb[IFLA_IFALIAS])); + if (do_link && tb[IFLA_STATS] && show_stats) { struct rtnl_link_stats slocal; struct rtnl_link_stats *s = RTA_DATA(tb[IFLA_STATS]); diff --git a/ip/iplink.c b/ip/iplink.c index fd23db1f..237ea82a 100644 --- a/ip/iplink.c +++ b/ip/iplink.c @@ -67,6 +67,7 @@ void iplink_usage(void) fprintf(stderr, " [ broadcast LLADDR ]\n"); fprintf(stderr, " [ mtu MTU ]\n"); fprintf(stderr, " [ netns PID ]\n"); + fprintf(stderr, " [ alias NAME ]\n"); fprintf(stderr, " ip link show [ DEVICE ]\n"); if (iplink_have_newlink()) { @@ -289,6 +290,12 @@ int iplink_parse(int argc, char **argv, struct iplink_req *req, *type = *argv; argc--; argv++; break; + } else if (matches(*argv, "alias") == 0) { + NEXT_ARG(); + addattr_l(&req->n, sizeof(*req), IFLA_IFALIAS, + *argv, strlen(*argv)); + argc--; argv++; + break; } else { if (strcmp(*argv, "dev") == 0) { NEXT_ARG();