Commit Graph
156 Commits
Author SHA1 Message Date
Raymond Knopp a1a4f24d0f hotfix for F. Mani's update to nr_feptx_prec handling of multiple beams 2025-06-10 12:11:51 +02:00
francescomani e15631b23c adapting nr_feptx_prec function to analog beam management 2025-06-10 12:11:51 +02:00
francescomani 038247f074 RU analog beam management (not for 7.2) 2025-06-10 12:10:59 +02:00
francescomani bd05075ac6 code cosmetic improvement 2025-06-05 09:42:49 +02:00
Bartosz Podrygajlo 0657ab2275 Remove spinlock from threadpool task return
The idea to use atomic aligned to cache line for counting finished jobs
is reused, but instead of polling a semaphore was added
2025-01-14 15:17:19 +01:00
Laurent THOMAS e0ca70c36d replace a set of #define by a C bit array, remove duplicated extern global variable declaration 2025-01-09 15:28:25 +01: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 abc5069a55 handling beams in PHY RX channels 2024-10-11 08:02:06 +02: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
francescomani 900a78fd9b preliminary cleanup 2024-09-24 10:20:40 +02:00
Bartosz Podrygajlo ed05c94c3e Fix signal_energy_nodc for lengths that are not multiples of 4 2024-07-30 09:44:00 +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
Robert Schmidt 6f394db3a1 Respect do_precoding variable, print correct precoding stats
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.
2024-01-23 13:42:38 +01:00
Melissa Elkadi 4dd579e042 int32_t to c16_t conversion
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.
2023-03-15 12:45:39 -07:00
francescomani fc30280a7d cleaning up some NR files 2023-02-21 16:53:51 +01:00
laurent cfeae9560e merge develop 2022-08-26 18:02:50 +02:00
Robert Schmidt 1512e39e4e Rewrite kill_NR_RU_proc() and reuse functions 2022-08-16 14:41:02 +02:00
Robert Schmidt fc298b77b5 Don't stop nr-softmodem on FEP thread exit cond 2022-08-16 14:41:02 +02:00
Raymond Knopp 3ef063194a small modification for performance tracing of RU procedures 2022-08-10 17:27:57 +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 491d97dee9 removal of IF5_tools.x and old NR RU multi-threaded implementation. Fixes for LTE build 2022-08-06 12:13:16 +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 514462f1df Merge branch 'if5_ECPRI_rework' of https://gitlab.eurecom.fr/oai/openairinterface5g into if5_ECPRI_rework
Conflicts:
	targets/ARCH/ETHERNET/USERSPACE/LIB/eth_udp.c
