From 490d0f0fbf260d9624b60de30e5a658dcec3fcaf Mon Sep 17 00:00:00 2001
From: winckel <winckel@eurecom.fr>
Date: Fri, 6 Dec 2013 17:52:26 +0000
Subject: [PATCH] Modified makefiles to integrate UE NAS lib. Corrected some
 NAS file to compile without C99 mode option.

git-svn-id: http://svn.eurecom.fr/openair4G/trunk@4633 818b1a75-f10b-46b9-bf7c-635c3b92a50f
---
 openair-cn/NAS/EURECOM-NAS/src/emm/Attach.c   |   8 +-
 openair-cn/NAS/EURECOM-NAS/src/emm/IdleMode.c |  25 +-
 openair-cn/NAS/EURECOM-NAS/src/emm/emm_main.c |   4 +-
 .../NAS/EURECOM-NAS/src/emm/sap/emm_recv.c    |   3 +-
 .../src/esm/EpsBearerContextDeactivation.c    |   3 +-
 .../NAS/EURECOM-NAS/src/esm/PdnDisconnect.c   |   3 +-
 .../NAS/EURECOM-NAS/src/esm/esm_ebr_context.c |  17 +-
 openair-cn/NAS/EURECOM-NAS/src/esm/esm_main.c |  16 +-
 openair-cn/NAS/EURECOM-NAS/src/esm/esm_pt.c   |   4 +-
 .../NAS/EURECOM-NAS/src/esm/sap/esm_recv.c    |  10 +-
 openair-cn/NAS/EURECOM-NAS/src/nas_proc.c     |   6 +-
 .../NAS/EURECOM-NAS/src/util/nas_timer.c      |  10 +-
 openair-cn/NAS/Makefile.UE                    | 283 +++++++
 openair-cn/NAS/Makefile.am                    |  48 +-
 openair-cn/NAS/Makefile.inc                   | 758 +++++++++---------
 targets/Makefile.common                       |  19 +-
 targets/Makerules                             |   7 +-
 targets/SIMU/USER/Makefile                    |   2 +
 18 files changed, 779 insertions(+), 447 deletions(-)
 create mode 100644 openair-cn/NAS/Makefile.UE

