fedora core 6 1.2949 + vserver 2.2.0
[linux-2.6.git] / include / linux / in6.h
index 5b4e89b..4e8350a 100644 (file)
@@ -32,8 +32,8 @@ struct in6_addr
        union 
        {
                __u8            u6_addr8[16];
-               __u16           u6_addr16[8];
-               __u32           u6_addr32[4];
+               __be16          u6_addr16[8];
+               __be32          u6_addr32[4];
        } in6_u;
 #define s6_addr                        in6_u.u6_addr8
 #define s6_addr16              in6_u.u6_addr16
@@ -44,15 +44,17 @@ struct in6_addr
  * NOTE: Be aware the IN6ADDR_* constants and in6addr_* externals are defined
  * in network byte order, not in host byte order as are the IPv4 equivalents
  */
+#if 0
 extern const struct in6_addr in6addr_any;
 #define IN6ADDR_ANY_INIT { { { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 } } }
+#endif
 extern const struct in6_addr in6addr_loopback;
 #define IN6ADDR_LOOPBACK_INIT { { { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 } } }
 
 struct sockaddr_in6 {
        unsigned short int      sin6_family;    /* AF_INET6 */
-       __u16                   sin6_port;      /* Transport layer port # */
-       __u32                   sin6_flowinfo;  /* IPv6 flow information */
+       __be16                  sin6_port;      /* Transport layer port # */
+       __be32                  sin6_flowinfo;  /* IPv6 flow information */
        struct in6_addr         sin6_addr;      /* IPv6 address */
        __u32                   sin6_scope_id;  /* scope id (new in RFC2553) */
 };
@@ -70,7 +72,7 @@ struct ipv6_mreq {
 struct in6_flowlabel_req
 {
        struct in6_addr flr_dst;
-       __u32   flr_label;
+       __be32  flr_label;
        __u8    flr_action;
        __u8    flr_share;
        __u16   flr_flags;
@@ -132,6 +134,7 @@ struct in6_flowlabel_req
 #define IPPROTO_ICMPV6         58      /* ICMPv6                       */
 #define IPPROTO_NONE           59      /* IPv6 no next header          */
 #define IPPROTO_DSTOPTS                60      /* IPv6 destination options     */
+#define IPPROTO_MH             135     /* IPv6 mobility header         */
 
 /*
  *     IPv6 TLV options.
@@ -140,21 +143,22 @@ struct in6_flowlabel_req
 #define IPV6_TLV_PADN          1
 #define IPV6_TLV_ROUTERALERT   5
 #define IPV6_TLV_JUMBO         194
+#define IPV6_TLV_HAO           201     /* home address option */
 
 /*
  *     IPV6 socket options
  */
 
 #define IPV6_ADDRFORM          1
-#define IPV6_PKTINFO           2
-#define IPV6_HOPOPTS           3
-#define IPV6_DSTOPTS           4
-#define IPV6_RTHDR             5
-#define IPV6_PKTOPTIONS                6
+#define IPV6_2292PKTINFO       2
+#define IPV6_2292HOPOPTS       3
+#define IPV6_2292DSTOPTS       4
+#define IPV6_2292RTHDR         5
+#define IPV6_2292PKTOPTIONS    6
 #define IPV6_CHECKSUM          7
-#define IPV6_HOPLIMIT          8
+#define IPV6_2292HOPLIMIT      8
 #define IPV6_NEXTHOP           9
-#define IPV6_AUTHHDR           10
+#define IPV6_AUTHHDR           10      /* obsolete */
 #define IPV6_FLOWINFO          11
 
 #define IPV6_UNICAST_HOPS      16
@@ -196,4 +200,54 @@ struct in6_flowlabel_req
  * MCAST_MSFILTER              48
  */
 
+/*
+ * Advanced API (RFC3542) (1)
+ *
+ * Note: IPV6_RECVRTHDRDSTOPTS does not exist. see net/ipv6/datagram.c.
+ */
+
+#define IPV6_RECVPKTINFO       49
+#define IPV6_PKTINFO           50
+#define IPV6_RECVHOPLIMIT      51
+#define IPV6_HOPLIMIT          52
+#define IPV6_RECVHOPOPTS       53
+#define IPV6_HOPOPTS           54
+#define IPV6_RTHDRDSTOPTS      55
+#define IPV6_RECVRTHDR         56
+#define IPV6_RTHDR             57
+#define IPV6_RECVDSTOPTS       58
+#define IPV6_DSTOPTS           59
+#if 0  /* not yet */
+#define IPV6_RECVPATHMTU       60
+#define IPV6_PATHMTU           61
+#define IPV6_DONTFRAG          62
+#define IPV6_USE_MIN_MTU       63
+#endif
+
+/*
+ * Netfilter (1)
+ *
+ * Following socket options are used in ip6_tables;
+ * see include/linux/netfilter_ipv6/ip6_tables.h.
+ *
+ * IP6T_SO_SET_REPLACE / IP6T_SO_GET_INFO              64
+ * IP6T_SO_SET_ADD_COUNTERS / IP6T_SO_GET_ENTRIES      65
+ */
+
+/*
+ * Advanced API (RFC3542) (2)
+ */
+#define IPV6_RECVTCLASS                66
+#define IPV6_TCLASS            67
+
+/*
+ * Netfilter (2)
+ *
+ * Following socket options are used in ip6_tables;
+ * see include/linux/netfilter_ipv6/ip6_tables.h.
+ *
+ * IP6T_SO_GET_REVISION_MATCH  68
+ * IP6T_SO_GET_REVISION_TARGET 69
+ */
+
 #endif