Refactor F1 UE context messages, add unit tests
Add encoder+decoder+util functions for F1 UE context messages, and use them in the stack. The overall goal is to unit test encoder+decoder (to be sure that what we send is what we receive), and remove any memory leaks related to F1 handling. Messages that have a unit test:
- F1 UE context setup request/response
- F1 UE context modification request/response
- F1 UE context release request/command/complete
This MR removes almost all remaining memory leaks that are observable in a "standard" configuration, running SISO in RFsim. In RFsim (without channel modelling), there are only two memory leaks shown in asan, one in L1, and one in NGAP.
Open work to be addressed in this MR:
-
check that different GTP port combinations work (reason: we previously had port numbers in the F1 messages, and I think it's not necessary so removed, but better to check) -
some TODO commits to be addressed (which should not hinder review)
Possible follow up work after this is merged:
The following messages do not have a unit test yet, and are at least partially used in the stack:
- F1 UE context setup failure
- F1 UE context modification failure
- F1 UE context modification required/confirm/refuse
Other tasks that could be done later:
- Use UE context setup/modification messages in reestablishment
- Transport of IPv6 IP addresses + test
Edited by Robert Schmidt