diff --git a/openair-cn/COMMON/as_message.h b/openair-cn/COMMON/as_message.h
deleted file mode 100644
index de29af754f1e3c990f145b894b2f4e003975220f..0000000000000000000000000000000000000000
--- a/openair-cn/COMMON/as_message.h
+++ /dev/null
@@ -1,526 +0,0 @@
-/*****************************************************************************
-			Eurecom OpenAirInterface 3
-			Copyright(c) 2012 Eurecom
-
-Source		as_message.h
-
-Version		0.1
-
-Date		2012/10/18
-
-Product		NAS stack
-
-Subsystem	Application Programming Interface
-
-Author		Frederic Maurel
-
-Description	Defines the messages supported by the Access Stratum sublayer
-		protocol (usually RRC and S1AP for E-UTRAN) and functions used
-		to encode and decode
-
-*****************************************************************************/
-#ifndef __AS_MESSAGE_H__
-#define __AS_MESSAGE_H__
-
-#include "commonDef.h"
-// #include "networkDef.h"
-
-/****************************************************************************/
-/*********************  G L O B A L    C O N S T A N T S  *******************/
-/****************************************************************************/
-
-/*
- * --------------------------------------------------------------------------
- * 			    Access Stratum message types
- * --------------------------------------------------------------------------
- */
-#define AS_REQUEST	0x0100
-#define AS_RESPONSE	0x0200
-#define AS_INDICATION	0x0400
-#define AS_CONFIRM	0x0800
-
-/*
- * --------------------------------------------------------------------------
- * 			Access Stratum message identifiers
- * --------------------------------------------------------------------------
- */
-
-/* Broadcast information */
-#define AS_BROADCAST_INFO		0x01
-#define AS_BROADCAST_INFO_IND		(AS_BROADCAST_INFO | AS_INDICATION)
-
-/* Cell information relevant for cell selection processing */
-#define AS_CELL_INFO			0x02
-#define AS_CELL_INFO_REQ		(AS_CELL_INFO | AS_REQUEST)
-#define AS_CELL_INFO_CNF		(AS_CELL_INFO | AS_CONFIRM)
-#define AS_CELL_INFO_IND		(AS_CELL_INFO | AS_INDICATION)
-
-/* Paging information */
-#define AS_PAGING			0x03
-#define AS_PAGING_REQ			(AS_PAGING | AS_REQUEST)
-#define AS_PAGING_IND			(AS_PAGING | AS_INDICATION)
-
-/* NAS signalling connection establishment */
-#define AS_NAS_ESTABLISH		0x04
-#define AS_NAS_ESTABLISH_REQ		(AS_NAS_ESTABLISH | AS_REQUEST)
-#define AS_NAS_ESTABLISH_IND		(AS_NAS_ESTABLISH | AS_INDICATION)
-#define AS_NAS_ESTABLISH_RSP		(AS_NAS_ESTABLISH | AS_RESPONSE)
-#define AS_NAS_ESTABLISH_CNF		(AS_NAS_ESTABLISH | AS_CONFIRM)
-
-/* NAS signalling connection release */
-#define AS_NAS_RELEASE			0x05
-#define AS_NAS_RELEASE_REQ		(AS_NAS_RELEASE | AS_REQUEST)
-#define AS_NAS_RELEASE_IND		(AS_NAS_RELEASE | AS_INDICATION)
-
-/* Uplink information transfer */
-#define AS_UL_INFO_TRANSFER		0x06
-#define AS_UL_INFO_TRANSFER_REQ		(AS_UL_INFO_TRANSFER | AS_REQUEST)
-#define AS_UL_INFO_TRANSFER_CNF		(AS_UL_INFO_TRANSFER | AS_CONFIRM)
-#define AS_UL_INFO_TRANSFER_IND		(AS_UL_INFO_TRANSFER | AS_INDICATION)
-
-/* Downlink information transfer */
-#define AS_DL_INFO_TRANSFER		0x07
-#define AS_DL_INFO_TRANSFER_REQ		(AS_DL_INFO_TRANSFER | AS_REQUEST)
-#define AS_DL_INFO_TRANSFER_CNF		(AS_DL_INFO_TRANSFER | AS_CONFIRM)
-#define AS_DL_INFO_TRANSFER_IND		(AS_DL_INFO_TRANSFER | AS_INDICATION)
-
-/* Radio Access Bearer establishment */
-#define AS_RAB_ESTABLISH		0x08
-#define AS_RAB_ESTABLISH_REQ		(AS_RAB_ESTABLISH | AS_REQUEST)
-#define AS_RAB_ESTABLISH_IND		(AS_RAB_ESTABLISH | AS_INDICATION)
-#define AS_RAB_ESTABLISH_RSP		(AS_RAB_ESTABLISH | AS_RESPONSE)
-#define AS_RAB_ESTABLISH_CNF		(AS_RAB_ESTABLISH | AS_CONFIRM)
-
-/* Radio Access Bearer release */
-#define AS_RAB_RELEASE			0x09
-#define AS_RAB_RELEASE_REQ		(AS_RAB_RELEASE | AS_REQUEST)
-#define AS_RAB_RELEASE_IND		(AS_RAB_RELEASE | AS_INDICATION)
-
-/* NAS Cause */
-#define EPS_SERVICES_AND_NON_EPS_SERVICES_NOT_ALLOWED (8)
-#define EPS_SERVICES_NOT_ALLOWED                      (7)
-#define PLMN_NOT_ALLOWED                              (11)
-#define TRACKING_AREA_NOT_ALLOWED                     (12)
-#define ROAMING_NOT_ALLOWED_IN_THIS_TRACKING_AREA     (13)
-#define EPS_SERVICES_NOT_ALLOWED_IN_THIS_PLMN         (14)
-#define NO_SUITABLE_CELLS_IN_TRACKING_AREA            (15)
-#define NETWORK_FAILURE                               (17)
-#define ESM_FAILURE                                   (19)
-
-/*
- * --------------------------------------------------------------------------
- * 		    Access Stratum message global parameters
- * --------------------------------------------------------------------------
- */
-
-/* Error code */
-enum {
-    AS_SUCCESS = 1,	/* Success code, transaction is going on	*/
-    AS_TERMINATED_NAS,	/* Transaction terminated by NAS		*/
-    AS_TERMINATED_AS,	/* Transaction terminated by AS			*/
-    AS_FAILURE		/* Failure code					*/
-};
-
-/* Core network domain */
-enum {
-    AS_PS = 1,		/* Packet-Switched	*/
-    AS_CS		/* Circuit-Switched	*/
-};
-
-/* SAE Temporary Mobile Subscriber Identity */
-typedef struct {
-    UInt8_t MMEcode;	/* MME code that allocated the GUTI		*/
-    UInt32_t m_tmsi;	/* M-Temporary Mobile Subscriber Identity	*/
-} as_stmsi_t;
-
-/* Dedicated NAS information */
-typedef struct {
-    UInt32_t length;	/* Length of the NAS information data		*/
-    Byte_t* data;	/* Dedicated NAS information data container	*/
-} as_nas_info_t;
-
-/* Radio Access Bearer identity */
-typedef UInt8_t as_rab_id_t;
-
-/****************************************************************************/
-/************************  G L O B A L    T Y P E S  ************************/
-/****************************************************************************/
-
-/*
- * --------------------------------------------------------------------------
- * 				Broadcast information
- * --------------------------------------------------------------------------
- */
-
-/*
- * AS->NAS - Broadcast information indication
- * AS may asynchronously report to NAS available PLMNs within specific
- * location area 
- */
-typedef struct {
-#define PLMN_LIST_MAX_SIZE	6
-    PLMN_LIST_T(PLMN_LIST_MAX_SIZE) plmnIDs; /* List of PLMN identifiers */
-    ci_t cellID;	/* Identity of the cell serving the listed PLMNs */
-    tac_t tac;		/* Code of the tracking area the cell belongs to */
-} broadcast_info_ind_t;
-
-/*
- * --------------------------------------------------------------------------
- *	   Cell information relevant for cell selection processing
- * --------------------------------------------------------------------------
- */
-
-/* Radio access technologies supported by the network */
-#define AS_GSM				(1 << NET_ACCESS_GSM)
-#define AS_COMPACT			(1 << NET_ACCESS_COMPACT)
-#define AS_UTRAN			(1 << NET_ACCESS_UTRAN)
-#define AS_EGPRS			(1 << NET_ACCESS_EGPRS)
-#define AS_HSDPA			(1 << NET_ACCESS_HSDPA)
-#define AS_HSUPA			(1 << NET_ACCESS_HSUPA)
-#define AS_HSDUPA			(1 << NET_ACCESS_HSDUPA)
-#define AS_EUTRAN			(1 << NET_ACCESS_EUTRAN)
-
-/*
- * NAS->AS - Cell Information request
- * NAS request AS to search for a suitable cell belonging to the selected
- * PLMN to camp on.
- */
-typedef struct {
-    plmn_t plmnID;	/* Selected PLMN identity			*/
-    Byte_t rat;		/* Bitmap - set of radio access technologies	*/
-} cell_info_req_t;
-
-/*
- * AS->NAS - Cell Information confirm
- * AS search for a suitable cell and respond to NAS. If found, the cell
- * is selected to camp on.
- */
-typedef struct {
-    UInt8_t errCode;	/* Error code					  */
-    ci_t cellID;	/* Identity of the cell serving the selected PLMN */
-    tac_t tac;		/* Code of the tracking area the cell belongs to  */
-    AcT_t rat;		/* Radio access technology supported by the cell  */
-    UInt8_t rsrq;	/* Reference signal received quality		 */
-    UInt8_t rsrp;	/* Reference signal received power		 */
-} cell_info_cnf_t;
-
-/*
- * AS->NAS - Cell Information indication
- * AS may change cell selection if a more suitable cell is found.
- */
-typedef struct {
-    ci_t cellID;	/* Identity of the new serving cell		 */
-    tac_t tac;		/* Code of the tracking area the cell belongs to */
-} cell_info_ind_t;
-
-/*
- * --------------------------------------------------------------------------
- *				Paging information
- * --------------------------------------------------------------------------
- */
-
-/* Paging cause */
-enum {
-    AS_CONNECTION_ESTABLISH,	/* Establish NAS signalling connection	*/
-    AS_EPS_ATTACH,		/* Perform local detach and initiate EPS
-				 * attach procedure			*/
-    AS_CS_FALLBACK		/* Inititate CS fallback procedure	*/
-};
-
-/*
- * NAS->AS - Paging Information request
- * NAS requests the AS that NAS signalling messages or user data is pending
- * to be sent.
- */
-typedef struct {
-    as_stmsi_t s_tmsi;	/* UE identity					*/
-    UInt8_t CN_domain;	/* Core network domain				*/
-} paging_req_t;
-
-/*
- * AS->NAS - Paging Information indication
- * AS reports to the NAS that appropriate procedure has to be initiated.
- */
-typedef struct {
-    UInt8_t cause;	/* Paging cause					*/
-} paging_ind_t;
-
-/*
- * --------------------------------------------------------------------------
- * 			NAS signalling connection establishment
- * --------------------------------------------------------------------------
- */
-
-/* Cause of RRC connection establishment */
-#define AS_CAUSE_EMERGENCY		(NET_ESTABLISH_CAUSE_EMERGENCY)
-#define AS_CAUSE_HIGH_PRIO		(NET_ESTABLISH_CAUSE_HIGH_PRIO)
-#define AS_CAUSE_MT_ACCESS		(NET_ESTABLISH_CAUSE_MT_ACCESS)
-#define AS_CAUSE_MO_SIGNAL		(NET_ESTABLISH_CAUSE_MO_SIGNAL)
-#define AS_CAUSE_MO_DATA		(NET_ESTABLISH_CAUSE_MO_DATA)
-#define AS_CAUSE_V1020			(NET_ESTABLISH_CAUSE_V1020)
-
-/* Type of the call associated to the RRC connection establishment */
-#define AS_TYPE_ORIGINATING_SIGNAL	(NET_ESTABLISH_TYPE_ORIGINATING_SIGNAL)
-#define AS_TYPE_EMERGENCY_CALLS		(NET_ESTABLISH_TYPE_EMERGENCY_CALLS)
-#define AS_TYPE_ORIGINATING_CALLS	(NET_ESTABLISH_TYPE_ORIGINATING_CALLS)
-#define AS_TYPE_TERMINATING_CALLS	(NET_ESTABLISH_TYPE_TERMINATING_CALLS)
-#define AS_TYPE_MO_CS_FALLBACK		(NET_ESTABLISH_TYPE_MO_CS_FALLBACK)
-
-
-/*
- * NAS->AS - NAS signalling connection establishment request
- * NAS requests the AS to perform the RRC connection establishment procedure
- * to transfer initial NAS message to the network while UE is in IDLE mode.
- */
-typedef struct {
-    UInt8_t cause;		 /* RRC connection establishment cause	*/
-    UInt8_t type;		 /* RRC associated call type		*/
-    as_stmsi_t s_tmsi;		 /* UE identity				*/
-    plmn_t plmnID;		 /* Selected PLMN identity		*/
-    as_nas_info_t initialNasMsg; /* Initial NAS message to transfer	*/
-} nas_establish_req_t;
-
-/*
- * AS->NAS - NAS signalling connection establishment indication
- * AS transfers the initial NAS message to the NAS.
- */
-typedef struct {
-    UInt32_t UEid;		 /* UE lower layer identifier		*/
-    tac_t tac;			 /* Code of the tracking area the initiating
-				  * UE belongs to			*/
-    as_nas_info_t initialNasMsg; /* Initial NAS message to transfer	*/
-} nas_establish_ind_t;
-
-/*
- * NAS->AS - NAS signalling connection establishment response
- * NAS responds to the AS that initial answer message has to be provided to
- * the UE.
- */
-typedef struct {
-    UInt32_t UEid;		 /* UE lower layer identifier		*/
-    as_stmsi_t s_tmsi;		 /* UE identity				*/
-    UInt8_t errCode;		 /* Transaction status			*/
-    as_nas_info_t nasMsg;	 /* NAS message to transfer		*/
-} nas_establish_rsp_t;
-
-/*
- * AS->NAS - NAS signalling connection establishment confirm
- * AS transfers the initial answer message to the NAS.
- */
-typedef struct {
-    UInt8_t errCode;		 /* Transaction status			*/
-    as_nas_info_t nasMsg; 	 /* NAS message to transfer		*/
-} nas_establish_cnf_t;
-
-/*
- * --------------------------------------------------------------------------
- * 			NAS signalling connection release
- * --------------------------------------------------------------------------
- */
-
-/* Release cause */
-enum {
-    AS_AUTHENTICATION_FAILURE = 1, /* Authentication procedure failed	*/
-    AS_DETACH			   /* Detach requested			*/
-};
-
-/*
- * NAS->AS - NAS signalling connection release request
- * NAS requests the termination of the connection with the UE.
- */
-typedef struct {
-    UInt32_t UEid;		/* UE lower layer identifier		*/
-    as_stmsi_t s_tmsi;		/* UE identity				*/
-    UInt8_t cause;		/* Release cause			*/
-} nas_release_req_t;
-
-/*
- * AS->NAS - NAS signalling connection release indication
- * AS reports that connection has been terminated by the network.
- */
-typedef struct {
-    UInt8_t cause;		/* Release cause			*/
-} nas_release_ind_t;
-
-/*
- * --------------------------------------------------------------------------
- * 				NAS information transfer
- * --------------------------------------------------------------------------
- */
-
-/*
- * NAS->AS - Uplink data transfer request
- * NAS requests the AS to transfer uplink information to the NAS that
- * operates at the network side.
- */
-typedef struct {
-    UInt32_t UEid;		/* UE lower layer identifier		*/
-    as_stmsi_t s_tmsi;		/* UE identity				*/
-    as_nas_info_t nasMsg;	/* Uplink NAS message			*/
-} ul_info_transfer_req_t;
-
-/*
- * AS->NAS - Uplink data transfer confirm
- * AS immediately notifies the NAS whether uplink information has been
- * successfully sent to the network or not.
- */
-typedef struct {
-    UInt32_t UEid;		/* UE lower layer identifier		*/
-    UInt8_t errCode;		/* Transaction status			*/
-} ul_info_transfer_cnf_t;
-
-/*
- * AS->NAS - Uplink data transfer indication
- * AS delivers the uplink information message to the NAS that operates
- * at the network side.
- */
-typedef struct {
-    UInt32_t UEid;		/* UE lower layer identifier		*/
-    as_nas_info_t nasMsg;	/* Uplink NAS message			*/
-} ul_info_transfer_ind_t;
-
-/*
- * NAS->AS - Downlink data transfer request
- * NAS requests the AS to transfer downlink information to the NAS that
- * operates at the UE side.
- */
-typedef ul_info_transfer_req_t dl_info_transfer_req_t;
-
-/*
- * AS->NAS - Downlink data transfer confirm
- * AS immediately notifies the NAS whether downlink information has been
- * successfully sent to the network or not.
- */
-typedef ul_info_transfer_cnf_t dl_info_transfer_cnf_t;
-
-/*
- * AS->NAS - Downlink data transfer indication
- * AS delivers the downlink information message to the NAS that operates
- * at the UE side.
- */
-typedef ul_info_transfer_ind_t dl_info_transfer_ind_t;
-
-/*
- * --------------------------------------------------------------------------
- * 			Radio Access Bearer establishment
- * --------------------------------------------------------------------------
- */
-
-/* TODO: Quality of Service parameters */
-typedef struct {} as_qos_t;
-
-/*
- * NAS->AS - Radio access bearer establishment request
- * NAS requests the AS to allocate transmission resources to radio access
- * bearer initialized at the network side.
- */
-typedef struct {
-    as_stmsi_t s_tmsi;		/* UE identity				*/
-    as_rab_id_t rabID;		/* Radio access bearer identity		*/
-    as_qos_t QoS;		/* Requested Quality of Service		*/
-} rab_establish_req_t;
-
-/*
- * AS->NAS - Radio access bearer establishment indication
- * AS notifies the NAS that specific radio access bearer has to be setup.
- */
-typedef struct {
-    as_rab_id_t rabID;		/* Radio access bearer identity		*/
-} rab_establish_ind_t;
-
-/*
- * NAS->AS - Radio access bearer establishment response
- * NAS responds to AS whether the specified radio access bearer has been 
- * successfully setup or not.
- */
-typedef struct {
-    as_stmsi_t s_tmsi;		/* UE identity				*/
-    as_rab_id_t rabID;		/* Radio access bearer identity		*/
-    UInt8_t errCode;		/* Transaction status			*/
-} rab_establish_rsp_t;
-
-/*
- * AS->NAS - Radio access bearer establishment confirm
- * AS notifies NAS whether the specified radio access bearer has been 
- * successfully setup at the UE side or not.
- */
-typedef struct {
-    as_rab_id_t rabID;		/* Radio access bearer identity		*/
-    UInt8_t errCode;		/* Transaction status			*/
-} rab_establish_cnf_t;
-
-/*
- * --------------------------------------------------------------------------
- *			    Radio Access Bearer release
- * --------------------------------------------------------------------------
- */
-
-/*
- * NAS->AS - Radio access bearer release request
- * NAS requests the AS to release transmission resources previously allocated
- * to specific radio access bearer at the network side.
- */
-typedef struct {
-    as_stmsi_t s_tmsi;		/* UE identity				*/
-    as_rab_id_t rabID;		/* Radio access bearer identity		*/
-} rab_release_req_t;
-
-/*
- * AS->NAS - Radio access bearer release indication
- * AS notifies NAS that specific radio access bearer has been released.
- */
-typedef struct {
-    as_rab_id_t rabID;		/* Radio access bearer identity		*/
-} rab_release_ind_t;
-
-/*
- * --------------------------------------------------------------------------
- *	Structure of the AS messages handled by the network sublayer
- * --------------------------------------------------------------------------
- */
-typedef struct {
-    UInt16_t msgID;
-    union {
-	broadcast_info_ind_t broadcast_info_ind;
-	cell_info_req_t cell_info_req;
-	cell_info_cnf_t cell_info_cnf;
-	cell_info_ind_t cell_info_ind;
-	paging_req_t paging_req;
-	paging_ind_t paging_ind;
-	nas_establish_req_t nas_establish_req;
-	nas_establish_ind_t nas_establish_ind;
-	nas_establish_rsp_t nas_establish_rsp;
-	nas_establish_cnf_t nas_establish_cnf;
-	nas_release_req_t nas_release_req;
-	nas_release_ind_t nas_release_ind;
-	ul_info_transfer_req_t ul_info_transfer_req;
-	ul_info_transfer_cnf_t ul_info_transfer_cnf;
-	ul_info_transfer_ind_t ul_info_transfer_ind;
-	dl_info_transfer_req_t dl_info_transfer_req;
-	dl_info_transfer_cnf_t dl_info_transfer_cnf;
-	dl_info_transfer_ind_t dl_info_transfer_ind;
-	rab_establish_req_t rab_establish_req;
-	rab_establish_ind_t rab_establish_ind;
-	rab_establish_rsp_t rab_establish_rsp;
-	rab_establish_cnf_t rab_establish_cnf;
-	rab_release_req_t rab_release_req;
-	rab_release_ind_t rab_release_ind;
-    } __attribute__((__packed__)) msg;
-} as_message_t;
-
-/****************************************************************************/
-/********************  G L O B A L    V A R I A B L E S  ********************/
-/****************************************************************************/
-
-/****************************************************************************/
-/******************  E X P O R T E D    F U N C T I O N S  ******************/
-/****************************************************************************/
-
-int as_message_decode(const char* buffer, as_message_t* msg, int length);
-
-int as_message_encode(char* buffer, as_message_t* msg, int length);
-
-/* Implemented in the network_api.c body file */
-int as_message_send(as_message_t* as_msg);
-
-#endif /* __AS_MESSAGE_H__*/
diff --git a/openair-cn/GTPV1-U/Makefile.am b/openair-cn/GTPV1-U/Makefile.am
index f586bf88e553c95502cebfe47254b21ab0c14264..6519cb40c9458e30d53b016ffadb9b3689d080bb 100644
--- a/openair-cn/GTPV1-U/Makefile.am
+++ b/openair-cn/GTPV1-U/Makefile.am
@@ -1,5 +1,7 @@
 AM_CFLAGS = @ADD_CFLAGS@ 	\
 	-I$(top_srcdir)/COMMON	\
