Commit Graph
100 Commits
Author SHA1 Message Date
Jaroslava Fiedlerova c0a0de3e63 Merge remote-tracking branch 'origin/remove-unused-code' into integration_2025_w04 (!3215)
Remove unused code
2025-01-24 09:31:14 +01:00
Jaroslava Fiedlerova 03420b112e Merge remote-tracking branch 'origin/fix-bug-usrp-constant-derive' into integration_2025_w04 (!3023)
usrp constant and slow derive timestamp

Sample write reorder function doesn't handle properly the clock shift.

It keeps the same time origin forever, so, if the clock sifts in one direction,
we finish to reach the maximum time shift that was designed for slot to slot
maximum shift.

We may also consider if this function is useful: gNB and UE currently ensure Tx
in order because there are other issues above if we let Tx preparation run out
of order in separate threads

Closes #893
2025-01-24 09:27:30 +01:00
Jaroslava Fiedlerova 2da68f6056 Merge remote-tracking branch 'origin/e1ap-issue-878' into integration_2025_w04 (!3171)
- Refactor SCTP Association Response Handling
  - Unified function for both CU-CP and CU-UP handling
  - CU-CP: Notifies RRC of E1 connection loss with CU-UP
  - CU-UP: Initiates a new SCTP association request to regain E1 connection
  - this fix will prevent issue #878 from happening

