Commit Graph
91 Commits
Author SHA1 Message Date
Bartosz Podrygajlo 28d821bd0f Cleanup nr_slot_fep_ul
Rename nr_slot_fep_ul to nr_symbol_fep_ul to relfect its function

Simplify logic so that the function does not require RU context and
the implementation is not dependent on the implementation of RU buffer management.

This makes the function easier to understand and moves the responsibility
to set the correct buffer offset on the caller.
2026-01-20 12:18:18 +01:00
Laurent THOMAS 1292cd68b7 Remove the usage of global mem for rach rx process
saves about 600MB of memory allocation

Move the definition of PRACH items and the PRACH list to the
defs_nr_commons.h file.

Do not re-write the entire structure in nr_schedule_rx_prach(), as it is
quite large now.
2025-10-30 23:01:06 +01:00
Laurent THOMAS cffb07d798 remove permanent prach rxsigF in gNB and simplify the data structure 2025-10-30 11:54:22 +01:00
Laurent THOMAS 4dd340b6bb merge almost duplicated code for ru prach list and gNB prach list
(gNB is not the proper name, it is CU+DU, gNB is RU+CU+DU)
2025-10-30 11:54:21 +01:00
Laurent THOMAS 88cecd707b regroup similar lists for "ru" and "gNB" in a common definition
Merge the identical sizes. Use correct naming: it is a element of a
list, not a list
2025-10-30 11:54:20 +01:00
Robert Schmidt 89e6e53f8c Remove --emulate-rf option and corresponding code
With the RFemulator, there is no need for a dedicated --emulate-rf
option anymore. For all uses of --emulate-rf, RFemulator should be used
instead.
2025-08-21 10:53:03 +02:00
francescomani 9f97191243 fix beam allocation for multiple TD prach occasions in a slot 2025-06-10 12:10:59 +02:00
francescomani 038247f074 RU analog beam management (not for 7.2) 2025-06-10 12:10:59 +02:00
Sakthivel Velumani cf0206e7c6 Fix scheduler for long prach
Long PRACH extends beyond a slot. Changes necessary to mark future slots
that may contain prach in ru, phy and mac functions.

In RU, the PRACH IDFT is done only after receiving last slot and marks
for L1 to start processing. The L1 processes at the last prach slot and
reports to MAC with the first slot index.

In MAC scheduler, the VRB for future slots are also marked as used.
PRACH scheduler is called in advance one frame minus num prach slots.
2025-02-25 11:58:41 -05:00
Thomas Schlichter 0b4b6b952d remove unused rt_profiling 2025-01-17 10:59:28 +00:00
21dafbcde7 New threadpool
- removed some whitespace noise.
 - cleaned up CMakeLists.txt
 - reintegrated task_manager.c into thread-pool.c
 - cleaned up some unnecessary code

Co-authored-by: Cedric Roux <cedric.roux@eurecom.fr>
Co-authored-by: Mikel Irazabal <mikel.irazabal@openairinterface.com>
2024-12-04 17:54:51 +01:00
francescomani 64ed4e9262 handling beams in PHY TX channels 2024-10-11 08:02:06 +02:00
francescomani 2a9a038dbd improvements in RU beamforming handling procedures 2024-10-11 07:59:31 +02:00
Bartosz Podrygajlo b2c49fbc27 Add time-domain scope to gNB imscope. 2024-09-30 20:41:08 +02:00
Raymond Knoppandkiran d52b81798b Introduce separate thread to handle gNB TX processing
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>
2024-02-12 12:04:55 +01:00
Laurent THOMAS bba9aac079 fix most of doxygen warnings and errors 2023-10-26 16:47:19 +02:00
Raymond Knopp e3425b1f9e added msg-q threading options (and CPU thread pinning) from O-RAN 7.2 branch to develop-based for testing
with USRP.
2023-03-07 11:24:26 +01:00
Anurag Asokan bfbebe2de1 Merge targets/COMMON to executables 2022-10-18 14:22:06 +02:00
Raymond Knopp 4e9c9c5864 added configurable half-slot parallelization to RU processing (same as original version) 2022-08-07 22:49:11 +02:00
Raymond Knopp afed0cec34 testing with 20 and 50 MHz 2x2 on Jaguar. Adding simple documentation in ethernet.md file. 2022-08-03 17:15:49 +02:00
Raymond Knopp 3760ffa4af Merge remote-tracking branch 'origin/develop' into if5_ECPRI_rework 2022-07-30 19:36:27 +02:00
Raymond Knopp 6236fe8e77 changes for thread-core pinning 2022-06-11 08:08:03 +02:00
Raymond Knopp ca782ef2cb added threadPool to RU entity (FEP and FEP TX) 2022-05-30 07:21:39 +02:00
Raymond Knopp 0f207da28a initial changes for multi-threaded TX for IF5 2022-05-08 18:36:42 +02:00
Raymond Knopp f0e8032b29 Merge remote-tracking branch 'origin/develop' into if5_ECPRI_rework 2022-05-01 14:51:27 +02:00
francescomani 3ec401f2f6 Merge remote-tracking branch 'origin/develop' into tdd25period_for_MR 2022-04-28 17:26:33 +02:00
Raymond Knopp b7389ab3d1 Merge remote-tracking branch 'origin/develop' into tdd25period_for_MR
Conflicts:
	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_dlsch.c
