srsUE: Add option to filter N_id_2 / PSS to configuration

master
Matan Perelman 4 years ago committed by Andre Puschmann
parent ee997a4e4e
commit 7ee52dc676

@ -39,6 +39,8 @@ struct phy_args_t {
std::vector<uint32_t> dl_nr_arfcn_list = { std::vector<uint32_t> dl_nr_arfcn_list = {
632628}; // vectorized version of dl_nr_arfcn that gets populated during init 632628}; // vectorized version of dl_nr_arfcn that gets populated during init
int force_N_id_2 = -1; // Cell identity within the identity group (PSS) to filter.
float dl_freq = -1.0f; float dl_freq = -1.0f;
float ul_freq = -1.0f; float ul_freq = -1.0f;

@ -36,7 +36,7 @@ public:
explicit search(srslog::basic_logger& logger) : logger(logger) {} explicit search(srslog::basic_logger& logger) : logger(logger) {}
~search(); ~search();
void init(srsran::rf_buffer_t& buffer_, uint32_t nof_rx_channels, search_callback* parent); void init(srsran::rf_buffer_t& buffer_, uint32_t nof_rx_channels, search_callback* parent, int force_N_id_2_);
void reset(); void reset();
float get_last_cfo(); float get_last_cfo();
void set_agc_enable(bool enable); void set_agc_enable(bool enable);

@ -396,6 +396,10 @@ static int parse_args(all_args_t* args, int argc, char* argv[])
bpo::value<bool>(&use_standard_lte_rates)->default_value(false), bpo::value<bool>(&use_standard_lte_rates)->default_value(false),
"Whether to use default LTE sample rates instead of shorter variants.") "Whether to use default LTE sample rates instead of shorter variants.")
("phy.force_N_id_2",
bpo::value<int>(&args->phy.force_N_id_2)->default_value(-1),
"Force using a specific PSS (set to -1 to allow all PSSs).")
// UE simulation args // UE simulation args
("sim.airplane_t_on_ms", ("sim.airplane_t_on_ms",
bpo::value<int>(&args->stack.nas.sim.airplane_t_on_ms)->default_value(-1), bpo::value<int>(&args->stack.nas.sim.airplane_t_on_ms)->default_value(-1),

@ -46,7 +46,7 @@ search::~search()
srsran_ue_cellsearch_free(&cs); srsran_ue_cellsearch_free(&cs);
} }
void search::init(srsran::rf_buffer_t& buffer_, uint32_t nof_rx_channels, search_callback* parent) void search::init(srsran::rf_buffer_t& buffer_, uint32_t nof_rx_channels, search_callback* parent, int force_N_id_2_)
{ {
p = parent; p = parent;
@ -64,7 +64,7 @@ void search::init(srsran::rf_buffer_t& buffer_, uint32_t nof_rx_channels, search
// Set options defined in expert section // Set options defined in expert section
p->set_ue_sync_opts(&cs.ue_sync, 0); p->set_ue_sync_opts(&cs.ue_sync, 0);
force_N_id_2 = -1; force_N_id_2 = force_N_id_2_;
} }
void search::reset() void search::reset()

@ -81,7 +81,7 @@ void sync::init(srsran::radio_interface_phy* _radio,
} }
// Initialize cell searcher // Initialize cell searcher
search_p.init(sf_buffer, nof_rf_channels, this); search_p.init(sf_buffer, nof_rf_channels, this, worker_com->args->force_N_id_2);
// Initialize SFN synchronizer, it uses only pcell buffer // Initialize SFN synchronizer, it uses only pcell buffer
sfn_p.init(&ue_sync, worker_com->args, sf_buffer, sf_buffer.size()); sfn_p.init(&ue_sync, worker_com->args, sf_buffer, sf_buffer.size());

Loading…
Cancel
Save