Commit Graph
6472 Commits
Author SHA1 Message Date
Robert Schmidt 0ecd346b07 Merge remote-tracking branch 'origin/NR_UE_data_scrambling_fix' into integration_2024_w12 2024-03-26 10:41:25 +01:00
francescomani 91e5d80002 correct use of dataScramblingID for PUSCH at UE 2024-03-22 11:08:19 +01:00
Robert Schmidt 78305b8c54 Merge remote-tracking branch 'origin/NR_fix_gold' into integration_2024_w12 2024-03-22 08:31:19 +01:00
francescomani de82f516fe fix gold pusch 2024-03-21 11:17:39 +01:00
francescomani 557f3e6f05 fix gold pdsch 2024-03-21 11:17:02 +01:00
francescomani 8d93ab5fed fix gold pdcch 2024-03-21 11:16:59 +01:00
francescomani ee3dcc5c77 replacing cell_notdetected with cell_detected in initial_sync structure 2024-03-19 09:59:07 +01:00
francescomani 1fa6be2a3d fix procedure after T300 expiry 2024-03-19 09:55:05 +01:00
Robert Schmidt 0b43620e05 Merge remote-tracking branch 'origin/print_LOG_for_UE_command_line_parameters' into integration_2024_w11 2024-03-18 09:41:15 +01:00
Robert Schmidt 823e127c55 Merge remote-tracking branch 'origin/NR_UE_no_leaks_dora' into integration_2024_w11 2024-03-15 08:13:01 +01:00
francescomani 51d60c2dae let the gNB print a LOG with the UE command line parameters to simplfy the life of the users 2024-03-14 18:55:51 +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
Robert Schmidt e9e67b40fe Merge remote-tracking branch 'origin/ue-rework-keep-sync-in-frame' into integration_2024_w10 2024-03-08 18:56:50 +01:00
Robert Schmidt 2d4e3a0515 Merge remote-tracking branch 'origin/simplify-log-module-interface' into integration_2024_w10 2024-03-08 07:19:55 +01:00
Robert Schmidt 132949c226 Merge remote-tracking branch 'origin/NR_DMRS_rx_improved_comments' into integration_2024_w10 2024-03-08 07:19:47 +01:00
Robert Schmidt 66bdd0e801 Merge remote-tracking branch 'origin/ci-aw2s-test-15' into integration_2024_w10 2024-03-08 07:16:11 +01:00
Robert Schmidt e24f5d635c Merge remote-tracking branch 'origin/cleanup_fapi_and_more' into integration_2024_w10 2024-03-08 07:16:04 +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
mir 573e7d3a4a Comments from MR 2024-03-07 11:00:57 +01:00
mir 275c3c6aa8 Bugfix cmax and memory init 2024-03-07 11:00:57 +01:00
mir fc8d0c59c6 Scan build: Result of operation is garbage or undefined 2024-03-07 11:00:57 +01:00
Laurent THOMAS 4245dd9be9 Remove useless declarations 2024-03-07 09:57:31 +01:00
Robert Schmidt 0128945922 nr_fill_indication(): protect with mutex
nr_fill_indication() fills CRC and RX requests, to be sent from L1 to
L2. Before this commit, nr_fill_indication() is called when
- we finally decoded LDPC (or not)
- low signal on PUSCH
This might happen at the same time, i.e., nr_fill_indication() might try
to fill both CRC and RX, in the same list, from different threads. This
can lead to this assertion:

Assertion (crc->rnti == rx->rnti) failed!
In handle_nr_ulsch() ../../../openair2/NR_PHY_INTERFACE/NR_IF_Module.c:190
mis-match between CRC RNTI e071 and RX RNTI 5e3b

e.g., e071 is low energy, and while 5e3b related message are filled in
one thread, e071 is being put into the message structure as well.

At least that is my understanding. I could not actually reproduce this
assertion; to be seen if it still happens.
2024-03-07 09:56:33 +01:00
Robert Schmidt c189591827 Add header guards inr nr_ulsch.h to avoid circular dependencies 2024-03-07 09:56:20 +01:00
Robert Schmidt 09a75009ce nr_fill_ulsch(): gracefully handle case of no ulsch found 2024-03-07 09:56:20 +01:00
Robert Schmidt 8d87f0c4e2 get_phy_stats(): full list is non-fatal
Do not assert if the list of phy statistics is full; instead return
NULL.

