- 19 Feb, 2025 1 commit
-
-
francescomani authored
-
- 18 Feb, 2025 2 commits
-
-
Robert Schmidt authored
Integration: `2025.w07` Closes #812, #901, #904, #881, and #819 See merge request oai/openairinterface5g!3258 * !3055 Dynamic PDCCH aggregation level * !3176 Refactor and extend NAS Registration Request * !3256 Add check on force_local in custom_command CI handling * !3257 Bugfix in gNB modulated DCI buffer size * !3249 Improvements in TDD configuration * !3194 fix NTN LEO scenarios * !3200 FHI72: remove polling, fix memory leak * !3127 Optimizations of PDSCH Resource Mapping in nr_dlsch.c/nr_modulation.c * !3252 \[E2 agent\] Multi RC REPORT service styles support
-
Francesco Mani authored
During re-establishment we still have a valid SIB1 so we don't decode it again. Then the UE never moves out of UE_RECEIVING_SIB, making re-establishment impossible. This fixes addresses this. Fixes: 11b87d87 ("NR UE: RRC layer now explicitly tells MAC layer when the RA procedure can be started)"
-
- 17 Feb, 2025 8 commits
-
-
Robert Schmidt authored
[E2 agent] Multi RC REPORT service styles support Issue: unforeseen capability of having the same RAN Parameter ID across different REPORT service styles. Solution: keep only RAN Parameter IDs from REPORT styles that are supported by OAI. Implement sequence array where each element is combination of RIC request ID (unique per RIC SUBSCRIPTION) and Event Trigger Definition. This way we can properly check further conditions for a certain RAN Parameter ID. (e.g. if xApp is subscribed to RRC Connected and/or other modes, for "RRC State Changed To" RAN Parameter ID) Next steps: for new RAN Parameter ID, add new sequence array.
-
Robert Schmidt authored
Optimizations of PDSCH Resource Mapping in nr_dlsch.c/nr_modulation.c These changes add SIMD optimizations for Neon/AVX2/AVX512 in the PDSCH transmit path. The timing improvements are listed here based on the nr_dlsim -e25 -R273 -b273 -s30 -x "layers" -y 4 -z 4 -P benchmark with "layers" 2,3,4 and comparing "PHY proc tx": 273 PRBS, mcs25, 64QAM peafowl (gcc11,AMD EPYC 9374F) 2-layer, 4 TX : 431 us (develop 565 us) 3-layer, 4 TX : 692 us (develop 849 us) 4-layer, 4 TX : 963 us (develop 1172 us) stupix (gcc10, Xeon Gold 6354) 2-layer, 4 TX : 568 us (develop 652 us) 3-layer, 4 TX : 901 us (develop 1030 us) 4-layer, 4 TX : 1250 us (develop 1396 us) matix (gcc14, Ryzen 9 PRO 7945) 2-layer, 4 TX : 317 us (develop 505 us) 3-layer, 4 TX : 538 us (develop 779 us) 4-layer, 4 TX : 767 us (develop 1233 us)
-
Laurent THOMAS authored
-
Teodora authored
Issue: unforeseen capability of having the same RAN Parameter ID across different REPORT service styles. Solution: keep only RAN Parameter IDs from REPORT styles that are supported by OAI. Implement sequence array where each element is combination of RIC request ID (unique per RIC SUBSCRIPTION) and Event Trigger Definition. This way we can properly check further conditions for a certain RAN Parameter ID. (e.g. if xApp is subscribed to RRC Connected and/or other modes, for "RRC State Changed To" RAN Parameter ID) Next steps: for new RAN Parameter ID, add new sequence array. Co-authored-by:
Bischoff <tano.bischoff@hhi.fraunhofer.de> Co-authored-by:
Shrinish Donde <shrinish.donde@hhi.fraunhofer.de> Co-authored-by:
Khanh Toan Pham <khanh.toan.pham@hhi.fraunhofer.de>
-
Robert Schmidt authored
FHI72: remove polling, fix memory leak - FHI72 used polling to track the next slot. This is not necessary, a simple queue does the job and allows to save one core that was previously at 100% - Remove a workaround to avoid a memory leak (fixes #812); allows to also run RFsim/USRP/otehr radios when compiling for FHI72
-
Robert Schmidt authored
fix NTN LEO scenarios - gNB: add support for NTN parameter ta-CommonDrift-r17 - NR UE: fix application of NTN TA information - NR UE: add command line parameter ntn-initial-time-drift to compensate time drift during initial sync - NR UE: fix writeTimestamp inconsistencies - NR UE: add MAC state UE_RECEIVING_SIB ensuring to start RA only after successfully receiving SIBs - rfsimulator: update earth radius for LEO simulation to match UE position in ue.conf file - update conf files for NTN LEO scenario - update description how to run NTN scenarios in RUNMODEM.md - fix: ta-Common is a round-trip-time, not a one-way delay - NR UE: simplify calculation of next_tx_slot_and_frame by moving up assignment of duration_rx_to_tx - cellbarredNTN indicates notbarred in SIB1 if NTN access is available - Removed b66 NTN and enabled B254 NTN conf file in CI - NR UE: RRC layer now explicitly tells MAC layer when the RA procedure can be started - move NTN LEO config to band 254 and update doc/RUNMODEM.md Closes #901
-
Laurent THOMAS authored
-
Jaroslava Fiedlerova authored
-
- 16 Feb, 2025 1 commit
-
-
Raymond Knopp authored
-
- 14 Feb, 2025 18 commits
-
-
Thomas Schlichter authored
-
Thomas Schlichter authored
-
Raghavendra Dinavahi authored
-
Raghavendra Dinavahi authored
38.331 release 18 section 5.2.2.4.2 indicates that to access NTN, cellbarredNTN in SIB1 should be set to notbarred.
-
Thomas Schlichter authored
-
Thomas Schlichter authored
-
Thomas Schlichter authored
-
Thomas Schlichter authored
Also added a dedicated conf file for NTN LEO, that can be used for CI.
-
Thomas Schlichter authored
-
Thomas Schlichter authored
-
Thomas Schlichter authored
The "writeTimestamp inconsistencies" are coming from the fact that during the actual processing we write `N_TA_offset` samples _and_ `NR_UE_CAPABILITY_SLOT_RX_TO_TX` slots ahead, but both was not corrently considered in readFrame() and syncInFrame(). Therefore, there was always a warning about a gap in write timestamps as soon the actual processing starts.
-
Thomas Schlichter authored
NR UE: add command line parameter ntn-initial-time-drift to compensate time drift during initial sync The value of ntn_init_time_drift is used at initial sync to compensate for the time drift during initial sync detection. To perform the initial time and frequency sync, the OAI UE currently takes a snapshot of two frames and then performes PSS correlation, SSS detection and MIB decoding. Doing this takes much time, several tens of ms. During that time, the DL timing drifts so much, that we immediatedly lose sync again. Therefore the current OAI UE implementation needs to know the drift rate to compensate for this drift, as we are "blind" while performing the initial sync. To my undestanding, commercial UEs simply have a faster initial sync, so the DL timing will not drift away too much while performing that initial sync.
-
Thomas Schlichter authored
-
Robert Schmidt authored
Bugfix in gNB modulated DCI buffer size Closes #904
-
Robert Schmidt authored
Add check on force_local in custom_command CI handling The force_local flag was introduced earlier in the main CI script in order to run a CI test locally. The flag was still missing in the Custom_Command handling, which was still targeting the node specified in the test configuration file. This was causing a failure in the tests with custom commands and therefore limiting the scenarios that could be run locally. With this commit, if force_local is enabled the node for the Custom_Command is set to localhost.
-
Robert Schmidt authored
Improvements in TDD configuration Including using the frame structure introduced in !2799 also at the UE
-
Robert Schmidt authored
Refactor and extend NAS Registration Request Extended NAS Registration Request generation and encoding according to 8.2.6 of 3GPP TS 24.501. Main topics: - NAS Registration Type - NAS KSI - integrity protection - NAS container encoding Improvements: - Add 5GMM Modes in NAS - Introduced 5GMM state machine Fixes: - add 5GMM Capability IE to Registration Request - closes #881, #819
-
Robert Schmidt authored
Dynamic PDCCH aggregation level The aggregation level search order for PDCCH candidates is modified: - the search starts from desired_agg_level_index, which is a value from 0 to 4 proportial to pdcch_cl_adjust. - pdcch_cl_adjust is a value between 0 and 1 that indicates PDCCH channel quality by averaging HARQ DTX rate. A value of 0 means perfect channel, a value o 1 means impaired channel. Also added configuration option for number of PDCCH candidates per aggregation level.
-
- 13 Feb, 2025 10 commits
-
-
Bartosz Podrygajlo authored
Added uess_agg_levels configuration option which changes the number of PDCCH candidates per aggregation level.
-
Bartosz Podrygajlo authored
The aggregation level search order for PDCCH candidates is modified: - the search starts from desired_agg_level_index, which is a value from 0 to 4 proportial to pdcch_cl_adjust. - pdcch_cl_adjust is a value between 0 and 1 that indicates PDCCH channel quality by averaging HARQ DTX rate. A value of 0 means perfect channel, a value o 1 means impaired channel.
-
francescomani authored
-
Robert Schmidt authored
Reduce one level of indentation, and explain why we wait for physide_dl_tti callback.
-
Robert Schmidt authored
first_rx_set is polling-specific: it makes the polling loop wait to only check the frame/slot counter once we set it for the first time. However, that is equivalent to checking the frame/slot directly, which will also be 0 in the beginning.
-
Robert Schmidt authored
first_read_set seems to have the function of making frame/slot time advance only if we started to read the samples in xran_fh_rx_read_slot(). I interpret that as "only advance the time if the gNB is reading from xran", which does not make sense to me, because xran advances the time anyway. Also, polling would not notice, and no-polling would simply warn about double messages. So the outcome is likely the same, whether first_read_set is set or not. I checked in multiple CI runs; it happens that first_read_set is always set already when oai_xran_fh_rx_callback() is called anyway.
-
Robert Schmidt authored
xran_fh_rx_read_slot() uses polling (a loop over cnt++) to wait for the next frame/slot. The reasons I have been told is "it does not work differently", or "there are real-time problems". None of those seem to be true; by default disable polling, and use the queue instead. It is possible to enable polling with the cmake option OAI_FHI72_USE_POLLING=ON. Documentation has been updated to inform about this change.
-
Robert Schmidt authored
The queue L1_rx_out was in place to keep RX/TX processing relatively "close" to each other (in terms of time, since in RFsim, they might advance faster than realtime; see also parent commit). This lead to a memory leak in radios that do not use ru->feprx (no front-end processing for RX, e.g., PRACH), as the code to read the L1_rx_out messages was inside a block of if (ru->feprx). Move it out so that the queue is always read and messages are freed to eliminate the memory leak, and remove the workaround for FHI72 to avoid this memory leak. This also allows to run RFsim when compiling FHI72, which was not possible before this commit. Closes: #812
-
Robert Schmidt authored
Some radios (e.g., RFsim) can run faster. A mechanism has been put in place to keep RX/TX frame/slot numbers not too far from each other. Refactor in a separate function with documentation to make this clearer.
-
Robert Schmidt authored
-