ip: Support filter links/neighs with no master
Commit d3432bf10f17 ("net: Support filtering interfaces on no master")
in the kernel added support for filtering interfaces/neighbours that
have no master interface.
This patch completes it and adds this support to iproute2:
1. ip link show nomaster
2. ip address show nomaster
3. ip neighbour {show | flush} nomaster
Signed-off-by: Lahav Schlesinger <lschlesinger@drivenets.com>
Signed-off-by: David Ahern <dsahern@gmail.com>
This commit is contained in:
parent
12b3d6a2ad
commit
0431e1e724
|
|
@ -60,6 +60,7 @@ static void usage(void)
|
|||
" ip address {save|flush} [ dev IFNAME ] [ scope SCOPE-ID ]\n"
|
||||
" [ to PREFIX ] [ FLAG-LIST ] [ label LABEL ] [up]\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"
|
||||
" ip address {showdump|restore}\n"
|
||||
|
|
@ -2123,6 +2124,8 @@ static int ipaddr_list_flush_or_save(int argc, char **argv, int action)
|
|||
if (!name_is_vrf(*argv))
|
||||
invarg("Not a valid VRF name\n", *argv);
|
||||
filter.master = ifindex;
|
||||
} else if (strcmp(*argv, "nomaster") == 0) {
|
||||
filter.master = -1;
|
||||
} else if (strcmp(*argv, "type") == 0) {
|
||||
int soff;
|
||||
|
||||
|
|
|
|||
|
|
@ -120,6 +120,7 @@ void iplink_usage(void)
|
|||
" [ gso_max_size BYTES ] | [ gso_max_segs PACKETS ]\n"
|
||||
"\n"
|
||||
" ip link show [ DEVICE | group GROUP ] [up] [master DEV] [vrf NAME] [type TYPE]\n"
|
||||
" [nomaster]\n"
|
||||
"\n"
|
||||
" ip link xstats type TYPE [ ARGS ]\n"
|
||||
"\n"
|
||||
|
|
|
|||
|
|
@ -54,7 +54,7 @@ static void usage(void)
|
|||
" [ dev DEV ] [ router ] [ extern_learn ] [ protocol PROTO ]\n"
|
||||
"\n"
|
||||
" ip neigh { show | flush } [ proxy ] [ to PREFIX ] [ dev DEV ] [ nud STATE ]\n"
|
||||
" [ vrf NAME ]\n"
|
||||
" [ vrf NAME ] [ nomaster ]\n"
|
||||
" ip neigh get { ADDR | proxy ADDR } dev DEV\n"
|
||||
"\n"
|
||||
"STATE := { delay | failed | incomplete | noarp | none |\n"
|
||||
|
|
@ -535,6 +535,8 @@ static int do_show_or_flush(int argc, char **argv, int flush)
|
|||
if (!name_is_vrf(*argv))
|
||||
invarg("Not a valid VRF name\n", *argv);
|
||||
filter.master = ifindex;
|
||||
} else if (strcmp(*argv, "nomaster") == 0) {
|
||||
filter.master = -1;
|
||||
} else if (strcmp(*argv, "unused") == 0) {
|
||||
filter.unused_only = 1;
|
||||
} else if (strcmp(*argv, "nud") == 0) {
|
||||
|
|
|
|||
|
|
@ -49,7 +49,8 @@ ip-address \- protocol address management
|
|||
.IR TYPE " ] [ "
|
||||
.B vrf
|
||||
.IR NAME " ] [ "
|
||||
.BR up " ] ]"
|
||||
.BR up " ] ["
|
||||
.BR nomaster " ] ]"
|
||||
|
||||
.ti -8
|
||||
.BR "ip address" " { " showdump " | " restore " }"
|
||||
|
|
@ -340,6 +341,10 @@ output.
|
|||
.B up
|
||||
only list running interfaces.
|
||||
|
||||
.TP
|
||||
.B nomaster
|
||||
only list interfaces with no master.
|
||||
|
||||
.TP
|
||||
.BR dynamic " and " permanent
|
||||
(IPv6 only) only list addresses installed due to stateless
|
||||
|
|
|
|||
|
|
@ -179,7 +179,8 @@ ip-link \- network device configuration
|
|||
.B type
|
||||
.IR ETYPE " ] ["
|
||||
.B vrf
|
||||
.IR NAME " ]"
|
||||
.IR NAME " ] ["
|
||||
.BR nomaster " ]"
|
||||
|
||||
.ti -8
|
||||
.B ip link xstats
|
||||
|
|
@ -2536,6 +2537,10 @@ interface list by comparing it with the relevant attribute in case the kernel
|
|||
didn't filter already. Therefore any string is accepted, but may lead to empty
|
||||
output.
|
||||
|
||||
.TP
|
||||
.B nomaster
|
||||
only show devices with no master
|
||||
|
||||
.SS ip link xstats - display extended statistics
|
||||
|
||||
.TP
|
||||
|
|
|
|||
|
|
@ -35,7 +35,8 @@ ip-neighbour \- neighbour/arp tables management.
|
|||
.B nud
|
||||
.IR STATE " ] [ "
|
||||
.B vrf
|
||||
.IR NAME " ] "
|
||||
.IR NAME " ] ["
|
||||
.BR nomaster " ]"
|
||||
|
||||
.ti -8
|
||||
.B ip neigh get
|
||||
|
|
@ -191,6 +192,10 @@ only list the neighbours attached to this device.
|
|||
.BI vrf " NAME"
|
||||
only list the neighbours for given VRF.
|
||||
|
||||
.TP
|
||||
.BI nomaster
|
||||
only list neighbours attached to an interface with no master.
|
||||
|
||||
.TP
|
||||
.BI proxy
|
||||
list neighbour proxies.
|
||||
|
|
|
|||
Loading…
Reference in New Issue