1. 24 Mar, 2025 17 commits
    • Robert Schmidt's avatar
      Merge remote-tracking branch 'origin/remove-globale-ul_ch_estimates' into... · 1be24d48
      Robert Schmidt authored
      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
      1be24d48
    • Robert Schmidt's avatar
      Merge remote-tracking branch 'origin/remove-global-ul_ch_estimates_time' into... · e4cb39d4
      Robert Schmidt authored
      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)
      e4cb39d4
    • Robert Schmidt's avatar
      Merge remote-tracking branch 'origin/arm-build-pipeline' into integration_2025_w12 (!3286) · bbae3b24
      Robert Schmidt authored
      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.
      bbae3b24
    • Robert Schmidt's avatar
      Merge remote-tracking branch 'origin/add_sigint_handler_nr_physimulators' into... · 99ecbad5
      Robert Schmidt authored
      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.
      99ecbad5
    • Robert Schmidt's avatar
      Merge remote-tracking branch 'origin/Harmonize_frequency_range' into integration_2025_w12 (!3311) · cd6e83e1
      Robert Schmidt authored
      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
      cd6e83e1
    • Robert Schmidt's avatar
      Merge remote-tracking branch 'origin/fix-longrach-reg' into integration_2025_w12 (!3323) · 3a30954e
      Robert Schmidt authored
      Fix long RACH regression
      
      Add some missing functionality that was not merged in !3088.
      3a30954e
    • Robert Schmidt's avatar
    • Romain Beurdouche's avatar
    • Romain Beurdouche's avatar
      feat(nr_unitary_common): Add banner and apply clang-format to... · a2d13f75
      Romain Beurdouche authored
      feat(nr_unitary_common): Add banner and apply clang-format to openair1/SIMULATION/NR_PHY/nr_unitary_common.c
      a2d13f75
    • Romain Beurdouche's avatar
      fix(NR PHY simulators): Naming coherence & NR PHY simulators common functions object · e68123e0
      Romain Beurdouche authored
      1. Change the name of `openair1/SIMULATION/NR_PHY/nr_dummy_functions.c` into `openair1/SIMULATION/NR_PHY/nr_unitary_common.c` for naming coherence after adding the SIGINT handler which is not a dummy function.
      2. Instead of being built once for every NR PHY simulators, the common functions source file is built once as an object and linked to each simulator.
      e68123e0
    • Robert Schmidt's avatar
      4ff8cf6c
    • Robert Schmidt's avatar
      Add pull image with tag prefix and XML · 01d48c1d
      Robert Schmidt authored
      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
      01d48c1d
    • Robert Schmidt's avatar
      Add push image with tag prefix · d67d5793
      Robert Schmidt authored
      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).
      d67d5793
    • Robert Schmidt's avatar
      Add ARM-specific image-build and XML · 3e823b25
      Robert Schmidt authored
      After the preceding commits, it's now possible to build images on ARM.
      Add a specific "native_arm" build kind to only build what we need as of
      now (do not only call it "arm", as that would match the kind
      "build_cross_arm64").
      
      Add the corresponding XML. Pushing of images is disabled, as this does
      not work as of now.
      3e823b25
    • Robert Schmidt's avatar
      Match nvipc.zip through glob · 3f5181d5
      Robert Schmidt authored
      The (existing) Aerial pipeline on devkit uses an older version of nvipc,
      which is upgraded on gracehopper. Use a glob to match them equally,
      which also aligns this code with the corresponding Dockerfile, which
      already uses that glob.
      3f5181d5
    • Robert Schmidt's avatar
      getopt_long() returns int · 9d796fb3
      Robert Schmidt authored
      Use the right type for variable, as getopt_long() returns an int. Using
      char is not a problem on x86, but prevents the return of -1 in case of
      parameter reading end. This led to infinite loops on ARM, which is fixed
      through the variable type change. An additional counter measure (showing
      the problem) would be to print and error out when reading an undefined
      parameter, which is added here as well.
      
      This has been forgotten when making the same change for getopt() in
      cf985460 ("getopt() returns int").
      9d796fb3
    • Robert Schmidt's avatar
      Avoid x86-specific Dockerfiles/enable ARM · 677a904b
      Robert Schmidt authored
      Dockerfiles hardcoded one copy operation to x86; generalize to capture
      ARM as well. Since the target directory cannot have any globs, we need
      to manually check the right directory, then move the file.
      
      Note that this is only necessary since we are forced to switch the
      compiler, as Ubuntu's default gcc-11 does not work with FlexRIC. When
      upgrading to Ubuntu 24, these lines should disappear and asan be
      installed as normal. See commit 94497435 ("Upgrade CI images to
      Ubuntu 22").
      677a904b
  2. 21 Mar, 2025 6 commits
    • Raghavendra Dinavahi's avatar
      Initialising dl,ul freq in psbchsim · 2a2ebfe8
      Raghavendra Dinavahi authored
      2a2ebfe8
    • Robert Schmidt's avatar
      Merge remote-tracking branch 'origin/issue-920-fix-crash-sctp' into integration_2025_w12 (!3315) · f6e3ea48
      Robert Schmidt authored
      SCTP: avoid assert on partial SCTP message
      
      The receive buffer for SCTP, before this branch, is 8192. If a message
      is larger, we receive only a partial message, which makes the gNB abort.
      Remove the abort to not be susceptible to a message intended to crash
      the gNB.
      
      also, increase the receive buffer to be more forgiving for large messages
      
      Closes: #920
      f6e3ea48
    • Robert Schmidt's avatar
      Merge remote-tracking branch 'origin/issue-915' into integration_2025_w12 (!3319) · 9c0eaefb
      Robert Schmidt authored
      Disable EPS NAS security algorithms in 5GMM UE capabilities
      
      OAI nrUE is not supporting multiple RATs, therefore the EPS NAS security
      algorithms bit in 5GMM UE capabilities is not relevant.
      
      This bit is only relevant if N26 interface is supported by the AMF and
      the UE is supporting S1 mode, meaning that the UE is connected to a 4G
      LTE network,  via the S1 interface (eNB - MME/SGW). When the UE performs
      an inter-system change from N1 mode to S1 mode, it transitions from 5GC
      to the EPC: at network level this happens over the N26 interface (which
      connects the 5G AMF to the 4G MME).
      
      In this transition is where the EPS security context becomes relevant:
      the UE does not know about the N26 interface, however is the AMF that
      can tell the UE, e.g. during the registration procedure, if the UE sets
      the S1 mode bit to "S1 mode supported" in the 5GMM capability IE, and
      the AMF supports the N26 interface, the AMF will include the Selected
      EPS NAS security algorithms IE in the SECURITY MODE COMMAND message,
      which is what happened in #915.
      
      Closes: #915
      9c0eaefb
    • Romain Beurdouche's avatar
      feat(NR PHY simulators): Add a SIGINT handler to other NR PHY simulators · 4971b1e6
      Romain Beurdouche authored
      Even though the remaining NR PHY simulators do not use the T2, we may still feature them with a SIGINT handler for proper termination on SIGINT and for a matter of completeness.
      The remaining NR PHY simulators are:
      * nr_pbchsim
      * nr_prachsim
      * nr_psbchsim
      * nr_pucchsim
      4971b1e6
    • Romain Beurdouche's avatar
      fix(nr_ulschsim): make nr_ulschsim functional · 0033da56
      Romain Beurdouche authored
      There was 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 commit fixes the two issues so that nr_ulschsim is now functional.
      0033da56
    • Romain Beurdouche's avatar
      feat(NR PHY simulators): add a SIGINT handler to some PHY simulators · 1fdbf290
      Romain Beurdouche authored
      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.
      
      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 first added to the PHY simulators that use the T2 which are `nr_ulsim`, `nr_dlsim`, `nr_ulschsim` and `nr_dlschsim`.
      1fdbf290
  3. 20 Mar, 2025 6 commits
  4. 19 Mar, 2025 1 commit
  5. 18 Mar, 2025 9 commits
    • Robert Schmidt's avatar
      SCTP: avoid assert on partial SCTP message · ec60cc95
      Robert Schmidt authored
      The receive buffer for SCTP, as of this commit, is 8192. If a message is
      larger, we receive only a partial message, which makes the gNB abort.
      Remove the abort to not be susceptible to a message intended to crash
      the gNB.
      
      Closes: #920
      ec60cc95
    • Jaroslava Fiedlerova's avatar
      Merge branch 'integration_2025_w11' into 'develop' · 82fb9fcc
      Jaroslava Fiedlerova authored
      Integration: `2025.w11`
      
      Closes #848
      
      See merge request oai/openairinterface5g!3309
      
      * !3306 Add a new CI label: nrUE
      * !3303 remove wrong assertion for B4 PRACH format
      * !3296 fix(nrLDPC_decoder): fix numIter increment
      * !3150 Rework of NR UE RA procedures
      * !3305 CI: Fix timeout for OC Deployments
      * !3307 Add CI UE test for RA with C-RNTI
      * !3271 Handle changing N_TA_offset correctly
      * !3313 Small fix for jenkins message formatting
      82fb9fcc
    • Jaroslava Fiedlerova's avatar
      Merge remote-tracking branch 'origin/fix-jenkins-message-formatting' into... · c4551fec
      Jaroslava Fiedlerova authored
      Merge remote-tracking branch 'origin/fix-jenkins-message-formatting' into integration_2025_w11 (!3313)
      
      Small fix for jenkins message formatting
      c4551fec
    • Bartosz Podrygajlo's avatar
      f0c92630
    • Robert Schmidt's avatar
      Merge branch 'nr-ue-ci' into 'develop' · 11d83dd4
      Robert Schmidt authored
      Add a new CI label: nrUE
      
      Added handling of the nrUE label which limits the amount of CI tests to run. Only tests that use nr-uesoftmodem or phy simulators are triggered.
      
      See merge request oai/openairinterface5g!3306
      11d83dd4
    • Robert Schmidt's avatar
      Use absolute path for copy · 8cbfa7b7
      Robert Schmidt authored
      Local_Cmd forces use to use absolute paths for copy operations (because
      that makes more clear where files are being copied). Use the absolute
      path to avoid the corresponding exception.
      8cbfa7b7
    • Robert Schmidt's avatar
      Correctly express dependency on LOG headers · 252c9db2
      Robert Schmidt authored
      Various libraries in this commit use the log headers (that is the
      direct dependency). The log headers in turn include the T headers
      (transitive dependency). Building on gracehopper with its many cores
      triggers the build of these libraries before T headers have been
      generated.
      
      To resolve this and force the generation of T headers before building
      the libraries, correctly express their dependency on the log headers,
      which in turn ensures that T headers have been generated.
      
      Depending on log_headers is preferrable because it is really the headers
      that we depend on. Using instead e.g., utils, would trigger build of
      source files, that we don't need for these libraries.  This commit is
      part of a larger cleanup that I have that is not merged yet. Follow-up
      work will generalize this in the repo, and ensure that every(!) library
      builds.
      
      We have to add CONFIG_LIB, as the log module has a direct dependency
      onto the configuration module (it uses it). I am not sure why this was
      not relevant before.
      252c9db2
    • Robert Schmidt's avatar
      Add correct T_headers dependencies · 4ed801dc
      Robert Schmidt authored
      T_headers needs to ensure that T headers have actually been created.
      This can be forced by depending on generate_T.
      4ed801dc
    • Robert Schmidt's avatar
      Use getConnection() to allow build on localhost · f7014993
      Robert Schmidt authored
      Depending on the passed IP addr/host name, getConnection() will select
      the right LocalCmd/RemoteCmd, which is better than hardcoded.
      f7014993
  6. 17 Mar, 2025 1 commit
    • Bartosz Podrygajlo's avatar
      Add a new CI label: nrUE · 2f097278
      Bartosz Podrygajlo authored
      Added handling of the nrUE label which limits the amount of CI tests to run.
      Only tests that use nr-uesoftmodem or phy simulators are triggered.
      2f097278