netlink: fix NETLINK_RECV_NO_ENOBUFS in netlink_set_err()
[linux-2.6.git] / include / linux / if_tunnel.h
index f1fbe9c..1822d63 100644 (file)
@@ -3,6 +3,11 @@
 
 #include <linux/types.h>
 
+#ifdef __KERNEL__
+#include <linux/ip.h>
+#include <linux/in6.h>
+#endif
+
 #define SIOCGETTUNNEL   (SIOCDEVPRIVATE + 0)
 #define SIOCADDTUNNEL   (SIOCDEVPRIVATE + 1)
 #define SIOCDELTUNNEL   (SIOCDEVPRIVATE + 2)
 #define SIOCADDPRL      (SIOCDEVPRIVATE + 5)
 #define SIOCDELPRL      (SIOCDEVPRIVATE + 6)
 #define SIOCCHGPRL      (SIOCDEVPRIVATE + 7)
+#define SIOCGET6RD      (SIOCDEVPRIVATE + 8)
+#define SIOCADD6RD      (SIOCDEVPRIVATE + 9)
+#define SIOCDEL6RD      (SIOCDEVPRIVATE + 10)
+#define SIOCCHG6RD      (SIOCDEVPRIVATE + 11)
+
+#define GRE_CSUM       __cpu_to_be16(0x8000)
+#define GRE_ROUTING    __cpu_to_be16(0x4000)
+#define GRE_KEY                __cpu_to_be16(0x2000)
+#define GRE_SEQ                __cpu_to_be16(0x1000)
+#define GRE_STRICT     __cpu_to_be16(0x0800)
+#define GRE_REC                __cpu_to_be16(0x0700)
+#define GRE_FLAGS      __cpu_to_be16(0x00F8)
+#define GRE_VERSION    __cpu_to_be16(0x0007)
 
-#define GRE_CSUM       __constant_htons(0x8000)
-#define GRE_ROUTING    __constant_htons(0x4000)
-#define GRE_KEY                __constant_htons(0x2000)
-#define GRE_SEQ                __constant_htons(0x1000)
-#define GRE_STRICT     __constant_htons(0x0800)
-#define GRE_REC                __constant_htons(0x0700)
-#define GRE_FLAGS      __constant_htons(0x00F8)
-#define GRE_VERSION    __constant_htons(0x0007)
-
-struct ip_tunnel_parm
-{
+struct ip_tunnel_parm {
        char                    name[IFNAMSIZ];
        int                     link;
        __be16                  i_flags;
@@ -41,10 +49,34 @@ struct ip_tunnel_prl {
        __u16                   __reserved;
        __u32                   datalen;
        __u32                   __reserved2;
-       void __user             *data;
+       /* data follows */
 };
 
 /* PRL flags */
 #define        PRL_DEFAULT             0x0001
 
+struct ip_tunnel_6rd {
+       struct in6_addr         prefix;
+       __be32                  relay_prefix;
+       __u16                   prefixlen;
+       __u16                   relay_prefixlen;
+};
+
+enum {
+       IFLA_GRE_UNSPEC,
+       IFLA_GRE_LINK,
+       IFLA_GRE_IFLAGS,
+       IFLA_GRE_OFLAGS,
+       IFLA_GRE_IKEY,
+       IFLA_GRE_OKEY,
+       IFLA_GRE_LOCAL,
+       IFLA_GRE_REMOTE,
+       IFLA_GRE_TTL,
+       IFLA_GRE_TOS,
+       IFLA_GRE_PMTUDISC,
+       __IFLA_GRE_MAX,
+};
+
+#define IFLA_GRE_MAX   (__IFLA_GRE_MAX - 1)
+
 #endif /* _IF_TUNNEL_H_ */