Skip to content

Commit 644f984

Browse files
herlesupreethcodebot
authored andcommitted
du_high_unit: use min. and max. PRB ratios in slice scheduling configuration
1 parent f048703 commit 644f984

File tree

4 files changed

+30
-18
lines changed

4 files changed

+30
-18
lines changed

apps/units/flexible_du/du_high/du_high_config.h

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -489,10 +489,10 @@ struct du_high_unit_prach_config {
489489

490490
/// Slice scheduling configuration for a cell.
491491
struct du_high_unit_cell_slice_sched_config {
492-
/// Sets the minimum number of PRBs to be allocated to this group.
493-
unsigned min_prb = 0;
494-
/// Sets the maximum number of PRBs to be allocated to this group.
495-
unsigned max_prb = MAX_NOF_PRBS;
492+
/// Sets the minimum percentage of PRBs to be allocated to this group.
493+
unsigned min_prb_policy_ratio = 0;
494+
/// Sets the maximum percentage of PRBs to be allocated to this group.
495+
unsigned max_prb_policy_ratio = 100;
496496
};
497497

498498
/// Slice configuration for a cell.

apps/units/flexible_du/du_high/du_high_config_cli11_schema.cpp

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1030,12 +1030,18 @@ static void configure_cli11_sib_args(CLI::App& app, du_high_unit_sib_config& sib
10301030
static void configure_cli11_slicing_scheduling_args(CLI::App& app,
10311031
du_high_unit_cell_slice_sched_config& slice_sched_params)
10321032
{
1033-
add_option(app, "--min_prb", slice_sched_params.min_prb, "Minimum number of PRBs to be allocated to the slice")
1033+
add_option(app,
1034+
"--min_prb_policy_ratio",
1035+
slice_sched_params.min_prb_policy_ratio,
1036+
"Minimum percentage of PRBs to be allocated to the slice")
10341037
->capture_default_str()
1035-
->check(CLI::Range(0U, (unsigned)MAX_NOF_PRBS));
1036-
add_option(app, "--max_prb", slice_sched_params.max_prb, "Maximum number of PRBs to be allocated to the slice")
1038+
->check(CLI::Range(0U, 100U));
1039+
add_option(app,
1040+
"--max_prb_policy_ratio",
1041+
slice_sched_params.max_prb_policy_ratio,
1042+
"Maximum percentage of PRBs to be allocated to the slice")
10371043
->capture_default_str()
1038-
->check(CLI::Range(1U, (unsigned)MAX_NOF_PRBS));
1044+
->check(CLI::Range(1U, 100U));
10391045
}
10401046

10411047
static void configure_cli11_slicing_args(CLI::App& app, du_high_unit_cell_slice_config& slice_params)

apps/units/flexible_du/du_high/du_high_config_translators.cpp

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -604,7 +604,8 @@ std::vector<du_cell_config> srsran::generate_du_cell_config(const du_high_unit_c
604604
}
605605

606606
// Slicing configuration.
607-
out_cell.rrm_policy_members = generate_du_slicing_rrm_policy_config(base_cell.plmn, base_cell.slice_cfg);
607+
std::vector<std::string> cell_plmns{base_cell.plmn};
608+
out_cell.rrm_policy_members = generate_du_slicing_rrm_policy_config(cell_plmns, base_cell.slice_cfg, nof_crbs);
608609

609610
logger.info(
610611
"SSB derived parameters for cell: {}, band: {}, dl_arfcn:{}, crbs: {} scs:{}, ssb_scs:{}:\n\t - SSB offset "
@@ -671,16 +672,19 @@ static mac_lc_config generate_mac_lc_config(const du_high_unit_mac_lc_config& in
671672
}
672673

673674
std::vector<slice_rrm_policy_config>
674-
srsran::generate_du_slicing_rrm_policy_config(const std::string& plmn,
675-
span<const du_high_unit_cell_slice_config> slice_cfg)
675+
srsran::generate_du_slicing_rrm_policy_config(span<const std::string> plmns,
676+
span<const du_high_unit_cell_slice_config> slice_cfg,
677+
unsigned nof_cell_crbs)
676678
{
677679
std::vector<slice_rrm_policy_config> rrm_policy_cfgs;
678-
for (const auto& cfg : slice_cfg) {
679-
rrm_policy_cfgs.emplace_back();
680-
rrm_policy_cfgs.back().rrc_member.s_nssai = cfg.s_nssai;
681-
rrm_policy_cfgs.back().rrc_member.plmn_id = plmn;
682-
rrm_policy_cfgs.back().min_prb = cfg.sched_cfg.min_prb;
683-
rrm_policy_cfgs.back().max_prb = cfg.sched_cfg.max_prb;
680+
for (const auto& plmn : plmns) {
681+
for (const auto& cfg : slice_cfg) {
682+
rrm_policy_cfgs.emplace_back();
683+
rrm_policy_cfgs.back().rrc_member.s_nssai = cfg.s_nssai;
684+
rrm_policy_cfgs.back().rrc_member.plmn_id = plmn;
685+
rrm_policy_cfgs.back().min_prb = (nof_cell_crbs * cfg.sched_cfg.min_prb_policy_ratio) / 100;
686+
rrm_policy_cfgs.back().max_prb = (nof_cell_crbs * cfg.sched_cfg.max_prb_policy_ratio) / 100;
687+
}
684688
}
685689
return rrm_policy_cfgs;
686690
}

apps/units/flexible_du/du_high/du_high_config_translators.h

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,8 @@ void ntn_augment_rlc_parameters(const ntn_config& ntn_cfg, std::map<srb_id_t, du
4848

4949
/// Converts and returns the given gnb application configuration to a DU slice RRM policy configuration list.
5050
std::vector<slice_rrm_policy_config>
51-
generate_du_slicing_rrm_policy_config(const std::string& plmn, span<const du_high_unit_cell_slice_config> slice_cfg);
51+
generate_du_slicing_rrm_policy_config(span<const std::string> plmns,
52+
span<const du_high_unit_cell_slice_config> slice_cfg,
53+
unsigned nof_cell_crbs);
5254

5355
} // namespace srsran

0 commit comments

Comments
 (0)