Commit 1b944148 authored by Vadim Kochan's avatar Vadim Kochan Committed by Stephen Hemminger

ip link: Allow to filter devices by master dev

Added 'master' option to 'ip link show' command
to filter devices by master dev.
Signed-off-by: default avatarVadim Kochan <vadim4j@gmail.com>
parent 1fa804e0
......@@ -56,6 +56,7 @@ static struct
int flushp;
int flushe;
int group;
int master;
} filter;
static int do_link;
......@@ -542,6 +543,14 @@ int print_linkinfo(const struct sockaddr_nl *who,
return -1;
}
if (tb[IFLA_MASTER]) {
int master = *(int*)RTA_DATA(tb[IFLA_MASTER]);
if (filter.master > 0 && master != filter.master)
return -1;
}
else if (filter.master > 0)
return -1;
if (n->nlmsg_type == RTM_DELLINK)
fprintf(fp, "Deleted ");
......@@ -1277,6 +1286,13 @@ static int ipaddr_list_flush_or_save(int argc, char **argv, int action)
NEXT_ARG();
if (rtnl_group_a2n(&filter.group, *argv))
invarg("Invalid \"group\" value\n", *argv);
} else if (strcmp(*argv, "master") == 0) {
int ifindex;
NEXT_ARG();
ifindex = ll_name_to_index(*argv);
if (!ifindex)
invarg("Device does not exist\n", *argv);
filter.master = ifindex;
} else {
if (strcmp(*argv, "dev") == 0) {
NEXT_ARG();
......
......@@ -82,7 +82,7 @@ void iplink_usage(void)
fprintf(stderr, " [ master DEVICE ]\n");
fprintf(stderr, " [ nomaster ]\n");
fprintf(stderr, " [ addrgenmode { eui64 | none } ]\n");
fprintf(stderr, " ip link show [ DEVICE | group GROUP ] [up]\n");
fprintf(stderr, " ip link show [ DEVICE | group GROUP ] [up] [master DEV]\n");
if (iplink_have_newlink()) {
fprintf(stderr, " ip link help [ TYPE ]\n");
......
......@@ -145,9 +145,10 @@ ip-link \- network device configuration
.B ip link show
.RI "[ " DEVICE " | "
.B group
.IR GROUP " |"
.B up
]
.IR GROUP " | "
.BR up " | "
.B master
.IR DEVICE " ]"
.SH "DESCRIPTION"
.SS ip link add - add virtual link
......@@ -678,6 +679,11 @@ specifies what group of devices to show.
.B up
only display running interfaces.
.TP
.BI master " DEVICE "
.I DEVICE
specifies the master device which enslaves devices to show.
The show command has additional formatting options:
.TP
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment