"Usage: ip address {add|change|replace} IFADDR dev IFNAME [ LIFETIME ]\n"
" [ CONFFLAG-LIST ]\n"
" ip address del IFADDR dev IFNAME [mngtmpaddr]\n"
- " ip address {save|flush} [ dev IFNAME ] [ scope SCOPE-ID ]\n"
- " [ to PREFIX ] [ FLAG-LIST ] [ label LABEL ] [up]\n"
+ " ip address {save|flush} [ dev IFNAME ] [ scope SCOPE-ID ] [ to PREFIX ]\n"
+ " [ FLAG-LIST ] [ label LABEL ] [ { up | down } ]\n"
" ip address [ show [ dev IFNAME ] [ scope SCOPE-ID ] [ master DEVICE ]\n"
" [ nomaster ]\n"
" [ type TYPE ] [ to PREFIX ] [ FLAG-LIST ]\n"
- " [ label LABEL ] [up] [ vrf NAME ]\n"
+ " [ label LABEL ] [ { up | down } ] [ vrf NAME ]\n"
" [ proto ADDRPROTO ] ]\n"
" ip address {showdump|restore}\n"
"IFADDR := PREFIX | ADDR peer PREFIX\n"
return -1;
if (filter.up && !(ifi->ifi_flags&IFF_UP))
return -1;
+ if (filter.down && ifi->ifi_flags&IFF_UP)
+ return -1;
parse_rtattr_flags(tb, IFLA_MAX, IFLA_RTA(ifi), len, NLA_F_NESTED);
if (filter.up && !(ifi->ifi_flags&IFF_UP))
continue;
+ if (filter.down && ifi->ifi_flags&IFF_UP)
+ continue;
+
open_json_object(NULL);
print_addrinfo(n, fp);
close_json_object();
filter.scope = scope;
} else if (strcmp(*argv, "up") == 0) {
filter.up = 1;
+ } else if (strcmp(*argv, "down") == 0) {
+ filter.down = 1;
} else if (get_filter(*argv) == 0) {
} else if (strcmp(*argv, "label") == 0) {
" [ gso_max_size BYTES ] [ gso_ipv4_max_size BYTES ] [ gso_max_segs PACKETS ]\n"
" [ gro_max_size BYTES ] [ gro_ipv4_max_size BYTES ]\n"
"\n"
- " ip link show [ DEVICE | group GROUP ] [up] [master DEV] [vrf NAME] [type TYPE]\n"
- " [nomaster] [ novf ]\n"
+ " ip link show [ DEVICE | group GROUP ] [ { up | down } ] [master DEV] [vrf NAME]\n"
+ " [type TYPE] [nomaster] [ novf ]\n"
"\n"
" ip link xstats type TYPE [ ARGS ]\n"
"\n"
.B to
.IR PREFIX " ] [ " FLAG-LIST " ] [ "
.B label
-.IR PATTERN " ] [ " up " ]"
+.IR PATTERN " ] [ { " up " | " down " } ]"
.ti -8
.BR "ip address" " [ " show " [ " dev
.B type
.IR TYPE " ] [ "
.B vrf
-.IR NAME " ] [ "
-.BR up " ] ["
+.IR NAME " ] [ { "
+.BR up " | " down " } ] ["
.BR nomaster " ]"
.B proto
.IR ADDRPROTO " ] ]"
.B up
only list running interfaces.
+.TP
+.B down
+only list not running interfaces.
+
.TP
.B nomaster
only list interfaces with no master.