Date: Fri, 4 Jan 2008 13:56:26 -0800 From: "Crist J. Clark" <cristclark@comcast.net> To: net@freebsd.org Subject: Text for IPv6 Scope Message-ID: <20080104215626.GA88922@goku.pumpky.net>
next in thread | raw e-mail | index | archive | help
Anyone up for adding text to the scopeid field in the ifconfig(8) output for IPv6 addresses? Other OSes do. To avoid too much disruption to the current format, the text is appended after the currently printed hexadecimal field. Example: fxp0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 options=8<VLAN_MTU> inet6 fe80::290:27ff:fe13:2540%fxp0 prefixlen 64 scopeid 0x5(site-local) While we're at it, update the in6.h file to include all scopes in RFC4291. Look OK? Anyone up for applying these? Patches (diffs off of a not-too-current CURRENT): Index: sbin/ifconfig/af_inet6.c =================================================================== RCS file: /ncvs/freebsd/src/sbin/ifconfig/af_inet6.c,v retrieving revision 1.5 diff -u -r1.5 af_inet6.c --- sbin/ifconfig/af_inet6.c 3 Feb 2007 03:40:33 -0000 1.5 +++ sbin/ifconfig/af_inet6.c 4 Jan 2008 21:53:26 -0000 @@ -290,8 +290,31 @@ if ((flags6 & IN6_IFF_TEMPORARY) != 0) printf("temporary "); - if (scopeid) - printf("scopeid 0x%x ", scopeid); + if (scopeid) { + printf("scopeid 0x%x", scopeid); + switch (scopeid) { + case __IPV6_ADDR_SCOPE_INTFACELOCAL: + printf("(interface-local) "); + break; + case __IPV6_ADDR_SCOPE_LINKLOCAL: + printf("(link-local) "); + break; + case __IPV6_ADDR_SCOPE_ADMINLOCAL: + printf("(admin-local) "); + break; + case __IPV6_ADDR_SCOPE_SITELOCAL: + printf("(site-local) "); + break; + case __IPV6_ADDR_SCOPE_ORGLOCAL: + printf("(org-local) "); + break; + case __IPV6_ADDR_SCOPE_GLOBAL: + printf("(global) "); + break; + default: + putchar(' '); + } + } if (ip6lifetime && (lifetime.ia6t_preferred || lifetime.ia6t_expire)) { printf("pltime "); Index: sys/netinet6/in6.h =================================================================== RCS file: /ncvs/freebsd/src/sys/netinet6/in6.h,v retrieving revision 1.44 diff -u -r1.44 in6.h --- sys/netinet6/in6.h 28 Mar 2006 12:51:22 -0000 1.44 +++ sys/netinet6/in6.h 4 Jan 2008 21:44:36 -0000 @@ -271,6 +271,7 @@ #define IPV6_ADDR_SCOPE_NODELOCAL 0x01 #define IPV6_ADDR_SCOPE_INTFACELOCAL 0x01 #define IPV6_ADDR_SCOPE_LINKLOCAL 0x02 +#define IPV6_ADDR_SCOPE_ADMINLOCAL 0x04 #define IPV6_ADDR_SCOPE_SITELOCAL 0x05 #define IPV6_ADDR_SCOPE_ORGLOCAL 0x08 /* just used in this file */ #define IPV6_ADDR_SCOPE_GLOBAL 0x0e @@ -278,6 +279,7 @@ #define __IPV6_ADDR_SCOPE_NODELOCAL 0x01 #define __IPV6_ADDR_SCOPE_INTFACELOCAL 0x01 #define __IPV6_ADDR_SCOPE_LINKLOCAL 0x02 +#define __IPV6_ADDR_SCOPE_ADMINLOCAL 0x04 #define __IPV6_ADDR_SCOPE_SITELOCAL 0x05 #define __IPV6_ADDR_SCOPE_ORGLOCAL 0x08 /* just used in this file */ #define __IPV6_ADDR_SCOPE_GLOBAL 0x0e -- Crist J. Clark | cjclark@alum.mit.edu
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20080104215626.GA88922>