Commit Graph
30248 Commits
Author SHA1 Message Date
Cedric Roux c4acec706d T: make number of subframes per frame a configurable item
Think: NR with different number of slots per frame depending on mu.

The name 'subframes_per_frame' is a bit ambiguous. It is valid for LTE,
but for NR it should be 'slots_per_frame'.

For example, for sub-carrier spacing of 30KHz, we have 20 slots per
frame, so in this case subframes_per_frame = 20. In reality whatever
the numerology, there is always 10 subframes per frame in NR.

But how to name this variable which is used both for LTE and NR cases?
'subframes_or_slots_per_frame'? It's a bit long and also ambiguous.

Conclusion: no big deal I think. 'subframes_per_frame' and so be it.
2025-08-18 11:53:54 +02:00
Cedric Roux 138886ad5e T: tti view: add automax ability
Also, update a cmake file because compilation of the tracer 'ue' fails
otherwise.
2025-08-18 11:53:54 +02:00
Cedric Roux 595e650f9f T: scrolltti: handle tick discontinuities
For TDD.
2025-08-18 11:53:54 +02:00
Cedric Roux 645393f464 T: throughputlog: handle tick discontinuities
Think: TDD.
2025-08-18 11:53:54 +02:00
Cedric Roux ee2668b7c3 T GUI: add a get_range() API function for xy_plot 2025-08-18 11:53:54 +02:00
Cedric Roux c8d64f0dd1 nr rlc: add an API function to retrieve the occupancy of TX list 2025-08-18 11:53:54 +02:00
Robert Schmidt 9e37a2cf94 Merge branch 'integration_2025_w33' into 'develop'
Integration: `2025.w33`

* !3563 UE fixes: pucch format 2 and CSI IM
* !3567 Workaround for handling 2 SS0 occasions per slot
* !3578 fix a T trace
* !3395 RFsim variable size H_awgn_mimo
* !3581 NR UE NTN: consider acceleration on orbital path to calculate N_UE_TA_drift_variant
* !3580 NR UE: fix pdcch llr_size calculation in nr_rx_pdcch()
* !3576 Cleanup documentation and interface of the LDPC segment coding libraries
* !3573 Make Amarisoft UE sim a RedCap UE
* !3586 Print UE command line parameters at gNB MAC for split architecture without L1
* !3584 add gtpu error packet parsing and display
* !3556 Introduce support for Cat-B RU using Predefined-Beam BF with Aerial L1
* !3492 Upgrade CI images to Ubuntu 24
* !3521 Refactor ULSCH scheduler towards more TDD pattern flexibility
* !3590 Improve MAC docs for MCS and docker for BuildKit usage
* !3579 CI: speed up and simplify build, remove unnecessary Python code, remove --eNB\* parameter list

Closes #927 and #973

See merge request oai/openairinterface5g!3583
2025-08-14 16:18:58 +00:00
Robert Schmidt 2c351c94d0 Merge remote-tracking branch 'origin/doc-updates' into integration_2025_w33 (!3590)
Improve MAC docs for MCS and docker for BuildKit usage

See commits for details. The first one is for fixing an omission in
!3281, the second to clarify docker build usage.

Closes: #973
2025-08-14 16:46:44 +02:00
Robert Schmidt 9f5ea8beba Merge remote-tracking branch 'origin/cleanup-build-oai-speedup-cluster' into integration_2025_w33 (!3579)
CI: speed up and simplify build, remove unnecessary Python code, remove --eNB* parameter list

This cleans up the CI framework for running end-to-end tests, and
improves the integration with OAI code. Specifically

- cleanup build_oai and helpers to output all text, which is captured
  better by the CI
- build some images in the Cluster-Build in parallel to increase speed
- remove all --eNB{,1,2}{IPAddress,UserName,Password} variables. Those
  were indexed through "instance" and "server ID" and are replaced with
  the actual node name. I consider further cleanup to introduce a
  "global" XML file node name so we don't need this in each step and
  instead define this once.
