Skip to content

Commit

Permalink
Update main
Browse files Browse the repository at this point in the history
  • Loading branch information
codebot committed Sep 10, 2024
2 parents 51e44a6 + 663855f commit 2ceb9b6
Show file tree
Hide file tree
Showing 9 changed files with 77 additions and 7 deletions.
1 change: 1 addition & 0 deletions .gitlab/ci/e2e.yml
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,7 @@ load retina variables:
- if: $CI_DESCRIPTION =~ /Nightly E2E Tests/
- if: $ON_WEB
- if: $ON_API
- if: $CI_DESCRIPTION =~ /Weekly/
script:
- cat .gitlab/ci/e2e/.env
artifacts:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -832,7 +832,7 @@ static void configure_cli11_pucch_args(CLI::App& app, du_high_unit_pucch_config&
pucch_params.nof_cell_sr_resources,
"Number of PUCCH F1 resources available per cell for SR")
->capture_default_str()
->check(CLI::Range(1, 50));
->check(CLI::Range(1, 100));
add_option(app,
"--f0_intraslot_freq_hop",
pucch_params.f0_intraslot_freq_hopping,
Expand Down Expand Up @@ -862,7 +862,7 @@ static void configure_cli11_pucch_args(CLI::App& app, du_high_unit_pucch_config&
pucch_params.nof_cell_csi_resources,
"Number of PUCCH F2 resources available per cell for CSI")
->capture_default_str()
->check(CLI::Range(0, 50));
->check(CLI::Range(0, 100));
add_option(app, "--f2_max_nof_rbs", pucch_params.f2_max_nof_rbs, "Max number of RBs for PUCCH F2 resources")
->capture_default_str()
->check(CLI::Range(1, 16));
Expand Down
8 changes: 8 additions & 0 deletions apps/units/flexible_du/du_high/du_high_config_translators.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -175,6 +175,14 @@ static void fill_csi_resources(serving_cell_config& out_cell, const du_high_unit
csi_params.nof_ports = cell_cfg.nof_antennas_dl;
csi_params.csi_rs_period = static_cast<csi_resource_periodicity>(csi_cfg.csi_rs_period_msec *
get_nof_slots_per_subframe(cell_cfg.common_scs));

// [Implementation-defined] The default CSI symbols are in symbols 4 and 8, the DM-RS for PDSCH might collide in
// symbol index 8 when the number of DM-RS additional positions is 3.
if (uint_to_dmrs_additional_positions(cell_cfg.pdsch_cfg.dmrs_add_pos) == dmrs_additional_positions::pos3) {
csi_params.csi_ofdm_symbol_index = 9;
csi_params.tracking_csi_ofdm_symbol_indexes = {4, 9, 4, 9};
}

if (cell_cfg.tdd_ul_dl_cfg.has_value()) {
if (not csi_helper::derive_valid_csi_rs_slot_offsets(
csi_params,
Expand Down
28 changes: 28 additions & 0 deletions configs/cell_cfg_max_256_ues.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
# This file contains the PUCCH configuration for the gNB to support:
# - SR period 20ms or 40ms.
# - CSI period 20ms or 40ms.
# - Max 256 UEs.

# NOTEs:
# - This configuration is optimized for TDD 7D-2U configuration, but it still works for TDD configurations
# with more than 2 UL slots.
# - This configuration might work for more than 256 UEs, although it hasn't been tested for those scenarios.

cell_cfg:
pucch:
sr_period_ms: 20 # This can be set either 20 or 40 ms.
nof_ue_res_harq_per_set: 8
nof_cell_harq_pucch_sets: 2 # Increase this if UEs are not scheduled PDSCH due to PUCCH resources starvation.
f0_or_f1_nof_cell_res_sr: 50
f2_nof_cell_res_csi: 50
csi:
csi_rs_period: 40 # This can be set either 20 or 40 ms.
ul_common:
max_ul_grants_per_slot: 128
max_pucchs_per_slot: 120
pusch:
max_puschs_per_slot: 8
tdd_ul_dl_cfg:
nof_dl_symbols: 7
nof_dl_slots: 7
nof_ul_slots: 2
29 changes: 29 additions & 0 deletions configs/cell_cfg_max_512_ues.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
# This file contains the PUCCH configuration for the gNB to support:
# - SR period 20ms or 40ms.
# - CSI period 20ms (only with TDD 6D-3U configuration), 40ms (with both TDD 6D-3U and 7D-2U configurations).
# - SR period <= CSI period.
# - Max 512 UEs.

# NOTEs:
# - This configuration is optimized for TDD 7D-2U configuration, but it still works for TDD configurations
# with more than 2 UL slots.
# - This configuration might work for more than 512 UEs, although it hasn't been tested for those scenarios.

cell_cfg:
pucch:
sr_period_ms: 20 # This can be set either 20 or 40 ms.
nof_ue_res_harq_per_set: 8
nof_cell_harq_pucch_sets: 2 # Increase this if UEs are not scheduled PDSCH due to PUCCH resources starvation.
f0_or_f1_nof_cell_res_sr: 80
f2_nof_cell_res_csi: 80
csi:
csi_rs_period: 40 # This can be set to 20 only with TDD 6D-3U.
ul_common:
max_ul_grants_per_slot: 128
max_pucchs_per_slot: 120
pusch:
max_puschs_per_slot: 8
tdd_ul_dl_cfg:
nof_dl_symbols: 7
nof_dl_slots: 7
nof_ul_slots: 2
2 changes: 1 addition & 1 deletion include/srsran/ran/slot_pdu_capacity_constants.h
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,7 @@ static constexpr size_t MAX_PUSCH_PDUS_PER_SLOT = 16U;
static constexpr size_t MAX_UL_PDCCH_PDUS_PER_SLOT = 16U;

/// [Implementation defined] Maximum number of PUCCH PDUs per slot.
static constexpr size_t MAX_PUCCH_PDUS_PER_SLOT = 64U;
static constexpr size_t MAX_PUCCH_PDUS_PER_SLOT = 128U;

/// [Implementation defined] Maximum number of SRS PDUs per slot.
static constexpr size_t MAX_SRS_PDUS_PER_SLOT = 32U;
Expand Down
5 changes: 5 additions & 0 deletions include/srsran/scheduler/config/csi_helper.h
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@
#include "srsran/ran/csi_rs/csi_meas_config.h"
#include "srsran/ran/pci.h"
#include "srsran/ran/tdd/tdd_ul_dl_config.h"
#include <array>

namespace srsran {
namespace csi_helper {
Expand All @@ -38,6 +39,10 @@ struct csi_builder_params {
unsigned nof_rbs;
/// Number of ports set for the CSI-RS.
unsigned nof_ports = 1;
/// Symbol index for the CSI measurement.
unsigned csi_ofdm_symbol_index = 8;
/// Symbol indexes for tracking signals.
std::array<unsigned, 4> tracking_csi_ofdm_symbol_indexes = {4, 8, 4, 8};
/// Period of the CSI-RS resources.
csi_resource_periodicity csi_rs_period = csi_resource_periodicity::slots80;
/// Slot offset for measurement CSI-RS resources. Note: Should avoid collisions with SSB and SIB1.
Expand Down
5 changes: 2 additions & 3 deletions lib/scheduler/config/csi_helper.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -177,7 +177,7 @@ static zp_csi_rs_resource make_default_zp_csi_rs_resource(const csi_builder_para
res.res_mapping.fd_alloc.resize(3);
res.res_mapping.fd_alloc.set(2, true);
res.res_mapping.cdm = csi_rs_cdm_type::fd_CDM2;
res.res_mapping.first_ofdm_symbol_in_td = 8;
res.res_mapping.first_ofdm_symbol_in_td = params.csi_ofdm_symbol_index;
res.res_mapping.freq_density = csi_rs_freq_density_type::one;
res.res_mapping.freq_band_rbs = get_csi_freq_occupation_rbs(params.nof_rbs, params.nof_rbs);
res.period = params.csi_rs_period;
Expand Down Expand Up @@ -329,11 +329,10 @@ fill_tracking_nzp_csi_rs_resource(span<nzp_csi_rs_resource> tracking_csi_rs,
res.res_mapping.cdm = csi_rs_cdm_type::no_CDM;
res.res_mapping.freq_density = csi_rs_freq_density_type::three;

static constexpr unsigned symbol_offsets[] = {4, 8, 4, 8};
static constexpr unsigned rel_slot_offset[] = {0, 0, 1, 1};
for (unsigned i = 0; i != NOF_TRACKING_RESOURCES; ++i) {
res.res_id = static_cast<nzp_csi_rs_res_id_t>(first_csi_res_id + i);
res.res_mapping.first_ofdm_symbol_in_td = symbol_offsets[i];
res.res_mapping.first_ofdm_symbol_in_td = params.tracking_csi_ofdm_symbol_indexes[i];
res.csi_res_offset = params.tracking_csi_slot_offset + rel_slot_offset[i];
tracking_csi_rs[i] = res;
}
Expand Down
2 changes: 1 addition & 1 deletion lib/scheduler/pucch_scheduling/pucch_allocator_impl.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1200,7 +1200,7 @@ void pucch_allocator_impl::allocate_csi_grant(cell_slot_resource_allocator& pucc
}

if (pucch_grants_alloc_grid[sl_tx.to_uint()].full()) {
logger.info("rnti={}: PUCCH HARQ-ACK allocation for slot={} skipped. Cause: PUCCH allocator grant list is full",
logger.info("rnti={}: PUCCH CSI allocation for slot={} skipped. Cause: PUCCH allocator grant list is full",
crnti,
pucch_slot_alloc.slot);
return;
Expand Down

0 comments on commit 2ceb9b6

Please sign in to comment.