1. 19 Feb, 2025 1 commit
  2. 18 Feb, 2025 2 commits
    • Robert Schmidt's avatar
      Merge branch 'integration_2025_w07' into 'develop' · 6d9c2c35
      Robert Schmidt authored
      Integration: `2025.w07`
      
      Closes #812, #901, #904, #881, and #819
      
      See merge request oai/openairinterface5g!3258
      
      * !3055 Dynamic PDCCH aggregation level
      * !3176 Refactor and extend NAS Registration Request
      * !3256 Add check on force_local in custom_command CI handling
      * !3257 Bugfix in gNB modulated DCI buffer size
      * !3249 Improvements in TDD configuration
      * !3194 fix NTN LEO scenarios
      * !3200 FHI72: remove polling, fix memory leak
      * !3127 Optimizations of PDSCH Resource Mapping in nr_dlsch.c/nr_modulation.c
      * !3252 \[E2 agent\] Multi RC REPORT service styles support
      6d9c2c35
    • Francesco Mani's avatar
      Fix to receive SIB1 in re-establishment · 87c83f72
      Francesco Mani authored
      During re-establishment we still have a valid SIB1 so we don't decode it
      again. Then the UE never moves out of UE_RECEIVING_SIB, making
      re-establishment impossible. This fixes addresses this.
      
      Fixes: 11b87d87 ("NR UE: RRC layer now explicitly tells MAC layer
      when the RA procedure can be started)"
      87c83f72
  3. 17 Feb, 2025 8 commits
    • Robert Schmidt's avatar
      Merge remote-tracking branch 'origin/rc-report-service-fix' into integration_2025_w07 (!3252) · 1114ee3a
      Robert Schmidt authored
      [E2 agent] Multi RC REPORT service styles support
      
      Issue: unforeseen capability of having the same RAN Parameter ID across
      different REPORT service styles.
      
      Solution: keep only RAN Parameter IDs from REPORT styles that are
      supported by OAI. Implement sequence array where each element is
      combination of RIC request ID (unique per RIC SUBSCRIPTION) and Event
      Trigger Definition. This way we can properly check further conditions
      for a certain RAN Parameter ID. (e.g. if xApp is subscribed to RRC
      Connected and/or other modes, for "RRC State Changed To" RAN Parameter
      ID)
      
      Next steps: for new RAN Parameter ID, add new sequence array.
      1114ee3a
    • Robert Schmidt's avatar
      Merge remote-tracking branch 'origin/resource_mapping_optim' into integration_2025_w07 (!3127) · 651ef3da
      Robert Schmidt authored
      Optimizations of PDSCH Resource Mapping in nr_dlsch.c/nr_modulation.c
      
      These changes add SIMD optimizations for Neon/AVX2/AVX512 in the PDSCH
      transmit path. The timing improvements are listed here based on the
      
          nr_dlsim -e25 -R273 -b273 -s30 -x "layers" -y 4 -z 4 -P
      
      benchmark with "layers" 2,3,4 and comparing "PHY proc tx":
      
      273 PRBS, mcs25, 64QAM
      
      peafowl (gcc11,AMD EPYC 9374F)
      
          2-layer, 4 TX : 431 us (develop 565 us)
          3-layer, 4 TX : 692 us (develop 849 us)
          4-layer, 4 TX : 963 us (develop 1172 us)
      
      stupix (gcc10, Xeon Gold 6354)
      
          2-layer, 4 TX : 568 us (develop 652 us)
          3-layer, 4 TX : 901 us (develop 1030 us)
          4-layer, 4 TX : 1250 us (develop 1396 us)
      
      matix (gcc14, Ryzen 9 PRO 7945)
      
          2-layer, 4 TX : 317 us (develop 505 us)
          3-layer, 4 TX : 538 us (develop 779 us)
          4-layer, 4 TX : 767 us (develop 1233 us)
      651ef3da
    • Laurent THOMAS's avatar
    • Teodora's avatar
      Multi RC REPORT service styles support · 9e2c889d
      Teodora authored
      Issue: unforeseen capability of having the same RAN Parameter ID across different
      REPORT service styles.
      
      Solution: keep only RAN Parameter IDs from REPORT styles that are supported by OAI.
      Implement sequence array where each element is combination of RIC request ID (unique per RIC SUBSCRIPTION)
      and Event Trigger Definition. This way we can properly check further conditions for a certain RAN Parameter ID.
      (e.g. if xApp is subscribed to RRC Connected and/or other modes, for "RRC State Changed To" RAN Parameter ID)
      
      Next steps: for new RAN Parameter ID, add new sequence array.
      Co-authored-by: default avatarBischoff <tano.bischoff@hhi.fraunhofer.de>
      Co-authored-by: default avatarShrinish Donde <shrinish.donde@hhi.fraunhofer.de>
      Co-authored-by: default avatarKhanh Toan Pham <khanh.toan.pham@hhi.fraunhofer.de>
      9e2c889d
    • Robert Schmidt's avatar
      Merge remote-tracking branch 'origin/fhi72-no-polling' into integration_2025_w07 (!3200) · f0d6d42a
      Robert Schmidt authored
      FHI72: remove polling, fix memory leak
      
      - FHI72 used polling to track the next slot. This is not necessary, a
        simple queue does the job and allows to save one core that was
        previously at 100%
      - Remove a workaround to avoid a memory leak (fixes #812); allows to
        also run RFsim/USRP/otehr radios when compiling for FHI72
      f0d6d42a
    • Robert Schmidt's avatar
      Merge remote-tracking branch 'origin/fix_ntn_leo' into integration_2025_w07 (!3194) · 7d574ffc
      Robert Schmidt authored
      fix NTN LEO scenarios
      
      - gNB: add support for NTN parameter ta-CommonDrift-r17
      - NR UE: fix application of NTN TA information
      - NR UE: add command line parameter ntn-initial-time-drift to compensate
        time drift during initial sync
      - NR UE: fix writeTimestamp inconsistencies
      - NR UE: add MAC state UE_RECEIVING_SIB ensuring to start RA only after
        successfully receiving SIBs
      - rfsimulator: update earth radius for LEO simulation to match UE
        position in ue.conf file
      - update conf files for NTN LEO scenario
      - update description how to run NTN scenarios in RUNMODEM.md
      - fix: ta-Common is a round-trip-time, not a one-way delay
      - NR UE: simplify calculation of next_tx_slot_and_frame by moving up
        assignment of duration_rx_to_tx
      - cellbarredNTN indicates notbarred in SIB1 if NTN access is available
      - Removed b66 NTN and enabled B254 NTN conf file in CI
      - NR UE: RRC layer now explicitly tells MAC layer when the RA procedure
        can be started
      - move NTN LEO config to band 254 and update doc/RUNMODEM.md
      
      Closes #901
      7d574ffc
    • Laurent THOMAS's avatar
      fix simde lacking refix · ce7bdf71
      Laurent THOMAS authored
      ce7bdf71
    • Jaroslava Fiedlerova's avatar
      fix in nr_dlsch.c, dmrs_case2b · 34970d38
      Jaroslava Fiedlerova authored
      34970d38
  4. 16 Feb, 2025 1 commit
  5. 14 Feb, 2025 18 commits
  6. 13 Feb, 2025 10 commits
    • Bartosz Podrygajlo's avatar
      Add PDCCH UESS aggregation level configuration option · 095b7919
      Bartosz Podrygajlo authored
      Added uess_agg_levels configuration option which changes the number of PDCCH
      candidates per aggregation level.
      095b7919
    • Bartosz Podrygajlo's avatar
      Dynamic PDCCH aggregation level · 16f028db
      Bartosz Podrygajlo authored
      The aggregation level search order for PDCCH candidates is modified:
       - the search starts from desired_agg_level_index, which is a value from 0 to 4
         proportial to pdcch_cl_adjust.
       - pdcch_cl_adjust is a value between 0 and 1 that indicates PDCCH channel quality
         by averaging HARQ DTX rate. A value of 0 means perfect channel, a value o 1 means
         impaired channel.
      16f028db
    • francescomani's avatar
      fix in gnb mod_dci buffer size · 2bdb1826
      francescomani authored
      2bdb1826
    • Robert Schmidt's avatar
      Reduce indentation, add comment · e1d7306a
      Robert Schmidt authored
      Reduce one level of indentation, and explain why we wait for
      physide_dl_tti callback.
      e1d7306a
    • Robert Schmidt's avatar
      FHI72: Cleanup: Remove first_rx_set · 6706c939
      Robert Schmidt authored
      first_rx_set is polling-specific: it makes the polling loop wait to only
      check the frame/slot counter once we set it for the first time. However,
      that is equivalent to checking the frame/slot directly, which will also
      be 0 in the beginning.
      6706c939
    • Robert Schmidt's avatar
      FHI72: cleanup: remove first_read_set · 04201845
      Robert Schmidt authored
      first_read_set seems to have the function of making frame/slot time
      advance only if we started to read the samples in
      xran_fh_rx_read_slot(). I interpret that as "only advance the time if
      the gNB is reading from xran", which does not make sense to me, because
      xran advances the time anyway. Also, polling would not notice, and
      no-polling would simply warn about double messages. So the outcome is
      likely the same, whether first_read_set is set or not.
      
      I checked in multiple CI runs; it happens that first_read_set is always
      set already when oai_xran_fh_rx_callback() is called anyway.
      04201845
    • Robert Schmidt's avatar
      FHI72: make polling configurable in xran_fh_rx_read_slot(), default off · fd773068
      Robert Schmidt authored
      xran_fh_rx_read_slot() uses polling (a loop over cnt++) to wait for the
      next frame/slot. The reasons I have been told is "it does not work
      differently", or "there are real-time problems". None of those seem to
      be true; by default disable polling, and use the queue instead.
      
      It is possible to enable polling with the cmake option
      OAI_FHI72_USE_POLLING=ON. Documentation has been updated to inform about
      this change.
      fd773068
    • Robert Schmidt's avatar
      Remove FHI72 memory workaround · 595a80a3
      Robert Schmidt authored
      The queue L1_rx_out was in place to keep RX/TX processing relatively
      "close" to each other (in terms of time, since in RFsim, they might
      advance faster than realtime; see also parent commit). This lead to a
      memory leak in radios that do not use ru->feprx (no front-end processing
      for RX, e.g., PRACH), as the code to read the L1_rx_out messages was
      inside a block of if (ru->feprx). Move it out so that the queue is
      always read and messages are freed to eliminate the memory leak, and
      remove the workaround for FHI72 to avoid this memory leak.
      
      This also allows to run RFsim when compiling FHI72, which was not
      possible before this commit.
      
      Closes: #812
      595a80a3
    • Robert Schmidt's avatar
      Refactor code to wait for free RX job · 99c849c2
      Robert Schmidt authored
      Some radios (e.g., RFsim) can run faster. A mechanism has been put in
      place to keep RX/TX frame/slot numbers not too far from each other.
      Refactor in a separate function with documentation to make this clearer.
      99c849c2
    • Robert Schmidt's avatar
      540d918a