+	-I$(top_srcdir)/NAS/EURECOM-NAS/src/api/network	\
+	-I$(top_srcdir)/NAS/EURECOM-NAS/src/include	\
 	-I$(top_srcdir)/INTERTASK_INTERFACE	\
 	-I$(top_srcdir)/GTPV1-U/nw-gtpv1u/include	\
 	-I$(top_srcdir)/GTPV1-U/nw-gtpv1u/shared	\
diff --git a/openair-cn/MME_APP/Makefile.am b/openair-cn/MME_APP/Makefile.am
index 396860d4c0171f77f1f673a8bdde46d07a07c635..6ee2feae263ae9cd9af856e078dc73e27a4a5af9 100644
--- a/openair-cn/MME_APP/Makefile.am
+++ b/openair-cn/MME_APP/Makefile.am
@@ -1,6 +1,8 @@
 AM_CFLAGS =				\
 	@ADD_CFLAGS@ 			\
 	-I$(top_srcdir)/COMMON	\
+	-I$(top_srcdir)/NAS/EURECOM-NAS/src/api/network	\
+	-I$(top_srcdir)/NAS/EURECOM-NAS/src/include	\
 	-I$(top_srcdir)/INTERTASK_INTERFACE	\
 	-I$(top_srcdir)/S1AP		\
 	-I$(top_srcdir)/S6A	\
