An error occurred fetching the project authors.
- 12 Feb, 2024 4 commits
-
-
Robert Schmidt authored
-
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:
kiran <saikiran@iitj.ac.in>
-
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.
-
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.
-
- 06 Feb, 2024 1 commit
-
-
Raymond Knopp authored
-
- 23 Jan, 2024 5 commits
-
-
Raymond Knopp authored
-
Robert Schmidt authored
-
Robert Schmidt authored
Reformat code to properly copy memory if we skip precoding. precoding_stats timing is not part of ru->feptx_ofdm, but ru->feptx_prec, so always print it. Previously, in order to speed up processing if precoding is disabled, we just copy the pointer from txdataF to txdataF_BF, as opposed to do a full memcpy() to duplicate the data. The same happens if we cannot have precoding, i.e., in SISO. This has implications such as memory leaks, which is why this is not being done. However, the code comment is intentionally placed there.
-
Robert Schmidt authored
-
Robert Schmidt authored
For 7.2 FH, some RUs do phase compensation, whereas for others, the DU does it. In fact, this can be "negotiated" using the M plane. Since we don't have the M plane yet, add a configuration option to set where phase compensation is performed.
-
- 21 Dec, 2023 1 commit
-
-
luis_pereira87 authored
-
- 28 Nov, 2023 2 commits
-
-
Jaroslava Fiedlerova authored
-
Jaroslava Fiedlerova authored
-
- 27 Oct, 2023 1 commit
-
-
Laurent THOMAS authored
Messages are pushed using pushNotifiedFIFO(), so we pullNotifiedFIFO()
-
- 26 Oct, 2023 1 commit
-
-
Laurent THOMAS authored
-
- 25 Sep, 2023 2 commits
-
-
Tsung-Yu Chan authored
init the PUSCH symbols per thread to avoid for stucking
-
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
-
- 20 Jul, 2023 1 commit
-
-
francescomani authored
-
- 13 Jul, 2023 1 commit
-
-
francescomani authored
-
- 20 Jun, 2023 1 commit
-
-
francescomani authored
-
- 16 Jun, 2023 1 commit
-
-
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.
-
- 27 Apr, 2023 1 commit
-
-
Raymond Knopp authored
reorder_thread_disable we use the native message queue and L1_rx_thread instead of the thread-pool for the main L1 thread. There is a single TX thread (no slot parallelization)
-
- 05 Apr, 2023 1 commit
-
-
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.)
-
- 27 Mar, 2023 6 commits
-
-
francescomani authored
-
francescomani authored
-
francescomani authored
-
francescomani authored
-
francescomani authored
-
francescomani authored
-
- 15 Mar, 2023 1 commit
-
-
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.
-
- 09 Mar, 2023 1 commit
-
-
francescomani authored
-
- 08 Mar, 2023 1 commit
-
-
Raymond Knopp authored
-
- 07 Mar, 2023 1 commit
-
-
Raymond Knopp authored
added msg-q threading options (and CPU thread pinning) from O-RAN 7.2 branch to develop-based for testing with USRP.
-
- 06 Mar, 2023 1 commit
-
-
Robert Schmidt authored
-
- 24 Jan, 2023 1 commit
-
-
Rúben Soares da Silva authored
-
- 23 Jan, 2023 2 commits
-
-
francescomani authored
-
francescomani authored
-
- 12 Dec, 2022 1 commit
-
-
Robert Schmidt authored
- variable is_secondary_gnb is not used anywhere, so remove - variable lowmem is not used/defines should be changed, so remove
-
- 19 Oct, 2022 1 commit
-
-
francescomani authored
-
- 26 Sep, 2022 1 commit
-
-
francescomani authored
-