]> bbs.cooldavid.org Git - net-next-2.6.git/blobdiff - include/linux/ipv6.h
[IPV6] MIP6: Add home address option definition.
[net-next-2.6.git] / include / linux / ipv6.h
index 297853c841b4b70d26b0b57e9528e1672885cdc8..5bf4406e26d4709c78deab93a33a91c4a8e8eb20 100644 (file)
@@ -29,6 +29,7 @@ struct in6_ifreq {
 
 #define IPV6_SRCRT_STRICT      0x01    /* this hop must be a neighbor  */
 #define IPV6_SRCRT_TYPE_0      0       /* IPv6 type 0 Routing Header   */
+#define IPV6_SRCRT_TYPE_2      2       /* IPv6 type 2 Routing Header   */
 
 /*
  *     routing header
@@ -73,6 +74,28 @@ struct rt0_hdr {
 #define rt0_type               rt_hdr.type
 };
 
+/*
+ *     routing header type 2
+ */
+
+struct rt2_hdr {
+       struct ipv6_rt_hdr      rt_hdr;
+       __u32                   reserved;
+       struct in6_addr         addr;
+
+#define rt2_type               rt_hdr.type
+};
+
+/*
+ *     home address option in destination options header
+ */
+
+struct ipv6_destopt_hao {
+       __u8                    type;
+       __u8                    length;
+       struct in6_addr         addr;
+} __attribute__ ((__packed__));
+
 struct ipv6_auth_hdr {
        __u8  nexthdr;
        __u8  hdrlen;           /* This one is measured in 32 bit units! */
@@ -242,6 +265,9 @@ struct ipv6_pinfo {
        struct in6_addr         rcv_saddr;
        struct in6_addr         daddr;
        struct in6_addr         *daddr_cache;
+#ifdef CONFIG_IPV6_SUBTREES
+       struct in6_addr         *saddr_cache;
+#endif
 
        __u32                   flow_label;
        __u32                   frag_size;