diff --git a/openair-cn/Makefile.am b/openair-cn/Makefile.am
index 56f389af8a56edb09a459add6844fb93f262c9c7..ecf203275528c0060ecea64ac34ab8bebfcac086 100644
--- a/openair-cn/Makefile.am
+++ b/openair-cn/Makefile.am
@@ -1,8 +1,10 @@
 ACLOCAL_AMFLAGS = -I m4
 
-AM_CFLAGS = @ADD_CFLAGS@ 	\
-	-I$(top_srcdir)/COMMON	\
-	-I$(top_srcdir)/UTILS	\
+AM_CFLAGS = @ADD_CFLAGS@ 							\
+	-I$(top_srcdir)/COMMON							\
+	-I$(top_srcdir)/UTILS							\
+	-I$(top_srcdir)/NAS/EURECOM-NAS/src/api/network	\
+	-I$(top_srcdir)/NAS/EURECOM-NAS/src/include		\
 	-I$(top_srcdir)/INTERTASK_INTERFACE
 
 if HAVE_GCCXML
@@ -10,15 +12,15 @@ BUILT_SOURCES =		\
 	messages.xml	\
 	messages_xml.h
 
-messages_hdr =	 									\
-	$(top_srcdir)/INTERTASK_INTERFACE/intertask_messages_def.h			\
-	$(top_srcdir)/INTERTASK_INTERFACE/timer_messages_def.h				\
-	$(top_srcdir)/INTERTASK_INTERFACE/timer_messages_types.h			\
-	$(top_srcdir)/COMMON/tasks_def.h						\
-	$(top_srcdir)/COMMON/messages_def.h						\
+messages_hdr =	 												\
+	$(top_srcdir)/INTERTASK_INTERFACE/intertask_messages_def.h	\
+	$(top_srcdir)/INTERTASK_INTERFACE/timer_messages_def.h		\
+	$(top_srcdir)/INTERTASK_INTERFACE/timer_messages_types.h	\
+	$(top_srcdir)/COMMON/tasks_def.h							\
+	$(top_srcdir)/COMMON/messages_def.h							\
 	$(top_srcdir)/COMMON/messages_types.h						\
 	$(top_srcdir)/COMMON/gtpv1_u_messages_def.h					\
