From 5302f1b23c45f970b1a6bcd3817d06927e01e245 Mon Sep 17 00:00:00 2001 From: Matan Perelman Date: Wed, 10 Nov 2021 08:34:12 +0200 Subject: [PATCH 01/10] Sync: Fix incorrect log line --- lib/src/phy/sync/sync.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/src/phy/sync/sync.c b/lib/src/phy/sync/sync.c index 40faf3227..6ccb6bc9e 100644 --- a/lib/src/phy/sync/sync.c +++ b/lib/src/phy/sync/sync.c @@ -321,7 +321,7 @@ int srsran_sync_set_N_id_1(srsran_sync_t* q, uint32_t N_id_1) generate_freq_sss(q, N_id_1); return SRSRAN_SUCCESS; } else { - ERROR("Invalid N_id_2=%d", N_id_1); + ERROR("Invalid N_id_1=%d", N_id_1); return SRSRAN_ERROR_INVALID_INPUTS; } } From 0dff58613f0e40e41a67b2f4dc03cb858c35ed74 Mon Sep 17 00:00:00 2001 From: Matan Perelman Date: Tue, 16 Nov 2021 07:54:23 +0200 Subject: [PATCH 02/10] srsUE: Add option to filter N_id_1 / SSS to configuration --- .../srsran/interfaces/ue_phy_interfaces.h | 1 + srsue/hdr/phy/search.h | 3 ++- srsue/src/main.cc | 4 ++++ srsue/src/phy/search.cc | 18 +++++++++++++++++- srsue/src/phy/sync.cc | 2 +- srsue/ue.conf.example | 6 ++++++ 6 files changed, 31 insertions(+), 3 deletions(-) diff --git a/lib/include/srsran/interfaces/ue_phy_interfaces.h b/lib/include/srsran/interfaces/ue_phy_interfaces.h index 878eb79ee..58786eb0b 100644 --- a/lib/include/srsran/interfaces/ue_phy_interfaces.h +++ b/lib/include/srsran/interfaces/ue_phy_interfaces.h @@ -36,6 +36,7 @@ struct phy_args_t { std::map ul_earfcn_map; // Map linking DL EARFCN and UL EARFCN int force_N_id_2 = -1; // Cell identity within the identity group (PSS) to filter. + int force_N_id_1 = -1; // Cell identity group (SSS) to filter. float dl_freq = -1.0f; float ul_freq = -1.0f; diff --git a/srsue/hdr/phy/search.h b/srsue/hdr/phy/search.h index 77af489cd..9c3216562 100644 --- a/srsue/hdr/phy/search.h +++ b/srsue/hdr/phy/search.h @@ -36,7 +36,7 @@ public: explicit search(srslog::basic_logger& logger) : logger(logger) {} ~search(); - void init(srsran::rf_buffer_t& buffer_, uint32_t nof_rx_channels, search_callback* parent, int force_N_id_2_); + void init(srsran::rf_buffer_t& buffer_, uint32_t nof_rx_channels, search_callback* parent, int force_N_id_2_, int force_N_id_1_); void reset(); float get_last_cfo(); void set_agc_enable(bool enable); @@ -50,6 +50,7 @@ private: srsran_ue_cellsearch_t cs = {}; srsran_ue_mib_sync_t ue_mib_sync = {}; int force_N_id_2 = 0; + int force_N_id_1 = 0; }; }; // namespace srsue diff --git a/srsue/src/main.cc b/srsue/src/main.cc index a559490cf..495d49777 100644 --- a/srsue/src/main.cc +++ b/srsue/src/main.cc @@ -409,6 +409,10 @@ static int parse_args(all_args_t* args, int argc, char* argv[]) bpo::value(&args->phy.force_N_id_2)->default_value(-1), "Force using a specific PSS (set to -1 to allow all PSSs).") + ("phy.force_N_id_1", + bpo::value(&args->phy.force_N_id_1)->default_value(-1), + "Force using a specific SSS (set to -1 to allow all SSSs).") + // PHY NR args ("phy.nr.store_pdsch_ko", bpo::value(&args->phy.nr_store_pdsch_ko)->default_value(false), diff --git a/srsue/src/phy/search.cc b/srsue/src/phy/search.cc index fc94da9bd..6138483a9 100644 --- a/srsue/src/phy/search.cc +++ b/srsue/src/phy/search.cc @@ -46,7 +46,7 @@ search::~search() srsran_ue_cellsearch_free(&cs); } -void search::init(srsran::rf_buffer_t& buffer_, uint32_t nof_rx_channels, search_callback* parent, int force_N_id_2_) +void search::init(srsran::rf_buffer_t& buffer_, uint32_t nof_rx_channels, search_callback* parent, int force_N_id_2_, int force_N_id_1_) { p = parent; @@ -65,6 +65,7 @@ void search::init(srsran::rf_buffer_t& buffer_, uint32_t nof_rx_channels, search p->set_ue_sync_opts(&cs.ue_sync, 0); force_N_id_2 = force_N_id_2_; + force_N_id_1 = force_N_id_1_; } void search::set_cp_en(bool enable) @@ -125,6 +126,21 @@ search::ret_code search::run(srsran_cell_t* cell_, std::array= 0 && force_N_id_1 < SRSRAN_NOF_NID_1) { + bool N_id_1_found = false; + for (uint32_t N_id_2 = 0; N_id_2 < SRSRAN_NOF_NID_2; N_id_2++) { + if (found_cells[N_id_2].cell_id / SRSRAN_NOF_NID_2 == (uint32_t)force_N_id_1) { + N_id_1_found = true; + max_peak_cell = N_id_2; + } + } + if (!N_id_1_found) { + Info("SYNC: Could not find any cell in this SSS"); + return CELL_NOT_FOUND; + } + } + // Save result new_cell.id = found_cells[max_peak_cell].cell_id; new_cell.cp = found_cells[max_peak_cell].cp; diff --git a/srsue/src/phy/sync.cc b/srsue/src/phy/sync.cc index c0c468f47..3440f66ad 100644 --- a/srsue/src/phy/sync.cc +++ b/srsue/src/phy/sync.cc @@ -82,7 +82,7 @@ void sync::init(srsran::radio_interface_phy* _radio, } // Initialize cell searcher - search_p.init(sf_buffer, nof_rf_channels, this, worker_com->args->force_N_id_2); + search_p.init(sf_buffer, nof_rf_channels, this, worker_com->args->force_N_id_2, worker_com->args->force_N_id_1); search_p.set_cp_en(worker_com->args->detect_cp); // Initialize SFN synchronizer, it uses only pcell buffer sfn_p.init(&ue_sync, worker_com->args, sf_buffer, sf_buffer.size()); diff --git a/srsue/ue.conf.example b/srsue/ue.conf.example index 67ad68634..59f36dacd 100644 --- a/srsue/ue.conf.example +++ b/srsue/ue.conf.example @@ -343,6 +343,9 @@ enable = false # nof_in_sync_events: Number of PHY in-sync events before sending an in-sync event to RRC # nof_out_of_sync_events: Number of PHY out-sync events before sending an out-sync event to RRC # +# force_N_id_2: Force using a specific PSS (set to -1 to allow all PSSs). +# force_N_id_1: Force using a specific SSS (set to -1 to allow all SSSs). +# ##################################################################### [phy] #rx_gain_offset = 62 @@ -374,6 +377,9 @@ enable = false #nof_in_sync_events = 10 #nof_out_of_sync_events = 20 +#force_N_id_2 = 1 +#force_N_id_1 = 10 + ##################################################################### # PHY NR specific configuration options # From c967b688ffec2a7878632e78cce293902748bc3f Mon Sep 17 00:00:00 2001 From: Merlin Chlosta Date: Thu, 4 Nov 2021 09:03:04 +0000 Subject: [PATCH 03/10] emergency handler for NAS PCAP to close file Previously NAS PCAP wasn't closed/fflushed on unclean exit, resulting in missing or corrupted PCAP. --- lib/include/srsran/common/nas_pcap.h | 13 ++++--------- lib/src/common/nas_pcap.cc | 13 +++++++++++++ 2 files changed, 17 insertions(+), 9 deletions(-) diff --git a/lib/include/srsran/common/nas_pcap.h b/lib/include/srsran/common/nas_pcap.h index c1bc5fd76..f93c17a27 100644 --- a/lib/include/srsran/common/nas_pcap.h +++ b/lib/include/srsran/common/nas_pcap.h @@ -22,22 +22,17 @@ namespace srsran { class nas_pcap { public: - nas_pcap() - { - enable_write = false; - ue_id = 0; - pcap_file = NULL; - } + nas_pcap(); void enable(); uint32_t open(std::string filename_, uint32_t ue_id = 0, srsran_rat_t rat_type = srsran_rat_t::lte); void close(); void write_nas(uint8_t* pdu, uint32_t pdu_len_bytes); private: - bool enable_write; + bool enable_write = false; std::string filename; - FILE* pcap_file; - uint32_t ue_id; + FILE* pcap_file = nullptr; + uint32_t ue_id = 0; void pack_and_write(uint8_t* pdu, uint32_t pdu_len_bytes); }; diff --git a/lib/src/common/nas_pcap.cc b/lib/src/common/nas_pcap.cc index 6d45d2a09..1011d0d12 100644 --- a/lib/src/common/nas_pcap.cc +++ b/lib/src/common/nas_pcap.cc @@ -13,10 +13,22 @@ #include "srsran/common/nas_pcap.h" #include "srsran/common/pcap.h" #include "srsran/srsran.h" +#include "srsran/support/emergency_handlers.h" #include namespace srsran { +/// Try to flush the contents of the pcap class before the application is killed. +static void emergency_cleanup_handler(void* data) +{ + reinterpret_cast(data)->close(); +} + +nas_pcap::nas_pcap() +{ + add_emergency_cleanup_handler(emergency_cleanup_handler, this); +} + void nas_pcap::enable() { enable_write = true; @@ -42,6 +54,7 @@ void nas_pcap::close() { fprintf(stdout, "Saving NAS PCAP file (DLT=%d) to %s \n", NAS_LTE_DLT, filename.c_str()); DLT_PCAP_Close(pcap_file); + pcap_file = nullptr; } void nas_pcap::write_nas(uint8_t* pdu, uint32_t pdu_len_bytes) From 226001709d5ba80faebcfe140a7066ae7a67c8bc Mon Sep 17 00:00:00 2001 From: Robert Falkenberg Date: Tue, 30 Nov 2021 11:24:26 +0100 Subject: [PATCH 04/10] srsUE: refactor option to filter N_id_1 / SSS to configuration * pick the cell with strongest peak (instead of last match) * proper selection if N_id_2 was forced too * add comment explaining potential occlusion of cells --- srsue/src/phy/search.cc | 29 +++++++++++++++++++++++------ 1 file changed, 23 insertions(+), 6 deletions(-) diff --git a/srsue/src/phy/search.cc b/srsue/src/phy/search.cc index 6138483a9..cb5fb3f84 100644 --- a/srsue/src/phy/search.cc +++ b/srsue/src/phy/search.cc @@ -112,7 +112,7 @@ search::ret_code search::run(srsran_cell_t* cell_, std::array= 0 && force_N_id_2 < 3) { + if (force_N_id_2 >= 0 && force_N_id_2 < SRSRAN_NOF_NID_2) { ret = srsran_ue_cellsearch_scan_N_id_2(&cs, force_N_id_2, &found_cells[force_N_id_2]); max_peak_cell = force_N_id_2; } else { @@ -127,16 +127,33 @@ search::ret_code search::run(srsran_cell_t* cell_, std::array= 0 && force_N_id_1 < SRSRAN_NOF_NID_1) { + /* Note that srsran_ue_cellsearch_scan_N_id_2 only finds the strongest cell for a given N_id_2/PSS within the search + * window. A cell with the desired SSS can be occluded by other cells with the same PSS, if their PSS is stronger and + * within the same search window. + */ bool N_id_1_found = false; - for (uint32_t N_id_2 = 0; N_id_2 < SRSRAN_NOF_NID_2; N_id_2++) { - if (found_cells[N_id_2].cell_id / SRSRAN_NOF_NID_2 == (uint32_t)force_N_id_1) { + if (force_N_id_2 >= 0 && force_N_id_2 < SRSRAN_NOF_NID_2) { + // N_id_2 (PSS) was forced, so there is only one search result to check + if (found_cells[max_peak_cell].cell_id / SRSRAN_NOF_NID_2 == (uint32_t)force_N_id_1) { N_id_1_found = true; - max_peak_cell = N_id_2; + } + } else { + // Go through the results for all N_id_2 (PSS); pick strongest with matching N_id_1 (SSS) + float max_peak_value = -1.0; + for (uint32_t N_id_2 = 0; N_id_2 < SRSRAN_NOF_NID_2; N_id_2++) { + if (found_cells[N_id_2].cell_id / SRSRAN_NOF_NID_2 == (uint32_t)force_N_id_1) { + if (found_cells[N_id_2].peak > max_peak_value) { + N_id_1_found = true; + max_peak_value = found_cells[N_id_2].peak; + max_peak_cell = N_id_2; + } + } } } if (!N_id_1_found) { - Info("SYNC: Could not find any cell in this SSS"); + Info("SYNC: Could not find any cell with preselected SSS (force_N_id_1=%d)", force_N_id_1); return CELL_NOT_FOUND; } } @@ -210,4 +227,4 @@ search::ret_code search::run(srsran_cell_t* cell_, std::array Date: Fri, 19 Nov 2021 12:16:55 +0100 Subject: [PATCH 05/10] nr: add RAR ue_dl_nr_file test --- lib/src/phy/ue/test/CMakeLists.txt | 3 ++- lib/src/phy/ue/test/ue_dl_nr_file_test.cc | 13 ++++++++++--- .../test/ue_dl_nr_pci500_rb52_rar_s15.36e6.dat | Bin 0 -> 122880 bytes 3 files changed, 12 insertions(+), 4 deletions(-) create mode 100644 lib/src/phy/ue/test/ue_dl_nr_pci500_rb52_rar_s15.36e6.dat diff --git a/lib/src/phy/ue/test/CMakeLists.txt b/lib/src/phy/ue/test/CMakeLists.txt index 9f611f57e..efa8c232b 100644 --- a/lib/src/phy/ue/test/CMakeLists.txt +++ b/lib/src/phy/ue/test/CMakeLists.txt @@ -57,4 +57,5 @@ endforeach () #add_test(ue_dl_nr_pci500_rb52_n4_ra_L2_ncce0 ue_dl_nr_file_test -f ${CMAKE_CURRENT_SOURCE_DIR}/ue_dl_nr_pci500_rb52_n4_ra_L2_ncce0.dat -i 1 -P 52 -n 4 -R 7f) add_test(ue_dl_nr_pci500_rb52_si_coreset0_idx6 ue_dl_nr_file_test -f ${CMAKE_CURRENT_SOURCE_DIR}/ue_dl_nr_pci500_rb52_si_coreset0_idx6_s15.36e6.dat -S -i 500 -P 52 -n 0 -R ffff -T si -c 6 -s common0 -A 368500 -a 368410) #add_test(ue_dl_nr_pci500_rb52_si_coreset0_idx7 ue_dl_nr_file_test -f ${CMAKE_CURRENT_SOURCE_DIR}/ue_dl_nr_pci500_rb52_si_coreset0_idx7_s15.36e6.dat -S -i 500 -P 52 -n 0 -R ffff -T si -c 7 -s common0 -A 161200 -a 161290) -#add_test(ue_dl_nr_pci500_rb52_pdsch ue_dl_nr_file_test -f ${CMAKE_CURRENT_SOURCE_DIR}/ue_dl_nr_pci500_rb52_rnti0x100_s15.36e6.dat -S -i 500 -P 52 -n 0 -R ffff -T si -o 2 -s common3) \ No newline at end of file +#add_test(ue_dl_nr_pci500_rb52_pdsch ue_dl_nr_file_test -f ${CMAKE_CURRENT_SOURCE_DIR}/ue_dl_nr_pci500_rb52_rnti0x100_s15.36e6.dat -S -i 500 -P 52 -n 0 -R ffff -T si -o 2 -s common3) +add_test(ue_dl_nr_pci500_rb52_rar ue_dl_nr_file_test -f ${CMAKE_CURRENT_SOURCE_DIR}/ue_dl_nr_pci500_rb52_rar_s15.36e6.dat -i 500 -P 52 -n 5 -R f -T ra -c 6 -S -s common1 -A 368500 -a 368410) diff --git a/lib/src/phy/ue/test/ue_dl_nr_file_test.cc b/lib/src/phy/ue/test/ue_dl_nr_file_test.cc index 103e48545..b437e9559 100644 --- a/lib/src/phy/ue/test/ue_dl_nr_file_test.cc +++ b/lib/src/phy/ue/test/ue_dl_nr_file_test.cc @@ -194,6 +194,13 @@ static int work_ue_dl(srsran_ue_dl_nr_t* ue_dl, srsran_slot_cfg_t* slot) // Convert DCI to PDSCH transmission srsran_sch_cfg_nr_t pdsch_cfg = {}; + if (rnti_type == srsran_rnti_type_ra) { + pdsch_hl_cfg.common_time_ra[0].k = 0; + pdsch_hl_cfg.common_time_ra[0].mapping_type = srsran_sch_mapping_type_A; + pdsch_hl_cfg.common_time_ra[0].sliv = + srsran_ra_type2_to_riv(SRSRAN_NSYMB_PER_SLOT_NR - 1, 1, SRSRAN_NSYMB_PER_SLOT_NR); + pdsch_hl_cfg.nof_common_time_ra = 1; + } if (srsran_ra_dl_dci_to_grant_nr(&carrier, slot, &pdsch_hl_cfg, &dci_dl_rx, &pdsch_cfg, &pdsch_cfg.grant) < SRSRAN_SUCCESS) { ERROR("Error decoding PDSCH search"); @@ -314,7 +321,7 @@ int main(int argc, char** argv) srsran_coreset_t* coreset = NULL; // Configure CORESET - if (rnti_type == srsran_rnti_type_si) { + if (rnti_type == srsran_rnti_type_si || rnti_type == srsran_rnti_type_ra) { // configure to use coreset0 coreset = &pdcch_cfg.coreset[0]; pdcch_cfg.coreset_present[0] = true; @@ -346,7 +353,7 @@ int main(int argc, char** argv) pdsch_hl_cfg.typeA_pos = srsran_dmrs_sch_typeA_pos_2; // set coreset0 bandwidth - dci_cfg.coreset0_bw = srsran_coreset_get_bw(coreset); + dci_cfg.coreset0_bw = srsran_coreset_get_bw(coreset); } else { // configure to use coreset1 coreset = &pdcch_cfg.coreset[1]; @@ -368,7 +375,7 @@ int main(int argc, char** argv) srsran_search_space_t* search_space = &pdcch_cfg.search_space[0]; pdcch_cfg.search_space_present[0] = true; search_space->id = 0; - search_space->coreset_id = (rnti_type == srsran_rnti_type_si) ? 0 : 1; + search_space->coreset_id = (rnti_type == srsran_rnti_type_si || rnti_type == srsran_rnti_type_ra) ? 0 : 1; search_space->type = ss_type; search_space->formats[0] = srsran_dci_format_nr_0_0; search_space->formats[1] = srsran_dci_format_nr_1_0; diff --git a/lib/src/phy/ue/test/ue_dl_nr_pci500_rb52_rar_s15.36e6.dat b/lib/src/phy/ue/test/ue_dl_nr_pci500_rb52_rar_s15.36e6.dat new file mode 100644 index 0000000000000000000000000000000000000000..3b96f83070e60a00f4468372f7ba853cd894bf8b GIT binary patch literal 122880 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

Cx(jmX(hS3@zSj?E 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 z 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 N2mb$o|NkHU|1Y?q+DZTb literal 0 HcmV?d00001 From 99632d6b41aba88a9d29b016efd02a0395f5f82f Mon Sep 17 00:00:00 2001 From: Ismael Gomez Date: Fri, 19 Nov 2021 12:41:58 +0100 Subject: [PATCH 06/10] Add lib dependency for new skiq version --- cmake/modules/FindSKIQ.cmake | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/cmake/modules/FindSKIQ.cmake b/cmake/modules/FindSKIQ.cmake index 5d63fa47d..45555a676 100644 --- a/cmake/modules/FindSKIQ.cmake +++ b/cmake/modules/FindSKIQ.cmake @@ -54,7 +54,18 @@ FIND_LIBRARY( /usr/local/lib32 ) -set(SKIQ_LIBRARIES ${SKIQ_LIBRARY} ${SKIQ_LIBRARY_GLIB} ${SKIQ_LIBRARY_USB}) +FIND_LIBRARY( + SKIQ_LIBRARY_TIRPC + NAMES libtirpc.so.3 + PATHS /usr/local/lib + /usr/lib64 + /usr/lib/epiq + /usr/lib/x86_64-linux-gnu + /usr/local/lib64 + /usr/local/lib32 +) + +set(SKIQ_LIBRARIES ${SKIQ_LIBRARY} ${SKIQ_LIBRARY_GLIB} ${SKIQ_LIBRARY_USB} ${SKIQ_LIBRARY_TIRPC}) message(STATUS "SKIQ LIBRARIES " ${SKIQ_LIBRARIES}) message(STATUS "SKIQ INCLUDE DIRS " ${SKIQ_INCLUDE_DIRS}) From 120ad5c72f025cee0f2a5343e423f9052752c8ed Mon Sep 17 00:00:00 2001 From: Ismael Gomez Date: Thu, 21 Oct 2021 16:35:07 +0200 Subject: [PATCH 07/10] ue: store new EARFCN in the foreground of cell_select to avoid race conditions with the other cmd_worker --- srsue/hdr/phy/phy.h | 3 +++ srsue/src/phy/phy.cc | 7 +++++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/srsue/hdr/phy/phy.h b/srsue/hdr/phy/phy.h index 2f00f9fdf..391e3d5b0 100644 --- a/srsue/hdr/phy/phy.h +++ b/srsue/hdr/phy/phy.h @@ -190,6 +190,9 @@ private: // Tracks the current selected cell (last call to cell_select) srsran_cell_t selected_cell = {}; + // Tracks the current selected EARFCN (last call to cell_select) + uint32_t selected_earfcn = 0; + static void set_default_args(phy_args_t& args); bool check_args(const phy_args_t& args); }; diff --git a/srsue/src/phy/phy.cc b/srsue/src/phy/phy.cc index 7f6b9b72b..a71c39aca 100644 --- a/srsue/src/phy/phy.cc +++ b/srsue/src/phy/phy.cc @@ -244,8 +244,7 @@ void phy::set_cells_to_meas(uint32_t earfcn, const std::set& pci) // measurements to avoid a concurrency issue cmd_worker.add_cmd([this, earfcn, pci]() { // Check if the EARFCN matches with serving cell - uint32_t pcell_earfcn = 0; - sfsync.get_current_cell(nullptr, &pcell_earfcn); + uint32_t pcell_earfcn = selected_earfcn; bool available = (pcell_earfcn == earfcn); // Find if there is secondary serving cell configured with the specified EARFCN @@ -303,6 +302,10 @@ bool phy::cell_select(phy_cell_t cell) // Indicate workers that cell selection is in progress common.cell_is_selecting = true; + // Update EARCN before starting the background task to make sure is taken into account when finding carriers to + // measure inter-frequency neighbours (see set_cells_to_meas) + selected_earfcn = cell.earfcn; + cmd_worker_cell.add_cmd([this, cell]() { // Wait SYNC transitions to IDLE sfsync.wait_idle(); From 2d31e111448c9d018432a41b2c422079e4443164 Mon Sep 17 00:00:00 2001 From: Ismael Gomez Date: Thu, 28 Oct 2021 15:35:51 +0200 Subject: [PATCH 08/10] ue,lte: update rx_gain_offset more frequently. Avoid calling UHD driver when getting rx_gain --- lib/src/phy/rf/rf_uhd_imp.cc | 12 +++++------- srsue/hdr/phy/phy_common.h | 4 +++- srsue/src/phy/phy_common.cc | 10 +++++----- 3 files changed, 13 insertions(+), 13 deletions(-) diff --git a/lib/src/phy/rf/rf_uhd_imp.cc b/lib/src/phy/rf/rf_uhd_imp.cc index 3111c07d1..b8ddb09dc 100644 --- a/lib/src/phy/rf/rf_uhd_imp.cc +++ b/lib/src/phy/rf/rf_uhd_imp.cc @@ -141,6 +141,7 @@ struct rf_uhd_handler_t { uint32_t nof_tx_channels = 0; std::array tx_freq = {}; std::array rx_freq = {}; + double cur_rx_gain_ch0 = 0; std::mutex tx_gain_mutex; std::array, SRSRAN_MAX_CHANNELS> tx_gain_db = {}; @@ -1102,6 +1103,9 @@ int rf_uhd_set_rx_gain_ch(void* h, uint32_t ch, double gain) if (handler->uhd->set_rx_gain(ch, gain) != UHD_ERROR_NONE) { return SRSRAN_ERROR; } + if (ch == 0) { + handler->cur_rx_gain_ch0 = gain; + } return SRSRAN_SUCCESS; } @@ -1146,13 +1150,7 @@ int rf_uhd_set_tx_gain_ch(void* h, uint32_t ch, double gain) double rf_uhd_get_rx_gain(void* h) { rf_uhd_handler_t* handler = (rf_uhd_handler_t*)h; - double gain = 0.0; - - if (handler->uhd->get_rx_gain(gain) != UHD_ERROR_NONE) { - return SRSRAN_ERROR; - } - - return gain; + return handler->cur_rx_gain_ch0; } double rf_uhd_get_tx_gain(void* h) diff --git a/srsue/hdr/phy/phy_common.h b/srsue/hdr/phy/phy_common.h index a247bb41b..167c607b5 100644 --- a/srsue/hdr/phy/phy_common.h +++ b/srsue/hdr/phy/phy_common.h @@ -324,7 +324,9 @@ private: std::array avg_rsrp_neigh = {}; static constexpr uint32_t pcell_report_period = 20; - uint32_t rssi_read_cnt = 0; + + static constexpr uint32_t update_rxgain_period = 10; + uint32_t update_rxgain_cnt = 0; rsrp_insync_itf* insync_itf = nullptr; diff --git a/srsue/src/phy/phy_common.cc b/srsue/src/phy/phy_common.cc index f44c57e9e..653180e4d 100644 --- a/srsue/src/phy/phy_common.cc +++ b/srsue/src/phy/phy_common.cc @@ -673,9 +673,9 @@ void phy_common::update_measurements(uint32_t cc_idx, return; } - // Only worker 0 reads the RSSI sensor + // Only worker 0 updates RX gain offset every 10 ms if (rssi_power_buffer) { - if (!rssi_read_cnt) { + if (!update_rxgain_cnt) { // Average RSSI over all symbols in antenna port 0 (make sure SF length is non-zero) float rssi_dbm = SRSRAN_SF_LEN_PRB(cell.nof_prb) > 0 ? (srsran_convert_power_to_dB( @@ -688,9 +688,9 @@ void phy_common::update_measurements(uint32_t cc_idx, rx_gain_offset = get_radio()->get_rx_gain() + args->rx_gain_offset; } - rssi_read_cnt++; - if (rssi_read_cnt >= 1000) { - rssi_read_cnt = 0; + update_rxgain_cnt++; + if (update_rxgain_cnt >= update_rxgain_period) { + update_rxgain_cnt = 0; } } From daa7d8cdb58d34241e08ccd04ba96fe452ddfd0d Mon Sep 17 00:00:00 2001 From: Ismael Gomez Date: Thu, 14 Oct 2021 15:50:19 +0200 Subject: [PATCH 09/10] Increase number of tunnels per UE --- srsenb/hdr/stack/upper/gtpu.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/srsenb/hdr/stack/upper/gtpu.h b/srsenb/hdr/stack/upper/gtpu.h index 2eb1c9046..47399d476 100644 --- a/srsenb/hdr/stack/upper/gtpu.h +++ b/srsenb/hdr/stack/upper/gtpu.h @@ -49,7 +49,7 @@ class gtpu_tunnel_manager public: // A UE should have <= 3 DRBs active, and each DRB should have two tunnels active at the same time at most - const static size_t MAX_TUNNELS_PER_UE = 6; + const static size_t MAX_TUNNELS_PER_UE = 10; enum class tunnel_state { pdcp_active, buffering, forward_to, forwarded_from, inactive }; From 4d382905fdcef463b1915afa8de5e28b0066564e Mon Sep 17 00:00:00 2001 From: Ismael Gomez Date: Thu, 28 Oct 2021 15:16:33 +0200 Subject: [PATCH 10/10] ue,lte: run parse_meas_config after RACH is complete to avoid race condition with PHY reset --- srsue/src/stack/rrc/rrc_procedures.cc | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/srsue/src/stack/rrc/rrc_procedures.cc b/srsue/src/stack/rrc/rrc_procedures.cc index d98262a75..6b7bcb87a 100644 --- a/srsue/src/stack/rrc/rrc_procedures.cc +++ b/srsue/src/stack/rrc/rrc_procedures.cc @@ -1735,12 +1735,6 @@ srsran::proc_outcome_t rrc::ho_proc::init(const asn1::rrc::rrc_conn_recfg_s& rrc // perform the measurement related actions as specified in 5.5.6.1; rrc_ptr->measurements->ho_reest_actions(ho_src_cell.earfcn, target_earfcn); - // if the RRCConnectionReconfiguration message includes the measConfig: - if (not rrc_ptr->measurements->parse_meas_config(&recfg_r8, true, ho_src_cell.earfcn)) { - Error("Parsing measurementConfig. TODO: Send ReconfigurationReject"); - return proc_outcome_t::yield; // wait for t304 expiry - } - // Note: We delay the enqueuing of RRC Reconf Complete message to avoid that the message goes in an UL grant // directed at the old RNTI. rrc_ptr->task_sched.defer_callback(4, [this]() { @@ -1776,6 +1770,12 @@ srsran::proc_outcome_t rrc::ho_proc::react(ra_completed_ev ev) if (ev.success) { Info("Random Access completed. Applying final configuration and finishing procedure"); + // if the RRCConnectionReconfiguration message includes the measConfig: + if (not rrc_ptr->measurements->parse_meas_config(&recfg_r8, true, ho_src_cell.earfcn)) { + Error("Parsing measurementConfig. TODO: Send ReconfigurationReject"); + return proc_outcome_t::yield; // wait for t304 expiry + } + // TS 36.331, sec. 5.3.5.4, last "1>" rrc_ptr->t304.stop(); rrc_ptr->apply_rr_config_dedicated_on_ho_complete(recfg_r8.rr_cfg_ded);