- 05 Nov, 2025 1 commit
-
-
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
-
- 31 Oct, 2025 7 commits
-
-
Jaroslava Fiedlerova authored
Integration `2025.w44` * !3721 improvements in formatting and LOGs in DMRS common functions at MAC * !3725 Handle GTP receiver errors, fix memory leaks, add CU-UP test * !3726 fix for CSI payload sizes in PUCCH structure at UE * CI: Adjust attenutation for HO setup * !3728 Fix for scenario with no CSI report configured for CSI-RS * !3731 CI: ensure clean iperf3 server startup * !3592 Refactor PRACH handling at the gNB * !3682 Refactor DLSCH scheduler * !3733 Clarify whitespace * !3706 Change registry name env var content Closes #1015 and #1014 See merge request oai/openairinterface5g!3727
-
Jaroslava Fiedlerova authored
Change registry name env var content Currently setting REGISTRY="" in a .env file results in docker failing to find /image-name:tag. This corrects that, so it looks for local images named image-name:tag.
-
Jaroslava Fiedlerova authored
Following the change to use: image: ${REGISTRY-oaisoftwarealliance/}${GNB_IMG:-oai-gnb}:${TAG:-develop} the REGISTRY variable must now include the trailing slash. -
Nick Hedberg authored
-
Robert Schmidt authored
Clarify whitespace
-
Nick Hedberg authored
-
Nick Hedberg authored
-
- 30 Oct, 2025 32 commits
-
-
Robert Schmidt authored
Refactor DLSCH scheduler Refactor the DLSCH post processor similarly to what has been done in !3521 with the goal of saving an additional iteration through all UEs, hopefully making the DLSCH scheduler faster. It further includes changes to make working with and debugging multi-UE operation easier: - add some measurements in L1 (for total TX/RX time) - a new option MACRLCs.[0].stats_max_ue to limit the number of UEs in the periodic output (default: 8, 0=disable) - avoid stack overflow in the MAC - fix the writing of stats to nrMAC_stats.log and nrL1_stats.log when the written output reduces by truncating the files - avoid to schedule retransmission with 0 RBs.
-
Robert Schmidt authored
-
Robert Schmidt authored
This slightly speeds up the scheduler (it e.g., does not need to check for UEs that have retransmissions), and harmonizes with pf_ul(), which evaluates (UL) BSR at a similar place within the scheduler.
-
Robert Schmidt authored
-
Robert Schmidt authored
Check and return, if necessary, that we have enough resources to make retransmissions. Without, we can asserts in L1, such as Assertion (NPRB>0 && (NPRB + RBstart <= BWPsize)) failed! In PRBalloc_to_locationandbandwidth0() openairinterface5g/common/utils/nr/nr_common.c:506 Illegal NPRB/RBstart Configuration (0,51) for BWPsize 51 which indicates that the scheduler requested a transmission with 0 PRBs, which does not make sense. -
Robert Schmidt authored
Merge remote-tracking branch 'origin/rework-gnb-prach-mem-management' into integration_2025_w44 (!3592) Refactor PRACH handling at the gNB - Remove race conditions by correctly setting mutexes - Fix a bug when having multiple RACH occasions - Reduce memory footprint by removing global memory, which should also fix potential memory data races in FHI 7.2 - Additional fixes, see commit messages
-
Laurent THOMAS authored
-
Laurent THOMAS authored
a bit difficult to understand: sl_ahead=6 => we systematically miss the rach detection in the scheduler because the scheduler runs more than 6 slots ahead the rx slot processing (here > 11 slots because 6 (DL and UL slots) + 4 (RU_RX_SLOT_DEPTH, so UL only)) so, reducing sl_ahead works better than large sl_ahead because the idea behind is: the scheduler of slot+sl_ahead will never create work to do in a UL slot before slot+sl_ahead+X (as minimum k2 is X, in the 24PRB CI test: 6)
-
Laurent THOMAS authored
-
Laurent THOMAS authored
-
Laurent THOMAS authored
saves about 600MB of memory allocation Move the definition of PRACH items and the PRACH list to the defs_nr_commons.h file. Do not re-write the entire structure in nr_schedule_rx_prach(), as it is quite large now.
-
Robert Schmidt authored
-
Robert Schmidt authored
Call the post-processor when the allocation is "fixed" (i.e., nothing changes anymore), instead of having a final loop across all UEs that might potentially be costly. In order to calculate the PF metric, note that the statistics "reset" is moved into pf_dl() instead of the post-processing loop, as it has to be done on each slot. See also: dd980302 ("Refactor to call post-processor in place")
-
Robert Schmidt authored
Similarly to parent commit(s), assign sched_pdsch in a single place instead of relying on sched_ctrl. In a follow-up commit, the post-processor will be called in a single place.
-
Robert Schmidt authored
Similarly to parent commit(s), refactor the use of NR_sched_pdsch. Instead of using nr_mac->sched_ctrlCommon, put the NR_sched_pdsch_t on the stack. This also refactors update_rb_mcs_tbs() to update the existing NR_sched_pdsch instead of updating individual fields. This also reduces the extend to which sched_ctrlCommon is used.
-
Robert Schmidt authored
As in parent commit(s).
-
Robert Schmidt authored
As in parent commit.
-
Robert Schmidt authored
Assign NR_sched_pdsch to sched_ctrl->sched_pdsch in one place, where the post-processing functionality will be called in a follow-up commit. This should result in no functional change.
-
Robert Schmidt authored
It seems to be assumed that curInfo actually has the currently active number of layers/PMI. However, I am not sure this would always be true (e.g., UE might not have been scheduled for some slots, but number of layers decreased as reported by CSI). Instead, recalculate the info from scratch when necessary.
-
Robert Schmidt authored
We don't need NR_sched_pdsch here. Remove the use of it.
-
Robert Schmidt authored
PF uses MCS and average throughput to decide which UE to schedule. Thus, the first loop decides on MCS, whereas the second does the "main UE allocation" after sorting by the PF metric. A follow-up commit will remove sched_pusch from NR_UE_sched_ctrl_t. Thus, we cannot rely on sched_ctrl to store the MCS in the first loop, and look it up from there in the second. Instead, store it as part of the UE iterator data, and take it from there. See also: f3068caa ("Store selected MCS in UE iterator", for UL)
-
Robert Schmidt authored
-
Robert Schmidt authored
Introduce a struct with information on FAPI structures to save resource and data allocation into. It's in nr_mac_gNB.h because the next commits will reuse this for all preprocessors.
-
Robert Schmidt authored
-
Robert Schmidt authored
Especially in pf_dl()/pf_ul(), we use a first loop using UE_iterator(), then iterate over a subset of UEs. It has happened a couple of times that I was using variable "UE" (from the iterator), when it should only be used in the first UE_iterator() loop. Rewrite UE_iterator() to effectively limit the scope of the iterator variables to the body of the UE_iterator. This should also make it possible to reuse multiple UE_iterator()s with the same variables in sequence.
-
Jaroslava Fiedlerova authored
CI: ensure clean iperf3 server startup - Resolves issue with iperf3 test failure in RFSim5G multiue test - Minor fix of iperf3 test descriptions in RFSim5G pipeline
-
Jaroslava Fiedlerova authored
Fix for scenario with no CSI report configured for CSI-RS After changes in !3714 (merged), if we select to measure RSRP on SSB and not CSI-RS (default option) and there is a single antenna port (so no MIMO report either) we won't schedule any CSI-RS measurements for the UE. In that case ideally we shouldn't set do_CSIRS = 1 in configuration file but still the option is possible. So the fix is to not perform any measurements at UE on that CSI-RS but not asserting. Closes #1015
-
Jaroslava Fiedlerova authored
-
Laurent THOMAS authored
-
Laurent THOMAS authored
The function rx_nr_prach become autonomous, it doesn't read anymore global variables So, it can become (later) a threadpool work, that will send a message when it finishes rx_nr_prach_ru() still use some global variables, but it is executed in sequence, inside the ru main loop, that limits the probability of race conditions
-
Laurent THOMAS authored
-
Laurent THOMAS authored
-