From 7bb2ec875c567495826f47fb89e5264dc6ad2d6c Mon Sep 17 00:00:00 2001 From: winckel <winckel@eurecom.fr> Date: Thu, 12 Dec 2013 09:52:49 +0000 Subject: [PATCH] Compeleted messages transmission from NAS to RRC on UE side. git-svn-id: http://svn.eurecom.fr/openair4G/trunk@4686 818b1a75-f10b-46b9-bf7c-635c3b92a50f --- .../NAS/EURECOM-NAS/src/emm/sap/emm_as.c | 8 ++++-- openair-cn/NAS/nas_itti_messaging.c | 26 +++++++++++++++++++ openair-cn/NAS/nas_itti_messaging.h | 4 +++ openair2/COMMON/rrc_messages_def.h | 2 ++ openair2/COMMON/rrc_messages_types.h | 4 +++ 5 files changed, 42 insertions(+), 2 deletions(-) diff --git a/openair-cn/NAS/EURECOM-NAS/src/emm/sap/emm_as.c b/openair-cn/NAS/EURECOM-NAS/src/emm/sap/emm_as.c index 393fec2714..6adccff52d 100644 --- a/openair-cn/NAS/EURECOM-NAS/src/emm/sap/emm_as.c +++ b/openair-cn/NAS/EURECOM-NAS/src/emm/sap/emm_as.c @@ -1132,12 +1132,16 @@ static int _emm_as_send(const emm_as_t *msg) } break; case AS_UL_INFO_TRANSFER_REQ: { - + nas_itti_ul_data_req(as_msg.msg.ul_info_transfer_req.UEid, + as_msg.msg.ul_info_transfer_req.nasMsg.data, + as_msg.msg.ul_info_transfer_req.nasMsg.length); LOG_FUNC_RETURN (RETURNok); } break; case AS_RAB_ESTABLISH_RSP: { - + nas_itti_rab_establish_rsp(as_msg.msg.rab_establish_rsp.s_tmsi, + as_msg.msg.rab_establish_rsp.rabID, + as_msg.msg.rab_establish_rsp.errCode); LOG_FUNC_RETURN (RETURNok); } break; diff --git a/openair-cn/NAS/nas_itti_messaging.c b/openair-cn/NAS/nas_itti_messaging.c index f9eef51b16..585a09c64a 100644 --- a/openair-cn/NAS/nas_itti_messaging.c +++ b/openair-cn/NAS/nas_itti_messaging.c @@ -91,4 +91,30 @@ int nas_itti_nas_establish_req(as_cause_t cause, as_call_type_t type, as_stmsi_t itti_send_msg_to_task(TASK_RRC_UE, INSTANCE_DEFAULT, message_p); } + +int nas_itti_ul_data_req(const uint32_t ue_id, void *const data, const uint32_t length) +{ + MessageDef *message_p; + + message_p = itti_alloc_new_message(TASK_NAS_UE, NAS_UPLINK_DATA_REQ); + + NAS_UPLINK_DATA_REQ(message_p).UEid = ue_id; + NAS_UPLINK_DATA_REQ(message_p).nasMsg.data = data; + NAS_UPLINK_DATA_REQ(message_p).nasMsg.length = length; + + return itti_send_msg_to_task(TASK_RRC_UE, INSTANCE_DEFAULT, message_p); +} + +void nas_itti_rab_establish_rsp(const as_stmsi_t s_tmsi, const as_rab_id_t rabID, const nas_error_code_t errCode) +{ + MessageDef *message_p; + + message_p = itti_alloc_new_message(TASK_NAS_UE, NAS_RAB_ESTABLI_RSP); + + NAS_RAB_ESTABLI_RSP(message_p).s_tmsi = s_tmsi; + NAS_RAB_ESTABLI_RSP(message_p).rabID = rabID; + NAS_RAB_ESTABLI_RSP(message_p).errCode = errCode; + + itti_send_msg_to_task(TASK_RRC_UE, INSTANCE_DEFAULT, message_p); +} #endif diff --git a/openair-cn/NAS/nas_itti_messaging.h b/openair-cn/NAS/nas_itti_messaging.h index 0a1061d7c7..78ef472c95 100644 --- a/openair-cn/NAS/nas_itti_messaging.h +++ b/openair-cn/NAS/nas_itti_messaging.h @@ -97,5 +97,9 @@ static inline void nas_itti_establish_rej(const uint32_t ue_id, int nas_itti_cell_info_req(const plmn_t plmnID, const Byte_t rat); int nas_itti_nas_establish_req(as_cause_t cause, as_call_type_t type, as_stmsi_t s_tmsi, plmn_t plmnID, Byte_t *data, UInt32_t length); + +int nas_itti_ul_data_req(const uint32_t ue_id, void *const data, const uint32_t length); + +void nas_itti_rab_establish_rsp(const as_stmsi_t s_tmsi, const as_rab_id_t rabID, const nas_error_code_t errCode); # endif #endif /* NAS_ITTI_MESSAGING_H_ */ diff --git a/openair2/COMMON/rrc_messages_def.h b/openair2/COMMON/rrc_messages_def.h index bdc42adf4e..639043ddd0 100644 --- a/openair2/COMMON/rrc_messages_def.h +++ b/openair2/COMMON/rrc_messages_def.h @@ -24,6 +24,8 @@ MESSAGE_DEF(NAS_CELL_SELECTION_REQ, MESSAGE_PRIORITY_MED, NasCellSelec MESSAGE_DEF(NAS_CONN_ESTABLI_REQ, MESSAGE_PRIORITY_MED, NasConnEstabliReq, nas_conn_establi_req) MESSAGE_DEF(NAS_UPLINK_DATA_REQ, MESSAGE_PRIORITY_MED, NasUlDataReq, nas_ul_data_req) +MESSAGE_DEF(NAS_RAB_ESTABLI_RSP, MESSAGE_PRIORITY_MED, NasRabEstRsp, nas_rab_est_rsp) + // UE: RRC -> NAS messages MESSAGE_DEF(NAS_CELL_SELECTION_CNF, MESSAGE_PRIORITY_MED, NasCellSelectionCnf, nas_cell_selection_cnf) MESSAGE_DEF(NAS_CELL_SELECTION_IND, MESSAGE_PRIORITY_MED, NasCellSelectionInd, nas_cell_selection_ind) diff --git a/openair2/COMMON/rrc_messages_types.h b/openair2/COMMON/rrc_messages_types.h index 3f485e413a..ed5fbc1f92 100644 --- a/openair2/COMMON/rrc_messages_types.h +++ b/openair2/COMMON/rrc_messages_types.h @@ -34,6 +34,8 @@ typedef UL_DCCH_Message_t RrcUlDcchMessage; #define NAS_CONN_ESTABLI_REQ(mSGpTR) (mSGpTR)->ittiMsg.nas_conn_establi_req #define NAS_UPLINK_DATA_REQ(mSGpTR) (mSGpTR)->ittiMsg.nas_ul_data_req +#define NAS_RAB_ESTABLI_RSP(mSGpTR) (mSGpTR)->ittiMsg.nas_rab_est_rsp + #define NAS_CELL_SELECTION_CNF(mSGpTR) (mSGpTR)->ittiMsg.nas_cell_selection_cnf #define NAS_CELL_SELECTION_IND(mSGpTR) (mSGpTR)->ittiMsg.nas_cell_selection_ind #define NAS_PAGING_IND(mSGpTR) (mSGpTR)->ittiMsg.nas_paging_ind @@ -48,6 +50,8 @@ typedef cell_info_req_t NasCellSelectionReq; typedef nas_establish_req_t NasConnEstabliReq; typedef ul_info_transfer_req_t NasUlDataReq; +typedef rab_establish_rsp_t NasRabEstRsp; + // UE: RRC -> NAS messages typedef cell_info_cnf_t NasCellSelectionCnf; typedef cell_info_ind_t NasCellSelectionInd; -- GitLab