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
francescomani
12ccca72b6
further improvements
2023-03-27 15:26:52 +02:00
francescomani
779748579c
fixes for physical simulators
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
48d19391e2
fix for PHY structure disactivation
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
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
2385bc364a
fixing most warning when compiling nr-softmodem
2023-03-09 19:01:46 +01:00
Robert Schmidt
e90ef3bc68
Split phy_init.h into two files (for LTE/NR)
2023-03-06 20:05:38 +01:00
Robert Schmidt
3c73b3aadf
Merge remote-tracking branch 'origin/NR_refactor_PHY_vector_sizes' into integration_2022_wk06
2023-02-09 19:22:57 +01:00
Rúben Soares da Silva
af2ea8f275
Change hardcoded nFAPI ports to use htons and ntohs and changes to allow OAI VNF and PNF to run
2023-01-24 15:35:20 +00:00
francescomani
d8612a6ca7
some more cleanup
2023-01-23 11:13:05 +01:00
francescomani
dd24ddd645
remove NUMBER_OF_NR_PUCCH_MAX
2023-01-23 11:13:05 +01:00
Robert Schmidt
12384bbe25
Clean up phy_init_nr_gNB()
...
- variable is_secondary_gnb is not used anywhere, so remove
- variable lowmem is not used/defines should be changed, so remove
2022-12-12 23:40:39 +01:00
francescomani
e79b926905
rename sdr to radio
2022-10-19 17:42:26 +02:00
francescomani
539563f03e
moving targets/ARCH to sdr/
2022-09-26 11:17:44 +02:00
laurent
23f49bd013
merge-develop-and-conflicts
2022-09-20 14:03:25 +02:00
Robert Schmidt
203ac17833
Merge remote-tracking branch 'origin/by-core-thread-pool' into integration_2022_wk35b
2022-09-04 21:46:04 +02:00
Robert Schmidt
95dad65c9a
Merge remote-tracking branch 'origin/nr_rotation_optimization' into integration_2022_wk35b
2022-09-04 21:39:09 +02:00
laurent
aa2a36768c
simplify thread pool configuration
...
fix segv
fix bug redeclaration of same struct in phy sim
Apply 1 suggestion(s) to 1 file(s)
code reveiw comments
2022-09-02 11:36:47 +02:00
laurent
cfeae9560e
merge develop
2022-08-26 18:02:50 +02:00
Thomas Schlichter
3c17573f34
apply nr rotation only on used PRBs instead of complete OFDM symbol
2022-08-25 11:05:48 +02:00
Hongzhi Wang
1d4ffe42c4
Merge branch 'develop' into ldpc_offload_t1_mr
...
Conflicts:
executables/nr-softmodem.h
executables/softmodem-common.h
openair1/SCHED_NR/phy_procedures_nr_gNB.c
2022-08-22 20:02:34 +02:00
Raymond Knopp
787249fe8a
fix for L2 emulator test
2022-08-20 19:20:50 +02:00
Hongzhi Wang
31acfdea58
Merge branch 'develop' into ldpc_offload_t1_mr
...
Conflicts:
openair1/SCHED_NR/phy_procedures_nr_gNB.c
2022-08-18 17:38:55 +02:00
Robert Schmidt
2465f1fb51
Don't allocate gNB rxdataF, it is managed at the RU
...
Removes phy_procedures_gNB_common_RX() (only used in nr_ulsim) + fixes
in pucchsim
2022-08-16 14:44:22 +02:00
Robert Schmidt
004d6d3bab
Correctly stop tx_reorder and L1_stats threads
2022-08-16 14:41:02 +02:00
Robert Schmidt
31dcdf2152
Implement abortNotifiedFIFO() to unlock FIFO waits
2022-08-16 14:41:02 +02:00
Robert Schmidt
d73e1a4133
Handle NULL return of pullTpool()
2022-08-16 14:41:02 +02:00
Robert Schmidt
e63cc03c9d
Implement abortTpool()
...
This stops all ongoing threads (using pthread_join()), and marks FIFOs
to not block anymore. In this case, returned messages will be NULL.
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
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
1b35f0b163
added profiling circular buffer to gNB
2022-08-05 07:18:44 +02:00
Raymond Knopp
3760ffa4af
Merge remote-tracking branch 'origin/develop' into if5_ECPRI_rework
2022-07-30 19:36:27 +02:00
Ilario FAVERO
c5b8fa5418
New command line arg for disabling stats: --disable-stats
2022-06-24 14:32:39 +02:00
Hongzhi Wang
b7295ab45f
Merge branch 'develop' into ldpc_offload_t1_mr
...
Conflicts:
executables/nr-gnb.c
openair1/PHY/CODING/nrLDPC_defs.h
openair1/PHY/INIT/nr_init.c
openair1/PHY/NR_TRANSPORT/nr_ulsch_decoding.c
openair1/SCHED_NR/phy_procedures_nr_gNB.c
openair1/SIMULATION/NR_PHY/ulsim.c
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_ulsch.c
2022-06-17 14:49:54 +02:00
Raymond Knopp
6236fe8e77
changes for thread-core pinning
2022-06-11 08:08:03 +02:00
Robert Schmidt
dc4f610245
Merge remote-tracking branch 'origin/ulsim-perf-testing' into integration_2022_wk23
2022-06-09 17:47:57 +02:00
Sakthivel Velumani
93e6bd26da
Made channel estimation techniques configurable
2022-06-08 21:32:07 +05:30
Robert Schmidt
b1d07fb3e0
print_meas_log(): do not write beyond memory end
2022-06-07 17:41:21 +02:00
Robert Schmidt
dd801325d4
Terminate LOG with newline
2022-06-03 17:10:03 +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
86b5b9db3d
Merge remote-tracking branch 'origin/develop' into tdd25period_for_MR
...
Conflicts:
openair2/GNB_APP/gnb_config.c
openair2/GNB_APP/gnb_paramdef.h
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_dlsch.c
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_ulsch.c
openair2/LAYER2/nr_pdcp/nr_pdcp_oai_api.c
openair2/RRC/NR/MESSAGES/asn1_msg.c
openair2/RRC/NR/rrc_gNB_reconfig.c
2022-04-09 19:44:26 +02:00
Laurent THOMAS
293a53e373
code review remarks, cannot perform full test (develop bugged)
2022-04-06 17:07:25 +02:00
Laurent THOMAS
a7e7d05da3
fix difficult to read code
2022-03-24 14:38:17 +01:00
francescomani
12f9dd95eb
Merge remote-tracking branch 'origin/develop' into nr_mimo_precoding_codebook_I
2022-03-22 09:44:40 +01:00
Raymond Knopp
d840ca0dee
Merge remote-tracking branch 'origin/develop' into tdd25period_for_MR
...
Conflicts:
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_ulsch.c
2022-03-22 07:03:40 +01:00
Robert Schmidt
ca303c9fd5
Merge remote-tracking branch 'origin/continuous-tx' into integration_2022_wk11
2022-03-18 16:51:50 +01:00