diff --git a/openair3/NAS/UE/EMM/LowerLayer.c b/openair3/NAS/UE/EMM/LowerLayer.c index ab1d5c6cf89443879c2abef5b304b5c3ea9903f6..2d67cf64173fac66046725e898d980e2bc09c20b 100644 --- a/openair3/NAS/UE/EMM/LowerLayer.c +++ b/openair3/NAS/UE/EMM/LowerLayer.c @@ -88,7 +88,6 @@ static struct { ** Description: Notify the EPS Mobility Management entity that data have ** ** been successfully delivered to the network ** ** ** - ** Inputs: ueid: UE lower layer identifier ** ** Others: None ** ** ** ** Outputs: None ** @@ -96,7 +95,7 @@ static struct { ** Others: None ** ** ** ***************************************************************************/ -int lowerlayer_success(nas_user_t *user, unsigned int ueid) +int lowerlayer_success(nas_user_t *user) { LOG_FUNC_IN; @@ -104,7 +103,7 @@ int lowerlayer_success(nas_user_t *user, unsigned int ueid) int rc; emm_sap.primitive = EMMREG_LOWERLAYER_SUCCESS; - emm_sap.u.emm_reg.ueid = ueid; + emm_sap.u.emm_reg.ueid = user->ueid; rc = emm_sap_send(user, &emm_sap); LOG_FUNC_RETURN (rc); @@ -117,7 +116,6 @@ int lowerlayer_success(nas_user_t *user, unsigned int ueid) ** Description: Notify the EPS Mobility Management entity that lower la- ** ** yers failed to deliver data to the network ** ** ** - ** Inputs: ueid: UE lower layer identifier ** ** Others: None ** ** ** ** Outputs: None ** @@ -125,7 +123,7 @@ int lowerlayer_success(nas_user_t *user, unsigned int ueid) ** Others: None ** ** ** ***************************************************************************/ -int lowerlayer_failure(nas_user_t *user, unsigned int ueid) +int lowerlayer_failure(nas_user_t *user) { LOG_FUNC_IN; @@ -133,7 +131,7 @@ int lowerlayer_failure(nas_user_t *user, unsigned int ueid) int rc; emm_sap.primitive = EMMREG_LOWERLAYER_FAILURE; - emm_sap.u.emm_reg.ueid = ueid; + emm_sap.u.emm_reg.ueid = user->ueid; rc = emm_sap_send(user, &emm_sap); LOG_FUNC_RETURN (rc); @@ -191,7 +189,7 @@ int lowerlayer_release(nas_user_t *user, int cause) user->emm_data->ecm_status = ECM_IDLE; emm_sap.primitive = EMMREG_LOWERLAYER_RELEASE; - emm_sap.u.emm_reg.ueid = 0; + emm_sap.u.emm_reg.ueid = user->ueid; rc = emm_sap_send(user, &emm_sap); LOG_FUNC_RETURN (rc); @@ -204,7 +202,6 @@ int lowerlayer_release(nas_user_t *user, int cause) ** Description: Notify the EPS Session Management entity that data have ** ** been received from lower layers ** ** ** - ** Inputs: ueid: UE lower layer identifier ** ** data: Data transfered from lower layers ** ** Others: None ** ** ** @@ -213,7 +210,7 @@ int lowerlayer_release(nas_user_t *user, int cause) ** Others: None ** ** ** ***************************************************************************/ -int lowerlayer_data_ind(nas_user_t *user, unsigned int ueid, const OctetString *data) +int lowerlayer_data_ind(nas_user_t *user, const OctetString *data) { esm_sap_t esm_sap; int rc; @@ -223,7 +220,7 @@ int lowerlayer_data_ind(nas_user_t *user, unsigned int ueid, const OctetString * esm_sap.primitive = ESM_UNITDATA_IND; esm_sap.is_standalone = TRUE; - esm_sap.ueid = ueid; + esm_sap.ueid = user->ueid; esm_sap.recv = data; rc = esm_sap_send(user, &esm_sap); @@ -238,7 +235,6 @@ int lowerlayer_data_ind(nas_user_t *user, unsigned int ueid, const OctetString * ** Description: Notify the EPS Mobility Management entity that data have ** ** to be transfered to lower layers ** ** ** - ** Inputs: ueid: UE lower layer identifier ** ** data: Data to be transfered to lower layers ** ** Others: None ** ** ** @@ -247,7 +243,7 @@ int lowerlayer_data_ind(nas_user_t *user, unsigned int ueid, const OctetString * ** Others: None ** ** ** ***************************************************************************/ -int lowerlayer_data_req(nas_user_t *user, unsigned int ueid, const OctetString *data) +int lowerlayer_data_req(nas_user_t *user, const OctetString *data) { LOG_FUNC_IN; @@ -258,7 +254,7 @@ int lowerlayer_data_req(nas_user_t *user, unsigned int ueid, const OctetString * emm_sap.primitive = EMMAS_DATA_REQ; emm_sap.u.emm_as.u.data.guti = user->emm_data->guti; - emm_sap.u.emm_as.u.data.ueid = 0; + emm_sap.u.emm_as.u.data.ueid = user->ueid; sctx = user->emm_data->security; emm_sap.u.emm_as.u.data.NASinfo = 0; diff --git a/openair3/NAS/UE/EMM/LowerLayer.h b/openair3/NAS/UE/EMM/LowerLayer.h index 85229de6866b40bb01bb56f90e470a3e64110a01..019803936ca610102b4fc5480520602ef5490814 100644 --- a/openair3/NAS/UE/EMM/LowerLayer.h +++ b/openair3/NAS/UE/EMM/LowerLayer.h @@ -79,13 +79,12 @@ typedef int (*lowerlayer_release_callback_t)(void *); /****************** E X P O R T E D F U N C T I O N S ******************/ /****************************************************************************/ -// FIXME prototype with ueid -int lowerlayer_success(nas_user_t *user, unsigned int ueid); -int lowerlayer_failure(nas_user_t *user, unsigned int ueid); +int lowerlayer_success(nas_user_t *user); +int lowerlayer_failure(nas_user_t *user); int lowerlayer_establish(nas_user_t *user); int lowerlayer_release(nas_user_t *user, int cause); -int lowerlayer_data_ind(nas_user_t *user, unsigned int ueid, const OctetString *data); -int lowerlayer_data_req(nas_user_t *user, unsigned int ueid, const OctetString *data); +int lowerlayer_data_ind(nas_user_t *user, const OctetString *data); +int lowerlayer_data_req(nas_user_t *user, const OctetString *data); #endif /* __LOWERLAYER_H__*/ diff --git a/openair3/NAS/UE/EMM/SAP/emm_as.c b/openair3/NAS/UE/EMM/SAP/emm_as.c index 8c26b4281897d30632f0d6183c63bf72e1662c0b..49668d61ab500368b8cf8fa662f349039410421e 100644 --- a/openair3/NAS/UE/EMM/SAP/emm_as.c +++ b/openair3/NAS/UE/EMM/SAP/emm_as.c @@ -446,18 +446,18 @@ static int _emm_as_data_ind(nas_user_t *user, const emm_as_data_t *msg, int *emm EPS_SESSION_MANAGEMENT_MESSAGE) { const OctetString data = {bytes, (uint8_t *)plain_msg}; /* Foward ESM data to EPS session management */ - rc = lowerlayer_data_ind(user, msg->ueid, &data); + rc = lowerlayer_data_ind(user, &data); } free(plain_msg); } } else { /* Process successfull lower layer transfer indication */ - rc = lowerlayer_success(user, msg->ueid); + rc = lowerlayer_success(user); } } else { /* Process lower layer transmission failure of NAS message */ - rc = lowerlayer_failure(user, msg->ueid); + rc = lowerlayer_failure(user); } LOG_FUNC_RETURN (rc); @@ -496,7 +496,7 @@ static int _emm_as_establish_cnf(nas_user_t *user, const emm_as_establish_t *msg } else { /* The initial NAS message has been successfully delivered to * lower layers */ - rc = lowerlayer_success(user, 0); + rc = lowerlayer_success(user); LOG_FUNC_RETURN (rc); } @@ -571,7 +571,7 @@ static int _emm_as_establish_rej(nas_user_t *user) "failure"); /* Process lower layer transmission failure of initial NAS message */ - rc = lowerlayer_failure(user, 0); + rc = lowerlayer_failure(user); LOG_FUNC_RETURN (rc); } diff --git a/openair3/NAS/UE/EMM/SAP/emm_esm.c b/openair3/NAS/UE/EMM/SAP/emm_esm.c index b3a494ad49b5addc665917d78b7f607b47ca42fd..798e682b112c09f7d54ccebcb4b7dc6fec0492a9 100644 --- a/openair3/NAS/UE/EMM/SAP/emm_esm.c +++ b/openair3/NAS/UE/EMM/SAP/emm_esm.c @@ -149,7 +149,7 @@ int emm_esm_send(nas_user_t *user, const emm_esm_t *msg) case _EMMESM_UNITDATA_REQ: /* ESM requests EMM to transfer ESM data unit to lower layer */ - rc = lowerlayer_data_req(user, msg->ueid, &msg->u.data.msg); + rc = lowerlayer_data_req(user, &msg->u.data.msg); break; default: diff --git a/openair3/NAS/UE/nas_ue_task.c b/openair3/NAS/UE/nas_ue_task.c index 53b0520933de9f771ad9bdb3302f56e52944e54c..2b4112344636c5501d7d055d1c6b70f4aead0c2b 100644 --- a/openair3/NAS/UE/nas_ue_task.c +++ b/openair3/NAS/UE/nas_ue_task.c @@ -71,6 +71,7 @@ void *nas_ue_task(void *args_p) nas_user_t user_value = {}; nas_user_t *user = &user_value; + user->ueid = 0; itti_mark_task_ready (TASK_NAS_UE); MSC_START_USE(); diff --git a/openair3/NAS/UE/user_defs.h b/openair3/NAS/UE/user_defs.h index c92a5a938822026a327511574b686e1075305a02..a30e13663a1143b29d26f12734dd078d60da1755 100644 --- a/openair3/NAS/UE/user_defs.h +++ b/openair3/NAS/UE/user_defs.h @@ -59,6 +59,7 @@ Description NAS type definition to manage a user equipment #include "at_response.h" typedef struct { + int ueid; /* UE lower layer identifier */ int fd; proc_data_t proc; // Eps Session Management