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;