@@ -135,19 +135,6 @@ du_setup_result du_processor_impl::handle_du_setup_request(const du_setup_reques
135135 return res;
136136 }
137137
138- const du_configuration_context& du_config = cfg.du_cfg_hdlr ->get_context ();
139- for (const du_cell_configuration& cell : du_config.served_cells ) {
140- // Add cell to lookup
141- if (tac_to_nr_cgi.find (cell.tac ) == tac_to_nr_cgi.end ()) {
142- tac_to_nr_cgi.emplace (cell.tac , std::vector<nr_cell_global_id_t >{cell.cgi });
143- } else {
144- tac_to_nr_cgi.at (cell.tac ).push_back (cell.cgi );
145- }
146- }
147-
148- // connect paging f1ap paging adapter
149- f1ap_paging_notifier.connect_f1 (f1ap->get_f1ap_paging_manager ());
150-
151138 // Prepare DU response with accepted setup.
152139 auto & accepted = res.result .emplace <du_setup_result::accepted>();
153140 accepted.gnb_cu_name = cfg.cu_cp_cfg .node .ran_node_name ;
@@ -287,88 +274,6 @@ void du_processor_impl::handle_du_initiated_ue_context_release_request(const f1a
287274 }));
288275}
289276
290- void du_processor_impl::handle_paging_message (cu_cp_paging_message& msg)
291- {
292- // Add assist data for paging
293- // This will go through all tai items in the paging message and add the related NR CGI to the assist data for paging
294- // if it doesn't exist yet.
295- // This way the F1AP will always receive messages with the assist data for paging set.
296-
297- bool nr_cgi_for_tac_found = false ;
298-
299- for (const auto & tai_list_item : msg.tai_list_for_paging ) {
300- if (tac_to_nr_cgi.find (tai_list_item.tai .tac ) == tac_to_nr_cgi.end ()) {
301- logger.debug (" Could not find nr cgi for tac={}" , tai_list_item.tai .tac );
302- continue ;
303- }
304-
305- nr_cgi_for_tac_found = true ;
306-
307- for (const auto & cgi : tac_to_nr_cgi.at (tai_list_item.tai .tac )) {
308- // Setup recommended cell item to add in case it doesn't exist
309- cu_cp_recommended_cell_item cell_item;
310- cell_item.ngran_cgi = cgi;
311-
312- // Check if assist data for paging is already present
313- if (msg.assist_data_for_paging .has_value ()) {
314- // Check if assist data for recommended cells is already present
315- if (msg.assist_data_for_paging .value ().assist_data_for_recommended_cells .has_value ()) {
316- // Check if recommended cell list already contains values
317- if (!msg.assist_data_for_paging .value ()
318- .assist_data_for_recommended_cells .value ()
319- .recommended_cells_for_paging .recommended_cell_list .empty ()) {
320- // Check if NR CGI already present
321- bool is_present = false ;
322- for (const auto & present_cell_item : msg.assist_data_for_paging .value ()
323- .assist_data_for_recommended_cells .value ()
324- .recommended_cells_for_paging .recommended_cell_list ) {
325- if (present_cell_item.ngran_cgi .nci == cgi.nci ) {
326- is_present = true ;
327- continue ;
328- }
329- }
330- if (is_present) {
331- // NR CGI for TAC is already present
332- continue ;
333- }
334- }
335-
336- // NR CGI for TAC is not present so we add it
337- msg.assist_data_for_paging .value ()
338- .assist_data_for_recommended_cells .value ()
339- .recommended_cells_for_paging .recommended_cell_list .push_back (cell_item);
340- } else {
341- // Assist data for recommended cells is not present, we need to add it
342- cu_cp_assist_data_for_recommended_cells assist_data_for_recommended_cells;
343- assist_data_for_recommended_cells.recommended_cells_for_paging .recommended_cell_list .push_back (cell_item);
344-
345- msg.assist_data_for_paging .value ().assist_data_for_recommended_cells = assist_data_for_recommended_cells;
346- }
347- } else {
348- // Assist data for paging is not present, we need to add it
349- cu_cp_assist_data_for_paging assist_data_for_paging;
350-
351- // Add assist data for recommended cells
352- cu_cp_assist_data_for_recommended_cells assist_data_for_recommended_cells;
353- // Add cell item
354- assist_data_for_recommended_cells.recommended_cells_for_paging .recommended_cell_list .push_back (cell_item);
355-
356- assist_data_for_paging.assist_data_for_recommended_cells = assist_data_for_recommended_cells;
357-
358- msg.assist_data_for_paging = assist_data_for_paging;
359- }
360- }
361- }
362-
363- // If not nr cgi for a tac from the paging message is found paging message is not forwarded to DU
364- if (!nr_cgi_for_tac_found) {
365- logger.info (" du_index={}: No NR CGI for paging TACs available at this DU" , cfg.du_index );
366- return ;
367- }
368-
369- f1ap_paging_notifier.on_paging_message (msg);
370- }
371-
372277bool du_processor_impl::has_cell (pci_t pci)
373278{
374279 return cfg.du_cfg_hdlr ->get_context ().find_cell (pci) != nullptr ;
0 commit comments