An error occurred fetching the project authors.
  1. 12 Feb, 2024 4 commits
    • 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
    • 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
  2. 06 Feb, 2024 1 commit
  3. 23 Jan, 2024 5 commits
  4. 21 Dec, 2023 1 commit
  5. 28 Nov, 2023 2 commits
  6. 27 Oct, 2023 1 commit
  7. 26 Oct, 2023 1 commit
  8. 25 Sep, 2023 2 commits
    • Tsung-Yu Chan's avatar
      fix / init the variable · 090ac487
      Tsung-Yu Chan authored
        init the PUSCH symbols per thread to avoid for stucking
      090ac487
    • Tsung-Yu Chan's avatar
      feat / add the MMSE and precoding · 04073b03
      Tsung-Yu Chan authored
        - avoid the finction duplication
        - add the transform predoding to the nr_rx_pusch_tp
        - add the MMSE for 2 layer which modulation greater than 16 qam
        - can support to 256 qam for 1 layer and 2 layer
      04073b03
  9. 20 Jul, 2023 1 commit
  10. 13 Jul, 2023 1 commit
  11. 20 Jun, 2023 1 commit
  12. 16 Jun, 2023 1 commit
    • Robert Schmidt's avatar
      Add Sidelink (SL) carrier frequency · 555a54f8
      Robert Schmidt authored
      1. Adding a "SL" frequency for Sidelink mode. The
         importance of this variable is to ensure that
         when we are in mode 1 (UE+UE+gNB), that the slot
         configuration and frequencies do not overlap. This
         SL frequency is important for rotation and allows
         us to utilize the OFDM modulation and demodulation
         functions that already exist in OAI.
      2. Adding sl_mode to the command line for proper UE
         deployment when in SL mode. sl_mode can be set to 0,
         1, or 2. sl_mode 0 indicates no-Sidelink at all,
         mode 1 is gNB, UE, and UE (3GPP defines mode numbers).
         sl_mode 2 indicated UE to UE communications with no
         gNB at all.
      3. New functions for calculating the carrier frequency
         for SL mode.
      555a54f8
  13. 27 Apr, 2023 1 commit
  14. 05 Apr, 2023 1 commit
    • Cedric Roux's avatar
      bugfix: change memory management of interface between PHY and MAC scheduler · 733c7e5e
      Cedric Roux authored
      This commit fixes a bug caused by global variables in the gNB_MAC_INST
      structure used to transfer MAC scheduler's results to the PHY layer.
      
      When using several threads in the PHY layer, it may happen that the
      MAC scheduler is called a second time by the second PHY thread for the
      next slot before the content of the global variables in the gNB_MAC_INST
      structure used to store the result of the MAC scheduler for the current
      slot have been consumed by the first thread, leading to unpredictable
      results (all of them certainly wrong).
      
      The solution is to introduce a small memory management module for the
      interface between the PHY threads and the MAC scheduler. The MAC
      scheduler now fills the data structures passed to it, and not a
      global variable anymore. The PHY layer manages the structures and
      ensures that no data is overwritten before being fully consumed by
      the various threads of the PHY layer.
      
      Some care has to be taken because several PHY threads will access the
      same structures at the same time for a given slot (in read mode, so
      it's okay). A mechanism of reference counting has thus been introduced.
      
      Only one CC is supported. This restriction should not be too hard
      to remove if/when needed. (The code before this commit does not seem
      to work for more than one CC anyway.)
      733c7e5e
  15. 27 Mar, 2023 6 commits
  16. 15 Mar, 2023 1 commit
    • Melissa Elkadi's avatar
      int32_t to c16_t conversion · 4dd579e0
      Melissa Elkadi authored
      This commit includes changes to the function
      footprints for vaiours NR UE and gNB functions.
      It does not updated the LTE code. For functions
      shared by both LTE and 5G, we maintained the original
      LTE footprint and argument structure.
      
      Several of the simulators that use these functions
      have been updated as well. The specific usage of these
      functions which index into the int32_t buffers and
      treat the first int16_t and the real and the second
      as the complex should be modified in the near future.
      4dd579e0
  17. 09 Mar, 2023 1 commit
  18. 08 Mar, 2023 1 commit
  19. 07 Mar, 2023 1 commit
  20. 06 Mar, 2023 1 commit
  21. 24 Jan, 2023 1 commit
  22. 23 Jan, 2023 2 commits
  23. 12 Dec, 2022 1 commit
    • Robert Schmidt's avatar
      Clean up phy_init_nr_gNB() · 12384bbe
      Robert Schmidt authored
      - variable is_secondary_gnb is not used anywhere, so remove
      - variable lowmem is not used/defines should be changed, so remove
      12384bbe
  24. 19 Oct, 2022 1 commit
  25. 26 Sep, 2022 1 commit