-	$(top_srcdir)/COMMON/gtpv1_u_messages_types.h					\
+	$(top_srcdir)/COMMON/gtpv1_u_messages_types.h				\
 	$(top_srcdir)/COMMON/nas_messages_def.h						\
 	$(top_srcdir)/COMMON/nas_messages_types.h					\
 	$(top_srcdir)/COMMON/s11_messages_def.h						\
@@ -27,8 +29,8 @@ messages_hdr =	 									\
 	$(top_srcdir)/COMMON/s1ap_messages_types.h					\
 	$(top_srcdir)/COMMON/s6a_messages_def.h						\
 	$(top_srcdir)/COMMON/s6a_messages_types.h					\
-	$(top_srcdir)/COMMON/sgw_lite_def.h						\
-	$(top_srcdir)/COMMON/sgw_lite_messages_types.h					\
+	$(top_srcdir)/COMMON/sgw_lite_def.h							\
+	$(top_srcdir)/COMMON/sgw_lite_messages_types.h				\
 	$(top_srcdir)/COMMON/sctp_messages_def.h					\
 	$(top_srcdir)/COMMON/sctp_messages_types.h					\
 	$(top_srcdir)/COMMON/udp_messages_def.h						\
@@ -41,23 +43,23 @@ messages_xml.h: messages.xml
 	sed -e 's/[ ]*//' -e 's/"/\\"/g' -e 's/^/"/' -e 's/$$/"/' messages.xml > messages_xml.h
 endif
 
