Skip to content

Commit d47883e

Browse files
carlo-galcodebot
authored andcommitted
gnb: enable setting SR period as a parameter
Signed-off-by: Carlo Galiotto <[email protected]>
1 parent d810b63 commit d47883e

File tree

3 files changed

+20
-1
lines changed

3 files changed

+20
-1
lines changed

apps/gnb/gnb_appconfig.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -207,6 +207,11 @@ struct pucch_appconfig {
207207
/// Number of PUCCH Format 1 cell resources for CSI.
208208
unsigned nof_cell_csi_resources = 1;
209209

210+
/// \brief \c SR period in milliseconds.
211+
/// Among all values given in \c periodicityAndOffset, part of \c \SchedulingRequestResourceConfig, TS 38.331,
212+
/// these are the only ones supported. Values: {1, 2, 4, 8, 10, 16, 20, 40, 80, 160, 320}.
213+
unsigned sr_period_msec = 20;
214+
210215
/// PUCCH F1 resource parameters.
211216
/// Number of symbols for PUCCH Format 1. Values {4, 14}.
212217
unsigned f1_nof_symbols = 14;

apps/gnb/gnb_appconfig_cli11_schema.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -551,6 +551,9 @@ static void configure_cli11_pucch_args(CLI::App& app, pucch_appconfig& pucch_par
551551

552552
return "";
553553
});
554+
app.add_option("--sr_period_ms", pucch_params.sr_period_msec, "SR period in msec")
555+
->capture_default_str()
556+
->check(CLI::IsMember({1, 2, 4, 8, 10, 16, 20, 40, 80, 160, 320}));
554557
app.add_option("--f1_nof_ue_res_harq",
555558
pucch_params.nof_ue_pucch_f1_res_harq,
556559
"Number of PUCCH F1 resources available per UE for HARQ")

apps/gnb/gnb_appconfig_translators.cpp

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -535,7 +535,7 @@ std::vector<du_cell_config> srsran::generate_du_cell_config(const gnb_appconfig&
535535
fill_csi_resources(out_cell.ue_ded_serv_cell_cfg, base_cell);
536536
}
537537

538-
// Parameters for PUCCH-Config.
538+
// Parameters for PUCCH-Config builder (these parameters will be used later on to generate the PUCCH resources).
539539
pucch_builder_params& du_pucch_cfg = out_cell.pucch_cfg;
540540
const pucch_appconfig& user_pucch_cfg = base_cell.pucch_cfg;
541541
du_pucch_cfg.nof_ue_pucch_f1_res_harq = user_pucch_cfg.nof_ue_pucch_f1_res_harq;
@@ -604,6 +604,17 @@ std::vector<du_cell_config> srsran::generate_du_cell_config(const gnb_appconfig&
604604
b_offsets.beta_offset_csi_p2_idx_1 = base_cell.pusch_cfg.b_offset_csi_p2_idx_1;
605605
b_offsets.beta_offset_csi_p2_idx_2 = base_cell.pusch_cfg.b_offset_csi_p2_idx_2;
606606

607+
// Parameters for PUCCH-Config.
608+
if (not out_cell.ue_ded_serv_cell_cfg.ul_config.value().init_ul_bwp.pucch_cfg.has_value()) {
609+
out_cell.ue_ded_serv_cell_cfg.ul_config.value().init_ul_bwp.pucch_cfg.emplace();
610+
}
611+
auto& sr_cng = out_cell.ue_ded_serv_cell_cfg.ul_config.value().init_ul_bwp.pucch_cfg.value().sr_res_list;
612+
if (sr_cng.empty()) {
613+
sr_cng.emplace_back(scheduling_request_resource_config{});
614+
}
615+
sr_cng.front().period = static_cast<sr_periodicity>(get_nof_slots_per_subframe(base_cell.common_scs) *
616+
base_cell.pucch_cfg.sr_period_msec);
617+
607618
// If any dependent parameter needs to be updated, this is the place.
608619
if (update_msg1_frequency_start) {
609620
rach_cfg.rach_cfg_generic.msg1_frequency_start = config_helpers::compute_prach_frequency_start(

0 commit comments

Comments
 (0)