From 2b2285747d4eff24d705882a988ddff50356f09a Mon Sep 17 00:00:00 2001
From: Raymond Knopp <raymond.knopp@eurecom.fr>
Date: Sat, 17 Apr 2021 00:09:43 +0200
Subject: [PATCH] OK up to RRCSetupComplete received in RRC and decoded
 correctly

---
 openair2/LAYER2/nr_pdcp/nr_pdcp_oai_api.c | 4 ++--
 openair2/LAYER2/nr_rlc/nr_rlc_oai_api.c   | 4 ++--
 openair2/RRC/NR/rrc_gNB.c                 | 8 ++++++--
 openair2/RRC/NR_UE/rrc_UE.c               | 8 +++-----
 4 files changed, 13 insertions(+), 11 deletions(-)

diff --git a/openair2/LAYER2/nr_pdcp/nr_pdcp_oai_api.c b/openair2/LAYER2/nr_pdcp/nr_pdcp_oai_api.c
index 427986faf0..a624d26b85 100644
--- a/openair2/LAYER2/nr_pdcp/nr_pdcp_oai_api.c
+++ b/openair2/LAYER2/nr_pdcp/nr_pdcp_oai_api.c
@@ -566,11 +566,11 @@ static void deliver_sdu_srb(void *_ue, nr_pdcp_entity_t *entity,
     message_p = itti_alloc_new_message(TASK_PDCP_ENB, 0, NR_RRC_DCCH_DATA_IND);
     AssertFatal(message_p != NULL, "OUT OF MEMORY");
     NR_RRC_DCCH_DATA_IND(message_p).dcch_index = srb_id;
-    NR_RRC_DCCH_DATA_IND(message_p).sdu_p = (uint8_t*)buf;
+    NR_RRC_DCCH_DATA_IND(message_p).sdu_p = rrc_buffer_p;
     NR_RRC_DCCH_DATA_IND(message_p).sdu_size = size;
     NR_RRC_DCCH_DATA_IND(message_p).rnti = ue->rnti;
     
-    itti_send_msg_to_task(TASK_RRC_GNB, INSTANCE_DEFAULT, message_p);
+    itti_send_msg_to_task(TASK_RRC_GNB, 0, message_p);
   }
 }
 
diff --git a/openair2/LAYER2/nr_rlc/nr_rlc_oai_api.c b/openair2/LAYER2/nr_rlc/nr_rlc_oai_api.c
index 92362dfdcc..a67c3f460c 100644
--- a/openair2/LAYER2/nr_rlc/nr_rlc_oai_api.c
+++ b/openair2/LAYER2/nr_rlc/nr_rlc_oai_api.c
@@ -639,7 +639,7 @@ rb_found:
 #endif
 }
 