- individual cleanup
2025-08-14 16:45:52 +02:00
Robert Schmidt 5b8d66bbac Write simple CI documentation and add sample script 2025-08-14 14:55:23 +02:00
Robert Schmidt b075c733f3 CI: correct log analysis filename interpolation
A previous commit changed to use archiveArtifact() to recover CI logs,
and then attempted to "guess" the L1/MAC stats file name through a
regex. However, the format "enb-[0-9]+" is not correct, as
archiveArtifact() puts the task ID ("[0-9]+") BEFORE the file name
(here, "enb"). So, make it more generic and match the final "-enb.log"
("$" means "end of string").

Fixes: 244ea8fc22 ("Use archiveArtifact() for TerminateeNB()")
2025-08-14 14:55:23 +02:00
Robert Schmidt f82063c252 CI: Sleep: print time to wait 2025-08-14 14:55:23 +02:00
Robert Schmidt c5624661eb Remove HTML 'no analysis function'
For some network functions, we don't match an analysis function. In the
console logs we print an info message. In the HTML, it's just noise.
2025-08-14 14:55:23 +02:00
Robert Schmidt 852e98d385 Run_Physim(): avoid large console logs, rewrite file
Many of these tests exit with an exit code != 0. Thus, the CI
automatically logs the result. Rather, write everything including stderr
to the file for analysis.

Also, rewrite the file with ">" instead of appending through ">>". While
appending works because the CI removes files after archiving, it seems
"cleaner" to remove files.
2025-08-14 14:55:23 +02:00
Robert Schmidt 3c54daf4e2 Remove "forcedWorkspaceCleanup" option
It is superseded by the CreateWorkspace() function and task step (which
removes and recreates a workspace), and this option was not actually
used in any function except for the build of unit tests, but no XML
step actually specified this option.
2025-08-14 14:55:23 +02:00
Robert Schmidt 35f080e426 Fix: new Iperf test need to get ctx 2025-08-14 14:55:23 +02:00
Robert Schmidt 9e1cbb1035 Ignore eNB{,1,2}{UserName,IPAddress,Password} parameters
After having transitioned to direct node names in the XML, these
parameters are not relevant anymore.

The best way to view this patch is with

    git show <SHA> --ignore-all-space
2025-08-14 14:55:04 +02:00
Robert Schmidt 0e60be785c Remove SSH connection
Remove this class. It is not safe to use (no return codes, can get out
of sync), hardcodes the use of passwords, and it's API is cumbersone.

More explanations can also be found in !1867. It is superseded by
cls_cmd.py
2025-08-14 14:55:04 +02:00
Robert Schmidt dc27690c86 LogCollecteNB() not used anymore
Since 28ce0dc444 ("Main: pass in ctx"), the CI always collects logs
into cmake_targets/log/. Hence, LogCollecteNB() is never called. We can
remove it.

Further, change the cmake_targets/log/ to ci-log/, which is shorter, and
append a / on the zip path to make sure that only contents is zipped.
2025-08-14 14:55:04 +02:00
Robert Schmidt 45da9face4 Reimplement Initialize_eNB()/Terminate_eNB()
Reimplement these functions by

- using cls_cmd
- retain only the necessary steps from the timing-phytest function
- pass in ctx and node information, instead of server ID
- remove all superfluous variables that don't seem to be used
- make some lists (corresponding indices are "server ID") into normal
  variables.
2025-08-14 14:55:04 +02:00
Robert Schmidt c4efe9feed cls_containerize: yamlPath/services as normal string
These variables were set as lists, to be indexed by the "server ID".
Since this has been removed from all XMLs, it is not necessary anymore.
2025-08-14 14:55:04 +02:00
Robert Schmidt 3f4df04875 Run_Physim(): pass node 2025-08-14 14:55:04 +02:00
Robert Schmidt 190dc55d9f Pass node to various Build*() functions
Pass node directly from XML to these functions

