E1AP enc/dec lib improvements
This MR is including some fixes and improvements for the E1AP library, focusing mostly on Bearer Context Management:
- struct reorganization: split setup and modification request messages into distinct structures, ensuring compliance with 3GPP TS 38.463 specifications
- add encoding/decoding sub-functions for different IEs
- improvements to Bearer Context Management: Implemented various improvements to the E1 Bearer Context Setup Response and Request, including the adoption of encoding/decoding sub-functions for different IEs
- use lib functions whenever need (e.g. cp_bearer_context_setup_request in cucp_cuup_e1ap.c)
- handle optional struct members as pointers
- updated copy/equality check utility functions
EDIT: The MR is also including the changes from !3222 (closed):
While testing E1 with security enabled for DRBs, it was found that data traffic was not functional.
The problem was that security settings were modified in the PDCP reestablishment happening when receiving Bearer Context Modification Request.
So some restructuring was done.
The actual fix is in 18176297, the others are for support. Basically we introduce a boolean to check if the security settings are present in Bearer Context Modification Request and we change PDCP security settings only if they are.
(Note that in OAI CU security settings are not sent in Bearer Context Modification Request, so we could also remove all this, but we need to be compatible with other cu-up and/or cu-cp.)