1. 08 Jan, 2025 1 commit
  2. 02 Jan, 2025 11 commits
  3. 21 Dec, 2024 1 commit
    • Robert Schmidt's avatar
      Merge branch 'integration_2024_w51' into 'develop' · f9bff3d6
      Robert Schmidt authored
      Integration: `2024.w51`
      
      Closes #879
      
      See merge request oai/openairinterface5g!3180
      
      * !3155 UL BLER vs SNR plot
      * !3170 Replace AssertFatal with static_assert for cmdline arguments check
      * !3172 A script to run CI tests locally.
      * !3151 Optimize PHY_ofdm_mod CYCLIC_PREFIX in case of incidentally aligned pointers
      * !3164 Fix and refactor channel average
      * !3154 Fix TPMI for UL retransmissions
      f9bff3d6
  4. 20 Dec, 2024 6 commits
    • Jaroslava Fiedlerova's avatar
      Merge remote-tracking branch 'origin/develop-fix-tpmi' into integration_2024_w51 (!3154) · a82b1450
      Jaroslava Fiedlerova authored
      Fix TPMI for UL retransmissions
      
      If the ul_ri of srs_feedback changes between a UL transmission and a
      retransmission, we use the TPMI of transmission.
      
      Closes #879
      
      Assertion ((*nrOfLayers==1 && srs_feedback->tpmi <= 1) || (*nrOfLayers==2 && srs_feedback->tpmi == 0)) failed!
      In compute_precoding_information() /home/user/openairinterface5g/openair2/LAYER2/NR_MAC_COMMON/nr_mac_common.c:2896
      TPMI 1 is invalid!
      a82b1450
    • Jaroslava Fiedlerova's avatar
      Merge remote-tracking branch 'origin/fix_and_refactor_channel_average' into... · 40584b5b
      Jaroslava Fiedlerova authored
      Merge remote-tracking branch 'origin/fix_and_refactor_channel_average' into integration_2024_w51 (!3164)
      
      Fix and refactor channel average
      
      - Fixing missing init average variable with zero and refactor the code #86b11ab7
      Fixes just the missing avg1=0
      - Refactor the code to a common SSE/AVX2 inline function using also horizontal add.
      - We use int64_t result from now on.
      - We decided to fix length to x12 instead of old x9 openair1/PHY/NR_UE_TRANSPORT/dci_nr.c
      
      //compute average channel_level on each (TX,RX) antenna pair
      void nr_pdcch_channel_level(int32_t rx_size,
                                  c16_t dl_ch_estimates_ext[][rx_size],
                                  NR_DL_FRAME_PARMS *frame_parms,
                                  int32_t *avg,
                                  int symbol,
                                  int nb_rb)
      {
        for (int aarx = 0; aarx < frame_parms->nb_antennas_rx; aarx++) {
          //clear average level
          simde__m128i avg128P = simde_mm_setzero_si128();
          simde__m128i *dl_ch128 = (simde__m128i *)&dl_ch_estimates_ext[aarx][symbol * nb_rb * 12];
      
          for (int rb = 0; rb < (nb_rb * 12) >> 2; rb++) {     <-------------- here
            avg128P = simde_mm_add_epi32(avg128P, simde_mm_madd_epi16(dl_ch128[rb], dl_ch128[rb]));
          }
      
          DevAssert(nb_rb);
          avg[aarx] = 0;
          for (int i = 0; i < 4; i++)
            avg[aarx] += ((int32_t *)&avg128P)[i] / (nb_rb * 12); <-------------- and here
          LOG_DDD("Channel level : %d\n",avg[aarx]);
        }
      }
      40584b5b
    • Jaroslava Fiedlerova's avatar
      Merge remote-tracking branch 'origin/opt-cp-insertion' into integration_2024_w51 (!3151) · 90057df3
      Jaroslava Fiedlerova authored
      Optimize PHY_ofdm_mod CYCLIC_PREFIX in case of incidentally aligned pointers
      
      It seems that the cyclic prefix is in most cases a multiple of 512 samples.
      This means that in most cases the idft output pointer is already aligned and
      there is no need to perform an extra memcpy. This saves the memcpy time in
      most cyclic prefix insertion cases.
      90057df3
    • Jaroslava Fiedlerova's avatar
      Merge remote-tracking branch 'origin/local-ci-test' into integration_2024_w51 (!3172) · cd570f63
      Jaroslava Fiedlerova authored
      A script to run CI tests locally.
      
      Added ./run_locally.sh script. The script takes one argument being the testcase
      that one wants to run. The testcase is run locally. This means that some
      testcases that utilize hardware resources will not run. However most if not all
      rfsimulator testcases should run as in CI.
      
      To this end, the CI python scripting framework was updated:
      - override  and <srv_node> elements from XML so all commands are executed locally
      in case --local flag is passed
      - Allow RemoteCmd class to run on localhost
      cd570f63
    • Jaroslava Fiedlerova's avatar
      Merge remote-tracking branch 'origin/static-assert-for-args' into integration_2024_w51 (!3170) · 5947d776
      Jaroslava Fiedlerova authored
      Replace AssertFatal with static_assert for cmdline arguments check
      
      Replace AssertFatal with static_assert for command line arguments definition
      length check. The static assert will not allow the code to compile in case
      the size is incorrect.
      
      This could save some time in the future since its easy to forget to extend
      CMDLINE_PARAMS_CHECK_DESC.
      5947d776
    • Jaroslava Fiedlerova's avatar
      Merge remote-tracking branch 'origin/bler-vs-snr-plot' into integration_2024_w51 (!3155) · 057b2ad5
      Jaroslava Fiedlerova authored
      UL BLER vs SNR plot
      
      Added a tool for generating UL BLER vs SNR from nr_ulsim runs.
      057b2ad5
  5. 19 Dec, 2024 6 commits
  6. 18 Dec, 2024 3 commits
  7. 17 Dec, 2024 4 commits
    • Bartosz Podrygajlo's avatar
      Change alignment of temporary IDFT buffer in PHY_ofdm_mod · 55b5e04e
      Bartosz Podrygajlo authored
      Alignment of temporary IDFT buffer was changed to 64 bytes. This is in preparation
      for possible use of different IDFT implementation which could use AVX-512, requiring
      64-byte alignment.
      55b5e04e
    • Bartosz Podrygajlo's avatar
      f5014696
    • rmagueta's avatar
      If the ul_ri of srs_feedback changes between a UL 1st transmission and a... · c66a625d
      rmagueta authored
      If the ul_ri of srs_feedback changes between a UL 1st transmission and a retransmission, we use the TPMI of 1st transmission
      c66a625d
    • Robert Schmidt's avatar
      Merge branch 'integration_2024_w50' into 'develop' · 5bd2eb86
      Robert Schmidt authored
      Integration: `2024.w50`
      
      Closes #753
      
      See merge request oai/openairinterface5g!3166
      
      * !3159 CI: Add FHI7.2 test with Metanoia RU
      * !3111 Enable USRP Tx thread in nrUE
      * !3144 UE data race fix
      * !3149 Fix several issues in ulsch_mmse_2layers
      * !3158 GTP: use direct call instead of ITTI
      * !3160 FHI-72: initialize mask, find correct libxran
      * !3019 SIB19 utilization on UE
      * !3162 Add Rocky 9.5 to list of distributions
      * !3163 NGAP-Initial Context Setup Failure
      * !2952 New LDPC coding library interface for decoding and encoding complete slots in one call to the library
      * !3125 Add support for O1 in O-DU via telnet
      * !3161 Cmd line option for sync in frames for iqrecorder
      5bd2eb86
  8. 16 Dec, 2024 8 commits
    • Robert Schmidt's avatar
      Merge remote-tracking branch 'origin/ue-iqrecord-fix' into integration_2024_w50 (!3161) · d4ca4201
      Robert Schmidt authored
      Cmd line option for sync in frames for iqrecorder
      
      B200 with high clock drift will go out of sync within 280ms which was
      the default duration to sync in with iqrecorder. Now this value can be
      specified via cmd line so the user can change it according to needs.
      d4ca4201
    • Robert Schmidt's avatar
      Merge remote-tracking branch 'origin/telnet-o1' into integration_2024_w50 (!3125) · 0d4c7364
      Robert Schmidt authored
      Add support for O1 in O-DU via telnet
      
      This change set adds a simple telnet interface to nr-softmodem. Together
      with oai/o1-adapter>, this implements a part of the O1 interface, for
      the DU only. Currently supported uses cases:
      
      - some stats are send to an SMO (such as bandwidth, PLMN, frequency, ...)
      - re-configuration of bandwidth, frequency
      - stop/start of the softmodem, while keeping the CU and L2 running
      - the o1-adapter implements two alarms, load overload and base station
        offline, using this interface.
      
      It is possible to use the telnet interface by itself (i.e., "o1" without
      the o1-adapter). To do this, compile with telnet support (./build_oai
      --build-lib telnetsrv) and start the nr-softmodem with O1 module
      (./nr-softmodem --telnetsrv --telnetsrv.shrmod o1). You can then do the
      following:
      
      - see some statistics as exposed to o1-adapter, in JSON: echo o1 stats | nc 127.0.0.1 9090 && echo
      - stop the L1: echo o1 stop_modem | nc 127.0.0.1 9090 && echo
      - reconfigure bandwidth: e.g., echo o1 bwconfig 20 | nc 127.0.0.1 9090 && echo (also supported: 40, 60, 100)
      - start the L1: echo o1 start_modem | nc 127.0.0.1 9090 && echo
      
      Note that the reconfiguration works with split-8 radios. Notably, it
      does not work yet out-of-the-box with 7.2 radios, because they have to
      be manually reconfigured on bandwith/frequency switch. The planned
      M-plane should allow such use case, though.
      
      To help with the above, this branch also includes fixes (for more
      information, refer to the corresponding commits):
      
      - fixes for stopping the L1, notably stop threads in right order, stop
        thread pool of RU
      - collect some general MAC metrics, fix some bugs in MAC
      - fix problems in F1AP gNB-DU configuration update message, update test
      - fix some problems in RRC
      0d4c7364
    • sagar arora's avatar
      Add telnet (O1) support modules in gNB image · 59e6a33d
      sagar arora authored
      59e6a33d
    • Robert Schmidt's avatar
      Do not free inside gnb_du_configuration_update_f1ap() · bcba876f
      Robert Schmidt authored
      The consumer of this function just passes a pointer to something to be
      sent. This function should not free this memory, it's simply not it's
      task. This is the same bug as above in
      "CU_handle_gNB_DU_CONFIGURATION_UPDATE(): don't free the message of RRC"
      bcba876f
    • Robert Schmidt's avatar
      70a746a4
    • Ronak Kanthaliya's avatar
      c71c9de9
    • Robert Schmidt's avatar
      Add basic O1 telnet module · aba506e5
      Robert Schmidt authored
      This adds a basic telnet module to support the O1 interface at the DU,
      to be used together with the oai/o1-adapter>. Concretely, this first
      version supports to
      
      - read/modify cell parameters
      - stop/start the L1
      aba506e5
    • Robert Schmidt's avatar
      Implement start_L1L2() · 68ae3ea1
      Robert Schmidt authored
      Implements the re-start of the L1 after it has been stopped through
      stop_L1(). It takes into account some changes, such as bandwidth, or
      frequency, when restarting the L1. To this end, it also triggers a
      gNB-DU configuration update message on each restart to inform the CU
      about any changes in the DU. FDD has not been tested.
      68ae3ea1