@@ -64,29 +64,58 @@ static void configure_cli11_metrics_args(CLI::App& app, cu_up_unit_metrics_confi
6464 ->capture_default_str ();
6565}
6666
67- static void configure_cli11_amf_args (CLI::App& app, cu_up_unit_upf_config& amf_params )
67+ static void configure_cli11_upf_args (CLI::App& app, cu_up_unit_upf_config& upf_params )
6868{
6969 add_option (app,
7070 " --bind_addr" ,
71- amf_params .bind_addr ,
71+ upf_params .bind_addr ,
7272 " Default local IP address interfaces bind to, unless a specific bind address is specified" )
7373 ->check (CLI::ValidIPV4);
74- add_option (app, " --n3_bind_addr" , amf_params .n3_bind_addr , " Local IP address to bind for N3 interface" )
74+ add_option (app, " --n3_bind_addr" , upf_params .n3_bind_addr , " Local IP address to bind for N3 interface" )
7575 ->check (CLI::ValidIPV4);
76- add_option (app, " --n3_bind_interface" , amf_params .n3_bind_interface , " Network device to bind for N3 interface" )
76+ add_option (app, " --n3_bind_interface" , upf_params .n3_bind_interface , " Network device to bind for N3 interface" )
7777 ->capture_default_str ();
7878 add_option (app,
7979 " --n3_ext_addr" ,
80- amf_params .n3_ext_addr ,
80+ upf_params .n3_ext_addr ,
8181 " External IP address that is advertised to receive GTP-U packets from UPF via N3 interface" )
8282 ->check (CLI::ValidIPV4);
83- add_option (app, " --udp_max_rx_msgs" , amf_params.udp_rx_max_msgs , " Maximum amount of messages RX in a single syscall" );
84- add_option (app, " --no_core" , amf_params.no_core , " Allow gNB to run without a core" );
83+ add_option (app, " --udp_max_rx_msgs" , upf_params.udp_rx_max_msgs , " Maximum amount of messages RX in a single syscall" );
84+ add_option (app, " --no_core" , upf_params.no_core , " Allow gNB to run without a core" );
85+ }
86+
87+ static void configure_cli11_rlc_am_args (CLI::App& app, uint32_t & queue_size)
88+ {
89+ CLI::App* tx_subcmd = app.add_subcommand (" tx" , " AM TX parameters" );
90+ add_option (*tx_subcmd, " --queue-size" , queue_size, " RLC AM TX SDU queue size" )->capture_default_str ();
91+ }
92+
93+ static void configure_cli11_rlc_um_args (CLI::App& app, uint32_t & queue_size)
94+ {
95+ CLI::App* rlc_tx_um_subcmd = app.add_subcommand (" tx" , " UM TX parameters" );
96+ rlc_tx_um_subcmd->add_option (" --queue-size" , queue_size, " RLC UM TX SDU queue size" )->capture_default_str ();
97+ }
98+
99+ static void configure_cli11_rlc_args (CLI::App& app, cu_up_unit_qos_config& qos_params)
100+ {
101+ add_option (app, " --mode" , qos_params.mode , " RLC mode" )->capture_default_str ();
102+
103+ // UM section.
104+ CLI::App* rlc_um_subcmd = app.add_subcommand (" um-bidir" , " UM parameters" );
105+ configure_cli11_rlc_um_args (*rlc_um_subcmd, qos_params.rlc_sdu_queue );
106+
107+ // AM section.
108+ CLI::App* rlc_am_subcmd = app.add_subcommand (" am" , " AM parameters" );
109+ configure_cli11_rlc_am_args (*rlc_am_subcmd, qos_params.rlc_sdu_queue );
85110}
86111
87112static void configure_cli11_qos_args (CLI::App& app, cu_up_unit_qos_config& qos_params)
88113{
89114 add_option (app, " --five_qi" , qos_params.five_qi , " 5QI" )->capture_default_str ()->check (CLI::Range (0 , 255 ));
115+
116+ // RLC section.
117+ CLI::App* rlc_subcmd = app.add_subcommand (" rlc" , " RLC parameters" );
118+ configure_cli11_rlc_args (*rlc_subcmd, qos_params);
90119}
91120
92121void srsran::configure_cli11_with_cu_up_unit_config_schema (CLI::App& app, cu_up_unit_config& unit_cfg)
@@ -105,7 +134,7 @@ void srsran::configure_cli11_with_cu_up_unit_config_schema(CLI::App& app, cu_up_
105134
106135 // AMF section.
107136 CLI::App* amf_subcmd = add_subcommand (app, " amf" , " AMF parameters" )->configurable ();
108- configure_cli11_amf_args (*amf_subcmd, unit_cfg.amf_cfg );
137+ configure_cli11_upf_args (*amf_subcmd, unit_cfg.upf_cfg );
109138
110139 // QoS section.
111140 auto qos_lambda = [&unit_cfg](const std::vector<std::string>& values) {
0 commit comments