- 15 Jan, 2026 3 commits
-
-
Robert Schmidt authored
Integration: `2026.w03` * !3818 Update threadCreate * !3845 Update physim timing thresholds in gNB-N300-Timing-Phytest-LDPC * !3849 Make gpd config utility global * !3812 Fix reestablishment after handover * !3826 Define speed of light * !3799 Fix for threadpool abort function * !3791 fix array lenght errors, k variable wrapping threshold. Make the code smaller and more efficient * !3718 Introduce SRS physical simulator and improvements * !3857 Fix bug "no AMF for UE" * !3858 remove function decode_cellGroupConfig * !3668 Support beam index for LiteON FR2 RU that needs per symbol section in CP packets * !3844 CI: Remove testcase ids from XML files * !3620 update multi-RU 7.2 documentation for DAS scenario * !3788 Fix handover documentation and configuration files for event configuration See merge request oai/openairinterface5g!3854
-
Robert Schmidt authored
Fix handover documentation and configuration files for event configuration
-
Robert Schmidt authored
update multi-RU 7.2 documentation for DAS scenario
-
- 14 Jan, 2026 13 commits
-
-
Jaroslava Fiedlerova authored
CI: Remove testcase ids from XML files Automatically enumerate testcases given in XML files
-
Jaroslava Fiedlerova authored
Replace xml.etree.ElementTree with lxml.etree for to enable line tracking. Update ShowTestID to include the source file and line number for each test.
-
Jaroslava Fiedlerova authored
Remove unused testCase_id definitions and replace all occurrences of test_id with test_idx across the ci-scripts folder.
-
Jaroslava Fiedlerova authored
Requested and exclusion test lists are no longer present in the XML files, so related parsing, format checks, and filtering logic have been removed.
-
Jaroslava Fiedlerova authored
Update all XML files in ci-scripts folder, using Python script attached in MR !3844. https://gitlab.eurecom.fr/oai/openairinterface5g/-/merge_requests/3844#note_198132
-
Robert Schmidt authored
Support beam index for LiteON FR2 RU that needs per symbol section in CP packets This branch supports beam index for LiteOn FR2 RU and others. It adds the support of beam index for LiteOn RU that uses per-symbol CP packet and is a sequel of MR !3605 (merged) that supports beam index for RU that uses per-slot CP packets. A. To support LiteOn FR2 RU, the following are needed. a. Per symbol beamforming. Need separate section for each symbol on CP packet. b. Handle these two bugs: - section ID on UP packet is set wrongly to 13 for all sections - prach eAxC offset starts from 0 instead of from last antenna port number used by other channels. B. Implementation a. set fh_config->RunSlotPrbMapBySymbolEnable based on the setting in the configuration file - if disable, the existing per-slot scheme is run on xran. - if enable, RunSlotPrbMapBySymbolEnable mode is on in xran so that xran will generate PrbElm per symbol (aka total of 14)and perform per-symbol processing on the corresponding PrbElm. b. set fh_config->LiteOnIgnoreUPSectionIdEnable based on the setting in the configuration file if enable, handle 2 "features" of Liteon: - To handle the section_id = 13 issue on Liteon where section ID is set wrongly to 13 for all sections - To handle the prach eAxC offset issue on Liteon where it starts from 0 instead of from the end of last antenna port number c. if fh_config->RunSlotPrbMapBySymbolEnable, OAI FHI - invoke xran_fh_rx_read_slot_BySymbol() instead of xran_fh_rx_read_slot() - invoke xran_fh_tx_send_slot_BySymbol() instead of xran_fh_tx_send_slot() C. Testing a. Command to test benetel RU sudo LD_LIBRARY_PATH=.:$DPDK_INST/lib/x86_64-linux-gnu/ ./nr-softmodem -O /etc/ran_development/CONFs/gnb.sa.band77.273prb.fhi72.4x4-benetel550_c0.conf --thread-pool 21,22,23,24,25,26,27,28 Results: iperf UDP uplink [ 5] 0.00-10.22 sec 87.3 MBytes 71.6 Mbits/sec 0.100 ms 370/63081 (0.59%) receiver iperf UDP downlink [ 5] 0.00-10.00 sec 796 MBytes 668 Mbits/sec 0.017 ms 1824/586404 (0.31%) receiver b. Command to test LiteOn FR2 RU sudo LD_LIBRARY_PATH=.:$DPDK_INST/lib/x86_64-linux-gnu/ ./nr-softmodem -O /etc/ran_development/CONFs/gnb.sa.band78.66prb.fhi72.2x2-liteon-F-Release.conf--thread-pool 21,22,23,24,25,26,27,28 Result: iperf UDP uplink [ 5] 0.00-10.20 sec 89.9 MBytes 73.9 Mbits/sec 0.156 ms 212/64848 (0.33%) receiver iperf UDP downlink [ 5] 0.00-10.00 sec 361 MBytes 303 Mbits/sec 0.077 ms 277662/542891 (51%) receiver D. Difference between LiteOn FR2 E release configuration file and that for F release is diff gnb.sa.band78.66prb.fhi72.2x2-liteon-KB.conf gnb.sa.band78.66prb.fhi72.2x2-liteon-F-Release.conf 39d38 < beam_weights = [1, 1]; 225a225 > beam_weights = [1]; 312c312,313 < mtu = 1500; # check if xran uses this properly --- > #mtu = 1500; # check if xran uses this properly > mtu = 9000; # check if xran uses this properly 313a315,316 > RunSlotPrbMapBySymbol = 1; > LiteOnIgnoreUPSectionId = 1; -
Mario Joa-Ng authored
use a single OAI FHI to handle both liteon and others. liteon uses xran_fh_tx_send_slot_BySymbol() and xran_fh_rx_read_slot_BySymbol() to send CP one section per sysmbol
-
Mario Joa-Ng authored
Add the F patch that work on both Benetel and LiteOn RU. support fh_config parameters RunSlotPrbMapBySymbol and LiteOnIgnoreUPSectionId. Change version number.
-
francescomani authored
Co-authored-by:Teodora Vladić <teodora.vladic@openairinterface.org>
-
Reem Bahsoun authored
-
Robert Schmidt authored
Merge remote-tracking branch 'origin/remove_decode_cellGroupConfig' into integration_2026_w03 (!3858) remove function decode_cellGroupConfig it's never used
-
Robert Schmidt authored
Fix bug "no AMF for UE" It might happen that the RRC does not know the AMF UE NGAP ID, yet. Even in that case, we should forward the release request to the NGAP module, which can either forward a message to the AMF, or reply back to release the UE. This avoids an error where the CU claims there was no AMF, when there actually is. One possible problematic behavior is if a UE disconnects before the gNB receives an NGAP Initial Context Setup. In this case, the AMF UE NGAP ID was not forwarded to the RRC (although it was known at NGAP), thus blocking the release of the UE. This is the main fix, the rest are minor fixes: - store AMF UE NGAP ID as early as possible - warn in MAC if UE unknown for UE context release command - show TEIDs with correct endianness in GTP - avoid NG Setup Failure+Setup log.
-
francescomani authored
-
- 13 Jan, 2026 13 commits
-
-
Robert Schmidt authored
Introduce SRS physical simulator and improvements This MR consists of two parts: - Introduces SRS physical simulator to test different configurations of SRS - Improvements in the SRS channel estimation (Addressing the comments from old, unfinished MR !2875) - rewrite nr_srs_channel_estimation() to loop over rx antennas and antenna ports to be able to parallelize - Improvements in timing_advance_offset and timing_advance_offset_nsec computation - Introduce SRS multi-symbol channel estimation - The channel impulse response is estimated from the averaged channel frequency response over multiple symbols - The channel frequency estimates are left as they are to be able to estimate doppler in the future - Simplify SRS channel estimation to handle memory alignment in the case of different SRS configurations (eg: comboffset) To use multiple symbols when running gNB, the following parameters needs to be edited in the function get_srs_resource() - srs_res->resourceMapping.startPosition with a range from {0,1,..,5} corresponds to the start symbol {13, 12, .. 8} with in a slot - srs_res->resourceMapping.nrofSymbols indicates the number of symbols {n1, n2, and n4} Make sure the that start symbol + number of symbols is < 14 The timing results for SRS in develop and srs_phy_simulator are as follows: Command used: sudo ./nr_ulsim -n1000 -s50 -S50 -R273 -W2 -y2 -z2 -E 1 -P develop |__ RX SRS time 124.94 us (1000 trials) (124.94 total [ms]) |__ Generate SRS sequence time 0.05 us (1000 trials) ( 0.05 total [ms]) |__ Get SRS signal time 19.41 us (1000 trials) ( 19.41 total [ms]) |__ SRS channel estimation time 89.11 us (1000 trials) ( 89.11 total [ms]) |__ SRS timing advance estimation time 13.10 us (1000 trials) ( 13.10 total [ms]) |__ SRS report TLV build time 2.80 us (1000 trials) ( 2.80 total [ms]) |__ SRS beam report build time 0.00 us ( 0 trials) |__ SRS IQ matrix build time 2.73 us (1000 trials) srs_phy_simulator |__ RX SRS time 211.93 us (1000 trials) (211.93 total [ms]) |__ Generate SRS sequence time 0.04 us (1000 trials) ( 0.04 total [ms]) |__ Get SRS signal time 19.55 us (1000 trials) ( 19.55 total [ms]) |__ SRS channel estimation time 152.05 us (1000 trials) (152.05 total [ms]) |__ SRS timing advance estimation time 36.67 us (1000 trials) ( 36.67 total [ms]) |__ SRS report TLV build time 2.96 us (1000 trials) ( 2.96 total [ms]) |__ SRS beam report build time 0.00 us ( 0 trials) |__ SRS IQ matrix build time 2.88 us (1000 trials) Note that in srs_phy_simulator, to compute timing offset ns, an oversampling factor of 2 is performed. Also, for peak detection, we average the channel estimates for every port. -
Robert Schmidt authored
fix array lenght errors, k variable wrapping threshold. Make the code smaller and more efficient generate_nr_prach() has several errors coming from replace int16_t by c16_t, and also older error in k wrapping at the end of the symbol the code is also ridiculously complex, wasting memory and cpu time in intermediate useless buffers and headache usage of memmove()
-
Robert Schmidt authored
On NGSetupFailure, before moving, we might have [NGAP] Received NG setup failure for AMF... please check your parameters [NGAP] Received NGSetupResponse from AMF -
Robert Schmidt authored
All over the GTP module, we use ntohl()/htonl() to convert between local and network order. It seems to have been forgotten here.
-
Robert Schmidt authored
For debugging, it might notably be useful to see the AMF UE NGAP ID. Log it in the single Initial Context Setup message.
-
Robert Schmidt authored
-
Robert Schmidt authored
In the Initial Context Setup message, the NGAP forwards the AMF UE ID, but not in the DL NAS Message, although 38.413 says, in $8.3.1.2 either > The NG-RAN node shall use the AMF UE NGAP ID IE and RAN UE NGAP ID IE > received in the INITIAL CONTEXT SETUP REQUEST message as identification > of the logical connection or in $8.6.2.2 > The NG-RAN node shall use the AMF UE NGAP ID IE and RAN UE NGAP ID IE > received in the DOWNLINK NAS TRANSPORT message as identification of the > logical connection So forward in both cases for harmonization.
-
Robert Schmidt authored
It might happen that the RRC does not know the AMF UE NGAP ID, yet. Even in that case, we should forward the release request to the NGAP module, which can either forward a message to the AMF, or reply back to release the UE. Reported-By:Jegor Zelenjak <jzelenjak@proton.me>
-
Robert Schmidt authored
Define speed of light Common definition for speed of light constant, instead of multiple local definitions
-
Robert Schmidt authored
Fix for threadpool abort function
-
Sakthivel Velumani authored
-
Laurent THOMAS authored
-
Robert Schmidt authored
Merge remote-tracking branch 'origin/fix_reestablishment_after_handover' into integration_2026_w03 (!3812) Fix reestablishment after handover
-
- 12 Jan, 2026 4 commits
-
-
Robert Schmidt authored
Make gpd config utility global Make gpd a global utility macro for reading config/command line parameters. Add a corresponding function with full name for clarity, keep the short name for the macro for backward compatibility and ease of use. The main benefit of gpd/config_get_paramdef_from_name macro/function is that it does not require maintaining a separate parameter index list.
-
Robert Schmidt authored
Merge remote-tracking branch 'origin/ulsch_timing_test_threshold_update' into integration_2026_w03 (!3845) Update physim timing thresholds in gNB-N300-Timing-Phytest-LDPC The lower bound for the tests are too tight and any slight improvement in the timing can result in a test failure. For example, these tests were failing due to the improvements from the MR !3718
-
Robert Schmidt authored
Update threadCreate if the name is too long, the thread name is shortened to the maximum pthread name (16 characters).
-
Rakesh Mundlamuri authored
The lower bound for the tests are too tight and any slight improvement in the timing can result in a test failure. For example, these tests were failing due to the improvements from the MR 3718
-
- 09 Jan, 2026 7 commits
-
-
Rakesh Mundlamuri authored
-
Rakesh Mundlamuri authored
-
Rakesh Mundlamuri authored
- We use the same function at gNB and UE. - We always use nb_antennas_tx to check the max possible number of ports (which is wrong). - At gNB, we should use nb_antennas_rx and at the UE, we should use nb_antennas_tx.
-
Rakesh Mundlamuri authored
-
Rakesh Mundlamuri authored
The memory alignment is required to use c16multaddVectRealComplex in SRS channel interpolation. With a change in SRS comb_offset, the existing algorithm was giving segmentation fault. The existing srs channel estimation required memory alignment at two stages. 1. When k = 0 (the first srs subcarrier), 2. When subcarrier < K_TC (wrapped around after ofdm_symbol_size). Thus two memory alignments are required leading to complications. The srs channel estimation is now simplified to do it linearly instead of wrapping around. This simplified the memory alignment required only when k = 0.
-
Rakesh Mundlamuri authored
-
Rakesh Mundlamuri authored
-