2022-05-30 11:47:58 +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
francescomani faf38c7e56 Merge remote-tracking branch 'origin/develop' into bupt-ulmimo-4 2022-02-23 14:20:39 +01:00
Robert Schmidt 72a4ed80da Merge remote-tracking branch 'origin/msc-removal' into integration_2022_wk08 2022-02-19 19:43:11 +01:00
francescomani c4f1812cc9 Merge remote-tracking branch 'origin/develop' into bupt-ulmimo-4 2022-02-14 18:14:19 +01:00
Sakthivel Velumani f43a69c5dc Removed reuse of txdataF buffer on 2 slot basis 2022-01-28 10:39:44 +01:00
Robert Schmidt 00e058537d Remove MSC library, it is not used anywhere 2022-01-27 10:53:07 +01:00
francescomani d36079c914 Merge remote-tracking branch 'origin/develop' into bupt-ulmimo-4 2022-01-10 10:46:15 +01:00
yihz e4a7eda968 base on 2021.w48, diff_1206_2.diff, UL_NR_MIMO 4*4 2021-12-07 10:43:28 +08:00
Laurent THOMAS 4876c7a33d fix bug in WORKER_DISABLE 2021-11-25 14:06:08 +01:00
rmagueta 5e1065e88f Merge remote-tracking branch 'origin/develop' into bandwidth-testing-abs
# Conflicts:
#	executables/nr-uesoftmodem.c
#	executables/nr-uesoftmodem.h
#	executables/softmodem-common.h
#	openair1/PHY/MODULATION/slot_fep_nr.c
#	openair1/PHY/NR_ESTIMATION/nr_ul_channel_estimation.c
#	openair1/SCHED_NR/fapi_nr_l1.c
#	openair1/SCHED_NR_UE/phy_procedures_nr_ue.c
#	openair2/LAYER2/NR_MAC_UE/mac_proto.h
#	openair2/LAYER2/NR_MAC_UE/nr_ue_dci_configuration.c
#	openair2/LAYER2/NR_MAC_UE/nr_ue_scheduler.c
#	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_RA.c
#	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_ulsch.c
2021-09-02 17:57:48 +01:00
Sakthivel Velumani 6050776f55 Merge branch 'develop' into prb_based_dl_channel_estimation 2021-08-02 12:17:03 +02:00
Eurecom 378211346a debugging 2021-07-26 08:13:06 +02:00
rmagueta a2450bb4b7 Protect some xer_fprints by an if 2021-07-14 15:30:07 +01:00
rmagueta 160cb0b930 Merge remote-tracking branch 'origin/NR_SA_F1AP_5GRECORDS' into develop-NR_SA_F1AP_5GRECORDS-lts2
# Conflicts:
#	cmake_targets/CMakeLists.txt
#	cmake_targets/build_oai
#	cmake_targets/tools/build_helper
#	executables/nr-gnb.c
#	openair1/PHY/INIT/nr_init_ru.c
#	openair1/PHY/NR_TRANSPORT/nr_dlsch_coding.c
#	openair1/PHY/NR_TRANSPORT/nr_ulsch.c
#	openair1/PHY/NR_TRANSPORT/nr_ulsch_demodulation.c
#	openair1/PHY/NR_UE_TRANSPORT/nr_prach.c
#	openair1/SCHED_NR/phy_procedures_nr_gNB.c
#	openair1/SCHED_NR_UE/pucch_uci_ue_nr.c
#	openair2/F1AP/f1ap_du_rrc_message_transfer.c
#	openair2/F1AP/f1ap_du_rrc_message_transfer.h
#	openair2/F1AP/f1ap_du_task.c
#	openair2/GNB_APP/gnb_app.c
#	openair2/LAYER2/NR_MAC_UE/nr_ue_scheduler.c
#	openair2/LAYER2/NR_MAC_gNB/config.c
#	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler.c
#	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_dlsch.c
#	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_phytest.c
#	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_uci.c
#	openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_ulsch.c
#	openair2/LAYER2/nr_pdcp/nr_pdcp_entity.c
#	openair2/LAYER2/nr_pdcp/nr_pdcp_oai_api.c
#	openair2/RRC/LTE/rrc_eNB_GTPV1U.c
#	openair2/RRC/NR/L2_nr_interface.c
#	openair2/RRC/NR/MESSAGES/asn1_msg.c
#	openair2/RRC/NR/rrc_gNB.c
#	openair2/RRC/NR/rrc_gNB_NGAP.c
#	openair2/RRC/NR_UE/rrc_UE.c
#	openair3/NAS/NR_UE/nr_nas_msg_sim.c
#	openair3/ocp-gtpu/gtp_itf.cpp
#	targets/ARCH/USRP/USERSPACE/LIB/usrp_lib.cpp
2021-06-30 17:00:30 +01:00
Eurecom d249c1ef80 testing with 2x2 and 4x4 with N310, small modifications in nr_ru_procedures and usrp_lib.cpp for multiple antennas 2021-06-01 09:48:20 +02:00
Eurecom ac4670990c handling for UL failure. added do_precoding flag to nr-ru procedures. testing with 2x2 N310. 2021-05-30 23:14:12 +02:00
Raymond Knopp 1c4fef02dd Merge remote-tracking branch 'origin/develop' into prb_based_dl_channel_estimation
Conflicts:
	cmake_targets/autotests/test_case_list.xml
	openair1/PHY/NR_TRANSPORT/nr_ulsch_demodulation.c
	openair1/SIMULATION/NR_PHY/ulsim.c
	targets/PROJECTS/GENERIC-LTE-EPC/CONF/gnb.band22.tm1.106PRB.adrv9371zc706.conf
	targets/PROJECTS/GENERIC-LTE-EPC/CONF/gnb.band78.tm1.217PRB.usrpn300.conf
	targets/PROJECTS/GENERIC-LTE-EPC/CONF/gnb.band78.tm1.217PRB.usrpx300.conf
	targets/PROJECTS/GENERIC-LTE-EPC/CONF/gnb.band78.tm1.273PRB.usrpn300.conf
2021-05-22 16:33:44 +02:00
Sakthivel Velumani e7425965ed Fixing UE OFDM symbol generation
The CP length was hard coded for numerology 1
2021-05-03 20:46:10 +02:00
Raymond Knopp 0b59ce4faf Merge remote-tracking branch 'origin/develop' into oairu 2021-04-07 15:50:46 +02:00
hardy ddf3f9e88c Merge remote-tracking branch 'origin/NR_FAPI_beamindex_SSB_RO' into integration_2021_wk13_a 2021-03-29 10:02:51 +02:00
Raymond Knopp 08b781ebfe Merge remote-tracking branch 'origin/develop' into oairu 2021-03-25 06:44:11 +01:00
Thomas Schlichter dade64ea43 Merge remote-tracking branch 'develop' into NR_DL_MIMO 2021-03-19 11:18:02 +01:00
francescomani f659a76f43 Merge remote-tracking branch 'origin/develop' into NR_FAPI_beamindex_SSB_RO 2021-03-19 10:06:20 +01:00
Thomas Schlichter dd275d0148 improve nr_slot_fep() and variants 2021-03-05 15:01:19 +01:00