diff --git a/openair2/NAS/DRIVER/MESH/Makefile b/openair2/NAS/DRIVER/MESH/Makefile
index 68876a77173b929bef50736834163dcd71e2fe3e..891db6a91f4f23c8575d2829f96b3cc474c8f2be 100755
--- a/openair2/NAS/DRIVER/MESH/Makefile
+++ b/openair2/NAS/DRIVER/MESH/Makefile
@@ -2,49 +2,6 @@
 #
 NAS_UPDIR	:= $(shell /bin/pwd)
 
-KERNEL_NAME=$(shell echo `uname -r`)
-
-KERNEL_MAIN_TYPE=$(shell echo `uname -r | cut -d. -f-2  | tr "." "_"`)
-export KERNEL_MAIN_TYPE
-
-KERNEL_MAIN_VERSION=$(shell echo `uname -r | cut -d. -f-1`)
-
-ifeq ($(IS_LINUX), 1)
-SUBVERSION=$(shell echo `grep '^SUBLEVEL =' /usr/src/linux/Makefile | sed -e 's, ,,g' | sed -e 's/SUBLEVEL=//'`)
-else
-ifeq ($(IS_KERNEL_OPENAIRINTERFACE), 1)
-SUBVERSION=$(shell echo `grep '^SUBLEVEL =' /usr/src/linux-$(KERNEL_NAME)/Makefile | sed -e 's, ,,g' | sed -e 's/SUBLEVEL=//'`)
-else
-SUBVERSION=$(shell echo `grep '^SUBLEVEL =' /usr/src/linux-headers-$(KERNEL_NAME)/Makefile | sed -e 's, ,,g' | sed -e 's/SUBLEVEL=//'`)
-endif
-endif
-
-IS_KERNEL_SUBVERSION_GREATER_THAN_20=$(shell if [ $(SUBVERSION) -ge 20 ] ; then echo true ; fi)
-KERNEL_ARCH=$(shell echo `uname -m`)
-#SET_REGPARM=$(shell if [ $(KERNEL_ARCH) = 'i686' -a $(SUBVERSION) -ge 20 ]; then echo true ; fi)
-SET_X64=$(shell if [ $(KERNEL_ARCH) = 'x86_64' -a $(SUBVERSION) -ge 20 ]; then echo true ; fi)
-
-IS_KERNEL_SUBVERSION_GREATER_THAN_22=$(shell if [ $(SUBVERSION) -ge 22 ] ; then echo true ; fi)
-IS_KERNEL_SUBVERSION_GREATER_THAN_29=$(shell if [ $(SUBVERSION) -ge 29 ] ; then echo true ; fi)
-IS_KERNEL_SUBVERSION_GREATER_THAN_30=$(shell if [ $(SUBVERSION) -ge 30 ] ; then echo true ; fi)
-IS_KERNEL_SUBVERSION_GREATER_THAN_32=$(shell if [ $(SUBVERSION) -ge 32 ] ; then echo true ; fi)
-# Add global rule for V3 kernels
-IS_KERNEL_SUBVERSION_GREATER_THAN_301= "false"
-
-ifeq ($(KERNEL_MAIN_VERSION),3)
-   IS_KERNEL_SUBVERSION_GREATER_THAN_22 = "true"
-   IS_KERNEL_SUBVERSION_GREATER_THAN_29 = "true"
-   IS_KERNEL_SUBVERSION_GREATER_THAN_30 = "true"
-   IS_KERNEL_SUBVERSION_GREATER_THAN_32 = "true"
-   IS_KERNEL_SUBVERSION_GREATER_THAN_301=$(shell if [ $(SUBVERSION) -ge 1 ] ; then echo true ; fi)
-   IS_KERNEL_SUBVERSION_GREATER_THAN_307=$(shell if [ $(SUBVERSION) -ge 7 ] ; then echo true ; fi)
-endif
-
-GT2622 = $(if $(IS_KERNEL_SUBVERSION_GREATER_THAN_22),-DKERNEL_VERSION_GREATER_THAN_2622=1)
-GT2629 = $(if $(IS_KERNEL_SUBVERSION_GREATER_THAN_29),-DKERNEL_VERSION_GREATER_THAN_2629=1)
-GT32   = $(if $(IS_KERNEL_SUBVERSION_GREATER_THAN_32),-DKERNEL_VERSION_GREATER_THAN_32=1)
-GT301  = $(if $(IS_KERNEL_SUBVERSION_GREATER_THAN_301),-DKERNEL_VERSION_GREATER_THAN_301=1)
-
 ####################################################
 #      NASMESH compilation flags
 ####################################################
