From 5f758074ef3dc5652125d5f5dacba9c1008e9d6c Mon Sep 17 00:00:00 2001
From: Raymond Knopp <raymond.knopp@eurecom.fr>
Date: Thu, 20 Sep 2018 02:53:26 +0200
Subject: [PATCH] RRCConnectionSetupComplete received in CU! (needed to
 allocate mem_pool for pdcp. remaining transactions on SRB1 and then SRB2 need
 to use PDCP (DCCH).

---
 openair2/F1AP/f1ap_cu_rrc_message_transfer.c | 16 ++++++++++++++--
 openair2/F1AP/f1ap_cu_task.c                 |  3 +++
 2 files changed, 17 insertions(+), 2 deletions(-)

diff --git a/openair2/F1AP/f1ap_cu_rrc_message_transfer.c b/openair2/F1AP/f1ap_cu_rrc_message_transfer.c
index 0a9e260aae..1b30602cdf 100644
--- a/openair2/F1AP/f1ap_cu_rrc_message_transfer.c
+++ b/openair2/F1AP/f1ap_cu_rrc_message_transfer.c
@@ -346,7 +346,7 @@ int CU_handle_UL_RRC_MESSAGE_TRANSFER(instance_t       instance,
   // print message in debug mode 
 
   // create an ITTI message and copy SDU
-
+  /*
   
   message_p = itti_alloc_new_message (TASK_CU_F1, RRC_DCCH_DATA_IND);
 
@@ -362,6 +362,18 @@ int CU_handle_UL_RRC_MESSAGE_TRANSFER(instance_t       instance,
   RRC_DCCH_DATA_IND (message_p).eNB_index = instance; // not needed for CU
 
   itti_send_msg_to_task(TASK_RRC_ENB, instance, message_p);
-
+  */
+  protocol_ctxt_t ctxt;
+  ctxt.module_id = instance;
+  ctxt.rnti = f1ap_get_rnti_by_cu_id(&f1ap_cu_ue[instance],cu_ue_f1ap_id);
+  ctxt.enb_flag = 1;
+  mem_block_t *mb = get_free_mem_block(ie->value.choice.RRCContainer.size,__func__);
+  memcpy((void*)mb->data,(void*)ie->value.choice.RRCContainer.buf,ie->value.choice.RRCContainer.size);
+  pdcp_data_ind (&ctxt,
+		 1,
+		 0,
+		 srb_id,
+		 ie->value.choice.RRCContainer.size,
+		 mb);
   return 0;
 }
diff --git a/openair2/F1AP/f1ap_cu_task.c b/openair2/F1AP/f1ap_cu_task.c
index ccdc85fa69..55a1160c46 100644
--- a/openair2/F1AP/f1ap_cu_task.c
+++ b/openair2/F1AP/f1ap_cu_task.c
@@ -111,6 +111,9 @@ void *F1AP_CU_task(void *arg) {
 
   LOG_I(CU_F1AP,"Starting F1AP at CU\n");
 
+  // no RLC in CU, initialize mem pool for PDCP
+  pool_buffer_init();
+
   itti_mark_task_ready(TASK_CU_F1);
 
   cu_task_send_sctp_init_req(0);
-- 
GitLab