From b82491bc746124f8bb55bee68b75d1be03620b6a Mon Sep 17 00:00:00 2001 From: Xavier Arteaga Date: Wed, 7 Jul 2021 18:00:01 +0200 Subject: [PATCH] Added SR option in NR PHY Test --- test/phy/dummy_ue_stack.h | 20 +++++++++++++++++--- test/phy/nr_phy_test.cc | 4 ++++ 2 files changed, 21 insertions(+), 3 deletions(-) diff --git a/test/phy/dummy_ue_stack.h b/test/phy/dummy_ue_stack.h index 0a3c51a3c..939de1e86 100644 --- a/test/phy/dummy_ue_stack.h +++ b/test/phy/dummy_ue_stack.h @@ -21,15 +21,18 @@ private: srsran_random_t random_gen = srsran_random_init(0x4567); uint16_t rnti = 0; bool valid = false; + uint32_t sr_period = 0; + uint32_t sr_count = 0; srsran::circular_array tx_harq_proc; srsran::circular_array rx_harq_proc; public: struct args_t { - uint16_t rnti = 0x1234; + uint16_t rnti = 0x1234; ///< C-RNTI for PUSCH and PDSCH transmissions + uint32_t sr_period = 0; ///< Indicates positive SR period in number of opportunities. Set to 0 to disable. }; - ue_dummy_stack(const args_t& args) : rnti(args.rnti) { valid = true; } + ue_dummy_stack(const args_t& args) : rnti(args.rnti), sr_period(args.sr_period) { valid = true; } ~ue_dummy_stack() { srsran_random_free(random_gen); } void in_sync() override {} void out_of_sync() override {} @@ -54,7 +57,18 @@ public: srsran_random_byte_vector(random_gen, action->tb.payload->msg, grant.tbs / 8); } void prach_sent(uint32_t tti, uint32_t s_id, uint32_t t_id, uint32_t f_id, uint32_t ul_carrier_id) override {} - bool sr_opportunity(uint32_t tti, uint32_t sr_id, bool meas_gap, bool ul_sch_tx) override { return false; } + bool sr_opportunity(uint32_t tti, uint32_t sr_id, bool meas_gap, bool ul_sch_tx) override + { + if (sr_period == 0) { + return false; + } + + bool ret = (sr_count % sr_period == 0); + + sr_count++; + + return ret; + } bool is_valid() const { return valid; } }; diff --git a/test/phy/nr_phy_test.cc b/test/phy/nr_phy_test.cc index 8b78cf03a..78cfe3c46 100644 --- a/test/phy/nr_phy_test.cc +++ b/test/phy/nr_phy_test.cc @@ -71,6 +71,10 @@ test_bench::args_t::args_t(int argc, char** argv) ("ue.phy.log.id_preamble", bpo::value(&ue_phy.log.id_preamble)->default_value(" UE/"), "UE PHY log ID preamble") ; + options_ue_stack.add_options() + ("ue.stack.sr.period", bpo::value(&ue_stack.sr_period)->default_value(ue_stack.sr_period), "SR period in number of opportunities. Set 0 to disable and 1 for all.") + ; + options.add(options_gnb_stack).add(options_gnb_phy).add(options_ue_stack).add(options_ue_phy).add_options() ("help", "Show this message") ;