summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormpi <mpi@openbsd.org>2014-09-03 10:39:41 +0000
committermpi <mpi@openbsd.org>2014-09-03 10:39:41 +0000
commit48ccdf104cae4d7e85b0ec719f2dd0d13ab68d07 (patch)
tree04232abe1cf46823eefa158fe3e9d6553eeb70a5
parentWhen a route to prefix (connected route) is added, if its associated (diff)
downloadwireguard-openbsd-48ccdf104cae4d7e85b0ec719f2dd0d13ab68d07.tar.xz
wireguard-openbsd-48ccdf104cae4d7e85b0ec719f2dd0d13ab68d07.zip
Be coherent in the way arp(8) and ndp(8) display local entries and
use a new flag `l' to ditinguish them. Also skip broadcast entries, they are not reall ARP entries and will never be resolved to anything, requested by deraadt@. ok bluhm@
-rw-r--r--usr.sbin/arp/arp.88
-rw-r--r--usr.sbin/arp/arp.c9
-rw-r--r--usr.sbin/ndp/ndp.88
-rw-r--r--usr.sbin/ndp/ndp.c16
4 files changed, 21 insertions, 20 deletions
diff --git a/usr.sbin/arp/arp.8 b/usr.sbin/arp/arp.8
index 620249b6a8c..db626a974ba 100644
--- a/usr.sbin/arp/arp.8
+++ b/usr.sbin/arp/arp.8
@@ -1,4 +1,4 @@
-.\" $OpenBSD: arp.8,v 1.34 2014/08/21 10:23:47 mpi Exp $
+.\" $OpenBSD: arp.8,v 1.35 2014/09/03 10:39:41 mpi Exp $
.\" $NetBSD: arp.8,v 1.7 1995/03/01 11:50:59 chopps Exp $
.\"
.\" Copyright (c) 1985, 1991, 1993
@@ -30,7 +30,7 @@
.\"
.\" from: @(#)arp.8 8.1 (Berkeley) 6/6/93
.\"
-.Dd $Mdocdate: August 21 2014 $
+.Dd $Mdocdate: September 3 2014 $
.Dt ARP 8
.Os
.Sh NAME
@@ -99,7 +99,9 @@ or
it will never expire.
.It Flags
Flags on the ARP entry, in a single letter.
-They are: proxy
+They are: local
+.Pq Sq l ,
+proxy
.Pq Sq P
and published
.Pq Sq p .
diff --git a/usr.sbin/arp/arp.c b/usr.sbin/arp/arp.c
index 63729575998..8f243a4c834 100644
--- a/usr.sbin/arp/arp.c
+++ b/usr.sbin/arp/arp.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: arp.c,v 1.60 2014/08/22 22:14:53 sthen Exp $ */
+/* $OpenBSD: arp.c,v 1.61 2014/09/03 10:39:41 mpi Exp $ */
/* $NetBSD: arp.c,v 1.12 1995/04/24 13:25:18 cgd Exp $ */
/*
@@ -493,6 +493,8 @@ search(in_addr_t addr, void (*action)(struct sockaddr_dl *sdl,
rtm = (struct rt_msghdr *)next;
if (rtm->rtm_version != RTM_VERSION)
continue;
+ if (rtm->rtm_flags & RTF_BROADCAST)
+ continue;
sin = (struct sockaddr_inarp *)(next + rtm->rtm_hdrlen);
sdl = (struct sockaddr_dl *)(sin + 1);
if (addr) {
@@ -557,7 +559,7 @@ print_entry(struct sockaddr_dl *sdl, struct sockaddr_inarp *sin,
printf("%-*.*s %-*.*s %*.*s", addrwidth, addrwidth, host,
llwidth, llwidth, ether_str(sdl), ifwidth, ifwidth, ifname);
- if (rtm->rtm_flags & RTF_PERMANENT_ARP)
+ if (rtm->rtm_flags & (RTF_PERMANENT_ARP|RTF_LOCAL|RTF_BROADCAST))
printf(" %-10.10s", "permanent");
else if (rtm->rtm_rmx.rmx_expire == 0)
printf(" %-10.10s", "static");
@@ -567,7 +569,8 @@ print_entry(struct sockaddr_dl *sdl, struct sockaddr_inarp *sin,
else
printf(" %-10.10s", "expired");
- snprintf(flgbuf, sizeof(flgbuf), "%s%s",
+ snprintf(flgbuf, sizeof(flgbuf), "%s%s%s",
+ (rtm->rtm_flags & RTF_LOCAL) ? "l" : "",
(sin->sin_other & SIN_PROXY) ? "P" : "",
(rtm->rtm_flags & RTF_ANNOUNCE) ? "p" : "");
diff --git a/usr.sbin/ndp/ndp.8 b/usr.sbin/ndp/ndp.8
index 396e81105c9..eeed3fd8906 100644
--- a/usr.sbin/ndp/ndp.8
+++ b/usr.sbin/ndp/ndp.8
@@ -1,4 +1,4 @@
-.\" $OpenBSD: ndp.8,v 1.32 2014/07/12 17:03:47 henning Exp $
+.\" $OpenBSD: ndp.8,v 1.33 2014/09/03 10:39:41 mpi Exp $
.\" $KAME: ndp.8,v 1.28 2002/07/17 08:46:33 itojun Exp $
.\"
.\" Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project.
@@ -28,7 +28,7 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.Dd $Mdocdate: July 12 2014 $
+.Dd $Mdocdate: September 3 2014 $
.Dt NDP 8
.Os
.\"
@@ -105,7 +105,9 @@ Unknown state (should never happen).
.El
.It Flags
Flags on the neighbor cache entry, in a single letter.
-They are: Router
+They are: local
+.Pq Sq l ,
+Router
.Pq Sq R
and proxy neighbor advertisement
.Pq Sq p .
diff --git a/usr.sbin/ndp/ndp.c b/usr.sbin/ndp/ndp.c
index 98e22d56dc7..9655df21a51 100644
--- a/usr.sbin/ndp/ndp.c
+++ b/usr.sbin/ndp/ndp.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: ndp.c,v 1.56 2014/08/22 22:37:32 sthen Exp $ */
+/* $OpenBSD: ndp.c,v 1.57 2014/09/03 10:39:41 mpi Exp $ */
/* $KAME: ndp.c,v 1.101 2002/07/17 08:46:33 itojun Exp $ */
/*
@@ -714,23 +714,17 @@ again:;
* other flags. R: router, P: proxy, W: ??
*/
if ((rtm->rtm_addrs & RTA_NETMASK) == 0) {
- snprintf(flgbuf, sizeof(flgbuf), "%s%s",
+ snprintf(flgbuf, sizeof(flgbuf), "%s%s%s",
+ (rtm->rtm_flags & RTF_LOCAL) ? "l" : "",
isrouter ? "R" : "",
(rtm->rtm_flags & RTF_ANNOUNCE) ? "p" : "");
} else {
sin = (struct sockaddr_in6 *)
(sdl->sdl_len + (char *)sdl);
-#if 0 /* W and P are mystery even for us */
- snprintf(flgbuf, sizeof(flgbuf), "%s%s%s%s",
+ snprintf(flgbuf, sizeof(flgbuf), "%s%s%s",
+ (rtm->rtm_flags & RTF_LOCAL) ? "l" : "",
isrouter ? "R" : "",
- !IN6_IS_ADDR_UNSPECIFIED(&sin->sin6_addr) ? "P" : "",
- (sin->sin6_len != sizeof(struct sockaddr_in6)) ? "W" : "",
(rtm->rtm_flags & RTF_ANNOUNCE) ? "p" : "");
-#else
- snprintf(flgbuf, sizeof(flgbuf), "%s%s",
- isrouter ? "R" : "",
- (rtm->rtm_flags & RTF_ANNOUNCE) ? "p" : "");
-#endif
}
printf(" %s", flgbuf);