- BuildClusterImage()
- BuildImage()
- BuildProxy()
- BuildRunTests()

instead of reading the "server ID" and looking up from
eNB_IPAddress/eNB1_IPAddress/eNB2_IPAddress.

Improve the proxy build unit test by properly passing ctx information.
2025-08-14 14:55:04 +02:00
Robert Schmidt 293c7afd0b File not used by CI 2025-08-14 14:55:04 +02:00
Robert Schmidt 074092af17 Remove unused variables 2025-08-14 14:55:04 +02:00
Robert Schmidt d3837cd3b0 Deploy_Run_PhySim(): pass node name
harmonize with other code that takes a "node" parameter.
2025-08-14 14:55:04 +02:00
Robert Schmidt af58cf2441 CppCheckAnalysis()/LicenceFormattingCheck(): use node
- ubuntu18 eNB_IPAddress obelix => obelix
- cppcheck eNB_IPAddress 172.21.18.47 => carabe
2025-08-14 14:55:04 +02:00
Robert Schmidt 6233667de9 Push_Local_Registry(): pass node 2025-08-14 14:55:04 +02:00
Robert Schmidt 7839d06601 Create/Deploy/Undeploy(): use node
Pass the node name for a host on which to create a workspace or
deploy/undeploy.

Add a new test for the creation of workspaces.

To help myself and the reviewer, here is a list of
"eNB_IPAddress"/"eNB1_IPAddress" parameters I copied from the various
pipelines:
- rfsim 4G eNB_IPAddress none => localhost
- rfsim 5g eNB_IPAddress none => localhost
- flexric eNB_IPAddress none => localhost
- l2sim 4g eNB_IPAddress none => localhost
- l2sim 4G eNB1_IPAddress 172.21.16.128 => obelix => localhost
- cluster image eNB_IPAddress poseidon
- ubuntu18 eNB_IPAddress obelix => obelix
- ubuntu-arm eNB_IPAddress gracehopper3-oai => gracehopper3-oai
- arm-cross eNB_IPAddress alambix => alambix
- lte-tdd eNB_IPAddress 172.21.18.45 => starsky
- lte-fdd eNB_IPAddress 172.21.18.46 => hutch
- lte-oaiue eNB_IPAddress 172.21.18.46 => hutch
- lte-oaiue eNB1_IPAddress 172.21.18.47 => carabe
- lte-tdd-2x2 eNB_IPAddress 172.21.16.128 => obelix
- nsa eNB_IPAddress 172.21.16.137 => nepes
- nsa eNB1_IPAddress 172.21.16.109 => ofqot
- sa-aerial eNB_IPAddress gracehopper1-oai => gracehopper1-oai
- aw2s eNB_IPAddress 172.21.16.124 => avra
- sabox eNB_IPAddress 172.21.16.109 => ofqot
- sa-oaiue eNB_IPAddress avra => avra
- sa-oaiue eNB1_IPAddress caracal => caracal
- cppcheck eNB_IPAddress 172.21.18.47 => carabe
- timing-phytest eNB_IPAddress caracal => caracal
- physim 4g eNB_IPAddress avra => avra
- physim 5g eNB_IPAddress avra => avra
2025-08-14 14:55:04 +02:00
Robert Schmidt d95e6bca6b Pull_Image_from_Registry()/Clean_Test_Server_Images(): pass node
Pass the node name for a host onto/from which to pull/clean the images.
For doing this, I used:

