- 03 Feb, 2024 33 commits
-
-
Robert Schmidt authored
-
Robert Schmidt authored
Prior to this commit, the handling of DRBs is complex: first the RRC "guessed" a DRB ID when setting up DRBs via E1AP (in rrc_gNB_process_NGAP_PDUSESSION_SETUP_REQ()), and later chose one for real in fill_DRB_Configlist() (called in rrc_gNB_generate_dedicatedRRCReconfiguration()). To simplify, remove fill_DRB_Configlist(), and instead allocate the DRB using generateDRB() before sending the message via E1AP, in rrc_gNB_generate_dedicatedRRCReconfiguration(). The rest of the logic is the same. For PDU sessions, always mark PDU sessions as "done" to match pdu session state logic.
-
Robert Schmidt authored
-
Robert Schmidt authored
It might happen that a UE has no CU-UP (e.g., never requested a PDU session). When triggering a release, we previously and implicitly associated a CU-UP in that case. That is not good, and confusing. This commit adds a function to look up if the UE has an associated CU-UP. We only send a release if it is the case. The function get_existing_cuup_for_ue() now instead verifies that a CU-UP exist, and does not implicitly create an association (which might be unwanted, see above).
-
Robert Schmidt authored
-
Robert Schmidt authored
The number of tunnels corresponds to number of DRBs, so correctly compare tunnels and DRBs.
-
Robert Schmidt authored
-
Robert Schmidt authored
-
Robert Schmidt authored
The function rrc_gNB_process_RRCReconfigurationComplete() does almost nothing, we can delete it. The variable name ue_reconfiguration_after_reestablishment_counter is misleading, as it counts all reconfigurations; rename to make it clear.
-
Robert Schmidt authored
The drb_active array keeps track of active DRBs. However, it only replicates some of the information in established_drbs, and could lead to a reuse of DRB IDs when two bearers are to be set up. Consider the following: 1. trigger first DRB creation at RRC 2. DRB ID chosen from free drb_active entry 3. trigger second DRB creation at RRC -> The first reconfiguration has not been acknowledged -> drb_active is not marked as DRB_ACTIVE 4. The second DRB ID is chosen from a free drb_active entry, which is the same as in 2. By reusing established_drbs everywhere, this cannot happen, as we 1. select the DRB to be used using next_available_drb() and then 2. use generateDRB(), which marks the DRB used all from within fill_DRB_configList, which gives a new DRB. The logic is still overly complex, though.
-
Robert Schmidt authored
-
Robert Schmidt authored
-
Robert Schmidt authored
If there are no active bearers, the function previously returned an empty list. Return NULL if there are no bearers, so it is safe to call this function even when no bearers are present. We can also pass it every time to do_RRCReconfiguration(), which will not add an empty list for DRBs.
-
Robert Schmidt authored
Create a single function to activate an SRB. This function derives the corresponding keys, triggers the setup in PDCP, and marks the SRB as set up, instead of doing all of this common functionality in individual steps. Use it at the corresponding places.
-
Luis Pereira authored
- show MAC bytes in one line - add MCS table idx - show ulsch errors before ulsch DTX (as in DL) - show if UE in-sync/out-of-sync - show CU UE ID next to RNTI to stats Since we modify the format of the statistics, fix the format in the retx checkers of the CI.
-
Robert Schmidt authored
Only fill the 5G-S-TMSI if if is present, and set the bit in the presenceMask.
-
Robert Schmidt authored
This commit implements retrieval of 5G-S-TMSI from Parts 1&2, or the entire 5G-S-TMSI, depending on what the UE sends. Further, if it has been retrieved, print a log of all constituent parts of it. The UE-specific variable ng_5G_S_TMSI_Part2 is not needed, as we compute the full 5G-S-TMSI as soon as we have Part2 (and 1). The correct forwarding to the core is implemented in the following commit.
-
Robert Schmidt authored
We did not give a cause value, and therefore NGAP's "PDU sessions failed" encoding failed. Give a cause value in all cases, so that this cannot happen anymore. To prevent against this, put an AssertFatal() into the encoder that stops if an internally sent message does not have a correct cause value (we can at least select a default). Print an info message for all failed PDU sessions. In rrc_gNB_send_NGAP_INITIAL_CONTEXT_SETUP_RESP(): if a PDU session is already established, don't count it as failed.
-
Robert Schmidt authored
-
Robert Schmidt authored
-
Robert Schmidt authored
-
Robert Schmidt authored
-
Robert Schmidt authored
In all these cases, we simply continue with processing; it therefore seems that these are more warnings than errors.
-
Robert Schmidt authored
-
Robert Schmidt authored
-
Robert Schmidt authored
-
Robert Schmidt authored
-
Robert Schmidt authored
- Demote logs judged unimportant to debug - Indicate UE for UL failure - set_QoSConfig(): correct log
-
Robert Schmidt authored
If we are in one of these procedures, we basically must be in SA mode, everything else is illogical. It also does not seem plausible to check for this, as it is not apparent why only these couple of calls should not be executed if not in SA. Hence, remove.
-
Robert Schmidt authored
-
Robert Schmidt authored
-
Robert Schmidt authored
This implementation might work, but it simply triggers RRC setup on the new DU when we might send a RRC reestablishment speeding up the whole connection setup. For this: - we should send the F1 UE context setup to the new DU - we should still do the reestablishment, containing the reestablishment message The latter should be sent once we received the F1 UE context setup response. We don't need a new context. send a release to the old DU (and don't release our own context!!). We might also send the reestablishment to the UE encapsulated with the F1 UE context setup response. Need to investigate if this is feasible (because if the DU rejects [can that happen here?], the UE will still send reestablishment complete -- what then?). Also, we would need to send the E1 bearer context modification to the CU-UP.
-
Robert Schmidt authored
Keeping track if AS security is activated. This is important for a later commit, where we use this to decide if we send a F1 UE Context Setup Req with security command after receiving the E1 bearer context setup response. The corresponding AssertFatal() removed in the same commit implementing PDU session handling in NGAP Initial UE Context Setup.
-
- 31 Jan, 2024 5 commits
-
-
Robert Schmidt authored
-
Robert Schmidt authored
38.401 Sec 8.1 asks for sending the Initial Context Setup Response after a reconfiguration happened. Therefore, we can never send this message directly from the handler in the Initial Context Setup Request
-
Robert Schmidt authored
-
Robert Schmidt authored
-
Robert Schmidt authored
-
- 30 Jan, 2024 1 commit
-
-
Robert Schmidt authored
Integration: 2024.w04 See merge request oai/openairinterface5g!2535 * !2522 Integration of O-RAN 7.2 FH using OSC xRAN library * !2416 fix-ue-scheduler-multi-thread-storage-list-mutex-protection * !2488 LDPC T2 card encoding: rate matching and interleaving on the T2 card * !2497 Read NoS1 bearer configuration from gNB-generated file * !2518 Extension of E1AP procedures * !2533 This limits PUCCH payload to 11 bits, 7 CSI + 3 ACKNACK + 1 SR maximum. * !2526 prepare MSG3 in advance at RRC UE * !2451 MAC procedures to handle DLSCH allocation type 0 * !2525 NR UE fix for function to find PUCCH resource set * !2536 Improve Precoding Matrix computation taking in consideration the DCI format * some documentation+config file updates for 7.2 * !2501 Improvements for NR implementation of timers * !2531 Fix unit test build and build unit tests in CI
-
- 29 Jan, 2024 1 commit
-
-
Robert Schmidt authored
-