[PATCH iproute2 -next v2 2/3] ip, neigh: Add missing NTF_USE support
From: Daniel Borkmann <daniel@iogearbox.net>
Date: 2021-10-25 15:47:43
Subsystem:
the rest · Maintainer:
Linus Torvalds
Currently, ip neigh does not support the NTF_USE flag. Similar to other flags such as extern_learn, add cmdline support. The flag dump support is explicitly missing here, since the kernel does not propagate the flag back to user space. Usage example: # ./ip/ip n replace 192.168.178.30 dev enp5s0 use extern_learn # ./ip/ip n 192.168.178.30 dev enp5s0 lladdr f4:8c:50:5e:71:9a extern_learn REACHABLE [...] Signed-off-by: Daniel Borkmann <daniel@iogearbox.net> --- ip/ipneigh.c | 4 +++- man/man8/ip-neighbour.8 | 8 ++++++++ 2 files changed, 11 insertions(+), 1 deletion(-)
diff --git a/ip/ipneigh.c b/ip/ipneigh.c
index a8006f94..874c9033 100644
--- a/ip/ipneigh.c
+++ b/ip/ipneigh.c@@ -51,7 +51,7 @@ static void usage(void) fprintf(stderr, "Usage: ip neigh { add | del | change | replace }\n" " { ADDR [ lladdr LLADDR ] [ nud STATE ] proxy ADDR }\n" - " [ dev DEV ] [ router ] [ extern_learn ] [ protocol PROTO ]\n" + " [ dev DEV ] [ router ] [ use ] [ extern_learn ] [ protocol PROTO ]\n" "\n" " ip neigh { show | flush } [ proxy ] [ to PREFIX ] [ dev DEV ] [ nud STATE ]\n" " [ vrf NAME ] [ nomaster ]\n"
@@ -148,6 +148,8 @@ static int ipneigh_modify(int cmd, int flags, int argc, char **argv) req.ndm.ndm_flags |= NTF_PROXY; } else if (strcmp(*argv, "router") == 0) { req.ndm.ndm_flags |= NTF_ROUTER; + } else if (strcmp(*argv, "use") == 0) { + req.ndm.ndm_flags |= NTF_USE; } else if (matches(*argv, "extern_learn") == 0) { req.ndm.ndm_flags |= NTF_EXT_LEARNED; } else if (strcmp(*argv, "dev") == 0) {
diff --git a/man/man8/ip-neighbour.8 b/man/man8/ip-neighbour.8
index 02862964..3001cd01 100644
--- a/man/man8/ip-neighbour.8
+++ b/man/man8/ip-neighbour.8@@ -25,6 +25,7 @@ ip-neighbour \- neighbour/arp tables management. .B dev .IR DEV " ] [ " .BR router " ] [ " +.BR use " ] [ " .BR extern_learn " ]" .ti -8
@@ -92,6 +93,13 @@ indicates whether we are proxying for this neighbour entry .BI router indicates whether neighbour is a router +.TP +.BI use +this neigh entry is in "use". This option can be used to indicate to +the kernel that a controller is using this dynamic entry. If the entry +does not exist, the kernel will resolve it. If it exists, an attempt +to refresh the neighbor entry will be triggered. + .TP .BI extern_learn this neigh entry was learned externally. This option can be used to
--
2.27.0