E1: implement release bearer, handle multiple CU-UPs
This MR adds support for multiple CU-UPs. UEs indicate their NSSAI, based on which the RRC selects one CU-UP that handles this NSSAI. Further, the code has been refactored to use the E1 split internally (i.e., the code paths taken for setting up a bearer in split or non-split mode are the same), and the bearer release procedure has been added and implemented.
caveats:
- E1 has no support for reestablishment, yet
- the bearer modification response from the CU-UP is not sent to the CU-CP yet, which is not a problem, as the RRC does not use it (the handler is there, but would only print a line)
- I did not simplify the IP handling, yet
open problems:
-
I have errors with SDAP and no traffic passes, although nothing changed in that regard -
we probably don't release SDAP entities properly: need to check when this is to be done, implement properly
To verify multi-CUUP: start CU-CP, 2 CU-UPs, and DU in order with configs gnb-cucp.sa.f1.conf gnb-cuup.sa.f1.1.conf gnb-cuup.sa.f1.2.conf gnb-du.sa.band78.106prb.rfsim.conf
Start the UEs with config ue.conf and these calls:
./nr-uesoftmodem -r 106 --numerology 1 --band 78 -C 3619200000 -O ~/Documents/conf/ue.conf
./nr-uesoftmodem -r 106 --numerology 1 --band 78 -C 3619200000 -O ~/Documents/conf/ue.conf --uicc0.imsi 208950000000032 --uicc0.nssai_sst 2
where the second UE has a different IMSI and NSSAI (URLLC). Of course, the CN needs to be configured with both slices as well