Commit Graph
29004 Commits
Author SHA1 Message Date
Jaroslava Fiedlerova a4f9a7a6d4 CI: tuning gNB parameters of SABOX-B200 2025-04-04 11:55:34 +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 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
luis_pereira87 b6e06e8f47 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-02 21:50:39 +01: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
francescomani 3c571d0e7a license missing in common_sim.h 2025-04-01 19:15:08 +02:00
francescomani 331325b0f3 move init_delay_table to nr_phy_common 2025-04-01 19:15:08 +02:00
francescomani c6ccda2998 remove unused definitions in defs_nr_common 2025-04-01 19:15:08 +02:00
francescomani 606048cb00 move simde functions from nr_common to nr_phy_common 2025-04-01 19:15:08 +02:00
francescomani cea4412b3b do not include LTE defs_common into 5G code 2025-04-01 18:53:09 +02:00
francescomani 0a95bbcfd3 move NR_NUMBER_OF_SYMBOLS_PER_SLOT into an NR file 2025-04-01 18:47:04 +02:00
Thomas Schlichter 0d01efa00b NR UE: don't activate HARQ process for PUCCH transmission if feedback is disabled
Currently we still activated the DL HARQ process for PUCCH transmission,
and only at the time of the scheduled PUCCH transmission, we actually skip sending the ACK.
This is not only unnecessary, it is at least misleading and strange that
DL HARQ processes can be reused in the meantime, even though they are active...

Therefore simply don't activate the DL HARQ process by skipping the call to set_harq_status() if feedback for it is disabled.
2025-04-01 10:00:46 +00:00
francescomani 3ec3c88b9e compute assertion on feedback time only if feedback is enabled 2025-04-01 09:58:28 +00:00
Jaroslava Fiedlerova fca1971a2d Merge branch 'integration_2025_w13' into 'develop'
Integration: `2025.w13`

Closes #923, #924, #928, and #925

See merge request oai/openairinterface5g!3345

* !3300 Allow RSRP report handling in phy-test mode
* !3318 Improve handling of some pointers causing potential segfault
* !3321 DLSCH scheduler LOGs assertion prevention in case of HARQ disabled
* !3335 Other compilation improvements
* !3338 prevent access to NULL pointer in RELEASE_IE_FROMLIST
* !3337 Fix for wrong NSA init at UE
* !3339 fix NTN regression by correctly setting cellBarredNTN_r17 for NTN band again
* !3340 NR UE: fix nr_pbch_channel_estimation()
* !3260 Shared memory realtime radio simulation
* !3341 rfsimulator: apply deadlock detection only if more than one client is connected
* !3343 K-offset updated with configured sub carrier spacing
* !3331 Add documentation for Foxconn RU
* !3216 FHI72: Management plane support
* !3295 Fix SRS report TLV unpack
2025-04-01 09:36:38 +00:00
Jaroslava Fiedlerova 90bdcaafb5 Merge remote-tracking branch 'origin/Aerial_srs_unpack_fix' into integration_2025_w13 (!3295)
Fix SRS report TLV unpack

Changes the SRS unpacking to not expect padding to be present in the buffer when
working with Aerial, with which the report TLVs are not padded to the nearest
32-bit boundary. This issue was found when using a UE with 1 SRS port, which
causes the TLV to not have a length divisible by 4. Also adds a function to pull
X amount of bytes into a uint32_t, which is used to process the last 4 byte
block of the TLV, only pulling the bytes which are not padding. Completed the
SRS.indication dumping procedure to print out the report TLV. Changed the
SRS.indication unitary test to fill the last 4 byte block of the report TLV
appropriately according to the length ( which ensures the padding bytes are set
to 0 )
2025-03-31 20:06:08 +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
Jaroslava Fiedlerova c2179d87bf Merge remote-tracking branch 'origin/fhi72-mplane' into integration_2025_w13 (!3216)
FHI72: Management plane support

At the moment, tested with Benetel 550 and 650 RUs FW v1.2.2
- support for multiple RUs
- RPCs implemented: <connect>, <subscribe>, <get>, <supervision-watchdog-reset>,
  <edit-config>, <validate>, <commit>, <disconnect>
- read PTP sync status from operational datastore xml
- get vendor name, and for xran store RU MAC, MTU and IQ bitwidth and PRACH
  offset, and transfer this info
- store interface name, low-level-tx/rx-endpoint names, tx/rx-carrier names,...,
  from operational datastore xml
- add reference gNB/DU config files with M-plane support
- update FHI readme
2025-03-31 15:29:58 +02:00
Jaroslava Fiedlerova 7a278e746f Merge remote-tracking branch 'origin/foxconn-doc' into integration_2025_w13 (!3331)
Add documentation for Foxconn RU

This MR adds documentation for using the Foxconn RU with OAI, as it piques the
interest of some in the community. Note that this RU is not continuously tested
with OAI L1. Additionally, we have observed throughput degradation in OAI
versions beyond tag 2024.w30, and the issue is under investigation. For now, we
are providing documentation based on what we have tested in our lab.
2025-03-31 15:28:12 +02:00
Jaroslava Fiedlerova 0c5e7b439c Merge remote-tracking branch 'origin/NTN_Koffset_updated' into integration_2025_w13 (!3343)
K-offset updated with configured sub carrier spacing

According to 38.331 , cell specific K-OFFSET provided in SIB19 is provided in
number of slots as per 15Khz SCS Koffset before being applied, needs to be
updated to the slots according to the configured subcarrier spacing.
2025-03-31 15:25:41 +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
Teodora 7beb88425f Use [HW] logging instead of [PHY] or [NR_PHY] 2025-03-31 12:16:18 +02:00
Teodora a4479a2e65 Add M-plane tutorial 2025-03-31 12:16:18 +02:00
Teodora bf0a0aa06b Clarification on delay profile 2025-03-31 12:16:18 +02:00
Teodora 75d5b31f4a Add Benetel650 8x8 reference DU config file for M-plane 2025-03-31 12:16:18 +02:00
Teodora c7dffd416a Add Benetel550 4x4 reference gNB config file for M-plane 2025-03-31 12:16:18 +02:00
Teodora d5fceb8e1f Parsing RU M-plane info to xran 2025-03-31 12:16:18 +02:00