diff --git a/lib/src/common/phy_cfg_nr_default.cc b/lib/src/common/phy_cfg_nr_default.cc index e8b5d91ab..034c0c5d1 100644 --- a/lib/src/common/phy_cfg_nr_default.cc +++ b/lib/src/common/phy_cfg_nr_default.cc @@ -139,6 +139,10 @@ void phy_cfg_nr_default_t::make_pdcch_custom_common_ss(srsran_pdcch_cfg_nr_t& pd pdcch.search_space[1].nof_candidates[L] = SRSRAN_MIN(2, srsran_pdcch_nr_max_candidates_coreset(&pdcch.coreset[1], L)); } + + pdcch.ra_search_space_present = true; + pdcch.ra_search_space = pdcch.search_space[1]; + pdcch.ra_search_space.type = srsran_search_space_type_common_1; } void phy_cfg_nr_default_t::make_pdsch_default(srsran_sch_hl_cfg_nr_t& pdsch) diff --git a/srsenb/src/stack/mac/nr/sched_nr_helpers.cc b/srsenb/src/stack/mac/nr/sched_nr_helpers.cc index 0474272be..f10dc5cdf 100644 --- a/srsenb/src/stack/mac/nr/sched_nr_helpers.cc +++ b/srsenb/src/stack/mac/nr/sched_nr_helpers.cc @@ -54,6 +54,10 @@ bool fill_dci_rar(prb_interval interv, uint16_t ra_rnti, const bwp_params& bwp_c dci.ctx.rnti = ra_rnti; dci.ctx.coreset_id = bwp_cfg.cfg.pdcch.ra_search_space.coreset_id; dci.freq_domain_assigment = srsran_ra_nr_type1_riv(bwp_cfg.cfg.rb_width, interv.start(), interv.length()); + dci.time_domain_assigment = 0; + dci.tpc = 1; + dci.bwp_id = bwp_cfg.bwp_id; + dci.cc_id = bwp_cfg.cc; // TODO: Fill return true; diff --git a/srsue/src/phy/nr/cc_worker.cc b/srsue/src/phy/nr/cc_worker.cc index 6bf70fcb4..a69faafae 100644 --- a/srsue/src/phy/nr/cc_worker.cc +++ b/srsue/src/phy/nr/cc_worker.cc @@ -176,7 +176,7 @@ void cc_worker::decode_pdcch_dl() for (uint32_t i = 0; i < ue_dl.pdcch_info_count; i++) { const srsran_ue_dl_nr_pdcch_info_t* info = &ue_dl.pdcch_info[i]; logger.debug("PDCCH: dci=%s, rnti=%x, crst_id=%d, ss_type=%d, ncce=%d, al=%d, EPRE=%+.2f, RSRP=%+.2f, corr=%.3f; " - "nof_bits=%d; crc=%s;", + "evm=%f; nof_bits=%d; crc=%s;", srsran_dci_format_nr_string(info->dci_ctx.format), info->dci_ctx.rnti, info->dci_ctx.coreset_id, @@ -186,6 +186,7 @@ void cc_worker::decode_pdcch_dl() info->measure.epre_dBfs, info->measure.rsrp_dBfs, info->measure.norm_corr, + info->result.evm, info->nof_bits, info->result.crc ? "OK" : "KO"); } diff --git a/test/phy/dummy_ue_stack.h b/test/phy/dummy_ue_stack.h index 70e555466..ea5fc307e 100644 --- a/test/phy/dummy_ue_stack.h +++ b/test/phy/dummy_ue_stack.h @@ -28,6 +28,7 @@ public: }; private: + srsran_rnti_type_t dl_rnti_type = srsran_rnti_type_c; uint16_t rnti = 0; bool valid = false; uint32_t sr_period = 0; @@ -72,7 +73,7 @@ public: } } int sf_indication(const uint32_t tti) override { return 0; } - sched_rnti_t get_dl_sched_rnti_nr(const uint32_t tti) override { return {rnti, srsran_rnti_type_c}; } + sched_rnti_t get_dl_sched_rnti_nr(const uint32_t tti) override { return {rnti, dl_rnti_type}; } sched_rnti_t get_ul_sched_rnti_nr(const uint32_t tti) override { return {rnti, srsran_rnti_type_c}; } void new_grant_dl(const uint32_t cc_idx, const mac_nr_grant_dl_t& grant, tb_action_dl_t* action) override { @@ -89,7 +90,11 @@ public: action->tb.payload = tx_harq_proc[grant.pid].get_tb(grant.tbs); action->tb.softbuffer = &tx_harq_proc[grant.pid].get_softbuffer(grant.ndi); } - void prach_sent(uint32_t tti, uint32_t s_id, uint32_t t_id, uint32_t f_id, uint32_t ul_carrier_id) override {} + void prach_sent(uint32_t tti, uint32_t s_id, uint32_t t_id, uint32_t f_id, uint32_t ul_carrier_id) override + { + dl_rnti_type = srsran_rnti_type_ra; + rnti = 1 + s_id + 14 * t_id + 14 * 80 * f_id + 14 * 80 * 8 * ul_carrier_id; + } bool sr_opportunity(uint32_t tti, uint32_t sr_id, bool meas_gap, bool ul_sch_tx) override { if (sr_period == 0) {