Skip to content

Commit 7ebf2ef

Browse files
AlaiaLcodebot
authored andcommitted
app_unit: refactor of the OFH affinities section in the YAML configuration
1 parent 805acb9 commit 7ebf2ef

File tree

2 files changed

+12
-35
lines changed

2 files changed

+12
-35
lines changed

apps/units/flexible_o_du/split_7_2/helpers/ru_ofh_config_cli11_schema.cpp

Lines changed: 6 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -398,40 +398,27 @@ static void configure_cli11_cell_affinity_args(CLI::App& app, ru_ofh_unit_cpu_af
398398
"Policy used for assigning CPU cores to the Radio Unit tasks");
399399
}
400400

401-
static void configure_cli11_txrx_affinity_args(CLI::App& app, os_sched_affinity_bitmask& mask)
402-
{
403-
add_option_function<std::string>(
404-
app,
405-
"--ru_txrx_cpus",
406-
[&mask](const std::string& value) { parse_affinity_mask(mask, value, "txrx_cpus"); },
407-
"Number of CPUs used for the Radio Unit tasks");
408-
}
409-
410401
static void configure_cli11_expert_execution_args(CLI::App& app, ru_ofh_unit_expert_execution_config& config)
411402
{
412403
// Affinities section.
413404
CLI::App* affinities_subcmd = add_subcommand(app, "affinities", "gNB CPU affinities configuration")->configurable();
405+
CLI::App* ofh_subcmd =
406+
add_subcommand(*affinities_subcmd, "ofh", "Open Fronthaul CPU affinities configuration")->configurable();
414407
add_option_function<std::string>(
415-
*affinities_subcmd,
408+
*ofh_subcmd,
416409
"--ru_timing_cpu",
417410
[&config](const std::string& value) { parse_affinity_mask(config.ru_timing_cpu, value, "ru_timing_cpu"); },
418411
"CPU used for timing in the Radio Unit");
419412

420413
// RU txrx affinity section.
421414
add_option_cell(
422-
*affinities_subcmd,
423-
"--ofh",
415+
*ofh_subcmd,
416+
"--txrx_cpus",
424417
[&config](const std::vector<std::string>& values) {
425418
config.txrx_affinities.resize(values.size());
426419

427420
for (unsigned i = 0, e = values.size(); i != e; ++i) {
428-
CLI::App subapp("RU tx-rx thread CPU affinities",
429-
"RU tx-rx thread CPU affinities config #" + std::to_string(i));
430-
subapp.config_formatter(create_yaml_config_parser());
431-
subapp.allow_config_extras();
432-
configure_cli11_txrx_affinity_args(subapp, config.txrx_affinities[i]);
433-
std::istringstream ss(values[i]);
434-
subapp.parse_from_stream(ss);
421+
parse_affinity_mask(config.txrx_affinities[i], values[i], "txrx_cpus");
435422
}
436423
},
437424
"Sets the CPU affinities configuration for RU cells tx-rx threads. Number of entries specified defines the "

apps/units/flexible_o_du/split_7_2/helpers/ru_ofh_config_yaml_writer.cpp

Lines changed: 6 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -21,24 +21,14 @@ static void fill_ru_ofh_log_section(YAML::Node node, const ru_ofh_unit_logger_co
2121

2222
static void fill_ru_ofh_expert_execution_section(YAML::Node node, const ru_ofh_unit_expert_execution_config& config)
2323
{
24-
{
25-
YAML::Node affinities_node = node["affinities"];
26-
affinities_node["ru_timing_cpu"] = fmt::format("{:,}", span<const size_t>(config.ru_timing_cpu.get_cpu_ids()));
27-
}
24+
YAML::Node affinities_node = node["affinities"];
25+
YAML::Node ofh_node = affinities_node["ofh"];
26+
ofh_node["timing_cpu"] = fmt::format("{:,}", span<const size_t>(config.ru_timing_cpu.get_cpu_ids()));
2827

2928
if (config.txrx_affinities.size() > 0) {
30-
YAML::Node affinities_node = node["affinities"];
31-
YAML::Node ofh_node = affinities_node["ofh"];
32-
while (config.txrx_affinities.size() > ofh_node.size()) {
33-
ofh_node.push_back(YAML::Node());
34-
}
35-
36-
unsigned index = 0;
37-
for (auto subnode : ofh_node) {
38-
const auto& mask = config.txrx_affinities[index];
39-
40-
subnode["ru_txrx_cpus"] = fmt::format("{:,}", span<const size_t>(mask.get_cpu_ids()));
41-
++index;
29+
YAML::Node txrx_node = ofh_node["txrx_cpus"];
30+
for (const auto& affinity : config.txrx_affinities) {
31+
txrx_node.push_back(fmt::format("{:,}", span<const size_t>(affinity.get_cpu_ids())));
4232
}
4333
}
4434

0 commit comments

Comments
 (0)