Skip to content

Commit f7efcf2

Browse files
carlo-galcodebot
authored andcommitted
sched: enable pucch F0 in pucch res manager
Signed-off-by: Carlo Galiotto <[email protected]>
1 parent 6c89743 commit f7efcf2

File tree

4 files changed

+186
-178
lines changed

4 files changed

+186
-178
lines changed

lib/scheduler/pucch_scheduling/pucch_allocator_impl.cpp

Lines changed: 27 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -440,9 +440,9 @@ pucch_uci_bits pucch_allocator_impl::remove_ue_uci_from_pucch(cell_slot_resource
440440
// Release the resources used in the PUCCH resource manager first.
441441
if (grant_it->pucch_grants.harq_resource.has_value()) {
442442
if (grant_it->pucch_grants.harq_resource.value().harq_id.pucch_set_idx == pucch_res_set_idx::set_0) {
443-
resource_manager.release_harq_f1_resource(slot_alloc.slot, crnti, pucch_cfg);
443+
resource_manager.release_harq_set_0_resource(slot_alloc.slot, crnti, pucch_cfg);
444444
} else {
445-
resource_manager.release_harq_f2_resource(slot_alloc.slot, crnti, pucch_cfg);
445+
resource_manager.release_harq_set_1_resource(slot_alloc.slot, crnti, pucch_cfg);
446446
}
447447
}
448448
if (grant_it->pucch_grants.sr_resource.has_value()) {
@@ -1018,11 +1018,11 @@ pucch_allocator_impl::find_common_and_ded_harq_res_available(cell_slot_resource_
10181018

10191019
// Look for an available PUCCH dedicated resource with the same PUCCH resource indicator as the common's.
10201020
const pucch_resource* ded_resource =
1021-
resource_manager.reserve_f1_res_by_res_indicator(pucch_alloc.slot, rnti, d_pri, pucch_cfg);
1021+
resource_manager.reserve_set_0_res_by_res_indicator(pucch_alloc.slot, rnti, d_pri, pucch_cfg);
10221022
if (ded_resource == nullptr) {
10231023
continue;
10241024
}
1025-
resource_manager.set_new_resource_allocation(rnti, pucch_resource_usage::HARQ_F1);
1025+
resource_manager.set_new_resource_allocation(rnti, pucch_resource_usage::HARQ_SET_0);
10261026

10271027
// Add a current grant entry with the PUCCH resource indicator found above; this will force the function that
10281028
// multiplexes the resources to use the specific resource with the given PUCCH resource indicator (it could be
@@ -1077,7 +1077,7 @@ std::optional<unsigned> pucch_allocator_impl::allocate_harq_grant(cell_slot_reso
10771077
return std::nullopt;
10781078
}
10791079

1080-
const pucch_harq_resource_alloc_record pucch_harq_res_info = resource_manager.reserve_next_f1_harq_res_available(
1080+
const pucch_harq_resource_alloc_record pucch_harq_res_info = resource_manager.reserve_next_set_0_harq_res_available(
10811081
pucch_slot_alloc.slot, crnti, ue_cell_cfg.cfg_dedicated().ul_config.value().init_ul_bwp.pucch_cfg.value());
10821082
if (pucch_harq_res_info.pucch_res == nullptr) {
10831083
logger.debug("rnti={}: PUCCH HARQ-ACK allocation for slot={} skipped. Cause: PUCCH F1 ded. resource not available",
@@ -1281,19 +1281,19 @@ void pucch_allocator_impl::remove_unsed_pucch_res(slot_point s
12811281
(not grants_to_tx.harq_resource.has_value() or
12821282
existing_pucchs.pucch_grants.harq_resource->get_format() != grants_to_tx.harq_resource->get_format())) {
12831283
if (existing_pucchs.pucch_grants.harq_resource.value().harq_id.pucch_set_idx == pucch_res_set_idx::set_0) {
1284-
resource_manager.release_harq_f1_resource(
1284+
resource_manager.release_harq_set_0_resource(
12851285
sl_tx, existing_pucchs.rnti, ue_cell_cfg.cfg_dedicated().ul_config.value().init_ul_bwp.pucch_cfg.value());
12861286
} else {
1287-
resource_manager.release_harq_f2_resource(
1287+
resource_manager.release_harq_set_1_resource(
12881288
sl_tx, existing_pucchs.rnti, ue_cell_cfg.cfg_dedicated().ul_config.value().init_ul_bwp.pucch_cfg.value());
12891289
}
12901290
}
12911291

12921292
// This is a special case, in which the PUCCH from resource set 0 is first reserved, but later it is converted into a
12931293
// PUCCH from resource set 1 due to the multiplexing process.
1294-
if (resource_manager.is_resource_allocated(existing_pucchs.rnti, pucch_resource_usage::HARQ_F2) and
1295-
resource_manager.is_resource_allocated(existing_pucchs.rnti, pucch_resource_usage::HARQ_F1)) {
1296-
resource_manager.release_harq_f1_resource(
1294+
if (resource_manager.is_resource_allocated(existing_pucchs.rnti, pucch_resource_usage::HARQ_SET_1) and
1295+
resource_manager.is_resource_allocated(existing_pucchs.rnti, pucch_resource_usage::HARQ_SET_0)) {
1296+
resource_manager.release_harq_set_0_resource(
12971297
sl_tx, existing_pucchs.rnti, ue_cell_cfg.cfg_dedicated().ul_config.value().init_ul_bwp.pucch_cfg.value());
12981298
}
12991299
}
@@ -1367,12 +1367,12 @@ pucch_allocator_impl::get_pucch_res_pre_multiplexing(slot_point
13671367
ue_current_grants.pucch_grants.harq_resource.value().harq_id.pucch_set_idx == pucch_set_idx) {
13681368
const pucch_resource* pucch_res =
13691369
pucch_set_idx == pucch_res_set_idx::set_0
1370-
? resource_manager.reserve_f1_res_by_res_indicator(
1370+
? resource_manager.reserve_set_0_res_by_res_indicator(
13711371
sl_tx,
13721372
ue_current_grants.rnti,
13731373
ue_current_grants.pucch_grants.harq_resource.value().harq_id.pucch_res_ind,
13741374
pucch_cfg)
1375-
: resource_manager.reserve_f2_res_by_res_indicator(
1375+
: resource_manager.reserve_set_1_res_by_res_indicator(
13761376
sl_tx,
13771377
ue_current_grants.rnti,
13781378
ue_current_grants.pucch_grants.harq_resource.value().harq_id.pucch_res_ind,
@@ -1392,13 +1392,13 @@ pucch_allocator_impl::get_pucch_res_pre_multiplexing(slot_point
13921392
// Only copy the HARQ-ACK bits, as at this stage we only need to consider the UCI bits before multiplexing.
13931393
pucch_harq_resource_alloc_record harq_resource =
13941394
pucch_set_idx == pucch_res_set_idx::set_0
1395-
? resource_manager.reserve_next_f1_harq_res_available(sl_tx, ue_current_grants.rnti, pucch_cfg)
1396-
: resource_manager.reserve_next_f2_harq_res_available(sl_tx, ue_current_grants.rnti, pucch_cfg);
1395+
? resource_manager.reserve_next_set_0_harq_res_available(sl_tx, ue_current_grants.rnti, pucch_cfg)
1396+
: resource_manager.reserve_next_set_1_harq_res_available(sl_tx, ue_current_grants.rnti, pucch_cfg);
13971397
// Save the resources that have been generated; if at some point the allocation fails, we need to release them.
13981398
if (pucch_set_idx == pucch_res_set_idx::set_0) {
1399-
resource_manager.set_new_resource_allocation(ue_current_grants.rnti, pucch_resource_usage::HARQ_F1);
1399+
resource_manager.set_new_resource_allocation(ue_current_grants.rnti, pucch_resource_usage::HARQ_SET_0);
14001400
} else {
1401-
resource_manager.set_new_resource_allocation(ue_current_grants.rnti, pucch_resource_usage::HARQ_F2);
1401+
resource_manager.set_new_resource_allocation(ue_current_grants.rnti, pucch_resource_usage::HARQ_SET_1);
14021402
}
14031403
if (harq_resource.pucch_res == nullptr) {
14041404
return std::nullopt;
@@ -1672,9 +1672,9 @@ pucch_allocator_impl::merge_pucch_resources(span<const pucch_allocator_impl::puc
16721672
// PUCCH resource from set idx 0.
16731673
// NOTE: This sub-case is used by the PUCCH common and dedicated allocator.
16741674
else if (preserve_res_indicator) {
1675-
const pucch_resource* pucch_res = resource_manager.reserve_f2_res_by_res_indicator(
1675+
const pucch_resource* pucch_res = resource_manager.reserve_set_1_res_by_res_indicator(
16761676
slot_harq, crnti, r_harq.harq_id.pucch_res_ind, pucch_cfg);
1677-
resource_manager.set_new_resource_allocation(crnti, pucch_resource_usage::HARQ_F2);
1677+
resource_manager.set_new_resource_allocation(crnti, pucch_resource_usage::HARQ_SET_1);
16781678
if (pucch_res != nullptr) {
16791679
return std::nullopt;
16801680
}
@@ -1686,8 +1686,8 @@ pucch_allocator_impl::merge_pucch_resources(span<const pucch_allocator_impl::puc
16861686
// Get a new HARQ resource (from PUCCH resource set idx 1) from the resource manager.
16871687
else {
16881688
pucch_harq_resource_alloc_record res_alloc =
1689-
resource_manager.reserve_next_f2_harq_res_available(slot_harq, crnti, pucch_cfg);
1690-
resource_manager.set_new_resource_allocation(crnti, pucch_resource_usage::HARQ_F2);
1689+
resource_manager.reserve_next_set_1_harq_res_available(slot_harq, crnti, pucch_cfg);
1690+
resource_manager.set_new_resource_allocation(crnti, pucch_resource_usage::HARQ_SET_1);
16911691
if (res_alloc.pucch_res != nullptr) {
16921692
return std::nullopt;
16931693
}
@@ -1746,9 +1746,9 @@ pucch_allocator_impl::merge_pucch_resources(span<const pucch_allocator_impl::puc
17461746
// PUCCH resource from set idx 0.
17471747
// NOTE: This sub-case is used by the PUCCH common and dedicated allocator.
17481748
else if (preserve_res_indicator) {
1749-
const pucch_resource* pucch_res =
1750-
resource_manager.reserve_f2_res_by_res_indicator(slot_harq, crnti, r_harq.harq_id.pucch_res_ind, pucch_cfg);
1751-
resource_manager.set_new_resource_allocation(crnti, pucch_resource_usage::HARQ_F2);
1749+
const pucch_resource* pucch_res = resource_manager.reserve_set_1_res_by_res_indicator(
1750+
slot_harq, crnti, r_harq.harq_id.pucch_res_ind, pucch_cfg);
1751+
resource_manager.set_new_resource_allocation(crnti, pucch_resource_usage::HARQ_SET_1);
17521752
if (pucch_res == nullptr) {
17531753
return std::nullopt;
17541754
}
@@ -1760,8 +1760,8 @@ pucch_allocator_impl::merge_pucch_resources(span<const pucch_allocator_impl::puc
17601760
// Get a new HARQ resource (from PUCCH resource set idx 1) from the resource manager.
17611761
else {
17621762
pucch_harq_resource_alloc_record res_alloc =
1763-
resource_manager.reserve_next_f2_harq_res_available(slot_harq, crnti, pucch_cfg);
1764-
resource_manager.set_new_resource_allocation(crnti, pucch_resource_usage::HARQ_F2);
1763+
resource_manager.reserve_next_set_1_harq_res_available(slot_harq, crnti, pucch_cfg);
1764+
resource_manager.set_new_resource_allocation(crnti, pucch_resource_usage::HARQ_SET_1);
17651765
if (res_alloc.pucch_res == nullptr) {
17661766
return std::nullopt;
17671767
}
@@ -1820,8 +1820,8 @@ pucch_allocator_impl::merge_pucch_resources(span<const pucch_allocator_impl::puc
18201820
new_resource = *r_harq_ptr;
18211821
} else {
18221822
pucch_harq_resource_alloc_record res_alloc =
1823-
resource_manager.reserve_next_f2_harq_res_available(slot_harq, crnti, pucch_cfg);
1824-
resource_manager.set_new_resource_allocation(crnti, pucch_resource_usage::HARQ_F2);
1823+
resource_manager.reserve_next_set_1_harq_res_available(slot_harq, crnti, pucch_cfg);
1824+
resource_manager.set_new_resource_allocation(crnti, pucch_resource_usage::HARQ_SET_1);
18251825
if (res_alloc.pucch_res == nullptr) {
18261826
return std::nullopt;
18271827
}

0 commit comments

Comments
 (0)