aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBen Pfaff <blp@nicira.com>2010-12-10 14:42:17 -0800
committerBen Pfaff <blp@nicira.com>2010-12-13 10:20:29 -0800
commitf307eeb37640adb92cf92eb61ec26ac9ac30ac97 (patch)
tree896176e140ca6aaef10af825f017cf599a6ae583
parent9f94f8fa2fe53e241b6417056e04d45ca7b577f5 (diff)
datapath: Add compat support for nla_type().
The datapath code uses nla_type() but it was only introduced in 2.6.24. The NLA_TYPE_MASK definition has to go above the #include <net/netlink.h> because <net/netlink.h> recursively #include <linux/netlink.h>. Signed-off-by: Ben Pfaff <blp@nicira.com> Acked-by: Jesse Gross <jesse@nicira.com>
-rw-r--r--datapath/linux-2.6/compat-2.6/include/linux/netlink.h8
-rw-r--r--datapath/linux-2.6/compat-2.6/include/net/netlink.h13
2 files changed, 20 insertions, 1 deletions
diff --git a/datapath/linux-2.6/compat-2.6/include/linux/netlink.h b/datapath/linux-2.6/compat-2.6/include/linux/netlink.h
index fba899ec..16660977 100644
--- a/datapath/linux-2.6/compat-2.6/include/linux/netlink.h
+++ b/datapath/linux-2.6/compat-2.6/include/linux/netlink.h
@@ -3,8 +3,14 @@
#include <linux/skbuff.h>
#include_next <linux/netlink.h>
-#include <net/netlink.h>
+#ifndef NLA_TYPE_MASK
+#define NLA_F_NESTED (1 << 15)
+#define NLA_F_NET_BYTEORDER (1 << 14)
+#define NLA_TYPE_MASK ~(NLA_F_NESTED | NLA_F_NET_BYTEORDER)
+#endif
+
+#include <net/netlink.h>
#include <linux/version.h>
#ifndef NLMSG_DEFAULT_SIZE
diff --git a/datapath/linux-2.6/compat-2.6/include/net/netlink.h b/datapath/linux-2.6/compat-2.6/include/net/netlink.h
index 2f979fec..c6f5e04f 100644
--- a/datapath/linux-2.6/compat-2.6/include/net/netlink.h
+++ b/datapath/linux-2.6/compat-2.6/include/net/netlink.h
@@ -1,6 +1,7 @@
#ifndef __NET_NETLINK_WRAPPER_H
#define __NET_NETLINK_WRAPPER_H 1
+#include <linux/version.h>
#include_next <net/netlink.h>
#ifndef HAVE_NLA_NUL_STRING
@@ -37,4 +38,16 @@ static inline __be16 nla_get_be16(struct nlattr *nla)
}
#endif /* !HAVE_NLA_GET_BE16 */
+
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,24)
+/**
+ * nla_type - attribute type
+ * @nla: netlink attribute
+ */
+static inline int nla_type(const struct nlattr *nla)
+{
+ return nla->nla_type & NLA_TYPE_MASK;
+}
+#endif
+
#endif /* net/netlink.h */