fedora core 6 1.2949 + vserver 2.2.0
[linux-2.6.git] / include / linux / icmpv6.h
index 6b2bf70..68d3526 100644 (file)
@@ -7,17 +7,17 @@ struct icmp6hdr {
 
        __u8            icmp6_type;
        __u8            icmp6_code;
-       __u16           icmp6_cksum;
+       __sum16         icmp6_cksum;
 
 
        union {
-               __u32                   un_data32[1];
-               __u16                   un_data16[2];
+               __be32                  un_data32[1];
+               __be16                  un_data16[2];
                __u8                    un_data8[4];
 
                struct icmpv6_echo {
-                       __u16           identifier;
-                       __u16           sequence;
+                       __be16          identifier;
+                       __be16          sequence;
                } u_echo;
 
                 struct icmpv6_nd_advt {
@@ -40,18 +40,20 @@ struct icmp6hdr {
                 struct icmpv6_nd_ra {
                        __u8            hop_limit;
 #if defined(__LITTLE_ENDIAN_BITFIELD)
-                       __u8            reserved:6,
+                       __u8            reserved:4,
+                                       router_pref:2,
                                        other:1,
                                        managed:1;
 
 #elif defined(__BIG_ENDIAN_BITFIELD)
                        __u8            managed:1,
                                        other:1,
-                                       reserved:6;
+                                       router_pref:2,
+                                       reserved:4;
 #else
 #error "Please fix <asm/byteorder.h>"
 #endif
-                       __u16           rt_lifetime;
+                       __be16          rt_lifetime;
                 } u_nd_ra;
 
        } icmp6_dataun;
@@ -70,8 +72,13 @@ struct icmp6hdr {
 #define icmp6_addrconf_managed icmp6_dataun.u_nd_ra.managed
 #define icmp6_addrconf_other   icmp6_dataun.u_nd_ra.other
 #define icmp6_rt_lifetime      icmp6_dataun.u_nd_ra.rt_lifetime
+#define icmp6_router_pref      icmp6_dataun.u_nd_ra.router_pref
 };
 
+#define ICMPV6_ROUTER_PREF_LOW         0x3
+#define ICMPV6_ROUTER_PREF_MEDIUM      0x0
+#define ICMPV6_ROUTER_PREF_HIGH                0x1
+#define ICMPV6_ROUTER_PREF_INVALID     0x2
 
 #define ICMPV6_DEST_UNREACH            1
 #define ICMPV6_PKT_TOOBIG              2
@@ -86,17 +93,15 @@ struct icmp6hdr {
 #define ICMPV6_MGM_REPORT              131
 #define ICMPV6_MGM_REDUCTION           132
 
-/* definitions for MLDv2 */
-
-#define MLD2_MODE_IS_INCLUDE   1
-#define MLD2_MODE_IS_EXCLUDE   2
-#define MLD2_CHANGE_TO_INCLUDE 3
-#define MLD2_CHANGE_TO_EXCLUDE 4
-#define MLD2_ALLOW_NEW_SOURCES 5
-#define MLD2_BLOCK_OLD_SOURCES 6
+#define ICMPV6_NI_QUERY                        139
+#define ICMPV6_NI_REPLY                        140
 
 #define ICMPV6_MLD2_REPORT             143
-#define MLD2_ALL_MCR_INIT { { { 0xff,0x02,0,0,0,0,0,0,0,0,0,0,0,0,0,0x16 } } }
+
+#define ICMPV6_DHAAD_REQUEST           144
+#define ICMPV6_DHAAD_REPLY             145
+#define ICMPV6_MOBILE_PREFIX_SOL       146
+#define ICMPV6_MOBILE_PREFIX_ADV       147
 
 /*
  *     Codes for Destination Unreachable
@@ -139,6 +144,18 @@ struct icmp6_filter {
        __u32           data[8];
 };
 
+/*
+ *     Definitions for MLDv2
+ */
+#define MLD2_MODE_IS_INCLUDE   1
+#define MLD2_MODE_IS_EXCLUDE   2
+#define MLD2_CHANGE_TO_INCLUDE 3
+#define MLD2_CHANGE_TO_EXCLUDE 4
+#define MLD2_ALLOW_NEW_SOURCES 5
+#define MLD2_BLOCK_OLD_SOURCES 6
+
+#define MLD2_ALL_MCR_INIT { { { 0xff,0x02,0,0,0,0,0,0,0,0,0,0,0,0,0,0x16 } } }
+
 #ifdef __KERNEL__
 
 #include <linux/netdevice.h>