From e4a15c9c51e2c02f9447711b494a6bf12128dbea Mon Sep 17 00:00:00 2001 From: Francisco Paisana Date: Mon, 7 Feb 2022 21:44:31 +0000 Subject: [PATCH] rrc,gnb: move non-phy fields out of phy_cell_nr_t --- lib/include/srsran/asn1/rrc_nr_utils.h | 2 +- lib/include/srsran/common/band_helper.h | 4 ++-- lib/include/srsran/common/phy_cfg_nr.h | 2 +- .../srsran/interfaces/ue_nr_interfaces.h | 2 +- lib/include/srsran/phy/common/phy_common_nr.h | 6 +++--- lib/include/srsran/phy/sync/ssb.h | 2 +- lib/src/asn1/rrc_nr_utils.cc | 2 +- lib/src/common/band_helper.cc | 2 +- lib/src/phy/common/phy_common_nr.c | 4 ++-- lib/src/phy/sync/test/ssb_decode_test.c | 2 +- lib/src/phy/sync/test/ssb_file_test.c | 2 +- lib/src/phy/sync/test/ssb_grid_test.c | 2 +- lib/src/phy/sync/test/ssb_measure_test.c | 2 +- lib/src/phy/ue/test/ue_sync_nr_test.c | 2 +- srsenb/hdr/phy/phy_common.h | 4 ++-- srsenb/src/enb_cfg_parser.cc | 5 ++--- srsgnb/hdr/phy/phy_nr_interfaces.h | 14 ++++--------- srsgnb/hdr/stack/rrc/rrc_nr_config.h | 9 +++++--- srsgnb/hdr/stack/rrc/rrc_nr_du_manager.h | 2 +- srsgnb/src/stack/rrc/cell_asn1_config.cc | 14 ++++++------- srsgnb/src/stack/rrc/rrc_nr_config_utils.cc | 21 +++++-------------- srsue/hdr/phy/nr/cell_search.h | 2 +- srsue/src/phy/test/gnb_emulator.h | 2 +- srsue/src/phy/test/gnb_rf_emulator.h | 2 +- srsue/src/phy/test/nr_cell_search_test.cc | 2 +- srsue/src/phy/test/nr_sa_cell_search_test.cc | 4 ++-- 26 files changed, 51 insertions(+), 66 deletions(-) diff --git a/lib/include/srsran/asn1/rrc_nr_utils.h b/lib/include/srsran/asn1/rrc_nr_utils.h index a9815b262..8c77e399d 100644 --- a/lib/include/srsran/asn1/rrc_nr_utils.h +++ b/lib/include/srsran/asn1/rrc_nr_utils.h @@ -133,7 +133,7 @@ bool fill_phy_ssb_cfg(const srsran_carrier_nr_t& carrier void fill_ssb_pos_in_burst(const asn1::rrc_nr::serving_cell_cfg_common_sib_s& ssb_pos, phy_cfg_nr_t::ssb_cfg_t* out_ssb); bool fill_ssb_pattern_scs(const srsran_carrier_nr_t& carrier, - srsran_ssb_patern_t* pattern, + srsran_ssb_pattern_t* pattern, srsran_subcarrier_spacing_t* ssb_scs); bool fill_phy_ssb_cfg(const srsran_carrier_nr_t& carrier, const asn1::rrc_nr::serving_cell_cfg_common_sib_s& serv_cell_cfg, diff --git a/lib/include/srsran/common/band_helper.h b/lib/include/srsran/common/band_helper.h index cf4ceef2b..44ff136c2 100644 --- a/lib/include/srsran/common/band_helper.h +++ b/lib/include/srsran/common/band_helper.h @@ -80,7 +80,7 @@ public: * @param scs SSB Subcarrier spacing * @return The SSB pattern case if band and subcarrier spacing match, SRSRAN_SSB_PATTERN_INVALID otherwise */ - static srsran_ssb_patern_t get_ssb_pattern(uint16_t band, srsran_subcarrier_spacing_t scs); + static srsran_ssb_pattern_t get_ssb_pattern(uint16_t band, srsran_subcarrier_spacing_t scs); /** * @brief Select the lower SSB subcarrier spacing valid for this band @@ -402,7 +402,7 @@ private: struct nr_band_ss_raster { uint16_t band; srsran_subcarrier_spacing_t scs; - srsran_ssb_patern_t pattern; + srsran_ssb_pattern_t pattern; uint32_t gscn_first; uint32_t gscn_step; uint32_t gscn_last; diff --git a/lib/include/srsran/common/phy_cfg_nr.h b/lib/include/srsran/common/phy_cfg_nr.h index d555b2e69..37c1ca499 100644 --- a/lib/include/srsran/common/phy_cfg_nr.h +++ b/lib/include/srsran/common/phy_cfg_nr.h @@ -33,7 +33,7 @@ struct phy_cfg_nr_t { uint32_t periodicity_ms = 0; std::array position_in_burst = {}; srsran_subcarrier_spacing_t scs = srsran_subcarrier_spacing_30kHz; - srsran_ssb_patern_t pattern = SRSRAN_SSB_PATTERN_A; + srsran_ssb_pattern_t pattern = SRSRAN_SSB_PATTERN_A; }; srsran_duplex_config_nr_t duplex = {}; diff --git a/lib/include/srsran/interfaces/ue_nr_interfaces.h b/lib/include/srsran/interfaces/ue_nr_interfaces.h index f2fe244a0..8668ce183 100644 --- a/lib/include/srsran/interfaces/ue_nr_interfaces.h +++ b/lib/include/srsran/interfaces/ue_nr_interfaces.h @@ -301,7 +301,7 @@ public: double center_freq_hz; double ssb_freq_hz; srsran_subcarrier_spacing_t ssb_scs; - srsran_ssb_patern_t ssb_pattern; + srsran_ssb_pattern_t ssb_pattern; srsran_duplex_mode_t duplex_mode; }; diff --git a/lib/include/srsran/phy/common/phy_common_nr.h b/lib/include/srsran/phy/common/phy_common_nr.h index c549e006f..595e36e31 100644 --- a/lib/include/srsran/phy/common/phy_common_nr.h +++ b/lib/include/srsran/phy/common/phy_common_nr.h @@ -349,7 +349,7 @@ typedef enum SRSRAN_API { SRSRAN_SSB_PATTERN_D, // FR2, 120 kHz SCS SRSRAN_SSB_PATTERN_E, // FR2, 240 kHz SCS SRSRAN_SSB_PATTERN_INVALID, -} srsran_ssb_patern_t; +} srsran_ssb_pattern_t; typedef enum SRSRAN_API { SRSRAN_DUPLEX_MODE_FDD = 0, // Paired @@ -732,14 +732,14 @@ SRSRAN_API int srsran_coreset_to_str(srsran_coreset_t* coreset, char* str, uint3 * @param pattern * @return a string describing the SSB pattern */ -SRSRAN_API const char* srsran_ssb_pattern_to_str(srsran_ssb_patern_t pattern); +SRSRAN_API const char* srsran_ssb_pattern_to_str(srsran_ssb_pattern_t pattern); /** * @brief Convert string to SSB pattern * @param str String to convert * @return The pattern, SRSRAN_SSB_PATTERN_INVALID if string is invalid */ -SRSRAN_API srsran_ssb_patern_t srsran_ssb_pattern_fom_str(const char* str); +SRSRAN_API srsran_ssb_pattern_t srsran_ssb_pattern_fom_str(const char* str); /** * @brief Compares if two NR carrier structures are equal diff --git a/lib/include/srsran/phy/sync/ssb.h b/lib/include/srsran/phy/sync/ssb.h index 4d1d4bd25..cb9b2aa99 100644 --- a/lib/include/srsran/phy/sync/ssb.h +++ b/lib/include/srsran/phy/sync/ssb.h @@ -61,7 +61,7 @@ typedef struct SRSRAN_API { double center_freq_hz; ///< Base-band center frequency in Hz double ssb_freq_hz; ///< SSB center frequency srsran_subcarrier_spacing_t scs; ///< SSB configured Subcarrier spacing - srsran_ssb_patern_t pattern; ///< SSB pattern as defined in TS 38.313 section 4.1 Cell search + srsran_ssb_pattern_t pattern; ///< SSB pattern as defined in TS 38.313 section 4.1 Cell search srsran_duplex_mode_t duplex_mode; ///< Set to true if the spectrum is paired (FDD) uint32_t periodicity_ms; ///< SSB periodicity in ms float beta_pss; ///< PSS power allocation diff --git a/lib/src/asn1/rrc_nr_utils.cc b/lib/src/asn1/rrc_nr_utils.cc index 056d7f4c4..f7affbe0e 100644 --- a/lib/src/asn1/rrc_nr_utils.cc +++ b/lib/src/asn1/rrc_nr_utils.cc @@ -1558,7 +1558,7 @@ void fill_ssb_pos_in_burst(const asn1::rrc_nr::serving_cell_cfg_common_sib_s& cf } bool fill_ssb_pattern_scs(const srsran_carrier_nr_t& carrier, - srsran_ssb_patern_t* pattern, + srsran_ssb_pattern_t* pattern, srsran_subcarrier_spacing_t* ssb_scs) { srsran::srsran_band_helper bands; diff --git a/lib/src/common/band_helper.cc b/lib/src/common/band_helper.cc index 8b8fd30a4..e1ff71237 100644 --- a/lib/src/common/band_helper.cc +++ b/lib/src/common/band_helper.cc @@ -166,7 +166,7 @@ uint32_t srsran_band_helper::get_abs_freq_ssb_arfcn(uint16_t return find_lower_bound_abs_freq_ssb(band, scs, freq_point_a_hz + coreset0_offset_hz); } -srsran_ssb_patern_t srsran_band_helper::get_ssb_pattern(uint16_t band, srsran_subcarrier_spacing_t scs) +srsran_ssb_pattern_t srsran_band_helper::get_ssb_pattern(uint16_t band, srsran_subcarrier_spacing_t scs) { // Look for the given band and SCS for (const nr_band_ss_raster& ss_raster : nr_band_ss_raster_table) { diff --git a/lib/src/phy/common/phy_common_nr.c b/lib/src/phy/common/phy_common_nr.c index 1d2c405f2..30f237b89 100644 --- a/lib/src/phy/common/phy_common_nr.c +++ b/lib/src/phy/common/phy_common_nr.c @@ -775,7 +775,7 @@ int srsran_coreset0_ssb_offset(uint32_t idx, srsran_subcarrier_spacing_t ssb_scs return entry->offset_rb; } -const char* srsran_ssb_pattern_to_str(srsran_ssb_patern_t pattern) +const char* srsran_ssb_pattern_to_str(srsran_ssb_pattern_t pattern) { switch (pattern) { case SRSRAN_SSB_PATTERN_A: @@ -795,7 +795,7 @@ const char* srsran_ssb_pattern_to_str(srsran_ssb_patern_t pattern) return "Invalid"; } -srsran_ssb_patern_t srsran_ssb_pattern_fom_str(const char* str) +srsran_ssb_pattern_t srsran_ssb_pattern_fom_str(const char* str) { if (str == NULL) { return SRSRAN_SSB_PATTERN_INVALID; diff --git a/lib/src/phy/sync/test/ssb_decode_test.c b/lib/src/phy/sync/test/ssb_decode_test.c index 0ffacaed5..4ecd957d0 100644 --- a/lib/src/phy/sync/test/ssb_decode_test.c +++ b/lib/src/phy/sync/test/ssb_decode_test.c @@ -29,7 +29,7 @@ static srsran_subcarrier_spacing_t carrier_scs = srsran_subcarrier_spacing_1 static double carrier_freq_hz = 3.5e9 + 960e3; static srsran_subcarrier_spacing_t ssb_scs = srsran_subcarrier_spacing_30kHz; static double ssb_freq_hz = 3.5e9; -static srsran_ssb_patern_t ssb_pattern = SRSRAN_SSB_PATTERN_A; +static srsran_ssb_pattern_t ssb_pattern = SRSRAN_SSB_PATTERN_A; // Channel parameters static cf_t wideband_gain = 1.0f + 0.5 * I; diff --git a/lib/src/phy/sync/test/ssb_file_test.c b/lib/src/phy/sync/test/ssb_file_test.c index 46baed8f3..583b8eba8 100644 --- a/lib/src/phy/sync/test/ssb_file_test.c +++ b/lib/src/phy/sync/test/ssb_file_test.c @@ -20,7 +20,7 @@ #include // NR parameters -static srsran_ssb_patern_t ssb_pattern = SRSRAN_SSB_PATTERN_C; +static srsran_ssb_pattern_t ssb_pattern = SRSRAN_SSB_PATTERN_C; static srsran_subcarrier_spacing_t ssb_scs = srsran_subcarrier_spacing_30kHz; static srsran_duplex_mode_t duplex_mode = SRSRAN_DUPLEX_MODE_TDD; diff --git a/lib/src/phy/sync/test/ssb_grid_test.c b/lib/src/phy/sync/test/ssb_grid_test.c index 2020f900e..d2bd4150d 100644 --- a/lib/src/phy/sync/test/ssb_grid_test.c +++ b/lib/src/phy/sync/test/ssb_grid_test.c @@ -25,7 +25,7 @@ static srsran_subcarrier_spacing_t carrier_scs = srsran_subcarrier_spacing_1 static double carrier_freq_hz = 3.5e9 + 960e3; static srsran_subcarrier_spacing_t ssb_scs = srsran_subcarrier_spacing_30kHz; static double ssb_freq_hz = 3.5e9; -static srsran_ssb_patern_t ssb_pattern = SRSRAN_SSB_PATTERN_A; +static srsran_ssb_pattern_t ssb_pattern = SRSRAN_SSB_PATTERN_A; static uint32_t ssb_idx = 0; // SSB candidate index to test static uint32_t pci = 123; // N_id diff --git a/lib/src/phy/sync/test/ssb_measure_test.c b/lib/src/phy/sync/test/ssb_measure_test.c index b8dbf9244..5ec152695 100644 --- a/lib/src/phy/sync/test/ssb_measure_test.c +++ b/lib/src/phy/sync/test/ssb_measure_test.c @@ -24,7 +24,7 @@ static srsran_subcarrier_spacing_t carrier_scs = srsran_subcarrier_spacing_1 static double carrier_freq_hz = 3.5e9 + 960e3; static srsran_subcarrier_spacing_t ssb_scs = srsran_subcarrier_spacing_30kHz; static double ssb_freq_hz = 3.5e9; -static srsran_ssb_patern_t ssb_pattern = SRSRAN_SSB_PATTERN_A; +static srsran_ssb_pattern_t ssb_pattern = SRSRAN_SSB_PATTERN_A; // Channel parameters static int32_t delay_n = 2; diff --git a/lib/src/phy/ue/test/ue_sync_nr_test.c b/lib/src/phy/ue/test/ue_sync_nr_test.c index 5eb2398fd..39f58f277 100644 --- a/lib/src/phy/ue/test/ue_sync_nr_test.c +++ b/lib/src/phy/ue/test/ue_sync_nr_test.c @@ -27,7 +27,7 @@ static srsran_subcarrier_spacing_t carrier_scs = srsran_subcarrier_spaci static double center_frequency_hz = 3.5e9; static srsran_subcarrier_spacing_t ssb_scs = srsran_subcarrier_spacing_15kHz; static double ssb_frequency_hz = 3.5e9 - 960e3; -static srsran_ssb_patern_t ssb_pattern = SRSRAN_SSB_PATTERN_C; +static srsran_ssb_pattern_t ssb_pattern = SRSRAN_SSB_PATTERN_C; static srsran_duplex_mode_t duplex_mode = SRSRAN_DUPLEX_MODE_TDD; // Test and channel parameters diff --git a/srsenb/hdr/phy/phy_common.h b/srsenb/hdr/phy/phy_common.h index 925567904..dfde7bf58 100644 --- a/srsenb/hdr/phy/phy_common.h +++ b/srsenb/hdr/phy/phy_common.h @@ -122,7 +122,7 @@ public: cc_idx -= cell_list_lte.size(); if (cc_idx < cell_list_nr.size()) { - ret = cell_list_nr[cc_idx].ul_freq_hz; + ret = cell_list_nr[cc_idx].carrier.ul_center_frequency_hz; } return ret; @@ -137,7 +137,7 @@ public: cc_idx -= cell_list_lte.size(); if (cc_idx < cell_list_nr.size()) { - ret = cell_list_nr[cc_idx].dl_freq_hz; + ret = cell_list_nr[cc_idx].carrier.dl_center_frequency_hz; } return ret; diff --git a/srsenb/src/enb_cfg_parser.cc b/srsenb/src/enb_cfg_parser.cc index ee3fc8db8..cefade786 100644 --- a/srsenb/src/enb_cfg_parser.cc +++ b/srsenb/src/enb_cfg_parser.cc @@ -1007,7 +1007,7 @@ static int parse_nr_cell_list(all_args_t* args, rrc_nr_cfg_t* rrc_cfg_nr, rrc_cf parse_opt_field(cell_cfg.phy_cell.rf_port, cellroot, "rf_port"); HANDLEPARSERCODE(parse_required_field(cell_cfg.phy_cell.carrier.pci, cellroot, "pci")); HANDLEPARSERCODE(parse_required_field(cell_cfg.phy_cell.cell_id, cellroot, "cell_id")); - HANDLEPARSERCODE(parse_required_field(cell_cfg.phy_cell.root_seq_idx, cellroot, "root_seq_idx")); + HANDLEPARSERCODE(parse_required_field(cell_cfg.prach_root_seq_idx, cellroot, "root_seq_idx")); HANDLEPARSERCODE(parse_required_field(cell_cfg.tac, cellroot, "tac")); cell_cfg.phy_cell.carrier.pci = cell_cfg.phy_cell.carrier.pci % SRSRAN_NOF_NID_NR; @@ -1594,8 +1594,7 @@ int set_derived_args_nr(all_args_t* args_, rrc_nr_cfg_t* rrc_nr_cfg_, phy_cfg_t* // phy_cell_cfg.root_seq_idx = cfg.root_seq_idx; // PDSCH - cfg.phy_cell.pdsch.rs_power = phy_cfg_->pdsch_cnfg.ref_sig_pwr; - cfg.phy_cell.pdsch.p_b = phy_cfg_->pdsch_cnfg.p_b; + cfg.pdsch_rs_power = phy_cfg_->pdsch_cnfg.ref_sig_pwr; } rrc_nr_cfg_->enb_id = args_->enb.enb_id; rrc_nr_cfg_->mcc = args_->stack.s1ap.mcc; diff --git a/srsgnb/hdr/phy/phy_nr_interfaces.h b/srsgnb/hdr/phy/phy_nr_interfaces.h index 4f91fb479..f9767b782 100644 --- a/srsgnb/hdr/phy/phy_nr_interfaces.h +++ b/srsgnb/hdr/phy/phy_nr_interfaces.h @@ -19,16 +19,10 @@ namespace srsenb { struct phy_cell_cfg_nr_t { - srsran_carrier_nr_t carrier; - uint32_t rf_port; - uint32_t cell_id; - double dl_freq_hz; - double ul_freq_hz; - uint32_t root_seq_idx; - uint32_t num_ra_preambles; - float gain_db; - srsran_pdsch_cfg_t pdsch = {}; - srsran_prach_cfg_t prach = {}; + srsran_carrier_nr_t carrier; + uint32_t rf_port; + uint32_t cell_id; + float gain_db; bool dl_measure; }; diff --git a/srsgnb/hdr/stack/rrc/rrc_nr_config.h b/srsgnb/hdr/stack/rrc/rrc_nr_config.h index 95cfe1dae..555f58941 100644 --- a/srsgnb/hdr/stack/rrc/rrc_nr_config.h +++ b/srsgnb/hdr/stack/rrc/rrc_nr_config.h @@ -25,19 +25,22 @@ namespace srsenb { struct rrc_cell_cfg_nr_t { phy_cell_cfg_nr_t phy_cell; // already contains all PHY-related parameters (i.e. RF port, PCI, etc.) uint32_t tac; // Tracking area code - uint32_t dl_arfcn; // DL freq already included in phy_cell - uint32_t ul_arfcn; // UL freq also in phy_cell + uint32_t dl_arfcn; // DL freq already included in carrier + uint32_t ul_arfcn; // UL freq also in carrier uint32_t dl_absolute_freq_point_a; // derived from DL ARFCN uint32_t ul_absolute_freq_point_a; // derived from UL ARFCN uint32_t band; + uint32_t prach_root_seq_idx; + uint32_t num_ra_preambles; uint32_t coreset0_idx; // Table 13-{1,...15} row index srsran_duplex_mode_t duplex_mode; double ssb_freq_hz; uint32_t ssb_absolute_freq_point; // derived from DL ARFCN (SSB arfcn) srsran_subcarrier_spacing_t ssb_scs; - srsran_ssb_patern_t ssb_pattern; + srsran_ssb_pattern_t ssb_pattern; asn1::rrc_nr::pdcch_cfg_common_s pdcch_cfg_common; asn1::rrc_nr::pdcch_cfg_s pdcch_cfg_ded; + int8_t pdsch_rs_power; }; typedef std::vector rrc_cell_list_nr_t; diff --git a/srsgnb/hdr/stack/rrc/rrc_nr_du_manager.h b/srsgnb/hdr/stack/rrc/rrc_nr_du_manager.h index 94f14d29e..ea4bbfa7d 100644 --- a/srsgnb/hdr/stack/rrc/rrc_nr_du_manager.h +++ b/srsgnb/hdr/stack/rrc/rrc_nr_du_manager.h @@ -32,7 +32,7 @@ public: srsran::unique_byte_buffer_t packed_sib1; asn1::rrc_nr::subcarrier_spacing_e ssb_scs; - srsran_ssb_patern_t ssb_pattern; + srsran_ssb_pattern_t ssb_pattern; double ssb_center_freq_hz; double dl_freq_hz; bool is_standalone; diff --git a/srsgnb/src/stack/rrc/cell_asn1_config.cc b/srsgnb/src/stack/rrc/cell_asn1_config.cc index d9558528f..af90efa99 100644 --- a/srsgnb/src/stack/rrc/cell_asn1_config.cc +++ b/srsgnb/src/stack/rrc/cell_asn1_config.cc @@ -813,21 +813,21 @@ int fill_rach_cfg_common(const rrc_nr_cfg_t& cfg, uint32_t cc, rach_cfg_common_s rach.rach_cfg_generic.ra_resp_win.value = rach_cfg_generic_s::ra_resp_win_opts::sl10; // totalNumberOfRA-Preambles - if (cfg.cell_list[cc].phy_cell.num_ra_preambles != 64) { + if (cfg.cell_list[cc].num_ra_preambles != 64) { rach.total_nof_ra_preambs_present = true; - rach.total_nof_ra_preambs = cfg.cell_list[cc].phy_cell.num_ra_preambles; + rach.total_nof_ra_preambs = cfg.cell_list[cc].num_ra_preambles; } // ssb-perRACH-OccasionAndCB-PreamblesPerSSB rach.ssb_per_rach_occasion_and_cb_preambs_per_ssb_present = true; if (not asn1::number_to_enum(rach.ssb_per_rach_occasion_and_cb_preambs_per_ssb.set_one(), - cfg.cell_list[cc].phy_cell.num_ra_preambles)) { - get_logger(cfg).error("Invalid number of RA preambles=%d", cfg.cell_list[cc].phy_cell.num_ra_preambles); + cfg.cell_list[cc].num_ra_preambles)) { + get_logger(cfg).error("Invalid number of RA preambles=%d", cfg.cell_list[cc].num_ra_preambles); return -1; } rach.ra_contention_resolution_timer.value = rach_cfg_common_s::ra_contention_resolution_timer_opts::sf64; - rach.prach_root_seq_idx.set_l839() = cfg.cell_list[cc].phy_cell.root_seq_idx; + rach.prach_root_seq_idx.set_l839() = cfg.cell_list[cc].prach_root_seq_idx; rach.restricted_set_cfg.value = rach_cfg_common_s::restricted_set_cfg_opts::unrestricted_set; return SRSRAN_SUCCESS; @@ -865,7 +865,7 @@ int fill_serv_cell_common_from_enb_cfg(const rrc_nr_cfg_t& cfg, uint32_t cc, ser { auto& cell_cfg = cfg.cell_list.at(cc); - serv_common.ss_pbch_block_pwr = cell_cfg.phy_cell.pdsch.rs_power; + serv_common.ss_pbch_block_pwr = cell_cfg.pdsch_rs_power; serv_common.n_timing_advance_offset_present = true; serv_common.n_timing_advance_offset = serving_cell_cfg_common_s::n_timing_advance_offset_opts::n0; serv_common.n_timing_advance_offset_present = true; @@ -1230,7 +1230,7 @@ int fill_serv_cell_cfg_common_sib(const rrc_nr_cfg_t& cfg, uint32_t cc, serving_ fill_tdd_ul_dl_config_common(cell_cfg, out.tdd_ul_dl_cfg_common); } - out.ss_pbch_block_pwr = cell_cfg.phy_cell.pdsch.rs_power; + out.ss_pbch_block_pwr = cell_cfg.pdsch_rs_power; return SRSRAN_SUCCESS; } diff --git a/srsgnb/src/stack/rrc/rrc_nr_config_utils.cc b/srsgnb/src/stack/rrc/rrc_nr_config_utils.cc index a5cf4ed07..c29caad9a 100644 --- a/srsgnb/src/stack/rrc/rrc_nr_config_utils.cc +++ b/srsgnb/src/stack/rrc/rrc_nr_config_utils.cc @@ -109,14 +109,6 @@ void generate_default_nr_phy_cell(phy_cell_cfg_nr_t& phy_cell) phy_cell.carrier.scs = srsran_subcarrier_spacing_15kHz; phy_cell.carrier.nof_prb = 52; phy_cell.carrier.max_mimo_layers = 1; - - phy_cell.dl_freq_hz = 0; // auto set - phy_cell.ul_freq_hz = 0; - phy_cell.num_ra_preambles = 8; - - // PDSCH - phy_cell.pdsch.rs_power = 0; - phy_cell.pdsch.p_b = 0; } /// Generate default rrc nr cell configuration @@ -125,6 +117,7 @@ void generate_default_nr_cell(rrc_cell_cfg_nr_t& cell) cell = {}; cell.coreset0_idx = 6; cell.ssb_absolute_freq_point = 0; // auto derived + cell.num_ra_preambles = 8; generate_default_nr_phy_cell(cell.phy_cell); // PDCCH @@ -208,25 +201,21 @@ int derive_phy_cell_freq_params(uint32_t dl_arfcn, uint32_t ul_arfcn, phy_cell_c srsran::srsran_band_helper band_helper; // derive DL freq from ARFCN - if (phy_cell.dl_freq_hz == 0) { - phy_cell.dl_freq_hz = band_helper.nr_arfcn_to_freq(dl_arfcn); + if (phy_cell.carrier.dl_center_frequency_hz == 0) { + phy_cell.carrier.dl_center_frequency_hz = band_helper.nr_arfcn_to_freq(dl_arfcn); } // derive UL freq from ARFCN - if (phy_cell.ul_freq_hz == 0) { + if (phy_cell.carrier.ul_center_frequency_hz == 0) { // auto-detect UL frequency if (ul_arfcn == 0) { // derive UL ARFCN from given DL ARFCN ul_arfcn = band_helper.get_ul_arfcn_from_dl_arfcn(dl_arfcn); ERROR_IF_NOT(ul_arfcn > 0, "Can't derive UL ARFCN from DL ARFCN %d", dl_arfcn); } - phy_cell.ul_freq_hz = band_helper.nr_arfcn_to_freq(ul_arfcn); + phy_cell.carrier.ul_center_frequency_hz = band_helper.nr_arfcn_to_freq(ul_arfcn); } - // copy center frequencies - phy_cell.carrier.dl_center_frequency_hz = phy_cell.dl_freq_hz; - phy_cell.carrier.ul_center_frequency_hz = phy_cell.ul_freq_hz; - return SRSRAN_SUCCESS; } diff --git a/srsue/hdr/phy/nr/cell_search.h b/srsue/hdr/phy/nr/cell_search.h index ec983ac14..63090e443 100644 --- a/srsue/hdr/phy/nr/cell_search.h +++ b/srsue/hdr/phy/nr/cell_search.h @@ -32,7 +32,7 @@ public: double center_freq_hz; double ssb_freq_hz; srsran_subcarrier_spacing_t ssb_scs; - srsran_ssb_patern_t ssb_pattern; + srsran_ssb_pattern_t ssb_pattern; srsran_duplex_mode_t duplex_mode; }; diff --git a/srsue/src/phy/test/gnb_emulator.h b/srsue/src/phy/test/gnb_emulator.h index 497f079ed..8573cfa8a 100644 --- a/srsue/src/phy/test/gnb_emulator.h +++ b/srsue/src/phy/test/gnb_emulator.h @@ -33,7 +33,7 @@ public: double srate_hz; srsran_carrier_nr_t carrier; srsran_subcarrier_spacing_t ssb_scs; - srsran_ssb_patern_t ssb_pattern; + srsran_ssb_pattern_t ssb_pattern; uint32_t ssb_periodicity_ms; srsran_duplex_mode_t duplex_mode; srsran::channel::args_t channel; diff --git a/srsue/src/phy/test/gnb_rf_emulator.h b/srsue/src/phy/test/gnb_rf_emulator.h index ab54efc88..e3083ddd4 100644 --- a/srsue/src/phy/test/gnb_rf_emulator.h +++ b/srsue/src/phy/test/gnb_rf_emulator.h @@ -60,7 +60,7 @@ public: double srate_hz; srsran_carrier_nr_t base_carrier; srsran_subcarrier_spacing_t ssb_scs; - srsran_ssb_patern_t ssb_pattern; + srsran_ssb_pattern_t ssb_pattern; uint32_t ssb_periodicity_ms; srsran_duplex_mode_t duplex_mode; std::set pci_list; diff --git a/srsue/src/phy/test/nr_cell_search_test.cc b/srsue/src/phy/test/nr_cell_search_test.cc index 08494e160..1dae520fe 100644 --- a/srsue/src/phy/test/nr_cell_search_test.cc +++ b/srsue/src/phy/test/nr_cell_search_test.cc @@ -48,7 +48,7 @@ public: srsran::channel::args_t channel; std::string log_level = "error"; - srsran_ssb_patern_t get_ssb_pattern() const { return srsran::srsran_band_helper().get_ssb_pattern(band, ssb_scs); } + srsran_ssb_pattern_t get_ssb_pattern() const { return srsran::srsran_band_helper().get_ssb_pattern(band, ssb_scs); } srsran_duplex_mode_t get_duplex_mode() const { return srsran::srsran_band_helper().get_duplex_mode(band); } }; diff --git a/srsue/src/phy/test/nr_sa_cell_search_test.cc b/srsue/src/phy/test/nr_sa_cell_search_test.cc index d80c526d0..36c9aebe7 100644 --- a/srsue/src/phy/test/nr_sa_cell_search_test.cc +++ b/srsue/src/phy/test/nr_sa_cell_search_test.cc @@ -24,7 +24,7 @@ struct args_t { // Generic parameters double srate_hz = 11.52e6; srsran_carrier_nr_t base_carrier = SRSRAN_DEFAULT_CARRIER_NR; - srsran_ssb_patern_t ssb_pattern = SRSRAN_SSB_PATTERN_A; + srsran_ssb_pattern_t ssb_pattern = SRSRAN_SSB_PATTERN_A; srsran_subcarrier_spacing_t ssb_scs = srsran_subcarrier_spacing_15kHz; srsran_duplex_mode_t duplex_mode = SRSRAN_DUPLEX_MODE_FDD; uint32_t duration_ms = 1000; @@ -216,7 +216,7 @@ struct cell_search_result_t { bool found = false; double ssb_abs_freq_hz = 0.0f; srsran_subcarrier_spacing_t ssb_scs = srsran_subcarrier_spacing_15kHz; - srsran_ssb_patern_t ssb_pattern = SRSRAN_SSB_PATTERN_A; + srsran_ssb_pattern_t ssb_pattern = SRSRAN_SSB_PATTERN_A; srsran_duplex_mode_t duplex_mode = SRSRAN_DUPLEX_MODE_FDD; srsran_mib_nr_t mib = {}; uint32_t pci = 0;