Skip to content

Commit d62ca29

Browse files
frankistcodebot
authored andcommitted
app: make gnb-DU id configurable
1 parent ab9bc11 commit d62ca29

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

50 files changed

+128
-110
lines changed

apps/units/flexible_du/du_high/du_high_config.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
#include "srsran/ran/bs_channel_bandwidth.h"
1717
#include "srsran/ran/direct_current_offset.h"
1818
#include "srsran/ran/five_qi.h"
19+
#include "srsran/ran/gnb_du_id.h"
1920
#include "srsran/ran/gnb_id.h"
2021
#include "srsran/ran/lcid.h"
2122
#include "srsran/ran/ntn.h"
@@ -723,6 +724,8 @@ struct du_high_unit_config {
723724
gnb_id_t gnb_id = {411, 22};
724725
/// Node name.
725726
std::string ran_node_name = "srsgnb01";
727+
/// DU identifier.
728+
gnb_du_id_t gnb_du_id = gnb_du_id_t::min;
726729
/// PCAPs.
727730
du_high_unit_pcap_config pcaps;
728731
/// Metrics.

apps/units/flexible_du/du_high/du_high_config_cli11_schema.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1397,6 +1397,9 @@ void srsran::configure_cli11_with_du_high_config_schema(CLI::App& app, du_high_p
13971397
->capture_default_str()
13981398
->check(CLI::Range(22, 32));
13991399
add_option(app, "--ran_node_name", parsed_cfg.config.ran_node_name, "RAN node name")->capture_default_str();
1400+
add_option(app, "--gnb_du_id", parsed_cfg.config.gnb_du_id, "gNB-DU Id")
1401+
->capture_default_str()
1402+
->check(CLI::Range(static_cast<uint64_t>(0U), static_cast<uint64_t>(pow(2, 36) - 1)));
14001403

14011404
// Loggers section.
14021405
CLI::App* log_subcmd = add_subcommand(app, "log", "Logging configuration")->configurable();

apps/units/flexible_du/du_high/du_high_wrapper_config_helper.cpp

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ void srsran::configure_du_high_metrics(const du_high_unit_config& du_high_unit
6060

6161
void srsran::fill_du_high_wrapper_config(du_high_wrapper_config& out_cfg,
6262
const du_high_unit_config& du_high_unit_cfg,
63-
unsigned du_id,
63+
unsigned du_idx,
6464
du_high_executor_mapper& execution_mapper,
6565
srs_du::f1c_connection_client& f1c_client_handler,
6666
srs_du::f1u_du_gateway& f1u_gw,
@@ -85,19 +85,19 @@ void srsran::fill_du_high_wrapper_config(du_high_wrapper_config& out_cfg,
8585
du_hi_cfg.qos = generate_du_qos_config(du_high_unit_cfg);
8686
du_hi_cfg.mac_p = &mac_p;
8787
du_hi_cfg.rlc_p = &rlc_p;
88-
du_hi_cfg.gnb_du_id = du_id + 1;
88+
du_hi_cfg.gnb_du_id = (gnb_du_id_t)((unsigned)du_high_unit_cfg.gnb_du_id + du_idx);
8989
du_hi_cfg.gnb_du_name = fmt::format("srsdu{}", du_hi_cfg.gnb_du_id);
9090
du_hi_cfg.du_bind_addr = transport_layer_address::create_from_string(du_high_unit_cfg.f1u_bind_address);
9191
du_hi_cfg.mac_cfg = generate_mac_expert_config(du_high_unit_cfg);
9292
// Assign different initial C-RNTIs to different DUs.
93-
du_hi_cfg.mac_cfg.initial_crnti = to_rnti(0x4601 + (0x1000 * du_id));
94-
du_hi_cfg.sched_ue_metrics_notifier = metrics_hub.get_scheduler_ue_metrics_source("DU " + std::to_string(du_id));
93+
du_hi_cfg.mac_cfg.initial_crnti = to_rnti(0x4601 + (0x1000 * du_idx));
94+
du_hi_cfg.sched_ue_metrics_notifier = metrics_hub.get_scheduler_ue_metrics_source("DU " + std::to_string(du_idx));
9595
du_hi_cfg.sched_cfg = generate_scheduler_expert_config(du_high_unit_cfg);
9696

9797
// Connect RLC metrics to sinks, if required
9898
if (du_high_unit_cfg.metrics.rlc.json_enabled || du_high_unit_cfg.e2_cfg.enable_du_e2) {
9999
// This source aggregates the RLC metrics from all DRBs in a single DU.
100-
std::string source_name = "rlc_metric_aggr_du_" + std::to_string(du_id);
100+
std::string source_name = "rlc_metric_aggr_du_" + std::to_string(du_idx);
101101
auto rlc_source = std::make_unique<rlc_metrics_source>(source_name);
102102

103103
if (du_high_unit_cfg.metrics.rlc.json_enabled) {
@@ -111,8 +111,8 @@ void srsran::fill_du_high_wrapper_config(du_high_wrapper_config& out_cfg,
111111
// Connect E2 agent to RLC metric source.
112112
du_hi_cfg.e2_client = &e2_client_handler;
113113
du_hi_cfg.e2ap_config = generate_e2_config(du_high_unit_cfg);
114-
du_hi_cfg.e2_du_metric_iface = &(e2_metric_connectors.get_e2_du_metrics_interface(du_id));
115-
rlc_source->add_subscriber(e2_metric_connectors.get_e2_du_metric_notifier(du_id));
114+
du_hi_cfg.e2_du_metric_iface = &(e2_metric_connectors.get_e2_du_metrics_interface(du_idx));
115+
rlc_source->add_subscriber(e2_metric_connectors.get_e2_du_metric_notifier(du_idx));
116116
}
117117
// Pass RLC metric source to the DU high.
118118
metrics_hub.add_source(std::move(rlc_source));

include/srsran/du_high/du_high_configuration.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
#include "srsran/mac/mac_config.h"
1616
#include "srsran/pcap/dlt_pcap.h"
1717
#include "srsran/pcap/rlc_pcap.h"
18+
#include "srsran/ran/gnb_du_id.h"
1819
#include "srsran/rlc/rlc_metrics.h"
1920
#include "srsran/scheduler/config/scheduler_expert_config.h"
2021
#include "srsran/scheduler/scheduler_metrics.h"
@@ -40,7 +41,7 @@ struct du_high_configuration {
4041
e2_connection_client* e2_client = nullptr;
4142
e2_du_metrics_interface* e2_du_metric_iface = nullptr;
4243
std::string gnb_du_name;
43-
uint64_t gnb_du_id;
44+
gnb_du_id_t gnb_du_id;
4445
transport_layer_address du_bind_addr;
4546
std::vector<du_cell_config> cells;
4647
std::map<srb_id_t, du_srb_config> srbs;

include/srsran/du_manager/du_manager_params.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
#include "srsran/f1u/du/f1u_gateway.h"
2020
#include "srsran/mac/mac.h"
2121
#include "srsran/pcap/rlc_pcap.h"
22+
#include "srsran/ran/gnb_du_id.h"
2223
#include "srsran/rlc/rlc_metrics.h"
2324
#include "srsran/scheduler/config/scheduler_expert_config.h"
2425
#include <map>
@@ -32,7 +33,7 @@ namespace srs_du {
3233
struct du_manager_params {
3334
struct ran_params {
3435
std::string gnb_du_name;
35-
uint64_t gnb_du_id;
36+
gnb_du_id_t gnb_du_id;
3637
uint8_t rrc_version;
3738
transport_layer_address du_bind_addr;
3839
std::vector<du_cell_config> cells;

include/srsran/f1ap/du/f1ap_du_connection_manager.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
#include "srsran/adt/byte_buffer.h"
1414
#include "srsran/ran/carrier_configuration.h"
1515
#include "srsran/ran/duplex_mode.h"
16+
#include "srsran/ran/gnb_du_id.h"
1617
#include "srsran/ran/nr_cgi.h"
1718
#include "srsran/ran/pci.h"
1819
#include "srsran/support/async/async_task.h"
@@ -36,7 +37,7 @@ struct f1_cell_setup_params {
3637

3738
/// \brief Message that initiates a F1 Setup procedure.
3839
struct f1_setup_request_message {
39-
uint64_t gnb_du_id;
40+
gnb_du_id_t gnb_du_id;
4041
std::string gnb_du_name;
4142
uint8_t rrc_version;
4243
std::vector<f1_cell_setup_params> served_cells;

include/srsran/rlc/rlc_factory.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
#pragma once
1212

1313
#include "srsran/pcap/rlc_pcap.h"
14+
#include "srsran/ran/gnb_du_id.h"
1415
#include "srsran/rlc/rlc_config.h"
1516
#include "srsran/rlc/rlc_entity.h"
1617
#include "srsran/rlc/rlc_rx.h"
@@ -22,7 +23,7 @@
2223
namespace srsran {
2324

2425
struct rlc_entity_creation_message {
25-
uint32_t du_index;
26+
gnb_du_id_t gnb_du_id;
2627
du_ue_index_t ue_index;
2728
rb_id_t rb_id;
2829
rlc_config config;

lib/du_manager/converters/rlc_config_helpers.cpp

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,15 +15,15 @@ using namespace srs_du;
1515

1616
template <typename Bearer>
1717
static void fill_rlc_entity_creation_message_common(rlc_entity_creation_message& msg,
18-
uint32_t du_index,
18+
gnb_du_id_t du_id,
1919
du_ue_index_t ue_index,
2020
du_cell_index_t pcell_index,
2121
Bearer& bearer,
2222
const du_manager_params::service_params& du_services,
2323
rlc_tx_upper_layer_control_notifier& rlc_rlf_notifier,
2424
rlc_pcap& pcap_writer)
2525
{
26-
msg.du_index = du_index;
26+
msg.gnb_du_id = du_id;
2727
msg.ue_index = ue_index;
2828
msg.config = bearer.rlc_cfg;
2929
msg.rx_upper_dn = &bearer.connector.rlc_rx_sdu_notif;
@@ -38,7 +38,7 @@ static void fill_rlc_entity_creation_message_common(rlc_entity_creation_message&
3838

3939
// for SRBs
4040
rlc_entity_creation_message
41-
srsran::srs_du::make_rlc_entity_creation_message(uint32_t du_index,
41+
srsran::srs_du::make_rlc_entity_creation_message(gnb_du_id_t gnb_du_id,
4242
du_ue_index_t ue_index,
4343
du_cell_index_t pcell_index,
4444
du_ue_srb& bearer,
@@ -48,14 +48,14 @@ srsran::srs_du::make_rlc_entity_creation_message(uint32_t
4848
{
4949
rlc_entity_creation_message msg;
5050
fill_rlc_entity_creation_message_common(
51-
msg, du_index, ue_index, pcell_index, bearer, du_services, rlc_rlf_notifier, pcap_writer);
51+
msg, gnb_du_id, ue_index, pcell_index, bearer, du_services, rlc_rlf_notifier, pcap_writer);
5252
msg.rb_id = bearer.srb_id;
5353
return msg;
5454
}
5555

5656
// for DRBs
5757
rlc_entity_creation_message
58-
srsran::srs_du::make_rlc_entity_creation_message(uint32_t du_index,
58+
srsran::srs_du::make_rlc_entity_creation_message(gnb_du_id_t gnb_du_id,
5959
du_ue_index_t ue_index,
6060
du_cell_index_t pcell_index,
6161
du_ue_drb& bearer,
@@ -66,7 +66,7 @@ srsran::srs_du::make_rlc_entity_creation_message(uint32_t
6666
{
6767
rlc_entity_creation_message msg;
6868
fill_rlc_entity_creation_message_common(
69-
msg, du_index, ue_index, pcell_index, bearer, du_services, rlc_rlf_notifier, pcap_writer);
69+
msg, gnb_du_id, ue_index, pcell_index, bearer, du_services, rlc_rlf_notifier, pcap_writer);
7070
msg.rb_id = bearer.drb_id;
7171
msg.rlc_metrics_notif = rlc_metrics_notifier_;
7272
return msg;

lib/du_manager/converters/rlc_config_helpers.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ struct rlc_bearer_config {
3636
};
3737

3838
/// \brief Create configuration for RLC SRB entity.
39-
rlc_entity_creation_message make_rlc_entity_creation_message(uint32_t du_index,
39+
rlc_entity_creation_message make_rlc_entity_creation_message(gnb_du_id_t du_id,
4040
du_ue_index_t ue_index,
4141
du_cell_index_t pcell_index,
4242
du_ue_srb& bearer,
@@ -45,7 +45,7 @@ rlc_entity_creation_message make_rlc_entity_creation_message(uint32_t
4545
rlc_pcap& rlc_pcap);
4646

4747
/// \brief Create configuration for RLC DRB entity.
48-
rlc_entity_creation_message make_rlc_entity_creation_message(uint32_t du_index,
48+
rlc_entity_creation_message make_rlc_entity_creation_message(gnb_du_id_t du_id,
4949
du_ue_index_t ue_index,
5050
du_cell_index_t pcell_index,
5151
du_ue_drb& bearer,

lib/f1ap/du/procedures/f1ap_du_setup_procedure.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ void f1ap_du_setup_procedure::operator()(coro_context<async_task<f1_setup_respon
7070
void f1ap_du_setup_procedure::send_f1_setup_request()
7171
{
7272
// Save the gNB-DU-Id before the F1 Setup is completed for the purpose of logging.
73-
du_ctxt.du_id = int_to_gnb_du_id(request.gnb_du_id);
73+
du_ctxt.du_id = request.gnb_du_id;
7474

7575
f1ap_message msg = {};
7676
// set F1AP PDU contents
@@ -81,7 +81,7 @@ void f1ap_du_setup_procedure::send_f1_setup_request()
8181
setup_req->transaction_id = transaction.id();
8282

8383
// DU-global parameters.
84-
setup_req->gnb_du_id = request.gnb_du_id;
84+
setup_req->gnb_du_id = static_cast<uint64_t>(request.gnb_du_id);
8585
setup_req->gnb_du_name_present = not request.gnb_du_name.empty();
8686
if (setup_req->gnb_du_name_present) {
8787
setup_req->gnb_du_name.from_string(request.gnb_du_name);
@@ -208,7 +208,7 @@ f1_setup_response_message f1ap_du_setup_procedure::create_f1_setup_result()
208208
res.success = true;
209209

210210
// Update F1 DU Context (taking values from request).
211-
du_ctxt.du_id = int_to_gnb_du_id(request.gnb_du_id);
211+
du_ctxt.du_id = request.gnb_du_id;
212212
du_ctxt.gnb_du_name = request.gnb_du_name;
213213
du_ctxt.served_cells.resize(request.served_cells.size());
214214
for (unsigned i = 0; i != du_ctxt.served_cells.size(); ++i) {

0 commit comments

Comments
 (0)