Commit Graph
31018 Commits
Author SHA1 Message Date
Robert Schmidt 8d2a5c6fd6 First slot indication makes no sense: tx thread should trigger 2025-11-14 12:25:05 +01:00
Robert Schmidt 2be5ff361f Don't use msgTx inside nr_dlsch_encoding() and nr_generate_pdsch()
A later commit will remove "msgTx" altogether. Push it out from L1
functions.
2025-11-14 12:25:05 +01:00
Robert Schmidt 751cab3d89 Simplify DLSCH: only one codeword supported 2025-11-14 12:25:05 +01:00
Robert Schmidt 2b2b3cd347 Simplify gNB DLSCH type
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.
2025-11-14 12:25:05 +01:00
Robert Schmidt 09e0344b5b Remove unused computation
unav_res is already computed in nr_generate_pdsch(), and then used
inside of nr_dlsch_encoding() right after.
2025-11-14 12:25:05 +01:00
Robert Schmidt c06033697c Remove unused or write-only variables 2025-11-14 12:25:05 +01:00
Robert Schmidt 62333cd3cf Refactor csi-rs handling
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).
2025-11-14 12:25:05 +01:00
Robert Schmidt d0f4997aa0 Remove msgTx->ssb and replace with normal array
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.
2025-11-14 12:25:05 +01:00
Robert Schmidt bae9e0f1e8 Rewrite nr_generate_dci_top() without msgTx and shorter 2025-11-14 12:25:05 +01:00
Robert Schmidt 34aa69828a Harmonize UL PDCCH PDU type for further refactoring
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).
2025-11-13 19:41:11 +01:00
Robert Schmidt 4b91022387 Pass read-only parameters as const 2025-11-13 19:41:11 +01:00
Robert Schmidt 383c94311e Pass big struct through pointer 2025-11-12 15:38:22 +01:00
Robert Schmidt 27203c9504 Remove useless function definitions
Unused code
2025-11-12 15:38:20 +01:00
Robert Schmidt 6471d91e2a Correct PNF config: sl_ahead to 2
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.
2025-11-12 15:16:48 +01:00
Jaroslava Fiedlerova 8186e840a3 Merge branch 'integration_2025_w45' into 'develop'
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
2025-11-06 16:12:28 +00:00
Jaroslava Fiedlerova 4b8889b95c Merge remote-tracking branch 'origin/ci-add-jenkinsfiles' into integration_2025_w45 (!3738)
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
2025-11-06 15:32:58 +01:00
Jaroslava Fiedlerova 95e9f4a47c Use a single Jenkinsfile
Combine Jenkinsfile and Jenkinsfile-oc from parrent commit into a single
file.
2025-11-06 13:21:08 +01:00
Jaroslava Fiedlerova 7a233de745 Merge remote-tracking branch 'origin/Fix_thread_affinity' into integration_2025_w45 (!3746)
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.
2025-11-06 13:14:03 +01:00
Jaroslava Fiedlerova 50e32cfea5 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
2025-11-06 09:36:03 +01:00
Jaroslava Fiedlerova 654e819d90 Merge remote-tracking branch 'origin/cleanup-ci-node' into integration_2025_w45 (!3742)
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.
2025-11-06 09:33:04 +01:00
Jaroslava Fiedlerova 5b2b570dfe Merge remote-tracking branch 'origin/fix-up-ho-fail' into integration_2025_w45 (!3739)
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.
2025-11-06 09:32:21 +01:00
Jaroslava Fiedlerova 89fbe3c783 Merge remote-tracking branch 'origin/issue-1021' into integration_2025_w45 (!3743)
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
2025-11-06 09:29:54 +01:00
luis_pereira87 cf507115e4 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
2025-11-05 20:51:02 +00:00
Robert Schmidt d4aac07ae9 Remove write-only code 2025-11-05 11:13:31 +01:00
Jaroslava Fiedlerova c625a95042 CI: add rfsim test with PRS
Use the bash script from a parent commit to verify PRS functionality.
2025-11-05 10:42:37 +01:00
Rakesh Mundlamuri 871b813c12 Modify the script with a retry logic for a failed test and print summary
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
=================================================
2025-11-05 10:42:37 +01:00
Jaroslava Fiedlerova 0d2212ca38 CI: Extend Custom_Script to accept arguments 2025-11-05 10:42:37 +01:00
rakesh mundlamuriandRobert Schmidt 1dca20ba85 Introduce a bash script to test PRS using estimated ToA
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>
2025-11-05 10:42:37 +01:00
Robert Schmidt 34e002a800 Add get_max_dl_toa() for ciUE telnet module 2025-11-05 10:42:37 +01:00
Robert Schmidt d682b6c512 Add function to read max DL ToA
Protect with mutex to allow reading from another thread.
2025-11-05 10:42:37 +01:00
Robert Schmidt b95b4c09d6 Write DL ToA into circular buffer
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.
2025-11-05 10:42:34 +01:00
Jaroslava Fiedlerova c54b20a56d Merge remote-tracking branch 'origin/bug-scope-pdcch' into integration_2025_w45 (!3736)
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
2025-11-05 09:13:52 +01:00
alexjiao 7655604d3c NR UE: fix PDCCH LLR indexing for different search space RB sizes
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.
2025-11-05 00:46:31 +08:00
Chieh-Chun Chen 579d263a9c Bugfix: save old tunnel info to remain the user plane connection while rolling back to source DU due to F1 handover failure 2025-11-04 16:03:41 +01:00
Robert Schmidt f7eaafa835 CI test runner: handle SIGINT
Handle SIGINT and mark any subsequent steps as failed. Receiving SIGINT
a second time will abort the script immediately (as is the case before
this commit).

