diff --git a/openair2/NAS/DRIVER/MESH/netlink.c b/openair2/NAS/DRIVER/MESH/netlink.c
index 49d72d921e8055e298ff6ae20d052235e59f4465..574f311549c472516278386901d810b6cb2174d3 100644
--- a/openair2/NAS/DRIVER/MESH/netlink.c
+++ b/openair2/NAS/DRIVER/MESH/netlink.c
@@ -34,6 +34,7 @@
 */ 
 
 //#include <linux/config.h>
+#include <linux/version.h>
 #include <linux/socket.h>
 #include <linux/kernel.h>
 #include <linux/module.h>
@@ -57,7 +58,9 @@
 static struct sock *nas_nl_sk = NULL;
 static int exit_netlink_thread=0;
 static int nas_netlink_rx_thread(void *);
-
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,6,0)
+struct netlink_kernel_cfg oai_netlink_cfg;
+#endif
 
 static DEFINE_MUTEX(nasmesh_mutex);
 
@@ -152,20 +155,33 @@ int nas_netlink_init()
 {
 
   printk("[NAS][NETLINK] Running init ...\n");
-  
 
-  nas_nl_sk = netlink_kernel_create(
-#ifdef KERNEL_VERSION_GREATER_THAN_2622
-				    &init_net,       
-#endif
-				    NAS_NETLINK_ID, 
-				    0, 
-				    nas_nl_data_ready, 
-#ifdef KERNEL_VERSION_GREATER_THAN_2622
-				    &nasmesh_mutex, // NULL
-#endif
-				    THIS_MODULE);
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,6,0)
+  oai_netlink_cfg.groups   = 0;
+  oai_netlink_cfg.input    = nas_nl_data_ready;
+  oai_netlink_cfg.cb_mutex = &nasmesh_mutex;
+  oai_netlink_cfg.bind     = NULL;
 
+  nas_nl_sk = netlink_kernel_create(
+      &init_net,
+      NAS_NETLINK_ID,
+# if LINUX_VERSION_CODE < KERNEL_VERSION(3,8,0)
+      THIS_MODULE,
+# endif
+      &oai_netlink_cfg);
+#else /* LINUX_VERSION_CODE >= KERNEL_VERSION(3,6,0) */
+  nas_nl_sk = netlink_kernel_create(
+# ifdef KERNEL_VERSION_GREATER_THAN_2622
+                    &init_net,
+# endif
+                    NAS_NETLINK_ID,
+                    0, 
+                    nas_nl_data_ready,
+# ifdef KERNEL_VERSION_GREATER_THAN_2622
+                    &nasmesh_mutex, // NULL
+# endif
+                    THIS_MODULE);
+#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(3,6,0) */
 
   if (nas_nl_sk == NULL) {
 
@@ -224,7 +240,11 @@ int nas_netlink_send(unsigned char *data,unsigned int len) {
 
   nlh->nlmsg_pid = 0;      /* from kernel */
 
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,7,0)
+  NETLINK_CB(nl_skb).portid = 0;
+#else
   NETLINK_CB(nl_skb).pid = 0;
+#endif
 
 #ifdef NETLINK_DEBUG
   printk("[NAS][NETLINK] In nas_netlink_send, nl_skb %p, nl_sk %x, nlh %p, nlh->nlmsg_len %d\n",nl_skb,nas_nl_sk,nlh,nlh->nlmsg_len);