-SUBDIRS = 			\
-	.			\
-	GTPV1-U			\
-	GTPV2-C			\
-	INTERTASK_INTERFACE 	\
-	SGI			\
-	NAS			\
-	SCTP			\
-	S11			\
-	S1AP			\
-	S6A		        \
-	SECU			\
-	SGW-LITE		\
-	UTILS			\
-	UDP			\
-	MME_APP			\
-	TEST			\
-	OAISIM_MME		\
-	OAI_EPC			\
+SUBDIRS = 				\
+	.					\
+	GTPV1-U				\
+	GTPV2-C				\
+	INTERTASK_INTERFACE \
+	SGI					\
+	NAS					\
+	SCTP				\
+	S11					\
+	S1AP				\
+	S6A		        	\
+	SECU				\
+	SGW-LITE			\
+	UTILS				\
+	UDP					\
+	MME_APP				\
+	TEST				\
+	OAISIM_MME			\
+	OAI_EPC				\
 	OAI_SGW
\ No newline at end of file
diff --git a/openair-cn/NAS/EURECOM-NAS/src/api/network/as_message.h b/openair-cn/NAS/EURECOM-NAS/src/api/network/as_message.h
index ff5bd8f7477385217ae4d00d4ccee76aa3bbe2e4..f242424823a6c07e105f3e811fc0c1f345c515e6 100644
--- a/openair-cn/NAS/EURECOM-NAS/src/api/network/as_message.h
+++ b/openair-cn/NAS/EURECOM-NAS/src/api/network/as_message.h
@@ -96,6 +96,17 @@ Description	Defines the messages supported by the Access Stratum sublayer
 #define AS_RAB_RELEASE_REQ		(AS_RAB_RELEASE | AS_REQUEST)
 #define AS_RAB_RELEASE_IND		(AS_RAB_RELEASE | AS_INDICATION)
 
