mirror of https://github.com/PentHertz/srsLTE.git
rrc: copy PUCCH cnf from RRCSetup to PHY structs
Signed-off-by: Carlo Galiotto <carlo@srs.io>
This commit is contained in:
parent
362abfe3c9
commit
fe6500bd55
|
@ -796,6 +796,10 @@ bool make_phy_res_config(const pucch_res_s& pucch_res,
|
|||
{
|
||||
srsran_pucch_nr_resource_t srsran_pucch_nr_resource = {};
|
||||
srsran_pucch_nr_resource.starting_prb = pucch_res.start_prb;
|
||||
srsran_pucch_nr_resource.intra_slot_hopping = pucch_res.intra_slot_freq_hop_present;
|
||||
if (pucch_res.second_hop_prb_present) {
|
||||
srsran_pucch_nr_resource.second_hop_prb = pucch_res.second_hop_prb;
|
||||
}
|
||||
switch (pucch_res.format.type()) {
|
||||
case pucch_res_s::format_c_::types_opts::format0:
|
||||
srsran_pucch_nr_resource.format = SRSRAN_PUCCH_NR_FORMAT_0;
|
||||
|
|
|
@ -551,6 +551,7 @@ int srsran_ra_ul_nr_pucch_resource(const srsran_pucch_nr_hl_cfg_t* pucch_cfg,
|
|||
return SRSRAN_SUCCESS;
|
||||
}
|
||||
|
||||
#if 0
|
||||
for (size_t n = 0; n < SRSRAN_PUCCH_NR_MAX_NOF_SETS; n++) {
|
||||
if (pucch_cfg->sets[n].nof_resources > 0) {
|
||||
printf("\n ==== Set index number %zu: =====\n", n);
|
||||
|
@ -558,19 +559,23 @@ int srsran_ra_ul_nr_pucch_resource(const srsran_pucch_nr_hl_cfg_t* pucch_cfg,
|
|||
printf("\n PUCCH resource ID %zu", k);
|
||||
printf("\n Format %u", pucch_cfg->sets[n].resources[k].format);
|
||||
printf("\n Starting PRB %u", pucch_cfg->sets[n].resources[k].starting_prb);
|
||||
printf("\n Intra slot hopping %s", pucch_cfg->sets[n].resources[k].intra_slot_hopping ? "True" : "False");
|
||||
printf("\n Second PRB %u", pucch_cfg->sets[n].resources[k].second_hop_prb);
|
||||
if (pucch_cfg->sets[n].resources[k].format == SRSRAN_PUCCH_NR_FORMAT_1) {
|
||||
printf("\n ICS %u", pucch_cfg->sets[n].resources[k].initial_cyclic_shift);
|
||||
printf("\n Num of symbols %u", pucch_cfg->sets[n].resources[k].nof_symbols);
|
||||
printf("\n ICS %u \n", pucch_cfg->sets[n].resources[k].initial_cyclic_shift);
|
||||
printf("\n Starting sym idx %u", pucch_cfg->sets[n].resources[k].start_symbol_idx);
|
||||
printf("\n Time domain OCC %u \n", pucch_cfg->sets[n].resources[k].time_domain_occ);
|
||||
}
|
||||
if (pucch_cfg->sets[n].resources[k].format == SRSRAN_PUCCH_NR_FORMAT_2) {
|
||||
printf("\n Num of PRBs %u", pucch_cfg->sets[n].resources[k].nof_prb);
|
||||
printf("\n Start symb idx %u", pucch_cfg->sets[n].resources[k].start_symbol_idx);
|
||||
printf("\n Num of symbols %u \n", pucch_cfg->sets[n].resources[k].nof_symbols);
|
||||
printf("\n Num of symbols %u", pucch_cfg->sets[n].resources[k].nof_symbols);
|
||||
printf("\n Start symb idx %u \n", pucch_cfg->sets[n].resources[k].start_symbol_idx);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
// Use SR PUCCH resource
|
||||
// - At least one positive SR
|
||||
|
@ -640,9 +645,11 @@ int srsran_ra_ul_nr_pucch_resource(const srsran_pucch_nr_hl_cfg_t* pucch_cfg,
|
|||
return SRSRAN_SUCCESS;
|
||||
}
|
||||
|
||||
#if 0
|
||||
if (uci_cfg->ack.count > 0 && uci_cfg->nof_csi == 1 && uci_cfg->csi[0].cfg.type == SRSRAN_CSI_REPORT_TYPE_PERIODIC) {
|
||||
printf("This is point where we fail");
|
||||
}
|
||||
#endif
|
||||
|
||||
// If a UE does not have dedicated PUCCH resource configuration, provided by PUCCH-ResourceSet in PUCCH-Config,
|
||||
// a PUCCH resource set is provided by pucch-ResourceCommon through an index to a row of Table 9.2.1-1 for size
|
||||
|
|
|
@ -182,6 +182,7 @@ bool slot_worker::work_ul()
|
|||
for (uint32_t i = 0; i < (uint32_t)pucch.candidates.size(); i++) {
|
||||
pucch_info[i].uci_data.cfg = pucch.candidates[i].uci_cfg;
|
||||
|
||||
#if 0
|
||||
if (pucch_info[i].uci_data.cfg.nof_csi == 1 && pucch_info[i].uci_data.cfg.ack.count > 0) {
|
||||
printf("Stop here");
|
||||
}
|
||||
|
@ -189,6 +190,7 @@ bool slot_worker::work_ul()
|
|||
if (pucch_info[i].uci_data.cfg.nof_csi == 1 && pucch_info[i].uci_data.cfg.ack.count > 0) {
|
||||
printf("Stop here");
|
||||
}
|
||||
#endif
|
||||
|
||||
// Decode PUCCH
|
||||
if (srsran_gnb_ul_get_pucch(&gnb_ul,
|
||||
|
|
|
@ -185,9 +185,11 @@ void cc_worker::postprocess_decisions(bwp_slot_allocator& bwp_alloc)
|
|||
continue;
|
||||
}
|
||||
|
||||
#if 0
|
||||
if (uci_cfg.nof_csi == 1 and uci_cfg.ack.count == 1) {
|
||||
printf("Stop here");
|
||||
}
|
||||
#endif
|
||||
|
||||
// If this slot has a SR opportunity and the selected PUCCH format is 1, consider positive SR.
|
||||
if (uci_cfg.o_sr > 0 and uci_cfg.ack.count > 0 and
|
||||
|
|
|
@ -607,9 +607,9 @@ void fill_pucch_cfg_from_enb_cfg(const rrc_nr_cfg_t& cfg, uint32_t cc, pucch_cfg
|
|||
for (uint32_t i = 0; i < out.res_to_add_mod_list.size(); ++i) {
|
||||
out.res_to_add_mod_list[i].pucch_res_id = i;
|
||||
out.res_to_add_mod_list[i].intra_slot_freq_hop_present = false;
|
||||
out.res_to_add_mod_list[i].second_hop_prb_present = false;
|
||||
if (i < 8 or i == 16) {
|
||||
out.res_to_add_mod_list[i].start_prb = 51;
|
||||
out.res_to_add_mod_list[i].second_hop_prb_present = true;
|
||||
out.res_to_add_mod_list[i].second_hop_prb = 0;
|
||||
out.res_to_add_mod_list[i].format.set_format1().init_cyclic_shift = (4 * (j % 3));
|
||||
out.res_to_add_mod_list[i].format.format1().nrof_symbols = 14;
|
||||
|
@ -618,6 +618,7 @@ void fill_pucch_cfg_from_enb_cfg(const rrc_nr_cfg_t& cfg, uint32_t cc, pucch_cfg
|
|||
j++;
|
||||
} else if (i < 15) {
|
||||
out.res_to_add_mod_list[i].start_prb = 1;
|
||||
out.res_to_add_mod_list[i].second_hop_prb_present = true;
|
||||
out.res_to_add_mod_list[i].second_hop_prb = 50;
|
||||
out.res_to_add_mod_list[i].format.set_format2().nrof_prbs = 1;
|
||||
out.res_to_add_mod_list[i].format.format2().nrof_symbols = 2;
|
||||
|
@ -625,6 +626,7 @@ void fill_pucch_cfg_from_enb_cfg(const rrc_nr_cfg_t& cfg, uint32_t cc, pucch_cfg
|
|||
j2++;
|
||||
} else {
|
||||
out.res_to_add_mod_list[i].start_prb = 50;
|
||||
out.res_to_add_mod_list[i].second_hop_prb_present = true;
|
||||
out.res_to_add_mod_list[i].second_hop_prb = 1;
|
||||
out.res_to_add_mod_list[i].format.set_format2().nrof_prbs = 1;
|
||||
out.res_to_add_mod_list[i].format.format2().nrof_symbols = 2;
|
||||
|
|
|
@ -347,9 +347,11 @@ void rrc_nr::config_mac()
|
|||
cell.ssb_positions_in_burst = du_cfg->cell(cc).serv_cell_cfg_common().ssb_positions_in_burst;
|
||||
cell.ssb_periodicity_ms = du_cfg->cell(cc).serv_cell_cfg_common().ssb_periodicity_serving_cell.to_number();
|
||||
cell.ssb_scs.value = (subcarrier_spacing_e::options)cfg.cell_list[0].phy_cell.carrier.scs;
|
||||
#if 1
|
||||
// bzero(cell.bwps[0].pdsch.nzp_csi_rs_sets, sizeof(cell.bwps[0].pdsch.nzp_csi_rs_sets));
|
||||
bool valid_cfg = srsran::make_pdsch_cfg_from_serv_cell(base_sp_cell_cfg.sp_cell_cfg_ded, &cell.bwps[0].pdsch);
|
||||
srsran_assert(valid_cfg, "Invalid NR cell configuration.");
|
||||
#endif
|
||||
}
|
||||
|
||||
// Set SIB1 and SI messages
|
||||
|
|
|
@ -1467,6 +1467,14 @@ int rrc_nr::ue::update_mac(const cell_group_cfg_s& cell_group_config, bool is_co
|
|||
// TODO: remaining fields
|
||||
}
|
||||
}
|
||||
|
||||
if (cell_group_config.sp_cell_cfg_present and cell_group_config.sp_cell_cfg.sp_cell_cfg_ded_present and
|
||||
cell_group_config.sp_cell_cfg.sp_cell_cfg_ded.ul_cfg_present and
|
||||
cell_group_config.sp_cell_cfg.sp_cell_cfg_ded.ul_cfg.init_ul_bwp_present and
|
||||
cell_group_config.sp_cell_cfg.sp_cell_cfg_ded.ul_cfg.init_ul_bwp.pucch_cfg_present) {
|
||||
auto& pucch_cfg = cell_group_config.sp_cell_cfg.sp_cell_cfg_ded.ul_cfg.init_ul_bwp.pucch_cfg.setup();
|
||||
srsran::fill_phy_pucch_cfg(pucch_cfg, &uecfg.phy_cfg.pucch);
|
||||
}
|
||||
} else {
|
||||
auto& pdcch = cell_group_config.sp_cell_cfg.sp_cell_cfg_ded.init_dl_bwp.pdcch_cfg.setup();
|
||||
for (auto& ss : pdcch.search_spaces_to_add_mod_list) {
|
||||
|
@ -1481,7 +1489,6 @@ int rrc_nr::ue::update_mac(const cell_group_cfg_s& cell_group_config, bool is_co
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
uecfg.sp_cell_cfg.reset(new sp_cell_cfg_s{cell_group_cfg.sp_cell_cfg});
|
||||
uecfg.mac_cell_group_cfg.reset(new mac_cell_group_cfg_s{cell_group_cfg.mac_cell_group_cfg});
|
||||
uecfg.phy_cell_group_cfg.reset(new phys_cell_group_cfg_s{cell_group_cfg.phys_cell_group_cfg});
|
||||
|
|
Loading…
Reference in New Issue