Update icmp node info query message bit order of query types,

according to draft-ietf-ipngwg-icmp-name-lookups-04 to 05 change.
This is necessary before 4.0, because,
  -This change is non backword compatible
  -Other KAME derived platforms applied 05
  -Author of the draft said he never do backword imcompatible changes
   again.

Approved by: jkh

Obtained from: KAME project
This commit is contained in:
Yoshinobu Inoue 2000-03-09 14:47:21 +00:00
parent a4fcac54a1
commit 690a43db7e
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=57851
3 changed files with 30 additions and 18 deletions

View File

@ -296,6 +296,10 @@ main(argc, argv)
case 'a':
naflags |= NI_NODEADDR_FLAG_ALL;
break;
case 'c':
case 'C':
naflags |= NI_NODEADDR_FLAG_COMPAT;
break;
case 'l':
case 'L':
naflags |= NI_NODEADDR_FLAG_LINKLOCAL;
@ -1553,7 +1557,7 @@ usage()
"AE"
#endif
#endif
"] [-a [alsg]] [-b sockbufsiz] [-c count] [-I interface]\n\
"] [-a [aclsg]] [-b sockbufsiz] [-c count] [-I interface]\n\
[-i wait] [-l preload] [-p pattern] [-s packetsize]\n\
[-h hoplimit] host [hosts...]\n");
exit(1);

View File

@ -915,8 +915,12 @@ ni6_addrs(ni6, m, ifpp)
&ifa6->ia_addr.sin6_addr))
iffound = 1;
if (ifa6->ia6_flags & IN6_IFF_ANYCAST)
if (ifa6->ia6_flags & IN6_IFF_ANYCAST) {
if ((ni6->ni_flags & NI_NODEADDR_FLAG_ANYCAST)
!= 0)
addrsofif++;
continue; /* we need only unicast addresses */
}
if ((ni6->ni_flags & (NI_NODEADDR_FLAG_LINKLOCAL |
NI_NODEADDR_FLAG_SITELOCAL |
@ -986,8 +990,6 @@ ni6_store_addrs(ni6, nni6, ifp0, resid)
} else { /* unicast address */
if (ni6->ni_flags & NI_NODEADDR_FLAG_ANYCAST)
continue;
else
docopy = 1;
}
/* What do we have to do about ::1? */

View File

@ -320,21 +320,27 @@ struct icmp6_nodeinfo {
#if BYTE_ORDER == BIG_ENDIAN
#define NI_SUPTYPE_FLAG_COMPRESS 0x1
#define NI_FQDN_FLAG_VALIDTTL 0x1
#define NI_NODEADDR_FLAG_LINKLOCAL 0x1
#define NI_NODEADDR_FLAG_SITELOCAL 0x2
#define NI_NODEADDR_FLAG_GLOBAL 0x4
#define NI_NODEADDR_FLAG_ALL 0x8
#define NI_NODEADDR_FLAG_TRUNCATE 0x10
#define NI_NODEADDR_FLAG_ANYCAST 0x20 /* just experimental. not in spec */
#elif BYTE_ORDER == LITTLE_ENDIAN
#define NI_SUPTYPE_FLAG_COMPRESS 0x0100
#define NI_FQDN_FLAG_VALIDTTL 0x0100
#define NI_NODEADDR_FLAG_LINKLOCAL 0x0100
#define NI_NODEADDR_FLAG_SITELOCAL 0x0200
#define NI_NODEADDR_FLAG_GLOBAL 0x0400
#define NI_NODEADDR_FLAG_ALL 0x0800
#define NI_NODEADDR_FLAG_TRUNCATE 0x1000
#define NI_NODEADDR_FLAG_ANYCAST 0x2000 /* just experimental. not in spec */
#define NI_SUPTYPE_FLAG_COMPRESS 0x0100
#define NI_FQDN_FLAG_VALIDTTL 0x0100
#endif
#if BYTE_ORDER == BIG_ENDIAN
#define NI_NODEADDR_FLAG_TRUNCATE 0x1
#define NI_NODEADDR_FLAG_ALL 0x2
#define NI_NODEADDR_FLAG_COMPAT 0x4
#define NI_NODEADDR_FLAG_LINKLOCAL 0x8
#define NI_NODEADDR_FLAG_SITELOCAL 0x10
#define NI_NODEADDR_FLAG_GLOBAL 0x20
#define NI_NODEADDR_FLAG_ANYCAST 0x40 /* just experimental. not in spec */
#elif BYTE_ORDER == LITTLE_ENDIAN
#define NI_NODEADDR_FLAG_TRUNCATE 0x0100
#define NI_NODEADDR_FLAG_ALL 0x0200
#define NI_NODEADDR_FLAG_COMPAT 0x0400
#define NI_NODEADDR_FLAG_LINKLOCAL 0x0800
#define NI_NODEADDR_FLAG_SITELOCAL 0x1000
#define NI_NODEADDR_FLAG_GLOBAL 0x2000
#define NI_NODEADDR_FLAG_ANYCAST 0x4000 /* just experimental. not in spec */
#endif
struct ni_reply_fqdn {