Commit Graph
9100 Commits
Author SHA1 Message Date
Jaroslava Fiedlerova f3e5ab1060 Merge remote-tracking branch 'origin/remove-most-of-m64-type-usage' into integration_2025_w04 (!3209)
Remove most of m64 type usage

MMX instructions were first SIMD version, the registers management is complex
(_mm_empty()) so, it is better to remove it now and use more recent instructions

anyway, gcc/clang should replace it automatically as long as we enable sse2,
that should always be the case but for code understanding and for ARM porting
for example, it is better to explicitly remove it
2025-01-27 10:35:20 +01:00
Jaroslava Fiedlerova 5512a48fbd Demote error logs to debug for "PUCCH not processed"
As per https://gitlab.eurecom.fr/oai/openairinterface5g/-/issues/896#note_148540,
these logs can be ignored.

Closes: #896
2025-01-27 09:32:49 +01:00
Laurent THOMAS b999177810 remove MMX instruction usage in polar decode 2025-01-24 15:29:28 +01:00
Jaroslava Fiedlerova 266076897c Merge remote-tracking branch 'origin/qam64_mimo_ML' into integration_2025_w04 (!3020)
use ML receiver for 64 QAM UL-MIMO

Change condition on MMSE/ML selection to include 64QAM for ML UL-MIMO receiver.
Only 256QAM will now use MMSE UL-MIMO receiver.
2025-01-24 11:32:37 +01:00
Jaroslava Fiedlerova 706aecf22b Merge remote-tracking branch 'origin/fix_t2_harq_combined_offset' into integration_2025_w04 (!3214)
fix(nrLDPC_coding_t2): Miscellaneous fixes related to T2

1. HARQ combined offset:
The offset provided for each code block in the HARQ combined input and output
buffer shall not be above 512. A modulus was performed on the offset of the TB
in the buffer to avoid this situation. But the offset of the code block was
added afterward so that the total offset was sometimes going above 512.This
commit performs the modulus after adding the code block offset. Usually this
issue was triggering a segfault after less than 2 minutes of an iperf test on
some setup using T2. The same iperf test was successfully performed during 10
minutes on the same setup with this change.

2. Properly stop LDPC coding in gNB and UE:
LDPC coding was yet not properly stopped by using free_nrLDPC_coding_interface
in gNB and UE. This was not causing major issue until now. It was especially not
causing any issue with T2 LDPC coding using the PF. But using T2 VFs, if the
coding library is not properly stopped then the VF cannot be used anymore unless
the admin app is restarted. So this MR adds the missing free_nrLDPC_coding_interface.
2025-01-24 11:30:13 +01:00
Jaroslava Fiedlerova c0a0de3e63 Merge remote-tracking branch 'origin/remove-unused-code' into integration_2025_w04 (!3215)
Remove unused code
2025-01-24 09:31:14 +01:00
Laurent THOMAS ef3b99a263 remove MMX instruction usage in threegpplte_turbo_encoder_sse() 2025-01-23 21:18:26 +01:00
Laurent THOMAS e106ec6d91 remove m64 type and a very basic cleaning of LTE ulsch_decoding 2025-01-23 21:18:26 +01:00
Laurent THOMAS 536b5d8760 Clean up logging module debug flags
cleanup debug/dump flags by avoiding repetitions in the source code and
enable compiler checks. Add a help text if we set a wrong debug trace
option.
2025-01-23 14:12:29 +01:00
Laurent THOMAS d68a8b51e6 Remove unused PHY_MEX compile option 2025-01-23 14:11:13 +01:00
Laurent THOMAS 17bb19c7be Remove unused LOCALIZATION compile option 2025-01-23 14:10:33 +01:00
Laurent THOMAS fb2f893954 Remove unused static inline function 2025-01-23 13:57:36 +01:00
Laurent THOMAS e7e01f753a remove unsed LUT 2025-01-23 10:35:49 +01:00
Romain Beurdouche 38a38e0eaf fix(nrLDPC_coding_t2): Properly stop LDPC coding in gNB and UE
LDPC coding was yet not properly stopped by using free_nrLDPC_coding_interface in gNB and UE.
This was not causing major issue until now. It was especially not causing any issue with T2 LDPC coding using the PF.
But using T2 VFs, if the coding library is not properly stopped then the VF cannot be used anymore unless the admin app is restarted.
So this MR adds the missing free_nrLDPC_coding_interface.
2025-01-20 08:10:42 +00:00
Thomas Schlichter 0fd5130573 NR UE: remove unused elements tx_wait_for_dlsch and rx_offset from nr_rxtx_thread_data_t 2025-01-17 11:40:09 +00:00
Thomas Schlichter a2eaacf2bd remove unused element harq from LDPC encoder_implemparams_t 2025-01-17 11:40:09 +00:00
Thomas Schlichter 45dfcbe6cd remove unused global variable sl_ahead 2025-01-17 10:59:39 +00:00
Thomas Schlichter 0b4b6b952d remove unused rt_profiling 2025-01-17 10:59:28 +00:00
Romain Beurdouche 0d3008c244 fix(nrLDPC_coding_t2): HARQ combined offset
The offset provided for each code block in the HARQ combined input and output buffer shall not be above 512.
A modulus was performed on the offset of the TB in the buffer to avoid this situation.
But the offset of the code block was added afterward so that the total offset was sometimes going above 512.
This commit performs the modulus after adding the code block offset.
2025-01-17 10:55:03 +00:00
Robert Schmidt 998d8c9480 Merge remote-tracking branch 'origin/pucch-rssi-fix' into integration_2025_w03 (!3205)
Fix calculation of RSSI in pucch_rx.c

