- 27 Jan, 2025 11 commits
-
-
Robert Schmidt authored
-
Robert Schmidt authored
There is a reference counting mechanism used in monolithic. It does not apply for the PNF.
-
Robert Schmidt authored
The VNF should never call into the L1, it's L2/L3, by definition. Also, it's not necessary.
-
Robert Schmidt authored
We are required to store multiple PUCCH (e.g., for multiple UEs). However, nr_fill_pucch() automatically freed the previously active PUCCH structure. Of course(!) this does not make sense. However, the problem is that init_nr_transport() allocated only one PUCCH structure. Also this does not make sense to me. The problem was that slot_ahead was 0, which logically cannot happen in this function (because slot_ahead is illogical, we must give the radio some time). The reason is that it uses if_inst->sl_ahead, which, prior to this commit, was not set. The init_nr_transport() function is called normally from main() through init_eNB_afterRU(). In this case, we initialize if_inst->sl_ahead to what is set in main(). In the PNF case, however, we call init_nr_transport() from the PNF thread, when receiving the start request. In the main(), we wait for this to happen, before setting if_inst->sl_ahead. Hence, initializing this variable (which we should safely be able to do) before solves the problem.
-
Robert Schmidt authored
See also a later commit "Allow to use multiple PUCCH at once", in which PUCCH handling in the case of PNF is reworked. We might squash both commits.
-
Rúben Soares da Silva authored
Assign NFAPI_NR_CONFIG_SLOT_CONFIG_TAG tag in TLVs used for transmitting the TDD Slot configuration through CONFIG.request.
-
Robert Schmidt authored
sync_var is set in main() (which likely is wrong in that the L1 code sync itself, and not require the help of main()).
-
Robert Schmidt authored
The radio gives the clock. Therefore, we do not need to keep the time separately in the PNF. Also, the VNF should not run the ru_thread, as this is an L1 thread.
-
Robert Schmidt authored
This is to align with monolithic/FAPI, where we get slot indications in each slot. In the nFAPI, this is replaced by timing information, such that the VNF ticks automatically, and gets indications from the PNF on early/late messages. The timing information handling is not implemented in the present nFAPI implementation. Instead, we adopt the FAPI behavior and send timing information in every slot, abusing it to be a slot indication.
-
Robert Schmidt authored
There is no need to add the PNF in nr_start_resp_cb(), because it has already been done in nr_param_resp_cb(). This might be wrong, because 4G does it only in nr_start_resp_cb(), but for the moment, since it is also used in nr_param_resp_cb(), avoid the double add.
-
Robert Schmidt authored
The same function is called in nr_start_resp_cb(), why there and not here? At reception of nr_param_response, we receive the remote PNF information on PNF/VNF. We have to store it. In nr_start_response, it might not be correct and/or can be taken out. The next commit will remove it.
-
- 22 Jan, 2025 7 commits
-
-
Robert Schmidt authored
maybe take this out
-
Robert Schmidt authored
Maybe cosmetic
-
Robert Schmidt authored
harmonize with monolithic
-
Rúben Soares Silva authored
Now uses RC.nb_nr_L1_inst instead of RC.nb_nr_inst in order to configure the L1, since in PNF RC.nb_nr_inst is always 0, and so, it wouldn't configure the L1
-
Rúben Soares Silva authored
-
Robert Schmidt authored
Rename configs according to name guidelines. Put into right directory.
-
Robert Schmidt authored
Remove useless message bytes printing Print message if callback missing less newlines in log logs
-
- 16 Jan, 2025 1 commit
-
-
Robert Schmidt authored
Integration: `2025.w03` See merge request oai/openairinterface5g!3206 * !3167 remove calls to clear SIMD registers, that was a historical issue * !3179 UE statistics improvements * !3193 Remove spinlock from threadpool task return * !3195 UE MAC: in phy-test/do-ra, fill TB randomly * !3201 T tracer: minor fixes for compilation * !3204 CI: Increase number of test trials for timing tests * !3034 Delay compensation for PUCCH2 * !3205 Fix calculation of RSSI in pucch_rx.c
-
- 15 Jan, 2025 12 commits
-
-
Robert Schmidt authored
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))
-
Robert Schmidt authored
CI: Increase number of test trials for timing tests - Increasing a number of test trials aims to reduce variations and improve reliability of the nr_ulsim and nr_dlsim test results. - Disable CPU sleep states on the machine when running physims. - Minor adjustment of timing threshold in 60 MHz phytest.
-
Robert Schmidt authored
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
-
Robert Schmidt authored
T tracer: minor fixes for compilation only fixing some hacks tools, no functional change in main programs, no need to test anything.
-
Robert Schmidt authored
UE MAC: in phy-test/do-ra, fill TB randomly See commit description for more details.
-
Robert Schmidt authored
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.
-
Robert Schmidt authored
UE statistics improvements
-
Robert Schmidt authored
remove calls to clear SIMD registers, that was a historical issue This works because gcc/clang replaces the MMX calls by SSE2 automatically. There are some mm_empty() calls in bad places (places where we don't use _m64) and it is lacking in places where we still use _m64. Given that MMX calls are converted to SSE2, there is no problem, and we will remove remaining _m64 variables.
-
Jaroslava Fiedlerova authored
CI test sometimes fails because measured value is lower than allowed threshold.
-
Jaroslava Fiedlerova authored
Enable sleep states once the test is done.
-
Jaroslava Fiedlerova authored
Increasing a number of test trials aims to reduce variations and improve reliability of the nr_ulsim and nr_dlsim test results.
-
Bartosz Podrygajlo authored
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))
-
- 14 Jan, 2025 9 commits
-
-
Bartosz Podrygajlo authored
The idea to use atomic aligned to cache line for counting finished jobs is reused, but instead of polling a semaphore was added
-
Cedric Roux authored
-
Laurent THOMAS authored
-
rmagueta authored
-
Laurent THOMAS authored
-
rmagueta authored
-
rmagueta authored
-
Laurent THOMAS authored
-
Laurent THOMAS authored
-