RRC: Multi-cell handling architecture

This MR implements a foundational multi-cell handling architecture for RRC by separating DU management from cell management and establishing a hierarchical cell organization within each DU container. The changes enable proper multi-cell support where each DU can serve multiple cells, addressing the previous limitation where DU and cell management were tightly coupled with the assumption of one cell per DU.

Key Changes:

  • Data Structure Separation: Separated for DU containers (DU-specific info) from cell containers (cell-specific data)
  • Global DU and Cell Trees: Cells are now stored in global RB trees in RRC, similarly to DUs
  • Du-specific cell seq_arr: within each DU container (du->cells) is stored a seq_arr of cells belonging to the DU
  • UE Cell Association Framework: Introduced serving_cells array to track PCell and SCells for each UE with servCellIndex indexing
  • Cell Management Library: Extracted cell management functions into rrc_cell_management.c/h for better testability and maintainability

Other relevant changes:

  • F1AP Refactoring: cell list definitions, heap allocation to prevent stack overflow
  • 5G-S-TMSI Helpers: Common helper functions for 3GPP TS 23.003 compliant construction
  • Integration Tests: Comprehensive test suite for DU lookup, cell lookup, and UE cell association
  • Cell Duplication Checks: Validation in F1 DU configuration update to prevent duplicate cells
  • Documentation: Updated RRC developer documentation with multi-cell architecture details

Validated with RFsim in re-establishment and handover scenarios.

Edited by Guido Casati

Merge request reports

Loading