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 393fec2714f7a9694ee0bb34ef752d43fbf410fe..6adccff52d6ce6cfdce27f68036c46c7cf634449 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 f9eef51b16ed13122b820744a5a6898090fde690..585a09c64a3571a89bf8bd3b46b193454e45a855 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 0a1061d7c76ebfd2c08859a9a44c8b3856c3f847..78ef472c95808455de98c4e5d40a181310f34b40 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 bdc42adf4ed3eeadf0de630f97b77534c7bb90b3..639043ddd08ffde5dd16f153c5cff85d76b5866e 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 3f485e413a4534c7c53b0b27452c3d2e83f95149..ed5fbc1f92891f99d5ca5d0ec3d3bc62f1faad20 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;