Commit Graph
831 Commits
Author SHA1 Message Date
Robert Schmidt e2a3cde4b7 Further cleanup: define oai_exit for 4G
The parent commit cleans up and groups oai_exit in one place,
nr-softmodem-common.h. Therefore, this 5G file is included in the 4G
defs_common.h (at least it's mostly 4G), which is not nice. Instead,
define oai_exit also in 4G softmodem-common.h, and include this in
defs_common.h. Remove the cyclic inclusion of defs_common.h in
softmodem-common.h, and resolve all subsequent errors around unknown
types and extern definition mismatches.
2025-01-09 15:28:25 +01:00
Laurent THOMAS e0ca70c36d replace a set of #define by a C bit array, remove duplicated extern global variable declaration 2025-01-09 15:28:25 +01:00
Romain Beurdouche 7f1d3c6644 feat(nrLDPC_coding_interface): Use reworked interface in PHY simulators 2024-12-16 08:40:54 +01:00
Guido Casati 1c9bcf4004 Refactor includes in unitary simulators
* prachsim, ulsim, dlsim
* used open source IWYU tool + manual review
2024-11-18 11:25:02 +01:00
Robert Schmidt c847ac786f Merge remote-tracking branch 'origin/ci-cls-physim-cleanup' into integration_2024_w45 (!3074)
CI: Cleanup of cls_physim.py

- Remove unused code and file
- Rework functions for CUDA and T2 log analysis
- Check if test was successful for nr_ulsim and nr_dlsim in
  RAN-gNB-N300-Timing-Phytest-LDPC pipeline
2024-11-13 09:57:49 +01:00
Jaroslava Fiedlerova fff605eab9 Add measurement of total gNB TX processing time for nr_dlsim 2024-11-12 12:02:29 +01:00
Laurent THOMAS 07b9daa762 fix blocking bugs in command nr_dlsim -n100 -e27 -s35 -b 273 -R273 -x4 -y4 -z4
use a better complex vector multiplication function
2024-11-07 17:08:18 +01:00
francescomani 3f550a27be decouple call for config scc from init of MAC 2024-10-11 08:02:06 +02:00
francescomani 64ed4e9262 handling beams in PHY TX channels 2024-10-11 08:02:06 +02:00
Jaroslava Fiedlerova 63609313d2 Merge remote-tracking branch 'origin/remove-incoherent-set-cpumeas' into integration_2024_w38b 2024-09-20 13:59:00 +02:00
Laurent THOMAS 31f770978c option q is to set cpu measurements but it is hardcoded in some places 2024-09-18 16:02:14 +02:00
Laurent THOMASandFrancesco Mani 7a5da40d0b Improve tracing for DLSCH decoding results
- Better trace DLSCH decoding result
- Rename the decode result variable to separate with later ack/nack
  encode of this decoding result from 3GPP (not trivial true=1 coding)
- Cleanup decodeResult usage
- Remove unused defines

Co-authored-by: Francesco Mani <email@francescomani.it>
2024-09-18 14:40:07 +02:00
francescomani 0a8e1b49d0 adapt VRB maps to multiple beams in a period 2024-08-14 08:33:48 +02:00
Jaroslava Fiedlerova fc9c5084eb Merge remote-tracking branch 'origin/nr-ue-pdsch-time-stats-fix' into integration_2024_w31 2024-08-02 16:27:58 +02:00
Bartosz Podrygajlo b242a483f1 Rewrite NR UE PHY cpu measurements 2024-07-30 19:23:54 +02:00
Laurent THOMAS 745ea1c1dd Use gold cache for PDSCH decoding 2024-07-30 14:50:57 +02:00
Laurent THOMAS 99c8dd420a Use gold cache for PDCCH decoding, scrambling, unscrambling 2024-07-30 14:49:46 +02:00
Laurent THOMAS 0316431e27 Use gold cache for PBCH encoding&decoding 2024-07-30 14:48:36 +02:00
Jaroslava Fiedlerova 561119a2d6 Merge remote-tracking branch 'origin/cleanup-nr-ue-executable' into integration_2024_w29 2024-07-22 08:25:18 +02:00
Jaroslava Fiedlerova 9aeacd3455 Merge remote-tracking branch 'origin/fix-nsa-reattach' into integration_2024_w29 2024-07-18 17:34:31 +02:00
Bartosz Podrygajlo 2ff1253321 Move init_nr_bler_table out of nr-uesoftmodem.c 2024-07-18 09:31:37 +02:00
Robert Schmidt 4cb0bd3712 Clean up servingCellConfigDedicated once after reading config
get_default_secondaryCellGroup() would "sanitize" the servingCellConfig,
i.e., remove BWP that are invalid. However, it is difficult to
understand (we can do sanitization once at the beginning) and reason
(why the servingCellConfig is modified in
get_default_secondaryCellGroup(), because all we want is a new
CellGroupConfig, without modifying other data structures).

Instead, do sanitization once after reading the configuration in
gnb_config.c. Also, modify physical simulators nr_dlsim and nr_ulsim to
apply this sanitization before a call to
get_default_secondaryCellGroup(), as the latter would have done the
sanitization.
2024-07-16 11:24:57 +02:00
Thomas Schlichter 021f97cf10 NR UE: increase DURATION_RX_TO_TX by cellSpecificKoffset_r17 2024-07-10 15:56:05 +02:00
Romain Beurdouche 327b9a8b70 fix(phy_simulators): enable the use of option -O to pass a configuration file to configmodule in phy simulators 2024-06-25 10:38:09 +02:00
Robert Schmidt 092047984a Merge remote-tracking branch 'origin/initial_gNB_NTN_support' into integration_2024_w22 2024-06-03 21:36:00 +02:00
Robert Schmidt 5b53f4ee0f Merge remote-tracking branch 'origin/NR_UE_cell_search' into integration_2024_w22 2024-06-03 21:35:51 +02:00
Thomas Schlichter f1938acbab gNB: make ue_TimersAndConstants configurable via conf file 2024-06-03 11:54:55 +02:00
Thomas Schlichter 90fa3d5534 gNB: make SR timers configurable in CONF file 2024-06-03 11:54:55 +02:00
Sakthivel Velumani 043da0c440 NR UE scan for SSB within current bandwidth
Till this commit, the UE gets the position of SSB in frequency from
command line and does the syncronization by locating the SSB in time. It
does this by generating a PSS time signal during initialization with the
SSB offset given via command line. Then PSS detection is done by
correlation.

In this commit, the UE computes a list of GSCN in the current NR band
that falls within the current bandwidth for the set center frequency.
For each GSCN in the list, the UE starts a thread and performs the
following:
1. Generate PSS time signal with SSB offset for current GSCN.
2. Detect PSS, SSS and decode PBCH (this step remains the same).
After all threads finishes, the results are collected.

For now, only the first detected PBCH is used to proceed further. So
this PBCH is indicated to MAC and UE exits initial sync.

Future work: The cell search can be standalone feature where the UE
could scan for SSB in the entire NR band. This would require changing
radio's frequency on the fly as the UE's bandwidth would not cover an
entire NR band. The cell detection can futher be imporved by looking
for SIB1 for each decoded PBCH.
2024-05-30 10:20:45 -04:00
Romain Beurdouche 4e8f58b498 fix(nr_dlsim): fix cmdline configmodule for nr_dlsim 2024-05-15 14:04:18 +02:00
Jaroslava Fiedlerova 9d2ad34b1b Merge remote-tracking branch 'origin/improve-layer-mapping' into integration_2024_w15 2024-04-12 16:54:50 +02:00
Laurent Thomas be3452a10e Reduce stack memory size for layer mapping
Delete small pieces of dead code
2024-04-12 11:14:08 +02:00
francescomani 1e1679b668 memleak 2024-04-09 16:44:56 +02:00
Laurent THOMAS b97c70fd87 remove 5G dependency on 4G mac.h include, separate RA state enums between 4G/5G and UE/gNB
add RA stat trace by enum name instead of integer printing

fix minor a few minor typos
2024-03-15 10:55: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
Raphael Defosseux 3972cd44d6 Merge remote-tracking branch 'origin/NR_UE_maxmimo_layers' into integration_2024_w08 2024-02-23 10:08:15 +01:00
Raymond Knoppandkiran 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
francescomani e6b02c6d12 add option to configure max MIMO layers for PDSCH TBSLBRM computation from UE capabilities 2024-01-30 14:49:33 +01:00
Jaroslava Fiedlerova a0de76ca96 Merge remote-tracking branch 'origin/NR_UE_reworking_NOS1_bearer_configuration' into integration_2024_w04 2024-01-26 09:43:45 +01:00
Jaroslava Fiedlerova 679a0084c5 Merge remote-tracking branch 'origin/fix-ue-scheduler-stack-copy' into integration_2024_w04 2024-01-26 09:35:48 +01:00
Laurent THOMAS 84ade524e4 Simplify interface by removing dcireq_t struct that was only calling one function and remove fill_scheduled_response that also fills only a struct in a complex way 2024-01-23 18:38:11 +01:00
Laurent THOMAS 99815be715 make frame/slot in ul_config dl_config instead of upper structures value, fix modulo computation of frame 2024-01-23 18:04:08 +01:00
francescomani 4f3fcbfe13 free cellGroupConfig in RRC where it is allocated 2024-01-23 16:53:56 +01:00
Robert Schmidt 9b113d2cce Add configuration for phase compensation
For 7.2 FH, some RUs do phase compensation, whereas for others, the DU
does it. In fact, this can be "negotiated" using the M plane. Since we
don't have the M plane yet, add a configuration option to set where
phase compensation is performed.
2024-01-23 13:41:41 +01:00
Jaroslava Fiedlerova 3c1405f606 Merge remote-tracking branch 'origin/NR_precoding_marix_at_MAC' into integration_2024_w03 2024-01-19 15:31:21 +01:00
francescomani 08f0283c43 improvements in initializing multiple instances of MAC and RRC 2024-01-19 11:33:27 +01:00
francescomani c8afb25d3b moving generation of precoding matrices at MAC and trying to adapt to SCF (1st version) 2024-01-19 09:21:08 +01:00
Laurent THOMAS 4c7b185d92 merge two reduntant and incoherent enums for rnti_type_t, make a macro to stringify properly instead of hardcoded side strings array 2024-01-09 16:15:14 +01:00
francescomani 60f5b9622c clang formatting and review 2023-12-17 17:28:28 +01:00
francescomani b0dd591932 fixes after CI run 2023-12-12 14:12:48 +01:00