1. 09 Aug, 2023 17 commits
    • Robert Schmidt's avatar
      7aea83d5
    • Robert Schmidt's avatar
      reestab · dd14d799
      Robert Schmidt authored
      dd14d799
    • Robert Schmidt's avatar
      Cleanup after RRC reestablishment · e75945f5
      Robert Schmidt authored
      e75945f5
    • Robert Schmidt's avatar
      Repair reestab · cc5e1ea3
      Robert Schmidt authored
      cc5e1ea3
    • Robert Schmidt's avatar
      Repair reestablishment and make it work via F1 · 2aa28260
      Robert Schmidt authored
      This commit repairs the reestablishment after the introduction of the CU
      UE ID in the CU, different from the DU UE ID. Now, the CU uses an
      identifier different from the RNTI, used in the MAC, to refer to UEs.
      
      To repair the reestablishment, a number of changes needed to be
      introduced:
      
      - Handle old_gNB_DU_UE_id in MAC
      
      The MAC handles the old_gNB_DU_UE_id field in the DL RRC Message. The
      commit adds encoding/decoding of the field. The MAC will drop the old
      UE, but retain the CellGroup of the corresponding UE(!). Because a UE
      releases the spCellGroup on reestablishment, the MAC does the same; it
      needs to reapply the old configuration after a reconfiguration. For the
      latter, introduce new variables to keep a "future" CellGroupConfig to be
      applied (reconfigCellGroup) and a flag (expect_reconfiguration) that
      applies the CellGroupConfig if a DL RRC Message transfer on DCCH, which
      is assumed to be the reconfiguration.
      
      - Add RNTI change in RLC
      
      The RLC needs to reuse the old UE context. Hence, we simply change the
      RNTI in the old context, and delete the new one.
      
      - No PDCP UE ID change
      
      The previous implementation of the PDCP used the RNTI; hence, the ID
      needed to be switch (as above for the RLC). Since the PDCP now also uses
      the CU UE ID, no identifier change is needed, and we remove all
      corresponding code.
      
      - No MAC modifications/update from CU
      
      As foreseen by the spec, the CU does not modify or change the
      cellGroupConfig in the RRC during reestablishment. This change will be
      generalized in the future to all of the RRC.  Also, the
      nr_rrc_mac_remove_ue() function has been removed: the MAC handles any UE
      changes autonomeously, without being triggered from the RRC explicitly.
      
      - Remove reestablish_rnti_map
      
      The RRC does not use RNTIs for UE identification. Hence, a
      reestablish_rnti_map to link two UEs to each other is not necessary
      anymore.
      2aa28260
    • Robert Schmidt's avatar
      Implement PDCP reset counters for reestablishment · 4c612798
      Robert Schmidt authored
      After a reestablishment, the PDCP sequence number counters have to be
      reset. Implement an API to allow the RRC to reset the sequence numbers
      for a particular UE in the case of reestablishment
      4c612798
    • Robert Schmidt's avatar
      Trigger Reestablishment via resetting RLC sequence numbers · 84b14878
      Robert Schmidt authored
      Plugin can trigger reestablishment (on DU)
      and show counters of reestablishment (on CU)
      84b14878
    • Robert Schmidt's avatar
      Remove checks for UEs with existing RNTI: it gives its own ID and won't... · 5326cb67
      Robert Schmidt authored
      Remove checks for UEs with existing RNTI: it gives its own ID and won't intervene if DUs assign the same RNTI to 12 UEs
      5326cb67
    • Robert Schmidt's avatar
    • Robert Schmidt's avatar
      Do-ra: write out directly · dcac3859
      Robert Schmidt authored
      dcac3859
    • Robert Schmidt's avatar
      CU-UP/E1: mirror CU-CP UE ID in CU-UP, clean up messages · 0ffcdeee
      Robert Schmidt authored
      - Use the same CU-UP in E1 as in CU-CP: we don't have a separate entity
        to allocate IDs, and we just use the same as the CU-CP
      - Correct gNB CU-UP/CP UE IDs in E1AP message types to 32bit
      - Set CU UP UE ID explicitly for clarity
      - Remove RNTI from E1 messages, E1 does not know what an RNTI is
      0ffcdeee
    • Robert Schmidt's avatar
      RRC: switch to NGAP UE ID as CU UE ID · 5a6d6d8a
      Robert Schmidt authored
      5a6d6d8a
    • Robert Schmidt's avatar
      e117abc6
    • Robert Schmidt's avatar
      713e7433
    • Robert Schmidt's avatar
      VERIFY · 4c7865ae
      Robert Schmidt authored
      4c7865ae
    • Robert Schmidt's avatar
      Remove F1 module UE handling · 482c93a3
      Robert Schmidt authored
      The UE had a list of known UEs. With the introduction of a separate
      module for F1 UE ID handling that is also used in monolithic (to
      separate CU UE ID from DU UE ID), this functionality is not needed, and
      deleted in this commit.
      482c93a3
    • Robert Schmidt's avatar
      Send ue ITTI Release Complete message · cf006e89
      Robert Schmidt authored
      Previously, the F1AP handler called various functions directly, instead
      of sending an ITTI message to the RRC thread. This has two drawbacks:
      - it can lead to data races if the RRC task uses functionality that is
        being accessed by the F1 task through this function
      - no homogeneity: all other handlers send an ITTI message, so this one
        should too
      cf006e89
  2. 08 Aug, 2023 22 commits
  3. 07 Aug, 2023 1 commit