RRC multi-cell: add cell management library with lookup and cleanup
This commit introduces a new library module (rrc_cell_management.c/h) to centralise functions that provides cell lookup, DU-specific cell management, and cell lifecycle managements. The design uses a dual-tree architecture: - Global cell tree: RB-tree at RRC level (rrc->cells) keyed by cell_id, used for O(log N_CELL) lookups and for maintaining num_cells. - DU-specific storage: seq_arr_t per DU (du->cells) for iteration and management of cells belonging to each DU. API added: - Global tree: get_cell_by_cell_id()(finds cell using global RB-tree lookup (O(log N_CELL) complexity); rrc_add_cell(); rrc_rm_cell() (rrc_rm_cell removes from tree, decrements num_cells, and frees the cell via rrc_free_cell_container). - DU-local seq_arr: rrc_get_cell_for_du(), rrc_get_cell_by_pci_for_du(), rrc_add_cell_to_du() (with duplicate cell_id/PCI checks). - Cleanup: rrc_free_cell_container() (frees ASN.1 MIB/SIB1/MTC and container Build: add rrc_cell_management static library in openair2/RRC/NR; link it into nr_rrc from top-level CMakeLists.txt.
This commit is contained in:
+1
-1
@@ -342,7 +342,7 @@ target_link_libraries(lte_rrc PRIVATE nr_rrc)
|
||||
#NR RRC
|
||||
#######
|
||||
add_library(nr_rrc ${OPENAIR2_DIR}/RRC/NR/MESSAGES/asn1_msg.c)
|
||||
target_link_libraries(nr_rrc PUBLIC asn1_nr_rrc asn1_lte_rrc)
|
||||
target_link_libraries(nr_rrc PUBLIC asn1_nr_rrc asn1_lte_rrc rrc_cell_management)
|
||||
|
||||
# S1AP
|
||||
##############
|
||||
|
||||
Reference in New Issue
Block a user