Commit Graph
28435 Commits
Author SHA1 Message Date
francescomani 7bb585cc0e further cleanup of PRACH config file parameters in GENERIC-LTE-EPC 2025-01-03 11:35:41 +01:00
Raphael Defosseux 1b9fcc9858 fix(ci): adding leading lines and increasing visibility for building errors
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2025-01-03 09:42:49 +01:00
Raphael Defosseux 70933edd19 fix(docker): typo on BUILD_OPTIONS
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
2025-01-03 09:40:59 +01:00
Bartosz Podrygajlo 88cde50d4c Refactor PUSCH per-symbol threadpool utilization
A small refactor for PUSCH per-symbol processing. This fixes a possible
issue in case num_pusch_symbols_per_thread is not 1
2025-01-03 08:11:35 +01:00
Bartosz Podrygajlo 75162adf68 Improve assert in completed_task_ans()
This assert checks if the structure is correctly initialized. The structure
is one-time use so the assert is valid, but the value of the atomic was added
to the output to improve debugging.
2025-01-03 08:11:35 +01:00
francescomani a9c72222dd minor: adding two logs for debugging 2025-01-02 11:01:38 +01:00
francescomani 0cd0ec7a67 MAC beam allocation for ULSCH 2025-01-02 11:01:38 +01:00
francescomani 5e930b0b72 MAC beam allocation for DLSCH 2025-01-02 11:01:38 +01:00
francescomani f235b249ba remove FR1 in preprocessor name 2025-01-02 11:01:38 +01:00
francescomani 912fec55ef MAC beam allocation for scheduling request 2025-01-02 11:01:38 +01:00
francescomani 8de9d006f5 MAC beam allocation for SRS 2025-01-02 11:01:38 +01:00
francescomani 2940ee5eda MAC beam allocation for periodic CSI measurements 2025-01-02 11:01:38 +01:00
francescomani dc9a2cf1ad simple beam switching procedure based on strongest reported SSB 2025-01-02 11:01:38 +01:00
francescomani 19c667fa80 remove unused tci handling function 2025-01-02 11:01:38 +01:00
francescomani 2d2a92dd12 improvements in handling CSI report for RSRP 2025-01-02 11:01:38 +01:00
francescomani 70a6434168 remove unused input from get_beam_index function 2025-01-02 11:01:38 +01:00
Robert Schmidt f9bff3d6a0 Merge branch 'integration_2024_w51' into 'develop'
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
2024-12-21 14:36:39 +00:00
Bartosz Podrygajlo 9a3fbacfac Fix data race between processSlotTX and clean_UE_harq function 2024-12-20 19:45:42 +01:00
Bartosz Podrygajlo 1df5327f0c Update NR UE threading documentation
Include the newly added UL Actor in the NR UE threading documentation.
2024-12-20 19:43:18 +01:00
Bartosz Podrygajlo f3e60a1417 Use UL actor for processSlotTx
Use UL actor instead of Thread pool for processSlotTX.
2024-12-20 16:28:34 +01:00
Jaroslava Fiedlerova a82b1450e4 Merge remote-tracking branch 'origin/develop-fix-tpmi' into integration_2024_w51 (!3154)
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!
2024-12-20 15:59:39 +01:00
Jaroslava Fiedlerova 40584b5b32 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]);
  }
}
2024-12-20 15:26:57 +01:00
Jaroslava Fiedlerova 90057df3cc Merge remote-tracking branch 'origin/opt-cp-insertion' into integration_2024_w51 (!3151)
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.
2024-12-20 15:24:45 +01:00
Jaroslava Fiedlerova cd570f632f Merge remote-tracking branch 'origin/local-ci-test' into integration_2024_w51 (!3172)
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
2024-12-20 09:11:24 +01:00
Jaroslava Fiedlerova 5947d77609 Merge remote-tracking branch 'origin/static-assert-for-args' into integration_2024_w51 (!3170)
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.
2024-12-20 09:10:17 +01:00
Jaroslava Fiedlerova 057b2ad552 Merge remote-tracking branch 'origin/bler-vs-snr-plot' into integration_2024_w51 (!3155)
UL BLER vs SNR plot

