From 1b69c2a00dfa53ffd8e130bfa671eb1347816164 Mon Sep 17 00:00:00 2001
From: Masayuki Harada <masayuki.harada@jp.fujitsu.com>
Date: Tue, 8 Jun 2021 15:32:12 +0900
Subject: [PATCH] Remove pdcp_layer_init_for_CU function and merge to
 pdcp_layer_init.

---
 executables/nr-softmodem.c                |  1 -
 openair2/GNB_APP/gnb_app.c                |  4 +---
 openair2/GNB_APP/gnb_config.c             |  2 +-
 openair2/LAYER2/nr_pdcp/nr_pdcp.h         |  1 -
 openair2/LAYER2/nr_pdcp/nr_pdcp_oai_api.c | 19 +++----------------
 5 files changed, 5 insertions(+), 22 deletions(-)

diff --git a/executables/nr-softmodem.c b/executables/nr-softmodem.c
index 7fb9f8b19f9..929aeb672a3 100644
--- a/executables/nr-softmodem.c
+++ b/executables/nr-softmodem.c
@@ -625,7 +625,6 @@ static  void wait_nfapi_init(char *thread_name) {
 void init_pdcp(void) {
   if (!NODE_IS_DU(RC.nrrrc[0]->node_type)) {
     // pdcp_layer_init();
-    // pdcp_layer_init_for_CU();
     uint32_t pdcp_initmask = (IS_SOFTMODEM_NOS1) ?
                             (PDCP_USE_NETLINK_BIT | LINK_ENB_PDCP_TO_IP_DRIVER_BIT) : LINK_ENB_PDCP_TO_GTPV1U_BIT;
     if (IS_SOFTMODEM_NOS1) {
diff --git a/openair2/GNB_APP/gnb_app.c b/openair2/GNB_APP/gnb_app.c
index 149dde9d739..83869f25917 100644
--- a/openair2/GNB_APP/gnb_app.c
+++ b/openair2/GNB_APP/gnb_app.c
@@ -135,8 +135,7 @@ static uint32_t gNB_app_register_x2(uint32_t gnb_id_start, uint32_t gnb_id_end)
 
 static void init_pdcp(void) {
   if (!NODE_IS_DU(RC.nrrrc[0]->node_type)) {
-    // pdcp_layer_init();
-    // pdcp_layer_init_for_CU();
+    pdcp_layer_init();
     uint32_t pdcp_initmask = (IS_SOFTMODEM_NOS1) ?
                              (PDCP_USE_NETLINK_BIT | LINK_ENB_PDCP_TO_IP_DRIVER_BIT) : LINK_ENB_PDCP_TO_GTPV1U_BIT;
     if (IS_SOFTMODEM_NOS1) {
@@ -226,7 +225,6 @@ void *gNB_app_task(void *args_p)
         LOG_E(F1AP, "Create task for F1AP CU failed\n");
         AssertFatal(1==0,"exiting");
      }
-    pdcp_layer_init_for_CU();
   }
 
   if (NODE_IS_DU(RC.nrrrc[0]->node_type)) {
diff --git a/openair2/GNB_APP/gnb_config.c b/openair2/GNB_APP/gnb_config.c
index a07261493b8..456d7cd6de5 100644
--- a/openair2/GNB_APP/gnb_config.c
+++ b/openair2/GNB_APP/gnb_config.c
@@ -2086,7 +2086,7 @@ void nr_read_config_and_init(void) {
   }
 
   if (NODE_IS_CU(RC.nrrrc[0]->node_type)) {
-    pdcp_layer_init_for_CU();
+    pdcp_layer_init();
 //    nr_DRB_preconfiguration(0x1234);
     rrc_init_nr_global_param();
   }
diff --git a/openair2/LAYER2/nr_pdcp/nr_pdcp.h b/openair2/LAYER2/nr_pdcp/nr_pdcp.h
index a5f182c822a..94939a04217 100644
--- a/openair2/LAYER2/nr_pdcp/nr_pdcp.h
+++ b/openair2/LAYER2/nr_pdcp/nr_pdcp.h
@@ -24,7 +24,6 @@
 #ifndef _NR_PDCP_H_
 #define _NR_PDCP_H_
 
-void pdcp_layer_init_for_CU(void);
 void nr_pdcp_layer_init_ue(void);
 void nr_DRB_preconfiguration(uint16_t crnti);
 
diff --git a/openair2/LAYER2/nr_pdcp/nr_pdcp_oai_api.c b/openair2/LAYER2/nr_pdcp/nr_pdcp_oai_api.c
index 7853a4b2bd8..8278a494bef 100644
--- a/openair2/LAYER2/nr_pdcp/nr_pdcp_oai_api.c
+++ b/openair2/LAYER2/nr_pdcp/nr_pdcp_oai_api.c
@@ -369,25 +369,12 @@ void pdcp_layer_init(void)
   if (pthread_mutex_unlock(&m) != 0) abort();
 
   nr_pdcp_ue_manager = new_nr_pdcp_ue_manager(1);
-  init_nr_rlc_data_req_queue();
 
-  nr_pdcp_init_timer_thread(nr_pdcp_ue_manager);
-}
-
-void pdcp_layer_init_for_CU(void)
-{
-  /* hack: be sure to initialize only once */
-  static pthread_mutex_t m = PTHREAD_MUTEX_INITIALIZER;
-  static int initialized = 0;
-  if (pthread_mutex_lock(&m) != 0) abort();
-  if (initialized) {
-    if (pthread_mutex_unlock(&m) != 0) abort();
-    return;
+  if ((RC.nrrrc == NULL) || (!NODE_IS_CU(RC.nrrrc[0]->node_type))) {
+    init_nr_rlc_data_req_queue();
   }
-  initialized = 1;
-  if (pthread_mutex_unlock(&m) != 0) abort();
 
-  nr_pdcp_ue_manager = new_nr_pdcp_ue_manager(1);
+  nr_pdcp_init_timer_thread(nr_pdcp_ue_manager);
 }
 
 #include "nfapi/oai_integration/vendor_ext.h"
-- 
GitLab