CU-UP: refactor DRB to be setup logic (E1 bearer context) into reusable helper functions
The new bearer context setup logic is looping through the PDU sessions
to be setup list first and then through the DRB to be setup list.
The function has still room for improvement since e1_bearer_context_setup
is calling a getter for NR_DRB_ToAddModList_t which has another nested
DRB loop. The goal of this commit is to further simplify the logic
by minimizing unnecessary nested loops, improving clarity and preparing
for reuse in Bearer Context Modification.
Main changes:
- Build DRB_ToAddMod list in the DRBs loop and centralize SDAP/PDCP configuration
- Add helpers to fill DRB to be setup and QoS flow handling, to improve organization
and enable reuse in bearer context modification procedures.
Implementation:
- Replace fill_DRB_configList_e1() with fill_rrc_drb_to_addmod()
* Build one NR_DRB_ToAddMod item per DRB from E1 DRB_nGRAN_to_setup
* Accumulate all DRBs into a single NR_DRB_ToAddModList_t per PDU session
- Call e1_add_bearers() once per PDU session with the aggregated list,
- Introduce fill_e1_qos_flows_setup() to populate DRB_nGRAN_setup_t
* Iterate E1AP QoS flows and copy QFIs into the E1 response
- Introduce fill_e1_drb_setup() to encapsulate DRB_nGRAN_setup_t filling
via fill_rrc_drb_to_addmod()
- Refactor e1_bearer_context_setup() to use new helper functions
Note: supports multiple QoS flows per DRB (TS 38.331 compliant)
* Move security parameters setup to caller scope
* Simplify DRB loop logic for better readability
Signed-off-by:
Guido Casati <guido.casati@openairinterface.org>
Showing
This diff is collapsed.
Please register or sign in to comment