From d12f55d2ed2c3b55d5dd140c130708fd5854a482 Mon Sep 17 00:00:00 2001
From: shahab SHARIATBAGHERI <shahab.shariat@eurecom.fr>
Date: Fri, 4 Aug 2017 16:22:57 +0200
Subject: [PATCH] add operating downlink frequency

---
 openair2/ENB_APP/MESSAGES/V2/config_messages.proto | 1 +
 openair2/ENB_APP/flexran_agent_common.c            | 4 ++++
 openair2/ENB_APP/flexran_agent_ran_api.c           | 8 ++++++++
 openair2/ENB_APP/flexran_agent_ran_api.h           | 5 ++++-
 4 files changed, 17 insertions(+), 1 deletion(-)

diff --git a/openair2/ENB_APP/MESSAGES/V2/config_messages.proto b/openair2/ENB_APP/MESSAGES/V2/config_messages.proto
index 441e193569..c21fee213b 100644
--- a/openair2/ENB_APP/MESSAGES/V2/config_messages.proto
+++ b/openair2/ENB_APP/MESSAGES/V2/config_messages.proto
@@ -38,6 +38,7 @@ message flex_cell_config {
 	optional uint32 srs_mac_up_pts = 32;		// Boolean value. See TS 36.211, section 5.5.3.2. TDD only
 	optional uint32 enable_64QAM = 33;		// One of the FLEQ_* enum values
 	optional uint32 carrier_index = 34;		// Carrier component index
+	optional uint32 op_dl_freq = 35;       // operating downlink frequency 
 }
 
 message flex_ue_config {
diff --git a/openair2/ENB_APP/flexran_agent_common.c b/openair2/ENB_APP/flexran_agent_common.c
index fe70a62ec8..4067145dfd 100644
--- a/openair2/ENB_APP/flexran_agent_common.c
+++ b/openair2/ENB_APP/flexran_agent_common.c
@@ -1013,6 +1013,10 @@ int flexran_agent_enb_config_reply(mid_t mod_id, const void *params, Protocol__F
       cell_conf[i]->srs_mac_up_pts = flexran_get_srs_MaxUpPts(enb_id,i);
       cell_conf[i]->has_srs_mac_up_pts = 1;
 
+
+      cell_conf[i]->op_dl_freq = flexran_agent_get_operating_dl_freq (0);
+      cell_conf[i]->has_op_dl_freq = 1;
+
       if (flexran_get_enable64QAM(enb_id,i) == 0) {
 	cell_conf[i]->enable_64qam = PROTOCOL__FLEX_QAM__FLEQ_MOD_16QAM;
       } else if(flexran_get_enable64QAM(enb_id,i) == 1) {
diff --git a/openair2/ENB_APP/flexran_agent_ran_api.c b/openair2/ENB_APP/flexran_agent_ran_api.c
index ae304d1e26..685a3bf57e 100644
--- a/openair2/ENB_APP/flexran_agent_ran_api.c
+++ b/openair2/ENB_APP/flexran_agent_ran_api.c
@@ -956,3 +956,11 @@ int flexran_get_antenna_ports(mid_t mod_id, int CC_id){
   return frame_parms->nb_antenna_ports_eNB;
 
 }
+
+
+float flexran_agent_get_operating_dl_freq (mid_t cc_id) {
+        const Enb_properties_array_t* enb_properties = enb_config_get();
+        return (enb_properties->properties[0]->downlink_frequency[cc_id] / 1000000);
+}
+
+
diff --git a/openair2/ENB_APP/flexran_agent_ran_api.h b/openair2/ENB_APP/flexran_agent_ran_api.h
index e80ed44ce9..ed2a2a1fd5 100644
--- a/openair2/ENB_APP/flexran_agent_ran_api.h
+++ b/openair2/ENB_APP/flexran_agent_ran_api.h
@@ -298,4 +298,7 @@ int flexran_get_ue_transmission_antenna(mid_t mod_id, mid_t ue_id);
 int flexran_get_lcg(mid_t ue_id, mid_t lc_id);
 
 /* Get direction of logical channel with id lc_id */
-int flexran_get_direction(mid_t ue_id, mid_t lc_id);
\ No newline at end of file
+int flexran_get_direction(mid_t ue_id, mid_t lc_id);
+
+/*Gety downlink frequency*/
+float flexran_agent_get_operating_dl_freq (mid_t cc_id);
\ No newline at end of file
-- 
GitLab