- rfsim 4G eNB_IPAddress none => localhost
- rfsim 5g eNB_IPAddress none => localhost
- flexric eNB_IPAddress none => localhost
- l2sim 4g eNB_IPAddress none => localhost
- l2sim 4G eNB1_IPAddress 172.21.16.128 => obelix => localhost
2025-08-14 14:55:04 +02:00
Robert Schmidt e25075134c Integrate all SA-OAIUE pipeline related files into one 2025-08-14 14:55:04 +02:00
Robert Schmidt 881f753f3f Integrate all NSA-related XML files into one
Is simpler to test manually and view the results.
2025-08-14 14:55:04 +02:00
Robert Schmidt 7defffe97a Remove unused file 2025-08-14 14:55:04 +02:00
Robert Schmidt ae3799d4ed Remove unused parameters 2025-08-14 14:55:04 +02:00
Robert Schmidt c8c6aa50f3 Cluster: build FHI7.2 in parallel 2025-08-14 14:55:04 +02:00
Robert Schmidt 2f43b09651 Remove unnecessary HTML printing, simplify code 2025-08-14 14:55:04 +02:00
Robert Schmidt 81a79980dd AnalyzeBuildLogs(): only analyze one file at a time
Will be used in a follow-up commit to simplify analysis of log files and
HTML file printing.
2025-08-14 14:55:04 +02:00
Robert Schmidt 089059e10a Remove unused variables 2025-08-14 14:55:04 +02:00
Bartosz Podrygajlo 3febc50f47 Make run_locally.sh script take the full path to the xml file
Use full path to xml file in run_locally.sh to allow usage of system
command line completion feature.
2025-08-14 14:55:04 +02:00
Robert Schmidt cf967d3314 Complete run_locally.sh to produce valid HTML 2025-08-14 14:55:04 +02:00
Robert Schmidt e7ea9ba747 CI: Clarify HTML message if a (ctest-executed) test fails 2025-08-14 14:55:04 +02:00
Robert Schmidt 47b658baf5 Disable various UHD features
build_oai primarily builds UHD for OAI. Thus, a number of targets (B100,
USRP1/2, ...) can be omitted, as OAI does not run on them. Further,
disable documentation and man pages, which is typically not necessary
for the averages user, and does not need to be installed for containers.
2025-08-14 14:55:04 +02:00
Robert Schmidt 599a1a8c74 UHD installation: remove multiple packages at once
Removing packages individually is slow, because apt starts to (re-)read
it's database over and over again. Do it at once to speed up.
2025-08-14 14:55:04 +02:00
Robert Schmidt 2086de2a98 Do not collect log files that don't exist
Since one of the parent commits, build_oai does not redirect files to a
log folder. Hence, there is no need to collect those.
2025-08-14 14:55:04 +02:00
Robert Schmidt 334251c4ff Remove unused build_helper function 2025-08-14 14:55:04 +02:00
Robert Schmidt 6c4e5dccea Don't redirect installation log files to a file
Similarly to the parent, don't redirect log files to a file. It makes
the CI more complicated, and also raises user awareness of what is being
installed.
2025-08-14 14:55:04 +02:00
Robert Schmidt 47a961d876 Merge remote-tracking branch 'origin/refactor-ulsch' into integration_2025_w33 (!3521)
Refactor ULSCH scheduler towards more TDD pattern flexibility

Refactors ULSCH scheduler, notably to support "UL-heavy" TDD patterns,
e.g., DSUUU. Also allows to run TDD pattern2 with UL slots, which was a
limitation in the previous code.
2025-08-14 14:30:58 +02:00
Robert Schmidt f08710a524 Merge remote-tracking branch 'origin/ubuntu24-docker-images' into integration_2025_w33 (!3492)
Upgrade CI images to Ubuntu 24

The MR upgrade the docker files from Jammy(22.04) to Noble(24.04).
2025-08-14 14:30:21 +02:00
Robert Schmidt e0c1f8d920 Increase AL candidates count on AW2S pipeline
Increase the number of aggregration level candidates. Since we have many
UEs with concurrent traffic in that pipeline, we should ensure that we
can allocate many DCIs to not waste resources (e.g., not all RBs used
because could not find DCIs for specific UEs).
2025-08-14 13:00:13 +02:00
Robert Schmidt ba6bad5eb3 Fix AL candidate documentation to right default
The default aggregation level candidate numbers in gnb_config.c (search
"uess_num_agg_level_candidates") is 0,2,0,0,0, so write that instead.
2025-08-14 12:55:53 +02:00