Commit 490d0f0f authored by winckel's avatar winckel

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
parent 15e3d8cb
......@@ -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;
......
......@@ -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;
}
......
......@@ -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;
}
......
......@@ -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;
......
......@@ -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;
}
......
......@@ -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;
......
......@@ -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
......
......@@ -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]);
}
......
......@@ -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;
}
......
......@@ -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 */
......
......@@ -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);
......
......@@ -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"
......
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 \