From c7a36ec6d26c46f099368353fae541a12a16824e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20Leroy?= <frederic.leroy@b-com.com> Date: Fri, 22 Jul 2016 10:45:46 +0200 Subject: [PATCH] UE/EMM/LowerLayer: move ueid to nas_user_t --- openair3/NAS/UE/EMM/LowerLayer.c | 22 +++++++++------------- openair3/NAS/UE/EMM/LowerLayer.h | 9 ++++----- openair3/NAS/UE/EMM/SAP/emm_as.c | 10 +++++----- openair3/NAS/UE/EMM/SAP/emm_esm.c | 2 +- openair3/NAS/UE/nas_ue_task.c | 1 + openair3/NAS/UE/user_defs.h | 1 + 6 files changed, 21 insertions(+), 24 deletions(-) diff --git a/openair3/NAS/UE/EMM/LowerLayer.c b/openair3/NAS/UE/EMM/LowerLayer.c index ab1d5c6cf8..2d67cf6417 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 85229de686..019803936c 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 8c26b42818..49668d61ab 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 b3a494ad49..798e682b11 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 53b0520933..2b41123446 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 c92a5a9388..a30e13663a 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 -- GitLab