- 14 Nov, 2025 16 commits
-
-
Robert Schmidt authored
-
Robert Schmidt authored
-
Robert Schmidt authored
-
Robert Schmidt authored
-
Robert Schmidt authored
Reimplement nFAPI message exchange between L1 and L2 following the changes in parent commit removing msgDataTx. Avoid direct calls and use NR_IF_module fptrs to avoid linking problems. allowing to remove some function definitions that are not needed.
-
Robert Schmidt authored
Note: after this commit, monolithic works but nFAPI operation is broken and fixed in the next commit, to keep the changes small(er). All simulators work. This commit removes the use of msgDataTx's intermediate buffers for FAPI messages and the call of the "Schedule response". The latter incurs an additional copy of FAPI messages for the TX chain (for the RX chain, it is and will remain there) which we can avoid. Instead, it uses an NR_Sched_Rsp_t-typed variable sched_response to store the results of the scheduler when called from tx_func(). Thus, the scheduler remains unchanged (it gets a pointer to where to put FAPI messages), but we don't call nr_schedule_response() to then copy FAPI messages into the L1, but have them in a local variable sched_response. sched_response on on the data segment, as it is big and would overflow the stack; at the same time, this is ok because only one tx_func() runs at a time. Since we don't use allocate_sched_response() anymore, we don't need deref_sched_response(). clear_slot_beamid() is moved to tx_func(), as it was called in nr_schedule_response(). Since the "intermediate" NR_gNB_DLSCH_t structure groups both the DL_tti_pdsch and TX_data.req structures, a pointer has been created to point to pdsch_pdu. This affects a number of simulators, as they have to put some messages on the stack: - nr_dlschsim: put the corresponding variable on the stack - nr_pbchsim: a new array for the SSB PDUs has been introduced Further, these changes are now necessary: - nr_dlsim: there were variables "rel15" and "pdsch_pdu_rel15" that point to the same PDSCH PDU. At least "rel15" would not exist, as the corresponding pointer is now populated in phy_procedures_gNB_TX(), and we therefore refer to the single PDSCH PDU variable with "pdsch_pdu_rel15", but at the place where "rel15" used to be initialized. - nr_ulsim: use nr_save_ul_tti_req() to load PDUs into the RX chain instead of nr_schedule_response(), which does not exist anymore.
-
Robert Schmidt authored
The next commit will remove msgDataTx. We can therefore not use msgDataTx to retain the PDSCH/DLSCH variables, and move them to the gNB. Note that the only reason for NR_gNB_DLSCH_t after this commit is to hold various large buffers (c, b, f). Future work could be done to remove this, in which case the array inside PHY_VARS_gNB could be deleted. On this occasion, clean up the use of init_DLSCH_struct() and reset_DLSCH_struct() (renamed destroy_DLSCH_struct()) and centralize their call in phy_init_nr_gNB()/phy_free_nr_gNB(), and correct simulators accordingly.
-
Robert Schmidt authored
-
Robert Schmidt authored
A later commit will remove "msgTx" altogether. Push it out from L1 functions.
-
Robert Schmidt authored
-
Robert Schmidt authored
DLSCH encoding is not concerned with HARQ processes directly. Instead, it gets the redundancy version and encodes a specific redundancy version for a given TB. The rest is up to the MAC, the L1 is stateless in that regard. Hence, remove the HARQ type and put it into DLSCH, which also simplifies the code elsewhere.
-
Robert Schmidt authored
unav_res is already computed in nr_generate_pdsch(), and then used inside of nr_dlsch_encoding() right after.
-
Robert Schmidt authored
-
Robert Schmidt authored
Similarly to the parent commit, simplify the array type to the FAPI PDU towards further refactoring, and encapsulate the code in a function for easier reuse in a later refactoring step. Note on ZP-CSI: after this commit, we continue treating CSI PDUs. The prior code was returning, which I think is wrong (as this information is only for the currently treated CSI-RS PDU).
-
Robert Schmidt authored
There is no point in tracking the "active" state: the SSB PDU will be sent from MAC to L1, encoded, and then "discarded" (by marking the number of SSB PDUs as 0). Hence, remove this intermediate type.
-
Robert Schmidt authored
-
- 13 Nov, 2025 2 commits
-
-
Robert Schmidt authored
Both (DL) PDCCH and UL PDCCH PDU types are fundamentally of the same type, so correct the array's type to facilitate refactoring later (a later commit will reuse a single "generate DCI" function for both cases).
-
Robert Schmidt authored
-
- 12 Nov, 2025 3 commits
-
-
Robert Schmidt authored
-
Robert Schmidt authored
Unused code
-
Robert Schmidt authored
Using nFAPI introduces additional delays. At the same time, RFsim does not run in real-time, and we can allow a low sl_ahead, as RFsim will "wait" for the gNB. Therefore, reduce sl_ahead to ensure that the response window does not run out during handling of RA in nFAPI.
-
- 06 Nov, 2025 8 commits
-
-
Jaroslava Fiedlerova authored
Integration `2025.w45` * !3736 fix bugs in scope for pdcch, and optimize cpu cost of pdcch decoding * !3743 NR UE: fix PDCCH LLR indexing for different search space RB sizes * !3739 Bugfix: save old tunnel info to remain the user plane connection while rolling back to source DU due to handover failure * !3742 Simplify node management in CI, handle SIGINT * !3670 PRS bug fix and CI Integration * !3746 Fix unsigned to signed decoding parameters to allow for 'no affinity'/'no pin' threads to CPUs * !3738 CI: Add new Jenkinsfiles Closes #984 and #1021 See merge request oai/openairinterface5g!3744
-
Jaroslava Fiedlerova authored
CI: Add unified Jenkinsfile for all test pipelines This MR introduces a single Jenkinsfile to cover all current CI test pipelines Improvements: - correct reporting of the start timestamp in the HTML report - harmonize log collection - always collect as test_logs_${env.BUILD_ID}.zip -
Jaroslava Fiedlerova authored
Combine Jenkinsfile and Jenkinsfile-oc from parrent commit into a single file.
-
Jaroslava Fiedlerova authored
Fix unsigned to signed decoding parameters to allow for 'no affinity'/'no pin' threads to CPUs By default, 'L1_rx_thread_core', 'L1_tx_thread_core', 'ru_thread_core' are set to '-1' but the values were decoded from config file as unsigned instead of signed types, thus, it was not allowing to set them with '-1' from config file.
-
Jaroslava Fiedlerova authored
Merge remote-tracking branch 'origin/prs_bug_fix_and_integrate_to_ci' into integration_2025_w45 (!3670) PRS bug fix and CI Integration - Fix the bug in PRS channel estimation while copying memory to compute the impulse response - Integrate PRS testing to CI
-
Jaroslava Fiedlerova authored
Simplify node management in CI, handle SIGINT - Make a single <node> XML step entry common to all XML steps to harmonize code - Handle SIGINT to make it possible to more easily stop the CI script.
-
Jaroslava Fiedlerova authored
Bugfix: save old tunnel info to remain the user plane connection while rolling back to source DU due to handover failure This MR closes issue #984 that UE lost the data plane connection while rolling back to the source DU due to handover failure.
-
Jaroslava Fiedlerova authored
NR UE: fix PDCCH LLR indexing for different search space RB sizes After !3603 (merged), when multiple search spaces have different CORESET configurations (different number of RBs), the LLR buffer stride must be calculated based on the maximum RB size across all search spaces, not the current search space's RB size. The LLR buffer is allocated with size based on get_pdcch_max_rbs(), but the demapping function was using coreset_nbr_rb (current search space) for symbol stride calculation, causing incorrect LLR extraction when search spaces have different RB configurations. This MR tries to fix it. Closes #1021
-
- 05 Nov, 2025 10 commits
-
-
luis_pereira87 authored
By default, 'L1_rx_thread_core', 'L1_tx_thread_core', 'ru_thread_core' are set to '-1' but the values were decoded from config file as unsigned instead of signed types, thus, it was not allowing to set them with '-1' from config file
-
Robert Schmidt authored
-
Jaroslava Fiedlerova authored
Use the bash script from a parent commit to verify PRS functionality.
-
Rakesh Mundlamuri authored
This commit inputs several distances at once and obtain the summary of successful and failed tests. We look for the number of successful tests that are geater than 0. We do that here since we sometimes dont receive a response for a telnet command from the rfsim although the command is applied. This is related to the queing telnet commands in the rfsim. The script for the distances 50, 100 and 150 are called as follows, ./set-and-verify-distance-prs.sh 50 100 150 The summary can be viewed as follows, ==================== SUMMARY ==================== Total tests run : 3 Successful tests: 3 Failed tests : 0 =================================================
-
Jaroslava Fiedlerova authored
-
rakesh mundlamuri authored
Set RFsim (DL) distance and use PRS to estimate the new distance. This is verified by comparing the distance set in RFsim with the distance reported through ToA estimation at the UE. Note that since RFsim telnet output is asynchronous (it uses a queue internally), we use grep --max-count 1 to wait for the matching line, together with ncat --idle 0.3 to keep ncat open for some time. The --max-count option will terminate grep after the first occurrence. For this to work reliably, we need to use grep <(echo | ncat) as opposod to simply echo | ncat | grep, as the latter does not seem to reliably make grep exit after the occurrence. Co-authored-by:Robert Schmidt <robert.schmidt@openairinterface.org>
-
Robert Schmidt authored
-
Robert Schmidt authored
Protect with mutex to allow reading from another thread.
-
Robert Schmidt authored
In a future commit, we will look up the maximum ToA over the last transmissions. Introduce a buffer in which we write the last 16 measurements.
-
Jaroslava Fiedlerova authored
fix bugs in scope for pdcch, and optimize cpu cost of pdcch decoding fix bugs in scope for pdcch, and optimize cpu cost of pdcch decoding by not processing useless samples in one symbol
-
- 04 Nov, 2025 1 commit
-
-
alexjiao authored
When multiple search spaces have different CORESET configurations (different number of RBs), the LLR buffer stride must be calculated based on the maximum RB size across all search spaces, not the current search space's RB size. The LLR buffer is allocated with size based on get_pdcch_max_rbs(), but the demapping function was using coreset_nbr_rb (current search space) for symbol stride calculation, causing incorrect LLR extraction when search spaces have different RB configurations.
-