Commit Graph
734 Commits
Author SHA1 Message Date
Laurent THOMAS df9cd171f6 remove a useless copy and specific buffer for all UE UL payload 2024-04-17 10:59:13 +02:00
Jaroslava Fiedlerova 87242ca92a Merge remote-tracking branch 'origin/fix_cppcheck' into integration_2024_w15 2024-04-12 09:18:07 +02:00
Jaroslava Fiedlerova efe065462d Add ulsch decoding statistics measurements
Add ulsch decoding measurements, which are reported by nr_ulsim. Start ulsch_decoding_stats measurement before
nr_ulsch_decoding is called and stop it after collection of all decoder tasks from Tpool. In the context of nr_ulsim,
ULSCH_id is allways == 0, testing is performed per one TB, therefore measurement is started and stopped only once per trial.
Reported ulsch decoding statistics show the mean ulsch decoding time over x trials (specified by -n command line option of nr_ulsim).
This measurement does not provide valid information in case of nr-softmodem, when the loop is done over multiple ULSCH IDs -
start of the measurement is done multiple times and stops only once in this case.
For unitary physical simulators, ULSCH processing loop is executed only once
- the max number of PUSCH is set to 1. This ensures exactly one start and stop
of the ULSCH decoding time measurement per processed TB.

Note: ulsch decoding statistics reports average time of segmentation, rate matching, interleaving and decoding of the TB
2024-04-11 16:06:53 +02:00
francescomani 1e1679b668 memleak 2024-04-09 16:44:56 +02:00
Laurent THOMAS 88fb3c3598 change type to c16_t around dmrs computation pieces of code 2024-03-26 20:57:31 +01:00
Robert Schmidt 7ea8833529 Use MAX_MOBILES_PER_GNB in 5G NR code
NUMBER_OF_UE_MAX is a 4G constant, use 5G one instead
2024-03-07 09:56:20 +01:00
Laurent THOMAS 50d4d489f7 fix timing advance from msg2/rar 2024-03-04 10:07:07 +01:00
Robert Schmidt 362bc481bd Remove misleading PUSCH decoding
PUSCH decoding is started multiple times in nr_ulsch_procedures() for
each ULSCH segment, and stopped once inside
phy_procedures_gNB_uespec_RX(). Not only is it not clear if that works
with the API, it also might measure more than just PUSCH decoding.

Remove the PUSCH decoding, it is misleading. Check L1 RX processing
instead.
2024-02-12 12:04:55 +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
Laurent THOMAS 3e9274eed6 simplify and make more efficient the tx data pdu attach to the pusch configuration 2024-01-24 14:18:59 +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 08f0283c43 improvements in initializing multiple instances of MAC and RRC 2024-01-19 11:33:27 +01:00
francescomani 7ca130832b move computation of base graph for LDPC at MAC in the UE 2023-12-20 18:03:17 +01:00
Robert Schmidt b4b2389753 Merge remote-tracking branch 'origin/ue-fix-ul-first-tx' into integration_2023_w48 2023-12-05 07:39:51 +01:00
Thomas Schlichter 6ef5d27c08 NR_UE: fix usage of PUSCH new_data_indicator and cleanup 2023-12-01 16:02:17 +01:00
Jaroslava Fiedlerova cf97acb8c7 Add T2 LDPC encoding/decoding offload 2023-11-28 09:37:37 +01:00
Laurent THOMAS 99ca87a1c1 Refactor LDPC API to make common API with various implementations 2023-11-28 09:37:37 +01:00
Jaroslava Fiedlerova e945b260f8 Remove T1 decoding offload 2023-11-28 09:37:37 +01:00
francescomani 273562f345 fix for do-ra and phy-test mode 2023-11-20 14:21:49 +01:00
francescomani 848f5767d7 unified handling of cellgroup config at MAC 2023-11-20 14:21:01 +01:00
francescomani 5661b20e9e improving init for dora and phytest 2023-11-20 12:14:59 +01:00
Robert Schmidt 0c51db05ad Merge remote-tracking branch 'origin/UE-rrc-coarse-cleaning' into integration_2023_w44 2023-11-13 15:10:20 +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 dd059343d9 ue-rrc-coarse-cleaning 2023-11-10 17:43:59 +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
Robert Schmidt 2e252dd377 Implement E1 bearer release 2023-10-27 09:07:51 +02:00
Robert Schmidt ec60fd8157 E1 bearer modification: harmonize code 2023-10-27 09:07:51 +02:00
Robert Schmidt 380151faa7 E1 Bearer Context Setup Request: harmonize code
- harmonize monolithic and E1AP case
- use ITTI message to send bearer context setup response to RRC
2023-10-27 09:07:51 +02:00
francescomani 9189129985 Use SRB0 at UE
- Use SRB0 TM entity at UE for Msg.3/RRC Setup Request
- Msg3 data request sent upon reception of Msg2, then we get data from
  rlc when needed
