8150a47ba5
NVIDIA Aerial Integration
...
- Aerial config file
- Changes for ARC1.1. Change config file to max MCS 25. Fixed pdu size errors.
- Remove taskset from Dockerfile.gNB.aerial.ubuntu20 after changing isolated CPUs
- removed the USRP from Docker file
Co-authored-by: Florian Kaltenberger <florian.kaltenberger@eurecom.fr >
Co-authored-by: Fredrik Molander <fmolander@nvidia.com >
Co-authored-by: Reem Bahsoun <reem.bahsoun@openairinterface.org >
2024-03-08 15:53:42 +01:00
Raymond Knopp and kiran
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
Raymond Knopp
bb044cf940
Update logs to NR_ version and add some new
2024-02-06 16:03:56 +01:00
Laurent THOMAS
b257734c6f
Fix tPool calls: symmetric to pushing messages
...
Messages are pushed using pushNotifiedFIFO(), so we pullNotifiedFIFO()
2023-10-27 13:02:24 +02:00
Raymond Knopp
2a6b188635
removed temporary "USE_MSGQ" definition. Now, with
...
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)
2023-04-27 15:17:07 +02:00
Raymond Knopp
455e2203e7
Merge remote-tracking branch 'origin/develop' into threading-rk
2023-04-09 18:29:42 +02:00
Cedric Roux
733c7e5e89
bugfix: change memory management of interface between PHY and MAC scheduler
...
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.)
2023-04-05 16:39:12 +02:00
francescomani
0d66410317
another round of review
2023-03-27 15:39:49 +02:00
Robert Schmidt
6e93619896
review comments
2023-03-27 15:26:52 +02:00
francescomani
f3126586f3
removing constant max number of xlsch
2023-03-27 15:26:52 +02:00
francescomani
7c9b501310
removing call from MAC to PHY to clear structures (now automatic clearing)
2023-03-27 15:26:52 +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
francescomani
721b8e9d9f
setting max dlsch/ulsch limit
2023-01-23 11:31:01 +01:00
francescomani
571f488ddb
remove NUMBER_OF_NR_CSIRS_MAX
2023-01-23 11:13:05 +01:00
Robert Schmidt
d73e1a4133
Handle NULL return of pullTpool()
2022-08-16 14:41:02 +02:00
Robert Schmidt
c4a657cc33
Avoid additional malloc() for queues and Tpool
2022-08-16 14:41:01 +02:00
Raymond Knopp
6abb1e362d
Merge remote-tracking branch 'origin/tdd25period_for_MR' into F1_interop_ACC
...
Conflicts:
cmake_targets/CMakeLists.txt
openair1/PHY/NR_TRANSPORT/pucch_rx.c
openair1/SCHED_NR/fapi_nr_l1.c
openair1/SIMULATION/NR_PHY/dlschsim.c
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_dlsch.c
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_primitives.c
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_uci.c
openair2/LAYER2/NR_MAC_gNB/main.c
openair2/RRC/NR/MESSAGES/asn1_msg.c
openair2/RRC/NR/MESSAGES/asn1_msg.h
openair2/RRC/NR/nr_rrc_proto.h
openair2/RRC/NR/rrc_gNB.c
openair3/ocp-gtpu/gtp_itf.cpp
targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band78.fr1.106PRB.2x2.usrpn300.conf
2022-03-09 19:16:23 +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
26d0d65747
get execution time_stats_t from Tpool job
2022-02-25 17:55:27 +01:00
Sakthivel Velumani
57c480a8a3
Merged the two thread stats into a global one
2022-02-25 17:21:17 +01:00
Raymond Knopp
5ba8b83856
Merge remote-tracking branch 'origin/aw2s-n41' into harq_latency_control
...
Conflicts:
openair1/SIMULATION/NR_PHY/dlsim.c
openair2/LAYER2/NR_MAC_gNB/config.c
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_dlsch.c
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_ulsch.c
openair2/RRC/NR/MESSAGES/asn1_msg.c
openair2/RRC/NR/nr_rrc_proto.h
openair2/RRC/NR/rrc_gNB_nsa.c
openair2/RRC/NR/rrc_gNB_reconfig.c
targets/ARCH/AW2SORI/oaiori.c
2022-02-13 12:24:45 +01:00
Raymond Knopp
b9b24588af
Merge remote-tracking branch 'origin/develop' into aw2s-n41
...
Conflicts:
cmake_targets/phy_simulators
openair1/PHY/NR_TRANSPORT/pucch_rx.c
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_primitives.c
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_uci.c
2022-02-11 12:21:29 +01:00
Robert Schmidt
a36555b254
Merge remote-tracking branch 'origin/develop-SRS' into integration_2022_wk06_a
2022-02-08 18:06:53 +01:00
rmagueta
e8657ec854
Merge remote-tracking branch 'origin/develop' into develop-SRS
...
# Conflicts:
# targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band41.fr1.106PRB.usrpb210.conf
# targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band78.fr1.106PRB.usrpb210.conf
2022-02-08 09:31:32 +00:00
Robert Schmidt
9594e422bc
Merge remote-tracking branch 'origin/NR_pdcch_improvements' into integration_2022_wk06
2022-02-07 18:48:52 +01:00
Raymond Knopp
495f0150da
Merge branch 'NR_pdcch_improvements' into aw2s-n41
...
Conflicts:
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_bch.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_primitives.c
2022-02-01 10:56:20 +01:00
Raymond Knopp
7d4bdfb566
Merge remote-tracking branch 'origin/develop' into aw2s-n41
2022-02-01 10:46:13 +01:00
luis_pereira87
0e159f8b6b
Merge remote-tracking branch 'origin/develop' into bler_txoptim
...
# Conflicts:
# openair1/SCHED_NR/fapi_nr_l1.c
2022-01-25 08:49:16 +00:00
francescomani
e7f544e139
Merge remote-tracking branch 'origin/develop' into NR_pdcch_improvements
2022-01-24 19:08:21 +01:00
Raymond Knopp
90c66bb7b1
Merge remote-tracking branch 'origin/develop' into aw2s-n41
...
Conflicts:
executables/nr-softmodem.c
openair1/PHY/NR_TRANSPORT/nr_dlsch.c
openair1/PHY/NR_TRANSPORT/pucch_rx.c
openair1/SIMULATION/NR_PHY/dlsim.c
openair1/SIMULATION/NR_PHY/ulsim.c
openair2/LAYER2/NR_MAC_gNB/config.c
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_RA.c
2022-01-24 11:11:46 +01:00
luis_pereira87
015e360d42
Merge remote-tracking branch 'origin/develop' into bler_txoptim
...
# Conflicts:
# ci-scripts/conf_files/gnb.band78.sa.fr1.106PRB.usrpn310.conf
# ci-scripts/conf_files/gnb.band78.sa.fr1.162PRB.2x2.usrpn310.conf
# openair1/SCHED_NR/fapi_nr_l1.c
2022-01-10 14:03:55 +00:00
Laurent THOMAS
b4b457345d
merge develop
2022-01-10 12:49:47 +01:00
francescomani
98e8b74331
Merge remote-tracking branch 'origin/develop' into NR_pdcch_improvements
2022-01-10 10:13:18 +01:00
rmagueta
cf8f6fdeed
Merge remote-tracking branch 'origin/develop' into develop-SRS
...
# Conflicts:
# ci-scripts/conf_files/gnb.band78.sa.fr1.106PRB.usrpn310.conf
# ci-scripts/conf_files/gnb.band78.sa.fr1.162PRB.2x2.usrpn310.conf
# openair2/LAYER2/NR_MAC_UE/nr_ue_scheduler.c
# openair2/RRC/NR/L2_nr_interface.c
2022-01-08 12:11:56 +00:00
Raymond Knopp
e9e5dd4c1a
Merge branch 'CSI-SA' into aw2s-n41
...
Conflicts:
openair1/PHY/NR_TRANSPORT/pucch_rx.c
openair2/LAYER2/NR_MAC_gNB/config.c
2021-12-12 22:47:46 +01:00
francescomani
d6dedc1f49
handling multiple pdcch pdu at fapi and phy
2021-12-09 13:14:19 +01:00
Sakthivel Velumani
1af5a89dd1
Removed active waiting loop
...
which could block threads. Instead used a separate thread to reorder the finished the job messages
2021-12-05 17:48:32 +05:30
rmagueta
c2d948a055
Implementation of the remaining procedures until call the new PHY function nr_get_srs_signal at gNB
2021-11-22 17:46:48 +00:00
rmagueta
5697860db1
Fill NFAPI of SRS pdu
2021-11-22 13:56:18 +00:00
Raymond Knopp
02b17c79d6
commit before merge. minor changes for testing
2021-11-14 17:28:24 +01:00
Melissa Elkadi
4eb0aceab6
Merge remote-tracking branch 'eurecom/develop' into episys/master-nsa
2021-10-27 15:05:05 -07:00
Melissa Elkadi
b56c8ac3ce
Merge remote-tracking branch 'eurecom/develop' into origin-episys-merge-nsa
2021-10-25 10:27:11 -07:00
francescomani
a8d2265a9d
Merge remote-tracking branch 'origin/develop' into NR_cleanup_MACPHY
2021-10-20 15:50:18 +02:00
rmagueta
b1a8b06547
Merge remote-tracking branch 'origin/integration_2021_wk41' into integration_2021_wk41_bwt-abs
...
# Conflicts:
# ci-scripts/xml_files/fr1_sa_quectel.xml
# openair1/SCHED_NR/fapi_nr_l1.c
# openair1/SCHED_NR/phy_procedures_nr_gNB.c
# openair2/GNB_APP/gnb_paramdef.h
2021-10-14 14:22:23 +01:00
Raymond Knopp
33371f226a
initial changes for n41 support with aw2s RRU
2021-10-05 11:37:34 +02:00
francescomani
773d55f422
some cleanup of MAC and PHY cross compilation
2021-09-27 17:29:17 +02:00
Deokseong "David" Kim
6a7fe60266
Episys/david/sync between dl tti req and tx data req
2021-09-21 22:38:29 +00:00
Sakthivel Velumani
0de2a333af
Merge branch 'develop' into phy-asan-fixes
2021-09-14 16:47:15 +05:30
rmagueta
5765d0e508
Fix build after merge
2021-09-02 18:57:14 +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