An error occurred fetching the project authors.
  1. 25 Sep, 2024 1 commit
  2. 06 Sep, 2024 1 commit
    • Robert Schmidt's avatar
      Introduce an_release flag: only free UE in RRC+ack if requested by core · b01810a8
      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.
      b01810a8
  3. 02 Aug, 2024 1 commit
    • Robert Schmidt's avatar
      Handle IPv6/IPv4v6 PDU sessions · 659a8199
      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.
      659a8199
  4. 25 Jul, 2024 2 commits
    • Guido Casati's avatar
      Fix memory leak in PDU Session Setup Request decoding · 2d6aef51
      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
      2d6aef51
    • Guido Casati's avatar
      Use NGAP protocol cause IE in the stack · 869b78ef
      Guido Casati authored
      869b78ef
  5. 24 Jul, 2024 1 commit
    • Robert Schmidt's avatar
      RRC: reject PDU sessions if security is not active · 032d4fc9
      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.
      032d4fc9
  6. 10 Jul, 2024 1 commit
    • Teodora's avatar
      RRC_CONNECTED state signaling for E2 moved · 676ba435
      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
      676ba435
  7. 08 Jul, 2024 1 commit
    • Teodora's avatar
      Fix selectedPLMNId from RRCSetupComplete · df9e5ccd
      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
      df9e5ccd
  8. 05 Jul, 2024 2 commits
  9. 29 Jun, 2024 1 commit
  10. 06 May, 2024 4 commits
    • Robert Schmidt's avatar
      NGAP Release Cplt: indicate release PDU sessions · 8d225a7e
      Robert Schmidt authored
      We can optionally indicate the PDU session IDs. At least with OAI 5GC,
      that should help it clean up.
      8d225a7e
    • Robert Schmidt's avatar
      Handle PDU sessions in NG UE context setup request · 3e2d5f88
      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.
      3e2d5f88
    • Robert Schmidt's avatar
      Revert "Delay PDU session resource setup request if necessary" · 179ecb8e
      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.
      179ecb8e
    • Giulio Carota's avatar
      Refactor Security Mode Command procedure: send in RRC DL transfer · 7340abc6
      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.
      7340abc6
  11. 28 Mar, 2024 1 commit
    • Robert Schmidt's avatar
      Request release for UEs if DU disconnects · e0b31be1
      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.
      e0b31be1
  12. 28 Feb, 2024 2 commits
    • Guido Casati's avatar
      Separated E1 Bearer Context Setup from Modification procedures · b6087da1
      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
      b6087da1
    • Guido Casati's avatar
      Introduced define for uint8_t integrity and ciphering keys data structures · ea0185f8
      Guido Casati authored
      - the goal is to improve maintanability
      ea0185f8
  13. 03 Feb, 2024 7 commits
    • Robert Schmidt's avatar
      Delay PDU session resource setup request if necessary · 0f100a6e
      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).
      0f100a6e
    • Robert Schmidt's avatar
      RRC transaction IDs: clean up · d6dd87ae
      Robert Schmidt authored
      - Put consistently transaction IDs
      - Remove transaction IDs when transaction finished, or in places that do
        not trigger an RRC transaction
      d6dd87ae
    • Robert Schmidt's avatar
      c643abd8
    • Robert Schmidt's avatar
      Implement PDU session estab through NGAP Initial UE Context Setup · 6642b467
      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.
      6642b467
    • Robert Schmidt's avatar
      Simplify RRC DRB handling code · f81ec9c2
      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.
      f81ec9c2
    • Robert Schmidt's avatar
      RRC: forward 5G-S-TMSI for NGAP Initial UE Message · f9a84985
      Robert Schmidt authored
      Only fill the 5G-S-TMSI if if is present, and set the bit in the
      presenceMask.
      f9a84985
    • Robert Schmidt's avatar
      Fix NGAP encoding of PDUsession failed · 642b6429
      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.
      642b6429
  14. 02 Feb, 2024 1 commit
  15. 31 Jan, 2024 1 commit
  16. 19 Jan, 2024 1 commit
  17. 20 Dec, 2023 1 commit
  18. 30 Nov, 2023 1 commit
    • Sriharsha Korada's avatar
      F1AP and E1AP interface changes for QoS · ed29252c
      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
      ed29252c
  19. 18 Nov, 2023 1 commit
    • Cedric Roux's avatar
      hotfix: set PDCP t-reordering to 100ms · 13757862
      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.
      13757862
  20. 08 Nov, 2023 1 commit
  21. 31 Oct, 2023 1 commit
  22. 30 Oct, 2023 1 commit
    • Robert Schmidt's avatar
      Fix SDAP: correct ID, set default · fa5c4d3a
      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
      fa5c4d3a
  23. 27 Oct, 2023 3 commits
  24. 25 Oct, 2023 2 commits
  25. 22 Sep, 2023 1 commit