Commit Graph
138 Commits
Author SHA1 Message Date
francescomani 7ca130832b move computation of base graph for LDPC at MAC in the UE 2023-12-20 18:03:17 +01:00
Robert Schmidt 610a886da7 Merge remote-tracking branch 'origin/multi-config' into integration_2023_w44 2023-11-12 05:14:36 +01:00
Laurent THOMAS f50d5f5a9b make multiple config instead of one implicit global 2023-11-10 10:23:11 +01:00
francescomani 629825aca6 taking into account PTRS in computing G 2023-11-03 10:39:13 +01:00
francescomani 26bceb2277 handling reserved case of ULSCH MCS 2023-08-19 08:31:03 +02:00
Robert Schmidt 516d4b9fc1 Merge remote-tracking branch 'origin/use-memsan' into integration_2023_w28 2023-07-13 19:19:15 +02:00
Robert Schmidt c1e8acb2e2 Repair build when T tracer build disabled 2023-07-13 10:28:38 +02:00
Robert Schmidt 54d5676c21 Initialize variables to NULL/0 in nr_dlschsim, pucchsim, nr_ulschsim 2023-07-03 14:07:38 +02:00
Laurent THOMAS 3645c96c09 remove generic thread pool abort 2023-06-12 10:24:37 +02:00
laurent 1b09f683f9 Fix compilation errors due to -Werror 2023-06-08 19:15:24 +02:00
francescomani a0b207fe6b adding options for 256QAM in UL simulators 2023-04-17 12:41:47 +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
francescomani 779748579c fixes for physical simulators 2023-03-27 15:26:52 +02:00
Robert Schmidt e90ef3bc68 Split phy_init.h into two files (for LTE/NR) 2023-03-06 20:05:38 +01:00
Robert Schmidt 8a15fb7c63 RC: forward declarations and link physims better
The simulators have been changed: due to linker errors that would arise
otherwise, a lot of functions are defined in them to avoid such errors.
Some functions are also defined in header files; in this commit, we
define most functoins in nr_dummy_functions.c, which is compiled in, not
by including the C file, but by adding it to the target in
CMakeLists.txt

- nr_dlsim+nr_ulsim need NR_IF_Module_init(), so it cannot be in
  nr_dummy_functions, but the others need it
- Link correcr NR_IF_Module_init() into these simulators, and reduce
  overall link list
- Correctly link remaining simulators
2023-03-06 20:04:38 +01:00
francescomani 358772429e fix asan failures 2023-01-23 11:31:01 +01:00
laurent b74ba0fb92 cleaning only 2023-01-19 14:52:39 +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
Roberto Louro Magueta 9b04af1b52 Put the center_freq and maxDoppler as input of new_channel_desc_scm() function 2022-11-25 11:03:45 +00:00
Sakthivel Velumani 3c8478f785 Moved PHY ULSCH struct to stack 2022-11-22 11:54:18 -05:00
Roberto Louro Magueta 6f51b930c1 Put the correlation level (low, medium or high) as input of new_channel_desc_scm() 2022-10-27 17:07:25 +01:00
Sakthivel Velumani 8a71877eec Remove thread id and make slot processing in series 2022-09-29 13:43:16 -04:00
francescomani 0a992c604a Merge remote-tracking branch 'origin/develop' into ul-phr 2022-09-05 14:35:50 +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
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
francescomani 9819268412 Merge remote-tracking branch 'origin/develop' into ul-phr 2022-08-29 17:23:43 +02:00
francescomani 1e39dd777d fix physical simulators 2022-08-29 16:45:14 +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
Robert Schmidt dfd9a91b50 Rename abortNotifiedFIFO() to abortNotifiedFIFOJob() 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
Robert Schmidt 31d5bb6ffd Rename abortTpool() to abortTpoolJob(), fix doc 2022-08-16 14:41:01 +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
Sakthivel Velumani da8d3037df fixed bugs in phy sims 2022-06-08 21:32:07 +05:30
francescomani 1f49b73eac Merge remote-tracking branch 'origin/develop' into NR_dl_ul_fapi_improv 2022-05-18 08:55:40 +02:00
francescomani cfa37e7213 cosmetic changes 2022-05-03 12:21:47 +02:00
francescomani f49df05456 fix for ulschsim antenna ports 2022-04-20 18:55:38 +02:00
francescomani cb32c7505e tabulated values * 10 to simplify the code 2022-03-30 19:08:20 +02:00
francescomani c6b4f97d19 coderate according to SCF and get tbs,qm,R only at MAC 2022-03-26 13:37:34 +01:00
francescomani fb118a76a8 Merge remote-tracking branch 'origin/develop' into bupt-ulmimo-4 2022-03-22 13:21:43 +01:00
Hongzhi Wang 457ee6c049 bugfix build issue 2022-03-10 21:43:28 +01:00
francescomani 06d488bb23 ulsch memory optimization 2022-03-09 17:35:38 +01:00
francescomani 9e26621d4b Merge remote-tracking branch 'origin/develop' into bupt-ulmimo-4 2022-03-01 15:54:31 +01:00
francescomani 43ea92bf8f Merge remote-tracking branch 'origin/develop' into NR_MIMO_memory 2022-03-01 15:08:30 +01:00
Robert Schmidt 0827b2f5b8 Fix leaks & unitialized memory in nr_ulschsim 2022-02-21 13:35:35 +01:00
Robert Schmidt 399e6d78f7 new_nr_ue_ulsch(): no abstraction_flag, add term_nr_ue_transport() 2022-02-21 13:35:35 +01:00
Robert Schmidt 331575ebab Fix memory leaks in nr_ulschsim 2022-02-21 13:34:40 +01:00
francescomani 8c1ed65c1f Merge remote-tracking branch 'origin/develop' into NR_MIMO_memory 2022-02-16 13:46:54 +01:00
francescomani c4f1812cc9 Merge remote-tracking branch 'origin/develop' into bupt-ulmimo-4 2022-02-14 18:14:19 +01:00
francescomani 467172f44d removing pusch 2nd codeword also at gnb 2022-01-27 11:59:55 +01:00