Skip to content

Commit 41d02a6

Browse files
committed
services: added buffer pool service, that will add the configuration, cli11 parsing and manager
1 parent 91e7ac1 commit 41d02a6

15 files changed

+142
-49
lines changed

apps/cu/cu.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@
5959

6060
#include "apps/services/application_message_banners.h"
6161
#include "apps/services/application_tracer.h"
62+
#include "apps/services/buffer_pool/buffer_pool_manager.h"
6263
#include "apps/services/stdin_command_dispatcher.h"
6364
#include "apps/units/cu_cp/cu_cp_unit_config_yaml_writer.h"
6465
#include "apps/units/cu_up/cu_up_unit_config_yaml_writer.h"
@@ -241,7 +242,7 @@ int main(int argc, char** argv)
241242
// TODO
242243

243244
// Setup size of byte buffer pool.
244-
init_byte_buffer_segment_pool(cu_cfg.buffer_pool_config.nof_segments, cu_cfg.buffer_pool_config.segment_size);
245+
app_services::buffer_pool_manager buffer_pool_service(cu_cfg.buffer_pool_config);
245246

246247
// Log CPU architecture.
247248
// TODO

apps/cu/cu_appconfig.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
#pragma once
1212

1313
#include "apps/gnb/gnb_appconfig.h"
14+
#include "apps/services/buffer_pool/buffer_pool_appconfig.h"
1415
#include "apps/services/logger/logger_appconfig.h"
1516
#include <string>
1617

apps/cu/cu_appconfig_cli11_schema.cpp

Lines changed: 4 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
*/
1010

1111
#include "cu_appconfig_cli11_schema.h"
12+
#include "apps/services/buffer_pool/buffer_pool_appconfig_cli11_schema.h"
1213
#include "apps/services/logger/logger_appconfig_cli11_schema.h"
1314
#include "cu_appconfig.h"
1415
#include "srsran/support/cli11_utils.h"
@@ -31,19 +32,14 @@ static void configure_cli11_nru_args(CLI::App& app, srs_cu::cu_nru_appconfig& nr
3132
add_option(app, "--udp_max_rx_msgs", nru_cfg.udp_rx_max_msgs, "Maximum amount of messages RX in a single syscall");
3233
}
3334

34-
static void configure_cli11_buffer_pool_args(CLI::App& app, buffer_pool_appconfig& config)
35-
{
36-
app.add_option("--nof_segments", config.nof_segments, "Number of segments allocated by the buffer pool")
37-
->capture_default_str();
38-
app.add_option("--segment_size", config.segment_size, "Size of each buffer pool segment in bytes")
39-
->capture_default_str();
40-
}
41-
4235
void srsran::configure_cli11_with_cu_appconfig_schema(CLI::App& app, cu_appconfig& cu_cfg)
4336
{
4437
// Logging section.
4538
configure_cli11_with_logger_appconfig_schema(app, cu_cfg.log_cfg);
4639

40+
// Buffer pool section.
41+
configure_cli11_with_buffer_pool_appconfig_schema(app, cu_cfg.buffer_pool_config);
42+
4743
// F1AP section.
4844
CLI::App* cu_cp_subcmd = add_subcommand(app, "cu_cp", "CU-UP parameters")->configurable();
4945
CLI::App* f1ap_subcmd = add_subcommand(*cu_cp_subcmd, "f1ap", "F1AP parameters")->configurable();
@@ -53,8 +49,4 @@ void srsran::configure_cli11_with_cu_appconfig_schema(CLI::App& app, cu_appconfi
5349
CLI::App* cu_up_subcmd = add_subcommand(app, "cu_up", "CU-UP parameters")->configurable();
5450
CLI::App* nru_subcmd = add_subcommand(*cu_up_subcmd, "nru", "NR-U parameters")->configurable();
5551
configure_cli11_nru_args(*nru_subcmd, cu_cfg.nru_cfg);
56-
57-
// Buffer pool section.
58-
CLI::App* buffer_pool_subcmd = app.add_subcommand("buffer_pool", "Buffer pool configuration")->configurable();
59-
configure_cli11_buffer_pool_args(*buffer_pool_subcmd, cu_cfg.buffer_pool_config);
6052
}

apps/du/du.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@
4949

5050
#include "apps/services/application_message_banners.h"
5151
#include "apps/services/application_tracer.h"
52+
#include "apps/services/buffer_pool/buffer_pool_manager.h"
5253
#include "apps/services/core_isolation_manager.h"
5354
#include "apps/services/metrics_plotter_json.h"
5455
#include "apps/services/metrics_plotter_stdout.h"
@@ -228,7 +229,7 @@ int main(int argc, char** argv)
228229
#endif
229230

230231
// Setup size of byte buffer pool.
231-
init_byte_buffer_segment_pool(du_cfg.buffer_pool_config.nof_segments, du_cfg.buffer_pool_config.segment_size);
232+
app_services::buffer_pool_manager buffer_pool_service(du_cfg.buffer_pool_config);
232233

233234
// Log CPU architecture.
234235
cpu_architecture_info::get().print_cpu_info(du_logger);

apps/du/du_appconfig.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,9 @@
1111
#pragma once
1212

1313
#include "../gnb/gnb_appconfig.h" // TODO: Remove
14+
#include "apps/services/buffer_pool/buffer_pool_appconfig.h"
1415
#include "apps/services/logger/logger_appconfig.h"
1516
#include "apps/services/os_sched_affinity_manager.h"
16-
#include "srsran/adt/byte_buffer.h"
1717
#include "srsran/support/executors/unique_thread.h"
1818
#include <optional>
1919

apps/du/du_appconfig_cli11_schema.cpp

Lines changed: 5 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,10 @@
99
*/
1010

1111
#include "du_appconfig_cli11_schema.h"
12+
#include "apps/services/buffer_pool/buffer_pool_appconfig_cli11_schema.h"
1213
#include "apps/services/logger/logger_appconfig_cli11_schema.h"
1314
#include "du_appconfig.h"
15+
#include "srsran/adt/interval.h"
1416
#include "srsran/support/cli11_utils.h"
1517

1618
using namespace srsran;
@@ -67,14 +69,6 @@ static void configure_cli11_e2_args(CLI::App& app, e2_appconfig& e2_params)
6769
add_option(app, "--e2sm_rc_enabled", e2_params.e2sm_rc_enabled, "Enable RC service module")->capture_default_str();
6870
}
6971

