Commit Graph
123 Commits
Author SHA1 Message Date
Robert Schmidt e289c11b1b Order nr_pucchsim options alphabetically in help 2024-04-08 12:54:42 +02:00
Laurent THOMAS f50d5f5a9b make multiple config instead of one implicit global 2023-11-10 10:23:11 +01:00
Moaad Maaroufi ea9bc93f74 Added some changes that I forgot to push in the first commit 2023-08-22 12:10:13 +02:00
Robert Schmidt 54d5676c21 Initialize variables to NULL/0 in nr_dlschsim, pucchsim, nr_ulschsim 2023-07-03 14:07:38 +02:00
Robert Schmidt 555a54f85e Add Sidelink (SL) carrier frequency
1. Adding a "SL" frequency for Sidelink mode. The
   importance of this variable is to ensure that
   when we are in mode 1 (UE+UE+gNB), that the slot
   configuration and frequencies do not overlap. This
   SL frequency is important for rotation and allows
   us to utilize the OFDM modulation and demodulation
   functions that already exist in OAI.
2. Adding sl_mode to the command line for proper UE
   deployment when in SL mode. sl_mode can be set to 0,
   1, or 2. sl_mode 0 indicates no-Sidelink at all,
   mode 1 is gNB, UE, and UE (3GPP defines mode numbers).
   sl_mode 2 indicated UE to UE communications with no
   gNB at all.
3. New functions for calculating the carrier frequency
   for SL mode.
2023-06-16 11:11:44 +02:00
Vijay Chadachan 836469e849 CPPCHECK fixes for printf issues
Fix for following CPPCheck warnings
- invalidPrintfArgType
Rebased with latest develop branch w21.
Reverted modifications unrelated to printf issues.
2023-06-01 12:07:26 +02:00
Robert Schmidt 2faca0fdba Fix too large shift in nr_pucchsim 2023-04-19 22:12:08 +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
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 6d13f28bc0 physical simulators compilation warnings 2023-03-09 19:01:47 +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 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
francescomani 821e3ad5ce set random payload for pucchsim 2022-11-08 11:25:41 +01:00
Roberto Louro Magueta 9b594ff3b6 Fix AWGN channel 2022-10-27 17:18:38 +01: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
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
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
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 6a0605b000 Merge remote-tracking branch 'origin/get_samplerate_and_bw' into integration_2022_wk32 2022-08-11 18:11:15 +02:00
francescomani 6e2a83856b common function to get sample rate and BW 2022-08-04 17:19:15 +02:00
francescomani 8c81c70de9 Fix AckNack and SR multiplexing in PUCCH2
- correctly reset HARQ structure for HARQ Ack/Nack/PUCCH0
- reduce max PUCCH2 bits to have room for SR
2022-08-04 10:53:41 +02:00
Robert Schmidt 644422ebec Merge remote-tracking branch 'origin/NR_PUCCH_RRC_Resources' into integration_2022_wk25 2022-06-22 17:20:38 +02:00
Hongzhi Wang 445f1d42a0 Merge branch 'develop' into ldpc_offload_t1_mr
Conflicts:
	openair1/SIMULATION/NR_PHY/ulsim.c
2022-06-22 09:26:58 +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
francescomani 0c5d6a59e7 Merge remote-tracking branch 'origin/develop' into NR_PUCCH_RRC_Resources 2022-05-18 15:19:00 +02:00
Thomas Schlichter 44a98a85c5 Merge remote-tracking branch 'origin/develop' into 5g-nr-low-snr-performance 2022-05-17 17:38:59 +02:00
francescomani 59ced82104 Merge remote-tracking branch 'origin/develop' into NR_PUCCH_RRC_Resources 2022-05-06 17:02:22 +02:00
francescomani d05f2b3add Merge remote-tracking branch 'origin/develop' into bupt-ulmimo-4 2022-04-28 11:54:51 +02:00
Thomas Schlichter 23bdf1e32c remove unused perfect_ce 2022-04-07 11:45:26 +02:00
Laurent THOMAS a7e7d05da3 fix difficult to read code 2022-03-24 14:38:17 +01:00
francescomani f40b579a78 fix for phy-simulator issues 2022-03-16 15:13:50 +01:00
Hongzhi Wang 457ee6c049 bugfix build issue 2022-03-10 21:43:28 +01:00
francescomani 9e26621d4b Merge remote-tracking branch 'origin/develop' into bupt-ulmimo-4 2022-03-01 15:54:31 +01:00
francescomani faf38c7e56 Merge remote-tracking branch 'origin/develop' into bupt-ulmimo-4 2022-02-23 14:20:39 +01:00
Laurent THOMAS efcac39c76 simplify polar codec interface 2022-02-22 18:30:44 +01:00
Laurent THOMAS 9aba6d722b fix bugs in polar encode, when len+crc_len>64 2022-02-21 13:37:32 +01:00
Robert Schmidt 3f4fa05c74 nr_pucchsim: correctly free SR PDU 2022-02-21 13:36:41 +01:00
Robert Schmidt dcae857463 Fix memory problems in nr_pucchsim
except:
- from dlopen()
- from configuration module
- uninitialized value
2022-02-21 13:36:41 +01:00
Robert Schmidt efd62d14a7 Implement term_nr_ue_signal(), remove abstraction_flag from init_nr_ue_signal()
term_nr_ue_signal() frees all memory, except for dfts lib load
2022-02-21 13:35:34 +01:00
Robert Schmidt 21f862641c Merge remote-tracking branch 'origin/cleanup-20220125' into integration_2022_wk08 2022-02-19 19:34:01 +01:00
francescomani c4f1812cc9 Merge remote-tracking branch 'origin/develop' into bupt-ulmimo-4 2022-02-14 18:14:19 +01:00
Laurent THOMAS ef2fedfc5b fix existing bug in pucchsim.c and in random_channel.c 2022-02-07 23:50:01 +01:00