add libgtpnl

This patch adds the libgtpnl library. Harald mentioned that he wanted
that the specific code that is added is well encapsulated, so let's
start a small library to interact with the GTP kernel module via netlink
interface.

This was done a bit while in the rush, so the interfaces are not nice
at all and the tools need to be ported on top of this library.

This library will be used to integrate openggsn with the GTP kernel
module.
diff --git a/include/linux/Makefile.am b/include/linux/Makefile.am
new file mode 100644
index 0000000..082198e
--- /dev/null
+++ b/include/linux/Makefile.am
@@ -0,0 +1 @@
+noinst_HEADERS = gtp_nl.h
diff --git a/include/linux/gtp_nl.h b/include/linux/gtp_nl.h
new file mode 100644
index 0000000..968824c
--- /dev/null
+++ b/include/linux/gtp_nl.h
@@ -0,0 +1,45 @@
+#ifndef _UAPI_LINUX_GTP_H_
+#define _UAPI_LINUX_GTP_H__
+
+enum {
+	IFLA_GTP_UNSPEC,
+	IFLA_GTP_LOCAL_ADDR_IPV4,
+	IFLA_GTP_HASHSIZE,
+	__IFLA_GTP_MAX,
+};
+#define IFLA_GTP_MAX (__IFLA_GTP_MAX - 1)
+
+enum gtp_genl_cmds {
+	GTP_CMD_TUNNEL_NEW,
+	GTP_CMD_TUNNEL_DELETE,
+	GTP_CMD_TUNNEL_GET,
+
+	GTP_CMD_TUNNEL_MAX,
+};
+
+enum gtp_version {
+	GTP_V0 = 0,
+	GTP_V1,
+};
+
+enum gtp_cfg_attrs {
+	GTPA_CFG_UNSPEC = 0,
+	GTPA_CFG_LINK,
+	GTPA_CFG_LOCAL_ADDR_IPV4,
+	GTPA_CFG_HSIZE,
+	__GTPA_CFG_MAX,
+};
+#define GTPA_CFG_MAX (__GTPA_CFG_MAX + 1)
+
+enum gtp_attrs {
+	GTPA_UNSPEC = 0,
+	GTPA_LINK,
+	GTPA_VERSION,
+	GTPA_TID,	/* 64 bits for GTPv1 */
+	GTPA_SGSN_ADDRESS,
+	GTPA_MS_ADDRESS,
+	__GTPA_MAX,
+};
+#define GTPA_MAX (__GTPA_MAX + 1)
+
+#endif /* _UAPI_LINUX_GTP_H_ */