Added a tool for generating UL BLER vs SNR from nr_ulsim runs.
2024-12-20 09:09:14 +01:00
Bartosz Podrygajlo 650b2dc6eb 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, adding --local flag which changes
the script behavior as follows:
 - overrides <node> and <srv_node> XML elements to 'localhost' so all commands are executed locally
 - Avoid running image pull, image cleanup and workspace creation steps of the scripts:
   user is responsible for that
2024-12-19 16:55:38 +01:00
francescomani 7b499f5081 print UE statistics also in FDD 2024-12-19 14:46:53 +01:00
francescomani f7bb1367f5 print UE statistics only in connected mode 2024-12-19 14:31:35 +01:00
Jaroslava Fiedlerova 3306a01c57 CI: change frequency for timing and B200-SABOX pipelines 2024-12-19 12:02:50 +01:00
Robert Schmidt d820c187fc OPT: Replace AssertFatal with static_assert
See parent commit
2024-12-19 03:26:27 +01:00
Robert Schmidt 2f43b343b6 gnb_config: Replace AssertFatal with static_assert
See parent commit
2024-12-19 03:25:04 +01:00
Robert Schmidt f02bd8b453 enb_config: Replace AssertFatal with static_assert, align length
See parent commit
2024-12-19 03:24:37 +01:00
Robert Schmidt 5473ee904f E1AP: Replace AssertFatal with static_assert
See parent commit
2024-12-19 03:22:30 +01:00
Robert Schmidt b4395406f0 softmodem-common: Replace AssertFatal with static_assert
See also parent commit
2024-12-19 03:12:37 +01:00
Bartosz Podrygajlo acae0dc011 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.
2024-12-18 09:18:48 +01:00
Matthias Mehlhose 5ae69ce484 refactor: average 64 bit calculations with shift and internal division (SSE and AVX2) 2024-12-18 07:36:22 +00:00
Matthias Mehlhose 276a17902e fix: UE average 2024-12-18 07:36:22 +00:00
Bartosz Podrygajlo 55b5e04e8d Change alignment of temporary IDFT buffer in PHY_ofdm_mod
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.
2024-12-17 23:04:30 +01:00
Bartosz Podrygajlo f50146962d Fix instrumentation target for older CMake versions 2024-12-17 17:26:41 +01:00
rmagueta c66a625dc5 If the ul_ri of srs_feedback changes between a UL 1st transmission and a retransmission, we use the TPMI of 1st transmission 2024-12-17 14:18:16 +00:00
Robert Schmidt 5bd2eb866c Merge branch 'integration_2024_w50' into 'develop'
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
2024-12-17 13:58:12 +00:00
Robert Schmidt d4ca420122 Merge remote-tracking branch 'origin/ue-iqrecord-fix' into integration_2024_w50 (!3161)
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.
2024-12-16 19:44:00 +01:00
Robert Schmidt 0d4c7364b4 Merge remote-tracking branch 'origin/telnet-o1' into integration_2024_w50 (!3125)
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
2024-12-16 19:42:28 +01:00
sagar arora 59e6a33d2b Add telnet (O1) support modules in gNB image 2024-12-16 16:18:11 +01:00
Robert Schmidt bcba876fcb Do not free inside gnb_du_configuration_update_f1ap()
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"
2024-12-16 16:18:11 +01:00
Robert Schmidt 70a746a445 Provide O1 telnet interface to remove all UEs 2024-12-16 16:18:11 +01:00
Ronak Kanthaliya c71c9de953 Additional BW configurability on telnet server 2024-12-16 16:18:11 +01:00
Robert Schmidt aba506e5e3 Add basic O1 telnet module
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
2024-12-16 16:18:11 +01:00
Robert Schmidt 68ae3ea11c Implement start_L1L2()
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.
2024-12-16 16:18:11 +01:00