Fix two issues with RSSI calculation in PUCCH:

- RSSI was calculated using partial sum instead of average of squared samples.
- There was a missing parentheses pair which causes the RSSI value to underflow.

The proper way to calculate power in dBFS is

    let signal_energy = average of squared samples of received signal over resource elements, antennas and symbols under measurement

then:

    rssi[dBFS] = -10log10(max_sample^2 / signal_energy),

or (to avoid division):

    rssi[dBFS] = -(10log10(max_sample^2) - 10log10(signal_energy))
2025-01-15 22:07:31 +01:00
Robert Schmidt a20d229b6b Merge remote-tracking branch 'origin/pucch2-delay-compensation' into integration_2025_w03 (!3034)
Delay compensation for PUCCH2

- Implementation of delay compensation for PUCCH2, which minimizes for
  exampe logs "reported RSRP index XXX invalid"
- Adding a test to the CI to perform the delay compensation in PUCCH2
- Refactor code to use c16_t data type in PUCCH decoder
2025-01-15 18:34:53 +01:00
Robert Schmidt 77ddc36236 Merge remote-tracking branch 'origin/tpool-nospinlock' into integration_2025_w03 (!3193)
Remove spinlock from threadpool task return

The idea to use atomic aligned to cache line for counting finished jobs
is reused, but instead of polling a semaphore was added.
2025-01-15 15:04:37 +01:00
Bartosz Podrygajlo 7bd048e6af Fix calculation of RSSI in pucch_rx.c
Fix two issues with RSSI calculation in PUCCH:
 - RSSI was calculated using partial sum instead of average of squared samples.
 - There was a missing parentheses pair which causes the RSSI value to underflow.
   The proper way to calculate power in dBFS is

    let signal_energy = average of squared samples of received signal over resource
     elements, antennas and symbols under measurement

    then:
     rssi[dBFS] = -10log10(max_sample^2 / signal_energy),
    or (to avoid division):
     rssi[dBFS] = -(10log10(max_sample^2) - 10log10(signal_energy))
2025-01-15 13:49:05 +01:00
Bartosz Podrygajlo 0657ab2275 Remove spinlock from threadpool task return
The idea to use atomic aligned to cache line for counting finished jobs
is reused, but instead of polling a semaphore was added
2025-01-14 15:17:19 +01:00
Laurent THOMAS 48226d10bf add cpu measurement option in nr_pucchsim 2025-01-14 11:34:22 +01:00
rmagueta dc5f4bf868 Apply delay compensation only when delay is different from 0 2025-01-14 11:34:22 +01:00
Laurent THOMAS 6384517c01 Better code for PUCCH2 decoding 2025-01-14 11:34:22 +01:00
rmagueta 39a50faa6e Delay compensation for PUCCH2 2025-01-14 11:34:22 +01:00
Laurent THOMAS f919246121 remove part of code using _m64 type (so old mmx instructions) 2025-01-14 10:07:59 +01:00
Laurent THOMAS ba27aefe4e add some const and remove dead code 2025-01-14 10:07:31 +01:00
Laurent THOMAS 7d0c89185c gcc warning on #define duplicated 2025-01-14 10:07:31 +01:00
Laurent THOMAS d5c72cf843 remove a race condition in viberti_lte and a useless global table 2025-01-14 10:07:30 +01:00
Laurent THOMAS a0d6057294 remove calls to clear SIMD registers, that was a historical issue 2025-01-14 10:06:06 +01:00
Robert Schmidt 72aaf45fa8 Merge remote-tracking branch 'origin/race-ue-rrc-mac' into integration_2025_w02 (!3103)
Introduce ITTI queue in RRC-to-MAC direction