2022-03-29 22:57:56 +02:00
Laurent THOMAS c0568a997a fix bugs, delete dead code 2022-03-28 12:05:18 +02:00
Robert Schmidt 57cfd7bc32 Remove basic simulator
The basic simulator can be replaced with the RF simulator. Use option
--rfsim.
2022-03-17 08:25:16 +01:00
Raymond Knopp 2bd90d5b49 Merge remote-tracking branch 'origin/develop' into tdd25period_for_MR
Conflicts:
	openair2/RRC/NR/MESSAGES/asn1_msg.h
2022-03-07 07:38:03 +01:00
Robert Schmidt 8419166fc4 Move time_meas.{c,h} to common/utils/ 2022-02-25 17:27:02 +01:00
Raymond Knopp 6d9d1f0b94 changes for 2.5ms TDD period 2022-02-19 13:07:20 +01:00
Raymond Knopp 4756c5a167 added configurable "sf_ahead" for NR/LTE in RU section. Tested in NR with sf_ahead=2 (normally 3) 2022-02-13 22:15:48 +01:00
Sakthivel Velumani bc6f39370c Added checks if tx RU processing start in order 2021-08-06 20:23:10 +05:30
Raymond Knopp 0b59ce4faf Merge remote-tracking branch 'origin/develop' into oairu 2021-04-07 15:50:46 +02:00
hardy ee398c7610 solved merge conflicts related to CI scripts 2021-03-16 11:55:23 +01:00
Raymond Knopp 94085a41cd Merge remote-tracking branch 'origin/develop' into oairu 2021-03-16 08:07:16 +01:00
Sakthivel Velumani 7854133bc2 Removing some of the old pthreads
Leaving ru_thread and L1 stats thread
2021-02-10 22:00:09 +01:00
Raymond Knopp 9edd67b216 Merge remote-tracking branch 'origin/develop' into oairu 2020-12-24 14:53:58 +01:00
Florian Kaltenberger 53d5189073 Merge remote-tracking branch 'origin/develop' into NR_FAPI_beamindex_SSB_RO 2020-11-19 16:26:42 +01:00
cig 29f7a5082a Introduced configuration of RU IF offset from configuration file
- the RU now supports IF equipment with custom FR1 TX/RX frequencies
- this configuration parameter together with the if_freq parameter allows
  to set a custom IF RX frequency for the gNB
- if the IF offset is not specified, legacy code applies
2020-10-27 10:39:43 +01:00
Florian Kaltenberger 60062cecfb adding beamforming support to FAPI: MAC fills ssb_beam_id_list in ssb config. PHY uses this info to fill new beam_id field. This is further copied to RU and applied there. Nothing is tested so far. 2020-10-19 13:36:00 +02:00
Florian Kaltenberger fecf27e223 updating FAPI interface with PRACH configuration index
NR PHY should now be able to handle multiple PRACH occasions
2020-09-11 17:00:44 +02:00
kn.raju f9db898155 modified num of FAPI PRACH pdu 2020-09-11 11:38:41 +05:30
magounak 1698f9e20f isolation of RU (no use of RC.xxx) 2020-07-13 08:00:59 +02:00
Thomas Schlichter 225a500b3e Merge branch 'develop' into NR_RRC_PRACH_procedures
Conflicts:
	executables/nr-ue.c
	openair1/PHY/NR_REFSIG/dmrs_nr.c
	openair1/PHY/NR_TRANSPORT/nr_prach.c
	openair1/PHY/NR_TRANSPORT/nr_transport_common_proto.h
	openair1/PHY/NR_TRANSPORT/nr_transport_proto_common.h
	openair1/PHY/NR_TRANSPORT/nr_ulsch_demodulation.c
	openair1/PHY/NR_UE_TRANSPORT/nr_transport_ue.h
	openair1/PHY/NR_UE_TRANSPORT/nr_ulsch_ue.c
	openair1/SCHED_NR_UE/fapi_nr_ue_l1.c
	openair1/SIMULATION/NR_PHY/prachsim.c
	openair1/SIMULATION/NR_PHY/ulsim.c
	openair2/LAYER2/NR_MAC_COMMON/nr_mac_extern.h
	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler.c
	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_phytest.c
2020-06-03 19:50:54 +02:00
Raphael Defosseux 768b4e0f24 Merge remote-tracking branch 'origin/cleanup-may-2020' into develop_integration_2020_w22 2020-05-28 12:58:42 +02:00
laurent bdee45878a cleanup branch 2020-05-20 15:44:20 +02:00
WANG Tsu-Han a85a39048d Merge branch 'develop' into NR_RRCConfiguration_trx_thread 2020-05-20 09:50:05 +02:00
laurent 861caa735d merge develop 2020-04-13 18:04:18 +02:00