@@ -109,6 +109,8 @@ static void configure_cli11_log_args(CLI::App& app, log_appconfig& log_params)
109109 " Set to true to dump the IQ symbols from all the PRACH ports. Only works if "
110110 " \" phy_rx_symbols_filename\" is set." )
111111 ->capture_default_str ();
112+ app.add_option (" --f1ap_json_enabled" , log_params.f1ap_json_enabled , " Enable JSON logging of F1AP PDUs" )
113+ ->always_capture_default ();
112114 app.add_option (" --tracing_filename" , log_params.tracing_filename , " Set to a valid file path to enable tracing" )
113115 ->always_capture_default ();
114116
@@ -292,20 +294,19 @@ static void configure_cli11_ncell_args(CLI::App& app, cu_cp_neighbor_cell_appcon
292294static void configure_cli11_cells_args (CLI::App& app, cu_cp_cell_appconfig_item& config)
293295{
294296 app.add_option (" --nr_cell_id" , config.nr_cell_id , " Cell id to be configured" );
295- app.add_option (" --rat" , config.rat , " RAT of this neighbor cell" )->capture_default_str ();
296297 app.add_option (" --periodic_report_cfg_id" ,
297298 config.periodic_report_cfg_id ,
298299 " Periodical report configuration for the serving cell" )
299300 ->check (CLI::Range (1 , 64 ));
300- ;
301301 add_auto_enum_option (app, " --band" , config.band , " NR frequency band" );
302-
303- app.add_option (" --gnb_id" , config.gnb_id , " gNodeB identifier" );
302+ app.add_option (" --gnb_id_bit_length" , config.gnb_id_bit_length , " gNodeB identifier bit length" )
303+ ->check (CLI::Range (22 , 32 ));
304+ app.add_option (" --pci" , config.pci , " Physical Cell Id" )->check (CLI::Range (0 , 1007 ));
304305 app.add_option (" --ssb_arfcn" , config.ssb_arfcn , " SSB ARFCN" );
305306 app.add_option (" --ssb_scs" , config.ssb_scs , " SSB subcarrier spacing" )->check (CLI::IsMember ({15 , 30 , 60 , 120 , 240 }));
306- app.add_option (" --ssb_period" , config.ssb_period , " SSB period in ms" );
307+ app.add_option (" --ssb_period" , config.ssb_period , " SSB period in ms" )-> check ( CLI::IsMember ({ 5 , 10 , 20 , 40 , 80 , 160 })) ;
307308 app.add_option (" --ssb_offset" , config.ssb_offset , " SSB offset" );
308- app.add_option (" --ssb_duration" , config.ssb_duration , " SSB duration" );
309+ app.add_option (" --ssb_duration" , config.ssb_duration , " SSB duration" )-> check ( CLI::IsMember ({ 1 , 2 , 3 , 4 , 5 })) ;
309310
310311 // report configuration parameters.
311312 app.add_option_function <std::vector<std::string>>(
@@ -331,14 +332,24 @@ static void configure_cli11_report_args(CLI::App& app, cu_cp_report_appconfig& r
331332 ->check (CLI::Range (1 , 64 ));
332333 app.add_option (" --report_type" , report_params.report_type , " Type of the report configuration" )
333334 ->check (CLI::IsMember ({" periodical" , " event_triggered" }));
334- app.add_option (" --report_interval_ms" , report_params.report_interval_ms , " Report interval in ms" );
335- app.add_option (" --a3_report_type" , report_params.a3_report_type , " A3 report type" );
336- app.add_option (" --a3_offset_db" , report_params.a3_offset_db , " A3 offset in dB used for measurement report trigger" );
335+ app.add_option (" --report_interval_ms" , report_params.report_interval_ms , " Report interval in ms" )
336+ ->check (
337+ CLI::IsMember ({120 , 240 , 480 , 640 , 1024 , 2048 , 5120 , 10240 , 20480 , 40960 , 60000 , 360000 , 720000 , 1800000 }));
338+ app.add_option (" --a3_report_type" , report_params.a3_report_type , " A3 report type" )
339+ ->check (CLI::IsMember ({" rsrp" , " rsrq" , " sinr" }));
340+ app.add_option (" --a3_offset_db" ,
341+ report_params.a3_offset_db ,
342+ " A3 offset in dB used for measurement report trigger. Note the actual value is field value * 0.5 dB" )
343+ ->check (CLI::Range (-30 , 30 ));
337344 app.add_option (
338- " --a3_hysteresis_db" , report_params.a3_hysteresis_db , " A3 hysteresis in dB used for measurement report trigger" );
345+ " --a3_hysteresis_db" ,
346+ report_params.a3_hysteresis_db ,
347+ " A3 hysteresis in dB used for measurement report trigger. Note the actual value is field value * 0.5 dB" )
348+ ->check (CLI::Range (0 , 30 ));
339349 app.add_option (" --a3_time_to_trigger_ms" ,
340350 report_params.a3_time_to_trigger_ms ,
341- " Time in ms during which A3 condition must be met before measurement report trigger" );
351+ " Time in ms during which A3 condition must be met before measurement report trigger" )
352+ ->check (CLI::IsMember ({0 , 40 , 64 , 80 , 100 , 128 , 160 , 256 , 320 , 480 , 512 , 640 , 1024 , 1280 , 2560 , 5120 }));
342353}
343354
344355static void configure_cli11_mobility_args (CLI::App& app, mobility_appconfig& config)
@@ -427,6 +438,13 @@ static void configure_cli11_security_args(CLI::App& app, security_appconfig& con
427438 ->capture_default_str ();
428439}
429440
441+ static void configure_cli11_f1ap_args (CLI::App& app, f1ap_cu_appconfig& f1ap_params)
442+ {
443+ app.add_option (
444+ " --ue_context_setup_timeout" , f1ap_params.ue_context_setup_timeout , " UE context setup timeout in milliseconds" )
445+ ->capture_default_str ();
446+ }
447+
430448static void configure_cli11_cu_cp_args (CLI::App& app, cu_cp_appconfig& cu_cp_params)
431449{
432450 app.add_option (
@@ -453,6 +471,9 @@ static void configure_cli11_cu_cp_args(CLI::App& app, cu_cp_appconfig& cu_cp_par
453471
454472 CLI::App* security_subcmd = app.add_subcommand (" security" , " Security configuration" );
455473 configure_cli11_security_args (*security_subcmd, cu_cp_params.security_config );
474+
475+ CLI::App* f1ap_subcmd = app.add_subcommand (" f1ap" , " F1AP configuration" );
476+ configure_cli11_f1ap_args (*f1ap_subcmd, cu_cp_params.f1ap_config );
456477}
457478
458479static void configure_cli11_cu_up_args (CLI::App& app, cu_up_appconfig& cu_up_params)
@@ -2433,8 +2454,8 @@ static void configure_cli11_fapi_args(CLI::App& app, fapi_appconfig& config)
24332454void srsran::configure_cli11_with_gnb_appconfig_schema (CLI::App& app, gnb_parsed_appconfig& gnb_parsed_cfg)
24342455{
24352456 gnb_appconfig& gnb_cfg = gnb_parsed_cfg.config ;
2436- app.add_option (" --gnb_id" , gnb_cfg.gnb_id , " gNodeB identifier" )->capture_default_str ();
2437- app.add_option (" --gnb_id_bit_length" , gnb_cfg.gnb_id_bit_length , " gNodeB identifier length in bits" )
2457+ app.add_option (" --gnb_id" , gnb_cfg.gnb_id . id , " gNodeB identifier" )->capture_default_str ();
2458+ app.add_option (" --gnb_id_bit_length" , gnb_cfg.gnb_id . bit_length , " gNodeB identifier length in bits" )
24382459 ->capture_default_str ()
24392460 ->check (CLI::Range (22 , 32 ));
24402461 app.add_option (" --ran_node_name" , gnb_cfg.ran_node_name , " RAN node name" )->capture_default_str ();
0 commit comments