70-
static void configure_cli11_buffer_pool_args(CLI::App& app, buffer_pool_appconfig& config)
71-
{
72-
app.add_option("--nof_segments", config.nof_segments, "Number of segments allocated by the buffer pool")
73-
->capture_default_str();
74-
app.add_option("--segment_size", config.segment_size, "Size of each buffer pool segment in bytes")
75-
->capture_default_str();
76-
}
77-
7872
static error_type<std::string> is_valid_cpu_index(unsigned cpu_idx)
7973
{
8074
std::string error_message = fmt::format("Invalid CPU core selected '{}'. Valid CPU ids: {}",
@@ -256,6 +250,9 @@ void srsran::configure_cli11_with_du_appconfig_schema(CLI::App& app, du_appconfi
256250
// Loggers section.
257251
configure_cli11_with_logger_appconfig_schema(app, du_cfg.log_cfg);
258252

253+
// Buffer pool section.
254+
configure_cli11_with_buffer_pool_appconfig_schema(app, du_cfg.buffer_pool_config);
255+
259256
// F1-C section.
260257
CLI::App* f1ap_subcmd = app.add_subcommand("f1ap", "F1AP interface configuration")->configurable();
261258
configure_cli11_f1ap_args(*f1ap_subcmd, du_cfg.f1ap_cfg);
@@ -272,10 +269,6 @@ void srsran::configure_cli11_with_du_appconfig_schema(CLI::App& app, du_appconfi
272269
CLI::App* e2_subcmd = add_subcommand(app, "e2", "E2 parameters")->configurable();
273270
configure_cli11_e2_args(*e2_subcmd, du_cfg.e2_cfg);
274271

275-
// Buffer pool section.
276-
CLI::App* buffer_pool_subcmd = app.add_subcommand("buffer_pool", "Buffer pool configuration")->configurable();
277-
configure_cli11_buffer_pool_args(*buffer_pool_subcmd, du_cfg.buffer_pool_config);
278-
279272
// Expert section.
280273
CLI::App* expert_subcmd = app.add_subcommand("expert_execution", "Expert execution configuration")->configurable();
281274
configure_cli11_expert_execution_args(*expert_subcmd, du_cfg.expert_execution_cfg);

apps/gnb/gnb.cpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,7 @@
6060
#include <atomic>
6161

6262
#include "apps/services/application_message_banners.h"
63+
#include "apps/services/buffer_pool/buffer_pool_manager.h"
6364
#include "apps/services/core_isolation_manager.h"
6465
#include "apps/services/metrics_plotter_json.h"
6566
#include "apps/services/metrics_plotter_stdout.h"
@@ -283,8 +284,8 @@ int main(int argc, char** argv)
283284
}
284285
#endif
285286

286-
// Setup size of byte buffer pool.
287-
init_byte_buffer_segment_pool(gnb_cfg.buffer_pool_config.nof_segments, gnb_cfg.buffer_pool_config.segment_size);
287+
// Buffer pool service.
288+
app_services::buffer_pool_manager buffer_pool_service(gnb_cfg.buffer_pool_config);
288289

289290
// Log CPU architecture.
290291
cpu_architecture_info::get().print_cpu_info(gnb_logger);

apps/gnb/gnb_appconfig.h

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,9 @@
1010

1111
#pragma once
1212

13+
#include "apps/services/buffer_pool/buffer_pool_appconfig.h"
1314
#include "apps/services/logger/logger_appconfig.h"
1415
#include "apps/services/os_sched_affinity_manager.h"
15-
#include "srsran/adt/byte_buffer.h"
16-
#include "srsran/ran/direct_current_offset.h"
1716
#include "srsran/ran/gnb_id.h"
1817
#include "srsran/support/executors/unique_thread.h"
1918
#include <string>
@@ -54,11 +53,6 @@ struct metrics_appconfig {
5453
unsigned stdout_metrics_period = 1000; // Statistics report period in milliseconds
5554
};
5655

57-
struct buffer_pool_appconfig {
58-
std::size_t nof_segments = 1048576;
59-
std::size_t segment_size = byte_buffer_segment_pool_default_segment_size();
60-
};
61-
6256
/// CPU affinities configuration for the gNB app.
6357
struct cpu_affinities_appconfig {
6458
/// CPUs isolation.

apps/gnb/gnb_appconfig_cli11_schema.cpp

Lines changed: 5 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,10 @@
99
*/
1010

1111
#include "gnb_appconfig_cli11_schema.h"
12+
#include "apps/services/buffer_pool/buffer_pool_appconfig_cli11_schema.h"
1213
#include "apps/services/logger/logger_appconfig_cli11_schema.h"
1314
#include "gnb_appconfig.h"
15+
#include "srsran/adt/interval.h"
1416
#include "srsran/support/cli11_utils.h"
1517
#include "srsran/support/error_handling.h"
1618
#include "CLI/CLI11.hpp"
@@ -72,14 +74,6 @@ static void configure_cli11_e2_args(CLI::App& app, e2_appconfig& e2_params)
7274
add_option(app, "--e2sm_rc_enabled", e2_params.e2sm_rc_enabled, "Enable RC service module")->capture_default_str();
7375
}
7476

75-
static void configure_cli11_buffer_pool_args(CLI::App& app, buffer_pool_appconfig& config)
76-
{
77-
app.add_option("--nof_segments", config.nof_segments, "Number of segments allocated by the buffer pool")
78-
->capture_default_str();
79-
app.add_option("--segment_size", config.segment_size, "Size of each buffer pool segment in bytes")
80-
->capture_default_str();
81-
}
82-
8377
static void configure_cli11_hal_args(CLI::App& app, std::optional<hal_appconfig>& config)
8478
{
8579
config.emplace();
@@ -262,6 +256,9 @@ void srsran::configure_cli11_with_gnb_appconfig_schema(CLI::App& app, gnb_appcon
262256
// Loggers section.
263257
configure_cli11_with_logger_appconfig_schema(app, gnb_cfg.log_cfg);
264258

259+
// Buffer pool section.
260+
configure_cli11_with_buffer_pool_appconfig_schema(app, gnb_cfg.buffer_pool_config);
261+
265262
// Metrics section.
266263
CLI::App* metrics_subcmd = app.add_subcommand("metrics", "Metrics configuration")->configurable();
267264
configure_cli11_metrics_args(*metrics_subcmd, gnb_cfg.metrics_cfg);
@@ -270,10 +267,6 @@ void srsran::configure_cli11_with_gnb_appconfig_schema(CLI::App& app, gnb_appcon
270267
CLI::App* e2_subcmd = add_subcommand(app, "e2", "E2 parameters")->configurable();
271268
configure_cli11_e2_args(*e2_subcmd, gnb_cfg.e2_cfg);
272269

273-
// Buffer pool section.
274-
CLI::App* buffer_pool_subcmd = app.add_subcommand("buffer_pool", "Buffer pool configuration")->configurable();
275-
configure_cli11_buffer_pool_args(*buffer_pool_subcmd, gnb_cfg.buffer_pool_config);
276-
277270
// Expert section.
278271
CLI::App* expert_subcmd = app.add_subcommand("expert_execution", "Expert execution configuration")->configurable();
279272
configure_cli11_expert_execution_args(*expert_subcmd, gnb_cfg.expert_execution_cfg);

apps/services/CMakeLists.txt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
# the distribution.
77
#
88

9+
add_subdirectory(buffer_pool)
910
add_subdirectory(logger)
1011

1112
set(SOURCES
@@ -20,4 +21,4 @@ set(SOURCES
2021

2122
add_library(srsran_app_services STATIC ${SOURCES})
2223
target_include_directories(srsran_app_services PRIVATE ${CMAKE_SOURCE_DIR})
23-
target_link_libraries(srsran_app_services srsran_logger_app_service)
24+
target_link_libraries(srsran_app_services srsran_logger_app_service srsran_buffer_pool_app_service)

0 commit comments

Comments
 (0)