@@ -54,12 +11,10 @@ GT301  = $(if $(IS_KERNEL_SUBVERSION_GREATER_THAN_301),-DKERNEL_VERSION_GREATER_
 #  D E B U G   F L A G S
 ####################################################
 
-
-
 ####################################################
 #      EXTRA COMPILER FLAGS
 ####################################################
-EXTRA_CFLAGS = -fno-common $(if $(IS_KERNEL_SUBVERSION_GREATER_THAN_20),-mregparm=3  -fno-stack-protector -mpreferred-stack-boundary=4)  $(if $(SET_X64),-DARCH_64,) $(if $(SET_X64),-mcmodel=kernel,) $(if $(SET_X64),-m64,) $(GT2622) $(GT2629) $(V3) $(GT32) $(GT301)
+EXTRA_CFLAGS = -fno-common -mregparm=3 -fno-stack-protector -mpreferred-stack-boundary=4 $(if $(SET_X64),-DARCH_64,) $(if $(SET_X64),-mcmodel=kernel,) $(if $(SET_X64),-m64,) 
 EXTRA_CFLAGS += -I$(OPENAIR2_DIR)
 ifdef NAS_NETLINK
 EXTRA_CFLAGS += -DNAS_NETLINK
@@ -99,16 +54,6 @@ endif
 #nasmesh.ko:
 #	make  V=1 -C /usr/src/linux-$(shell echo `uname -r`) M=`pwd` modules
 
-print:
-	@echo linux kernel ge 22: $(IS_KERNEL_SUBVERSION_GREATER_THAN_22)
-	@echo kernel name : $(KERNEL_NAME)
-	@echo subversion : $(SUBVERSION)
-	@echo flag gt2622: $(GT2622)
-	@echo  linux kernel ge 29: $(IS_KERNEL_SUBVERSION_GREATER_THAN_29)
-	@echo flag gt2629: $(GT2629)
-	@echo  linux kernel ge 30: $(IS_KERNEL_SUBVERSION_GREATER_THAN_30)
-	@echo flag KERNEL_MAIN_VERSION $(KERNEL_MAIN_VERSION)
-
 clean:
 	rm -f $(nasmesh-objs) $(obj-m)
 #	make -C /usr/src/linux-$(shell echo `uname -r`) M=`pwd` modules
diff --git a/openair2/NAS/DRIVER/MESH/classifier.c b/openair2/NAS/DRIVER/MESH/classifier.c
index 56d8a3a1d6daedc8601d91b311e533f100839481..da51c39f25efbc94c260234832fd527ebf987693 100755
--- a/openair2/NAS/DRIVER/MESH/classifier.c
+++ b/openair2/NAS/DRIVER/MESH/classifier.c
@@ -41,8 +41,6 @@
 #include <net/route.h>
 
 
-//#define KERNEL_VERSION_GREATER_THAN_2622 1
-//#define KERNEL_VERSION_GREATER_THAN_2630 1
 //#define MPLS
 
 #ifdef MPLS
@@ -613,18 +611,10 @@ void nas_CLASS_send(struct sk_buff *skb,int inst){
 	version = 6;
 
 	protocolh=nas_TOOL_get_protocol6(
-#ifdef KERNEL_VERSION_GREATER_THAN_2622				      
 					 (struct ipv6hdr *)(skb_network_header(skb)),
-#else
-					 skb->nh.ipv6h,
-#endif 
 					 &protocol);
 	dscp=nas_TOOL_get_dscp6(
-#ifdef KERNEL_VERSION_GREATER_THAN_2622				      
 				(struct ipv6hdr *)(skb_network_header(skb))
-#else
-				skb->nh.ipv6h
-#endif
 				); 
 #ifdef NAS_DEBUG_CLASS
 	printk("NAS_CLASS_SEND: %p %d %p %d %p \n",skb, dscp, gpriv, inst, &cx_searcher);
@@ -639,18 +629,10 @@ void nas_CLASS_send(struct sk_buff *skb,int inst){
       case ETH_P_IP:
       
       
-#ifdef KERNEL_VERSION_GREATER_THAN_2622				      
 	dscp=nas_TOOL_get_dscp4((struct iphdr *)(skb_network_header(skb)));
-#else
-	dscp=nas_TOOL_get_dscp4(skb->nh.iph);
-#endif
 	cx=nas_CLASS_cx4(skb,dscp,gpriv,inst,&cx_searcher);
 	protocolh=nas_TOOL_get_protocol4(
-#ifdef KERNEL_VERSION_GREATER_THAN_2622				      
 					 (struct iphdr *)(skb_network_header(skb)),
-#else
-					 skb->nh.iph,
-#endif
 					 &protocol);
 #ifdef NAS_DEBUG_CLASS
 	printk("NAS_CLASS_SEND: Got IPv4 packet (%x), dscp = %d, cx = %x\n",ntohs(skb->protocol),dscp,cx);
diff --git a/openair2/NAS/DRIVER/MESH/common.c b/openair2/NAS/DRIVER/MESH/common.c
index 02c265ef0d792a4e0f2995ac92ebbeec5c06f426..bd16ed6be7b2f4cffffe520fcc66ff00da363327 100755
--- a/openair2/NAS/DRIVER/MESH/common.c
+++ b/openair2/NAS/DRIVER/MESH/common.c
@@ -93,11 +93,7 @@ void nas_COMMON_receive(uint16_t dlen,
 
   skb->dev = nasdev[inst];
   
-#ifdef KERNEL_VERSION_GREATER_THAN_2622
   skb_reset_mac_header(skb);
-#else
-  skb->mac.raw = skb->data;
-#endif
 //printk("[NAC_COMMIN_RECEIVE]: Packet Type %d (%d,%d)",skb->pkt_type,PACKET_HOST,PACKET_BROADCAST);
   skb->pkt_type = PACKET_HOST;
 
@@ -115,11 +111,7 @@ void nas_COMMON_receive(uint16_t dlen,
 #endif
 
 
-#ifdef KERNEL_VERSION_GREATER_THAN_2622
     skb_reset_network_header(skb);
-#else
-	skb->nh.ipv6h = (struct ipv6hdr *)skb->data;
-#endif
 
 	skb->protocol = htons(ETH_P_IPV6);
 //	printk("Writing packet with protocol %x\n",ntohs(skb->protocol));
@@ -171,14 +163,9 @@ void nas_COMMON_receive(uint16_t dlen,
 		  
 #endif
 		  
-#ifdef KERNEL_VERSION_GREATER_THAN_2622
     skb_reset_network_header(skb);
     network_header = (struct iphdr *)skb_network_header(skb);
     protocol = network_header->protocol;
-#else
-	skb->nh.iph = (struct iphdr *)skb->data;
-	protocol=skb->nh.iph->protocol;
-#endif 
 
 #ifdef NAS_DEBUG_RECEIVE
 	switch (protocol) {
@@ -213,7 +200,6 @@ void nas_COMMON_receive(uint16_t dlen,
 #endif //NAS_DEBUG_RECEIVE
 
 
-#ifdef KERNEL_VERSION_GREATER_THAN_2622
 	network_header->check = 0;
 	network_header->check = ip_fast_csum((unsigned char *) network_header,
 				 network_header->ihl);
@@ -221,16 +207,6 @@ void nas_COMMON_receive(uint16_t dlen,
 	printk("[NAS][COMMON][RECEIVE] IP Fast Checksum %x \n", network_header->check);
 #endif
 
-#else
-	skb->nh.iph->check = 0;
-	skb->nh.iph->check = ip_fast_csum((unsigned char *)skb->data,
-					  skb->nh.iph->ihl);
-
-#ifdef NAS_DEBUG_RECEIVE
-	printk("[NAS][COMMON][RECEIVE] IP Fast Checksum %x \n", skb->nh.iph->check);
-#endif 
-
-#endif 
 	//	  if (!(skb->nh.iph->frag_off & htons(IP_OFFSET))) {
 		    
 
@@ -241,13 +217,8 @@ void nas_COMMON_receive(uint16_t dlen,
 		
 	  case IPPROTO_TCP:
 
-#ifdef KERNEL_VERSION_GREATER_THAN_2622
 	    cksum  = (uint16_t*)&(((struct tcphdr*)((network_header + (network_header->ihl<<2))))->check);
 	    //check  = csum_tcpudp_magic(((struct iphdr *)network_header)->saddr, ((struct iphdr *)network_header)->daddr, tcp_hdrlen(skb), IPPROTO_TCP, ~(*cksum));	    
-#else
-	    cksum  = (uint16_t*)&(((struct tcphdr*)((skb->data + (skb->nh.iph->ihl<<2))))->check);
-	    //check  = csum_tcpudp_magic(((struct iphdr *)skb->data)->saddr, ((struct iphdr *)skb->data)->daddr,tcp_hdrlen(skb), IPPROTO_TCP, ~(*cksum));
-#endif
 
 #ifdef NAS_DEBUG_RECEIVE
 	    printk("[NAS][COMMON] Inst %d TCP packet calculated CS %x, CS = %x (before), SA (%x)%x, DA (%x)%x\n", 
@@ -271,13 +242,8 @@ void nas_COMMON_receive(uint16_t dlen,
 	
 	  case IPPROTO_UDP:
 
-#ifdef KERNEL_VERSION_GREATER_THAN_2622
 	    cksum  = (uint16_t*)&(((struct udphdr*)((network_header + (network_header->ihl<<2))))->check);
 	    // check = csum_tcpudp_magic(((struct iphdr *)network_header)->saddr, ((struct iphdr *)network_header)->daddr, udp_hdr(skb)->len, IPPROTO_UDP, ~(*cksum));
-#else		
-	    cksum  = (uint16_t*)&(((struct udphdr*)((skb->data + (skb->nh.iph->ihl<<2))))->check);
-	    //check = csum_tcpudp_magic(((struct iphdr *)skb->data)->saddr, ((struct iphdr *)skb->data)->daddr, udp_hdr(skb)->len, IPPROTO_UDP, ~(*cksum));
-#endif 
 #ifdef NAS_DEBUG_RECEIVE
 	    printk("[NAS][COMMON] Inst %d UDP packet CS = %x (before), SA (%x)%x, DA (%x)%x\n", 
 		   inst, 
@@ -309,7 +275,6 @@ void nas_COMMON_receive(uint16_t dlen,
 	  }
 	//	  }
 
-	//#endif  // KERNEL VERSION > 22
 #endif //NAS_ADDRESS_FIX
 
 	skb->protocol = htons(ETH_P_IP);
diff --git a/openair2/NAS/DRIVER/MESH/device.c b/openair2/NAS/DRIVER/MESH/device.c
index b5189ea42e86a40a0fd1c39073e2b9f421838a80..debfcdf70ff1cb633241db0b79175b1254f59d75 100755
--- a/openair2/NAS/DRIVER/MESH/device.c
+++ b/openair2/NAS/DRIVER/MESH/device.c
@@ -302,25 +302,18 @@ void nas_tx_timeout(struct net_device *dev){
   printk("TX_TIMEOUT: transmit timed out %s\n",dev->name);
 }
 
-#ifdef  KERNEL_VERSION_GREATER_THAN_2629
 static const struct net_device_ops nasmesh_netdev_ops = {
 
 	.ndo_open		= nas_open,
 	.ndo_stop		= nas_stop,
 	.ndo_start_xmit		= nas_hard_start_xmit,
 	.ndo_validate_addr	= NULL,
-#ifdef  KERNEL_VERSION_GREATER_THAN_32
-#ifndef KERNEL_VERSION_GREATER_THAN_301
-	.ndo_set_multicast_list	= NULL,
-#endif
-#endif
 	.ndo_set_mac_address	= NULL,
 	.ndo_set_config     = nas_set_config,
 	.ndo_do_ioctl       = nas_CTL_ioctl,
 	.ndo_change_mtu		= nas_change_mtu,
 	.ndo_tx_timeout		= nas_tx_timeout,
 };
-#endif
 
 //---------------------------------------------------------------------------
 // Initialisation of the network device
@@ -337,23 +330,7 @@ void nas_init(struct net_device *dev){
     //	priv=(struct nas_priv *)(dev->priv);
     priv=netdev_priv(dev);
     //
-#ifdef KERNEL_VERSION_GREATER_THAN_2629    
     dev->netdev_ops = &nasmesh_netdev_ops;
-#else
-    dev->open = nas_open;
-    dev->stop = nas_stop;
-    dev->set_config = nas_set_config;
-    dev->hard_start_xmit = nas_hard_start_xmit;
-    dev->do_ioctl = nas_CTL_ioctl;
-    dev->get_stats = nas_get_stats;
-    //  dev->rebuild_header = NULL;
-    //  dev->hard_header = NULL;
-    dev->change_mtu = nas_change_mtu;
-    //  dev->hard_header_cache = NULL;
-    //  dev->header_cache_update = NULL;
-    dev->tx_timeout = nas_tx_timeout;
-    //
-#endif 
     // dev->type = ARPHRD_EUROPENAIRMESH;
     //dev->type = ARPHRD_ETHER;
     //  dev->features = NETIF_F_NO_CSUM;
@@ -557,7 +534,7 @@ void cleanup_module(void){
 
 
 
-#ifdef  KERNEL_VERSION_GREATER_THAN_32
+#if  LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0)
 
 #define DRV_NAME		"NASMESH"
 #define DRV_VERSION		"3.0.2"DRV_NAME
@@ -571,7 +548,7 @@ MODULE_PARM_DESC(nas_IMEI,"The IMEI Hardware address (64-bit, decimal nibbles)")
 module_param(nas_is_clusterhead,uint,0444);
 MODULE_PARM_DESC(nas_is_clusterhead,"The Clusterhead Indicator");
 
-#ifndef KERNEL_VERSION_GREATER_THAN_301
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,0,1)
 MODULE_LICENSE("GPL");
 MODULE_DESCRIPTION(DRV_DESCRIPTION);
 MODULE_AUTHOR(DRV_AUTHOR);
diff --git a/openair2/NAS/DRIVER/MESH/tool.c b/openair2/NAS/DRIVER/MESH/tool.c
index 62693547dbd69dc11173052e4317a7147c20fe97..e3993bc124bc0a0a64988376897bcfa1ffa31c67 100755
--- a/openair2/NAS/DRIVER/MESH/tool.c
+++ b/openair2/NAS/DRIVER/MESH/tool.c
@@ -37,9 +37,6 @@
 //#include <linux/udp.h>
 //#include <linux/tcp.h>
 
-//#define  KERNEL_VERSION_GREATER_THAN_2622 1 
-//#define  KERNEL_VERSION_GREATER_THAN_2630 1 
-
 //#define NAS_DEBUG_TOOL 1 
 
 //---------------------------------------------------------------------------
@@ -565,27 +562,15 @@ void print_TOOL_pk_ipv4(struct iphdr *iph){
 void print_TOOL_pk_all(struct sk_buff *skb){
 //---------------------------------------------------------------------------
 	printk("Skb:\t %p, len = %u\n", skb, skb->len);
-#ifdef KERNEL_VERSION_GREATER_THAN_2629
 	//navid: need to calculate the current used space: fixme?
 	printk("Skb:\t available buf space = %u \n", skb->truesize);
-#else
-	printk("Skb:\t available buf space = %u, cur used space = %u \n", skb->end-skb->head, skb->tail-skb->data);
-#endif
 	switch (ntohs(skb->protocol))
 	{
 	case ETH_P_IPV6:
-#ifdef KERNEL_VERSION_GREATER_THAN_2622
 	  print_TOOL_pk_ipv6((struct ipv6hdr *)skb->network_header);
-#else
-	  print_TOOL_pk_ipv6(skb->nh.ipv6h);
-#endif
 	  break;
 	case ETH_P_IP:
-#ifdef KERNEL_VERSION_GREATER_THAN_2622
 	  print_TOOL_pk_ipv4((struct iphdr *)skb->network_header);
-#else
-	  print_TOOL_pk_ipv4(skb->nh.iph);
-#endif
 	  break;
 	}
 }