Commit Graph
100 Commits
Author SHA1 Message Date
Robert Schmidt 98d4dff509 Merge remote-tracking branch 'origin/NR_gNB_SIB2' into integration_2025_w15 (!3184)
NR SIB2

- Transmission of SIB2
- Fixes for transmission and reception of SIB19

Closes #901
2025-04-14 17:01:28 +02:00
Robert Schmidt 5c5dbdf2d3 Merge remote-tracking branch 'origin/ci-refactor-cn-fixes' into integration_2025_w15 (!3375)
CI CoreNetwork fixes

Some minor fixes after !3322
2025-04-14 17:00:59 +02:00
Robert Schmidt 07f8158378 Merge remote-tracking branch 'origin/ntn_leo_freq_comp' into integration_2025_w15 (!3355)
NR UE: add support for continuous frequency offset compensation (in particular NTN LEO Doppler)

- move function add_noise() to file
  openair1/SIMULATION/TOOLS/phase_noise.c
- refactor (co)sinus calculation out of phase_noise() into get_sin_cos()
  in nr_common.c
- NR UE: continuously estimate the frequency offset using PBCH DMRS
- NR UE: add command line parameter --initial-fo to specify known
  initial frequency offset
- NR UE: add support for continuous DL frequency offset compensation
  --cont-fo-comp
- NR UE: add support for continuous UL frequency offset
  pre-compensation. Depending on the main source of frequency offset,
  pre-compensate the UL frequency offset (FO) accordingly. Therefore
  modify the flag --cont-fo-comp to accept an integer value, where
  * 1 specifies, that the main FO contribution comes from the accuracy of the local oscillator (LO)
  * 2 specifies, that the main FO contribution comes from Doppler shift
- NR UE: add PI controller to continuous frequency offset compensation
- rfsimulator: enable and correct NTN LEO doppler simulation
- use SIMD to speed up nr_fo_compensation()
- Extend NTN LEO example in RUNMODEM.md to include continuous Doppler
  compensation
- NR UE: in nr_adjust_synch_ue() extend the peak search to +/- cyclic
  prefix size, esp. for LEO NTN scenarios the timing drifts during
  initial sync, which is mostly compensated with
  --ntn-initial-time-drift. But there might be a residual time offset,
  and by extending the peak search window we make this more tolerant.
- NR UE: remove unused nr_slot_tx_offset, it is unused since commit
  f3e60a14
- NR UE: remove now unnecessary local variable
  update_ntn_system_information, directly use
  UE->ntn_config_message->update instead