+/* NAS Cause */
+#define EPS_SERVICES_AND_NON_EPS_SERVICES_NOT_ALLOWED (8)
+#define EPS_SERVICES_NOT_ALLOWED                      (7)
+#define PLMN_NOT_ALLOWED                              (11)
+#define TRACKING_AREA_NOT_ALLOWED                     (12)
+#define ROAMING_NOT_ALLOWED_IN_THIS_TRACKING_AREA     (13)
+#define EPS_SERVICES_NOT_ALLOWED_IN_THIS_PLMN         (14)
+#define NO_SUITABLE_CELLS_IN_TRACKING_AREA            (15)
+#define NETWORK_FAILURE                               (17)
+#define ESM_FAILURE                                   (19)
+
 /*
  * --------------------------------------------------------------------------
  * 		    Access Stratum message global parameters
diff --git a/openair-cn/OAI_EPC/Makefile.am b/openair-cn/OAI_EPC/Makefile.am
index cf3d363bd9e919401a407e8ff4dcd2f20d70c3f2..5ae7d94c481bda58cafe845676c6ae1e569858fd 100644
--- a/openair-cn/OAI_EPC/Makefile.am
+++ b/openair-cn/OAI_EPC/Makefile.am
@@ -5,6 +5,8 @@ AM_CFLAGS = @ADD_CFLAGS@ \
 	-I$(top_srcdir)/GTPV1-U/nw-gtpv1u/include	\
 	-I$(top_srcdir)/GTPV1-U/nw-gtpv1u/shared		\
 	-I$(top_srcdir)/SCTP				\
+	-I$(top_srcdir)/NAS/EURECOM-NAS/src/api/network	\
+	-I$(top_srcdir)/NAS/EURECOM-NAS/src/include	\
 	-I$(top_srcdir)/INTERTASK_INTERFACE		\
 	-I$(top_srcdir)/SGI				\
 	-I$(top_srcdir)/MME_APP				\
diff --git a/openair-cn/S11/Makefile.am b/openair-cn/S11/Makefile.am
index 18fa1441269b374ce6c17dd7f4f279e86cde7397..b6c3adc823872a8b69266a4a31212f88b02a380e 100644
--- a/openair-cn/S11/Makefile.am
+++ b/openair-cn/S11/Makefile.am
@@ -6,6 +6,8 @@ AM_CFLAGS =	\
 	@ADD_CFLAGS@	\
 	-I$(top_srcdir)/COMMON	\
 	-I$(top_srcdir)/GTPV2-C/nwgtpv2c-0.11/shared	\
+	-I$(top_srcdir)/NAS/EURECOM-NAS/src/api/network	\
+	-I$(top_srcdir)/NAS/EURECOM-NAS/src/include	\
 	-I$(top_srcdir)/INTERTASK_INTERFACE	\
 	-I$(top_srcdir)/SGW-LITE	\
 	-I$(top_srcdir)/UTILS
diff --git a/openair-cn/S1AP/Makefile.am b/openair-cn/S1AP/Makefile.am
index d6e9fac9ed6d003113bff21d4472fdb47f05fdc8..5a8b0697788a9126445ea694ca32328df3fbfb6b 100644
--- a/openair-cn/S1AP/Makefile.am
+++ b/openair-cn/S1AP/Makefile.am
@@ -5,6 +5,8 @@ AM_CFLAGS =				\
 	-I$(top_srcdir)/COMMON	\
 	-I$(top_builddir)/S1AP		\
 	-I$(top_builddir)/S1AP/MESSAGES	\
+	-I$(top_srcdir)/NAS/EURECOM-NAS/src/api/network	\
+	-I$(top_srcdir)/NAS/EURECOM-NAS/src/include	\
 	-I$(top_srcdir)/INTERTASK_INTERFACE	\
 	-I$(top_srcdir)/SCTP	\
 	-I$(top_srcdir)/UTILS	\
diff --git a/openair-cn/S6A/Makefile.am b/openair-cn/S6A/Makefile.am
index bf4d2923c1221edb6209ed4972d180e7ea8e6f95..2c8b0c8b68faae19d84a751e1e56fa9b851bfaff 100644
--- a/openair-cn/S6A/Makefile.am
+++ b/openair-cn/S6A/Makefile.am
@@ -1,6 +1,8 @@
 AM_CFLAGS =				\
 	@ADD_CFLAGS@ 			\
 	-I$(top_srcdir)/COMMON   \
+	-I$(top_srcdir)/NAS/EURECOM-NAS/src/api/network	\
+	-I$(top_srcdir)/NAS/EURECOM-NAS/src/include	\
 	-I$(top_srcdir)/INTERTASK_INTERFACE	\
 	-I$(top_srcdir)/UTILS
 
diff --git a/openair-cn/SCTP/Makefile.am b/openair-cn/SCTP/Makefile.am
index 393cd0ed69276ec5ca81f8bb69b2b7bd48581f08..278db78246b9e88212fef63eaa53a6e86ca17638 100644
--- a/openair-cn/SCTP/Makefile.am
+++ b/openair-cn/SCTP/Makefile.am
@@ -5,6 +5,8 @@ libsctpserver_la_LDFLAGS = -all-static
 AM_CFLAGS =	\
 	@ADD_CFLAGS@	\
 	-I$(top_srcdir)/COMMON	\
+	-I$(top_srcdir)/NAS/EURECOM-NAS/src/api/network	\
+	-I$(top_srcdir)/NAS/EURECOM-NAS/src/include	\
 	-I$(top_srcdir)/INTERTASK_INTERFACE	\
 	-I$(top_srcdir)/UTILS
 
diff --git a/openair-cn/SGI/Makefile.am b/openair-cn/SGI/Makefile.am
index cdbdc68a39a97c7804944f1d8e669d48c9435eb7..6b83e19ed8d2f89925838e6a722206afe78810cf 100644
--- a/openair-cn/SGI/Makefile.am
+++ b/openair-cn/SGI/Makefile.am
@@ -3,6 +3,8 @@ AM_CFLAGS = @ADD_CFLAGS@ 	\
     -I$(top_srcdir)/SGW-LITE  \
     -I$(top_srcdir)/UTILS   \
     -I$(top_srcdir)/UTILS/HASHTABLE   \
+	-I$(top_srcdir)/NAS/EURECOM-NAS/src/api/network	\
+	-I$(top_srcdir)/NAS/EURECOM-NAS/src/include	\
     -I$(top_srcdir)/INTERTASK_INTERFACE 
     
 noinst_LTLIBRARIES = libsgi.la
diff --git a/openair-cn/SGW-LITE/Makefile.am b/openair-cn/SGW-LITE/Makefile.am
index 7a5505a5b4327a56b254a07977970c6bc49e56a4..b92d5305745968a85d1c6e54340fd09176545306 100644
--- a/openair-cn/SGW-LITE/Makefile.am
+++ b/openair-cn/SGW-LITE/Makefile.am
@@ -1,5 +1,7 @@
 AM_CFLAGS = @ADD_CFLAGS@ \
 	-I$(top_srcdir)/COMMON	\
+	-I$(top_srcdir)/NAS/EURECOM-NAS/src/api/network	\
+	-I$(top_srcdir)/NAS/EURECOM-NAS/src/include	\
     -I$(top_srcdir)/INTERTASK_INTERFACE \
     -I$(top_srcdir)/MME_APP \
     -I$(top_srcdir)/UTILS \
diff --git a/openair-cn/UDP/Makefile.am b/openair-cn/UDP/Makefile.am
index 00fe86cbd77c818f97986f58e28b856617a32956..b0a87216c62d9834cdd588353531a4a88e1dbd39 100644
--- a/openair-cn/UDP/Makefile.am
+++ b/openair-cn/UDP/Makefile.am
@@ -4,6 +4,8 @@ libudpserver_la_LDFLAGS = -all-static
 AM_CFLAGS =	\
 	@ADD_CFLAGS@	\
 	-I$(top_srcdir)/COMMON	\
+	-I$(top_srcdir)/NAS/EURECOM-NAS/src/api/network	\
+	-I$(top_srcdir)/NAS/EURECOM-NAS/src/include	\
 	-I$(top_srcdir)/INTERTASK_INTERFACE	\
 	-I$(top_srcdir)/UTILS