1. 03 Jun, 2024 20 commits
    • Robert Schmidt's avatar
      Use capabilities in B200-based docker-compose · 9dd52c9d
      Robert Schmidt authored
      - sa_b200_gnb
      - sa_aw2s_gnb
      - sa_e1_b200
      - sa_f1_b200
      - sa_sc_b200_gnb
      - nsa_b200_gnb
      
      By default, the container has no access to /dev. Mount all USB devices
      into the container to ease usability: by default, USB devices are
      mounted under /dev/bus/usb using the bus ID, which is different on every
      system and might change on reboots or with (un-)plugging USB devices.
      Hence, mount all USB; the process has not many capabilities anyway, and
      thus might not do much harm.
      
      A proper solution would be to write a udev rule to mount a device using
      its vendor and product ID, and only mount the corresponding device into
      the container.
      9dd52c9d
    • Robert Schmidt's avatar
      Use capabilities in N310-based docker compose · ffa5ba40
      Robert Schmidt authored
      - SA 2x2 tests on 60 and 100 MHz
      - N310-based OAI gNB + UE
      
      Give SYS_NICE and IPC_LOCK for performance. On the UE side, give
      NET_ADMIN (for interface bringup) and NET_RAW (for ping an TUN).
      ffa5ba40
    • Robert Schmidt's avatar
      Use capabilities in 5G RFsim docker-compose · 9f8fad86
      Robert Schmidt authored
      - 5g rfsim fdd_phytest
      - 5g rfsimulator
      - 5g fdd rfsim
      - 5g f1 rfsim
      - 5g l2sim
      - 5g rfsim 24prb
      - 5g rfsim 2x2
      - 5g rfsim accelleran
      - 5g rfsim e1
      - 5g rfsim fr2 32prb
      - 5g rfsim u0
      - Update doc
      
      We give NET_ADMIN (for interface bringup) and NET_RAW (for ping).
      IPC_LOCK and SYS_NICE are intentionally left out to verify the
      softmodems run without.
      9f8fad86
    • Robert Schmidt's avatar
      Make failed TUN socket operation non-fatal · 9b3ab10c
      Robert Schmidt authored
      It might be desirable to run the UE without superuser rights. More
      concretely, it might run without NET_ADMIN. In this case, various
      corresponding operations on the TUN socket fd might fail. In this
      commit,
      
      - improve error reports to make them more clear
      - do not automatically exit(1), but return from the function to ensure
        continuity of the softmodem
      9b3ab10c
    • Robert Schmidt's avatar
      8dc29be0
    • Robert Schmidt's avatar
      VNF: use threadCreate() to create P7 thread · 973d1393
      Robert Schmidt authored
      Use common threadCreate() function to create P7 thread with high(er)
      priority. Remove old calls to set_priority(), as this is already done
      with threadCreate().
      973d1393
    • Robert Schmidt's avatar
      PNF: use threadCreate() to create P7 thread · 811721bb
      Robert Schmidt authored
      Use common threadCreate() function to create P7 thread with high(er)
      priority. Remove old calls to set_priority(), as this is already done
      with threadCreate().
      811721bb
    • Robert Schmidt's avatar
      Aerial: use threadCreate() to create P7 thread · 5ae7d668
      Robert Schmidt authored
      Use common threadCreate() function to create P7 thread with high(er)
      priority. Remove old calls to set_priority(), as this is already done
      with threadCreate().
      5ae7d668
    • Robert Schmidt's avatar
      nr-uesoftmodem: don't set priority, check for SYS_NICE · 37f3f0b6
      Robert Schmidt authored
      The main thread of nr-uesoftmodem (executing main()) is mostly working;
      it is thus not necessary to set high priority. Instead, the threads
      created with threadCreate() will receive higher priority, if possible
      (as determined by the availability of SYS_NICE capability).
      
      To inform if SYS_NICE is not present, print a warning in main().
      37f3f0b6
    • Robert Schmidt's avatar
      threadCreate(): check for and handle missing SYS_NICE · 66bf27bc
      Robert Schmidt authored
      SYS_NICE is a capability that allows a process to set thread affinity
      and priority, among other things (see capabilities(7) for more info).
      
      In this commit, add a function that allows to determine if the process
      has this capability, and try to change the thread affinity and priority,
      if requested. If the capability does not exist, the function will simply
      not attempt to change the corresponding thread attributes.
      
      To determine if the process has SYS_NICE, libcap can be used. However,
      it might not be installed by default. To avoid requiring another
      dependency, if we detect that libcap is not present, use a workaround by
      try to set a real-time scheduling policy; if it's present, or can be
      changed, we assume that the process has SYS_NICE (and clean up, if
      relevant).
      
      Simplify reading of capabilities
      66bf27bc
    • Robert Schmidt's avatar
      RFsim: don't shell out to improve kernel socket buffer sizes, teach the user instead · 6a127848
      Robert Schmidt authored
      A later commit in this series adds performance tuning tips, which
      includes the call made in RFsim until this commit.
      6a127848
    • Robert Schmidt's avatar
    • Robert Schmidt's avatar
      Remove set_latency_target(), add lock_memory_to_ram() · 6b37d183
      Robert Schmidt authored
      set_latency_target() attempts to set keep "low latency" by
      - writing a specific latency to /dev/cpu_dma_latency
      - setting manually the minimum CPU processor frequency to be the maximum
      
      There is no functionality to undo this after stopping the softmodem(s),
      and most users are probably not even aware that OAI does this. It is
      generally preferable to set this beforehand using a governor or by
      disabling sleep states (as outlined in the tutorial, and in a follow-up
      commit in the performance tuning docs).
      
      The previous mlockall() call, to lock memory to RAM, is retained in a
      new function. There were additional mlockall() calls, which have been
      replaced with lock_memory_to_ram(), where necessary.
      6b37d183
    • Robert Schmidt's avatar
      Remove Check if fedora and inside kernel · a25b209e
      Robert Schmidt authored
      It's completely unclear what this is supposed to do.
      a25b209e
    • Robert Schmidt's avatar
      config module: print clear error when config file does not exist · 7a8b2fe4
      Robert Schmidt authored
      Print a clear error if a config file does not exist (unclear previously,
      when the user would get a confusing, unspecific, "file I/O error" on
      line 0)
      
      I tried to free the memory that had been allocated at that point, and
      verified that using the address sanitizer. Nevertheless, the function
      does too much, and is too complicated for refactoring.
      7a8b2fe4
    • Robert Schmidt's avatar
      config module: make it less verbose · b9fd5a6f
      Robert Schmidt authored
      b9fd5a6f
    • Robert Schmidt's avatar
      NR L1: demote log to info · 006b68fa
      Robert Schmidt authored
      006b68fa
    • Robert Schmidt's avatar
      55728a98
    • Robert Schmidt's avatar
      bfd51995
    • Robert Schmidt's avatar
      BuildUnitTests: need to use ran-base:ci-temp if changes in ran-base · 37421c3f
      Robert Schmidt authored
      Use correct baseTag for Unit Tests build in execution:
      - if build_helper or othe files changed, which would trigger rebuild of
        ran-base, use the corresponding ci-temp tag
      - use that tag consistently afterwards
      37421c3f
  2. 31 May, 2024 1 commit
  3. 30 May, 2024 12 commits
  4. 29 May, 2024 5 commits
  5. 28 May, 2024 1 commit
  6. 27 May, 2024 1 commit
    • Robert Schmidt's avatar
      Merge branch 'integration_2024_w21c' into 'develop' · 168b172f
      Robert Schmidt authored
      Integration: `2024.w21`
      
      See merge request oai/openairinterface5g!2757
      
      * !2733 Remove duplicated function to reverse N bits
      * !2712 rfsimulator: add support to simulate a long propagation delay
      * !2695 improve polar init and polar readability
      * !2709 Fix cmdline configmodule in phy simulators
      * !2756 remove some enb dependencies in NR files
      * !2687 bug fix ue UL payload filling randomly done in retransmissions (pointer not set)
      * !2543 power/PHR normalizations for deltaMCS power adaptation
      * !2719 Refactor LC handling at MAC
      * !2736 Fix debug for ongoing transactions
      * !2747 Fix aerial memory leak
      * !2761 Use timeout command to kill hanging iperf3
      * !2752 fix-dci11-type0-bitmap-setting
      * !2759 Fix invalid MSG2 HARQ feedback attempt and remove accumulated_delta_PUCCH field from UE FAPI IF
      * !2740 bugfix/cleanup: remove uint8_t to encode size plus some cleanup
      * !2760 fix 5G NR SA FDD configs for 24 and 25 PRBs
      * !2520 Documentation on coding style, workflow, and review instructions
      168b172f