2025-04-14 16:59:27 +02:00
Robert Schmidt 75b237fb90 Add 5G RFsim NTN LEO CI Test 2025-04-14 10:45:40 +02:00
Robert Schmidt 890a6c702e Remove unnecessary fields in NTN-LEO gNB config 2025-04-14 10:42:10 +02:00
Robert Schmidt f3724ec451 Add SIBs in configuration doc and feature set 2025-04-14 10:15:50 +02:00
Robert Schmidt e73f1f6220 F1AP: Correctly encode DU configuration update acknowledge SI container
Fixes: b91e1b0a12 ("Add enc/dec lib for F1AP gNB-DU Configuration
Update Acknowledge (Interface Management)")
2025-04-14 10:15:50 +02:00
Robert Schmidt 463942d90e F1AP: correctly encode SI containers
- encode all SI containers the encoding function gets (it's not the
  encoding function's job to enforce semantics)
-

Fixes: 30628b820c ("Add encoding/decoding lib for F1AP Setup Response
(Interface Management)")
2025-04-14 10:15:50 +02:00
Robert Schmidt 7edf52ca5b Use cp_f1ap_() functions to properly copy F1 messages 2025-04-14 10:15:50 +02:00
Robert Schmidt 556396e56e Ping: use cn name when checking for CN IP address 2025-04-12 11:17:22 +02:00
Robert Schmidt 135b522cf4 CoreNetwork: do not look up IP for CN name printing
In various places, e.g., during initialization (before deployment), we
use the name of the CN object, previously including the IP address.
However, the IP might not be available (because the CN is not deployed),
so we would get warnings at this stage. Avoid this by not looking up the
IP.

There is now one place where we have to look up the IP address
separately.

Also, the exception in initialization might be misleading if we used
{self}, because we complain about no node being present, but the {self}
would include a non-existing node name => do not use it.
2025-04-12 11:17:22 +02:00
Robert Schmidt cb175569eb Merge remote-tracking branch 'origin/xl_min_mcs' into integration_2025_w15 (!3281)
Add support for 'dl_min_mcs' and 'ul_min_mcs' configuration parameters

Add support for 'dl_min_mcs' and 'ul_min_mcs' configuration parameters,
they will enforce the gNB scheduler to select always a MCS equal or
above its values

In addition to use a min value for MCS, this MR also enables the testing
of a specific MCS value with COTS UE, by setting

    xl_min_mcs = xl_max_mcs

example:

    dl_min_mcs: 22
    dl_max_mcs: 22
    ul_min_mcs: 7
    ul_max_mcs: 7

In the example above, the scheduler will use always MCS 22 for downlink
and MCS 7 for uplink.
2025-04-12 11:03:56 +02:00
Robert Schmidt ec65c7cbaa Merge remote-tracking branch 'origin/nr_dlsim_improve_logging' into integration_2025_w15 (!3336)
Fix logging in nr_dlsim

Added Python helper script to plot buffer data
2025-04-12 11:03:25 +02:00
Robert Schmidt e7b46342d5 Merge remote-tracking branch 'origin/asn1c-default-no-output' into integration_2025_w15 (!3368)
Encapsulate the asn1c call from cmake in a cmake function run_asn1c().
As a notable change to the previous manual add_custom_command()
invocation, in suppresses the output of asn1c by default [1] and stores
it in a log file. In case of asn1c4 error, the output will output on
stdout.

Use the new run_asn1c() in all occasions for code generation.

[1] it is quite verbose, with many warnings that we cannot influence nor
suppress, and lists all generated files which is verified by the build
system automatically, anyway.
2025-04-11 16:29:27 +02:00
Robert Schmidt 26dcb876f5 Merge remote-tracking branch 'origin/nr-ue-slot-tx-cleanup' into integration_2025_w15 (!3312)
NR UE: enable concurrent UL slot processing

This commit introduces support for concurrent UL slot processing
Key changes:

- Increased number of UL actors from 1 to 2
- fix several issues related to writing to global variables inside processSlotTX
- Ensure in-order execution of if_module calls by utilizing the preexisting dynamic_barrier structure.

Note: for NTN, concurrent UL slot processing does not work. A flag
`--num-ul-actors X` has been introduced that allows to fix the number of
UL actors to `X` (default is 2).
2025-04-11 16:26:41 +02:00
Robert Schmidt bc5f2ec99e Merge remote-tracking branch 'origin/nr-ue-nas-service-reject' into integration_2025_w15 (!3275)
Add 5GMM Service Reject enc/dec library and unit test

- introduce the library for the NAS Service Reject enc/dec
- add relevant unit test
- add handler
2025-04-11 16:25:52 +02:00
Robert Schmidt 2ab747eaa6 CI CoreNetwork: define function getName()
Some functionality (e.g., in cls_oaicitest.py) uses cn.getName(). Define
that function to avoid assertions.
2025-04-11 14:16:49 +02:00
Robert Schmidt 4296bfe34f Merge remote-tracking branch 'origin/info-asan-bug' into integration_2025_w15 (!3370)
Doc: add information on how to avoid a common asan bug

Closes #943
2025-04-11 07:38:55 +02:00
Robert Schmidt b381d7ffae Merge remote-tracking branch 'origin/944-typo-in-gnb_scheduler_uci-c' into integration_2025_w15 (!3366)
Fix typo in gNB_scheduler_uci.c

Closes #944
2025-04-11 07:38:29 +02:00
Robert Schmidt b9f5746df4 Merge remote-tracking branch 'origin/fix-count-nr-pdcp' into integration_2025_w15 (!3365)
nr pdcp: 'count' is 32 bits, use explicit type instead of generic 'int'

fix #942
2025-04-11 07:38:02 +02:00
Robert Schmidt 9e4aefda6b Merge remote-tracking branch 'origin/issue-939' into integration_2025_w15 (!3364)
NR UE: fix PRACH generation with frequency resource id not 0 when msg1-FDM > 1 in SIB1

When msg1-FDM > 1 (2, 4 or 8) in SIB1, the frequency resource id of
PRACH could be not 0, current PRACH generation only considers frequency
resource id = 0. This MR fixes it, verified with 3rd-party gNB.

Closes #939
2025-04-11 07:37:33 +02:00
Robert Schmidt 8d294d71b8 Merge remote-tracking branch 'origin/RedCap_InitialBWP' into integration_2025_w15 (!3358)
RedCap InitialBWP

Prevent RedCap UEs to move to DedicatedBWP

  This allows the coexistence of RedCap UEs and non-RedCap UEs in the
  same cell by having an InitialBWP with 20MHz and a larger
  DedicatedBWP.

Update example RedCap configuration file to have 20 MHz InitialBWP and
40 MHz DedicatedBWP
2025-04-11 07:36:51 +02:00
Robert Schmidt b9a6d93bfa Doc: add information on how to avoid a common asan bug 2025-04-10 09:06:57 +02:00
Robert Schmidt 05d393a399 Encapsulate cmake asn1c call, suppress useless output
Encapsulate the asn1c call from cmake in a cmake function run_asn1c().
As a notable change to the previous manual add_custom_command()
invocation, in suppresses the output of asn1c by default [1] and stores
it in a log file. In case of asn1c4 error, the output will output on
stdout.

Use the new run_asn1c() in all occasions for code generation.

[1] it is quite verbose, with many warnings that we cannot influence nor
suppress, and lists all generated files which is verified by the build
system automatically, anyway.
2025-04-09 14:35:29 +00:00
Robert Schmidt b5f7d22c02 Merge branch 'integration_2025_w14_p2' into 'develop'
Integration: `2025.w14` (part 2)

See merge request oai/openairinterface5g!3362

* !3255 Fixes for E1 and PDU session usage
* !3332 sched_ctrlCommon earlier
* !3356 Avoid accessing current_DL_BWP structure when scheduling DCI for other SIBs
* !3359 Fix inconsistent maxnoofPDUSessions definitions between NGAP and platform constants
* !3357 CI: update VVDN configuration file
* !3333 NR RLC improvements
* !3342 Fix bugs detected gcc
* !3347 feat(oran_fhlib_5g): O-RAN 7.2 FrontHaul Interface on Arm
* !3153 [E2 agent] RAN Control SM - support for REPORT Style 1 ("RRC Message" and "UE ID" RAN Parameter IDs)
* !3234 CI: minor tunings and improvements
* !3276 Optimization for unused symbols in NR UE
* !3317 Extend F1 Handover test
2025-04-08 12:20:05 +00:00
Robert Schmidt 469bf23666 Merge remote-tracking branch 'origin/extend-f1-ci-test' into integration_2025_w14_p2 (!3317)
Extend F1 Handover test

do 1 more handover in the same test to verify robustness

- This MR keeps a simple ping after the second handover since there are
  still issues due to scheduling starting too early, that is as soon as
  the UE context is added. This leads to retransmissions that could
  eventually lead to a test failure. The issue will be fixed in a future
  MR.

add check on connected DU to verify successful handover

- a new telnet function gets in input the UE ID and returns the ID of
  the connected DU

wait some time after deploying DU to mimic time for measurements
2025-04-08 10:06:06 +02:00
Robert Schmidt b4f8c9c981 Merge remote-tracking branch 'origin/ifft-avoidance' into integration_2025_w14_p2 (!3276)
Optimization for unused symbols in NR UE

After processing TX frequency domain data skip IFFT call for symbols
that aren't used, the time domain buffer is memset instead.

Biggest benefit is when UE does not transmit PUSCH, or PUSCH is using <
14 symbols
2025-04-08 10:06:06 +02:00
Robert Schmidt 3bd2404eec Iperf_analyzeV2UDP(): variable is local 2025-04-08 10:06:06 +02:00
Robert Schmidt d12e098736 Merge remote-tracking branch 'origin/ci-improvements' into integration_2025_w14_p2 (!3234)
CI: minor tunings and improvements
2025-04-08 10:06:06 +02:00
Robert Schmidt 748581293e Merge remote-tracking branch 'origin/RC_SM_RRC_Message_Copy' into integration_2025_w14_p2 (!3153)
[E2 agent] RAN Control SM - support for REPORT Style 1 ("RRC Message" and "UE ID" RAN Parameter IDs)

[Spring of Code 2024] contributions

Extended the RAN Control Service Model at E2 Agent to support all RC
REPORT Styles (1 - 5)
Implemented the following RAN Parameter IDs for REPORT Style 1:

1. "RRC Message": any DL-DCCH, and any UL-DCCH
2. "UE ID": as per spec, when the RRC Setup Complete or F1 UE Context
   Setup Request detected
2025-04-08 10:06:06 +02:00
Robert Schmidt c3d80f8ac4 Merge remote-tracking branch 'origin/arm_fhi72' into integration_2025_w14_p2 (!3347)
feat(oran_fhlib_5g): O-RAN 7.2 FrontHaul Interface on Arm

This MR is enabling the 7.2 FHI on Arm systems.

Even though the performance are yet very bad (UE connection is very
difficult, 100Mbps DL, almost no UL), still I would like to merge this
now since the matter of making the FHI work is rather orthogonal to the
performance issues.

So merging this feature would provide a reliable settlement on top of
which we could then progressively enhance the porting of OAI to Arm.
Especially that would make our work easier by having less features to
rebase regularly on develop.

The main features this MR is made of are:

1. Make the xran patches dual

We provide patches for both E and F releases of xran that handles x86
targets as well as Arm targets. Both patches have been tested on both
types of machines (armix, broadbill).  Thanks to @brobert and @changy
for their work on xran.

2. Perform 9-bits BFP compression with ArmRAL

Since the BFP compression implementation provided with xran does rely
heavily on AVX512, we provide an alternative implementation that is
relying on Arm's RAN Acceleration Library (ArmRAL).

As of writing this commit description, only 9-bits compression is
supported. Other IQ width will be added.

This upcoming change does not prevent review to be performed since the
BFP compression functions of ArmRAL are identical except for the IQ
width. Adding further IQ width is therefore very straightforward.

3. Fixes in oran_fhlib_5g to support Arm

The library oran_fhlib_5g needed few changes to successfully compile and
run on Arm systems. Thanks to @brobert for his work on oran_fhlib_5g.
2025-04-08 10:06:06 +02:00
Robert Schmidt 83590bf1af Merge remote-tracking branch 'origin/fix-bugs-detected-gcc' into integration_2025_w14_p2 (!3342)
Fix bugs detected gcc
2025-04-08 10:06:06 +02:00
Robert Schmidt 8799adaca6 Merge remote-tracking branch 'origin/NR_RLC_rework' into integration_2025_w14_p2 (!3333)
NR RLC improvements

The goal of this MR is to reduce/eliminate the dependencies of NR RLC
from LTE RLC
2025-04-08 10:06:06 +02:00
Robert Schmidt 42a9dde691 Merge remote-tracking branch 'origin/ci-vvdn-update' into integration_2025_w14_p2 (!3357)
CI: update VVDN configuration file

- change frequency
- use MAC address of the new VVDN RU
2025-04-08 10:06:06 +02:00
Robert Schmidt e4c9cb4125 Merge remote-tracking branch 'origin/fix-ngap-max-pdusession' into integration_2025_w14_p2 (!3359)
Fix inconsistent maxnoofPDUSessions definitions between NGAP and platform constants

There are 2 different definition of maxnoofPDUSessions (as per 3GPP TS
38.413), one in NGAP lib (set to 16) and one in platform_constants.h
(256 as per specs). The NGAP lib definition is removed in this commit
and replaced by the one compliant with the specs.

This is fixing the warning:

    In function 'fill_pdu_session_resource_failed_to_setup_item',
        inlined from 'rrc_gNB_send_NGAP_INITIAL_CONTEXT_SETUP_RESP' at /openair2/RRC/NR/rrc_gNB_NGAP.c:588:7:
    /openair2/RRC/NR/rrc_gNB_NGAP.c:451:12: warning: writing 1 byte into a region of size 0 [-Wstringop-overflow=]
      451 |   f->cause = cause;
          |   ~~~~~~~~~^~~~~~~
    In file included from /common/utils/ocp_itti/intertask_interface.h:235,
                     from /openair2/RRC/NR/rrc_gNB_NGAP.h:39,
                     from /openair2/RRC/NR/rrc_gNB_NGAP.c:31:
    /openair2/COMMON/ngap_messages_types.h: In function 'rrc_gNB_send_NGAP_INITIAL_CONTEXT_SETUP_RESP':
    /openair2/COMMON/ngap_messages_types.h:546:13: note: at offset [8724, 25769812488] into destination object 'gNB_ue_ngap_id' of size 4
      546 |   uint32_t  gNB_ue_ngap_id;
          |             ^~~~~~~~~~~~~~
2025-04-08 10:06:06 +02:00
Robert Schmidt ec9b2bf7c9 Tune nFAPI 4x4 test case 2025-04-08 10:06:05 +02:00
Robert Schmidt 0cb22bd38f Merge remote-tracking branch 'origin/fix-null-ptr-access' into integration_2025_w14_p2 (!3356)
Avoid accessing current_DL_BWP structure when scheduling DCI for other SIBs

Avoid access to mac->current_DL_BWP structure when scheduling DCI for
SIBs other than 1. This is not needed and can cause NULL pointer access
which can happen if the UE has released MAC configuration or has not
started RA yet.
2025-04-08 10:06:05 +02:00
Robert Schmidt ff50897905 Merge remote-tracking branch 'origin/sched_ctrlCommon-earlier' into integration_2025_w14_p2 (!3332)
sched_ctrlCommon earlier

This MR configures sched_ctrlCommon earlier, in RCconfig_nr_macrlc().

The objective of this MR is to solve the following Assert in the F1 test:

    19897952.126019 [NR_MAC] I Adding new UE context with RNTI 0x3269
    /oai-ran/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_primitives.c:366:15: runtime error: member access within null pointer of type 'struct NR_UE_sched_ctrl_t'
    [INFO  tini (1)] Spawned child process '/opt/oai-gnb/bin/entrypoint.sh' with pid '7'
    [INFO  tini (1)] Main child exited normally (with status '1')
2025-04-08 10:06:05 +02:00
Robert Schmidt 8477de3571 Make function static: only used in rrc_gNB.c 2025-04-04 15:26:56 +02:00
Robert Schmidt d13a0c9626 Merge remote-tracking branch 'origin/fix-e1-pdu-handling' into integration_2025_w14_p2 (!3255)
Fixes for E1 and PDU session usage

Fix a number of problems in E1 and PDU session handling:

- For multiple PDU session setup reqs, we send a bearer context setup
  each time; fix an assert that was triggered on the second bearer
  context setup message
- Add a log for E1 bearer context setup, as already done for
  modification and release
- If we get a PDU session setup for an existing PDU session, reject it
  as required by the spec [actually, it says to reject individual PDU
  sessions; keep it simple for now and reject the entire message, which
  might not be correct if there is one new PDU session that does not
  exist]
- Add a workaround to handle multiple PDU session setup requests that
  come in quick succession for different PDU sessions
2025-04-04 07:16:41 +02:00
Robert Schmidt 23c909e28e Merge branch 'integration_2025_w14_p1' into 'develop'
Integration: `2025.w14` (part 1)

Closes #931

See merge request oai/openairinterface5g!3353

* !3247 Add enc/dec lib and unit test for 5GS NAS Service Accept
* !3316 Fix: Correctly Read PDU Address IE
* !3322 Refactor core network handling in CI, harmonize code
* !3327 NR UE fix for disable HARQ
* !3350 Cleanup NR PHY common definitions
* !3352 Turn off any Nagle-like algorithm for SCTP
2025-04-03 16:35:12 +00:00
Robert Schmidt e45f429c35 Dummy nr_rlc_data_req() into nr-cuup.c 2025-04-03 17:34:54 +02:00
Robert Schmidt 42111e0203 Merge remote-tracking branch 'origin/sctp_nodelay' into integration_2025_w14_p1 (!3352)
Turn off any Nagle-like algorithm for SCTP

This means that packets will be sent as soon as possible and no
unnecessary delays are introduced, at the cost of more packets in the
network.

https://www.man7.org/linux/man-pages/man7/sctp.7.html
2025-04-03 10:14:07 +02:00
Robert Schmidt 83c8a5ac0e Merge remote-tracking branch 'origin/PHY_defs_common' into integration_2025_w14_p1 (!3350)
Cleanup NR PHY common definitions
2025-04-03 10:13:42 +02:00
Robert Schmidt e8247afd17 Merge remote-tracking branch 'origin/fix_UE_disableharq' into integration_2025_w14_p1 (!3327)
NR UE fix for disable HARQ

Asserting on feedback time only if feedback is enabled
2025-04-03 10:13:14 +02:00
Robert Schmidt 1449bdd410 Merge remote-tracking branch 'origin/ci-refactor-core-handling' into integration_2025_w14_p1 (!3322)
Refactor core network handling in CI, harmonize code

Prior to change set, there is a highly heterogeneous situation for core
network management in CI code: some log collection is done from groovy
files (when it could be done in python, which is easier for local
development), there are multiple commands to start a CN from XML files,
the code for starting a CN is always different (no one unified way to
start "any" CN), Ping/Iperf require some support in ci_infra.yaml, ...

To help with the above, refactor the handling of core networks in the CI
code as follows:

- define all CNs in ci_infra.yaml (basically how to deploy, undeploy,
  collect logs, and on which node)
- make one Python class that reads from ci_infra.yaml and that allows to
  start/stop previously defined CNs (and add unit tests...)
- make one XML command for start/stop of CNs, leveraging above class
- leverage the CNs defined in ci_infra.yaml consistently in
  Ping()/Iperf()
- delete old code

Furthermore, the following supporting changes/bugfixes are done:

- repair Iperf2_Unidir() and add unit test
- fix a number of invalid escape sequence errors (there are some
  remaining, which I will do soon)
- various bug fixes
- remove unused XML steps
2025-04-03 10:10:58 +02:00
Robert Schmidt 30c6c23dc8 Merge remote-tracking branch 'origin/931-pdu-session-type-is-incorrectly-used' into integration_2025_w14_p1 (!3316)
Fix: Correctly Read PDU Address IE

The QoS Rules loop correctly moves msg pointer allowing the PDU Address
IE to be read correctly. The PDU Address IE is only processed if it is
provided, otherwise there is a warning.

Closes #931
2025-04-03 10:10:35 +02:00
Robert Schmidt 9fdfbae91d Merge remote-tracking branch 'origin/nr-ue-nas-service-accept' into integration_2025_w14_p1 (!3247)
Add enc/dec lib and unit test for 5GS NAS Service Accept

- add new files for Service Accept fgmm_service_accept.c/.h containing
  the enc/dec functions (8.2.17 3GPP TS 24.501)
- enabled compiling
- add unit test
- add handler in stack
2025-04-03 10:09:53 +02:00
Robert Schmidt 277f8da010 Workaround to delay multiple concurrent PDU session
This is a hack. With some UEs/CN combinations, PDU session requests
might come in quick succession. Since 38.331 asks us to only have one
reconfiguration at once, we need to delay a second, third, ... PDU
session request until the first has passed, to make one reconfiguration
at a time.
2025-04-03 09:06:31 +02:00
Robert Schmidt ee3601df5d Fix invalid escape sequence errors in cls_cluster.py
The following cases are covered
- we have a regex whose escape sequences are not to be evaluated in the
  string, but given verbatim to the regex engine. Hence, mark them as
  raw strings.
- some are parameters for the cmd.run() call, but the parameters are
  wrong, so remove that
- there is a `\|` that is also to be passed verbatim

    /home/richie/w/ci-refactor-core-handling/ci-scripts/cls_cluster.py:97: SyntaxWarning: invalid escape sequence '\-'
      if re.search('buildconfig.build.openshift.io/[a-zA-Z\-0-9]+ created', ret.stdout) is not None:
    /home/richie/w/ci-refactor-core-handling/ci-scripts/cls_cluster.py:167: SyntaxWarning: invalid escape sequence '\-'
      result = re.search(f'pod/(?P<pod>[a-zA-Z0-9_\-]+) created', ret.stdout)
    /home/richie/w/ci-refactor-core-handling/ci-scripts/cls_cluster.py:325: SyntaxWarning: invalid escape sequence '\$'
      self.cmd.run(f'oc get pods.metrics.k8s.io &>> cmake_targets/log/build-metrics.log', '\$', 10)
    /home/richie/w/ci-refactor-core-handling/ci-scripts/cls_cluster.py:385: SyntaxWarning: invalid escape sequence '\$'
      self.cmd.run(f'oc get pods.metrics.k8s.io &>> cmake_targets/log/build-metrics.log', '\$', 10)
    /home/richie/w/ci-refactor-core-handling/ci-scripts/cls_cluster.py:398: SyntaxWarning: invalid escape sequence '\$'
      self.cmd.run(f'oc get pods.metrics.k8s.io &>> cmake_targets/log/build-metrics.log', '\$', 10)
    /home/richie/w/ci-refactor-core-handling/ci-scripts/cls_cluster.py:413: SyntaxWarning: invalid escape sequence '\$'
      self.cmd.run(f'oc get pods.metrics.k8s.io &>> cmake_targets/log/build-metrics.log', '\$', 10)
    /home/richie/w/ci-refactor-core-handling/ci-scripts/cls_cluster.py:429: SyntaxWarning: invalid escape sequence '\|'
      grep_exp = "\|".join(attemptedImages)
    /home/richie/w/ci-refactor-core-handling/ci-scripts/cls_cluster.py:431: SyntaxWarning: invalid escape sequence '\$'
      self.cmd.run(f'for pod in $(oc get pods | tail -n +2 | awk \'{{print $1}}\'); do oc get pod $pod -o json &>> cmake_targets/log/build_pod_summary.log; done', '\$', 60)
2025-04-02 14:24:21 +02:00
Robert Schmidt 1fa0b501c6 Fix invalid escape sequence errors in args_parse.py
As parent. Fix these warnings:

    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:55: SyntaxWarning: invalid escape sequence '\-'
      if re.match('^\-\-help$', myArgv, re.IGNORECASE):
    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:58: SyntaxWarning: invalid escape sequence '\-'
      if re.match('^\-\-local$', myArgv, re.IGNORECASE):
    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:63: SyntaxWarning: invalid escape sequence '\-'
      elif re.match('^\-\-Apply=(.+)$', myArgv, re.IGNORECASE):
    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:64: SyntaxWarning: invalid escape sequence '\-'
      matchReg = re.match('^\-\-Apply=(.+)$', myArgv, re.IGNORECASE)
    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:74: SyntaxWarning: invalid escape sequence '\-'
      elif re.match('^\-\-mode=(.+)$', myArgv, re.IGNORECASE):
    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:75: SyntaxWarning: invalid escape sequence '\-'
      matchReg = re.match('^\-\-mode=(.+)$', myArgv, re.IGNORECASE)
    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:77: SyntaxWarning: invalid escape sequence '\-'
      elif re.match('^\-\-eNBRepository=(.+)$|^\-\-ranRepository(.+)$', myArgv, re.IGNORECASE):
    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:78: SyntaxWarning: invalid escape sequence '\-'
      if re.match('^\-\-eNBRepository=(.+)$', myArgv, re.IGNORECASE):
    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:79: SyntaxWarning: invalid escape sequence '\-'
      matchReg = re.match('^\-\-eNBRepository=(.+)$', myArgv, re.IGNORECASE)
    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:81: SyntaxWarning: invalid escape sequence '\-'
      matchReg = re.match('^\-\-ranRepository=(.+)$', myArgv, re.IGNORECASE)
    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:89: SyntaxWarning: invalid escape sequence '\-'
      elif re.match('^\-\-eNB_AllowMerge=(.+)$|^\-\-ranAllowMerge=(.+)$', myArgv, re.IGNORECASE):
    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:90: SyntaxWarning: invalid escape sequence '\-'
      if re.match('^\-\-eNB_AllowMerge=(.+)$', myArgv, re.IGNORECASE):
    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:91: SyntaxWarning: invalid escape sequence '\-'
      matchReg = re.match('^\-\-eNB_AllowMerge=(.+)$', myArgv, re.IGNORECASE)
    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:93: SyntaxWarning: invalid escape sequence '\-'
      matchReg = re.match('^\-\-ranAllowMerge=(.+)$', myArgv, re.IGNORECASE)
    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:103: SyntaxWarning: invalid escape sequence '\-'
      elif re.match('^\-\-eNBBranch=(.+)$|^\-\-ranBranch=(.+)$', myArgv, re.IGNORECASE):
    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:104: SyntaxWarning: invalid escape sequence '\-'
      if re.match('^\-\-eNBBranch=(.+)$', myArgv, re.IGNORECASE):
    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:105: SyntaxWarning: invalid escape sequence '\-'
      matchReg = re.match('^\-\-eNBBranch=(.+)$', myArgv, re.IGNORECASE)
    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:107: SyntaxWarning: invalid escape sequence '\-'
      matchReg = re.match('^\-\-ranBranch=(.+)$', myArgv, re.IGNORECASE)
    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:115: SyntaxWarning: invalid escape sequence '\-'
      elif re.match('^\-\-eNBCommitID=(.*)$|^\-\-ranCommitID=(.*)$', myArgv, re.IGNORECASE):
    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:116: SyntaxWarning: invalid escape sequence '\-'
      if re.match('^\-\-eNBCommitID=(.*)$', myArgv, re.IGNORECASE):
    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:117: SyntaxWarning: invalid escape sequence '\-'
      matchReg = re.match('^\-\-eNBCommitID=(.*)$', myArgv, re.IGNORECASE)
    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:119: SyntaxWarning: invalid escape sequence '\-'
      matchReg = re.match('^\-\-ranCommitID=(.*)$', myArgv, re.IGNORECASE)
    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:127: SyntaxWarning: invalid escape sequence '\-'
      elif re.match('^\-\-eNBTargetBranch=(.*)$|^\-\-ranTargetBranch=(.*)$', myArgv, re.IGNORECASE):
    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:128: SyntaxWarning: invalid escape sequence '\-'
      if re.match('^\-\-eNBTargetBranch=(.*)$', myArgv, re.IGNORECASE):
    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:129: SyntaxWarning: invalid escape sequence '\-'
      matchReg = re.match('^\-\-eNBTargetBranch=(.*)$', myArgv, re.IGNORECASE)
    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:131: SyntaxWarning: invalid escape sequence '\-'
      matchReg = re.match('^\-\-ranTargetBranch=(.*)$', myArgv, re.IGNORECASE)
    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:139: SyntaxWarning: invalid escape sequence '\-'
      elif re.match('^\-\-eNBIPAddress=(.+)$|^\-\-eNB[1-2]IPAddress=(.+)$', myArgv, re.IGNORECASE):
    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:140: SyntaxWarning: invalid escape sequence '\-'
      if re.match('^\-\-eNBIPAddress=(.+)$', myArgv, re.IGNORECASE):
    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:141: SyntaxWarning: invalid escape sequence '\-'
      matchReg = re.match('^\-\-eNBIPAddress=(.+)$', myArgv, re.IGNORECASE)
    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:147: SyntaxWarning: invalid escape sequence '\-'
      elif re.match('^\-\-eNB1IPAddress=(.+)$', myArgv, re.IGNORECASE):
    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:148: SyntaxWarning: invalid escape sequence '\-'
      matchReg = re.match('^\-\-eNB1IPAddress=(.+)$', myArgv, re.IGNORECASE)
    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:151: SyntaxWarning: invalid escape sequence '\-'
      elif re.match('^\-\-eNB2IPAddress=(.+)$', myArgv, re.IGNORECASE):
    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:152: SyntaxWarning: invalid escape sequence '\-'
      matchReg = re.match('^\-\-eNB2IPAddress=(.+)$', myArgv, re.IGNORECASE)
    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:155: SyntaxWarning: invalid escape sequence '\-'
      elif re.match('^\-\-eNBUserName=(.+)$|^\-\-eNB[1-2]UserName=(.+)$', myArgv, re.IGNORECASE):
    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:156: SyntaxWarning: invalid escape sequence '\-'
      if re.match('^\-\-eNBUserName=(.+)$', myArgv, re.IGNORECASE):
    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:157: SyntaxWarning: invalid escape sequence '\-'
      matchReg = re.match('^\-\-eNBUserName=(.+)$', myArgv, re.IGNORECASE)
    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:163: SyntaxWarning: invalid escape sequence '\-'
      elif re.match('^\-\-eNB1UserName=(.+)$', myArgv, re.IGNORECASE):
    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:164: SyntaxWarning: invalid escape sequence '\-'
      matchReg = re.match('^\-\-eNB1UserName=(.+)$', myArgv, re.IGNORECASE)
    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:167: SyntaxWarning: invalid escape sequence '\-'
      elif re.match('^\-\-eNB2UserName=(.+)$', myArgv, re.IGNORECASE):
    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:168: SyntaxWarning: invalid escape sequence '\-'
      matchReg = re.match('^\-\-eNB2UserName=(.+)$', myArgv, re.IGNORECASE)
    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:171: SyntaxWarning: invalid escape sequence '\-'
      elif re.match('^\-\-eNBPassword=(.+)$|^\-\-eNB[1-2]Password=(.+)$', myArgv, re.IGNORECASE):
    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:172: SyntaxWarning: invalid escape sequence '\-'
      if re.match('^\-\-eNBPassword=(.+)$', myArgv, re.IGNORECASE):
    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:173: SyntaxWarning: invalid escape sequence '\-'
      matchReg = re.match('^\-\-eNBPassword=(.+)$', myArgv, re.IGNORECASE)
    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:179: SyntaxWarning: invalid escape sequence '\-'
      elif re.match('^\-\-eNB1Password=(.+)$', myArgv, re.IGNORECASE):
    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:180: SyntaxWarning: invalid escape sequence '\-'
      matchReg = re.match('^\-\-eNB1Password=(.+)$', myArgv, re.IGNORECASE)
    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:183: SyntaxWarning: invalid escape sequence '\-'
      elif re.match('^\-\-eNB2Password=(.+)$', myArgv, re.IGNORECASE):
    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:184: SyntaxWarning: invalid escape sequence '\-'
      matchReg = re.match('^\-\-eNB2Password=(.+)$', myArgv, re.IGNORECASE)
    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:187: SyntaxWarning: invalid escape sequence '\-'
      elif re.match('^\-\-eNBSourceCodePath=(.+)$|^\-\-eNB[1-2]SourceCodePath=(.+)$', myArgv, re.IGNORECASE):
    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:188: SyntaxWarning: invalid escape sequence '\-'
      if re.match('^\-\-eNBSourceCodePath=(.+)$', myArgv, re.IGNORECASE):
    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:189: SyntaxWarning: invalid escape sequence '\-'
      matchReg = re.match('^\-\-eNBSourceCodePath=(.+)$', myArgv, re.IGNORECASE)
    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:195: SyntaxWarning: invalid escape sequence '\-'
      elif re.match('^\-\-eNB1SourceCodePath=(.+)$', myArgv, re.IGNORECASE):
    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:196: SyntaxWarning: invalid escape sequence '\-'
      matchReg = re.match('^\-\-eNB1SourceCodePath=(.+)$', myArgv, re.IGNORECASE)
    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:199: SyntaxWarning: invalid escape sequence '\-'
      elif re.match('^\-\-eNB2SourceCodePath=(.+)$', myArgv, re.IGNORECASE):
    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:200: SyntaxWarning: invalid escape sequence '\-'
      matchReg = re.match('^\-\-eNB2SourceCodePath=(.+)$', myArgv, re.IGNORECASE)
    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:203: SyntaxWarning: invalid escape sequence '\-'
      elif re.match('^\-\-EPCIPAddress=(.+)$', myArgv, re.IGNORECASE):
    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:205: SyntaxWarning: invalid escape sequence '\-'
      elif re.match('^\-\-EPCUserName=(.+)$', myArgv, re.IGNORECASE):
    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:207: SyntaxWarning: invalid escape sequence '\-'
      elif re.match('^\-\-EPCPassword=(.+)$', myArgv, re.IGNORECASE):
    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:209: SyntaxWarning: invalid escape sequence '\-'
      elif re.match('^\-\-EPCSourceCodePath=(.+)$', myArgv, re.IGNORECASE):
    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:211: SyntaxWarning: invalid escape sequence '\-'
      elif re.match('^\-\-EPCType=(.+)$', myArgv, re.IGNORECASE):
    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:213: SyntaxWarning: invalid escape sequence '\-'
      elif re.match('^\-\-EPCContainerPrefix=(.+)$', myArgv, re.IGNORECASE):
    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:215: SyntaxWarning: invalid escape sequence '\-'
      elif re.match('^\-\-XMLTestFile=(.+)$', myArgv, re.IGNORECASE):
    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:216: SyntaxWarning: invalid escape sequence '\-'
      matchReg = re.match('^\-\-XMLTestFile=(.+)$', myArgv, re.IGNORECASE)
    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:220: SyntaxWarning: invalid escape sequence '\-'
      elif re.match('^\-\-UEIPAddress=(.+)$', myArgv, re.IGNORECASE):
    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:221: SyntaxWarning: invalid escape sequence '\-'
      matchReg = re.match('^\-\-UEIPAddress=(.+)$', myArgv, re.IGNORECASE)
    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:223: SyntaxWarning: invalid escape sequence '\-'
      elif re.match('^\-\-UEUserName=(.+)$', myArgv, re.IGNORECASE):
    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:224: SyntaxWarning: invalid escape sequence '\-'
      matchReg = re.match('^\-\-UEUserName=(.+)$', myArgv, re.IGNORECASE)
    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:226: SyntaxWarning: invalid escape sequence '\-'
      elif re.match('^\-\-UEPassword=(.+)$', myArgv, re.IGNORECASE):
    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:227: SyntaxWarning: invalid escape sequence '\-'
      matchReg = re.match('^\-\-UEPassword=(.+)$', myArgv, re.IGNORECASE)
    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:229: SyntaxWarning: invalid escape sequence '\-'
      elif re.match('^\-\-UESourceCodePath=(.+)$', myArgv, re.IGNORECASE):
    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:230: SyntaxWarning: invalid escape sequence '\-'
      matchReg = re.match('^\-\-UESourceCodePath=(.+)$', myArgv, re.IGNORECASE)
    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:232: SyntaxWarning: invalid escape sequence '\-'
      elif re.match('^\-\-finalStatus=(.+)$', myArgv, re.IGNORECASE):
    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:233: SyntaxWarning: invalid escape sequence '\-'
      matchReg = re.match('^\-\-finalStatus=(.+)$', myArgv, re.IGNORECASE)
    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:237: SyntaxWarning: invalid escape sequence '\-'
      elif re.match('^\-\-OCUserName=(.+)$', myArgv, re.IGNORECASE):
    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:238: SyntaxWarning: invalid escape sequence '\-'
      matchReg = re.match('^\-\-OCUserName=(.+)$', myArgv, re.IGNORECASE)
    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:241: SyntaxWarning: invalid escape sequence '\-'
      elif re.match('^\-\-OCPassword=(.+)$', myArgv, re.IGNORECASE):
    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:242: SyntaxWarning: invalid escape sequence '\-'
      matchReg = re.match('^\-\-OCPassword=(.+)$', myArgv, re.IGNORECASE)
    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:245: SyntaxWarning: invalid escape sequence '\-'
      elif re.match('^\-\-OCProjectName=(.+)$', myArgv, re.IGNORECASE):
    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:246: SyntaxWarning: invalid escape sequence '\-'
      matchReg = re.match('^\-\-OCProjectName=(.+)$', myArgv, re.IGNORECASE)
    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:249: SyntaxWarning: invalid escape sequence '\-'
      elif re.match('^\-\-OCUrl=(.+)$', myArgv, re.IGNORECASE):
    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:250: SyntaxWarning: invalid escape sequence '\-'
      matchReg = re.match('^\-\-OCUrl=(.+)$', myArgv, re.IGNORECASE)
    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:252: SyntaxWarning: invalid escape sequence '\-'
      elif re.match('^\-\-OCRegistry=(.+)$', myArgv, re.IGNORECASE):
    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:253: SyntaxWarning: invalid escape sequence '\-'
      matchReg = re.match('^\-\-OCRegistry=(.+)$', myArgv, re.IGNORECASE)
    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:255: SyntaxWarning: invalid escape sequence '\-'
      elif re.match('^\-\-BuildId=(.+)$', myArgv, re.IGNORECASE):
    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:256: SyntaxWarning: invalid escape sequence '\-'
      matchReg = re.match('^\-\-BuildId=(.+)$', myArgv, re.IGNORECASE)
    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:258: SyntaxWarning: invalid escape sequence '\-'
      elif re.match('^\-\-FlexRicTag=(.+)$', myArgv, re.IGNORECASE):
    /home/richie/w/ci-refactor-core-handling/ci-scripts/args_parse.py:259: SyntaxWarning: invalid escape sequence '\-'
      matchReg = re.match('^\-\-FlexRicTag=(.+)$', myArgv, re.IGNORECASE)
2025-04-02 14:24:09 +02:00
Robert Schmidt 87f0f64fe7 Fix invalid escape sequence errors in cls_module.py
As parent. The second change has no escape sequence, but since it's also
a regex, mark it as raw for uniformity (it doesn't hurt either).

    ci-scripts/cls_module.py:165: SyntaxWarning: invalid escape sequence '\.'
      result = re.search('inet (?P<ip>[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+)', output.stdout)
2025-04-02 14:24:09 +02:00
Robert Schmidt 000ae3dfad Fix invalid escape sequence errors in cls_oaicitest.py
In all these cases, we have a regex whose escape sequences are not to be
evaluated in the string, but given verbatim to the regex engine. Hence,
mark them as raw strings.

    ci-scripts/cls_oaicitest.py:55: SyntaxWarning: invalid escape sequence '\s'
      result = re.search('-b\s*(?P<iperf_bandwidth>[0-9\.]+)(?P<unit>[KMG])', str(args))
    ci-scripts/cls_oaicitest.py:81: SyntaxWarning: invalid escape sequence '\s'
      result = re.search('-t\s*(?P<iperf_time>\d+)', str(args))
    ci-scripts/cls_oaicitest.py:373: SyntaxWarning: invalid escape sequence '\d'
      ping_time = re.findall("-c *(\d+)",str(self.ping_args))
    ci-scripts/cls_oaicitest.py:404: SyntaxWarning: invalid escape sequence '\.'
      result = re.search(', (?P<packetloss>[0-9\.]+)% packet loss, time [0-9\.]+ms', ping_output)
    ci-scripts/cls_oaicitest.py:409: SyntaxWarning: invalid escape sequence '\/'
      result = re.search('rtt min\/avg\/max\/mdev = (?P<rtt_min>[0-9\.]+)\/(?P<rtt_avg>[0-9\.]+)\/(?P<rtt_max>[0-9\.]+)\/[0-9\.]+ ms', ping_output)
    ci-scripts/cls_oaicitest.py:691: SyntaxWarning: invalid escape sequence '\d'
      result = re.search("MIB Information => ([a-zA-Z]{1,10}), ([a-zA-Z]{1,10}), NidCell (?P<nidcell>\d{1,3}), N_RB_DL (?P<n_rb_dl>\d{1,3}), PHICH DURATION (?P<phich_duration>\d), PHICH RESOURCE (?P<phich_resource>.{1,4}), TX_ANT (?P<tx_ant>\d)", str(line))
    ci-scripts/cls_oaicitest.py:724: SyntaxWarning: invalid escape sequence '\d'
      result = re.search("PLMN MCC (?P<mcc>\d{1,3}), MNC (?P<mnc>\d{1,3}), TAC", str(line))
    ci-scripts/cls_oaicitest.py:733: SyntaxWarning: invalid escape sequence '\w'
      result = re.search("Found (?P<operator>[\w,\s]{1,15}) \(name from internal table\)", str(line))
    ci-scripts/cls_oaicitest.py:749: SyntaxWarning: invalid escape sequence '\-'
      result = re.search("DL Carrier Frequency/ARFCN : \-*(?P<carrier_frequency>\d{1,15}/\d{1,4})", str(line))
    ci-scripts/cls_oaicitest.py:759: SyntaxWarning: invalid escape sequence '\d'
      result = re.search("AllowedMeasBandwidth : (?P<allowed_bandwidth>\d{1,7})", str(line))
2025-04-02 14:24:09 +02:00
Robert Schmidt 1037f4ddd9 Remove epc.py and use from python files
All core networks have been migrated to a file-based configuration.
References to epc.py are not needed anymore. Remove all unused XML
steps.
2025-04-02 14:24:09 +02:00
Robert Schmidt e37ffc63f1 Jenkinsfiles: clean up EPC options, not used anymore 2025-04-02 14:24:09 +02:00
Robert Schmidt b8020204a9 Remove LogCollectIperf option: not used 2025-04-02 14:24:09 +02:00
Robert Schmidt ed3f02bb64 Remove LogCollectPing option: not used 2025-04-02 14:24:09 +02:00
Robert Schmidt 96e20b1399 Remove LogCollectUE options: not used 2025-04-02 14:24:09 +02:00
Robert Schmidt 6172550492 CI: Remove %cn_ip%/hardcoded IPs from ping test options
With the server object to be passed into ping test, it's not necessary
to either hardcode an IP address or provide a template. Instead, always
fill the IP address, which simplies the Ping() code.

Verify that we don't have an IP address/hardcoded by throwing an
assertion.
2025-04-02 14:23:32 +02:00
Robert Schmidt 59575b9cde Handle PDU session resource setup for existing PDU session
38.413 section 8.2.1.4 says that if PDU session resource setup req
contains an existing PDU session, that one should be reported as failed.
That is rather complicated for us to do; simply reject all PDU sessions
and let the core deal with that.
2025-04-02 08:03:17 +02:00
Robert Schmidt 5625bc63d1 Add PDU session add log in E1 handler
bearer context modification and release print a message, so do the same
here as well.
2025-04-02 08:03:17 +02:00
Robert Schmidt 7e1c3e4213 Fix double-E1 bearer context setup req in E1 handler
If two PDU sessions are to be setup, the CU-CP sends two bearer context
setup requests. When running only the CU-UP, we inconditionally tried to
set up the CU-UP UE ID identifiers upon reception of the bearer context
setup request, leading to an assert. Check if the IDs are not already
set up, to avoid assertions in that case.
2025-04-02 08:03:03 +02:00
Robert Schmidt 98ac540d57 CI: use svr_id for Ping in RFsim-based tests
This is not really used as of now, because most IPs are hardcoded. See
one of the next commits for the use of this.

To make sure that we have the correct IP, there is some code that
verifies that a hardcoded IP and the CN IP would be the same.

Note: need two separate ci_infra.yaml entries, because
- for FlexRIC, the container name is different (is the tutorial CN)
- for RFsim5G E1, we don't have ext-dn => ping UPF
2025-03-31 16:38:13 +02:00
Robert Schmidt a51190a7c5 CI: deploy Magme-MME OAI EPC through CoreNetwork, use in Ping/Iperf
- call scripts for magma MME-based deployment of OAI 5GC in
  ci_infra.yaml
- implement the existing python code through scripts (which does the same)
- save the cql file in the repo, which was previously downloaded every
  time
- use for porcepix-cn4g and nano-cn4g (un)deployment, ping, perf, in XML
  files
2025-03-31 16:38:13 +02:00
Robert Schmidt 586e51227e CI: deploy docker-based OAI 5GC through CoreNetwork, use in Ping/Iperf
- issue OAI 5GC docker commands/scripts from ci_infra.yaml
- use for matix-cn5g (un)deployment, ping, iperf in all XML files
2025-03-31 16:38:13 +02:00
Robert Schmidt 5db684fc52 CI: deploy ltebox EPC through CoreNetwork, use in Ping/Iperf
- issue ltebox commands from ci_infra.yaml
- use for ltebox-nano, ltebox-nepes (un)deployment, ping, iperf in all
  relevant XML files
2025-03-31 16:38:13 +02:00
Robert Schmidt 8c4a55ab1c Remove unused/unsupported EPC types "OAI-Rel14-CUPS" and "OAI" 2025-03-31 16:38:13 +02:00
Robert Schmidt bd2b833c58 CI: deploy OpenShift-based 5GC through CoreNetwork, use in Ping/Iperf
- Use scripts to deploy OpenShift-based 5GC in ci_infra.yaml
- Use for oc-cn5g, oc-cn5g-20897, and oc-cn5g-20897-aerial2
  for (un)deployment, ping, iperf in relevant XML files
- Convert hardcoded IP addresses to %cn_ip%
2025-03-31 16:38:13 +02:00
Robert Schmidt 5f3f837021 CI: deploy sabox 5GC through cls_core.py, use in Ping/Iperf
- issue sabox commands from ci_infra.yaml
- use for sabox-nepes (un)deployment, ping, iperf in all XML files
2025-03-31 16:38:13 +02:00
Robert Schmidt 246ad2dda3 Add (Un)deployCoreNetwork in test framework 2025-03-31 16:38:13 +02:00
Robert Schmidt 6bd96f1b5f CI Ping, Iperf: remove UE/CN logging, is done automatically 2025-03-31 16:38:13 +02:00
Robert Schmidt d1f58d1430 Use new core network class in Iperf()/Iperf2_Unidir()/Ping()
Use the core network class to configure one "end" of these tests. This
will make the tests more generic and predictable, as they are explicitly
configured through two ci_infra.yaml "entities", instead of some
implicit "EPC" IP address given in configuration.

As of this commit, no XML passes this info into the framework, so no XML
step will work. As it is many changes, the following commits will add
the necessary info one by one.
2025-03-31 16:38:12 +02:00
Robert Schmidt dc694475d0 Add helper class for core network handling in CI
This adds a helper class to manage various core networks in the CI
testing framework. Specifically, it reads from a YAML file information
such as a node, (un-)deployment script (file), log collection
instructions, etc., in order to allow a common interface to be used to
deploy and undeploy various core network implementations.

This commit adds the class (in cls_corenetwork.py) as well as tests for
this class.
2025-03-31 16:38:12 +02:00
Robert Schmidt 321b1c4ce1 Increase maximum logging line length for in-memory log
- Increase the maximum logging line for print done through
  log_output_memory().
  The reason is that we hit this line length when printing some machine
  generated configuration (XML) through the M-plane.  Increase to make
  more of it visible.
- To limit the impact, only increase this locally in function
  log_output_memory(), and statically assert that it will never be
  larger than 64 kB.
  In other places, we use the old limit.
- Move the definition MAX_LOG_TOTAL to log.c, because it's only used
  there.
2025-03-31 12:16:18 +02:00
Robert Schmidt 703bf07c81 Remove EPC from InitializeNB()/TerminateeNB()
These two functions use the EPC class to potentially fill in
EPC/5GC-related information, or start a packet tracer (tshark). The only
pipeline that uses these functions is RAN-gNB-N300-Timing-Phytest-LDPC,
which does not use a core network. This functionality is not used, and
can therefore be removed.
2025-03-28 14:34:03 +01:00
Robert Schmidt f55c1a7a4f Correct UE interface for fembms test 2025-03-28 14:34:03 +01:00
Robert Schmidt c8534a0b51 CI: Correct Iperf2_Unidir(): only status code required 2025-03-28 14:34:01 +01:00
Robert Schmidt e5d8c25084 Add configurable infra for Iperf2_Unidir, test, fixes
Add a possibility to use an "infrastructure YAML file" to configure both
ends of the iperf2 call through a file.

Fix bugs in Iperf2: at least on my machine, iperf2 start time is logged
at 0.00 not 0.0, so update the regex to match both. Do not overwrite
results if the matched regex (otherwise, the result might be None at the
end) and suppress server output.

Add a unit test to test that this function actually works (on my
machine, with iperf v2.2.1), as well as a unit test for analysis.
2025-03-28 14:31:28 +01:00
Robert Schmidt ac6b296616 Iperf: Redirect server output to NULL
It's not needed/used anywhere, and some CI pipelines have a lot of
useless output.

On this occasion, also remove the unused nohup.
2025-03-28 14:31:19 +01:00
Robert Schmidt 1d479b2aa9 Merge branch 'integration_2025_w12' into 'develop'
Integration: `2025.w12`

Closes #920 and #915

See merge request oai/openairinterface5g!3325

* !3301 Remove unused NR UE PHY unit tests
* !3319 Disable EPS NAS security algorithms in 5GMM UE capabilities
* !3315 SCTP: avoid assert on partial SCTP message
* !3323 Fix long RACH regression
* !3311 Harmonize and update Frequency Range computation to the current values specified by the standard
* !3320 Miscelaneous improvements in PHY simulators
* !3286 Add support for ARM build pipeline
* !3308 remove ul_ch_estimates_time to save memory
* !3310 remove globale llr_layers to save memory, improve CPU, simplify code
* !3274 Add initial support for RedCap
* !3328 Fix ULSCH ID type to handle large max_nb_pusch values (ULSCH procedures)
* !3329 NR build improvements
* !3285 Update FHI 7.2 documentation, minor code cleanup
2025-03-26 08:42:03 +00:00
Robert Schmidt 9bbd252298 Merge remote-tracking branch 'origin/fhi-72-cleanup-doc' into integration_2025_w12 (!3285)
Update FHI 7.2 documentation, minor code cleanup

- remove some unused functions
- make one function static
- add callback function documentation
- provide some developer function
2025-03-25 12:49:20 +01:00
Robert Schmidt a73989b722 Provide clarification on multi-RU operation in O-RAN 7.2 tutorial 2025-03-25 12:05:56 +01:00
Robert Schmidt 078c0845f8 Add developer documentation for fhi_72 driver 2025-03-25 12:05:56 +01:00
Robert Schmidt 6b4954f2b6 Provide some documentation for xran callbacks 2025-03-25 12:05:56 +01:00
Robert Schmidt 77cdb05754 Merge remote-tracking branch 'origin/CMakeLists_improv' into integration_2025_w12 (!3329)
NR build improvements

This MR is an attempt to improve compilation of NR softmodems by
removing some of NR-LTE cross-compilation (at the cost of a small dummy
file for nr-softmodem) and one small gNB-NRUE cross-compilation.
2025-03-25 10:32:16 +01:00
Robert Schmidt 88872f18c7 Merge remote-tracking branch 'origin/fix-int-type-ulsch-id' into integration_2025_w12 (!3328)
Fix ULSCH ID type to handle large max_nb_pusch values (ULSCH procedures)

The ULSCH_id variable is currently defined as uint8_t, which limits its
range to 0-255. However, gNB->max_nb_pusch can exceed this range
depending on the configuration (buffer_ul_slots and
MAX_MOBILES_PER_GNB).  This can lead to incorrect behavior or undefined
results when max_nb_pusch is larger than 255. This commit changes the
type of ULSCH_id from uint8_t to int to accommodate larger values of
max_nb_pusch.

The issue was observed when running the OAI gNB with MAX_MOBILES_PER_GNB
set to 64 UEs. The root cause was traced back to the changes to UL
processing introduced in !2952.
2025-03-25 10:31:24 +01:00
Robert Schmidt e23a4271c8 Make first_call_set bool, write log with logging system
Change to bool for clarity. The log message would sometimes only show up
at the end, which is misleading; use the logging module, which
harmonizes log statements and should make this appear immediately.
2025-03-24 16:02:13 +01:00
Robert Schmidt 64a346b4b8 Update warning that E release support will be removed
We still do not handle RUs with MTUs of 1500 properly in F release;
therefore, for the close future, we cannot remove support for E release.
Also, it "promises" this for January, which is in the past already.
Update to keep the warning logical.
2025-03-24 16:02:13 +01:00
Robert Schmidt af2c6b76c7 Remove unused callbacks, function declaration, make function static 2025-03-24 16:01:41 +01:00
Robert Schmidt 492247054f Merge remote-tracking branch 'origin/SIB1_RedCap' into integration_2025_w12 (!3274)
Add initial support for RedCap

- RedCap SIB1-v17-IEs parameters implemented in SIB1
- Create an configuration file for RedCap devices
2025-03-24 15:03:41 +01:00
Robert Schmidt 1be24d48cd Merge remote-tracking branch 'origin/remove-globale-ul_ch_estimates' into integration_2025_w12 (!3310)
remove globale llr_layers to save memory, improve CPU, simplify code
2025-03-24 15:03:20 +01:00
Robert Schmidt e4cb39d4af Merge remote-tracking branch 'origin/remove-global-ul_ch_estimates_time' into integration_2025_w12 (!3308)
remove ul_ch_estimates_time to save memory

remove ul_ch_estimates_time that saves 50MB memory to access in RAM, and
make better quality scope data passing (no race)
2025-03-24 15:02:29 +01:00
Robert Schmidt bbae3b24ad Merge remote-tracking branch 'origin/arm-build-pipeline' into integration_2025_w12 (!3286)
Add support for ARM build pipeline

Modify the existing python code to be able to build images where the
image tag can be prepended with a prefix, here arm_. This is preparatory
work to create the ARM build image pipeline, and reuse the existing
internal registry on porcepix to have x86 and ARM images coexist.

Fix various bugs in the build system to allow to build on a system with
as many cores as gracehopper.

Also, fix two programs (usim, nvram) to work correctly under ARM.
2025-03-24 14:45:12 +01:00
Robert Schmidt 99ecbad530 Merge remote-tracking branch 'origin/add_sigint_handler_nr_physimulators' into integration_2025_w12 (!3320)
Miscelaneous improvements in PHY simulators

1: Add a SIGINT handler to NR PHY simulators

When using T2 virtual functions, it is important to properly stop DPDK
and free the device.  Otherwise the virtual functions may be blocked and
a restart of the admin application is necessary.

If not carefully done, such kind of operation can lead to losing cores
to DPDK processes that cannot be stopped.  This can lead to situations
where the machine is locked and can only be unlocked by a power cycle.
Always properly stopping DPDK and freeing the device reduces the risk of
such situation to happen.

Up to now, SIGINT was shutting down the PHY simulators without freeing
the device.  This commit adds a signal handler to handle SIGINT in a way
that allow to properly free the device.

This feature is added to all the NR PHY simulators whether they use T2
or not in case it is now or later of any use.

2: Make nr_ulschsim functional

There were two issues that were making nr_ulschsim non functional:

1. The channel output was not copied to decoder input (llr array)
2. The test on decoding successful outcome was wrong

The result was that nr_ulschsim was succesfull whatever were its
arguments.  This changeset fixes the two issues so that nr_ulschsim is
now functional.
2025-03-24 14:43:57 +01:00
Robert Schmidt cd6e83e1fc Merge remote-tracking branch 'origin/Harmonize_frequency_range' into integration_2025_w12 (!3311)
Harmonize and update Frequency Range computation to the current values
specified by the standard

3GPP TS 38.101-1 Version 19.0.0 Table 5.1-1: Definition of frequency
ranges

- FR1 from 410 MHz to 7125 MHz
- FR2 from 24.25 GHz to 71 GHz
2025-03-24 14:43:15 +01:00
Robert Schmidt 3a30954e56 Merge remote-tracking branch 'origin/fix-longrach-reg' into integration_2025_w12 (!3323)
Fix long RACH regression

Add some missing functionality that was not merged in !3088.
2025-03-24 14:42:18 +01:00
Robert Schmidt 5b07283003 Add ARM build pipeline to RAN-Container-Parent and documentation 2025-03-24 11:43:44 +01:00
Robert Schmidt 4ff8cf6c80 Push ARM build images to registry for arm_ prefix 2025-03-24 09:19:43 +01:00
Robert Schmidt 01d48c1d82 Add pull image with tag prefix and XML
After the parent commit, the registry might contain prefixed images.
This commit adds the functionality to pull such prefixed image. Since we
rename the pulled image (to have a consistent name, from whichever
registry we might pull), remove the prefix as well so that it can be
used with other CI functionality (remove image, use in test, ...)

Examples for renaming:
- pull from internal_registry for x86
  internal_registry/oai-gnb:branchA => oai-ci/oai-gnb:branchA
- pull from internal registry for ARM with "arm_" prefix
  internal_registry/oai-gnb:arm_branchA => oai-ci/oai-gnb:branchA
- pull from x86 other registry (e.g., openshift)
  openshift/namespace/oai-gnb:branchA => oai-ci/oai-gnb:branchA
2025-03-24 09:19:30 +01:00
Robert Schmidt d67d5793ce Add push image with tag prefix
The only currently viable way to push ARM images to our registry is to
use a custom tag prefix. Modify the python test code to specify such a
tag, and default to "" (no prefix).
2025-03-24 09:19:30 +01:00