1. 13 Feb, 2024 5 commits
  2. 12 Feb, 2024 13 commits
    • Robert Schmidt's avatar
      c33a308d
    • Robert Schmidt's avatar
      Periodically check for stats freeing to prevent assert · 0a1651e4
      Robert Schmidt authored
      Not periodically checking stats freeing can lead to asserts if these
      lists are full. Check it once a frame to ensure that lists remain
      non-empty.
      0a1651e4
    • Robert Schmidt's avatar
      Update some timing stats · f3bba45b
      Robert Schmidt authored
      f3bba45b
    • Raghavendra Dinavahi's avatar
      Sidelink configuration passed from RRC->MAC, defined interface functions · 4d411dbc
      Raghavendra Dinavahi authored
      	- Phy configuration will be prepared by MAC
      	- Sidelink preconfiguration parameters passed from RRC->MAC
      	- Only 1 SSB TA allocation used
      	- psbch payload prepared by MAC after receiving the tx slss req
      4d411dbc
    • Robert Schmidt's avatar
      Remove misleading PUSCH decoding · 362bc481
      Robert Schmidt authored
      PUSCH decoding is started multiple times in nr_ulsch_procedures() for
      each ULSCH segment, and stopped once inside
      phy_procedures_gNB_uespec_RX(). Not only is it not clear if that works
      with the API, it also might measure more than just PUSCH decoding.
      
      Remove the PUSCH decoding, it is misleading. Check L1 RX processing
      instead.
      362bc481
    • Robert Schmidt's avatar
      Add 100 MHz 2x2 phytest-timing test · 41802483
      Robert Schmidt authored
      41802483
    • Robert Schmidt's avatar
      CI: phytest-timing: detect deviation from normalized values above/below · 00356767
      Robert Schmidt authored
      The CI would only detect a deviation from the normalized value based on
      a configurable threshold, typically 1.25 (so we would tolerate a 25%
      increase). However, it often happens that a timing gets shorter (e.g.,
      forgot to put the timing measurements). This commit introduces a
      "Deviation Threshold" (smaller than 1) to not only check that we exceed
      1.0 + "Deviation Threshold" (as before), but also that are not below 1.0
      - "Deviation Threshold".
      
      In other words, assuming a maximum divergence of 25%, instead of just
      checking if val > 1.25, we now also check if val < 0.75 (and flag
      error).
      00356767
    • Robert Schmidt's avatar
      Add Slot Indication to monitoring · 6ba87167
      Robert Schmidt authored
      6ba87167
    • Robert Schmidt's avatar
      Add slot indication timing · e9d6081a
      Robert Schmidt authored
      e9d6081a
    • Raymond Knopp's avatar
      Introduce separate thread to handle gNB TX processing · d52b8179
      Raymond Knopp authored
      This commit introduces a separate thread (l1_tx_thread) that processes
      gNB DL/TX slots. It receives a message from the ru_thread when a new
      slot started, and starts processing.
      
      The DL part of the scheduler is run in the l1_tx_thread.  Therefore,
      only call UL indication (for scheduler) in UL slots.  The UL indication
      previously triggered the DL scheduler -- hence, it had to be called in
      every slot. Now, since the DL scheduler is moved into the DL thread, we
      don't have to call the scheduler in every slot anymore.
      
      The reorder thread is removed, as reordering with this scheme is not
      necessary anymore.
      
      The main advantage of this version is that the TX can be scheduled
      earlier (sl_ahead). Further, there can no longer be race conditions in
      the TX path, since the scheduler/L2, TX L1 processing and the RU tx
      function are all execute in the same thread (L1_tX_thread).
      
      Also, the scheduler prepares PRACH/PUSCH/PUCCH FAPI PDUs. As of this
      commit, the scheduler runs in the TX processing chain, whereas these
      PDUs are destined for RX processing.  Thus, too avoid data races,
      instead of triggering the RX processing at the same time as TX
      processing in the RU thread, this commit changes the code to trigger RX
      processing after the scheduler has been run in TX processing to avoid
      data races.
      
      Finally, we synchronize RU and L1 threads. This is important for
      rfsimulator, since unlike most radios, rfsimulator can run slower or
      faster, depending on I/O and CPU (it does not have a stable "tick").
      Co-authored-by: default avatarkiran <saikiran@iitj.ac.in>
      d52b8179
    • Raphael Defosseux's avatar
    • Robert Schmidt's avatar
      Remove unused UL_INFO_mutex · fb69d9c6
      Robert Schmidt authored
      The UL_INFO_mutex is used in only one place, and therefore useless.
      Also, the scheduler uses a lock internally to prevent concurrent access.
      Hence, the UL_INFO_mutex is not needed.
      
      Remove kill_gNB_proc(), as it is now dead code.
      fb69d9c6
    • Robert Schmidt's avatar
      Introduce slot indication tick to run (DL) scheduler · 88852dc9
      Robert Schmidt authored
      The next commit introduces a separate gNB TX processing thread. To
      properly separate DL scheduler (for scheduling decisions) from UL
      indication handling (for UL packets), this commit introduces a slot
      indication "tick" to run the DL scheduler which will be put into the gNB
      TX processing chain instead of the UL indication.
      88852dc9
  3. 09 Feb, 2024 4 commits
  4. 08 Feb, 2024 4 commits
  5. 07 Feb, 2024 3 commits
    • Teodora's avatar
      Update FlexRIC commit and E2AP README · 1675e6e1
      Teodora authored
      1675e6e1
    • Teodora's avatar
      Enable multiple RC subscriptions · d7ff30db
      Teodora authored
        - create hash table to save ric_req_id (key) and array of ran_param_id(s) (values), per each subscription
        - create RB tree to store list of ric_req_id(s) for each ran_param_id
          => when the async event occurs, it is easier and faster to search per ran_param_id and send the indication message to all xApps (ric_req_id(s)) subscribed to the same ran_param_id
        - it is important to mention that both data structures need to be maintained, especially when unsubscription occurs (free_aperiodic_subscription)
      d7ff30db
    • Teodora's avatar
      Support RC aperiodic subscription · 3cc3bbba
      Teodora authored
        - subscribe to "UE RRC State Change" RAN Parameter ID
        - expected asynchronous events from E2 node
      3cc3bbba
  6. 06 Feb, 2024 5 commits
  7. 05 Feb, 2024 6 commits