Commit Graph
224 Commits
Author SHA1 Message Date
Robert Schmidt 9a2e080f77 Apply clang-format 2024-04-13 08:54:15 +02:00
Raghavendra Dinavahi 94b23d1eb0 PSBCH RX TX and SLSS search procedures
- RX/TX Phy processing accg to 38.211, 38.212 Rel16
	- PSBCH simulator used to validate TX/RX phy processing
	- PSBCH SLSS Search procedures
	- PSBCH SIM also tests SLSS SEARCH
2024-04-12 16:07:00 +02:00
Jaroslava Fiedlerova c92650003f Merge remote-tracking branch 'origin/NR_4_layers_MIMO' into integration_2024_w13 2024-03-29 16:06:14 +01:00
francescomani 8f858af876 improvements for 4-layer MIMO at gNB 2024-03-21 18:22:25 +01:00
francescomani ee3dcc5c77 replacing cell_notdetected with cell_detected in initial_sync structure 2024-03-19 09:59:07 +01:00
francescomani 37d3e5bb58 get SSB ARFCN at RRC UE (needed to update k_gnb key according to 33.501) 2024-03-13 17:59:11 +01:00
Laurent THOMAS c5e4bea6b9 make explicit return of the clock drift to shift the corresponding number of samples
remove corresponding global variables
2024-03-07 15:28:22 +01:00
Laurent THOMAS 948188b200 basic C cleaning of dci decoding 2024-02-27 10:04:45 +01:00
Laurent THOMAS b5e169ec07 add const or other simple C code improvement 2024-01-09 16:15:14 +01:00
Laurent THOMAS f50d5f5a9b make multiple config instead of one implicit global 2023-11-10 10:23:11 +01:00
Laurent THOMAS e74b9a5c29 remove a frame param useless attribute 2023-08-30 15:27:33 +02:00
francescomani 44bc3e7cce taking sib1 detection out of initial sync 2023-07-27 11:11:09 +02:00
Robert Schmidt c1e8acb2e2 Repair build when T tracer build disabled 2023-07-13 10:28:38 +02:00
francescomani 1c3058e2d2 use of apply_rotation functions also at UE 2023-06-20 10:39:13 +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
Melissa Elkadi 2dfc36dc32 Converting OFDM mod/de-mod functions to use c16_ts instead of int16_ts 2023-05-10 09:10:12 -07:00
francescomani 87d9517738 avoid duplicated function in nr_common for supported bandwidth 2023-04-20 18:16:37 +02:00
Robert Schmidt 19d3014150 Merge remote-tracking branch 'origin/bugfix-phy-mac-interface' into integration_2023_w14 2023-04-05 19:30:30 +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 ebd70a3915 Merge remote-tracking branch 'origin/NR_pbch_errors_at_MAC' into integration_2023_w14 2023-04-04 19:35:23 +02:00
Sakthivel Velumani 15c12caa37 Contains MAC changes to run || DLSCH
DL config as array in MAC
Run RX slot processing in Tpool thread
Fixed race in phy config
Changed mac_IF_mutex
Proc Tx: Lets wait for Proc Rx to get ACK/NACK
-(only on slots that carry ACK/NACK)
Fix problem with rfsim
Separated PDCCH and PDSCH decoding functions. Run PDCCH decoding in main UE_thread.
Fixed race in MAC dci config struct
needed for parallel processing of slots
Moved DLSCH transport block buffer to stack
rx_ind as static allocation
L2sim: Fixed calling of MAC sched in wrong slot
Fix DCI extract bug for RA procedure
2023-04-03 10:24:24 -04:00
francescomani 5c333cca65 move radio link failure detection on pbch at MAC 2023-04-02 09:48:09 +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
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
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
francescomani 358772429e fix asan failures 2023-01-23 11:31:01 +01:00
Roberto Louro Magueta 13bbd326d1 Fix mismatched bounds in functions in .h and .c 2023-01-21 12:41:15 +00:00
laurent b74ba0fb92 cleaning only 2023-01-19 14:52:39 +01:00
Sakthivel Velumani c0f03f2960 Reduced scope of llr_buffer
Direct check on dlsim buffer
2022-12-18 11:33:54 +05:30
Sakthivel Velumani c31fe381f8 Simplified function args
removed gNB_id and slot from function calls where proc is used.
2022-12-18 10:08:12 +05:30
Sakthivel Velumani 573e7fd98a Changed rxdataF from int32_t to c16_t 2022-12-18 10:08:12 +05:30
Sakthivel Velumani 06ef311975 Moved PDSCH, rxdataF to stack
--Removed NR_UE_PDSCH global structure
--Changed UE scope to accomodate local PDSCH data
--Removed common_vars.rxdataF from global structure
2022-12-18 10:08:08 +05:30
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
Robert Schmidt 78a675922c Merge remote-tracking branch 'origin/develop-chModels-Doppler' into integration_2022_wk49 2022-12-07 19:04:43 +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 5115f5c928 cleanup of unused gnb phy fields 2022-11-23 19:04:56 +01:00
Sakthivel Velumani ea72306c38 Moved DLSCH PHY structure to stack 2022-10-31 18:22:27 -04: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
Thomas Schlichter 3c17573f34 apply nr rotation only on used PRBs instead of complete OFDM symbol 2022-08-25 11:05:48 +02:00
Thomas Schlichter 21ea2f2136 pbchsim: apply nr rotation in frequency domain, like in all other places, instead of time domain 2022-08-25 10:17:59 +02:00
francescomani edcb1b2bf5 workaround for pbchsim 2022-07-07 08:57:37 +02:00
francescomani 79586c03f4 fix for pointa and ssboffset 2022-07-07 08:57:37 +02:00
francescomani fb6fa64bc7 Merge remote-tracking branch 'origin/develop' into NR_remove_ssb_offset_from_configfile 2022-06-20 09:33:50 +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 c7e8002d8d adding CI test with subcarrier offset in pbchsim 2022-05-10 11:43:44 +02:00
francescomani 3b16547374 fix in pbchsim 2022-05-10 09:13:52 +02:00
francescomani a037987b47 remove ssb subcarrier offset from config file 2022-05-09 18:28:56 +02:00