2023-10-10 15:40:26 +02:00
Laurent THOMAS 584fb235cd remove-dead-code-nrue 2023-10-06 18:00:18 +02:00
Tsung Yu Chan 0263b4a807 chore / remove the unused variable 2023-09-25 12:48:28 +02:00
Tsung-Yu Chan 04073b03e4 feat / add the MMSE and precoding
- avoid the finction duplication
  - add the transform predoding to the nr_rx_pusch_tp
  - add the MMSE for 2 layer which modulation greater than 16 qam
  - can support to 256 qam for 1 layer and 2 layer
2023-09-25 12:48:28 +02:00
Tsung-Yu Chan 1a42fa5326 feat / parallelize LLR by symbol 2023-09-25 12:48:27 +02:00
Robert Schmidt deb443dc2a Merge remote-tracking branch 'origin/interns_summer23' into integration_2023_w38 2023-09-24 17:42:34 +02:00
32e4d66c74 Improve nr_dlsim/nr_ulsim help message and CSV file logs
- Reorder help messages
- Add possibility to log results per SNR to CSV file with `-X` or `-Z`
- Reformat files

Co-authored-by: MoadMaroufi <maaroufi.moaad321@gmail.com>
Co-authored-by: francescomani <email@francescomani.it>
Co-authored-by: Robert Schmidt <robert.schmidt@openairinterface.org>
2023-09-22 12:03:52 +02:00
Robert Schmidt c930563929 Move radio configuration parameters to MAC, SIB1 not initialized!
!SIB1 is not correctly filled! This commit does not work with COTS UEs!
The next commit fixes this.

- Move radio config (e.g., minRXTXTIME, SIB1 TDA, do_SRS, etc) down to
  MAC.
- Some parameters in MAC are redundant: delete them.
- Remove call to nr_mac_config_scc() from RRC and simulators, the MAC
  initialization routine calls it implicitly
2023-09-22 08:22:15 +02:00
Robert Schmidt 5d0ae84ad2 Move MIB to MAC
The MasterInformationBlock is handled at the DU and sent to the CU in
the F1 Setup Response. Hence, move it down to the MAC. Furthermore:

- Change type because MIB_PDU_t is 4G type
- Simplify schedule_nr_mib()
2023-09-22 08:22:15 +02:00
Robert Schmidt 0f897b4007 Move ServingCellConfigDedicated to MAC
As with the ServingCellConfigCommon, the ServingCellConfigDedicated is a
radio-related structure to be handled at the DU.
2023-09-22 08:22:15 +02:00
Robert Schmidt 2b29531591 Move ServingCellConfigCommon to MAC
Note: the reestablishment is broken, and a later commit fixes it.

The ServingCellConfigCommon is an inherently radio-related
configuration. As such, it should be handled by the DU, not the CU.
Therefore, move it "down" to the MAC.
2023-09-22 08:22:15 +02:00
Raymond Knopp a7bc282302 First-level of support for new aarch64 machines
Testing on Neoverse N1 (Ampere 3GHz). Tested only on a subset of phy-simulators.

- Changes:
- use SIMDE consistently
- adaptations of LDPC decoder generator for ARMv8 performance
- SIMDe modifications of Intel CRC to allow for aarch64 build.
  optimizations for 128-bit to improve performance of LDPC encode/decode
  on aarch64 (Neoverse 1)
- added BG2 files for 128-bit ldpc encoder (aarch64)
- testing on Xeon
- testing on x86
- minor changes to build/run on x86
- change in crc.h after returning to aarch64
- removed some warning in ldpc decoder generator for x86_64
- char
- Delete irrelevant constants
- Correctly declare variables
- Define stdbool for all architectures
- Remove definition of _MM_SHUFFLE and use SIMDE_MM_SHUFFLE
- Remove commented code
- Fix CMakeLists.txt
- Include SIMDE avx2 functions in tools_defs.h
2023-09-13 17:19:20 +02:00
rmagueta 28438ab5c4 Add ptrs_bit_map input in add_noise() function 2023-09-04 18:37:01 +01:00
rmagueta a629feec29 Remove duplicated nr_est_delay_pdsch()/nr_est_timing_advance_pusch() functions and just create the function nr_est_delay() 2023-09-04 17:09:35 +01:00
rmagueta 7611fe671f Implementation of delay estimation in NFAPI_NR_DMRS_TYPE1_linear_interp() at UE 2023-09-04 17:09:35 +01:00
Laurent THOMAS 089180b069 remove dead code 2023-07-20 14:36:40 +02:00
Robert Schmidt b55bff37ca Merge remote-tracking branch 'origin/ue-code-cleanup' into integration_2023_w28 2023-07-13 16:56:36 +02:00
Robert Schmidt c1e8acb2e2 Repair build when T tracer build disabled 2023-07-13 10:28:38 +02:00
laurent 9121541b3c only cleaning 2023-07-10 12:00:25 +02:00
francescomani 7d08b0c06d add assertion in rotation function 2023-06-20 11:43:41 +02:00
francescomani 1c3058e2d2 use of apply_rotation functions also at UE 2023-06-20 10:39:13 +02:00