resolve ue rcc to mac race conditions by a itti queue, but it doesn't
resolve the problem of exact slot we should apply the new cell
configurtion
2025-01-13 10:10:07 +01:00
Robert Schmidt 39d9d32eda Merge remote-tracking branch 'origin/local-UL_INFO' into integration_2025_w02 (!3076)
Move UL_INFO structure allocation local to a rx slot processing

UL_INFO is allocated a gNB, so require mutex and obscur information
passing function to function.  Instead, make a local UL_INFO per slot,
removing the mutex and making the code easier to understand.
2025-01-13 07:46:05 +01:00
francescomani 9d9902d883 apply ITTI queue to SIB19 2025-01-10 18:28:27 +01:00
Laurent THOMASandRobert Schmidt b4bc7c96ba Move UL_INFO structure allocation local to a rx slot processing
Use UL_INFO on the stack, to simplify the code.  move in the same struct
the associated rach, pdu, crc, srs arrays that where pointed from
directly in gNB structure Keep in nfapi the existing logic that make
malloc for theses rach, pdu, crc, srs array lists

Pass only relevant fields, where appropriate.

Co-authored-by: Robert Schmidt <robert.schmidt@openairinterface.org>
2025-01-10 18:05:58 +01:00
Robert Schmidt 189396aac2 Merge remote-tracking branch 'origin/nrLDPC_coding_improvements_2' into integration_2025_w02 (!3187)
nrLDPC_coding: Fix naming, comments, superfluous variables and documentation typos in coding library interfaces

This MR is clarifying the interfaces to the LDPC coding libraries.  It
aims to improve the readability of the interfaces and compliance of
naming with specification 38.212.
2025-01-10 18:00:35 +01:00
Robert Schmidt 38f9436837 Merge remote-tracking branch 'origin/NR_UE_DCI_mask_size' into integration_2025_w02 (!3188)
NR UE fix DCI mask size

Previous maximum size was 15 but in practice it could be at least up to
18. Also moved assertion on non-contiguous type0 DLSCH allocation to L1
(to remove blocking point for L2 implementation).
2025-01-10 11:47:27 +01:00
Robert Schmidt d892732ff7 Merge remote-tracking branch 'origin/improve-pusch-per-symbol-processing' into integration_2025_w02 (!3175)
Improvements for PUSCH per symbol processing

- Improved the assert in task_ans.c
- Fixed and issue with PUSCH per-symbol processing that could cause an
  issue in case num_pusch_symbols_per_thread is not 1.
2025-01-10 11:45:50 +01:00
Romain Beurdouche f9c7057ed1 fix(nrLDPC_coding): Apply clang-format to segment coding code 2025-01-10 09:00:35 +00:00
Romain Beurdouche c54e7a7035 fix(nrLDPC_coding): in segment decoder, move useless memset on decoder output c to the oly case where it is useful 2025-01-10 09:00:35 +00:00
Romain Beurdouche 6eb0913de9 fix(documentation): typos and strengthen the explanation of the adaptation layer between slot coding and segment coding 2025-01-10 09:00:35 +00:00
Romain Beurdouche c959f41987 fix(nrLDPC_coding): remove T2 legacy setCombIn from segment decoder parameters 2025-01-10 09:00:35 +00:00
Romain Beurdouche 15fc29843c fix(nrLDPC_coding): cleanup the naming of the K, Kprime and Zc variables to comply with the standard 38.212-5.2.2 2025-01-10 09:00:32 +00:00
Romain Beurdouche 9586db6bfd fix(nrLDPC_decoder): Rename E in Kprime in segment decoder parameters to comply with standard naming 2025-01-10 08:54:37 +00:00
Robert Schmidt 7720d7c821 Merge remote-tracking branch 'origin/fix-tpool-deadlock' into integration_2025_w02 (!3181)
Use UL actor for processSlotTx

Use UL actor instead of Thread pool for processSlotTX.

Closes #887
2025-01-10 07:56:36 +01:00
Robert Schmidt 8805b78d3f Merge remote-tracking branch 'origin/nrLDPC_coding_improvements_1' into integration_2025_w02 (!3173)
nrLDPC_coding: improvements

One improvement in this changeset: Functions nr_interleaving_ldpc,
nr_deinterleaving_ldpc, nr_rate_matching_ldpc and
nr_rate_matching_ldpc_rx that were previously linked with the PHY layer
in the executables are now linked with the LDPC coding implementations
where they are called.
2025-01-10 07:55:46 +01:00
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