From 359e1528dd2c0e20232aac7fad67b6ee14b0c71f Mon Sep 17 00:00:00 2001
From: Robert Schmidt <robert.schmidt@eurecom.fr>
Date: Thu, 14 Dec 2017 12:44:16 +0100
Subject: [PATCH] refactor: FlexRAN reads eNB configuration automatically

---
 openair2/ENB_APP/flexran_agent.c         | 5 +++--
 openair2/ENB_APP/flexran_agent.h         | 2 +-
 openair2/ENB_APP/flexran_agent_ran_api.c | 3 +--
 targets/RT/USER/lte-softmodem.c          | 2 +-
 4 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/openair2/ENB_APP/flexran_agent.c b/openair2/ENB_APP/flexran_agent.c
index 8af071527f..5a399541f5 100644
--- a/openair2/ENB_APP/flexran_agent.c
+++ b/openair2/ENB_APP/flexran_agent.c
@@ -187,9 +187,10 @@ pthread_t new_thread(void *(*f)(void *), void *b) {
 }
 
 int channel_container_init = 0;
-int flexran_agent_start(mid_t mod_id, const Enb_properties_array_t* enb_properties){
-  
+int flexran_agent_start(mid_t mod_id)
+{
   int channel_id;
+  Enb_properties_array_t *enb_properties = enb_config_get();
   
   flexran_set_enb_vars(mod_id, RAN_LTE_OAI);
   flexran_agent[mod_id].enb_id = mod_id;
diff --git a/openair2/ENB_APP/flexran_agent.h b/openair2/ENB_APP/flexran_agent.h
index f9205c071f..c1eb997e57 100644
--- a/openair2/ENB_APP/flexran_agent.h
+++ b/openair2/ENB_APP/flexran_agent.h
@@ -46,7 +46,7 @@
 
 
 /* Initiation and termination of the eNodeB agent */
-int flexran_agent_start(mid_t mod_id, const Enb_properties_array_t* enb_properties);
+int flexran_agent_start(mid_t mod_id);
 int flexran_agent_stop(mid_t mod_id);
 
 /* 
diff --git a/openair2/ENB_APP/flexran_agent_ran_api.c b/openair2/ENB_APP/flexran_agent_ran_api.c
index 3ecbf77e11..01c5c472bd 100644
--- a/openair2/ENB_APP/flexran_agent_ran_api.c
+++ b/openair2/ENB_APP/flexran_agent_ran_api.c
@@ -44,16 +44,15 @@ void flexran_set_enb_vars(mid_t mod_id, ran_name_t ran){
 
   switch (ran){
   case RAN_LTE_OAI :
+    enb_properties = enb_config_get();
     if(eNB_mac_inst == NULL){
       enb[mod_id] = NULL;
       enb_ue[mod_id] = NULL;
       enb_rrc[mod_id] = NULL;
-      enb_properties = NULL;
     }else{
       enb[mod_id] =  (void *)&eNB_mac_inst[mod_id];
       enb_ue[mod_id] = (void *)&eNB_mac_inst[mod_id].UE_list;
       enb_rrc[mod_id] = (void *)&eNB_rrc_inst[mod_id];
-      enb_properties = (Enb_properties_array_t *) enb_config_get();
     }
     break;
   default :
diff --git a/targets/RT/USER/lte-softmodem.c b/targets/RT/USER/lte-softmodem.c
index 04113ef3ae..cbcf26145b 100644
--- a/targets/RT/USER/lte-softmodem.c
+++ b/targets/RT/USER/lte-softmodem.c
@@ -1800,7 +1800,7 @@ int main( int argc, char **argv ) {
     pthread_cond_init(&cond_node_ctrl, NULL);
 
     for (i = 0; i < NB_eNB_INST; i++) {
-      flexran_agent_start(i, enb_config_get());
+      flexran_agent_start(i);
     }
 
     LOG_I(ENB_APP, " * Waiting for FlexRAN RTController command *\n");
-- 
GitLab