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