- Send list of PDU Session Resources to Failed Setup in the (PDU Session
  Resource/Initial Context) Setup Response
  - depending on different failure scenarios
  - e.g. (#878) when No CU-UP is associated and still the CU-CP receives a PDU
    Session Setup Request
  - add relevant functions to handle NGAP Setup Response messages with failed
    list of items
  - this is an extra failure handling to make #878 is handled if it ever happens
    again

- NGAP Cause Refactoring
  - Refactor struct for NGAP cause group and value
  - Add extended radio network cause enumeration values
  - Refactor redundant code into a new NGAP cause encoding function

- Minor logging, function descriptions improvements

Closes #878
2025-01-23 17:50:55 +01:00
Jaroslava Fiedlerova 4f5cb2408c Merge remote-tracking branch 'origin/remove-legacy-compile-option' into integration_2025_w04 (!3198)
A user on the mailing list was confused by a wrong flag in CMakeList.txt
so, I remove this and a set of others that are known not working.
2025-01-23 17:48:42 +01:00
Jaroslava Fiedlerova 829541dc36 CI: temporary commit to use Ubuntu image in FHI7.2
Due to HW version differences between the CI RHEL build machine and
the FHI 7.2 test machine (cacofonix), FHI 7.2 test using  RHEL image
failed, reporting an 'Illegal Instruction' error.
2025-01-20 18:07:30 +01:00
Jaroslava Fiedlerova 592b9a3509 CI: Update CN path for CI CN deployments on OC 2025-01-20 12:42:02 +01:00
Jaroslava Fiedlerova 85b163b6b9 CI: Adjust timing thresholds in timing-phytest pipeline
CI test sometimes fails because measured value is lower than allowed
threshold.
2025-01-15 14:44:39 +01:00
Jaroslava Fiedlerova 9b6f1be163 CI: disable sleep states of CPU for running timing tests
Enable sleep states once the test is done.
2025-01-15 14:44:35 +01:00
Jaroslava Fiedlerova 69195457d7 CI: Increase number of test trials in nr_ulsim/nr_dlsim timing test
Increasing a number of test trials aims to reduce variations and
improve reliability of the nr_ulsim and nr_dlsim test results.
2025-01-15 14:43:42 +01:00
Jaroslava Fiedlerova acd8f0730b CI: use IOVA VA mode in FHI7.2 pipeline
Switching to IOVA VA mode in the FHI7.2 pipeline reduces the required
capabilities for the Docker container. This change allows the removal
of the SYS_ADMIN capability.
2025-01-10 14:59:36 +01:00
Jaroslava Fiedlerova df03c02a84 fhi_72: allow to provide dpdk_iova_mode to xran
In DPDK, IO Virtual Addresses (IOVA) refers to the memory addressing
scheme used for IO operations. The two IOVA modes supported by DPDK are:

- IOVA as Physical Address (PA): IO memory addresses correspond directly
  to physical addresses, no address translation required.
- IOVA as Virtual Address (VA): IO memory addresses align with user-space
  virtual addresses, requiring IOMMU to remap physical memory.

Previously, this was hardcoded to 0, to use IOVA as PA mode, with xRAN's
DPDK EAL initialization using the "--iova-mode=pa" flag.

This commit introduces a gNB configuration option to allow users to select
the desired IOVA mode. The default remains PA mode to
ensure backward compatibility.

Using IOVA VA mode allows DPDK to run without requiring SYS_ADMIN
capability in the docker container.
2025-01-10 14:59:31 +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
Jaroslava Fiedlerova 3306a01c57 CI: change frequency for timing and B200-SABOX pipelines 2024-12-19 12:02:50 +01:00
Jaroslava Fiedlerova 02679ca07c CI: Create FHI7.2 test with Metanoia RU, 2 layers in DL 2024-12-12 08:26:42 +01:00
Jaroslava Fiedlerova ee1605b8d9 CI: Remove USRP mgmt_addr from LTE-2x2 conf files
The "mgmt_addr" parameter is not required for USRP N310 initialization. The
critical parameter for successful operation is the "addr", which specifies
the IP address of the SFP port used for data transfer.

Including both "mgmt_addr" and "addr" can lead to initialization failures if
one of the specified addresses is unavailable. Since the "mgmt_addr" is
unnecessary for this context, it has been removed to avoid potential conflicts
and simplify the configuration.
2024-12-06 16:38:13 +01:00
Jaroslava Fiedlerova 55a18514b6 Merge remote-tracking branch 'origin/thread-pool-fixed' into integration_2024_w49 (!3025)
New threadpool, fixed in NR UE

This merge request is an attempt to fix the new thread pool implementation
for use in NR UE and gNB (as well as eNB).
2024-12-06 16:36:38 +01:00
Jaroslava Fiedlerova fb1fe17293 Merge remote-tracking branch 'origin/aerial_24-2' into integration_2024_w49 (!3146)
Updates to match more fapi-compliant tx_data.request

The packing of PDUs as required in aerial for the Tx_data.Request wasn't
complaint with FAPI. That was fixed in Aerial 24-2. This change makes L2
pack the payloads in the way that Aerial now requires.
2024-12-06 11:52:45 +01:00
Jaroslava Fiedlerova 797bc1b285 Merge remote-tracking branch 'origin/remove-not-needed-global-vars' into integration_2024_w49 (!3140)
remove un-necessary global variables

Remove global variables that can be removed by a trivial way:
- simply dead globals
- or reference is a single source, so can be static

setting them static reduces the scope, that is a progress, but of course as
for all static variables, the code is still not re-entrant
2024-12-06 11:51:29 +01:00
Jaroslava Fiedlerova fee95ed36f Merge remote-tracking branch 'origin/align-yaml-to-config' into integration_2024_w49 (!3138)
Align YAML config getlist with libconfig implementation

This aligns the behavior of params_yaml with params_config library:

- when a mapping is read using getlist it returns the number of elements in
  the mapping instead of 0
- when a mapping is read using get it returns the number of parameters used
  for input
2024-12-05 19:22:51 +01:00
Jaroslava Fiedlerova 429e98e4f1 Merge remote-tracking branch 'origin/ci-container-restart' into integration_2024_w49 (!3141)
CI: Allow restart of the container if deployment fails

In CI we sometimes encounter fail of the gNB/UE deployment (and fail of the test
scenario) caused by unsuccessful initialization of the USRP N310.

This MR enables to optionally restart the gNB or UE container, if the deployment
fails on the health check during start up. By default, restarts of the container
are not allowed, but we can enable them by setting num_attemps > 1 for a given
deployment in the XML file.

Logs from failed deployment attempts are collected.

This MR aims to avoid known CI failure caused by "USRP N310 Initialization Failure"
mentioned in #871.
2024-12-05 19:15:03 +01:00
Jaroslava Fiedlerova 8c5b37deae Merge remote-tracking branch 'origin/doc-frequency-config' into integration_2024_w49 (!3050)
doc: Add instructions for 5G NR gNB frequency configuration
2024-12-05 19:12:40 +01:00
Jaroslava Fiedlerova c1e7c3795f Merge remote-tracking branch 'origin/fix-lacking-barrier-actor-dependancy' into integration_2024_w49 (!3145)
a lib has been added but missed dependancies
2024-12-05 19:09:41 +01:00
Jaroslava Fiedlerova 2ef4dbe6b9 Merge remote-tracking branch 'origin/rfsimdoc' into integration_2024_w49 (!2392)
Documentation: add multi-UE deployment with RFsimulator

Extended doc/NR_SA_Tutorial_OAI_nrUE.md with section about how to run multiple UEs

- multiple UEs with namespaces (provided new script)
- multiple UEs with Docker UEs
- updated rfsimulator and channel simulation tutorials
- updated README.md
2024-12-05 19:07:13 +01:00
Jaroslava Fiedlerova 027631eb70 CI: Remove GetContainerName() - not used anymore
No need to get container name, we work directly with docker services.
2024-12-05 14:13:22 +01:00
Jaroslava Fiedlerova f786d92bc9 CI: Allow restart of the container if it fails on the first attempt
In CI we sometimes encouter fail of the gNB/UE deployment (and fail of
the pipeline) caused by unsuccsessful initialization of the USRP N310.
Restart the container if the health check fails during initialization.

Introduce a configurable parameter (from XML) to set max number of
attempts for the container deployment.

Store logs from failed deployment attempts.
2024-12-05 14:13:22 +01:00
Jaroslava Fiedlerova f078e6f9c7 CI: modify and rename CopyinContainerLog to use docker services 2024-12-05 14:13:22 +01:00
Jaroslava Fiedlerova a9ca4a5481 CI: create GetServiceHealth()
Rework GetContainerHealth() to work with docker compose and services,
instead of using docker and containers. Return health and message about
deployment status (used for console and HTML logging) for a given service.
2024-12-05 14:13:18 +01:00
Jaroslava Fiedlerova 80736bb2bd Merge remote-tracking branch 'origin/t-tracer-nrue-macpdu' into integration_2024_w49 (!3137)
T tracer: add macpdu traces for the NR UE

MIB, SIB1, random access and regular scheduling are traced.

At the beginning of a connection (rrc setup request and rrc setup), the
RNTI is reported as 0. Might be fixed, somehow, if absolutely needed (not
sure).
2024-12-05 10:19:12 +01:00
Jaroslava Fiedlerova 86a47d7061 Merge remote-tracking branch 'origin/build-options' into integration_2024_w49 (!3136)
Use ninja -k option in CI

Use ninja -k10 in the CI to keep going after build errors to see more errors
than just the first.
2024-12-05 10:18:20 +01:00
Jaroslava Fiedlerova 393185dfb5 Merge remote-tracking branch 'origin/Refactor_UL_MAC_PDU_decoding' into integration_2024_w49 (!3129)
Refactor UL MAC PDU decoding

Refactor the UL MAC PDU decoding: A single function is created to decode the
entire MAC subheader
uint8_t decode_ul_mac_sub_pdu_header(uint8_t *pduP, uint8_t *lcid, uint16_t *length).
It returns the length of the MAC subheader and outputs the LCID and Length.

This new function is called from 2 functions: lcid_crnti_lookahead() and
nr_process_mac_pdu().

After calling it in nr_process_mac_pdu(), the validation of the PDU can be
made for all the MAC subPDUs in a single place, allowing for less and more
clean code (as opposed with the previous version where the validation was
made multiple times inside the LCID switch-case).

Additionally, this MR updates the list of LCIDs as in 3GPP TS 38.321 v18.3.0
Table 6.2.1-2: Values of LCID for UL-SCH when the LX field is not present or
is set to 0.
2024-12-05 10:12:23 +01:00
Jaroslava Fiedlerova 2fad00010b Merge remote-tracking branch 'origin/nr-ue-nas-service-request' into integration_2024_w49 (!3065)
NAS Service Request enc/dec implementation

NAS Service Request:

- encoding
- decoding
- unit test

Related to #852
2024-12-05 10:11:20 +01:00
Jaroslava Fiedlerova e1d06cfef8 CI: add CI unit test for simple fail deployment with 2 services 2024-12-04 09:43:45 +01:00
Jaroslava Fiedlerova bf210241bd doc: Add instructions for 5G NR gNB frequency configuration 2024-12-03 17:07:50 +01:00
Jaroslava Fiedlerova b8b4057e9c Merge remote-tracking branch 'origin/ci-aerial-change-cn' into integration_2024_w47 (!3124)
CI: use OC CN in aerial pipeline

Replace CN host on Aerial CI pipeline (Porcepix) with OC.
2024-11-26 11:37:45 +01:00
Jaroslava Fiedlerova d337304e13 Merge remote-tracking branch 'origin/ci-flexric-integration-test' into integration_2024_w47 (!2670)
chore(ci): adding Flexric-RAN integration test

- Triggering a standalone FLEXRIC + 5G-RAN pipeline: OAI-FLEXRIC-RAN-Integration-Test
  - will be triggered by the RAN-Container-Parent
  - but also by the OAI-FLEXRIC pipeline (to be done once integrated)
- Added an new python option: --FlexRicTag= than if not used, won't have any effect
- Nice addition:
  - if --FlexRicTag=develop or --ranCommitID=develop  --> will use the latest commit
    on either dev or develop branch.
- Scenario-wise
  - Using the cn5g deployment file from Luis in documentation, at least we will use
    it to make sure it is working at all time
- We can add more test and especially checkers on the flexric calls

Linked to !3085 (merged)
2024-11-26 10:53:17 +01:00
Jaroslava Fiedlerova dbc8fd4956 CI: increase timeout for OC CN deployment
Occasionally, the CN deployment takes longer than 60 seconds to complete
successfully. As a result, the CI reports failure, even when all other test
stages pass (e.g., gNB attaches to the CN, UE connects, and iperf tests succeed).
2024-11-26 10:29:14 +01:00
Jaroslava Fiedlerova bbfd3c6174 CI: use OC CN in aerial pipeline
Replace current docker deployment of OAI CN by deployment on OC. With change
of the CN, we also need to change the routing for UE module - change the
mbim script for controling the UE.
2024-11-26 10:26:25 +01:00
Jaroslava Fiedlerova 683a39c982 Merge remote-tracking branch 'origin/NR_UE_RRC_Reconfiguration_improvements' into integration_2024_w47 (!2996)
Improvements in handling RRC Reconfiguration at UE
2024-11-26 09:39:44 +01:00
Jaroslava Fiedlerova 8b7b918c49 Merge remote-tracking branch 'origin/ci-reduce-duplicate-xml-usage' into integration_2024_w47 (!3123)
Reduce double-usage of CI XML files

Some pipelines use the same XML files. For instance,
RAN-NSA-B200-Module-LTEBOX-Container and RAN-LTE-{TDD,FDD}-LTEBOX-Container
use both fr1_epc_{closure,start}.xml, but use the core network on different
hosts, by means of different pipeline configuration (EPCtype, etc).

A future MR will remove these additional pipeline configuration, and store
all the CN config in the repository. To simplify the transition, duplicate
some XMLs (i.e., remove duplicate usage of them).

After this MR, the only "double usage" of XML files for core (un-)deployment
should be through pipelines RAN-LTE-{TDD,FDD}-LTEBOX-Container.
2024-11-26 09:32:20 +01:00
Jaroslava Fiedlerova a9060cd382 Merge remote-tracking branch 'origin/nr-cleanup-includes' into integration_2024_w47 (!2966)
Refactor of includes in gNB/UE for improved header management

This merge request implements changes suggested by the Include What You Use
(IWYU) open source tool to streamline the project’s header file usage.

The adjustments ensure that each file includes only the necessary headers for
the symbols it uses, making the code more efficient and maintainable.
Unnecessary includes have been removed, and missing headers have been added
where required. This improves modularity and reduces inter-dependencies between
files, helping to avoid future build issues caused by unused or missing includes.

Each output has been manually reviewed.

Followed a similar approach as in !2953 (merged).

Affected folders/files:

- NR_MAC_gNB/main.c
- nr-softmodem.c
- unitary simulators: nr_dlsim, nr_ulsim, prachsim
- openair2/RRC/NR
- openair3/NGAP
- openair2/LAYER2/nr_pdcp
- openair2/SDAP/nr_sdap
2024-11-26 09:26:28 +01:00
Jaroslava Fiedlerova e04ff5efb0 Merge remote-tracking branch 'origin/fhi-72-improvements' into integration_2024_w47 (!3110)
Fronthaul 7.2 improvements (1. step towards M-plane integration)

- added explanations for each parameter used for XRAN library
- added new config files for VVDN, Benetel 550 and Metanoia RUs
- changed config file for Benetel 650
- deleted 8x8 650-550, and added 8x8 650-650 config file
- updated FHI README
  - setting one or more VFs; compatibility with Mellanox NIC as well
  - fhi_72 section
2024-11-25 16:42:31 +01:00
Jaroslava Fiedlerova f36eda1608 Merge remote-tracking branch 'origin/ran-func-no-assert' into integration_2024_w47 (!3122)
Avoid assert on non-implemented SM write callback

The asserts might be used to intentionally stop the running process.
Further, it might be an annoyance if it happen unintentionally. Just
print an error message instead.
2024-11-25 16:41:10 +01:00
Jaroslava Fiedlerova 5b6e16c8e7 Merge remote-tracking branch 'origin/ue-monitoring-stats' into integration_2024_w47 (!2996)
Ue monitoring stats

- one commit to add UE mac stats similar to gNB one and remove a partial
implementation at phy level of some counters
- second commit only rename the two UE persisted HARQ tyepdef names for DL
and for UL (one was saying "UE" but not the direction and the second the
direction but not "UE")
2024-11-25 11:27:22 +01:00
Jaroslava Fiedlerova 2f27839515 T2: Rework retrieve_ldpc_enc_op() 2024-11-22 17:37:36 +01:00
Jaroslava Fiedlerova e531043128 Merge remote-tracking branch 'origin/fix-extraneous-threadpool-tasks' into integration_2024_w47 (!3105)
Fix a small bug with total_res in gNB PUSCH symbol processing

Replaced total_res with res_per_task when deciding whether to start a threadpool
task or not. This does not have big impact on the software as the
nr_pusch_symbol_processing will recheck ul_valid_re_per_slot anyway but it may
reduce the number of thread pool tasks created.
2024-11-22 15:50:40 +01:00
Jaroslava Fiedlerova 45fff9fc0f Merge remote-tracking branch 'origin/dmrs_channel_estimation_parallelization' into integration_2024_w47 (!2972)
Parallelize PUSCH channel estimation

This MR adds PUSCH channel estimation parallelization which reduces the
processing time. It also adds time measurements for each antenna and makes
num_antennas_per_thread configurable in nr_ulsim and the gNB config file.

Some results:

- **273 PRBs 4 antennas** `./nr_ulsim -n200 -m25 -s40 -S40 -q1 -R273 -r273 -z4 -P`

| Number of threads | ULSCH channel estimation time (us) develop| ULSCH channel estimation time (us)| Antenna Processing time (us) |
| ------            | ------                                    | ------                            | ------ |
| 0                 | 194.06                                    |193.17                             |  134.82|
| 2                 | 194.88                                    |154.02                             |  93.43 |
| 4                 | 195.23                                    |134.27                             |   72.71|
- **273 PRBs 8 antennas** `./nr_ulsim -n200 -m25 -s40 -S40 -q1 -R273 -r273 -z8 -P`

| Number of threads | ULSCH channel estimation time (us) develop| ULSCH channel estimation time (us)| Antenna Processing time (us) |
| ------            | ------                                    | ------                            | ------ |
| 0                 | 387.93                                    |384.99                             |  269.39|
| 2                 | 388.10                                    |279.47                             |  161.32|
| 4                 | 387.47                                    |225.37                             |  106.52|
| 8                 | 390.53                                    |204.48                             |   83.74|

- **106 PRBs MIMO 4 layers** `./nr_ulsim -n100 -m9 -r106 -s10 -W4 -y4 -z4 -P`

| Number of threads | ULSCH channel estimation time (us) develop| ULSCH channel estimation time (us)| Antenna Processing time (us) |
| ------            | ------                                    | ------                            | ------ |
| 0                 | 263.20                                    |268.97                             |  57.49 |
| 2                 | 263.90                                    |252.61                             |  51.22 |
| 4                 | 264.17                                    |192.49                             |  36.29 |
2024-11-22 15:48:12 +01:00
Jaroslava Fiedlerova 0021b69645 Optimize memory usage in decode_offload function
- Reduce the size of z_ol to LDPC_MAX_CB_SIZE to reduce memory footprint.
- Simplify memcpy and pointer casting for z_ol.
2024-11-20 10:39:09 +01:00
Jaroslava Fiedlerova 42b544cda9 Correct max number of LDPC segments for T2 processing
Fix error reported by the T2 card when running nr_dlsim with 4 DL layers.
Error can be reproduced by running:
./nr_dlsim -n100 -s30 -e25 -b273 -R273 -x4 -z4 -y4 -P --ldpc_offload.dpdk_dev 41:00.0 -c

So far we set NR_LDPC_MAX_NUM_CB to 72, which is sufficient for max 2 DL layers.
Set max possible number of LDPC segments based on the max number of layers
and max number of DLSCH segments (currently it is 144).
2024-11-19 16:15:25 +01:00
Jaroslava Fiedlerova 0c3a2c157d Merge remote-tracking branch 'origin/NTN_FR1_bands' into integration_2024_w46 (!3093)
Added NTN FDD FR1 bands defined in 3GPP TS 38.101-5

Added support for NTN FDD FR1 bands 254, 255, 256 as specified in 3GPP
TS 38.101-5. Example Conf files added for band254 for 15Khz, 5Mhz and
30Khz, 10Mhz configurations. Tested NTN GEO configuration on band 254
using these conf files.
2024-11-18 17:30:49 +01:00
Jaroslava Fiedlerova e5fda698ba Merge remote-tracking branch 'origin/enabling_CSIRS_analog_beamformiing_l1_handling' into integration_2024_w46 (!3036)
Further improvements in analog beam management for CSI-RS
2024-11-18 17:29:02 +01:00
Jaroslava Fiedlerova 06e1c3bc17 Merge remote-tracking branch 'origin/nr-ue-ra-testcase' into integration_2024_w46 (!3059)
Test for init_RA

A testcase for init_RA function.
The testcase redefines the following functions as stubs:

- nr_mac_rrc_ra_ind
- nr_write_ce_ulsch_pdu
- mac_rlc_data_req
- lockGet_ul_config
- release_ul_config
- remove_ul_config_last_item
- nr_ue_configure_pucch

These stubs can be used to check init_RA behavior
2024-11-18 16:21:03 +01:00
Jaroslava Fiedlerova 400656715a Merge remote-tracking branch 'origin/fix-segfault-multi-ue' into integration_2024_w46 (!3108)
Prevent segfaults in gNB stack

Three fixes for segfaults, discovered while running with many UEs.
See commit messages for more details.
2024-11-18 13:06:29 +01:00
Jaroslava Fiedlerova 12f29b828e Merge remote-tracking branch 'origin/NR_UE_trigger_reestablishment' into integration_2024_w46 (!2777)
NR UE trigger for re-establishment

The implementation in this MR triggers RRC re-establishment at the UE in case
of radio link failure either for out of sync messages from lower layers or in
case maximum number of RLC retransmissions is reached.
2024-11-18 10:12:25 +01:00
Jaroslava Fiedlerova 9b1ccbf3de Merge remote-tracking branch 'origin/hide-overflow' into integration_2024_w46 (!3107)
Clip the input for -32768 because this will make different result in...

Clip the input for -32768 because this will make different result in
mult_complex_vectors() compared to C version
2024-11-15 18:51:26 +01:00
Jaroslava Fiedlerova 981173f43b Merge remote-tracking branch 'origin/T-tracer-float-support' into integration_2024_w46 (!3109)
T tracer: support float types in traces
2024-11-15 18:50:36 +01:00
Jaroslava Fiedlerova b18f39312a Merge remote-tracking branch 'origin/ci-fixes-dora' into integration_2024_w46 (!3104)
Trigger deregistration only in SA mode

Upon press of ^C, the UE triggers a NAS deregistration. This does not work
in do-ra or phy-test modes, because there is no NAS. Therefore, in non-SA
modes, just stop the UE directly.

This can potentially improve the 5G RFsim CI test case, because together with
a high RFsim timeout, the chances of the last HARQ status line being without
retransmissions is much higher. If that does not help, we can further increase
the retx threshold.
2024-11-15 18:49:12 +01:00
Jaroslava Fiedlerova 45be0a5604 Merge remote-tracking branch 'origin/fix-ulsch-bsr' into integration_2024_w46 (!2991)
fix BSR report malformed, add SHORT BSR when it can (instead of LONG BSR)...

fix BSR report malformed, add SHORT BSR when it can (instead of LONG BSR)
simplify the code and make the code more explicit, but the may structure
remain (nr_write_ce_ulsch_pdu interface is complex, merging it into the
called would make simpler and more interstandable code), fix some asserts
related to this part of code
2024-11-15 18:43:26 +01:00
Jaroslava Fiedlerova ca119de036 Merge remote-tracking branch 'origin/ue-default-ssb-config' into integration_2024_w46 (!3095)
UE: Set default SSB config

After initial sync the UE sets the ssb index bitmap in nrUE_config with
index obtained in initial sync. This allows UE to continue decoding PBCH
and stay synched with the gNB till SIB1 is received.
2024-11-15 11:51:15 +01:00
Jaroslava Fiedlerova c0e386e42d Merge remote-tracking branch 'origin/config_sa_mode' into integration_2024_w45 (!3024)
Set SA mode as default

- Set standalone (SA) mode as the default.
- Adjust commands in Docker Compose files by removing --sa flags and
  adding --nsa flags where applicable.
- Add a function to verify that only one mode is being used at a time.
- Update all relevant documentation.
2024-11-13 09:57:07 +01:00
Jaroslava Fiedlerova 9e81040a8d CI: use multiple cores for nr_ulsim/nr_dlsim tests with T2
Increase number of cores used for T2 nr_ulsim/nr_dlsim processing to ensure
a fair comparison of total gNB PHY RX/TX processing time.
2024-11-12 21:51:16 +01:00
Jaroslava Fiedlerova 94f69b8c70 Merge remote-tracking branch 'origin/remove_5g_l2sim_files' into integration_2024_w45 (!3100)
CI: Remove 5g_l2sim files

Delete the XML, conf, and YAML files related to the RAN-L2-Sim-Test-5G pipeline
that has already been removed.
2024-11-12 19:05:53 +01:00
Jaroslava Fiedlerova fff605eab9 Add measurement of total gNB TX processing time for nr_dlsim 2024-11-12 12:02:29 +01:00
Jaroslava Fiedlerova 14a41df0ec CI: Harmonize LDPC CUDA and T2 test/analysis in physim
- Introduce "Run_Physim" function for running ldpctest (with CUDA) and
nr_dlsim/nr_ulsim (with T2) in RAN-gNB-N300-Timing-Phytest-LDPC test
pipeline.
- Create "cls_analysis.py" and introduce "analyze_physim" for
log analysis of physim tests.
- Define patterns to be searched in the physim logs.
- Extract and print information about total gNB RX/TX PHY processing time
from nr_ulsim/nr_dlsim logs.
- Remove "cls_physim.py" as it is not used anymore, cleanup "main.py".
2024-11-12 12:02:03 +01:00
Jaroslava Fiedlerova f6184c9ff0 Merge remote-tracking branch 'origin/doc-add-prbbl-cots-ue' into integration_2024_w45 (!3090)
Following up on !3081 (comment 140856)
2024-11-08 15:10:01 +01:00
Jaroslava Fiedlerova fd6fbc5eae Merge remote-tracking branch 'origin/hotfix-nr-rlc-cppcheck' into integration_2024_w45 (!3098)
and simplify a bit (DevAssert instead of goto/exit)
2024-11-08 15:08:53 +01:00
Jaroslava Fiedlerova 1898e34750 Merge remote-tracking branch 'origin/ci-add-4x4-test' into integration_2024_w45 (!3070)
Create a new test scenario with USRP N310, 60 MHz bandwidth, 4 DL layers and
2 UL layers. Test 480 Mbps DL and 120 Mbps UL.
2024-11-08 08:22:19 +01:00
Jaroslava Fiedlerova 5f5053c6f7 Merge remote-tracking branch 'origin/better-polar-decode' into integration_2024_w45 (!2949)
- simplify the code
- prevent to use "beta" tables from one decoder run to the next one (to see it
is the case, don't initialize beta, you will see it doesn't decode)
- decrease memory footprint of the decoder by x10 or more
- save about 15% of cpu in polartest unitary test tool, and more if we run in
realistic use case
- still this decoder performs much worse than the (very) slow OAI version by 3dB
2024-11-08 08:20:08 +01:00
Jaroslava Fiedlerova de90129d3f Merge remote-tracking branch 'origin/compile-telnet-arm' into integration_2024_w45 (!3096)
telnetsrv uses the Intel/AMD-specific "cpuid" instruction, which is not
available on ARM machines. Remove the call.

The previous code was checking for the number of cores, which is
retained by a call to get_nprocs(). I did not find an equivalent for the
number of threads in C. In C++, there would be
https://en.cppreference.com/w/cpp/thread/thread/hardware_concurrency, in
case it's relevant for anybody.

Also, add it to the cross-compilation pipeline
2024-11-07 21:28:23 +01:00
Jaroslava Fiedlerova d0f9d4c028 CI: Remove unused Build_Physim 2024-11-07 20:33:04 +01:00
Jaroslava Fiedlerova f75e107d08 CI: remove unused Run_NRulsimTest 2024-11-07 20:33:04 +01:00
Jaroslava Fiedlerova 282ec44521 Merge remote-tracking branch 'origin/remove-accelleran-pipeline' into integration_2024_w45 (!3092)
We don't have access to the images for the Accelleran CU anymore, so we
can't run the test. Remove the pipeline from the repository.
2024-11-07 16:21:36 +01:00
Jaroslava Fiedlerova c76baa1c70 Merge remote-tracking branch 'origin/fix-doc-cross-compile' into integration_2024_w45 (!3089)
- Give introductory line
- Reformulate headers to clarify steps
- Reference dockerfiles for further information
2024-11-07 16:20:35 +01:00
Jaroslava Fiedlerova 9009302a82 Merge remote-tracking branch 'origin/fix-csi-data-race' into integration_2024_w45 (!3077)
csiim_vars/csirs_vars used to be global array for each UE. Now its present
in phy_data which is in dynamically allocated memory.

MAC config was done without mutex while DL and UL threads could be running
at the same time.

get_ue_nas_info was allocating memory possibly from more than one thread.
Moved it into new init function for UE NAS layer.

Addreses most issues in #869
2024-11-07 16:18:09 +01:00
Jaroslava Fiedlerova 1c214994df Merge remote-tracking branch 'origin/nr-minor-cleanup-gnb' into integration_2024_w45 (!3048)
The goal of this MR is to improve readability, maintainability and consistency
of gNB initialization functions.
This MR is:

- cleaning up redundant and unused code
- refactoring init_gNB, l1_north_init_gNB, RCconfig_NR_L1, NRRCConfig
- removing redundant memory allocation for gNB RAN context and L1 instances
- cleaning up redundant log lines
2024-11-07 16:16:05 +01:00
Jaroslava Fiedlerova 9ce8a9ac7d CI: use default value for ulsch_max_frame_inactivity in 60 MHz 4x4 config file 2024-11-05 20:04:04 +01:00
Jaroslava Fiedlerova b77c0d81e0 CI: update information about frequency in SA-2x2 config files 2024-11-05 20:04:04 +01:00
Jaroslava Fiedlerova 5e8d62ff85 CI: remove ssb_SubcarrierOffset from config file
ssb_SubcarrierOffset is no longer taken in account from the gNB config file,
as it is computed automatically.
2024-11-05 20:04:04 +01:00
Jaroslava Fiedlerova b3d45cf698 CI: Add test with 4 DL layers, 60 MHz BW to SA-2x2 pipeline 2024-11-05 20:04:04 +01:00
Jaroslava Fiedlerova 538c115fb7 CI: reduce RX gain in 4G pipelines to avoid false RACH attempts 2024-10-28 13:42:19 +01:00
Jaroslava Fiedlerova 3f51197548 Merge remote-tracking branch 'origin/fix-nssai-f1ap' into integration_2024_w42 (!3054)
Currently, sD has not been allocated, so the octet string is empty. Fix the
allocation to correctly write&read NSSAIs in UE context setup/modification
request messages.
2024-10-21 16:32:14 +02:00
Jaroslava Fiedlerova 784ae2a4df Merge remote-tracking branch 'origin/Improve_UL_SNR_stability' into integration_2024_w42 (!3049)
Reset TPC to 0 dB, after sending it to the UE, to not request new gain multiple
times before computing new value for SNR.
2024-10-21 16:23:07 +02:00
Jaroslava Fiedlerova 08972f35cb CI: lower ssPBCH_BlockPower in gNB conf for RAN-SA-FHI72-CN5G pipeline
Tests showed that a UE connected much faster, and did not fail as often
on Msg3.
2024-10-19 12:44:33 +02:00
Jaroslava Fiedlerova d156661ce3 CI: decrease test SNR for nr_pucchsim with 8 antennas 2024-10-18 16:29:28 +02:00
Jaroslava Fiedlerova 6a54905b2e Merge remote-tracking branch 'origin/remove_power_reduction_for_MIMO' into integration_2024_w42 (!3004)
This hotfix removes division by num_antenna_ports in PDSCH precoding matrix generation.
These matrices are defined for CSI reporting in this way but here we are using them for
transmission and this results in an unwanted 10*log10(num_antenna_ports) reduction in
transmit power (3dB for 2 antenna ports, 6dB for 4 antenna ports, etc.)
2024-10-18 14:54:28 +02:00
Jaroslava Fiedlerova 0d4c6b8c4f CI: add new testcases for nr_dlsim testing in timing pipeline
Add new nr_dlsim test cases for testing with 4 antennas, 2 layers
in both scenarios - with and without T2 card.
2024-10-18 09:36:13 +02:00
Jaroslava Fiedlerova 61e7c0ae39 CI: Enable thread-pool in RAN-gNB-N300-Timing-Phytest-LDPC
Enable multi-threading in the nr_dlsim test with CPU, set 5 cores for
thread-pool using "-X 8,9,10,11,12" option.
2024-10-18 09:35:20 +02:00
Jaroslava Fiedlerova f97c6ceb6c CI: Update enc/decoder tests in RAN-gNB-N300-Timing-Phytest-LDPC
Set a maximum SNR value using the "-S" option to ensure that nr_dlsim
or nr_ulsim is executed only for a given SNR. This approach allows us
to verify the success of the encoding/decoding process at the specified
SNR. Check if the test succeeds is not yet implemented (currently we
only retrieve an information about encoding/decoding processing time).
To be implemented in the separate MR.

Always execute all the nr_dlsim/nr_ulsim tests even if one of them
fails. Each test takes around 5s, so we can execute them all to get
results for all the test scenarios.
2024-10-17 10:50:24 +02:00
Jaroslava Fiedlerova 4f5c73394d doc: Update TESTBenches.md
- remove Sphex UE - not used anymore
- remove RAN-L2-Sim-Test-5G from a list of pipelines - currently disabled
- 4G RFSim was moved to cacofonix
- minor cleanup
2024-10-16 17:08:49 +02:00
Jaroslava Fiedlerova 6a72669a1b Merge remote-tracking branch 'origin/iwyu' into integration_2024_w41 2024-10-14 15:10:47 +02:00
Jaroslava Fiedlerova 75af74c731 Merge remote-tracking branch 'origin/RA_2-Step' into integration_2024_w41 2024-10-14 14:47:19 +02:00
Jaroslava Fiedlerova e4cb68a750 Merge remote-tracking branch 'origin/ci-sa-2x2-increase-bitrate' into integration_2024_w41 2024-10-14 13:23:11 +02:00
Jaroslava Fiedlerova a177dfa3bb Merge remote-tracking branch 'origin/transform_precoding_hotfix' into integration_2024_w41 2024-10-14 13:22:54 +02:00
Jaroslava Fiedlerova 444961470a Merge remote-tracking branch 'origin/cmake-presets' into integration_2024_w41 2024-10-11 11:09:12 +02:00
Jaroslava Fiedlerova cab28f0f5a Merge remote-tracking branch 'origin/misc-fixes' into integration_2024_w41 2024-10-11 11:09:00 +02:00
Jaroslava Fiedlerova bdefd02f27 CI: increase tested bitrate for 100 MHz scenario in SA-2x2
Modify the UL/DL UDP iperf test cases to use a higher requested bitrate
for the scenario with 100 MHz bandwidth in the SA-2x2 pipeline. Adjust
gNB config file to allow for higher UL throughput.
2024-10-11 07:57:34 +02:00