An error occurred fetching the project authors.
- 25 Sep, 2024 1 commit
-
-
Robert Schmidt authored
Co-authored-by:
Guido Casati <hello@guidocasati.com>
-
- 06 Sep, 2024 1 commit
-
-
Robert Schmidt authored
The F1AP UE context release procedure can happen in at least two cases: 1. core requested a release of a UE 2. CU requests DU a release of a UE without a core release (e.g., handover) In case 1., the CU has to fully release the UE in the CU, then ack the NGAP message from the core, whilst in 2., nothing of that should happen after the DU acknowledges the F1AP UE context release cmd.
-
- 02 Aug, 2024 1 commit
-
-
Robert Schmidt authored
Handle IPv6 (and IPv4v6) PDU sessions by correctly instructing nas_config() to set up the interface with provided IP addresses. Note that as of now, IPv6 PDU sessions have not been fully tested. Remove a useless assert at the gNB; to my understanding the gNB does not care about the IP session type (at least for IP), as it just transparently tunnels the IP packets from/to GTP. I added a comment in the code where to change to request a PDU session different from IPv4. Currently it is hardcoded to IPv4, and it seems that a default OAI 5GC config would reject a PDU session type different from IPv4.
-
- 25 Jul, 2024 2 commits
-
-
Guido Casati authored
* aper_decode allocates memory for for local pointer `pdusessionTransfer`, in `decodePDUSessionResourceSetup` * this memory seems not to be freed but its members are by: `ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_NGAP_PDUSessionResourceSetupRequestTransfer,pdusessionTransfer);` which btw in its header says: "AVOID using it in the application code; Use a safer ASN_STRUCT_RESET() instead" * the following mem leak was detected by ASAN: ``` Direct leak of 72 byte(s) in 1 object(s) allocated from: *0 0x7ffff74b4a57 in __interceptor_calloc /src/libsanitizer/asan/asan_malloc_linux.cpp:154 *1 0x55555cb306df in SEQUENCE_decode_aper /cmake_targets/ran_build/build/openair2/RRC/LTE/MESSAGES/constr_SEQUENCE_aper.c:36 *2 0x55555ca9fa28 in aper_decode /cmake_targets/ran_build/build/openair2/RRC/LTE/MESSAGES/aper_decoder.c:78 *3 0x55555b99bae6 in decodePDUSessionResourceSetup /openair2/RRC/NR/rrc_gNB_NGAP.c:273 *4 0x55555b99fec2 in trigger_bearer_setup /openair2/RRC/NR/rrc_gNB_NGAP.c:357 *5 0x55555b9b54bf in rrc_gNB_process_NGAP_PDUSESSION_SETUP_REQ /openair2/RRC/NR/rrc_gNB_NGAP.c:830 *6 0x55555b936871 in rrc_gnb_task /openair2/RRC/NR/rrc_gNB.c:2428 *7 0x7ffff5e94ac2 in start_thread nptl/pthread_create.c:442 ``` * This commit replaces ASN_STRUCT_FREE_CONTENTS_ONLY with ASN_STRUCT_FREE, which will free the memory allocated for the entire struct and its members
-
Guido Casati authored
-
- 24 Jul, 2024 1 commit
-
-
Robert Schmidt authored
OAI 5GC seems to have a bug, and occasionally might send a PDU session setup request without having sent a UE context setup request, resulting in no security context activated for a UE. This lead to an assertion in rrc_gNB_process_e1_bearer_context_setup_resp(). To prevent the gNB from stopping, check if security is active before triggering PDU sessions. If not, the gNB will reject PDU sessions.
-
- 10 Jul, 2024 1 commit
-
-
Teodora authored
- E2SM UE ID requires guami -> therefore RRC_CONNECTED state signaling to RIC is now done after receiving Initial Context Setup Request from AMF, which contains the guami info
-
- 08 Jul, 2024 1 commit
-
-
Teodora authored
- r_amf->plmn_Identity was interpreted incorrectly, therefore remove it - selected_plmn_identity selects one of the list of PLMNs; at the moment, OAI supports only 1 PLMN ID; print a warning if it is different, and proceed with index 0 More information in issue #801
-
- 05 Jul, 2024 2 commits
-
-
Cedric Roux authored
Also adapt callers. In particular nr_pdcp_reestablishment()
-
Cedric Roux authored
- make it work for SRB or DRB - adapt callers of this function - cleanup key derivation: the User Plane keys are generated at some places but are not used, remove the generation
-
- 29 Jun, 2024 1 commit
-
-
Teodora authored
-
- 06 May, 2024 4 commits
-
-
Robert Schmidt authored
We can optionally indicate the PDU session IDs. At least with OAI 5GC, that should help it clean up.
-
Robert Schmidt authored
In the case of PDU sessions in the NG UE context setup request, we first have to set up security. Hence, in this commit, implement the "delayed" set up of theses PDU sessions, and acknowledge the setup request after reconfiguration, as requested by O-RAN.WG5.C.1-v11.
-
Robert Schmidt authored
This reverts commit 0f100a6e, which introduced a hack to possibly wait with a PDU session setup at the RRC in case a RRC UE capability transaction (requesting UE capabilities from a UE) was ongoing. This happened, as we delayed the UE capabilities to after the first RRC reconfiguration; in that case, certain UEs were requesting the next PDU session, and if RRC did not delay the new PDU session (as requested from the core), this procedure might occur while UE capability enquiry was ongoing, leading to failures in these transactions.
-
Giulio Carota authored
Previously, the CU sent the Security Mode Command as part of a UE context setup request. This was done "because it was possible", not because there was an inherent need to do this. However the LiteOn DU does not like this, as it expects to also have a DRB in the UE context setup request procedure, which is not always the case. Hence, send the Security Mode Command in a normal DL RRC msg transfer over F1. As of this commit, there is not UE context Setup Request (so it might not work with all DUs), but the OAI DU is cool and does not care, so RFsim still works. This also aligns the CU's behavior with O-RAN.WG5.C.1-v11. Finally, as of this commit, we do not trigger a UE context setup request, so we cannot handle PDU sessions inside the initial UE context setup request at the same time as the security mode command (which was done previously before reaching this point). This will be fixed in a later commit.
-
- 28 Mar, 2024 1 commit
-
-
Robert Schmidt authored
38.473 section 8.2.3.1 says that upon F1 Setup Request, UE associated signalling should be erased. In this commit, we trigger a release of all UEs that were still connected to a DU when we received the SCTP shutdown, i.e., when the DU disconnects.
-
- 28 Feb, 2024 2 commits
-
-
Guido Casati authored
- many structs and definitions are overlapping between the two different E1 procedures - introduced naming specific to E1 Bearer Context Modification to improve readability - grouped SDAP and PDCP configuration IEs for better reusability and readability - introduced functions to set and get default PDCP config (DRBs and Bearer Contexts) find_or_next_pdu_session: - find_or_next_pdu_session refers to the E1 Bearer Context Modification Request -- therefore it has to return pdu_session_to_mod_t* and takes in input e1ap_bearer_mod_req_t * see !MR2545 for more context
-
Guido Casati authored
- the goal is to improve maintanability
-
- 03 Feb, 2024 7 commits
-
-
Robert Schmidt authored
The next commit moves the UE Capability Enquiry after the first reconfiguration. This has the effect that for some UEs (e.g., iPhone), the Setup Requests come too close to each other, triggering RRC Reconfigurations while previous transactions are ongoing. I think the "true" solution would be to implement some tracking of transactions across RRC, F1AP, E1AP, but this might require many changes. For the moment, limit to delaying PDU session resource setups to prevent above problem. Delaying is done using ITTI timers (to be able to serve other UEs), waiting 10ms each time, up to 20 times (to not deadlock the transaction -- after all, if the UE is unhappy, it will drop the connection).
-
Robert Schmidt authored
- Put consistently transaction IDs - Remove transaction IDs when transaction finished, or in places that do not trigger an RRC transaction
-
Robert Schmidt authored
-
Robert Schmidt authored
This commit allows the gNB to handle PDU sessions that the core requests to setup during the NGAP Initial UE Context Setup. Previously, we only managed them as part of PDU Session Resource Setup Request. The RRC will, depending on whether a PDU session is in the NGAP Initial UE Context Setup, either directly trigger the Security Command, or first do a bearer setup at the CU-UP. Some asserts have been lifted, as now the PDU sessions might be present before the RRC Connection is fully established. Implement the correct forwarding of the bearers in an F1 UE Context Setup Request message. This solves bug #672.
-
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
Only fill the 5G-S-TMSI if if is present, and set the bit in the presenceMask.
-
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.
-
- 02 Feb, 2024 1 commit
-
-
Robert Schmidt authored
-
- 31 Jan, 2024 1 commit
-
-
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
-
- 19 Jan, 2024 1 commit
-
-
francescomani authored
-
- 20 Dec, 2023 1 commit
-
-
Robert Schmidt authored
The allowed NSSAIs is NOT the NSSAI to be used for a UE. Fix it to use the correct one.
-
- 30 Nov, 2023 1 commit
-
-
Sriharsha Korada authored
- Implement: Extend the F1 encoding and decoding with Qos - Implement: E1 decoding for QoS - Fix: Modify the UE_MODIFICATION_REQUEST_MSG towards DU to contain QoS info based on E1AP context response - Fix: Modify the E1AP and F1AP message structures - Fill the Qos configuration to send to MAC
-
- 18 Nov, 2023 1 commit
-
-
Cedric Roux authored
The function generateDRB() sets the value to 100ms but the function rrc_gNB_process_NGAP_PDUSESSION_SETUP_REQ() sets it to 0ms. So what happens is that the UE gets the value 100ms in the RRC Reconfiguration but the gNB creates the PDCP entity with 0ms. Let's create it with 100ms instead, to be aligned with how we configure the UE. And also avoid some PDCP warnings at runtime when some packets are retransmitted but rejected because of the 0ms timer. This is the warning: [PDCP] discard NR PDU rcvd_count=68469, entity->rx_deliv 68481,sdu_in_list 0 This is just a hotfix. A real solution is to have the RB creation in only one place. And we should also have those parameters configurable. Work for later.
-
- 08 Nov, 2023 1 commit
-
-
Robert Schmidt authored
-
- 31 Oct, 2023 1 commit
-
-
Sakthivel Velumani authored
The NSSAI of PDU sessions coming from AMF are stored in RRC to be sent to lower layers
-
- 30 Oct, 2023 1 commit
-
-
Robert Schmidt authored
- Set the correct QoS flow ID to associate a correct QoS flow to the bearer: the UE would misassociate otherwise - Set the DRB as the default: the handler applies bool with true==1, so use bool value
-
- 27 Oct, 2023 3 commits
-
-
Robert Schmidt authored
-
Robert Schmidt authored
- harmonize monolithic and E1AP case - use ITTI message to send bearer context setup response to RRC
-
Robert Schmidt authored
-
- 25 Oct, 2023 2 commits
-
-
Robert Schmidt authored
-
Robert Schmidt authored
-
- 22 Sep, 2023 1 commit
-
-
Robert Schmidt authored
- Free the memory - for NGAP NAS UL and NAS First request, allocate memory to avoid use-after-free errors
-