In most places, this is handled appropriately (we do not store anything
if we can't). In nr_decode_pucch0(), the return value of get_phy_stats()
is used a little bit all over the function, and a constant
  if (uci_stats)
    uci_stats->variable++;
would look ugly, so make uci_stats point to the stack if we cannot store
in the phy_stats.
2024-03-07 09:56:20 +01:00
Robert Schmidt 98c309ffe3 Refactor nr_decode_pucch0() to not rely on uci_stats
the uci_stats variable (pointing to per-UE statistics for UCI) is used
in function nr_decode_pucch0() to store information which is important
beyond statistics, e.g., uci_stats->pucch0_thres as a threshold (which
comes from somewhere else)

This commit refactors to use original or intermediate variables to not
mix uci_stats usage with actual processing.

Also, group uci_stats a bit more.
2024-03-07 09:56:20 +01:00
Robert Schmidt 711518ba00 Move NUMBER_FRAMES_PHY_UE_INACTIVE to smaller scope 2024-03-07 09:56:20 +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
francescomani 284d07c5ae nfapi_nr_interface cleanup 2024-03-06 11:38:26 +01:00
Laurent THOMAS 2129ee3c9c remove global visibility of log variables, remove circular .h dependancy 2024-03-06 08:51:24 +01:00
Robert Schmidt 331fb1ce8e Merge remote-tracking branch 'origin/better-dci-decoding' into integration_2024_w09 2024-03-05 08:58:52 +01:00
Jaroslava Fiedlerova 64e58c1d67 Merge remote-tracking branch 'origin/739-rf-channel-sim-improvements' into integration_2024_w09 2024-03-04 17:39:13 +01:00
Laurent THOMAS 2962340a8b Add variable pointer to catch the rx gain between redundant strct members rfdevice and ifdevice 2024-03-04 10:48:13 +01:00
Laurent THOMAS 7466297568 move command line sample offset and 3/4 sampling option at top level, as it is common option for 4G,5G xNB and UE 2024-03-04 10:07:07 +01:00
Laurent THOMAS 56c4a6ec07 change trace to new NR_MAC_DCI and NR_PHY_DCI for DCI processing 2024-03-01 12:20:32 +01:00
francescomani c464c27f63 adding comments to clarify that DMRS samples generated for channel estimation at reception already takes into account complex conjugate needed for said estimation 2024-02-29 18:59:48 +01:00
Laurent THOMAS 8666b084d5 improve code of dci decoding and add tracing for all dci fields 2024-02-28 10:17:11 +01:00
francescomani c54a1ff857 remove unused phy_config_ind queue 2024-02-27 17:08:10 +01:00
Laurent THOMAS 948188b200 basic C cleaning of dci decoding 2024-02-27 10:04:45 +01:00
Laurent THOMAS 8e24272a03 Fix multiple errors in nr_dlsch_channel_level_median() and nr_dlsch_channel_level()
UBsan fails with errors without this commit. The commit changes:

- avoid two possible integer overflows in nr_dlsch_channel_level() and nr_dlsch_channel_level_median()
- nr_dlsch_channel_level_median() is simplified
- use MAX_ANT in avg to handle more than 4x4 config
2024-02-22 15:55:10 +01:00
Guido Casati 563109a88f Cleanup of unused and outdated legacy RFSIM code
- deleted:    ../../../executables/rfsim.c
- removed unused command line options to set SINR and SNR
- removed unused functions to get SINR and SNR
- removed unused RFSIM struct members
2024-02-20 15:06:59 +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
Robert Schmidt e9d6081abc Add slot indication timing 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
Robert Schmidt fb69d9c635 Remove unused UL_INFO_mutex
The UL_INFO_mutex is used in only one place, and therefore useless.
Also, the scheduler uses a lock internally to prevent concurrent access.
Hence, the UL_INFO_mutex is not needed.

Remove kill_gNB_proc(), as it is now dead code.
2024-02-12 11:25:30 +01:00
Raymond Knopp bb044cf940 Update logs to NR_ version and add some new 2024-02-06 16:03:56 +01:00
Jaroslava Fiedlerova 9af66c9ec6 Merge remote-tracking branch 'origin/NR_UE_fix_no_mcs_dci_failed_detection' into integration_2024_w05 2024-02-05 09:23:52 +01:00
francescomani b70eba44a7 fix for computing ssb subcarrier offset 2024-02-02 09:21:40 +01:00
Jaroslava Fiedlerova 366715f214 Merge remote-tracking branch 'origin/t2-offload-mr3' into integration_2024_w04 2024-01-26 09:43:22 +01:00