summaryrefslogtreecommitdiffstats
path: root/usr.sbin/tcpdump/print-icmp6.c
diff options
context:
space:
mode:
authorjca <jca@openbsd.org>2016-05-06 17:16:24 +0000
committerjca <jca@openbsd.org>2016-05-06 17:16:24 +0000
commite18a1580cec4ec8f5990dbf0c1707f9b5ce2a069 (patch)
treec9c708c9c179d1ebe3dd61e03acab097282255cb /usr.sbin/tcpdump/print-icmp6.c
parentUnconfuse things by renaming variables to match their contents. (diff)
downloadwireguard-openbsd-e18a1580cec4ec8f5990dbf0c1707f9b5ce2a069.tar.xz
wireguard-openbsd-e18a1580cec4ec8f5990dbf0c1707f9b5ce2a069.zip
In verbose mode, print the router preference contained in RAs.
"pref" keyword taken from tcpdump.org. ok mpi@ sthen@ deraadt@
Diffstat (limited to 'usr.sbin/tcpdump/print-icmp6.c')
-rw-r--r--usr.sbin/tcpdump/print-icmp6.c22
1 files changed, 19 insertions, 3 deletions
diff --git a/usr.sbin/tcpdump/print-icmp6.c b/usr.sbin/tcpdump/print-icmp6.c
index a21c4010309..aaea4d4d308 100644
--- a/usr.sbin/tcpdump/print-icmp6.c
+++ b/usr.sbin/tcpdump/print-icmp6.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: print-icmp6.c,v 1.18 2016/03/15 05:03:11 mmcc Exp $ */
+/* $OpenBSD: print-icmp6.c,v 1.19 2016/05/06 17:16:24 jca Exp $ */
/*
* Copyright (c) 1988, 1989, 1990, 1991, 1993, 1994
@@ -305,8 +305,24 @@ icmp6_print(const u_char *bp, u_int length, const u_char *bp2)
printf("M");
if (p->nd_ra_flags_reserved & ND_RA_FLAG_OTHER)
printf("O");
- if (p->nd_ra_flags_reserved != 0)
- printf(" ");
+ if (p->nd_ra_flags_reserved &
+ (ND_RA_FLAG_MANAGED|ND_RA_FLAG_OTHER))
+ printf(", ");
+ switch (p->nd_ra_flags_reserved
+ & ND_RA_FLAG_RTPREF_MASK) {
+ case ND_RA_FLAG_RTPREF_HIGH:
+ printf("pref=high, ");
+ break;
+ case ND_RA_FLAG_RTPREF_MEDIUM:
+ printf("pref=medium, ");
+ break;
+ case ND_RA_FLAG_RTPREF_LOW:
+ printf("pref=low, ");
+ break;
+ case ND_RA_FLAG_RTPREF_RSV:
+ printf("pref=rsv, ");
+ break;
+ }
printf("router_ltime=%d, ", ntohs(p->nd_ra_router_lifetime));
printf("reachable_time=%u, ",
(u_int32_t)ntohl(p->nd_ra_reachable));