Skip to content

Commit c88286a

Browse files
frankistcodebot
authored andcommitted
du: add srb config to du high configuration
1 parent 9d750c1 commit c88286a

File tree

9 files changed

+48
-9
lines changed

9 files changed

+48
-9
lines changed

include/srsran/du/du_qos_config.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@
1313
#include "srsran/f1u/du/f1u_config.h"
1414
#include "srsran/mac/mac_lc_config.h"
1515
#include "srsran/rlc/rlc_config.h"
16-
#include <cstdint>
1716

1817
namespace srsran {
1918

include/srsran/du/du_srb_config.h

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
/*
2+
*
3+
* Copyright 2021-2023 Software Radio Systems Limited
4+
*
5+
* By using this file, you agree to the terms and conditions set
6+
* forth in the LICENSE file which can be found at the top level of
7+
* the distribution.
8+
*
9+
*/
10+
11+
#pragma once
12+
13+
#include "srsran/mac/mac_lc_config.h"
14+
#include "srsran/rlc/rlc_config.h"
15+
16+
namespace srsran {
17+
18+
/// \brief SRB Configuration, i.e. associated RLC and MAC configuration for SRBs in the DU
19+
struct du_srb_config {
20+
rlc_config rlc;
21+
mac_lc_config mac;
22+
};
23+
24+
} // namespace srsran

include/srsran/du_high/du_high_configuration.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33

44
#include "srsran/du/du_cell_config.h"
55
#include "srsran/du/du_qos_config.h"
6+
#include "srsran/du/du_srb_config.h"
67
#include "srsran/du/du_test_config.h"
78
#include "srsran/du_high/du_high_executor_mapper.h"
89
#include "srsran/e2/e2.h"
@@ -42,6 +43,7 @@ struct du_high_configuration {
4243
uint64_t gnb_du_id;
4344
transport_layer_address du_bind_addr;
4445
std::vector<du_cell_config> cells;
46+
std::map<srb_id_t, du_srb_config> srbs;
4547
std::map<five_qi_t, du_qos_config> qos; // 5QI as key
4648
mac_expert_config mac_cfg;
4749
scheduler_expert_config sched_cfg;

include/srsran/du_manager/du_manager_params.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212

1313
#include "srsran/du/du_cell_config.h"
1414
#include "srsran/du/du_qos_config.h"
15+
#include "srsran/du/du_srb_config.h"
1516
#include "srsran/du/du_test_config.h"
1617
#include "srsran/du_high/du_high_executor_mapper.h"
1718
#include "srsran/f1ap/du/f1ap_du.h"
@@ -35,6 +36,7 @@ struct du_manager_params {
3536
uint8_t rrc_version;
3637
transport_layer_address du_bind_addr;
3738
std::vector<du_cell_config> cells;
39+
std::map<srb_id_t, du_srb_config> srbs;
3840
std::map<five_qi_t, du_qos_config> qos;
3941
};
4042
struct service_params {

lib/du_high/du_high_impl.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,7 @@ du_high_impl::du_high_impl(const du_high_configuration& config_) :
112112
cfg.exec_mapper->ue_mapper(),
113113
adapters->f1ap_paging_notifier);
114114
du_manager = create_du_manager(du_manager_params{
115-
{cfg.gnb_du_name, cfg.gnb_du_id, 1, cfg.du_bind_addr, cfg.cells, cfg.qos},
115+
{cfg.gnb_du_name, cfg.gnb_du_id, 1, cfg.du_bind_addr, cfg.cells, cfg.srbs, cfg.qos},
116116
{timers, cfg.exec_mapper->du_control_executor(), cfg.exec_mapper->ue_mapper(), cfg.exec_mapper->cell_mapper()},
117117
{*f1ap, *f1ap},
118118
{*config_.f1u_gw},

lib/du_manager/du_manager_impl.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ du_manager_impl::du_manager_impl(const du_manager_params& params_) :
2222
params(params_),
2323
logger(srslog::fetch_basic_logger("DU-MNG")),
2424
cell_mng(params),
25-
cell_res_alloc(params.ran.cells, params.ran.qos),
25+
cell_res_alloc(params.ran.cells, params.ran.srbs, params.ran.qos),
2626
ue_mng(params, cell_res_alloc),
2727
main_ctrl_loop(128)
2828
{

lib/du_manager/ran_resource_management/du_ran_resource_manager_impl.cpp

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -63,8 +63,10 @@ du_ue_resource_update_response du_ue_ran_resource_updater_impl::update(du_cell_i
6363
///////////////////////////
6464

6565
du_ran_resource_manager_impl::du_ran_resource_manager_impl(span<const du_cell_config> cell_cfg_list_,
66+
const std::map<srb_id_t, du_srb_config>& srbs_,
6667
const std::map<five_qi_t, du_qos_config>& qos_) :
6768
cell_cfg_list(cell_cfg_list_),
69+
srb_config(srbs_),
6870
qos_config(qos_),
6971
logger(srslog::fetch_basic_logger("DU-MNG")),
7072
pucch_res_mng(cell_cfg_list)
@@ -130,10 +132,16 @@ du_ran_resource_manager_impl::update_context(du_ue_index_t
130132
// >> New or Modified SRB.
131133
lcid_t lcid = srb_id_to_lcid(srb_id);
132134
ue_mcg.rlc_bearers.emplace_back();
133-
ue_mcg.rlc_bearers.back().lcid = lcid;
134-
ue_mcg.rlc_bearers.back().rlc_cfg = make_default_srb_rlc_config();
135-
ue_mcg.rlc_bearers.back().mac_cfg = make_default_srb_mac_lc_config(lcid);
136-
// TODO: Parameterize SRB config.
135+
ue_mcg.rlc_bearers.back().lcid = lcid;
136+
137+
auto srb_it = srb_config.find(srb_id);
138+
if (srb_it != srb_config.end()) {
139+
ue_mcg.rlc_bearers.back().rlc_cfg = srb_it->second.rlc;
140+
ue_mcg.rlc_bearers.back().mac_cfg = srb_it->second.mac;
141+
} else {
142+
ue_mcg.rlc_bearers.back().rlc_cfg = make_default_srb_rlc_config();
143+
ue_mcg.rlc_bearers.back().mac_cfg = make_default_srb_mac_lc_config(lcid);
144+
}
137145
}
138146
for (const f1ap_drb_to_setup& drb : upd_req.drbs_to_setup) {
139147
// >> New or Modified DRB.

lib/du_manager/ran_resource_management/du_ran_resource_manager_impl.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@ class du_ran_resource_manager_impl : public du_ran_resource_manager
4646
{
4747
public:
4848
du_ran_resource_manager_impl(span<const du_cell_config> cell_cfg_list_,
49+
const std::map<srb_id_t, du_srb_config>& srbs,
4950
const std::map<five_qi_t, du_qos_config>& qos);
5051
du_ran_resource_manager_impl(du_ran_resource_manager_impl&&) = delete;
5152
du_ran_resource_manager_impl(const du_ran_resource_manager_impl&) = delete;
@@ -76,6 +77,7 @@ class du_ran_resource_manager_impl : public du_ran_resource_manager
7677
void deallocate_cell_resources(du_ue_index_t ue_index, serv_cell_index_t serv_cell_index);
7778

7879
span<const du_cell_config> cell_cfg_list;
80+
const std::map<srb_id_t, du_srb_config>& srb_config;
7981
const std::map<five_qi_t, du_qos_config>& qos_config;
8082
srslog::basic_logger& logger;
8183

tests/unittests/du_manager/du_ran_resource_manager_test.cpp

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ class du_ran_resource_manager_tester : public ::testing::TestWithParam<params>
2929
cell_cfg_list({config_helpers::make_default_du_cell_config(params)}),
3030
qos_cfg_list(config_helpers::make_default_du_qos_config_list(1000)),
3131
default_ue_cell_cfg(config_helpers::create_default_initial_ue_serving_cell_config(params)),
32-
res_mng(std::make_unique<du_ran_resource_manager_impl>(cell_cfg_list, qos_cfg_list))
32+
res_mng(std::make_unique<du_ran_resource_manager_impl>(cell_cfg_list, srb_cfg_list, qos_cfg_list))
3333
{
3434
}
3535

@@ -105,6 +105,7 @@ class du_ran_resource_manager_tester : public ::testing::TestWithParam<params>
105105
}
106106

107107
std::vector<du_cell_config> cell_cfg_list;
108+
std::map<srb_id_t, du_srb_config> srb_cfg_list;
108109
std::map<five_qi_t, du_qos_config> qos_cfg_list;
109110
const serving_cell_config default_ue_cell_cfg;
110111
std::unique_ptr<du_ran_resource_manager> res_mng;
@@ -254,7 +255,7 @@ class du_ran_res_mng_multiple_cfg_tester : public ::testing::TestWithParam<pucch
254255
cell_cfg_list({make_custom_du_cell_config(GetParam())}),
255256
qos_cfg_list(config_helpers::make_default_du_qos_config_list(1000)),
256257
default_ue_cell_cfg(config_helpers::create_default_initial_ue_serving_cell_config()),
257-
res_mng(std::make_unique<du_ran_resource_manager_impl>(cell_cfg_list, qos_cfg_list))
258+
res_mng(std::make_unique<du_ran_resource_manager_impl>(cell_cfg_list, srb_cfg_list, qos_cfg_list))
258259
{
259260
srsran_assert(default_ue_cell_cfg.csi_meas_cfg.has_value() and
260261
not default_ue_cell_cfg.csi_meas_cfg.value().csi_report_cfg_list.empty() and
@@ -392,6 +393,7 @@ class du_ran_res_mng_multiple_cfg_tester : public ::testing::TestWithParam<pucch
392393
}
393394

394395
std::vector<du_cell_config> cell_cfg_list;
396+
std::map<srb_id_t, du_srb_config> srb_cfg_list;
395397
std::map<five_qi_t, du_qos_config> qos_cfg_list;
396398
const serving_cell_config default_ue_cell_cfg;
397399
srsran::csi_report_config::periodic_or_semi_persistent_report_on_pucch default_csi_pucch_res_cfg;

0 commit comments

Comments
 (0)