diff --git a/openair-cn/NAS/EURECOM-NAS/src/emm/Attach.c b/openair-cn/NAS/EURECOM-NAS/src/emm/Attach.c
index 6617526459..8f7cc4c20e 100644
--- a/openair-cn/NAS/EURECOM-NAS/src/emm/Attach.c
+++ b/openair-cn/NAS/EURECOM-NAS/src/emm/Attach.c
@@ -372,6 +372,8 @@ int emm_proc_attach_accept(long t3412, long t3402, long t3423,
     emm_sap_t emm_sap;
     esm_sap_t esm_sap;
     int rc;
+    int i;
+    int j;
 
     LOG_TRACE(INFO, "EMM-PROC  - EPS attach accepted by the network");
 
@@ -381,7 +383,7 @@ int emm_proc_attach_accept(long t3412, long t3402, long t3423,
 
     /* Delete old TAI list and store the received TAI list */
     _emm_data.ltai.n_tais = n_tais;
-    for (int i = 0; (i < n_tais) && (i < EMM_DATA_TAI_MAX); i++) {
+    for (i = 0; (i < n_tais) && (i < EMM_DATA_TAI_MAX); i++) {
         _emm_data.ltai.tai[i] = tai[i];
     }
 
@@ -404,13 +406,13 @@ int emm_proc_attach_accept(long t3412, long t3402, long t3423,
     /* Update the stored list of equivalent PLMNs */
     _emm_data.nvdata.eplmn.n_plmns = 0;
     if (n_eplmns > 0) {
-        for (int i = 0; (i < n_eplmns) && (i < EMM_DATA_EPLMN_MAX); i++) {
+        for (i = 0; (i < n_eplmns) && (i < EMM_DATA_EPLMN_MAX); i++) {
             int is_forbidden = FALSE;
             if (!_emm_data.is_emergency) {
                 /* If the attach procedure is not for emergency bearer
                  * services, the UE shall remove from the list any PLMN
                  * code that is already in the list of forbidden PLMNs */
-                for (int j = 0; j < _emm_data.fplmn.n_plmns; j++) {
+                for (j = 0; j < _emm_data.fplmn.n_plmns; j++) {
                     if (PLMNS_ARE_EQUAL(eplmn[i], _emm_data.fplmn.plmn[j])) {
                         is_forbidden = TRUE;
                         break;
diff --git a/openair-cn/NAS/EURECOM-NAS/src/emm/IdleMode.c b/openair-cn/NAS/EURECOM-NAS/src/emm/IdleMode.c
index c22c284f3b..bf1f77bceb 100644
--- a/openair-cn/NAS/EURECOM-NAS/src/emm/IdleMode.c
+++ b/openair-cn/NAS/EURECOM-NAS/src/emm/IdleMode.c
@@ -384,8 +384,10 @@ const char *IdleMode_get_plmn_id(const plmn_t *plmn, int index, size_t *len)
  ***************************************************************************/
 int IdleMode_get_plmn_fullname_index(const char *plmn)
 {
+    int index;
+
     /* Get the index of the PLMN identifier with specified full name */
-    for (int index = 0; index < _emm_plmn_list.n_plmns; index++) {
+    for (index = 0; index < _emm_plmn_list.n_plmns; index++) {
         if ( strncmp(plmn, _emm_plmn_list.param[index].fullname,
                      NET_FORMAT_LONG_SIZE) != 0 ) {
             continue;
@@ -413,8 +415,10 @@ int IdleMode_get_plmn_fullname_index(const char *plmn)
  ***************************************************************************/
 int IdleMode_get_plmn_shortname_index(const char *plmn)
 {
+    int index;
+
     /* Get the index of the PLMN identifier with specified short name */
-    for (int index = 0; index < _emm_plmn_list.n_plmns; index++) {
+    for (index = 0; index < _emm_plmn_list.n_plmns; index++) {
         if ( !strncmp(plmn, _emm_plmn_list.param[index].shortname,
                       NET_FORMAT_SHORT_SIZE) ) {
             continue;
@@ -442,8 +446,10 @@ int IdleMode_get_plmn_shortname_index(const char *plmn)
  ***************************************************************************/
 int IdleMode_get_plmn_id_index(const char *plmn)
 {
+    int index;
+
     /* Get the index of the PLMN identifier with specified numeric identifier */
-    for (int index = 0; index < _emm_plmn_list.n_plmns; index++) {
+    for (index = 0; index < _emm_plmn_list.n_plmns; index++) {
         if ( !strncmp(plmn, _emm_plmn_list.param[index].num,
                       NET_FORMAT_LONG_SIZE) ) {
             continue;
@@ -480,6 +486,7 @@ int emm_proc_initialize(void)
 
     emm_sap_t emm_sap;
     int rc;
+    int i;
 
     if (!_emm_data.usim_is_valid) {
         /* The USIM application is not present or not valid */
@@ -489,7 +496,7 @@ int emm_proc_initialize(void)
         /* The highest priority is given to either the "equivalent PLMNs"
          * if available, or the last registered PLMN */
         if (_emm_data.nvdata.eplmn.n_plmns > 0) {
-            for (int i=0; i < _emm_data.nvdata.eplmn.n_plmns; i++) {
+            for (i=0; i < _emm_data.nvdata.eplmn.n_plmns; i++) {
                 _emm_plmn_list.plmn[_emm_plmn_list.n_plmns++] =
                     &_emm_data.nvdata.eplmn.plmn[i];
             }
@@ -515,14 +522,14 @@ int emm_proc_initialize(void)
 
         /* Each PLMN/access technology combination in the "User
          * Controlled PLMN Selector with Access Technology" */
-        for (int i=0; i < _emm_data.plmn.n_plmns; i++) {
+        for (i=0; i < _emm_data.plmn.n_plmns; i++) {
             _emm_plmn_list.plmn[_emm_plmn_list.n_plmns++] =
                 &_emm_data.plmn.plmn[i];
         }
 
         /* Each PLMN/access technology combination in the "Operator
          * Controlled PLMN Selector with Access Technology" */
-        for (int i=0; i < _emm_data.oplmn.n_plmns; i++) {
+        for (i=0; i < _emm_data.oplmn.n_plmns; i++) {
             _emm_plmn_list.plmn[_emm_plmn_list.n_plmns++] =
                 &_emm_data.oplmn.plmn[i];
         }
@@ -536,7 +543,7 @@ int emm_proc_initialize(void)
         /* TODO: Schedule periodic network selection attemps (hpplmn timer) */
 
         /* Initialize the PLMNs' parameters */
-        for (int i=0; i < _emm_plmn_list.n_plmns; i++) {
+        for (i=0; i < _emm_plmn_list.n_plmns; i++) {
             struct plmn_param_t *plmn = &(_emm_plmn_list.param[i]);
             int id = _IldlMode_get_opnn_id(_emm_plmn_list.plmn[i]);
             if (id < 0) {
@@ -1077,7 +1084,9 @@ static int _IdleMode_plmn_str(char *plmn_str, const plmn_t *plmn)
  ***************************************************************************/
 static int _IldlMode_get_opnn_id(const plmn_t *plmn)
 {
-    for (int i = 0; i < _emm_data.n_opnns; i++) {
+    int i;
+
+    for (i = 0; i < _emm_data.n_opnns; i++) {
         if (plmn->MCCdigit1 != _emm_data.opnn[i].plmn->MCCdigit1) {
             continue;
         }
diff --git a/openair-cn/NAS/EURECOM-NAS/src/emm/emm_main.c b/openair-cn/NAS/EURECOM-NAS/src/emm/emm_main.c
index a5a833554c..ff19d477e9 100644
--- a/openair-cn/NAS/EURECOM-NAS/src/emm/emm_main.c
+++ b/openair-cn/NAS/EURECOM-NAS/src/emm/emm_main.c
@@ -967,10 +967,12 @@ static int _emm_main_get_imei(imei_t *imei, const char *imei_str)
  ***************************************************************************/
 static int _emm_main_imsi_cmp(imsi_t *imsi1, imsi_t *imsi2)
 {
+    int i;
+
     if (imsi1->length != imsi2->length) {
         return FALSE;
     }
-    for (int i = 0; i < imsi1->length; i++) {
+    for (i = 0; i < imsi1->length; i++) {
         if (imsi1->u.value[i] != imsi2->u.value[i]) {
             return FALSE;
         }
diff --git a/openair-cn/NAS/EURECOM-NAS/src/emm/sap/emm_recv.c b/openair-cn/NAS/EURECOM-NAS/src/emm/sap/emm_recv.c
index 641e4be278..46cb710958 100644
--- a/openair-cn/NAS/EURECOM-NAS/src/emm/sap/emm_recv.c
+++ b/openair-cn/NAS/EURECOM-NAS/src/emm/sap/emm_recv.c
@@ -112,6 +112,7 @@ int emm_recv_attach_accept(attach_accept_msg *msg, int *emm_cause)
     LOG_FUNC_IN;
 
     int rc;
+    int i;
 
     LOG_TRACE(INFO, "EMMAS-SAP - Received Attach Accept message");
 
@@ -152,7 +153,7 @@ int emm_recv_attach_accept(attach_accept_msg *msg, int *emm_cause)
     /* Get the tracking area list the UE is registered to */
     int n_tais = msg->tailist.numberofelements;
     tai_t tai[n_tais];
-    for (int i = 0; i < n_tais; i++) {
+    for (i = 0; i < n_tais; i++) {
         tai[i].plmn.MCCdigit1 = msg->tailist.mccdigit1;
         tai[i].plmn.MCCdigit2 = msg->tailist.mccdigit2;
         tai[i].plmn.MCCdigit3 = msg->tailist.mccdigit3;
diff --git a/openair-cn/NAS/EURECOM-NAS/src/esm/EpsBearerContextDeactivation.c b/openair-cn/NAS/EURECOM-NAS/src/esm/EpsBearerContextDeactivation.c
index e78582cf5c..0c9811164e 100644
--- a/openair-cn/NAS/EURECOM-NAS/src/esm/EpsBearerContextDeactivation.c
+++ b/openair-cn/NAS/EURECOM-NAS/src/esm/EpsBearerContextDeactivation.c
@@ -327,6 +327,7 @@ int esm_proc_eps_bearer_context_deactivate(int is_local, int ebi,
     LOG_FUNC_IN;
 
     int rc = RETURNerror;
+    int i;
 
     if (is_local) {
         if (ebi != ESM_SAP_ALL_EBI) {
@@ -362,7 +363,7 @@ int esm_proc_eps_bearer_context_deactivate(int is_local, int ebi,
                       *pid);
         } else {
             esm_pdn_t *pdn = _esm_data.pdn[*pid].data;
-            for (int i = 0; i < pdn->n_bearers; i++) {
+            for (i = 0; i < pdn->n_bearers; i++) {
                 if (pdn->bearer[i]->ebi != ebi) {
                     continue;
                 }
diff --git a/openair-cn/NAS/EURECOM-NAS/src/esm/PdnDisconnect.c b/openair-cn/NAS/EURECOM-NAS/src/esm/PdnDisconnect.c
index 8b22b7b63e..73fe6a0a09 100644
--- a/openair-cn/NAS/EURECOM-NAS/src/esm/PdnDisconnect.c
+++ b/openair-cn/NAS/EURECOM-NAS/src/esm/PdnDisconnect.c
@@ -630,8 +630,9 @@ static void *_pdn_disconnect_t3492_handler(void *args)
 static int _pdn_disconnect_get_default_ebi(int pti)
 {
     int ebi = -1;
+    int i;
 
-    for (int i = 0; i < ESM_DATA_PDN_MAX; i++) {
+    for (i = 0; i < ESM_DATA_PDN_MAX; i++) {
         if ( (_esm_data.pdn[i].pid != -1) && _esm_data.pdn[i].data ) {
             if (_esm_data.pdn[i].data->pti != pti) {
                 continue;
diff --git a/openair-cn/NAS/EURECOM-NAS/src/esm/esm_ebr_context.c b/openair-cn/NAS/EURECOM-NAS/src/esm/esm_ebr_context.c
index f78572c57a..7addde5d5b 100644
--- a/openair-cn/NAS/EURECOM-NAS/src/esm/esm_ebr_context.c
+++ b/openair-cn/NAS/EURECOM-NAS/src/esm/esm_ebr_context.c
@@ -482,6 +482,7 @@ int esm_ebr_context_check_tft(int pid, int ebi,
     LOG_FUNC_IN;
 
     int rc = RETURNerror;
+    int i;
 
     if (pid < ESM_DATA_PDN_MAX) {
         if (pid != _esm_data.pdn[pid].pid) {
@@ -493,7 +494,7 @@ int esm_ebr_context_check_tft(int pid, int ebi,
         } else if (operation == ESM_EBR_CONTEXT_TFT_CREATE) {
             esm_pdn_t *pdn = _esm_data.pdn[pid].data;
             /* For each EPS bearer context associated to the PDN connection */
-            for (int i = 0; i < pdn->n_bearers; i++) {
+            for (i = 0; i < pdn->n_bearers; i++) {
                 if (pdn->bearer[i]) {
                     if (pdn->bearer[i]->ebi == ebi) {
                         /* Check the packet filter identifiers */
@@ -545,11 +546,14 @@ int esm_ebr_context_check_tft(int pid, int ebi,
 static int _esm_ebr_context_check_identifiers(const network_tft_t *tft1,
         const network_tft_t *tft2)
 {
+    int i;
+    int j;
+
     if ( (tft1 == NULL) || (tft2 == NULL) ) {
         return (RETURNok);
     }
-    for (int i = 0; i < tft1->n_pkfs; i++) {
-        for (int j = 0; j < tft2->n_pkfs; j++) {
+    for (i = 0; i < tft1->n_pkfs; i++) {
+        for (j = 0; j < tft2->n_pkfs; j++) {
             /* Packet filters should have been allocated */
             if (tft1->pkf[i]->id == tft2->pkf[i]->id) {
                 /* 3GPP TS 24.301, section 6.4.2.5, abnormal cases d.1
@@ -582,11 +586,14 @@ static int _esm_ebr_context_check_identifiers(const network_tft_t *tft1,
 static int _esm_ebr_context_check_precedence(const network_tft_t *tft1,
         const network_tft_t *tft2)
 {
+    int i;
+    int j;
+
     if ( (tft1 == NULL) || (tft2 == NULL) ) {
         return (RETURNok);
     }
-    for (int i = 0; i < tft1->n_pkfs; i++) {
-        for (int j = 0; j < tft2->n_pkfs; j++) {
+    for (i = 0; i < tft1->n_pkfs; i++) {
+        for (j = 0; j < tft2->n_pkfs; j++) {
             /* Packet filters should have been allocated */
             if (tft1->pkf[i]->precedence == tft2->pkf[i]->precedence) {
                 /* 3GPP TS 24.301, section 6.4.2.5, abnormal cases d.2
diff --git a/openair-cn/NAS/EURECOM-NAS/src/esm/esm_main.c b/openair-cn/NAS/EURECOM-NAS/src/esm/esm_main.c
index 6ec1f8f448..dad2456209 100644
--- a/openair-cn/NAS/EURECOM-NAS/src/esm/esm_main.c
+++ b/openair-cn/NAS/EURECOM-NAS/src/esm/esm_main.c
@@ -58,11 +58,13 @@ void esm_main_initialize(esm_indication_callback_t cb)
 {
     LOG_FUNC_IN;
 
+    int i;
+
     /* Total number of active EPS bearer contexts */
     _esm_data.n_ebrs = 0;
     /* List of active PDN connections */
     _esm_data.n_pdns = 0;
-    for (int i = 0; i < ESM_DATA_PDN_MAX + 1; i++) {
+    for (i = 0; i < ESM_DATA_PDN_MAX + 1; i++) {
         _esm_data.pdn[i].pid = -1;
         _esm_data.pdn[i].is_active = FALSE;
         _esm_data.pdn[i].data = NULL;
@@ -135,21 +137,25 @@ void esm_main_cleanup(void)
 {
     LOG_FUNC_IN;
 
-#ifdef NAS_UE
+    int i;
+    int pid;
+    int bid;
+
+    #ifdef NAS_UE
     /* De-activate EPS bearers and clean up PDN connections */
-    for (int pid = 0; pid < ESM_DATA_PDN_MAX; pid++) {
+    for (pid = 0; pid < ESM_DATA_PDN_MAX; pid++) {
         if (_esm_data.pdn[pid].data) {
             esm_pdn_t *pdn = _esm_data.pdn[pid].data;
             if (pdn->apn.length > 0) {
                 free(pdn->apn.value);
             }
             /* Release EPS bearer contexts */
-            for (int bid = 0; bid < pdn->n_bearers; bid++) {
+            for (bid = 0; bid < pdn->n_bearers; bid++) {
                 if (pdn->bearer[bid]) {
                     LOG_TRACE(WARNING, "ESM-MAIN  - Release EPS bearer "
                               "context (ebi=%d)", pdn->bearer[bid]->ebi);
                     /* Delete the TFT */
-                    for (int i = 0; i < pdn->bearer[bid]->tft.n_pkfs; i++) {
+                    for (i = 0; i < pdn->bearer[bid]->tft.n_pkfs; i++) {
                         if (pdn->bearer[bid]->tft.pkf[i]) {
                             free(pdn->bearer[bid]->tft.pkf[i]);
                         }
diff --git a/openair-cn/NAS/EURECOM-NAS/src/esm/esm_pt.c b/openair-cn/NAS/EURECOM-NAS/src/esm/esm_pt.c
index d080bf5e0f..3be043b55b 100644
--- a/openair-cn/NAS/EURECOM-NAS/src/esm/esm_pt.c
+++ b/openair-cn/NAS/EURECOM-NAS/src/esm/esm_pt.c
@@ -103,8 +103,10 @@ void esm_pt_initialize(void)
 {
     LOG_FUNC_IN;
 
+    int i;
+
     _esm_pt_data.index = 0;
-    for (int i = 0; i < ESM_PT_DATA_SIZE + 1; i++) {
+    for (i = 0; i < ESM_PT_DATA_SIZE + 1; i++) {
         _esm_pt_data.context[i] = NULL;
     }
 
diff --git a/openair-cn/NAS/EURECOM-NAS/src/esm/sap/esm_recv.c b/openair-cn/NAS/EURECOM-NAS/src/esm/sap/esm_recv.c
index 0501b36eb9..19b9af2ab2 100644
--- a/openair-cn/NAS/EURECOM-NAS/src/esm/sap/esm_recv.c
+++ b/openair-cn/NAS/EURECOM-NAS/src/esm/sap/esm_recv.c
@@ -399,6 +399,8 @@ int esm_recv_activate_dedicated_eps_bearer_context_request(int pti, int ebi,
     LOG_FUNC_IN;
 
     int esm_cause = ESM_CAUSE_SUCCESS;
+    int i;
+    int j;
 
     LOG_TRACE(INFO, "ESM-SAP   - Received Activate Dedicated EPS Bearer "
               "Context Request message (pti=%d, ebi=%d)", pti, ebi);
@@ -481,7 +483,7 @@ int esm_recv_activate_dedicated_eps_bearer_context_request(int pti, int ebi,
     esm_proc_tft_t tft = {0, {NULL}};
     /* Get the list of packet filters */
     const PacketFilters *pkfs = &(msg->tft.packetfilterlist.createtft);
-    for (int i = 0; i < msg->tft.numberofpacketfilters; i++) {
+    for (i = 0; i < msg->tft.numberofpacketfilters; i++) {
         /* Create new temporary packet filter */
         tft.pkf[i] = (network_pkf_t *)malloc(sizeof(network_pkf_t));
         if (tft.pkf[i] != NULL) {
@@ -500,7 +502,7 @@ int esm_recv_activate_dedicated_eps_bearer_context_request(int pti, int ebi,
             const PacketFilter *pkf = &(pkfs[i]->packetfilter);
             if (pkf->flags & TRAFFIC_FLOW_TEMPLATE_IPV4_REMOTE_ADDR_FLAG) {
                 /* IPv4 remote address component */
-                for (int j = 0;
+                for (j = 0;
                         (j < TRAFFIC_FLOW_TEMPLATE_IPV4_ADDR_SIZE)
                         && (j < NET_PACKET_FILTER_IPV4_ADDR_SIZE); j++) {
                     tft.pkf[i]->data.ipv4.addr[j] = pkf->ipv4remoteaddr[j].addr;
@@ -508,7 +510,7 @@ int esm_recv_activate_dedicated_eps_bearer_context_request(int pti, int ebi,
                 }
             } else if (pkf->flags & TRAFFIC_FLOW_TEMPLATE_IPV6_REMOTE_ADDR_FLAG) {
                 /* IPv6 remote address component */
-                for (int j = 0;
+                for (j = 0;
                         (j < TRAFFIC_FLOW_TEMPLATE_IPV6_ADDR_SIZE)
                         && (j < NET_PACKET_FILTER_IPV6_ADDR_SIZE); j++) {
                     tft.pkf[i]->data.ipv6.addr[j] = pkf->ipv6remoteaddr[j].addr;
@@ -560,7 +562,7 @@ int esm_recv_activate_dedicated_eps_bearer_context_request(int pti, int ebi,
         esm_cause = ESM_CAUSE_SUCCESS;
     }
     /* Release temporary traffic flow template data */
-    for (int i = 0; i < tft.n_pkfs; i++) {
+    for (i = 0; i < tft.n_pkfs; i++) {
         free(tft.pkf[i]);
     }
     /* Return the ESM cause value */
diff --git a/openair-cn/NAS/EURECOM-NAS/src/nas_proc.c b/openair-cn/NAS/EURECOM-NAS/src/nas_proc.c
index 77c07bc88d..d4f5fdfd35 100644
--- a/openair-cn/NAS/EURECOM-NAS/src/nas_proc.c
+++ b/openair-cn/NAS/EURECOM-NAS/src/nas_proc.c
@@ -711,13 +711,14 @@ int nas_proc_get_pdn_status(int *cids, int *states, int n_pdn_max)
 {
     LOG_FUNC_IN;
 
+    int cid;
     int n_defined_pdn = 0;
 
     /* Get the maximum number of supported PDN contexts */
     int n_pdn = esm_main_get_nb_pdns_max();
 
     /* For all PDN contexts */
-    for (int cid = 1; (cid < n_pdn+1) && (n_defined_pdn < n_pdn_max); cid++) {
+    for (cid = 1; (cid < n_pdn+1) && (n_defined_pdn < n_pdn_max); cid++) {
         /* Get the status of this PDN */
         int state = FALSE;
         int is_defined = esm_main_get_pdn_status(cid, &state);
@@ -754,13 +755,14 @@ int nas_proc_get_pdn_param(int *cids, int *types, const char **apns,
 {
     LOG_FUNC_IN;
 
+    int cid;
     int n_defined_pdn = 0;
 
     /* Get the maximum number of supported PDN contexts */
     int n_pdn = esm_main_get_nb_pdns_max();
 
     /* For all PDN contexts */
-    for (int cid = 1; (cid < n_pdn+1) && (n_defined_pdn < n_pdn_max); cid++) {
+    for (cid = 1; (cid < n_pdn+1) && (n_defined_pdn < n_pdn_max); cid++) {
         int emergency, active;
         /* Get PDN connection parameters */
         int rc = esm_main_get_pdn(cid, types, apns, &emergency, &active);
diff --git a/openair-cn/NAS/EURECOM-NAS/src/util/nas_timer.c b/openair-cn/NAS/EURECOM-NAS/src/util/nas_timer.c
index 5e76eb8219..af8a9a919a 100644
--- a/openair-cn/NAS/EURECOM-NAS/src/util/nas_timer.c
+++ b/openair-cn/NAS/EURECOM-NAS/src/util/nas_timer.c
@@ -26,14 +26,12 @@ Description Timer utilities
 #include <stdlib.h> // malloc, free
 #include <sys/time.h>   // setitimer
 
-#if !defined(EPC_BUILD)
-# include <signal.h>
-# include <time.h>   // clock_gettime
-#endif
-
-#if defined(NAS_MME) && defined(EPC_BUILD)
+#if defined(ENABLE_ITTI)
 # include "intertask_interface.h"
 # include "timer.h"
+#else
+# include <signal.h>
+# include <time.h>   // clock_gettime
 #endif
 #include "nas_timer.h"
 #include "commonDef.h"
diff --git a/openair-cn/NAS/Makefile.UE b/openair-cn/NAS/Makefile.UE
new file mode 100644
index 0000000000..329edadeaa
--- /dev/null
+++ b/openair-cn/NAS/Makefile.UE
@@ -0,0 +1,283 @@
+PROJDIR = $(UE_NAS_DIR)/EURECOM-NAS
+
+include $(UE_NAS_DIR)/EURECOM-NAS/Makefile.inc
+
+libnas_INCLUDES =								\
+	-I$(INCDIR)									\
+	-I$(UTILDIR)								\
+	-I$(USERAPIDIR)								\
+	-I$(NETAPIDIR)								\
+	-I$(EMMDIR)									\
+	-I$(EMMMSGDIR)								\
+	-I$(EMMSAPDIR)								\
+	-I$(ESMDIR)									\
+	-I$(ESMMSGDIR)								\
+	-I$(ESMSAPDIR)								\
+	-I$(MMEAPIDIR)								\
+	-I$(USIMAPIDIR)								\
+	-I$(IESDIR)
+
+OUTDIR = $(UE_NAS_DIR)/ue_objs
+
+libnas_api_OBJS = 								\
+    EURECOM-NAS/src/api/mme/mme_api.o   		\
+	EURECOM-NAS/src/api/network/nas_message.o   
+
+libnas_emm_OBJS = 								\
+    EURECOM-NAS/src/emm/Attach.o        		\
+    EURECOM-NAS/src/emm/Authentication.o        \
+    EURECOM-NAS/src/emm/Detach.o        		\
+    EURECOM-NAS/src/emm/EmmCommon.o     		\
+    EURECOM-NAS/src/emm/emm_data_ctx.o  		\
+    EURECOM-NAS/src/emm/emm_main.o      		\
+    EURECOM-NAS/src/emm/EmmStatusHdl.o     		\
+    EURECOM-NAS/src/emm/Identification.o        \
+    EURECOM-NAS/src/emm/IdleMode.o      		\
+    EURECOM-NAS/src/emm/LowerLayer.o    		\
+    EURECOM-NAS/src/emm/SecurityModeControl.o   \
+    EURECOM-NAS/src/emm/ServiceRequestHdl.o     \
+    EURECOM-NAS/src/emm/TrackingAreaUpdate.o
+
+libnas_emm_msg_OBJS =										\
+    EURECOM-NAS/src/emm/msg/AttachAccept.o					\
+    EURECOM-NAS/src/emm/msg/AuthenticationFailure.o			\
+    EURECOM-NAS/src/emm/msg/CsServiceNotification.o			\
+    EURECOM-NAS/src/emm/msg/ExtendedServiceRequest.o		\
+    EURECOM-NAS/src/emm/msg/IdentityResponse.o				\
+    EURECOM-NAS/src/emm/msg/EmmInformation.o				\
+    EURECOM-NAS/src/emm/msg/ServiceReject.o					\
+    EURECOM-NAS/src/emm/msg/TrackingAreaUpdateReject.o		\
+    EURECOM-NAS/src/emm/msg/AttachComplete.o				\
+    EURECOM-NAS/src/emm/msg/AuthenticationReject.o			\
+    EURECOM-NAS/src/emm/msg/DetachAccept.o					\
+    EURECOM-NAS/src/emm/msg/GutiReallocationCommand.o		\
+    EURECOM-NAS/src/emm/msg/emm_msg.o						\
+    EURECOM-NAS/src/emm/msg/SecurityModeCommand.o			\
+    EURECOM-NAS/src/emm/msg/ServiceRequest.o				\
+    EURECOM-NAS/src/emm/msg/TrackingAreaUpdateRequest.o		\
+    EURECOM-NAS/src/emm/msg/AttachReject.o					\
+    EURECOM-NAS/src/emm/msg/AuthenticationRequest.o			\
+    EURECOM-NAS/src/emm/msg/DetachRequest.o					\
+    EURECOM-NAS/src/emm/msg/GutiReallocationComplete.o		\
+    EURECOM-NAS/src/emm/msg/SecurityModeComplete.o			\
+    EURECOM-NAS/src/emm/msg/TrackingAreaUpdateAccept.o		\
+    EURECOM-NAS/src/emm/msg/UplinkNasTransport.o			\
+    EURECOM-NAS/src/emm/msg/AttachRequest.o					\
+    EURECOM-NAS/src/emm/msg/AuthenticationResponse.o		\
+    EURECOM-NAS/src/emm/msg/DownlinkNasTransport.o			\
+    EURECOM-NAS/src/emm/msg/EmmStatus.o						\
+    EURECOM-NAS/src/emm/msg/IdentityRequest.o				\
+    EURECOM-NAS/src/emm/msg/SecurityModeReject.o			\
+    EURECOM-NAS/src/emm/msg/TrackingAreaUpdateComplete.o
+
+libnas_emm_sap_OBJS =											\
+    EURECOM-NAS/src/emm/sap/emm_as.o							\
+    EURECOM-NAS/src/emm/sap/emm_cn.o							\
+    EURECOM-NAS/src/emm/sap/EmmDeregisteredNoImsi.o				\
+    EURECOM-NAS/src/emm/sap/emm_reg.o							\
+    EURECOM-NAS/src/emm/sap/EmmRegisteredUpdateNeeded.o			\
+    EURECOM-NAS/src/emm/sap/EmmDeregisteredNormalService.o		\
+    EURECOM-NAS/src/emm/sap/emm_sap.o							\
+    EURECOM-NAS/src/emm/sap/EmmDeregisteredPlmnSearch.o			\
+    EURECOM-NAS/src/emm/sap/emm_esm.o							\
+    EURECOM-NAS/src/emm/sap/EmmRegisteredAttemptingToUpdate.o	\
+    EURECOM-NAS/src/emm/sap/emm_send.o							\
+    EURECOM-NAS/src/emm/sap/EmmCommonProcedureInitiated.o		\
+    EURECOM-NAS/src/emm/sap/EmmRegistered.o						\
+    EURECOM-NAS/src/emm/sap/EmmDeregisteredAttachNeeded.o		\
+    EURECOM-NAS/src/emm/sap/EmmRegisteredImsiDetachInitiated.o	\
+    EURECOM-NAS/src/emm/sap/EmmServiceRequestInitiated.o		\
+    EURECOM-NAS/src/emm/sap/EmmDeregisteredAttemptingToAttach.o	\
+    EURECOM-NAS/src/emm/sap/emm_fsm.o							\
+    EURECOM-NAS/src/emm/sap/EmmRegisteredInitiated.o			\
+    EURECOM-NAS/src/emm/sap/EmmTrackingAreaUpdatingInitiated.o	\
+    EURECOM-NAS/src/emm/sap/EmmDeregistered.o					\
+    EURECOM-NAS/src/emm/sap/EmmRegisteredLimitedService.o		\
+    EURECOM-NAS/src/emm/sap/EmmDeregisteredInitiated.o			\
+    EURECOM-NAS/src/emm/sap/EmmNull.o							\
+    EURECOM-NAS/src/emm/sap/EmmRegisteredNoCellAvailable.o		\
+    EURECOM-NAS/src/emm/sap/EmmDeregisteredLimitedService.o		\
+    EURECOM-NAS/src/emm/sap/emm_recv.o							\
+    EURECOM-NAS/src/emm/sap/EmmRegisteredNormalService.o		\
+    EURECOM-NAS/src/emm/sap/EmmDeregisteredNoCellAvailable.o 	\
+    EURECOM-NAS/src/emm/sap/EmmRegisteredPlmnSearch.o
+
+libnas_esm_OBJS =												\
+    EURECOM-NAS/src/esm/esm_ebr_context.o						\
+    EURECOM-NAS/src/esm/PdnConnectivity.o						\
+    EURECOM-NAS/src/esm/esm_ebr.o								\
+    EURECOM-NAS/src/esm/EpsBearerContextDeactivation.o			\
+    EURECOM-NAS/src/esm/DefaultEpsBearerContextActivation.o		\
+    EURECOM-NAS/src/esm/DedicatedEpsBearerContextActivation.o	\
+    EURECOM-NAS/src/esm/PdnDisconnect.o							\
+    EURECOM-NAS/src/esm/EsmStatusHdl.o							\
+    EURECOM-NAS/src/esm/esm_main.o								\
+    EURECOM-NAS/src/esm/esm_pt.o								\
+    EURECOM-NAS/src/esm/esm_ip.o
+
+libnas_esm_msg_OBJS =													\
+    EURECOM-NAS/src/esm/msg/ModifyEpsBearerContextRequest.o				\
+    EURECOM-NAS/src/esm/msg/DeactivateEpsBearerContextRequest.o			\
+    EURECOM-NAS/src/esm/msg/BearerResourceAllocationReject.o			\
+    EURECOM-NAS/src/esm/msg/BearerResourceModificationRequest.o			\
+    EURECOM-NAS/src/esm/msg/ActivateDedicatedEpsBearerContextRequest.o	\
+    EURECOM-NAS/src/esm/msg/EsmInformationResponse.o					\
+    EURECOM-NAS/src/esm/msg/PdnDisconnectReject.o						\
+    EURECOM-NAS/src/esm/msg/ActivateDedicatedEpsBearerContextAccept.o	\
+    EURECOM-NAS/src/esm/msg/PdnDisconnectRequest.o						\
+    EURECOM-NAS/src/esm/msg/BearerResourceModificationReject.o			\
+    EURECOM-NAS/src/esm/msg/ActivateDefaultEpsBearerContextAccept.o		\
+    EURECOM-NAS/src/esm/msg/ActivateDedicatedEpsBearerContextReject.o	\
+    EURECOM-NAS/src/esm/msg/ModifyEpsBearerContextAccept.o				\
+    EURECOM-NAS/src/esm/msg/DeactivateEpsBearerContextAccept.o			\
+    EURECOM-NAS/src/esm/msg/esm_msg.o									\
+    EURECOM-NAS/src/esm/msg/EsmInformationRequest.o						\
+    EURECOM-NAS/src/esm/msg/ActivateDefaultEpsBearerContextRequest.o	\
+    EURECOM-NAS/src/esm/msg/ModifyEpsBearerContextReject.o				\
+    EURECOM-NAS/src/esm/msg/EsmStatus.o									\
+    EURECOM-NAS/src/esm/msg/PdnConnectivityReject.o						\
+    EURECOM-NAS/src/esm/msg/ActivateDefaultEpsBearerContextReject.o		\
+    EURECOM-NAS/src/esm/msg/PdnConnectivityRequest.o					\
+    EURECOM-NAS/src/esm/msg/BearerResourceAllocationRequest.o
+
+libnas_esm_sap_OBJS =							\
+    EURECOM-NAS/src/esm/sap/esm_recv.o			\
+    EURECOM-NAS/src/esm/sap/esm_send.o			\
+    EURECOM-NAS/src/esm/sap/esm_sap.o
+
+libnas_ies_OBJS =													\
+    EURECOM-NAS/src/ies/UeSecurityCapability.o						\
+    EURECOM-NAS/src/ies/SecurityHeaderType.o						\
+    EURECOM-NAS/src/ies/RadioPriority.o								\
+    EURECOM-NAS/src/ies/EpsAttachResult.o							\
+    EURECOM-NAS/src/ies/ImeisvRequest.o								\
+    EURECOM-NAS/src/ies/EmergencyNumberList.o						\
+    EURECOM-NAS/src/ies/SupportedCodecList.o						\
+    EURECOM-NAS/src/ies/EsmCause.o									\
+    EURECOM-NAS/src/ies/NetworkName.o								\
+    EURECOM-NAS/src/ies/AuthenticationResponseParameter.o			\
+    EURECOM-NAS/src/ies/Cli.o										\
+    EURECOM-NAS/src/ies/AccessPointName.o							\
+    EURECOM-NAS/src/ies/DaylightSavingTime.o						\
+    EURECOM-NAS/src/ies/LcsIndicator.o								\
+    EURECOM-NAS/src/ies/PagingIdentity.o							\
+    EURECOM-NAS/src/ies/EpsMobileIdentity.o							\
+    EURECOM-NAS/src/ies/GutiType.o									\
+    EURECOM-NAS/src/ies/NasKeySetIdentifier.o						\
+    EURECOM-NAS/src/ies/CsfbResponse.o								\
+    EURECOM-NAS/src/ies/PacketFlowIdentifier.o						\
+    EURECOM-NAS/src/ies/ApnAggregateMaximumBitRate.o				\
+    EURECOM-NAS/src/ies/EpsBearerContextStatus.o					\
+    EURECOM-NAS/src/ies/MobileIdentity.o							\
+    EURECOM-NAS/src/ies/AuthenticationFailureParameter.o			\
+    EURECOM-NAS/src/ies/EpsUpdateResult.o							\
+    EURECOM-NAS/src/ies/TimeZone.o									\
+    EURECOM-NAS/src/ies/MessageType.o								\
+    EURECOM-NAS/src/ies/EmmCause.o									\
+    EURECOM-NAS/src/ies/MobileStationClassmark2.o					\
+    EURECOM-NAS/src/ies/AuthenticationParameterRand.o				\
+    EURECOM-NAS/src/ies/PdnAddress.o								\
+    EURECOM-NAS/src/ies/MobileStationClassmark3.o					\
+    EURECOM-NAS/src/ies/ServiceType.o								\
+    EURECOM-NAS/src/ies/RequestType.o								\
+    EURECOM-NAS/src/ies/PlmnList.o									\
+    EURECOM-NAS/src/ies/EpsQualityOfService.o						\
+    EURECOM-NAS/src/ies/NasMessageContainer.o						\
+    EURECOM-NAS/src/ies/EsmInformationTransferFlag.o				\
+    EURECOM-NAS/src/ies/TrafficFlowTemplate.o						\
+    EURECOM-NAS/src/ies/LinkedEpsBearerIdentity.o					\
+    EURECOM-NAS/src/ies/NasSecurityAlgorithms.o						\
+    EURECOM-NAS/src/ies/LlcServiceAccessPointIdentifier.o			\
+    EURECOM-NAS/src/ies/ShortMac.o									\
+    EURECOM-NAS/src/ies/TrafficFlowAggregateDescription.o			\
+    EURECOM-NAS/src/ies/PTmsiSignature.o							\
+    EURECOM-NAS/src/ies/ProtocolDiscriminator.o						\
+    EURECOM-NAS/src/ies/EpsBearerIdentity.o							\
+    EURECOM-NAS/src/ies/TimeZoneAndTime.o							\
+    EURECOM-NAS/src/ies/TrackingAreaIdentityList.o					\
+    EURECOM-NAS/src/ies/QualityOfService.o							\
+    EURECOM-NAS/src/ies/EpsUpdateType.o								\
+    EURECOM-NAS/src/ies/PdnType.o									\
+    EURECOM-NAS/src/ies/UeRadioCapabilityInformationUpdateNeeded.o	\
+    EURECOM-NAS/src/ies/AuthenticationParameterAutn.o				\
+    EURECOM-NAS/src/ies/EpsAttachType.o								\
+    EURECOM-NAS/src/ies/IdentityType2.o								\
+    EURECOM-NAS/src/ies/LcsClientIdentity.o							\
+    EURECOM-NAS/src/ies/DetachType.o								\
+    EURECOM-NAS/src/ies/LocationAreaIdentification.o				\
+    EURECOM-NAS/src/ies/TrackingAreaIdentity.o						\
+    EURECOM-NAS/src/ies/CipheringKeySequenceNumber.o				\
+    EURECOM-NAS/src/ies/MsNetworkCapability.o						\
+    EURECOM-NAS/src/ies/UeNetworkCapability.o						\
+    EURECOM-NAS/src/ies/ProtocolConfigurationOptions.o				\
+    EURECOM-NAS/src/ies/AdditionalUpdateType.o						\
+    EURECOM-NAS/src/ies/TmsiStatus.o								\
+    EURECOM-NAS/src/ies/EsmMessageContainer.o						\
+    EURECOM-NAS/src/ies/Nonce.o										\
+    EURECOM-NAS/src/ies/ProcedureTransactionIdentity.o				\
+    EURECOM-NAS/src/ies/TransactionIdentifier.o						\
+    EURECOM-NAS/src/ies/AdditionalUpdateResult.o					\
+    EURECOM-NAS/src/ies/GprsTimer.o									\
+    EURECOM-NAS/src/ies/EpsNetworkFeatureSupport.o					\
+    EURECOM-NAS/src/ies/SsCode.o									\
+    EURECOM-NAS/src/ies/DrxParameter.o								\
+    EURECOM-NAS/src/ies/KsiAndSequenceNumber.o
+
+libnas_utils_OBJS =								\
+    EURECOM-NAS/src/util/nas_log.o				\
+    EURECOM-NAS/src/util/nas_timer.o			\
+    EURECOM-NAS/src/util/TLVEncoder.o			\
+    EURECOM-NAS/src/util/TLVDecoder.o			\
+    EURECOM-NAS/src/util/OctetString.o
+
+libnas_OBJS =									\
+    EURECOM-NAS/src/nas_network.o				\
+    EURECOM-NAS/src/nas_parser.o				\
+    EURECOM-NAS/src/nas_proc.o					\
+    EURECOM-NAS/src/nas_user.o					\
+    $(libnas_utils_OBJS)						\
+    $(libnas_emm_OBJS)							\
+    $(libnas_emm_msg_OBJS)						\
+    $(libnas_emm_sap_OBJS)						\
+    $(libnas_esm_OBJS)							\
+    $(libnas_esm_msg_OBJS)						\
+    $(libnas_esm_sap_OBJS)						\
+    $(libnas_ies_OBJS)							\
+    $(libnas_api_OBJS)
+
+NAS_UE_COMPILED_OBJS = $(addprefix $(OUTDIR)/,$(libnas_OBJS))
+
+# pull in dependency info for *existing* .o files
+-include $(NAS_UE_COMPILED_OBJS:.o=.d)
+
+CFLAGS +=										\
+	-Wall										\
+	-DNAS_UE									\
+	-DUE_BUILD									\
+	-Wuninitialized								\
+	-Werror=implicit-function-declaration		\
+	$(libnas_INCLUDES)
+
+.SECONDEXPANSION:
+$(NAS_UE_COMPILED_OBJS): %.o : $$(subst $(OUTDIR), $(UE_NAS_DIR), $$*.c)
+	@echo "Compiling $<"
+	@if [ ! -d $(dir $@) ]; then mkdir -p $(dir $@); fi;
+	@$(CC) -c $(CFLAGS) -o $@ $<
+	@$(CC) -MM $(CFLAGS) $< > $(basename $@).d
+	@mv -f $(basename $@).d $(basename $@).d.tmp
+	@sed -e 's|.*:|$@:|' < $(basename $@).d.tmp > $(basename $@).d
+	@sed -e 's/.*://' -e 's/\\$$//' < $(basename $@).d.tmp | fmt -1 | \
+	sed -e 's/^ *//' -e 's/$$/:/' >> $(basename $@).d
+	@rm -f $(basename $@).d.tmp
+
+$(OUTDIR)/libuenas.a: $(NAS_UE_COMPILED_OBJS)
+	@echo Creating UE_NAS archive
+	@$(AR) rcs $@ $(addprefix $(OUTDIR)/,$(libnas_OBJS))
+
+clean:
+	@$(RM_F_V) $(OUTDIR)/*.o
+	@$(RM_F_V) $(OUTDIR)/*.d
+	@$(RM_F_V) $(OUTDIR)/libuenas.a
+
+showcflags:
+	@echo uenas cflags: $(CFLAGS)
diff --git a/openair-cn/NAS/Makefile.am b/openair-cn/NAS/Makefile.am
index 57a1fb1f67..91ddf3358c 100644
--- a/openair-cn/NAS/Makefile.am
+++ b/openair-cn/NAS/Makefile.am
@@ -2,26 +2,27 @@ noinst_LTLIBRARIES = libnas.la
 
 libnas_la_LDFLAGS = -all-static
 
-AM_CFLAGS =	\
-	@ADD_CFLAGS@	                        	    \
-	-DNAS_MME					    \
-	-DEPC_BUILD					    \
-	-I$(top_srcdir)/COMMON				    \
-	-I$(top_srcdir)/INTERTASK_INTERFACE		    \
-        -I$(top_srcdir)/NAS/EURECOM-NAS/src/api/user        \
-        -I$(top_srcdir)/NAS/EURECOM-NAS/src/api/mme         \
-        -I$(top_srcdir)/NAS/EURECOM-NAS/src/api/network     \
-        -I$(top_srcdir)/NAS/EURECOM-NAS/src/emm/msg         \
-        -I$(top_srcdir)/NAS/EURECOM-NAS/src/emm/sap         \
-        -I$(top_srcdir)/NAS/EURECOM-NAS/src/emm             \
-        -I$(top_srcdir)/NAS/EURECOM-NAS/src/esm/msg         \
-        -I$(top_srcdir)/NAS/EURECOM-NAS/src/esm/sap/msg     \
-        -I$(top_srcdir)/NAS/EURECOM-NAS/src/esm/sap         \
-        -I$(top_srcdir)/NAS/EURECOM-NAS/src/esm             \
-        -I$(top_srcdir)/NAS/EURECOM-NAS/src/ies             \
-        -I$(top_srcdir)/NAS/EURECOM-NAS/src/include         \
-        -I$(top_srcdir)/NAS/EURECOM-NAS/src/util            \
-        -I$(top_srcdir)/NAS/EURECOM-NAS/src/                \
+AM_CFLAGS =											\
+	@ADD_CFLAGS@									\
+	-DNAS_MME										\
+	-DEPC_BUILD										\
+	-DENABLE_ITTI									\
+	-I$(top_srcdir)/COMMON							\
+	-I$(top_srcdir)/INTERTASK_INTERFACE				\
+	-I$(top_srcdir)/NAS/EURECOM-NAS/src/api/user	\
+	-I$(top_srcdir)/NAS/EURECOM-NAS/src/api/mme		\
+	-I$(top_srcdir)/NAS/EURECOM-NAS/src/api/network	\
+	-I$(top_srcdir)/NAS/EURECOM-NAS/src/emm/msg		\
+	-I$(top_srcdir)/NAS/EURECOM-NAS/src/emm/sap		\
+	-I$(top_srcdir)/NAS/EURECOM-NAS/src/emm			\
+	-I$(top_srcdir)/NAS/EURECOM-NAS/src/esm/msg		\
+	-I$(top_srcdir)/NAS/EURECOM-NAS/src/esm/sap/msg	\
+	-I$(top_srcdir)/NAS/EURECOM-NAS/src/esm/sap		\
+	-I$(top_srcdir)/NAS/EURECOM-NAS/src/esm			\
+	-I$(top_srcdir)/NAS/EURECOM-NAS/src/ies			\
+	-I$(top_srcdir)/NAS/EURECOM-NAS/src/include		\
+	-I$(top_srcdir)/NAS/EURECOM-NAS/src/util		\
+	-I$(top_srcdir)/NAS/EURECOM-NAS/src/			\
 	-I$(top_srcdir)/UTILS
 
 if DISABLE_USE_NAS
@@ -29,8 +30,9 @@ libnas_la_SOURCES =	\
 	nas_main.c
 else
 include Makefile.inc
-libnas_la_SOURCES = \
-	nas_main.c	\
-	nas_itti_messaging.c	nas_itti_messaging.h	\
+libnas_la_SOURCES =								\
+	nas_main.c									\
+	nas_itti_messaging.c						\
+	nas_itti_messaging.h						\
 	$(libnas_SRCS)
 endif
\ No newline at end of file
diff --git a/openair-cn/NAS/Makefile.inc b/openair-cn/NAS/Makefile.inc
index cea25f83a7..3f5f3b37fc 100644
--- a/openair-cn/NAS/Makefile.inc
+++ b/openair-cn/NAS/Makefile.inc
@@ -1,399 +1,399 @@
-libnas_api_SRCS = \
-    EURECOM-NAS/src/api/mme/mme_api.c   \
-    EURECOM-NAS/src/api/mme/mme_api.h       \
-    EURECOM-NAS/src/api/network/nas_message.c       \
+libnas_api_SRCS =								\
+    EURECOM-NAS/src/api/mme/mme_api.c			\
+    EURECOM-NAS/src/api/mme/mme_api.h			\
+    EURECOM-NAS/src/api/network/nas_message.c	\
     EURECOM-NAS/src/api/network/nas_message.h
 
-libnas_emm_SRCS = \
-    EURECOM-NAS/src/emm/Attach.c        \
-    EURECOM-NAS/src/emm/Authentication.c        \
-    EURECOM-NAS/src/emm/Detach.c        \
-    EURECOM-NAS/src/emm/EmmCommon.c     \
-    EURECOM-NAS/src/emm/EmmCommon.h     \
-    EURECOM-NAS/src/emm/emmData.h       \
-    EURECOM-NAS/src/emm/emm_data_ctx.c  \
-    EURECOM-NAS/src/emm/emm_main.c      \
-    EURECOM-NAS/src/emm/emm_main.h      \
-    EURECOM-NAS/src/emm/emm_proc.h      \
-    EURECOM-NAS/src/emm/EmmStatusHdl.c     \
-    EURECOM-NAS/src/emm/Identification.c        \
-    EURECOM-NAS/src/emm/IdleMode.c      \
-    EURECOM-NAS/src/emm/IdleMode.h      \
-    EURECOM-NAS/src/emm/LowerLayer.c    \
-    EURECOM-NAS/src/emm/LowerLayer.h    \
-    EURECOM-NAS/src/emm/SecurityModeControl.c   \
-    EURECOM-NAS/src/emm/ServiceRequestHdl.c        \
+libnas_emm_SRCS =								\
+    EURECOM-NAS/src/emm/Attach.c				\
+    EURECOM-NAS/src/emm/Authentication.c		\
+    EURECOM-NAS/src/emm/Detach.c				\
+    EURECOM-NAS/src/emm/EmmCommon.c				\
+    EURECOM-NAS/src/emm/EmmCommon.h				\
+    EURECOM-NAS/src/emm/emmData.h				\
+    EURECOM-NAS/src/emm/emm_data_ctx.c			\
+    EURECOM-NAS/src/emm/emm_main.c				\
+    EURECOM-NAS/src/emm/emm_main.h				\
+    EURECOM-NAS/src/emm/emm_proc.h				\
+    EURECOM-NAS/src/emm/EmmStatusHdl.c			\
+    EURECOM-NAS/src/emm/Identification.c		\
+    EURECOM-NAS/src/emm/IdleMode.c				\
+    EURECOM-NAS/src/emm/IdleMode.h				\
+    EURECOM-NAS/src/emm/LowerLayer.c			\
+    EURECOM-NAS/src/emm/LowerLayer.h			\
+    EURECOM-NAS/src/emm/SecurityModeControl.c	\
+    EURECOM-NAS/src/emm/ServiceRequestHdl.c		\
     EURECOM-NAS/src/emm/TrackingAreaUpdate.c
 
-libnas_emm_msg_SRCS =           \
-    EURECOM-NAS/src/emm/msg/AttachAccept.c    \
-    EURECOM-NAS/src/emm/msg/AuthenticationFailure.c   \
-    EURECOM-NAS/src/emm/msg/CsServiceNotification.c         \
-    EURECOM-NAS/src/emm/msg/emm_cause.h     \
-    EURECOM-NAS/src/emm/msg/ExtendedServiceRequest.c    \
-    EURECOM-NAS/src/emm/msg/IdentityResponse.c      \
-    EURECOM-NAS/src/emm/msg/SecurityModeReject.h          \
-    EURECOM-NAS/src/emm/msg/TrackingAreaUpdateComplete.h\
-    EURECOM-NAS/src/emm/msg/AttachAccept.h    \
-    EURECOM-NAS/src/emm/msg/AuthenticationFailure.h   \
-    EURECOM-NAS/src/emm/msg/CsServiceNotification.h  \
-    EURECOM-NAS/src/emm/msg/EmmInformation.c  \
-    EURECOM-NAS/src/emm/msg/ExtendedServiceRequest.h    \
-    EURECOM-NAS/src/emm/msg/IdentityResponse.h      \
-    EURECOM-NAS/src/emm/msg/ServiceReject.c               \
-    EURECOM-NAS/src/emm/msg/TrackingAreaUpdateReject.c\
-    EURECOM-NAS/src/emm/msg/AttachComplete.c  \
-    EURECOM-NAS/src/emm/msg/AuthenticationReject.c    \
-    EURECOM-NAS/src/emm/msg/DetachAccept.c           \
-    EURECOM-NAS/src/emm/msg/EmmInformation.h  \
-    EURECOM-NAS/src/emm/msg/GutiReallocationCommand.c               \
-    EURECOM-NAS/src/emm/msg/ServiceReject.h               \
-    EURECOM-NAS/src/emm/msg/TrackingAreaUpdateReject.h\
-    EURECOM-NAS/src/emm/msg/AttachComplete.h  \
-    EURECOM-NAS/src/emm/msg/AuthenticationReject.h    \
-    EURECOM-NAS/src/emm/msg/DetachAccept.h           \
-    EURECOM-NAS/src/emm/msg/emm_msg.c         \
-    EURECOM-NAS/src/emm/msg/GutiReallocationCommand.h   \
-    EURECOM-NAS/src/emm/msg/SecurityModeCommand.c   \
-    EURECOM-NAS/src/emm/msg/ServiceRequest.c              \
-    EURECOM-NAS/src/emm/msg/TrackingAreaUpdateRequest.c\
-    EURECOM-NAS/src/emm/msg/AttachReject.c    \
-    EURECOM-NAS/src/emm/msg/AuthenticationRequest.c   \
-    EURECOM-NAS/src/emm/msg/DetachRequest.c          \
-    EURECOM-NAS/src/emm/msg/emm_msgDef.h      \
-    EURECOM-NAS/src/emm/msg/GutiReallocationComplete.c  \
-    EURECOM-NAS/src/emm/msg/SecurityModeCommand.h   \
-    EURECOM-NAS/src/emm/msg/ServiceRequest.h              \
-    EURECOM-NAS/src/emm/msg/TrackingAreaUpdateRequest.h\
-    EURECOM-NAS/src/emm/msg/AttachReject.h    \
-    EURECOM-NAS/src/emm/msg/AuthenticationRequest.h   \
-    EURECOM-NAS/src/emm/msg/DetachRequest.h          \
-    EURECOM-NAS/src/emm/msg/emm_msg.h         \
-    EURECOM-NAS/src/emm/msg/GutiReallocationComplete.h  \
-    EURECOM-NAS/src/emm/msg/SecurityModeComplete.c  \
-    EURECOM-NAS/src/emm/msg/TrackingAreaUpdateAccept.c    \
-    EURECOM-NAS/src/emm/msg/UplinkNasTransport.c\
-    EURECOM-NAS/src/emm/msg/AttachRequest.c   \
-    EURECOM-NAS/src/emm/msg/AuthenticationResponse.c  \
-    EURECOM-NAS/src/emm/msg/DownlinkNasTransport.c   \
-    EURECOM-NAS/src/emm/msg/EmmStatus.c       \
-    EURECOM-NAS/src/emm/msg/IdentityRequest.c           \
-    EURECOM-NAS/src/emm/msg/SecurityModeComplete.h  \
-    EURECOM-NAS/src/emm/msg/TrackingAreaUpdateAccept.h    \
-    EURECOM-NAS/src/emm/msg/UplinkNasTransport.h\
-    EURECOM-NAS/src/emm/msg/AttachRequest.h   \
-    EURECOM-NAS/src/emm/msg/AuthenticationResponse.h  \
-    EURECOM-NAS/src/emm/msg/DownlinkNasTransport.h   \
-    EURECOM-NAS/src/emm/msg/EmmStatus.h       \
-    EURECOM-NAS/src/emm/msg/IdentityRequest.h           \
-    EURECOM-NAS/src/emm/msg/SecurityModeReject.c    \
+libnas_emm_msg_SRCS =										\
+    EURECOM-NAS/src/emm/msg/AttachAccept.c					\
+    EURECOM-NAS/src/emm/msg/AuthenticationFailure.c			\
+    EURECOM-NAS/src/emm/msg/CsServiceNotification.c			\
+    EURECOM-NAS/src/emm/msg/emm_cause.h						\
+    EURECOM-NAS/src/emm/msg/ExtendedServiceRequest.c		\
+    EURECOM-NAS/src/emm/msg/IdentityResponse.c				\
+    EURECOM-NAS/src/emm/msg/SecurityModeReject.h			\
+    EURECOM-NAS/src/emm/msg/TrackingAreaUpdateComplete.h	\
+    EURECOM-NAS/src/emm/msg/AttachAccept.h					\
+    EURECOM-NAS/src/emm/msg/AuthenticationFailure.h			\
+    EURECOM-NAS/src/emm/msg/CsServiceNotification.h			\
+    EURECOM-NAS/src/emm/msg/EmmInformation.c				\
+    EURECOM-NAS/src/emm/msg/ExtendedServiceRequest.h		\
+    EURECOM-NAS/src/emm/msg/IdentityResponse.h				\
+    EURECOM-NAS/src/emm/msg/ServiceReject.c					\
+    EURECOM-NAS/src/emm/msg/TrackingAreaUpdateReject.c		\
+    EURECOM-NAS/src/emm/msg/AttachComplete.c				\
+    EURECOM-NAS/src/emm/msg/AuthenticationReject.c			\
+    EURECOM-NAS/src/emm/msg/DetachAccept.c					\
+    EURECOM-NAS/src/emm/msg/EmmInformation.h				\
+    EURECOM-NAS/src/emm/msg/GutiReallocationCommand.c		\
+    EURECOM-NAS/src/emm/msg/ServiceReject.h					\
+    EURECOM-NAS/src/emm/msg/TrackingAreaUpdateReject.h		\
+    EURECOM-NAS/src/emm/msg/AttachComplete.h				\
+    EURECOM-NAS/src/emm/msg/AuthenticationReject.h			\
+    EURECOM-NAS/src/emm/msg/DetachAccept.h					\
+    EURECOM-NAS/src/emm/msg/emm_msg.c						\
+    EURECOM-NAS/src/emm/msg/GutiReallocationCommand.h		\
+    EURECOM-NAS/src/emm/msg/SecurityModeCommand.c			\
+    EURECOM-NAS/src/emm/msg/ServiceRequest.c				\
+    EURECOM-NAS/src/emm/msg/TrackingAreaUpdateRequest.c		\
+    EURECOM-NAS/src/emm/msg/AttachReject.c					\
+    EURECOM-NAS/src/emm/msg/AuthenticationRequest.c			\
+    EURECOM-NAS/src/emm/msg/DetachRequest.c					\
+    EURECOM-NAS/src/emm/msg/emm_msgDef.h					\
+    EURECOM-NAS/src/emm/msg/GutiReallocationComplete.c		\
+    EURECOM-NAS/src/emm/msg/SecurityModeCommand.h			\
+    EURECOM-NAS/src/emm/msg/ServiceRequest.h				\
+    EURECOM-NAS/src/emm/msg/TrackingAreaUpdateRequest.h		\
+    EURECOM-NAS/src/emm/msg/AttachReject.h					\
+    EURECOM-NAS/src/emm/msg/AuthenticationRequest.h			\
+    EURECOM-NAS/src/emm/msg/DetachRequest.h					\
+    EURECOM-NAS/src/emm/msg/emm_msg.h						\
+    EURECOM-NAS/src/emm/msg/GutiReallocationComplete.h		\
+    EURECOM-NAS/src/emm/msg/SecurityModeComplete.c			\
+    EURECOM-NAS/src/emm/msg/TrackingAreaUpdateAccept.c		\
+    EURECOM-NAS/src/emm/msg/UplinkNasTransport.c			\
+    EURECOM-NAS/src/emm/msg/AttachRequest.c					\
+    EURECOM-NAS/src/emm/msg/AuthenticationResponse.c		\
+    EURECOM-NAS/src/emm/msg/DownlinkNasTransport.c			\
+    EURECOM-NAS/src/emm/msg/EmmStatus.c						\
+    EURECOM-NAS/src/emm/msg/IdentityRequest.c				\
+    EURECOM-NAS/src/emm/msg/SecurityModeComplete.h			\
+    EURECOM-NAS/src/emm/msg/TrackingAreaUpdateAccept.h		\
+    EURECOM-NAS/src/emm/msg/UplinkNasTransport.h			\
+    EURECOM-NAS/src/emm/msg/AttachRequest.h					\
+    EURECOM-NAS/src/emm/msg/AuthenticationResponse.h		\
+    EURECOM-NAS/src/emm/msg/DownlinkNasTransport.h			\
+    EURECOM-NAS/src/emm/msg/EmmStatus.h						\
+    EURECOM-NAS/src/emm/msg/IdentityRequest.h				\
+    EURECOM-NAS/src/emm/msg/SecurityModeReject.c			\
     EURECOM-NAS/src/emm/msg/TrackingAreaUpdateComplete.c
 
-libnas_emm_sap_SRCS =           \
-    EURECOM-NAS/src/emm/sap/emm_as.c \
-    EURECOM-NAS/src/emm/sap/emm_cn.c \
-    EURECOM-NAS/src/emm/sap/emm_cn.h \
-    EURECOM-NAS/src/emm/sap/EmmDeregisteredNoImsi.c \
-    EURECOM-NAS/src/emm/sap/emm_reg.c \
-    EURECOM-NAS/src/emm/sap/EmmRegisteredUpdateNeeded.c \
-    EURECOM-NAS/src/emm/sap/emm_asDef.h \
-    EURECOM-NAS/src/emm/sap/EmmDeregisteredNormalService.c \
-    EURECOM-NAS/src/emm/sap/emm_regDef.h \
-    EURECOM-NAS/src/emm/sap/emm_sap.c \
-    EURECOM-NAS/src/emm/sap/EmmDeregisteredPlmnSearch.c \
-    EURECOM-NAS/src/emm/sap/emm_reg.h \
-    EURECOM-NAS/src/emm/sap/emm_sap.h \
-    EURECOM-NAS/src/emm/sap/emm_as.h \
-    EURECOM-NAS/src/emm/sap/emm_esm.c \
-    EURECOM-NAS/src/emm/sap/EmmRegisteredAttemptingToUpdate.c \
-    EURECOM-NAS/src/emm/sap/emm_send.c \
-    EURECOM-NAS/src/emm/sap/EmmCommonProcedureInitiated.c \
-    EURECOM-NAS/src/emm/sap/emm_esmDef.h \
-    EURECOM-NAS/src/emm/sap/EmmRegistered.c \
-    EURECOM-NAS/src/emm/sap/emm_send.h \
-    EURECOM-NAS/src/emm/sap/EmmDeregisteredAttachNeeded.c \
-    EURECOM-NAS/src/emm/sap/emm_esm.h \
-    EURECOM-NAS/src/emm/sap/EmmRegisteredImsiDetachInitiated.c \
-    EURECOM-NAS/src/emm/sap/EmmServiceRequestInitiated.c \
-    EURECOM-NAS/src/emm/sap/EmmDeregisteredAttemptingToAttach.c \
-    EURECOM-NAS/src/emm/sap/emm_fsm.c \
-    EURECOM-NAS/src/emm/sap/EmmRegisteredInitiated.c \
-    EURECOM-NAS/src/emm/sap/EmmTrackingAreaUpdatingInitiated.c \
-    EURECOM-NAS/src/emm/sap/EmmDeregistered.c \
-    EURECOM-NAS/src/emm/sap/emm_fsm.h \
-    EURECOM-NAS/src/emm/sap/EmmRegisteredLimitedService.c \
-    EURECOM-NAS/src/emm/sap/EmmDeregisteredInitiated.c \
-    EURECOM-NAS/src/emm/sap/EmmNull.c \
-    EURECOM-NAS/src/emm/sap/EmmRegisteredNoCellAvailable.c \
-    EURECOM-NAS/src/emm/sap/EmmDeregisteredLimitedService.c \
-    EURECOM-NAS/src/emm/sap/emm_recv.c \
-    EURECOM-NAS/src/emm/sap/EmmRegisteredNormalService.c \
-    EURECOM-NAS/src/emm/sap/EmmDeregisteredNoCellAvailable.c \
-    EURECOM-NAS/src/emm/sap/emm_recv.h \
+libnas_emm_sap_SRCS =											\
+    EURECOM-NAS/src/emm/sap/emm_as.c							\
+    EURECOM-NAS/src/emm/sap/emm_cn.c							\
+    EURECOM-NAS/src/emm/sap/emm_cn.h							\
+    EURECOM-NAS/src/emm/sap/EmmDeregisteredNoImsi.c				\
+    EURECOM-NAS/src/emm/sap/emm_reg.c							\
+    EURECOM-NAS/src/emm/sap/EmmRegisteredUpdateNeeded.c			\
+    EURECOM-NAS/src/emm/sap/emm_asDef.h							\
+    EURECOM-NAS/src/emm/sap/EmmDeregisteredNormalService.c		\
+    EURECOM-NAS/src/emm/sap/emm_regDef.h						\
+    EURECOM-NAS/src/emm/sap/emm_sap.c							\
+    EURECOM-NAS/src/emm/sap/EmmDeregisteredPlmnSearch.c			\
+    EURECOM-NAS/src/emm/sap/emm_reg.h							\
+    EURECOM-NAS/src/emm/sap/emm_sap.h							\
+    EURECOM-NAS/src/emm/sap/emm_as.h							\
+    EURECOM-NAS/src/emm/sap/emm_esm.c							\
+    EURECOM-NAS/src/emm/sap/EmmRegisteredAttemptingToUpdate.c	\
+    EURECOM-NAS/src/emm/sap/emm_send.c							\
+    EURECOM-NAS/src/emm/sap/EmmCommonProcedureInitiated.c		\
+    EURECOM-NAS/src/emm/sap/emm_esmDef.h						\
+    EURECOM-NAS/src/emm/sap/EmmRegistered.c						\
+    EURECOM-NAS/src/emm/sap/emm_send.h							\
+    EURECOM-NAS/src/emm/sap/EmmDeregisteredAttachNeeded.c		\
+    EURECOM-NAS/src/emm/sap/emm_esm.h							\
+    EURECOM-NAS/src/emm/sap/EmmRegisteredImsiDetachInitiated.c	\
+    EURECOM-NAS/src/emm/sap/EmmServiceRequestInitiated.c		\
+    EURECOM-NAS/src/emm/sap/EmmDeregisteredAttemptingToAttach.c	\
+    EURECOM-NAS/src/emm/sap/emm_fsm.c							\
+    EURECOM-NAS/src/emm/sap/EmmRegisteredInitiated.c			\
+    EURECOM-NAS/src/emm/sap/EmmTrackingAreaUpdatingInitiated.c	\
+    EURECOM-NAS/src/emm/sap/EmmDeregistered.c					\
+    EURECOM-NAS/src/emm/sap/emm_fsm.h							\
+    EURECOM-NAS/src/emm/sap/EmmRegisteredLimitedService.c		\
+    EURECOM-NAS/src/emm/sap/EmmDeregisteredInitiated.c			\
+    EURECOM-NAS/src/emm/sap/EmmNull.c							\
+    EURECOM-NAS/src/emm/sap/EmmRegisteredNoCellAvailable.c		\
+    EURECOM-NAS/src/emm/sap/EmmDeregisteredLimitedService.c		\
+    EURECOM-NAS/src/emm/sap/emm_recv.c							\
+    EURECOM-NAS/src/emm/sap/EmmRegisteredNormalService.c		\
+    EURECOM-NAS/src/emm/sap/EmmDeregisteredNoCellAvailable.c	\
+    EURECOM-NAS/src/emm/sap/emm_recv.h							\
     EURECOM-NAS/src/emm/sap/EmmRegisteredPlmnSearch.c
 
-libnas_esm_SRCS = \
-    EURECOM-NAS/src/esm/esm_ebr_context.c \
-    EURECOM-NAS/src/esm/PdnConnectivity.c \
-    EURECOM-NAS/src/esm/sap/esm_recv.c \
-    EURECOM-NAS/src/esm/sap/esm_send.c \
-    EURECOM-NAS/src/esm/sap/esm_sap.c \
-    EURECOM-NAS/src/esm/esm_ebr.c \
-    EURECOM-NAS/src/esm/EpsBearerContextDeactivation.c \
-    EURECOM-NAS/src/esm/DefaultEpsBearerContextActivation.c \
-    EURECOM-NAS/src/esm/DedicatedEpsBearerContextActivation.c \
-    EURECOM-NAS/src/esm/PdnDisconnect.c \
-    EURECOM-NAS/src/esm/EsmStatusHdl.c \
-    EURECOM-NAS/src/esm/esm_main.c \
-    EURECOM-NAS/src/esm/esm_pt.c \
-    EURECOM-NAS/src/esm/esm_proc.h \
-    EURECOM-NAS/src/esm/esm_main.h \
-    EURECOM-NAS/src/esm/sap/esm_recv.h \
-    EURECOM-NAS/src/esm/sap/esm_sap.h \
-    EURECOM-NAS/src/esm/sap/esm_send.h \
-    EURECOM-NAS/src/esm/sap/esm_sapDef.h \
-    EURECOM-NAS/src/esm/esm_ebr_context.h \
-    EURECOM-NAS/src/esm/esmData.h \
-    EURECOM-NAS/src/esm/esm_pt.h \
-    EURECOM-NAS/src/esm/esm_ebr.h   \
+libnas_esm_SRCS =												\
+    EURECOM-NAS/src/esm/esm_ebr_context.c						\
+    EURECOM-NAS/src/esm/PdnConnectivity.c						\
+    EURECOM-NAS/src/esm/sap/esm_recv.c							\
+    EURECOM-NAS/src/esm/sap/esm_send.c							\
+    EURECOM-NAS/src/esm/sap/esm_sap.c							\
+    EURECOM-NAS/src/esm/esm_ebr.c								\
+    EURECOM-NAS/src/esm/EpsBearerContextDeactivation.c			\
+    EURECOM-NAS/src/esm/DefaultEpsBearerContextActivation.c		\
+    EURECOM-NAS/src/esm/DedicatedEpsBearerContextActivation.c	\
+    EURECOM-NAS/src/esm/PdnDisconnect.c							\
+    EURECOM-NAS/src/esm/EsmStatusHdl.c							\
+    EURECOM-NAS/src/esm/esm_main.c								\
+    EURECOM-NAS/src/esm/esm_pt.c								\
+    EURECOM-NAS/src/esm/esm_proc.h								\
+    EURECOM-NAS/src/esm/esm_main.h								\
+    EURECOM-NAS/src/esm/sap/esm_recv.h							\
+    EURECOM-NAS/src/esm/sap/esm_sap.h							\
+    EURECOM-NAS/src/esm/sap/esm_send.h							\
+    EURECOM-NAS/src/esm/sap/esm_sapDef.h						\
+    EURECOM-NAS/src/esm/esm_ebr_context.h						\
+    EURECOM-NAS/src/esm/esmData.h								\
+    EURECOM-NAS/src/esm/esm_pt.h								\
+    EURECOM-NAS/src/esm/esm_ebr.h								\
     EURECOM-NAS/src/esm/esm_ip.c
 
-libnas_esm_msg_SRCS = \
-    EURECOM-NAS/src/esm/msg/EsmInformationRequest.h \
-    EURECOM-NAS/src/esm/msg/EsmStatus.h \
-    EURECOM-NAS/src/esm/msg/DeactivateEpsBearerContextAccept.h \
-    EURECOM-NAS/src/esm/msg/BearerResourceAllocationReject.h \
-    EURECOM-NAS/src/esm/msg/ActivateDefaultEpsBearerContextReject.h \
-    EURECOM-NAS/src/esm/msg/BearerResourceModificationReject.h \
-    EURECOM-NAS/src/esm/msg/PdnConnectivityReject.h \
-    EURECOM-NAS/src/esm/msg/PdnDisconnectRequest.h \
-    EURECOM-NAS/src/esm/msg/DeactivateEpsBearerContextRequest.h \
-    EURECOM-NAS/src/esm/msg/PdnConnectivityRequest.h \
-    EURECOM-NAS/src/esm/msg/BearerResourceModificationRequest.h \
-    EURECOM-NAS/src/esm/msg/PdnDisconnectReject.h \
-    EURECOM-NAS/src/esm/msg/ActivateDedicatedEpsBearerContextRequest.h \
-    EURECOM-NAS/src/esm/msg/ActivateDefaultEpsBearerContextAccept.h \
-    EURECOM-NAS/src/esm/msg/ActivateDedicatedEpsBearerContextReject.h \
-    EURECOM-NAS/src/esm/msg/esm_msg.h \
-    EURECOM-NAS/src/esm/msg/ModifyEpsBearerContextAccept.h \
-    EURECOM-NAS/src/esm/msg/ModifyEpsBearerContextReject.h \
-    EURECOM-NAS/src/esm/msg/EsmInformationResponse.h \
-    EURECOM-NAS/src/esm/msg/ModifyEpsBearerContextRequest.h \
-    EURECOM-NAS/src/esm/msg/ActivateDedicatedEpsBearerContextAccept.h \
-    EURECOM-NAS/src/esm/msg/esm_cause.h \
-    EURECOM-NAS/src/esm/msg/BearerResourceAllocationRequest.h \
-    EURECOM-NAS/src/esm/msg/ActivateDefaultEpsBearerContextRequest.h \
-    EURECOM-NAS/src/esm/msg/esm_msgDef.h \
-    EURECOM-NAS/src/esm/msg/ModifyEpsBearerContextRequest.c \
-    EURECOM-NAS/src/esm/msg/DeactivateEpsBearerContextRequest.c \
-    EURECOM-NAS/src/esm/msg/BearerResourceAllocationReject.c \
-    EURECOM-NAS/src/esm/msg/BearerResourceModificationRequest.c \
-    EURECOM-NAS/src/esm/msg/ActivateDedicatedEpsBearerContextRequest.c \
-    EURECOM-NAS/src/esm/msg/EsmInformationResponse.c \
-    EURECOM-NAS/src/esm/msg/PdnDisconnectReject.c \
-    EURECOM-NAS/src/esm/msg/ActivateDedicatedEpsBearerContextAccept.c \
-    EURECOM-NAS/src/esm/msg/PdnDisconnectRequest.c \
-    EURECOM-NAS/src/esm/msg/BearerResourceModificationReject.c \
-    EURECOM-NAS/src/esm/msg/ActivateDefaultEpsBearerContextAccept.c \
-    EURECOM-NAS/src/esm/msg/ActivateDedicatedEpsBearerContextReject.c \
-    EURECOM-NAS/src/esm/msg/ModifyEpsBearerContextAccept.c \
-    EURECOM-NAS/src/esm/msg/DeactivateEpsBearerContextAccept.c \
-    EURECOM-NAS/src/esm/msg/esm_msg.c \
-    EURECOM-NAS/src/esm/msg/EsmInformationRequest.c \
-    EURECOM-NAS/src/esm/msg/ActivateDefaultEpsBearerContextRequest.c \
-    EURECOM-NAS/src/esm/msg/ModifyEpsBearerContextReject.c \
-    EURECOM-NAS/src/esm/msg/EsmStatus.c \
-    EURECOM-NAS/src/esm/msg/PdnConnectivityReject.c \
-    EURECOM-NAS/src/esm/msg/ActivateDefaultEpsBearerContextReject.c \
-    EURECOM-NAS/src/esm/msg/PdnConnectivityRequest.c \
+libnas_esm_msg_SRCS =													\
+    EURECOM-NAS/src/esm/msg/EsmInformationRequest.h						\
+    EURECOM-NAS/src/esm/msg/EsmStatus.h									\
+    EURECOM-NAS/src/esm/msg/DeactivateEpsBearerContextAccept.h			\
+    EURECOM-NAS/src/esm/msg/BearerResourceAllocationReject.h			\
+    EURECOM-NAS/src/esm/msg/ActivateDefaultEpsBearerContextReject.h		\
+    EURECOM-NAS/src/esm/msg/BearerResourceModificationReject.h			\
+    EURECOM-NAS/src/esm/msg/PdnConnectivityReject.h						\
+    EURECOM-NAS/src/esm/msg/PdnDisconnectRequest.h						\
+    EURECOM-NAS/src/esm/msg/DeactivateEpsBearerContextRequest.h			\
+    EURECOM-NAS/src/esm/msg/PdnConnectivityRequest.h					\
+    EURECOM-NAS/src/esm/msg/BearerResourceModificationRequest.h			\
+    EURECOM-NAS/src/esm/msg/PdnDisconnectReject.h						\
+    EURECOM-NAS/src/esm/msg/ActivateDedicatedEpsBearerContextRequest.h	\
+    EURECOM-NAS/src/esm/msg/ActivateDefaultEpsBearerContextAccept.h		\
+    EURECOM-NAS/src/esm/msg/ActivateDedicatedEpsBearerContextReject.h	\
+    EURECOM-NAS/src/esm/msg/esm_msg.h									\
+    EURECOM-NAS/src/esm/msg/ModifyEpsBearerContextAccept.h				\
+    EURECOM-NAS/src/esm/msg/ModifyEpsBearerContextReject.h				\
+    EURECOM-NAS/src/esm/msg/EsmInformationResponse.h					\
+    EURECOM-NAS/src/esm/msg/ModifyEpsBearerContextRequest.h				\
+    EURECOM-NAS/src/esm/msg/ActivateDedicatedEpsBearerContextAccept.h	\
+    EURECOM-NAS/src/esm/msg/esm_cause.h									\
+    EURECOM-NAS/src/esm/msg/BearerResourceAllocationRequest.h			\
+    EURECOM-NAS/src/esm/msg/ActivateDefaultEpsBearerContextRequest.h	\
+    EURECOM-NAS/src/esm/msg/esm_msgDef.h								\
+    EURECOM-NAS/src/esm/msg/ModifyEpsBearerContextRequest.c				\
+    EURECOM-NAS/src/esm/msg/DeactivateEpsBearerContextRequest.c			\
+    EURECOM-NAS/src/esm/msg/BearerResourceAllocationReject.c			\
+    EURECOM-NAS/src/esm/msg/BearerResourceModificationRequest.c			\
+    EURECOM-NAS/src/esm/msg/ActivateDedicatedEpsBearerContextRequest.c	\
+    EURECOM-NAS/src/esm/msg/EsmInformationResponse.c					\
+    EURECOM-NAS/src/esm/msg/PdnDisconnectReject.c						\
+    EURECOM-NAS/src/esm/msg/ActivateDedicatedEpsBearerContextAccept.c	\
+    EURECOM-NAS/src/esm/msg/PdnDisconnectRequest.c						\
+    EURECOM-NAS/src/esm/msg/BearerResourceModificationReject.c			\
+    EURECOM-NAS/src/esm/msg/ActivateDefaultEpsBearerContextAccept.c		\
+    EURECOM-NAS/src/esm/msg/ActivateDedicatedEpsBearerContextReject.c	\
+    EURECOM-NAS/src/esm/msg/ModifyEpsBearerContextAccept.c				\
+    EURECOM-NAS/src/esm/msg/DeactivateEpsBearerContextAccept.c			\
+    EURECOM-NAS/src/esm/msg/esm_msg.c									\
+    EURECOM-NAS/src/esm/msg/EsmInformationRequest.c						\
+    EURECOM-NAS/src/esm/msg/ActivateDefaultEpsBearerContextRequest.c	\
+    EURECOM-NAS/src/esm/msg/ModifyEpsBearerContextReject.c				\
+    EURECOM-NAS/src/esm/msg/EsmStatus.c									\
+    EURECOM-NAS/src/esm/msg/PdnConnectivityReject.c						\
+    EURECOM-NAS/src/esm/msg/ActivateDefaultEpsBearerContextReject.c		\
+    EURECOM-NAS/src/esm/msg/PdnConnectivityRequest.c					\
     EURECOM-NAS/src/esm/msg/BearerResourceAllocationRequest.c
 
-libnas_esm_sap_SRCS = \
-    EURECOM-NAS/src/esm/sap/esm_recv.c  \
-    EURECOM-NAS/src/esm/sap/esm_send.c  \
+libnas_esm_sap_SRCS =							\
+    EURECOM-NAS/src/esm/sap/esm_recv.c			\
+    EURECOM-NAS/src/esm/sap/esm_send.c			\
     EURECOM-NAS/src/esm/sap/esm_sap.c
 
-libnas_ies_SRCS = \
-    EURECOM-NAS/src/ies/UeSecurityCapability.c \
-    EURECOM-NAS/src/ies/SecurityHeaderType.c \
-    EURECOM-NAS/src/ies/RadioPriority.c \
-    EURECOM-NAS/src/ies/EpsAttachResult.c \
-    EURECOM-NAS/src/ies/ImeisvRequest.c \
-    EURECOM-NAS/src/ies/EmergencyNumberList.c \
-    EURECOM-NAS/src/ies/SupportedCodecList.c \
-    EURECOM-NAS/src/ies/EsmCause.c \
-    EURECOM-NAS/src/ies/NetworkName.c \
-    EURECOM-NAS/src/ies/AuthenticationResponseParameter.c \
-    EURECOM-NAS/src/ies/Cli.c \
-    EURECOM-NAS/src/ies/AccessPointName.c \
-    EURECOM-NAS/src/ies/DaylightSavingTime.c \
-    EURECOM-NAS/src/ies/LcsIndicator.c \
-    EURECOM-NAS/src/ies/PagingIdentity.c \
-    EURECOM-NAS/src/ies/EpsMobileIdentity.c \
-    EURECOM-NAS/src/ies/GutiType.c \
-    EURECOM-NAS/src/ies/NasKeySetIdentifier.c \
-    EURECOM-NAS/src/ies/CsfbResponse.c \
-    EURECOM-NAS/src/ies/PacketFlowIdentifier.c \
-    EURECOM-NAS/src/ies/ApnAggregateMaximumBitRate.c \
-    EURECOM-NAS/src/ies/EpsBearerContextStatus.c \
-    EURECOM-NAS/src/ies/MobileIdentity.c \
-    EURECOM-NAS/src/ies/AuthenticationFailureParameter.c \
-    EURECOM-NAS/src/ies/EpsUpdateResult.c \
-    EURECOM-NAS/src/ies/TimeZone.c \
-    EURECOM-NAS/src/ies/MessageType.c \
-    EURECOM-NAS/src/ies/EmmCause.c \
-    EURECOM-NAS/src/ies/MobileStationClassmark2.c \
-    EURECOM-NAS/src/ies/AuthenticationParameterRand.c \
-    EURECOM-NAS/src/ies/PdnAddress.c \
-    EURECOM-NAS/src/ies/MobileStationClassmark3.c \
-    EURECOM-NAS/src/ies/ServiceType.c \
-    EURECOM-NAS/src/ies/RequestType.c \
-    EURECOM-NAS/src/ies/PlmnList.c \
-    EURECOM-NAS/src/ies/EpsQualityOfService.c \
-    EURECOM-NAS/src/ies/NasMessageContainer.c \
-    EURECOM-NAS/src/ies/EsmInformationTransferFlag.c \
-    EURECOM-NAS/src/ies/TrafficFlowTemplate.c \
-    EURECOM-NAS/src/ies/LinkedEpsBearerIdentity.c \
-    EURECOM-NAS/src/ies/NasSecurityAlgorithms.c \
-    EURECOM-NAS/src/ies/LlcServiceAccessPointIdentifier.c \
-    EURECOM-NAS/src/ies/ShortMac.c \
-    EURECOM-NAS/src/ies/TrafficFlowAggregateDescription.c \
-    EURECOM-NAS/src/ies/PTmsiSignature.c \
-    EURECOM-NAS/src/ies/ProtocolDiscriminator.c \
-    EURECOM-NAS/src/ies/EpsBearerIdentity.c \
-    EURECOM-NAS/src/ies/TimeZoneAndTime.c \
-    EURECOM-NAS/src/ies/TrackingAreaIdentityList.c \
-    EURECOM-NAS/src/ies/QualityOfService.c \
-    EURECOM-NAS/src/ies/EpsUpdateType.c \
-    EURECOM-NAS/src/ies/PdnType.c \
-    EURECOM-NAS/src/ies/UeRadioCapabilityInformationUpdateNeeded.c \
-    EURECOM-NAS/src/ies/AuthenticationParameterAutn.c \
-    EURECOM-NAS/src/ies/EpsAttachType.c \
-    EURECOM-NAS/src/ies/IdentityType2.c \
-    EURECOM-NAS/src/ies/LcsClientIdentity.c \
-    EURECOM-NAS/src/ies/DetachType.c \
-    EURECOM-NAS/src/ies/LocationAreaIdentification.c \
-    EURECOM-NAS/src/ies/TrackingAreaIdentity.c \
-    EURECOM-NAS/src/ies/CipheringKeySequenceNumber.c \
-    EURECOM-NAS/src/ies/MsNetworkCapability.c \
-    EURECOM-NAS/src/ies/UeNetworkCapability.c \
-    EURECOM-NAS/src/ies/ProtocolConfigurationOptions.c \
-    EURECOM-NAS/src/ies/AdditionalUpdateType.c \
-    EURECOM-NAS/src/ies/TmsiStatus.c \
-    EURECOM-NAS/src/ies/EsmMessageContainer.c \
-    EURECOM-NAS/src/ies/Nonce.c \
-    EURECOM-NAS/src/ies/ProcedureTransactionIdentity.c \
-    EURECOM-NAS/src/ies/TransactionIdentifier.c \
-    EURECOM-NAS/src/ies/AdditionalUpdateResult.c \
-    EURECOM-NAS/src/ies/GprsTimer.c \
-    EURECOM-NAS/src/ies/EpsNetworkFeatureSupport.c \
-    EURECOM-NAS/src/ies/SsCode.c \
-    EURECOM-NAS/src/ies/DrxParameter.c \
-    EURECOM-NAS/src/ies/KsiAndSequenceNumber.c \
-    EURECOM-NAS/src/ies/EpsBearerContextStatus.h \
-    EURECOM-NAS/src/ies/MobileStationClassmark2.h \
-    EURECOM-NAS/src/ies/LcsClientIdentity.h \
-    EURECOM-NAS/src/ies/ServiceType.h \
-    EURECOM-NAS/src/ies/Cli.h \
-    EURECOM-NAS/src/ies/GprsTimer.h \
-    EURECOM-NAS/src/ies/AuthenticationParameterAutn.h \
-    EURECOM-NAS/src/ies/EmmCause.h \
-    EURECOM-NAS/src/ies/PdnAddress.h \
-    EURECOM-NAS/src/ies/QualityOfService.h \
-    EURECOM-NAS/src/ies/LocationAreaIdentification.h \
-    EURECOM-NAS/src/ies/EmergencyNumberList.h \
-    EURECOM-NAS/src/ies/UeRadioCapabilityInformationUpdateNeeded.h \
-    EURECOM-NAS/src/ies/SupportedCodecList.h \
-    EURECOM-NAS/src/ies/AuthenticationFailureParameter.h \
-    EURECOM-NAS/src/ies/MobileIdentity.h \
-    EURECOM-NAS/src/ies/UeNetworkCapability.h \
-    EURECOM-NAS/src/ies/ShortMac.h \
-    EURECOM-NAS/src/ies/MessageType.h \
-    EURECOM-NAS/src/ies/AdditionalUpdateType.h \
-    EURECOM-NAS/src/ies/NasMessageContainer.h \
-    EURECOM-NAS/src/ies/TrafficFlowAggregateDescription.h \
-    EURECOM-NAS/src/ies/NasKeySetIdentifier.h \
-    EURECOM-NAS/src/ies/NasSecurityAlgorithms.h \
-    EURECOM-NAS/src/ies/GutiType.h \
-    EURECOM-NAS/src/ies/EpsMobileIdentity.h \
-    EURECOM-NAS/src/ies/EpsUpdateType.h \
-    EURECOM-NAS/src/ies/TrackingAreaIdentity.h \
-    EURECOM-NAS/src/ies/TimeZoneAndTime.h \
-    EURECOM-NAS/src/ies/AccessPointName.h \
-    EURECOM-NAS/src/ies/PdnType.h \
-    EURECOM-NAS/src/ies/LlcServiceAccessPointIdentifier.h \
-    EURECOM-NAS/src/ies/DaylightSavingTime.h \
-    EURECOM-NAS/src/ies/PagingIdentity.h \
-    EURECOM-NAS/src/ies/CsfbResponse.h \
-    EURECOM-NAS/src/ies/LcsIndicator.h \
-    EURECOM-NAS/src/ies/EsmInformationTransferFlag.h \
-    EURECOM-NAS/src/ies/EsmMessageContainer.h \
-    EURECOM-NAS/src/ies/ImeisvRequest.h \
-    EURECOM-NAS/src/ies/PTmsiSignature.h \
-    EURECOM-NAS/src/ies/SsCode.h \
-    EURECOM-NAS/src/ies/EpsAttachResult.h \
-    EURECOM-NAS/src/ies/UeSecurityCapability.h \
-    EURECOM-NAS/src/ies/TimeZone.h \
-    EURECOM-NAS/src/ies/EpsBearerIdentity.h \
-    EURECOM-NAS/src/ies/IdentityType2.h \
-    EURECOM-NAS/src/ies/LinkedEpsBearerIdentity.h \
-    EURECOM-NAS/src/ies/PacketFlowIdentifier.h \
-    EURECOM-NAS/src/ies/RadioPriority.h \
-    EURECOM-NAS/src/ies/Nonce.h \
-    EURECOM-NAS/src/ies/KsiAndSequenceNumber.h \
-    EURECOM-NAS/src/ies/RequestType.h \
-    EURECOM-NAS/src/ies/ProtocolConfigurationOptions.h \
-    EURECOM-NAS/src/ies/AuthenticationResponseParameter.h \
-    EURECOM-NAS/src/ies/MobileStationClassmark3.h \
-    EURECOM-NAS/src/ies/EpsQualityOfService.h \
-    EURECOM-NAS/src/ies/DrxParameter.h \
-    EURECOM-NAS/src/ies/EsmCause.h \
-    EURECOM-NAS/src/ies/ProcedureTransactionIdentity.h \
-    EURECOM-NAS/src/ies/TransactionIdentifier.h \
-    EURECOM-NAS/src/ies/ProtocolDiscriminator.h \
-    EURECOM-NAS/src/ies/EpsAttachType.h \
-    EURECOM-NAS/src/ies/AdditionalUpdateResult.h \
-    EURECOM-NAS/src/ies/SecurityHeaderType.h \
-    EURECOM-NAS/src/ies/TrafficFlowTemplate.h \
-    EURECOM-NAS/src/ies/NetworkName.h \
-    EURECOM-NAS/src/ies/PlmnList.h \
-    EURECOM-NAS/src/ies/TrackingAreaIdentityList.h \
-    EURECOM-NAS/src/ies/DetachType.h \
-    EURECOM-NAS/src/ies/AuthenticationParameterRand.h \
-    EURECOM-NAS/src/ies/EpsUpdateResult.h \
-    EURECOM-NAS/src/ies/MsNetworkCapability.h \
-    EURECOM-NAS/src/ies/TmsiStatus.h \
-    EURECOM-NAS/src/ies/CipheringKeySequenceNumber.h \
-    EURECOM-NAS/src/ies/ApnAggregateMaximumBitRate.h \
+libnas_ies_SRCS =													\
+    EURECOM-NAS/src/ies/UeSecurityCapability.c						\
+    EURECOM-NAS/src/ies/SecurityHeaderType.c						\
+    EURECOM-NAS/src/ies/RadioPriority.c								\
+    EURECOM-NAS/src/ies/EpsAttachResult.c							\
+    EURECOM-NAS/src/ies/ImeisvRequest.c								\
+    EURECOM-NAS/src/ies/EmergencyNumberList.c						\
+    EURECOM-NAS/src/ies/SupportedCodecList.c						\
+    EURECOM-NAS/src/ies/EsmCause.c									\
+    EURECOM-NAS/src/ies/NetworkName.c								\
+    EURECOM-NAS/src/ies/AuthenticationResponseParameter.c			\
+    EURECOM-NAS/src/ies/Cli.c										\
+    EURECOM-NAS/src/ies/AccessPointName.c							\
+    EURECOM-NAS/src/ies/DaylightSavingTime.c						\
+    EURECOM-NAS/src/ies/LcsIndicator.c								\
+    EURECOM-NAS/src/ies/PagingIdentity.c							\
+    EURECOM-NAS/src/ies/EpsMobileIdentity.c							\
+    EURECOM-NAS/src/ies/GutiType.c									\
+    EURECOM-NAS/src/ies/NasKeySetIdentifier.c						\
+    EURECOM-NAS/src/ies/CsfbResponse.c								\
+    EURECOM-NAS/src/ies/PacketFlowIdentifier.c						\
+    EURECOM-NAS/src/ies/ApnAggregateMaximumBitRate.c				\
+    EURECOM-NAS/src/ies/EpsBearerContextStatus.c					\
+    EURECOM-NAS/src/ies/MobileIdentity.c							\
+    EURECOM-NAS/src/ies/AuthenticationFailureParameter.c			\
+    EURECOM-NAS/src/ies/EpsUpdateResult.c							\
+    EURECOM-NAS/src/ies/TimeZone.c									\
+    EURECOM-NAS/src/ies/MessageType.c								\
+    EURECOM-NAS/src/ies/EmmCause.c									\
+    EURECOM-NAS/src/ies/MobileStationClassmark2.c					\
+    EURECOM-NAS/src/ies/AuthenticationParameterRand.c				\
+    EURECOM-NAS/src/ies/PdnAddress.c								\
+    EURECOM-NAS/src/ies/MobileStationClassmark3.c					\
+    EURECOM-NAS/src/ies/ServiceType.c								\
+    EURECOM-NAS/src/ies/RequestType.c								\
+    EURECOM-NAS/src/ies/PlmnList.c									\
+    EURECOM-NAS/src/ies/EpsQualityOfService.c						\
+    EURECOM-NAS/src/ies/NasMessageContainer.c						\
+    EURECOM-NAS/src/ies/EsmInformationTransferFlag.c				\
+    EURECOM-NAS/src/ies/TrafficFlowTemplate.c						\
+    EURECOM-NAS/src/ies/LinkedEpsBearerIdentity.c					\
+    EURECOM-NAS/src/ies/NasSecurityAlgorithms.c						\
+    EURECOM-NAS/src/ies/LlcServiceAccessPointIdentifier.c			\
+    EURECOM-NAS/src/ies/ShortMac.c									\
+    EURECOM-NAS/src/ies/TrafficFlowAggregateDescription.c			\
+    EURECOM-NAS/src/ies/PTmsiSignature.c							\
+    EURECOM-NAS/src/ies/ProtocolDiscriminator.c						\
+    EURECOM-NAS/src/ies/EpsBearerIdentity.c							\
+    EURECOM-NAS/src/ies/TimeZoneAndTime.c							\
+    EURECOM-NAS/src/ies/TrackingAreaIdentityList.c					\
+    EURECOM-NAS/src/ies/QualityOfService.c							\
+    EURECOM-NAS/src/ies/EpsUpdateType.c								\
+    EURECOM-NAS/src/ies/PdnType.c									\
+    EURECOM-NAS/src/ies/UeRadioCapabilityInformationUpdateNeeded.c	\
+    EURECOM-NAS/src/ies/AuthenticationParameterAutn.c				\
+    EURECOM-NAS/src/ies/EpsAttachType.c								\
+    EURECOM-NAS/src/ies/IdentityType2.c								\
+    EURECOM-NAS/src/ies/LcsClientIdentity.c							\
+    EURECOM-NAS/src/ies/DetachType.c								\
+    EURECOM-NAS/src/ies/LocationAreaIdentification.c				\
+    EURECOM-NAS/src/ies/TrackingAreaIdentity.c						\
+    EURECOM-NAS/src/ies/CipheringKeySequenceNumber.c				\
+    EURECOM-NAS/src/ies/MsNetworkCapability.c						\
+    EURECOM-NAS/src/ies/UeNetworkCapability.c						\
+    EURECOM-NAS/src/ies/ProtocolConfigurationOptions.c				\
+    EURECOM-NAS/src/ies/AdditionalUpdateType.c						\
+    EURECOM-NAS/src/ies/TmsiStatus.c								\
+    EURECOM-NAS/src/ies/EsmMessageContainer.c						\
+    EURECOM-NAS/src/ies/Nonce.c										\
+    EURECOM-NAS/src/ies/ProcedureTransactionIdentity.c				\
+    EURECOM-NAS/src/ies/TransactionIdentifier.c						\
+    EURECOM-NAS/src/ies/AdditionalUpdateResult.c					\
+    EURECOM-NAS/src/ies/GprsTimer.c									\
+    EURECOM-NAS/src/ies/EpsNetworkFeatureSupport.c					\
+    EURECOM-NAS/src/ies/SsCode.c									\
+    EURECOM-NAS/src/ies/DrxParameter.c								\
+    EURECOM-NAS/src/ies/KsiAndSequenceNumber.c						\
+    EURECOM-NAS/src/ies/EpsBearerContextStatus.h					\
+    EURECOM-NAS/src/ies/MobileStationClassmark2.h					\
+    EURECOM-NAS/src/ies/LcsClientIdentity.h							\
+    EURECOM-NAS/src/ies/ServiceType.h								\
+    EURECOM-NAS/src/ies/Cli.h										\
+    EURECOM-NAS/src/ies/GprsTimer.h									\
+    EURECOM-NAS/src/ies/AuthenticationParameterAutn.h				\
+    EURECOM-NAS/src/ies/EmmCause.h									\
+    EURECOM-NAS/src/ies/PdnAddress.h								\
+    EURECOM-NAS/src/ies/QualityOfService.h							\
+    EURECOM-NAS/src/ies/LocationAreaIdentification.h				\
+    EURECOM-NAS/src/ies/EmergencyNumberList.h						\
+    EURECOM-NAS/src/ies/UeRadioCapabilityInformationUpdateNeeded.h	\
+    EURECOM-NAS/src/ies/SupportedCodecList.h						\
+    EURECOM-NAS/src/ies/AuthenticationFailureParameter.h			\
+    EURECOM-NAS/src/ies/MobileIdentity.h							\
+    EURECOM-NAS/src/ies/UeNetworkCapability.h						\
+    EURECOM-NAS/src/ies/ShortMac.h									\
+    EURECOM-NAS/src/ies/MessageType.h								\
+    EURECOM-NAS/src/ies/AdditionalUpdateType.h						\
+    EURECOM-NAS/src/ies/NasMessageContainer.h						\
+    EURECOM-NAS/src/ies/TrafficFlowAggregateDescription.h			\
+    EURECOM-NAS/src/ies/NasKeySetIdentifier.h						\
+    EURECOM-NAS/src/ies/NasSecurityAlgorithms.h						\
+    EURECOM-NAS/src/ies/GutiType.h									\
+    EURECOM-NAS/src/ies/EpsMobileIdentity.h							\
+    EURECOM-NAS/src/ies/EpsUpdateType.h								\
+    EURECOM-NAS/src/ies/TrackingAreaIdentity.h						\
+    EURECOM-NAS/src/ies/TimeZoneAndTime.h							\
+    EURECOM-NAS/src/ies/AccessPointName.h							\
+    EURECOM-NAS/src/ies/PdnType.h									\
+    EURECOM-NAS/src/ies/LlcServiceAccessPointIdentifier.h			\
+    EURECOM-NAS/src/ies/DaylightSavingTime.h						\
+    EURECOM-NAS/src/ies/PagingIdentity.h							\
+    EURECOM-NAS/src/ies/CsfbResponse.h								\
+    EURECOM-NAS/src/ies/LcsIndicator.h								\
+    EURECOM-NAS/src/ies/EsmInformationTransferFlag.h				\
+    EURECOM-NAS/src/ies/EsmMessageContainer.h						\
+    EURECOM-NAS/src/ies/ImeisvRequest.h								\
+    EURECOM-NAS/src/ies/PTmsiSignature.h							\
+    EURECOM-NAS/src/ies/SsCode.h									\
+    EURECOM-NAS/src/ies/EpsAttachResult.h							\
+    EURECOM-NAS/src/ies/UeSecurityCapability.h						\
+    EURECOM-NAS/src/ies/TimeZone.h									\
+    EURECOM-NAS/src/ies/EpsBearerIdentity.h							\
+    EURECOM-NAS/src/ies/IdentityType2.h								\
+    EURECOM-NAS/src/ies/LinkedEpsBearerIdentity.h					\
+    EURECOM-NAS/src/ies/PacketFlowIdentifier.h						\
+    EURECOM-NAS/src/ies/RadioPriority.h								\
+    EURECOM-NAS/src/ies/Nonce.h										\
+    EURECOM-NAS/src/ies/KsiAndSequenceNumber.h						\
+    EURECOM-NAS/src/ies/RequestType.h								\
+    EURECOM-NAS/src/ies/ProtocolConfigurationOptions.h				\
+    EURECOM-NAS/src/ies/AuthenticationResponseParameter.h			\
+    EURECOM-NAS/src/ies/MobileStationClassmark3.h					\
+    EURECOM-NAS/src/ies/EpsQualityOfService.h						\
+    EURECOM-NAS/src/ies/DrxParameter.h								\
+    EURECOM-NAS/src/ies/EsmCause.h									\
+    EURECOM-NAS/src/ies/ProcedureTransactionIdentity.h				\
+    EURECOM-NAS/src/ies/TransactionIdentifier.h						\
+    EURECOM-NAS/src/ies/ProtocolDiscriminator.h						\
+    EURECOM-NAS/src/ies/EpsAttachType.h								\
+    EURECOM-NAS/src/ies/AdditionalUpdateResult.h					\
+    EURECOM-NAS/src/ies/SecurityHeaderType.h						\
+    EURECOM-NAS/src/ies/TrafficFlowTemplate.h						\
+    EURECOM-NAS/src/ies/NetworkName.h								\
+    EURECOM-NAS/src/ies/PlmnList.h									\
+    EURECOM-NAS/src/ies/TrackingAreaIdentityList.h					\
+    EURECOM-NAS/src/ies/DetachType.h								\
+    EURECOM-NAS/src/ies/AuthenticationParameterRand.h				\
+    EURECOM-NAS/src/ies/EpsUpdateResult.h							\
+    EURECOM-NAS/src/ies/MsNetworkCapability.h						\
+    EURECOM-NAS/src/ies/TmsiStatus.h								\
+    EURECOM-NAS/src/ies/CipheringKeySequenceNumber.h				\
+    EURECOM-NAS/src/ies/ApnAggregateMaximumBitRate.h				\
     EURECOM-NAS/src/ies/EpsNetworkFeatureSupport.h
 
-libnas_utils_SRCS = \
-    EURECOM-NAS/src/util/nas_log.h      \
-    EURECOM-NAS/src/util/nas_log.c      \
-    EURECOM-NAS/src/util/nas_timer.h      \
-    EURECOM-NAS/src/util/nas_timer.c      \
-    EURECOM-NAS/src/util/TLVEncoder.h      \
-    EURECOM-NAS/src/util/TLVEncoder.c      \
-    EURECOM-NAS/src/util/TLVDecoder.h      \
-    EURECOM-NAS/src/util/TLVDecoder.c      \
-    EURECOM-NAS/src/util/OctetString.h      \
+libnas_utils_SRCS =								\
+    EURECOM-NAS/src/util/nas_log.h				\
+    EURECOM-NAS/src/util/nas_log.c				\
+    EURECOM-NAS/src/util/nas_timer.h			\
+    EURECOM-NAS/src/util/nas_timer.c			\
+    EURECOM-NAS/src/util/TLVEncoder.h			\
+    EURECOM-NAS/src/util/TLVEncoder.c			\
+    EURECOM-NAS/src/util/TLVDecoder.h			\
+    EURECOM-NAS/src/util/TLVDecoder.c			\
+    EURECOM-NAS/src/util/OctetString.h			\
     EURECOM-NAS/src/util/OctetString.c
 
-libnas_SRCS = \
-    EURECOM-NAS/src/nas_network.c       \
-    EURECOM-NAS/src/nas_network.h       \
-    EURECOM-NAS/src/nas_parser.c        \
-    EURECOM-NAS/src/nas_parser.h        \
-    EURECOM-NAS/src/nas_proc.c  \
-    EURECOM-NAS/src/nas_proc.h  \
-    EURECOM-NAS/src/nas_user.c  \
-    EURECOM-NAS/src/nas_user.h  \
-    $(libnas_utils_SRCS)        \
-    $(libnas_emm_SRCS)  \
-    $(libnas_emm_msg_SRCS)      \
-    $(libnas_emm_sap_SRCS)     \
-    $(libnas_esm_SRCS)  \
-    $(libnas_esm_msg_SRCS)      \
-    $(libnas_esm_sap_SRCS)      \
+libnas_SRCS =									\
+    EURECOM-NAS/src/nas_network.c				\
+    EURECOM-NAS/src/nas_network.h				\
+    EURECOM-NAS/src/nas_parser.c				\
+    EURECOM-NAS/src/nas_parser.h				\
+    EURECOM-NAS/src/nas_proc.c					\
+    EURECOM-NAS/src/nas_proc.h					\
+    EURECOM-NAS/src/nas_user.c					\
+    EURECOM-NAS/src/nas_user.h					\
+    $(libnas_utils_SRCS)						\
+    $(libnas_emm_SRCS)							\
+    $(libnas_emm_msg_SRCS)						\
+    $(libnas_emm_sap_SRCS)						\
+    $(libnas_esm_SRCS)							\
+    $(libnas_esm_msg_SRCS)						\
+    $(libnas_esm_sap_SRCS)						\
     $(libnas_ies_SRCS)  \
     $(libnas_api_SRCS)
diff --git a/targets/Makefile.common b/targets/Makefile.common
index 662fc61c22..c959079b8f 100644
--- a/targets/Makefile.common
+++ b/targets/Makefile.common
@@ -23,20 +23,27 @@ $(ITTI_MESSAGES_H): $(ITTI_MESSAGES_XML)
 	@sed -e 's/[ ]*//' -e 's/"/\\"/g' -e 's/^/"/' -e 's/$$/\\n"/' $< > $@
 
 ifdef USE_MME
-CFLAGS				+= -DENB_MODE -DENABLE_USE_MME -DENABLE_EVENT_FD -I$(S1AP_DIR) -I$(SCTP_DIR)
-S1AP_CFLAGS	 		 = $(CFLAGS) -I$(TOP_DIR) $(L2_incl) $(UTIL_incl) $(UTILS_incl)
-
+LIBS				+= $(UE_NAS_OBJ_DIR)/libuenas.a
 LIBS				+= $(S1AP_OBJ_DIR)/libs1ap.a $(SCTP_OBJ_DIR)/libsctp.a -lsctp -lcrypt
-SHARED_DEPENDENCIES	 = $(S1AP_OBJ_DIR)/libs1ap.a $(SCTP_OBJ_DIR)/libsctp.a
-export S1AP_CFLAGS
+SHARED_DEPENDENCIES	 = $(UE_NAS_OBJ_DIR)/libuenas.a $(S1AP_OBJ_DIR)/libs1ap.a $(SCTP_OBJ_DIR)/libsctp.a
 
 ENABLE_ITTI = 1
 
+CFLAGS				+= -DENABLE_ITTI -DENABLE_USE_MME
+export CFLAGS
+
+$(UE_NAS_OBJ_DIR)/libuenas.a: force_look
+	@$(MAKE) -C $(UE_NAS_DIR) -f Makefile.UE $(UE_NAS_OBJ_DIR)/libuenas.a OUTDIR=$(UE_NAS_OBJ_DIR)
+
+CFLAGS				+= -DENB_MODE -I$(S1AP_DIR) -I$(SCTP_DIR)
+S1AP_CFLAGS	 		 = $(CFLAGS) -I$(TOP_DIR) $(L2_incl) $(UTIL_incl) $(UTILS_incl)
+export S1AP_CFLAGS
+
 $(S1AP_OBJ_DIR)/libs1ap.a: force_look
 	@$(MAKE) -C $(S1AP_DIR) -f Makefile.eNB $(S1AP_OBJ_DIR)/libs1ap.a OUTDIR=$(S1AP_OBJ_DIR)
 $(SCTP_OBJ_DIR)/libsctp.a: force_look
 	@$(MAKE) -C $(SCTP_DIR) -f Makefile.eNB $(SCTP_OBJ_DIR)/libsctp.a OUTDIR=$(SCTP_OBJ_DIR)
-	
+
 CFLAGS += $(NAS_UE_incl)
 
 OBJ = $(NAS_UE_OBJS)
diff --git a/targets/Makerules b/targets/Makerules
index 42fb88f6f5..0001bb78c6 100644
--- a/targets/Makerules
+++ b/targets/Makerules
@@ -60,10 +60,15 @@ COMMON_CFLAGS =                 \
     -O2
 
 COMMON_UTILS_DIR    = $(OPENAIR_HOME)/common/utils
+UE_NAS_DIR          = $(OPENAIR_HOME)/openair-cn/NAS
 S1AP_DIR            = $(OPENAIR_HOME)/openair-cn/S1AP
 SCTP_DIR            = $(OPENAIR_HOME)/openair-cn/SCTP
+
+UE_NAS_OBJ_DIR      = $(subst $(OPENAIR_HOME),$(OBJS_DIR),$(UE_NAS_DIR))
 S1AP_OBJ_DIR        = $(subst $(OPENAIR_HOME),$(OBJS_DIR),$(S1AP_DIR))
 SCTP_OBJ_DIR        = $(subst $(OPENAIR_HOME),$(OBJS_DIR),$(SCTP_DIR))
 
-export S1AP_DIR
 export COMMON_UTILS_DIR
+export UE_NAS_DIR
+export S1AP_DIR
+export SCTP_DIR
diff --git a/targets/SIMU/USER/Makefile b/targets/SIMU/USER/Makefile
index 3183884f1d..b34f109bee 100644
--- a/targets/SIMU/USER/Makefile
+++ b/targets/SIMU/USER/Makefile
@@ -367,7 +367,9 @@ rrm_std_cellular:
 	( cd $(OPENAIR2_DIR)/NAS/SIMU_CELLULAR && make cell_rrm CELL_RRM=1 CELLULAR=1 NO_RRM=1)
 
 cleanall: clean cleanasn1
+	@if [ -d $(UE_NAS_DIR) ]; then $(MAKE) -C $(UE_NAS_DIR) -f Makefile.UE cleanall OUTDIR=$(UE_NAS_OBJ_DIR); fi
 	@if [ -d $(S1AP_DIR) ]; then $(MAKE) -C $(S1AP_DIR) -f Makefile.eNB cleanall OUTDIR=$(S1AP_OBJ_DIR); fi
+	@if [ -d $(SCTP_DIR) ]; then $(MAKE) -C $(SCTP_DIR) -f Makefile.eNB cleanall OUTDIR=$(SCTP_OBJ_DIR); fi
 
 cleanalmostall: clean 
 	rm -f $(ASN1_MSG_OBJS1)
-- 
GitLab