Skip to content

Commit 28812d3

Browse files
frankistcodebot
authored andcommitted
sched: make min pucch-pusch distance configurable via cli11
1 parent 5fd3328 commit 28812d3

File tree

4 files changed

+20
-2
lines changed

4 files changed

+20
-2
lines changed

apps/units/flexible_o_du/o_du_high/du_high/du_high_config.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,8 @@ struct du_high_unit_ul_common_config {
116116
unsigned max_pucchs_per_slot = 31U;
117117
/// Maximum number of PUSCH + PUCCH grants per slot.
118118
unsigned max_ul_grants_per_slot = 32U;
119+
/// Minimum distance in PRBs between PUCCH and UE-dedicated PUSCH grants.
120+
unsigned min_pucch_pusch_prb_distance = 1U;
119121
};
120122

121123
/// PDSCH application configuration.

apps/units/flexible_o_du/o_du_high/du_high/du_high_config_cli11_schema.cpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -717,6 +717,12 @@ static void configure_cli11_ul_common_args(CLI::App& app, du_high_unit_ul_common
717717
"Maximum number of UL grants that can be allocated per slot")
718718
->capture_default_str()
719719
->check(CLI::Range(1U, (unsigned)(MAX_PUSCH_PDUS_PER_SLOT + MAX_PUCCH_PDUS_PER_SLOT)));
720+
add_option(app,
721+
"--min_pucch_pusch_prb_distance",
722+
ul_common_params.min_pucch_pusch_prb_distance,
723+
"Minimum PRB distance between PUCCH and UE-dedicated PUSCH grants")
724+
->capture_default_str()
725+
->check(CLI::Range(0U, (unsigned)MAX_NOF_PRBS / 2U));
720726
}
721727

722728
static void configure_cli11_pusch_args(CLI::App& app, du_high_unit_pusch_config& pusch_params)

apps/units/flexible_o_du/o_du_high/du_high/du_high_config_translators.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1083,6 +1083,7 @@ static scheduler_expert_config generate_scheduler_expert_config(const du_high_un
10831083
// PUCCH and scheduler expert parameters.
10841084
out_cfg.ue.max_ul_grants_per_slot = cell.ul_common_cfg.max_ul_grants_per_slot;
10851085
out_cfg.ue.max_pucchs_per_slot = cell.ul_common_cfg.max_pucchs_per_slot;
1086+
out_cfg.ue.min_pucch_pusch_prb_distance = cell.ul_common_cfg.min_pucch_pusch_prb_distance;
10861087
out_cfg.ue.min_k1 = cell.pucch_cfg.min_k1;
10871088
const du_high_unit_pucch_config& pucch = cell.pucch_cfg;
10881089
out_cfg.ue.ul_power_ctrl.enable_pucch_cl_pw_control = pucch.enable_closed_loop_pw_control;

apps/units/flexible_o_du/o_du_high/du_high/du_high_config_validator.cpp

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -673,13 +673,22 @@ static bool validate_srs_cell_unit_config(const du_high_unit_srs_config& config,
673673
}
674674

675675
/// Validates the given PUCCH cell application configuration. Returns true on success, otherwise false.
676-
static bool validate_ul_common_unit_config(const du_high_unit_ul_common_config& config)
676+
static bool validate_ul_common_unit_config(const du_high_unit_ul_common_config& config, unsigned nof_crbs)
677677
{
678678
if (config.max_ul_grants_per_slot <= config.max_pucchs_per_slot) {
679679
fmt::print("The max number of UL grants per slot should be greater than the maximum number of PUCCH grants.\n");
680680
return false;
681681
}
682682

683+
if (config.min_pucch_pusch_prb_distance >= nof_crbs / 2) {
684+
fmt::print("The minimum distance between PUCCH and PUSCH PRBs ({}) should be less than half of the BWP size "
685+
"({}/2 = {}).\n",
686+
config.min_pucch_pusch_prb_distance,
687+
nof_crbs,
688+
nof_crbs / 2);
689+
return false;
690+
}
691+
683692
return true;
684693
}
685694

@@ -1098,7 +1107,7 @@ static bool validate_base_cell_unit_config(const du_high_unit_base_cell_config&
10981107
return false;
10991108
}
11001109

1101-
if (!validate_ul_common_unit_config(config.ul_common_cfg)) {
1110+
if (!validate_ul_common_unit_config(config.ul_common_cfg, nof_crbs)) {
11021111
return false;
11031112
}
11041113

0 commit comments

Comments
 (0)