-static void add_srb(int rnti, struct NR_SRB_ToAddMod *s, NR_RLC_BearerConfig_t *rlc_BearerConfig)
+static void add_rlc_srb(int rnti, struct NR_SRB_ToAddMod *s, NR_RLC_BearerConfig_t *rlc_BearerConfig)
 {
   nr_rlc_entity_t            *nr_rlc_am;
   nr_rlc_ue_t                *ue;
@@ -945,7 +945,7 @@ rlc_op_status_t nr_rrc_rlc_config_asn1_req (const protocol_ctxt_t   * const ctxt
         if(rlc_bearer2add_list->list.array[j]->servedRadioBearer != NULL){
           if(rlc_bearer2add_list->list.array[j]->servedRadioBearer->present == NR_RLC_BearerConfig__servedRadioBearer_PR_srb_Identity){  
             if(srb2add_listP->list.array[i]->srb_Identity == rlc_bearer2add_list->list.array[j]->servedRadioBearer->choice.srb_Identity){
-              add_srb(rnti, srb2add_listP->list.array[i], rlc_bearer2add_list->list.array[j]);
+              add_rlc_srb(rnti, srb2add_listP->list.array[i], rlc_bearer2add_list->list.array[j]);
             }
           }  
         }
diff --git a/openair2/RRC/NR/rrc_gNB.c b/openair2/RRC/NR/rrc_gNB.c
index 88e3c44abb..f360e966b2 100755
--- a/openair2/RRC/NR/rrc_gNB.c
+++ b/openair2/RRC/NR/rrc_gNB.c
@@ -503,7 +503,7 @@ rrc_gNB_generate_RRCSetup(
 				 NULL,
 				 NULL,
 				 NULL,
-				 NULL,
+				 ue_context_pP->ue_context.masterCellGroup->rlc_BearerToAddModList,
 				 NULL);
       nr_rrc_pdcp_config_asn1_req(ctxt_pP,
 				  ue_context_pP->ue_context.SRB_configList,
@@ -516,7 +516,7 @@ rrc_gNB_generate_RRCSetup(
 				  NULL,
 				  NULL,
 				  NULL,
-				  NULL);
+                                  ue_context_pP->ue_context.masterCellGroup->rlc_BearerToAddModList);
 #endif
     }
     break;
@@ -1952,6 +1952,8 @@ rrc_gNB_decode_dcch(
 
   LOG_D(NR_RRC, PROTOCOL_NR_RRC_CTXT_UE_FMT" Decoding UL-DCCH Message\n",
                   PROTOCOL_NR_RRC_CTXT_UE_ARGS(ctxt_pP));
+  for (int i=0;i<sdu_sizeP;i++) printf("%02x ",Rx_sdu[i]);
+  printf("\n");
   dec_rval = uper_decode(
                   NULL,
                   &asn_DEF_NR_UL_DCCH_Message,
@@ -2639,6 +2641,8 @@ void *rrc_gnb_task(void *args_p) {
                             NR_RRC_DCCH_DATA_IND(msg_p).dcch_index,
                             NR_RRC_DCCH_DATA_IND(msg_p).sdu_p,
                             NR_RRC_DCCH_DATA_IND(msg_p).sdu_size);
+        result = itti_free(ITTI_MSG_ORIGIN_ID(msg_p), NR_RRC_DCCH_DATA_IND(msg_p).sdu_p);
+
         break;
 
       case NGAP_DOWNLINK_NAS:
diff --git a/openair2/RRC/NR_UE/rrc_UE.c b/openair2/RRC/NR_UE/rrc_UE.c
index c9f307d667..3f2902f6ce 100644
--- a/openair2/RRC/NR_UE/rrc_UE.c
+++ b/openair2/RRC/NR_UE/rrc_UE.c
@@ -1351,6 +1351,9 @@ static void rrc_ue_generate_RRCSetupComplete(
   LOG_D(NR_RRC,
        "[FRAME %05d][RRC_UE][MOD %02d][][--- PDCP_DATA_REQ/%d Bytes (RRCSetupComplete to gNB %d MUI %d) --->][PDCP][MOD %02d][RB %02d]\n",
        ctxt_pP->frame, ctxt_pP->module_id+NB_RN_INST, size, gNB_index, nr_rrc_mui, ctxt_pP->module_id+NB_eNB_INST, DCCH);
+
+  for (int i=0;i<size;i++) printf("%02x ",buffer[i]);
+  printf("\n");
    // ctxt_pP_local.rnti = ctxt_pP->rnti;
   rrc_data_req_ue(
       ctxt_pP,
@@ -1360,11 +1363,6 @@ static void rrc_ue_generate_RRCSetupComplete(
       size,
       buffer,
       PDCP_TRANSMISSION_MODE_CONTROL);
-  if (mac->cg &&
-      mac->cg->spCellConfig &&
-      mac->cg->spCellConfig->spCellConfigDedicated &&
-      mac->cg->spCellConfig->spCellConfigDedicated->csi_MeasConfig)
-    AssertFatal(1==0,"2 > csi_MeasConfig is not null\n");
 #ifdef ITTI_SIM
   MessageDef *message_p;
   uint8_t *message_buffer;
-- 
2.26.2