@@ -41,11 +41,12 @@ void cell_meas_manager_test::create_default_manager()
4141 // Add 2 cells - one being the neighbor of the other one
4242
4343 cell_meas_config cell_cfg;
44- cell_cfg.serving_cell_cfg .nci = 0 ;
44+ cell_cfg.serving_cell_cfg .nci = 0 ;
45+ cell_cfg.periodic_report_cfg_id = uint_to_report_cfg_id (1 );
4546
4647 neighbor_cell_meas_config ncell_meas_cfg;
4748 ncell_meas_cfg.nci = 1 ;
48- ncell_meas_cfg.report_cfg_ids .push_back (uint_to_report_cfg_id (1 ));
49+ ncell_meas_cfg.report_cfg_ids .push_back (uint_to_report_cfg_id (2 ));
4950 cell_cfg.ncells .push_back (ncell_meas_cfg);
5051
5152 cell_cfg.serving_cell_cfg .band .emplace () = nr_band::n78;
@@ -65,7 +66,7 @@ void cell_meas_manager_test::create_default_manager()
6566 cell_cfg.ncells .clear ();
6667 ncell_meas_cfg.nci = 0 ;
6768 ncell_meas_cfg.report_cfg_ids .clear ();
68- ncell_meas_cfg.report_cfg_ids .push_back (uint_to_report_cfg_id (1 ));
69+ ncell_meas_cfg.report_cfg_ids .push_back (uint_to_report_cfg_id (2 ));
6970 cell_cfg.ncells .push_back (ncell_meas_cfg);
7071
7172 cell_cfg.serving_cell_cfg .band .emplace () = nr_band::n78;
@@ -79,10 +80,25 @@ void cell_meas_manager_test::create_default_manager()
7980 }
8081 cfg.cells .emplace (cell_cfg.serving_cell_cfg .nci , cell_cfg);
8182
83+ // Add periodic event.
84+ rrc_report_cfg_nr periodic_report_cfg;
85+ auto & periodical_cfg = periodic_report_cfg.periodical .emplace ();
86+
87+ periodical_cfg.rs_type = srs_cu_cp::rrc_nr_rs_type::ssb;
88+ periodical_cfg.report_interv = 1024 ;
89+ periodical_cfg.report_amount = -1 ;
90+ periodical_cfg.report_quant_cell .rsrp = true ;
91+ periodical_cfg.report_quant_cell .rsrq = true ;
92+ periodical_cfg.report_quant_cell .sinr = true ;
93+ periodical_cfg.max_report_cells = 4 ;
94+
95+ periodic_report_cfg.periodical = periodical_cfg;
96+ cfg.report_config_ids .emplace (uint_to_report_cfg_id (1 ), periodic_report_cfg);
97+
8298 // Add A3 event.
83- rrc_report_cfg_nr report_cfg ;
84- auto & event_trigger_cfg = report_cfg .event_triggered .emplace ();
85- auto & event_a3 = report_cfg .event_triggered .value ().event_id .event_a3 .emplace ();
99+ rrc_report_cfg_nr a3_report_cfg ;
100+ auto & event_trigger_cfg = a3_report_cfg .event_triggered .emplace ();
101+ auto & event_a3 = a3_report_cfg .event_triggered .value ().event_id .event_a3 .emplace ();
86102
87103 event_a3.a3_offset .rsrp .emplace () = 6 ;
88104 event_a3.hysteresis = 0 ;
@@ -102,9 +118,58 @@ void cell_meas_manager_test::create_default_manager()
102118 report_quant_rs_idxes.sinr = true ;
103119 event_trigger_cfg.report_quant_rs_idxes = report_quant_rs_idxes;
104120
105- report_cfg.event_triggered = event_trigger_cfg;
121+ a3_report_cfg.event_triggered = event_trigger_cfg;
122+ cfg.report_config_ids .emplace (uint_to_report_cfg_id (2 ), a3_report_cfg);
123+
124+ manager = create_cell_meas_manager (cfg, mobility_manager);
125+ ASSERT_NE (manager, nullptr );
126+ }
127+
128+ void cell_meas_manager_test::create_manager_without_ncells_and_periodic_report ()
129+ {
130+ cell_meas_manager_cfg cfg;
131+
132+ // Add serving cell
133+
134+ cell_meas_config cell_cfg;
135+ cell_cfg.serving_cell_cfg .nci = 0 ;
136+
137+ cell_cfg.serving_cell_cfg .band .emplace () = nr_band::n78;
138+ cell_cfg.serving_cell_cfg .ssb_arfcn .emplace () = 632628 ;
139+ cell_cfg.serving_cell_cfg .ssb_scs .emplace () = subcarrier_spacing::kHz30 ;
140+ {
141+ rrc_ssb_mtc ssb_mtc;
142+ ssb_mtc.dur = 1 ;
143+ ssb_mtc.periodicity_and_offset .sf5 .emplace () = 0 ;
144+ cell_cfg.serving_cell_cfg .ssb_mtc .emplace () = ssb_mtc;
145+ }
146+ cfg.cells .emplace (cell_cfg.serving_cell_cfg .nci , cell_cfg);
147+
148+ // Add A3 event.
149+ rrc_report_cfg_nr a3_report_cfg;
150+ auto & event_trigger_cfg = a3_report_cfg.event_triggered .emplace ();
151+ auto & event_a3 = a3_report_cfg.event_triggered .value ().event_id .event_a3 .emplace ();
152+
153+ event_a3.a3_offset .rsrp .emplace () = 6 ;
154+ event_a3.hysteresis = 0 ;
155+ event_a3.time_to_trigger = 100 ;
156+
157+ event_trigger_cfg.rs_type = srs_cu_cp::rrc_nr_rs_type::ssb;
158+ event_trigger_cfg.report_interv = 1024 ;
159+ event_trigger_cfg.report_amount = -1 ;
160+ event_trigger_cfg.report_quant_cell .rsrp = true ;
161+ event_trigger_cfg.report_quant_cell .rsrq = true ;
162+ event_trigger_cfg.report_quant_cell .sinr = true ;
163+ event_trigger_cfg.max_report_cells = 4 ;
164+
165+ rrc_meas_report_quant report_quant_rs_idxes;
166+ report_quant_rs_idxes.rsrp = true ;
167+ report_quant_rs_idxes.rsrq = true ;
168+ report_quant_rs_idxes.sinr = true ;
169+ event_trigger_cfg.report_quant_rs_idxes = report_quant_rs_idxes;
106170
107- cfg.report_config_ids .emplace (uint_to_report_cfg_id (1 ), report_cfg);
171+ a3_report_cfg.event_triggered = event_trigger_cfg;
172+ cfg.report_config_ids .emplace (uint_to_report_cfg_id (1 ), a3_report_cfg);
108173
109174 manager = create_cell_meas_manager (cfg, mobility_manager);
110175 ASSERT_NE (manager, nullptr );
@@ -113,7 +178,7 @@ void cell_meas_manager_test::create_default_manager()
113178void cell_meas_manager_test::check_default_meas_cfg (const optional<rrc_meas_cfg>& meas_cfg, meas_obj_id_t meas_obj_id)
114179{
115180 ASSERT_TRUE (meas_cfg.has_value ());
116- ASSERT_EQ (meas_cfg.value ().meas_obj_to_add_mod_list .size (), 1 );
181+ ASSERT_EQ (meas_cfg.value ().meas_obj_to_add_mod_list .size (), 2 );
117182 ASSERT_EQ ((unsigned )meas_cfg.value ().meas_obj_to_add_mod_list .begin ()->meas_obj_id , meas_obj_id_to_uint (meas_obj_id));
118183 // TODO: Add checks for more values
119184}
0 commit comments