]> The Tcpdump Group git mirrors - tcpdump/blobdiff - icmp6.h
Update from current NetBSD version of ieee80211_radiotap.h.
[tcpdump] / icmp6.h
diff --git a/icmp6.h b/icmp6.h
index f75075c9fdd4b437f2f71014e6288ee753b99275..3b782a4461c14b0aefc43fb47904e1231b7abcf0 100644 (file)
--- a/icmp6.h
+++ b/icmp6.h
@@ -1,4 +1,4 @@
-/* @(#) $Header: /tcpdump/master/tcpdump/icmp6.h,v 1.9 2001-06-01 03:32:27 itojun Exp $ (LBL) */
+/* @(#) $Header: /tcpdump/master/tcpdump/icmp6.h,v 1.16.2.1 2005-09-05 09:29:28 guy Exp $ (LBL) */
 /*     $NetBSD: icmp6.h,v 1.13 2000/08/03 16:30:37 itojun Exp $        */
 /*     $KAME: icmp6.h,v 1.22 2000/08/03 15:25:16 jinmei Exp $  */
 
@@ -104,9 +104,9 @@ struct icmp6_hdr {
 #define MLD6_LISTENER_DONE             132     /* multicast listener done */
 
 #define ND_ROUTER_SOLICIT              133     /* router solicitation */
-#define ND_ROUTER_ADVERT               134     /* router advertisment */
+#define ND_ROUTER_ADVERT               134     /* router advertisement */
 #define ND_NEIGHBOR_SOLICIT            135     /* neighbor solicitation */
-#define ND_NEIGHBOR_ADVERT             136     /* neighbor advertisment */
+#define ND_NEIGHBOR_ADVERT             136     /* neighbor advertisement */
 #define ND_REDIRECT                    137     /* redirect */
 
 #define ICMP6_ROUTER_RENUMBERING       138     /* router renumbering */
@@ -117,12 +117,20 @@ struct icmp6_hdr {
 #define ICMP6_FQDN_REPLY               140     /* FQDN reply */
 #define ICMP6_NI_QUERY                 139     /* node information request */
 #define ICMP6_NI_REPLY                 140     /* node information reply */
+#define IND_SOLICIT                    141     /* inverse neighbor solicitation */
+#define IND_ADVERT                     142     /* inverse neighbor advertisement */
 
-/* The definitions below are experimental. TBA */
-#define MLD6_MTRACE_RESP               141     /* mtrace response(to sender) */
-#define MLD6_MTRACE                    142     /* mtrace messages */
+#define ICMP6_V2_MEMBERSHIP_REPORT     143     /* v2 membership report */
+#define MLDV2_LISTENER_REPORT          143     /* v2 multicast listener report */
+#define ICMP6_HADISCOV_REQUEST         144
+#define ICMP6_HADISCOV_REPLY           145
+#define ICMP6_MOBILEPREFIX_SOLICIT     146
+#define ICMP6_MOBILEPREFIX_ADVERT      147
 
-#define ICMP6_MAXTYPE                  142
+#define MLD6_MTRACE_RESP               200     /* mtrace response(to sender) */
+#define MLD6_MTRACE                    201     /* mtrace messages */
+
+#define ICMP6_MAXTYPE                  201
 
 #define ICMP6_DST_UNREACH_NOROUTE      0       /* no route to destination */
 #define ICMP6_DST_UNREACH_ADMIN                1       /* administratively prohibited */
@@ -170,6 +178,9 @@ struct mld6_hdr {
 #define mld6_maxdelay  mld6_hdr.icmp6_data16[0]
 #define mld6_reserved  mld6_hdr.icmp6_data16[1]
 
+#define MLD_MINLEN     24
+#define MLDV2_MINLEN   28
+
 /*
  * Neighbor Discovery
  */
@@ -198,6 +209,19 @@ struct nd_router_advert {  /* router advertisement */
 #define nd_ra_flags_reserved   nd_ra_hdr.icmp6_data8[1]
 #define ND_RA_FLAG_MANAGED     0x80
 #define ND_RA_FLAG_OTHER       0x40
+#define ND_RA_FLAG_HOME_AGENT  0x20
+
+/*
+ * Router preference values based on draft-draves-ipngwg-router-selection-01.
+ * These are non-standard definitions.
+ */
+#define ND_RA_FLAG_RTPREF_MASK 0x18 /* 00011000 */
+
+#define ND_RA_FLAG_RTPREF_HIGH 0x08 /* 00001000 */
+#define ND_RA_FLAG_RTPREF_MEDIUM       0x00 /* 00000000 */
+#define ND_RA_FLAG_RTPREF_LOW  0x18 /* 00011000 */
+#define ND_RA_FLAG_RTPREF_RSV  0x10 /* 00010000 */
+
 #define nd_ra_router_lifetime  nd_ra_hdr.icmp6_data16[1]
 
 struct nd_neighbor_solicit {   /* neighbor solicitation */
@@ -221,10 +245,10 @@ struct nd_neighbor_advert {       /* neighbor advertisement */
 #define nd_na_code             nd_na_hdr.icmp6_code
 #define nd_na_cksum            nd_na_hdr.icmp6_cksum
 #define nd_na_flags_reserved   nd_na_hdr.icmp6_data32[0]
-/* netowkr endian */
-#define ND_NA_FLAG_ROUTER              ((u_int32_t)htonl(0x80000000))
-#define ND_NA_FLAG_SOLICITED           ((u_int32_t)htonl(0x40000000))
-#define ND_NA_FLAG_OVERRIDE            ((u_int32_t)htonl(0x20000000))
+
+#define ND_NA_FLAG_ROUTER              0x80000000
+#define ND_NA_FLAG_SOLICITED           0x40000000
+#define ND_NA_FLAG_OVERRIDE            0x20000000
 
 struct nd_redirect {           /* redirect */
        struct icmp6_hdr        nd_rd_hdr;
@@ -259,9 +283,9 @@ struct nd_opt_prefix_info { /* prefix information */
        u_int8_t        nd_opt_pi_len;
        u_int8_t        nd_opt_pi_prefix_len;
        u_int8_t        nd_opt_pi_flags_reserved;
-       u_int32_t       nd_opt_pi_valid_time;
-       u_int32_t       nd_opt_pi_preferred_time;
-       u_int32_t       nd_opt_pi_reserved2;
+       u_int8_t        nd_opt_pi_valid_time[4];
+       u_int8_t        nd_opt_pi_preferred_time[4];
+       u_int8_t        nd_opt_pi_reserved2[4];
        struct in6_addr nd_opt_pi_prefix;
 };