An error occurred fetching the project authors.
  1. 18 Jul, 2024 3 commits
  2. 13 Jul, 2024 1 commit
  3. 03 Jun, 2024 2 commits
    • 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
      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
  4. 30 May, 2024 1 commit
    • Sakthivel Velumani's avatar
      Use command line option for sell search · ca93e684
      Sakthivel Velumani authored
      There is already a command line option called 'ue-scan-carrier' which
      seemed to blindly look for SSB by changing the center frequency by
      +/-100Hz if the previous attempt failed. This is probably copied from
      LTE and is not suitable for NR. This commit uses this option to either
      1. Perform initial sync on one GSCN if the SSB position if known
      2. Or scan the all GSCN (if the SSB postion is unknown)
      
      Also, the following is done for re-synchronization
      1. Scan all GSCN when UE comes back from IDLE state
      2. Scan one GSCN when UE does re-estabishment
      
      Removed dependency of lte-softmodem.h in nr-softmodem.c.
      CONFIG_HLP_UESCAN is declared also in lte-softmodem.h.
      ca93e684
  5. 15 Apr, 2024 1 commit
  6. 09 Apr, 2024 1 commit
  7. 08 Mar, 2024 2 commits
  8. 07 Mar, 2024 1 commit
  9. 04 Mar, 2024 1 commit
  10. 20 Feb, 2024 1 commit
  11. 08 Feb, 2024 1 commit
  12. 25 Jan, 2024 1 commit
  13. 17 Jan, 2024 1 commit
  14. 30 Nov, 2023 3 commits
    • Robert Schmidt's avatar
      deac1802
    • Robert Schmidt's avatar
      Start E2 agent only if configuration present · 7c6c4fc7
      Robert Schmidt authored
      This commit introduces an additional (implicit) option that signals if
      the E2 agent is to be activated or not. When reading the configuration,
      we now check if all fields are set, and activate the E2 agent only if
      this is the case. If not, we only print a warning and start the gNB
      without the agent.
      
      Note that previously, if not all fields are set correctly, the gNB
      stopped.
      
      To implement this behavior, it is necessary to change the defaults of
      the RIC IP and the directory for SMs to a (non-NULL) default value.
      Otherwise, the configuration system would not consider the field to be
      set to the default, and wrongly assumes the field is set, even though it
      is not; at least, this change is necessary to make config_isparamset()
      return NULL if the configuration is not set.
      7c6c4fc7
    • Robert Schmidt's avatar
      Introduce separate gNB-CU-UP ID in configuration · 79c920cd
      Robert Schmidt authored
      3GPP has the concept of a gNB-CU-UP ID and a (separate) gNB ID (for gNB,
      CU-CP). This commit introduces the gNB-CU-UP as a separate ID that has to be
      set in the configuration file when running as a CU-UP. For the
      CU/monolithic gNB, it is optional (but needs to be the same as the
      gNB-ID if specified).
      
      The CU-UP ID is necessary, as some entities, e.g., the e2 agent, need to
      signal both IDs, e.g., to reconcile a CU-CP and (multiple) CU-UP(s)
      belonging together.
      79c920cd
  15. 10 Nov, 2023 2 commits
  16. 27 Oct, 2023 2 commits
  17. 25 Oct, 2023 4 commits
    • Robert Schmidt's avatar
    • Robert Schmidt's avatar
      Store E1 Setup Request at RRC · b26dcc1e
      Robert Schmidt authored
      b26dcc1e
    • Robert Schmidt's avatar
      Split out E1AP net config from Setup Request · a23984c7
      Robert Schmidt authored
      The E1AP Setup Request contained the network configuration (IP address,
      ports) as well as the actual E1AP Setup Request application data
      (Supported PLMNs, ...). This has the drawbacks that
      - The E1AP Setup Request is stored to retrieve IP addresses in the E1AP
        module, which is confusing as the Setup Request, per standard, has no IP
        info
      - The CU-CP received an E1 Setup Request for configuration during start
        up, but it did not actually receive such Setup Request, but merely the
        IP configuration to set up the socket
      
      This commit splits the E1AP Setup Request into a "real" Setup Request
      for application data, and creates a new type e1ap_net_config_t to group
      all IP configuration data. Further, a new ITTI message type
      E1AP_REGISTER_REQ is introduced to group both types. What happens is
      - RCconfig_NR_CU_E1() reads both E1AP application-level data and IP
        configuration, as previously
      - The data is sent to the CU-CP. It discards the E1AP Setup Request
        data, and only uses the network configuration to set up the socket
      - The data is sent to the CU-UP. It uses the network configuration to
        connect to the CU-CP, and then sends the E1AP Setup Request to the
        CU-CP.
      
      Currently, the CU-CP still stores the Setup Request locally, which will
      be changed in the next commit to send it to the RRC.
      a23984c7
    • Robert Schmidt's avatar
      6eba6678
  18. 04 Oct, 2023 1 commit
  19. 02 Oct, 2023 1 commit
  20. 22 Sep, 2023 2 commits
  21. 21 Sep, 2023 1 commit
  22. 18 Aug, 2023 1 commit
  23. 07 Jul, 2023 3 commits
    • mir's avatar
    • mir's avatar
      Add basic E2 agent through git submodule · 70ad480a
      mir authored
      - Add E2 agent that leverages FlexRIC e2ap library
      - Add documentation in openair2/E2AP/README.md
      - Currently, statistics exported are random
      70ad480a
    • Robert Schmidt's avatar
      Move radio CMakeLists.txt to subdirectory · ddf549b1
      Robert Schmidt authored
      - move following radios: AW2S, BladeRF, IRIS, LMSSDR, RFsimulator, USRP
      - move following transports: Ethernet, benetel4g, benetel5g
      - for each: create independent cmake variable to switch compilation
        on/off, in order: OAI_AW2S, OAI_BLADERF, OAI_IRIS, OAI_LMSSDR,
        OAI_SIMU, OAI_USRP, OAI_ETHERNET, OAI_BENETEL4G, OAI_BENETEL5G
      - Remove RF_BOARD variable, allows to compile multiple boards at once
      - where applicable: remove USERSPACE/LIB in path, i.e., move files up to
        directories, as all are userspace libraries
      
      Note that with the above, it is now mandatory to enable a radio
      implementation before compiling it, e.g., for USRP:
      
      ./build_oai -w USRP
      cmake .. -DOAI_USRP=ON && ninja oai_usrpdevif
      ddf549b1
  24. 28 Mar, 2023 1 commit
    • Robert Schmidt's avatar
      Reimplement itti_wait_tasks_end() to allow custom wait handlers · a6486909
      Robert Schmidt authored
      In the UE, we wish to handle ^C in the UE to send a message before
      terminating, so we allow custom wait handlers to implement such
      functionality. Use itti_wait_tasks_unblock() to unblock
      itti_wait_tasks_end().
      
      Also, implement itti_wait_tasks_end() using semaphores, as signals are
      not async-signal-safe (and therefore should not be used in a signal
      handler).
      a6486909
  25. 27 Mar, 2023 2 commits