Note that Python seems to relay the signal to the "controlled" process
(e.g., Ping), which would return immediately with an error. So some
steps like Ping will abort immediately, others (e.g., IdleSleep) will
finish their step, and then the present logic will mark subsequent steps
as failed.
2025-11-04 00:14:27 +01:00
Laurent THOMAS ab14e3ad22 move all antennas comon code of begining of nr_pdcch_channel_estimation to prepare the future move of the antenna loop above the serial call of functions to decode pdcch 2025-11-03 20:33:20 +01:00
Laurent THOMAS f982d9b5df rename a function to what it does (it generate a reference signal) and minor readability changes 2025-11-03 20:24:37 +01:00
Laurent THOMAS 032fc5e9c2 fix bugs in scope for pdcch, and optimize cpu cost of pdcch decoding by not processing useless samples in one symbol 2025-11-03 20:16:41 +01:00
Robert Schmidt 19c6d20b45 Bugfix: "or None" is useless
"or None" would assign if the first term is false-y. But not specifying
it would already lead to the variable being set to None.
2025-11-03 18:53:00 +01:00
Robert Schmidt b0106f27b5 Centralize node for all XML steps
All XML steps take a single node. We can thus "centralize" reading this
parameter in the main loop and pass it to ExecuteActionWithParam().
2025-11-03 18:48:55 +01:00
Robert Schmidt 9e0540fbed Simplify node management in CI
Some CI tasks/commands like Iperf(), Ping() get multiple nodes (via XML
parameter "nodes") to potentially run UEs on different nodes (hosts) at
the same time. However, I argue that this is not good:

- we don't actually use this -- where we specify multiple UEs, it's
  always "localhost localhost..."
- it is inconsistent, as we typically have a single "node", not nodes,
  and there is a possibility to harmonize (see also next commit)
- if we needed it, there would be better ways to achieve the same.
  First, for hardware-based UEs, the ci_infra.yaml can specify different
  UEs. For simulated UEs, it would be feasible to have multiple XML
  steps run in parallel, e.g., in the XML <parallel> tag, which would
  clarify that multiple UEs on different hosts run in parallel
- it reduces code.

Hence, make a single <node> for these XML steps.
2025-11-03 18:46:32 +01:00
Robert Schmidt a5689f5b8c CI: Remove unused code 2025-11-03 18:46:00 +01:00
Jaroslava Fiedlerova b8e249fc4a CI: Add new Jenkinsfiles
Created Jenkinsfiles:
- Jenkinsfile: for stadard test pipelines
- Jenkinsfile-oc: for deployments with OC

These 2 Jenkinsfiles covers all current test pipelines.
2025-11-03 14:01:44 +01:00
Robert Schmidt a72abe3cc8 Refactor dl_toa setting to separate function 2025-11-03 16:50:27 +05:30
rakesh mundlamuri 825c6803ad harmonize IQ samples in prs channel estimation to use c16_t 2025-11-03 16:50:27 +05:30
rakesh mundlamuri 5690aa0fe3 first_half index correction in PRS channel estimation while copying memory
Previously, we were using int16_t for the variable ch_tmp which was later harmonized to use c16_t while leaving <<1. This introduced the bug while accessing the address of the element at first_half of the ch_tmp variable.
2025-11-03 16:50:27 +05:30
Jaroslava Fiedlerova f9b4fe6a94 Merge branch 'integration_2025_w44' into 'develop'
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
2025-10-31 15:55:42 +00:00
Jaroslava Fiedlerova 5a6d253863 Merge remote-tracking branch 'origin/changeRegName' into integration_2025_w44 (!3706)
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.
2025-10-31 16:07:34 +01:00
Jaroslava Fiedlerova aff3c9872f CI: align REGISTRY env var with updated image path format
Following the change to use:
  image: ${REGISTRY-oaisoftwarealliance/}${GNB_IMG:-oai-gnb}:${TAG:-develop}
the REGISTRY variable must now include the trailing slash.
2025-10-31 15:20:34 +01:00
Nick Hedberg e4812c3d8e Allow for null-string REGISTRY names 2025-10-31 15:20:20 +01:00