1. 26 Mar, 2025 1 commit
    • Robert Schmidt's avatar
      Merge branch 'integration_2025_w12' into 'develop' · 1d479b2a
      Robert Schmidt authored
      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
      1d479b2a
  2. 25 Mar, 2025 8 commits
  3. 24 Mar, 2025 24 commits
    • Robert Schmidt's avatar
      Make first_call_set bool, write log with logging system · e23a4271
      Robert Schmidt authored
      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.
      e23a4271
    • Robert Schmidt's avatar
      Update warning that E release support will be removed · 64a346b4
      Robert Schmidt authored
      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.
      64a346b4
    • Robert Schmidt's avatar
    • francescomani's avatar
      d62e202a
    • francescomani's avatar
      7843003a
    • Robert Schmidt's avatar
      Merge remote-tracking branch 'origin/SIB1_RedCap' into integration_2025_w12 (!3274) · 49224705
      Robert Schmidt authored
      Add initial support for RedCap
      
      - RedCap SIB1-v17-IEs parameters implemented in SIB1
      - Create an configuration file for RedCap devices
      49224705
    • 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
    • Guido Casati's avatar
      Fix ULSCH ID type to handle large max_nb_pusch values (ULSCH procedures) · 5a59793b
      Guido Casati authored
      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 !3166 (!2952).
      5a59793b
    • 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
  4. 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
  5. 20 Mar, 2025 1 commit