Amarisoft

NR SA Beam Management

The purpose of this tutorial is to how to configure basics features for Beam Management and verify it. In terms of configuration, this is almost same as CSI Report (Refer to the tutorial CSI Report for the basic configuration of CSI report). However, as of now, this tutorial is NOT to demonstrate full fledged beam management capability and configuration. It is more of setting the base line for beam management test and open the floor for further suggestion from users/readers.

NOTE 1 : What Amarisoft supports are

NOTE 2 : What Amarisoft does NOT supports are

NOTE 3 : We are OPEN for SUGGESTION !!!

Supporting all the features for Beam Management is technically challenging and costly and its verification is even more challenging. Therefore, we need to prioritize on what to support first on various factors like the demand for a feature, level of technical difficulties etc. To assess these factors, we are widely open for suggestion from Amarisoft users regarding what should be supported.

NOTE 4 : This tutorial is mainly for beam management in connected mode, if you are interested in testing beam management for initial attach (i.e, Initial Beam Selection) refer to this tutorial.

Table of Contents

Introduction

Beam Management is a pivotal function in 5G NR (New Radio) technology, underpinning the robust and dynamic operation of advanced antenna systems, such as Massive MIMO, and enabling efficient spatial multiplexing and directional communication. At its core, Beam Management orchestrates the processes of beam sweeping, measurement, determination, and reporting, allowing the network and user equipment (UE) to establish, maintain, and optimize high-quality directional links. This is particularly crucial in the mmWave frequency bands, where signal attenuation and blockage present significant challenges. Architecturally, Beam Management leverages the configuration and reporting mechanisms for Channel State Information Reference Signals (CSI-RS), Transmission Configuration Indicator (TCI) states, and various codebook types. These elements are typically coordinated through RRC (Radio Resource Control) signaling and are implemented in both gNB (Next Generation NodeB) and UE as part of the physical and MAC layers. The significance of Beam Management extends throughout the broader 5G ecosystem, enhancing capacity, reliability, and user experience by enabling highly adaptive and responsive radio links. This tutorial focuses on the foundational aspects of configuring and verifying Beam Management features in a connected mode scenario, with an emphasis on baseline configuration and verification using Amarisoft's implementation. While not covering the entire spectrum of Beam Management capabilities, this introduction sets the stage for practitioners to gain a solid architectural understanding, explore supported features, and actively contribute feedback for further enhancements in real-world deployments.

Summary of the Tutorial

This tutorial provides step-by-step procedures for configuring and testing periodic CSI (Channel State Information) reporting with multiple CSI-RS (CSI Reference Signal) resources, focusing on gNB-side configuration and verification using Amarisoft tools. Two main test cases are presented, each illustrating different approaches to periodic CSI reporting in a 5G NR Standalone (SA) environment. Below is a structured summary of the test procedures and methodologies used in both tests, along with key configuration guidelines and troubleshooting tips.

Summary: This tutorial demonstrates comprehensive procedures for manual configuration, execution, and verification of periodic CSI reporting with multiple beams in a 5G NR SA environment. It emphasizes careful planning of physical resource allocation, systematic configuration, and thorough log-based validation, while providing practical tips for troubleshooting common issues such as resource collisions and log interpretation. Visualization tools are recommended for further insight into the physical-layer resource mapping.

Test Procedure Summary

This test requires gNB configuration change only and you can keep mme, ims configuration as in default.

Step 1 : Set TDD/FDD(NR_TDD). number of DL Antenna(N_ANTENNA_DL), Band(band) and Frequency(dl_nr_arfcn) and Bandwidth(NR_BANDWIDTH) as you want

Step 2 : Step 2 : Configure pdcch parameter as per your requirement. search_space0_index, dedicated_coreset, css, uss, rar_al_index,si_al_index and al_index are the detailed parameters you need to configure. css is the parameter for common search space and uss is the parameter for user specific search space where you can specify the number of candidates for each aggregation level. rar_al_index, si_al_index and al_index are parameters indicating the specific aggregation level and number of candidates for RAR, SIB and user data respectively.

Step 3 : Run the test

Step 4 : Verify the result with Log. Check RRC Setup message and see if all the configuration is configured as intended and Check if gNB is getting CSI report via PUCCH.

Test Setup

Test setup for this tutorial is as shown below.  This is just for low layer testing, you may not need any complicated IP layer setup.

TestSetup Callbox UE 1sdr 01

Key Configuration Parameters

Followings are important configuration parameters for this tutorial. You may click on the items for the descriptions from Amarisoft documents.

Test 1 : Periodic CSI Report with multiple CSI

In this test, I will show you how to configure manually the periodic CSI report for the 4 different CSI-RS (2 ports each) designed for associating with each individual beam. As you may know if you have tried to configure this kind of measurement before, you would know it is extremly complicated and confusing to configure those multiple CSI RS report manually. My personal tips to create a test plan for this kind of case is to draw a few diagram clearly showing what is intended to do. In my case, I usually draw two diagrams as shown below.

The first diagram that I often draw is to show the physical resource allocation for all the CSI-RS / CSI-IM in time domain as shown below. It would be even better if you draw physical resource map for both time domain and frequency domain, but it may be too much to do. So I usually draw time-domain resource map only.

This time-domain resource map summarizes where the beam CSI-RS, CSI-IM, TRS, PDCCH, SSB, and UL/DL symbols are located within the TDD frame.

The map also shows the TDD downlink and uplink regions. Every CSI-RS, CSI-IM, and TRS resource must fall within valid downlink symbols. They must also avoid SSB and other reserved resources such as PDCCH. This diagram therefore provides a quick visual check of the complete time-domain allocation before verifying the detailed RRC configuration.

This diagram summarizes the complete CSI measurement and reporting hierarchy, from the physical CSI-RS and CSI-IM resources to the final CSI report configurations.

Maintaining a systematic ID structure is important because the same identifiers appear across the configuration file, RRC message, and runtime logs. A clear mapping diagram makes it easier to trace each report back to its CSI-RS and CSI-IM resources and helps prevent incorrect cross-references during configuration. (NOTE : Remember this structure and the ids (numbers) clearly and try to match each of the component to the settings in the configuration file and in the log analysis, otherwise it would be hard to get the big picture (real meaning) of the configuration file settings or RRC message in the log)

Configuration

The configuration shown here is common configuration for all the subtests belonging to Test 1 and I will not show this configuration repeatedly for every subtest.

I have used gnb-sa-rq-ri-pmi-cqi-4beam.cfg which is copied and modified from gnb-sa.cfg

NR SA CSI Test 1 Config 01

I am using the default mme, ims config as shown below.

NR BWP Test1 Configuration 02

In gnb-sa-rq-ri-pmi-cqi-4beam.cfg  it is configured as follows.

In this test, NR TDD mode is enabled by setting NR_TDD to 1, and TDD configuration 2 is selected through NR_TDD_CONFIG. N_ANTENNA_DL is set to 2, configuring two downlink antenna ports. Therefore, each beam can use a two-port CSI-RS resource, allowing the UE to measure and report RI, PMI, and CQI. N_ANTENNA_UL is set to 1, and USE_SRS is disabled. This test therefore focuses on downlink CSI-RS-based beam measurement and periodic CSI reporting rather than uplink SRS-based processing. The NR carrier bandwidth is configured as 20 MHz.

This example uses NR band n78 with a downlink NR-ARFCN of 632628, corresponding to approximately 3489.42 MHz. The subcarrier spacing is set to 30 kHz, and the SSB position bitmap selects the configured SSB transmission position.

The carrier band is not essential to the CSI-RS beam-management procedure, so another supported band and frequency may be used. FR2 would provide a more realistic beam-management scenario because directional beamforming is more important at higher frequencies, but FR1 band n78 is used here for easier test setup and equipment availability. (NOTE : For the sake of beam management, it would be more meaningful to use FR2, but I used FR1 for the convinience).

NR_TDD_CONFIG is set to 2, selecting a 5 ms TDD pattern with seven full downlink slots, six additional downlink symbols, two full uplink slots, and four uplink symbols.

Another TDD pattern may be used, but every CSI-RS resource must be scheduled within symbols configured for downlink transmission. A CSI-RS placed in an uplink symbol or outside the available downlink region cannot be transmitted correctly.

The CSI-RS slot offset and OFDM-symbol position should therefore be checked together with the selected TDD pattern when defining each CSI-RS resource.

This configuration defines CSI-RS resource ID 0 for the first simulated beam. Because N_ANTENNA_DL is set to 2, the resource uses two CSI-RS ports with fd_cdm2, allowing the two ports to share the allocated resource elements using frequency-domain CDM. first_symb is set to 4. Since the symbol index starts from 0, the CSI-RS is transmitted in the fifth OFDM symbol of the selected slot. The resource spans the configured carrier bandwidth from rb_start 0 to the end of the bandwidth. power_control_offset is set to -8 dB, making this CSI-RS weaker than the reference transmission power. No actual antenna beamforming or beam direction is applied in this test. Instead, different CSI-RS power offsets are used to emulate different received beam strengths so that the UE can distinguish and rank the four simulated beams.

The CSI-RS is transmitted periodically every 80 slots with slot offset 1. The non-zero offset helps place the resource in the intended downlink slot and avoid collision with other periodic signals such as SSB. qcl_info_periodic_csi_rs is set to 0 to associate this CSI-RS with the configured QCL reference information.  (NOTE : In this test, no specific beamforming is applied. Instead, I tried to simulate the angle of the beam by changing the relative power of the CSI RS).

This configuration defines CSI-RS resource ID 1 for the second simulated beam. Since N_ANTENNA_DL is set to 2, the resource uses two CSI-RS ports with fd_cdm2. first_symb is set to 4, so the CSI-RS is transmitted in the fifth OFDM symbol of the selected slot. The resource spans the configured carrier bandwidth from rb_start 0 to the end of the bandwidth. power_control_offset is set to -4 dB, making this CSI-RS stronger than the first beam configured with -8 dB. No actual beamforming direction is applied. Instead, different CSI-RS power levels are used to emulate different beam strengths.

The CSI-RS is transmitted every 80 slots with slot offset 2. Using a different offset places this resource in a different slot from the first CSI-RS while keeping the same reporting cycle.  (NOTE : In this test, no specific beamforming is applied. Instead, I tried to simulate the angle of the beam by changing the relative power of the CSI RS).

This configuration defines CSI-RS resource ID 2 for the third simulated beam. Since N_ANTENNA_DL is set to 2, the resource uses two CSI-RS ports with fd_cdm2. first_symb is set to 4, so the CSI-RS is transmitted in the fifth OFDM symbol of the selected slot. The resource spans the configured carrier bandwidth from rb_start 0 to the end of the bandwidth. power_control_offset is set to 0 dB, making this CSI-RS stronger than the first two resources configured with -8 dB and -4 dB. No physical beam direction is applied in this test. Instead, the different CSI-RS power levels emulate different beam qualities as observed by the UE.

The CSI-RS is transmitted every 80 slots with slot offset 3. This places the third CSI-RS in a different slot while keeping the same periodicity as the other beam-related CSI-RS resources. (NOTE : In this test, no specific beamforming is applied. Instead, I tried to simulate the angle of the beam by changing the relative power of the CSI RS).

This configuration defines CSI-RS resource ID 3 for the fourth simulated beam. Since N_ANTENNA_DL is set to 2, the resource uses two CSI-RS ports with fd_cdm2. first_symb is set to 4, so the CSI-RS is transmitted in the fifth OFDM symbol of the selected slot. The resource spans the configured carrier bandwidth from rb_start 0 to the end of the bandwidth. power_control_offset is set to 4 dB, making this the strongest of the four CSI-RS resources configured with -8 dB, -4 dB, 0 dB, and 4 dB. No actual beamforming direction is applied. Instead, these relative power differences emulate four beams with different received strengths.

The CSI-RS is transmitted every 80 slots with slot offset 4. This places the fourth resource in a separate slot while maintaining the same periodicity as the other beam-related CSI-RS resources. (NOTE : In this test, no specific beamforming is applied. Instead, I tried to simulate the angle of the beam by changing the relative power of the CSI RS).

This section defines the first two CSI-RS resources used to form the TRS. In this test, one TRS consists of four single-port CSI-RS resources.

CSI-RS IDs 8 and 9 are assigned to the first and second TRS resources. The gap between the beam CSI-RS IDs 0–3 and the TRS IDs is intentional, leaving room for additional beam CSI-RS resources in future configurations. The actual ID values are flexible, but they must be referenced consistently in the corresponding CSI-RS resource sets.

Both TRS resources use one antenna port with no CDM. CSI-RS ID 8 is placed at first_symb 4, corresponding to the fifth OFDM symbol, while CSI-RS ID 9 is placed at first_symb 8, corresponding to the ninth OFDM symbol.

Both resources use a 40-slot periodicity and slot offset 11, so they are transmitted in the same slot but at different OFDM-symbol positions. The resources span the configured bandwidth from rb_start 0 to the end of the carrier.

This section defines CSI-RS IDs 10 and 11 as the third and fourth resources of the same TRS.

Both resources use one CSI-RS port with no CDM and span the configured carrier bandwidth. CSI-RS ID 10 is placed at first_symb 4, corresponding to the fifth OFDM symbol, while CSI-RS ID 11 is placed at first_symb 8, corresponding to the ninth OFDM symbol.

Both resources use a 40-slot periodicity with slot offset 12. They are therefore transmitted in the slot immediately following the first TRS pair configured at offset 11. Together, CSI-RS IDs 8, 9, 10, and 11 form the four-resource TRS pattern distributed across two consecutive slots and two OFDM-symbol positions in each slot.

This section groups the individual CSI-RS resources into NZP CSI-RS resource sets.

CSI-RS resources 0, 1, 2, and 3 are assigned to separate resource sets with IDs 0, 1, 2, and 3. Each set contains only one CSI-RS resource, so each resource set represents one simulated beam independently. This structure allows the corresponding CSI resource configurations and CSI reports to reference each beam separately.

repetition is set to false for all four beam-related resource sets. The resources are therefore treated as independent CSI-RS transmissions rather than repeated transmissions using the same beam.

The four TRS resources, CSI-RS IDs 8, 9, 10, and 11, are grouped into one resource set with ID 8. trs_info is set to true, identifying this resource set as a tracking reference signal resource set.

The gap between beam resource-set IDs 0–3 and TRS resource-set ID 8 is only for easier future expansion. Other ID values may be used, but every resource-set ID and CSI-RS resource reference must remain consistent in the later CSI resource configuration.

This section defines four CSI-IM resources, one for each beam-related CSI-RS resource. CSI-IM provides the interference measurement resources used together with the corresponding CSI-RS when the UE derives CSI.

CSI-IM IDs 0, 1, 2, and 3 correspond to beam CSI-RS resources 0, 1, 2, and 3. Each CSI-IM uses pattern 1, starts from rb_start 0, and extends to the end of the configured bandwidth.

symbol_location is set to 8, placing the CSI-IM in the ninth OFDM symbol. This is different from the beam CSI-RS location at first_symb 4, so the CSI-IM and CSI-RS do not overlap in the same slot.

All CSI-IM resources use an 80-slot periodicity. Their offsets are set to 1, 2, 3, and 4, matching the slot offsets of the corresponding beam CSI-RS resources. As a result, each CSI-IM is transmitted in the same slot as its associated CSI-RS but at a different OFDM-symbol position.

This section groups the four CSI-IM resources into separate CSI-IM resource sets.

CSI-IM resources 0, 1, 2, and 3 are assigned to CSI-IM resource-set IDs 0, 1, 2, and 3 respectively. Each resource set contains only one CSI-IM resource and corresponds to one beam-related CSI-RS configuration.

This one-to-one mapping makes it possible to associate each beam CSI-RS resource with its own interference measurement resource in the later CSI resource configuration. The resource IDs and resource-set IDs must remain consistent throughout the CSI configuration hierarchy.

This section defines four zero-power CSI-RS resources corresponding to the four CSI-IM resources. Their resource elements overlap with the CSI-IM locations so that the gNB leaves those REs untransmitted, allowing the UE to measure interference and noise on the CSI-IM resources.

ZP CSI-RS resource IDs 0, 1, 2, and 3 correspond to CSI-IM IDs 0, 1, 2, and 3. Each resource is placed at first_symb 8, matching the ninth OFDM-symbol location used by the associated CSI-IM.

The frequency-domain allocation, bitmap, density, RB range, and periodic timing are configured to cover the same RE pattern as the CSI-IM. The four resources use an 80-slot periodicity with offsets 1, 2, 3, and 4, matching the slot offsets of the corresponding beam CSI-RS and CSI-IM resources.

Because these are zero-power CSI-RS resources, no CSI-RS signal is transmitted on the selected REs. The UE can therefore use those REs as interference measurement resources for CSI calculation.

The four zero-power CSI-RS resources are grouped into a single periodic ZP CSI-RS resource set.

zp_csi_rs_resources includes resource IDs 0, 1, 2, and 3. Each resource overlaps with one of the four CSI-IM resources and becomes active according to its own configured slot offset.

Grouping them into one set allows the gNB to configure all CSI-IM-related muted RE patterns through a single ZP CSI-RS resource-set definition.

This section defines four CSI resource configurations for the four beam-related NZP CSI-RS resource sets.

csi_rsc_config_id values 0, 1, 2, and 3 reference NZP CSI-RS resource-set IDs 0, 1, 2, and 3 respectively. Since each resource set contains one beam CSI-RS, each CSI resource configuration represents one individual simulated beam. resource_type is set to periodic for all four configurations because the associated CSI-RS resources are transmitted periodically every 80 slots.

These CSI resource configuration IDs will later be referenced by the CSI report configurations to specify which beam-related CSI-RS resource the UE should measure.

This section defines four CSI resource configurations for the CSI-IM resource sets and one additional configuration for TRS.

csi_rsc_config_id values 8, 9, 10, and 11 reference CSI-IM resource-set IDs 0, 1, 2, and 3 respectively. Each configuration therefore represents the interference measurement resource associated with one of the four beam CSI-RS resources. resource_type is set to periodic because the CSI-IM resources are transmitted with an 80-slot periodicity.

The gap between CSI resource configuration IDs 3 and 8 is intentional and leaves room for additional NZP CSI-RS configurations if more beam resources are added later. The actual ID values are flexible as long as all references remain consistent.

csi_rsc_config_id 16 references NZP CSI-RS resource-set ID 8, which contains CSI-RS IDs 8, 9, 10, and 11. This configuration represents the periodic TRS resource set used for tracking.

This section defines the periodic CSI report configuration for the first beam.

resources_for_channel_measurement is set to 0, referencing CSI resource configuration ID 0 for the first beam CSI-RS. csi_im_resources_for_interference is set to 8, referencing CSI resource configuration ID 8 for the corresponding CSI-IM resource. report_config_type is set to periodic, and the report period is 80 slots. The report offset is not configured directly in this file; the gNB assigns it automatically when generating the RRC configuration. report_quantity is set to CRI_RI_PMI_CQI. The UE therefore reports the CSI-RS resource indicator together with rank, precoding matrix, and channel-quality information for the first beam.

Since two downlink antenna ports are configured, Type I Single-Panel codebook configuration is applied. cqi_table is set to 2, and subband_size is set to value1 for the CSI reporting configuration.

This section defines the periodic CSI report configuration for the second beam.

resources_for_channel_measurement is set to 1, referencing CSI resource configuration ID 1 for the second beam CSI-RS. csi_im_resources_for_interference is set to 9, referencing CSI resource configuration ID 9 for the corresponding CSI-IM resource. report_config_type is set to periodic with an 80-slot reporting period. The report offset is assigned automatically by the gNB when the RRC configuration is generated. report_quantity is set to CRI_RI_PMI_CQI, so the UE reports the CSI-RS resource indicator, rank indicator, precoding matrix indicator, and channel quality indicator for the second beam.

With two downlink antenna ports, the Type I Single-Panel codebook configuration is used. cqi_table is set to 2, and subband_size is set to value1.

This section defines the periodic CSI report configuration for the third beam.

resources_for_channel_measurement is set to 2, referencing CSI resource configuration ID 2 for the third beam CSI-RS. csi_im_resources_for_interference is set to 10, referencing CSI resource configuration ID 10 for the corresponding CSI-IM resource. report_config_type is set to periodic with an 80-slot reporting period. The report offset is assigned automatically by the gNB when the RRC configuration is generated. report_quantity is set to CRI_RI_PMI_CQI, so the UE reports CRI, RI, PMI, and CQI for the third beam.

With two downlink antenna ports, the Type I Single-Panel codebook configuration is used. cqi_table is set to 2, and subband_size is set to value1.

This section defines the periodic CSI report configuration for the fourth beam.

resources_for_channel_measurement is set to 3, referencing CSI resource configuration ID 3 for the fourth beam CSI-RS. csi_im_resources_for_interference is set to 11, referencing CSI resource configuration ID 11 for the corresponding CSI-IM resource. report_config_type is set to periodic with an 80-slot reporting period. The report offset is assigned automatically by the gNB when generating the RRC configuration. report_quantity is set to CRI_RI_PMI_CQI, so the UE reports CRI, RI, PMI, and CQI for the fourth beam.

With two downlink antenna ports, the Type I Single-Panel codebook configuration is used. cqi_table is set to 2, and subband_size is set to value1.

Perform the Test

Operation for this test is very simple. The difficult part is verfication with the log and other methods.

After starting the gNB, use the cell phy command to confirm the basic cell configuration. In this example, the cell operates in NR band n78 with a 20 MHz bandwidth, downlink NR-ARFCN 632628, two downlink antenna ports, 30 kHz subcarrier spacing, and 256QAM support. The uplink uses one antenna port with the same numerology, while the SSB is transmitted at NR-ARFCN 632544 with 30 kHz subcarrier spacing.

The cell phy output confirms only the basic RF and PHY configuration. It does not display the CSI-RS resources, CSI-IM resources, resource sets, or CSI report configurations. These details must be verified through the RRC messages, PHY logs, and CSI report logs collected during the test.

Run the t command to start the live PHY trace, then power on the UE and wait until the NR connection is established.

The PRACH line confirms successful random access detection, including the detected preamble sequence, timing advance estimate, and received SNR.

After the UE connects, the trace displays the UE context and current downlink and uplink status. The UE is assigned RNTI 4601 on cell 001. The displayed rows show periodic updates of CQI, RI, MCS, retransmissions, throughput, SNR, PUCCH, uplink MCS, received packets, HARQ status, power headroom, path loss, and timing advance.

At this stage, the output confirms that the UE is connected and exchanging traffic. However, it does not by itself prove that all four CSI-RS resources and periodic CSI reports are configured correctly. Detailed verification must be performed using the RRC and PHY logs.

Log Analysis

Sample Log (with UEsim)

Sample Log (with Commercial UE)

This is just for showing the association between the configuration shown above and IE (Information Elements) in RRC and see if UE report CSI RS as you intended.

Before collecting the log, configure the ENB logging levels to debug so that the full protocol-stack trace is recorded.

In the Amarisoft Web GUI, open the ENB configuration window and set the relevant protocol layers to debug for both filtering and display level. This provides detailed PHY, MAC, RLC, RRC, NAS, and other signalling information needed to verify the CSI configuration.

Enable the CSI option under PHY flags. This allows decoded CSI reports and their bit fields to be displayed in a more readable form instead of showing only the raw report payload. After applying the settings with Update, start the log collection and reconnect the UE so that the complete RRC configuration and subsequent periodic CSI reports are captured.

The RRC Setup message initially configures one default PDCCH TCI state. tci-StateId 0 is associated with SSB index 0 through referenceSignal ssb 0, with qcl-Type set to typeD.

This TCI state is generated automatically by the gNB and is not derived from the beam CSI-RS resources configured earlier. It provides the UE with the initial spatial reference used for receiving the UE-specific PDCCH.

At this stage, the PDCCH therefore continues to use the beam or spatial properties associated with SSB 0. The presence of four beam-measurement CSI-RS resources does not automatically create four PDCCH TCI states or switch the PDCCH among them.

Additional PDCCH TCI states can be configured manually with tci_states_pdcch_config when the test requires explicit association between PDCCH reception and selected CSI-RS or SSB references. (NOTE : You can manually configure this if you like with tci_states_pdcch_config )

The RRC Setup message includes the four periodic zero-power CSI-RS resources under zp-CSI-RS-ResourceToAddModList. The screenshot shows the first three resources, with resource IDs 0, 1, and 2; resource ID 3 follows with the same structure.

For each resource, the RRC configuration preserves the frequency-domain allocation, four-port fd-CDM2 mapping, first OFDM-symbol position 8, density, and bandwidth range defined in the gNB configuration.

The periodicityAndOffset values are slots80 with offsets 1, 2, and 3 for resource IDs 0, 1, and 2 respectively. Resource ID 3 is configured with offset 4. These timing values match the corresponding CSI-IM resources.

This confirms that the gNB correctly translated the four configured ZP CSI-RS resources into the RRC message. By reserving these REs as zero-power CSI-RS, the UE can use the overlapping CSI-IM resources to measure interference and noise without gNB transmission on those REs.

The RRC Setup message confirms the fourth zero-power CSI-RS resource as zp-CSI-RS-ResourceId 3.

Its RRC parameters match the gNB configuration: four CSI-RS ports, row4 frequency-domain allocation, fd-CDM2, first OFDM symbol 8, density one, and the configured carrier bandwidth. periodicityAndOffset is set to slots80 with offset 4, matching the fourth CSI-IM timing.

The message also includes p-ZP-CSI-RS-ResourceSetId 0, whose zp-CSI-RS-ResourceIdList contains resource IDs 0, 1, 2, and 3. This confirms that all four ZP CSI-RS resources are grouped into the same periodic resource set.

Together, these resources mute the REs corresponding to the four CSI-IM patterns, allowing the UE to perform interference measurements for each beam-related CSI report.

The RRC Setup message confirms the first beam-related NZP CSI-RS as nzp-CSI-RS-ResourceId 0.

The RRC parameters match the gNB configuration: two CSI-RS ports, fd-CDM2, the configured frequency-domain allocation, and firstOFDMSymbolInTimeDomain 4, corresponding to the fifth OFDM symbol. The resource spans the configured bandwidth from startingRB 0 across 52 RBs.

powerControlOffset is set to -8 dB, making this the weakest of the four simulated beam resources. powerControlOffsetSS is 0 dB, and scramblingID is 500.

periodicityAndOffset is configured as slots80 with offset 1, matching the periodic timing defined for CSI-RS resource ID 0. qcl-InfoPeriodicCSI-RS is set to 0, linking the resource to the configured QCL reference information.

This confirms that the first beam CSI-RS configuration was translated correctly into nzp-CSI-RS-ResourceToAddModList in the RRC message.

The RRC Setup message confirms the second beam-related NZP CSI-RS as nzp-CSI-RS-ResourceId 1.

The RRC parameters match the gNB configuration: two CSI-RS ports, fd-CDM2, the configured frequency-domain allocation, and firstOFDMSymbolInTimeDomain 4, corresponding to the fifth OFDM symbol. The resource spans 52 RBs starting from RB 0.

powerControlOffset is set to -4 dB, making the second simulated beam 4 dB stronger than the first beam configured at -8 dB. powerControlOffsetSS remains 0 dB, and scramblingID is 500.

periodicityAndOffset is configured as slots80 with offset 2, matching the timing defined for CSI-RS resource ID 1. qcl-InfoPeriodicCSI-RS is set to 0.

This confirms that the second beam CSI-RS was correctly mapped into nzp-CSI-RS-ResourceToAddModList in the RRC message.

The RRC Setup message confirms the third beam-related NZP CSI-RS as nzp-CSI-RS-ResourceId 2.

The RRC parameters match the gNB configuration: two CSI-RS ports, fd-CDM2, the configured frequency-domain allocation, and firstOFDMSymbolInTimeDomain 4, corresponding to the fifth OFDM symbol. The resource spans 52 RBs starting from RB 0.

powerControlOffset is set to 0 dB, making the third simulated beam stronger than the first two beams configured at -8 dB and -4 dB. powerControlOffsetSS remains 0 dB, and scramblingID is 500.

periodicityAndOffset is configured as slots80 with offset 3, matching the timing defined for CSI-RS resource ID 2. qcl-InfoPeriodicCSI-RS is set to 0.

This confirms that the third beam CSI-RS was correctly mapped into nzp-CSI-RS-ResourceToAddModList in the RRC message.

The RRC Setup message confirms the fourth beam-related NZP CSI-RS as nzp-CSI-RS-ResourceId 3.

The RRC parameters match the gNB configuration: two CSI-RS ports, fd-CDM2, the configured frequency-domain allocation, and firstOFDMSymbolInTimeDomain 4, corresponding to the fifth OFDM symbol. The resource spans 52 RBs starting from RB 0.

powerControlOffset is set to 4 dB, making the fourth simulated beam the strongest among the four resources configured at -8 dB, -4 dB, 0 dB, and 4 dB. powerControlOffsetSS remains 0 dB, and scramblingID is 500.

periodicityAndOffset is configured as slots80 with offset 4, matching the timing defined for CSI-RS resource ID 3. qcl-InfoPeriodicCSI-RS is set to 0.

This confirms that the fourth beam CSI-RS was correctly mapped into nzp-CSI-RS-ResourceToAddModList in the RRC message.

The RRC Setup message confirms the first two TRS resources as nzp-CSI-RS-ResourceId 8 and 9.

Both resources use one CSI-RS port with no CDM, density three, and the configured row1 frequency-domain allocation. They span 52 RBs starting from RB 0 and use a 40-slot periodicity.

Resource ID 8 is placed at firstOFDMSymbolInTimeDomain 4, corresponding to the fifth OFDM symbol, while resource ID 9 is placed at symbol 8, corresponding to the ninth OFDM symbol. Both use slot offset 11, so they are transmitted in the same slot at different symbol positions.

The power offsets are 0 dB, scramblingID is 500, and qcl-InfoPeriodicCSI-RS is set to 0. This confirms that the first two TRS CSI-RS resources were correctly mapped into nzp-CSI-RS-ResourceToAddModList.

The RRC Setup message confirms the remaining two TRS resources as nzp-CSI-RS-ResourceId 10 and 11.

Both resources use one CSI-RS port with no CDM, density three, and the row1 frequency-domain allocation. They span 52 RBs starting from RB 0 and use a 40-slot periodicity.

Resource ID 10 is placed at firstOFDMSymbolInTimeDomain 4, corresponding to the fifth OFDM symbol, while resource ID 11 is placed at symbol 8, corresponding to the ninth OFDM symbol. Both use slot offset 12, so they are transmitted together in the slot following the first TRS pair configured with offset 11.

The power offsets are 0 dB, scramblingID is 500, and qcl-InfoPeriodicCSI-RS is set to 0. Together with resource IDs 8 and 9, these resources complete the four-resource TRS pattern across two consecutive slots.

The RRC Setup message confirms the NZP CSI-RS resource-set structure defined in the gNB configuration.

NZP CSI-RS resource-set IDs 0, 1, 2, and 3 contain CSI-RS resource IDs 0, 1, 2, and 3 respectively. Each beam-related CSI-RS is therefore placed in its own resource set, allowing the later CSI resource and report configurations to reference each simulated beam independently.

repetition is set to false for these beam resource sets, indicating that the resources are not configured as repeated transmissions of the same beam.

NZP CSI-RS resource-set ID 8 contains CSI-RS resource IDs 8, 9, 10, and 11. trs-Info is present and set to true, identifying this set as the four-resource TRS configuration.

This confirms that the gNB correctly translated the configured beam CSI-RS and TRS groupings into nzp-CSI-RS-ResourceSetToAddModList in the RRC message.

The RRC Setup message confirms the first three CSI-IM resources as csi-IM-ResourceId 0, 1, and 2.

Each resource uses CSI-IM pattern 1 with subcarrier location p1 s8 and symbol location p1 8. The resources span 52 RBs starting from RB 0, matching the configured carrier bandwidth.

All three resources use an 80-slot periodicity. Their offsets are 1, 2, and 3 respectively, matching the timing of the corresponding beam CSI-RS resources.

This confirms that CSI-IM resource IDs 0, 1, and 2 were correctly translated into csi-IM-ResourceToAddModList in the RRC message.

The RRC Setup message confirms the fourth CSI-IM resource as csi-IM-ResourceId 3.

It uses CSI-IM pattern 1 with subcarrier location p1 s8 and symbol location p1 8. The resource spans 52 RBs starting from RB 0 and uses an 80-slot periodicity with offset 4, matching the timing of the fourth beam CSI-RS.

The message also confirms four CSI-IM resource sets. csi-IM-ResourceSetId values 0, 1, 2, and 3 contain CSI-IM resource IDs 0, 1, 2, and 3 respectively.

This verifies the intended one-to-one mapping in which each beam CSI-RS has its own CSI-IM resource and CSI-IM resource set for interference measurement.

The RRC Setup message confirms four CSI resource configurations for the four beam-related NZP CSI-RS resource sets.

csi-ResourceConfigId values 0, 1, 2, and 3 reference NZP CSI-RS resource-set IDs 0, 1, 2, and 3 respectively. Each CSI resource configuration therefore points to one independent beam CSI-RS resource set.

resourceType is set to periodic for all four configurations, matching the periodic transmission of the corresponding CSI-RS resources. bwp-Id is set to 0, so all four configurations apply to the initial downlink BWP.

This confirms that the four beam CSI-RS resource sets were correctly mapped into csi-ResourceConfigToAddModList and are ready to be referenced by the corresponding CSI report configurations.

The RRC Setup message confirms four CSI resource configurations for the CSI-IM resource sets and one additional configuration for the TRS resource set.

csi-ResourceConfigId values 8, 9, 10, and 11 reference CSI-IM resource-set IDs 0, 1, 2, and 3 respectively. Each configuration therefore provides the interference measurement resource associated with one of the four beam CSI reports.

csi-ResourceConfigId 16 references NZP CSI-RS resource-set ID 8, which contains the four TRS resources with IDs 8, 9, 10, and 11.

resourceType is set to periodic for all five configurations, and bwp-Id is set to 0. This confirms that the CSI-IM and TRS resource sets were correctly mapped into csi-ResourceConfigToAddModList and can be referenced by the related CSI measurement and reporting procedures.

The RRC Setup message confirms CSI report configuration ID 0 for the first simulated beam.

resourcesForChannelMeasurement is set to 0, referencing CSI resource configuration ID 0 for the first beam CSI-RS. csi-IM-ResourcesForInterference is set to 8, referencing CSI resource configuration ID 8 for the corresponding CSI-IM resource.

The report is periodic with an 80-slot period. reportSlotOffset is automatically assigned by the gNB as 9. The report is transmitted using PUCCH resource 13 on uplink BWP 0.

reportQuantity is set to cri-RI-PMI-CQI, so the UE reports CRI, RI, PMI, and CQI. The report uses wideband CQI and wideband PMI.

For the two-port CSI-RS, the codebook is configured as Type I Single-Panel with two antenna ports and codebookMode 1. cqi-Table is set to table2, while subbandSize is set to value1.

This confirms that the first beam CSI-RS, its associated CSI-IM resource, and the periodic PUCCH reporting parameters were correctly linked in csi-ReportConfigToAddModList.

The RRC Setup message confirms CSI report configuration ID 1 for the second simulated beam.

resourcesForChannelMeasurement is set to 1, referencing CSI resource configuration ID 1 for the second beam CSI-RS. csi-IM-ResourcesForInterference is set to 9, referencing CSI resource configuration ID 9 for the corresponding CSI-IM resource.

The report is periodic with an 80-slot period. reportSlotOffset is automatically assigned by the gNB as 18. The report is carried on PUCCH resource 14 in uplink BWP 0.

reportQuantity is set to cri-RI-PMI-CQI, so the UE reports CRI, RI, PMI, and CQI. Wideband CQI and wideband PMI are configured.

For the two-port CSI-RS, the codebook uses Type I Single-Panel with two antenna ports and codebookMode 1. cqi-Table is set to table2, and subbandSize is set to value1.

This confirms that the second beam CSI-RS, its associated CSI-IM resource, and the periodic PUCCH reporting parameters were correctly linked in csi-ReportConfigToAddModList.

The RRC Setup message confirms CSI report configuration ID 2 for the third simulated beam.

resourcesForChannelMeasurement is set to 2, referencing CSI resource configuration ID 2 for the third beam CSI-RS. csi-IM-ResourcesForInterference is set to 10, referencing CSI resource configuration ID 10 for the corresponding CSI-IM resource.

The report is periodic with an 80-slot period. reportSlotOffset is automatically assigned by the gNB as 19. The report is transmitted using PUCCH resource 15 on uplink BWP 0.

reportQuantity is set to cri-RI-PMI-CQI, so the UE reports CRI, RI, PMI, and CQI. Wideband CQI and wideband PMI reporting are configured.

For the two-port CSI-RS, the codebook uses Type I Single-Panel with two antenna ports and codebookMode 1. cqi-Table is set to table2, and subbandSize is set to value1.

This confirms that the third beam CSI-RS, its corresponding CSI-IM resource, and the periodic PUCCH reporting parameters were correctly linked in csi-ReportConfigToAddModList.

The RRC Setup message confirms CSI report configuration ID 3 for the fourth simulated beam.

resourcesForChannelMeasurement is set to 3, referencing CSI resource configuration ID 3 for the fourth beam CSI-RS. csi-IM-ResourcesForInterference is set to 11, referencing CSI resource configuration ID 11 for the corresponding CSI-IM resource.

The report is periodic with an 80-slot period. reportSlotOffset is automatically assigned by the gNB as 28. The report is transmitted using PUCCH resource 16 on uplink BWP 0.

reportQuantity is set to cri-RI-PMI-CQI, so the UE reports CRI, RI, PMI, and CQI. Wideband CQI and wideband PMI reporting are configured.

For the two-port CSI-RS, the codebook uses Type I Single-Panel with two antenna ports and codebookMode 1. cqi-Table is set to table2, and subbandSize is set to value1.

This confirms that the fourth beam CSI-RS, its corresponding CSI-IM resource, and the periodic PUCCH reporting parameters were correctly linked in csi-ReportConfigToAddModList.

Once the UE is connected and the configuration is applied, the PHY log shows periodic CSI reports carried on PUCCH.

Each CSI entry is decoded as CRI_RI_PMI_CQI and includes the reported RI, PMI components, and CQI. In this example, RI is reported as 2, while the CQI values differ across the four report configurations.

The observed CQI values are approximately 11, 14, 15, and 15. This follows the configured CSI-RS power offsets of -8 dB, -4 dB, 0 dB, and 4 dB. The weaker CSI-RS produces the lower CQI, while the stronger resources produce higher CQI values.

The two strongest CSI-RS resources may report the same maximum or near-maximum CQI because CQI is quantized and limited by the selected CQI table. Therefore, increasing CSI-RS power does not always produce a further CQI increase once the reported value reaches the upper range.

The alternating PUCCH and CSI log entries confirm that the UE is transmitting the periodic CSI reports at the report offsets automatically assigned by the gNB.

Visualization of CSI RS

Here I will show you on how to visualize CSI-RS physical resources in various different format. It is not possible to visualize the beam itself, but you can visualize exact physical resources for each CSI RS in this way. To do this, I am using the tool trx-iq-dump.js which is explained in detail in this tutorial. (NOTE : You can do similar visualization with sdr_spectrum, there is Pros and Cons of sdr_spectrum in terms of CSI-RS visualization. The advantage of sdr_spectrum would be that it can visualize the signal on the fly. The drawback of sdr_spectrum would be that it is difficult to capture a specific subframe/slot deterministic way).

This visualization shows the SSB transmitted at SFN 0618, subframe 0, slot 0.

The lower-left OFDM symbol versus spectrum plot makes the SSB easy to identify from its localized time-frequency allocation. The SSB occupies four consecutive OFDM symbols and only part of the carrier bandwidth, unlike PDSCH or other wideband signals that may span most of the configured bandwidth.

The upper spectrum and power-versus-time plots show the combined transmitted waveform within the selected slot. The SSB-related region appears with a distinct power and bandwidth pattern, while the lower-right plot shows how the signal power changes across the OFDM symbols.

SSB is not used as one of the four beam-measurement resources in this test. However, identifying its position is useful as a reference and confirms why periodic CSI-RS resources should be configured with non-zero slot offsets to avoid collision with SSB transmission.

This visualization shows the first two TRS CSI-RS resources at SFN 0618, subframe 5, slot 1.

The lower-left spectrogram clearly shows two wideband CSI-RS patterns located at OFDM symbol indices 4 and 8, corresponding to the fifth and ninth OFDM symbols. These are NZP CSI-RS resource IDs 8 and 9, which share the same slot offset but use different symbol positions.

Both resources span almost the full configured bandwidth and use the same transmission power. Their one-port row1 mapping produces the sparse comb-like pattern visible across the frequency domain.

The upper-right power-versus-time plot also shows two separate transmission regions within the slot. This confirms that the first TRS pair is transmitted in the intended slot and at the expected OFDM-symbol locations.

This visualization shows the final two TRS CSI-RS resources at SFN 0618, subframe 6, slot 0.

The lower-left spectrogram shows two wideband CSI-RS patterns at OFDM symbol indices 4 and 8, corresponding to the fifth and ninth OFDM symbols. These are NZP CSI-RS resource IDs 10 and 11.

Both resources use the same one-port row1 mapping, span nearly the full configured bandwidth, and are transmitted with the same power. The sparse frequency-domain pattern is characteristic of the configured TRS CSI-RS allocation.

The upper-right power-versus-time plot shows two separate transmission regions within the slot. Together with resource IDs 8 and 9 transmitted in the previous slot, these resources complete the four-resource TRS pattern across two consecutive slots.

This visualization shows the first beam-measurement CSI-RS at SFN 0620, subframe 0, slot 1.

The lower-left spectrogram shows the CSI-RS at OFDM symbol index 4, corresponding to the fifth OFDM symbol. Its comb-like frequency-domain pattern extends across the configured carrier bandwidth and reflects the two-port fd-CDM2 CSI-RS mapping.

This is NZP CSI-RS resource ID 0, configured with an 80-slot periodicity and slot offset 1. Its relative power offset is -8 dB, making it the weakest of the four simulated beam CSI-RS resources.

The upper-right power-versus-time plot shows a single transmission region at the configured symbol location. This confirms that the first beam CSI-RS is transmitted in the expected slot and does not overlap with the CSI-IM resource placed later in the same slot.

This visualization shows the second beam-measurement CSI-RS at SFN 0620, subframe 1, slot 0.

The CSI-RS appears at OFDM symbol index 4, corresponding to the fifth OFDM symbol. Its comb-like frequency-domain pattern spans the configured carrier bandwidth and reflects the two-port fd-CDM2 resource mapping.

This is NZP CSI-RS resource ID 1, configured with an 80-slot periodicity and slot offset 2. Its powerControlOffset is -4 dB, making it 4 dB stronger than the first beam CSI-RS configured at -8 dB.

The power-versus-time plot shows a single transmission region at the expected symbol position. This confirms that the second beam CSI-RS is transmitted in the intended slot and symbol for the associated periodic CSI measurement.

This visualization shows the third beam-measurement CSI-RS at SFN 0620, subframe 1, slot 1.

The CSI-RS appears at OFDM symbol index 4, corresponding to the fifth OFDM symbol. Its comb-like frequency-domain pattern spans the configured carrier bandwidth and reflects the two-port fd-CDM2 mapping.

This is NZP CSI-RS resource ID 2, configured with an 80-slot periodicity and slot offset 3. Its powerControlOffset is 0 dB, making it stronger than the first two beam CSI-RS resources configured at -8 dB and -4 dB.

The power-versus-time plot shows a single transmission region at the expected symbol position. This confirms that the third beam CSI-RS is transmitted in the intended slot and symbol for periodic CSI measurement and reporting.

This visualization shows the fourth beam-measurement CSI-RS at SFN 0620, subframe 2, slot 0.

The CSI-RS appears at OFDM symbol index 4, corresponding to the fifth OFDM symbol. Its comb-like frequency-domain pattern spans the configured carrier bandwidth and reflects the two-port fd-CDM2 mapping.

This is NZP CSI-RS resource ID 3, configured with an 80-slot periodicity and slot offset 4. Its powerControlOffset is 4 dB, making it the strongest of the four simulated beam CSI-RS resources.

The power-versus-time plot shows a single transmission region at the expected symbol position. Together with resource IDs 0, 1, and 2, this confirms that all four beam-measurement CSI-RS resources are transmitted in separate slots with the intended timing and relative power levels.

Test 2 : Periodic CSI Report with CRI

In this test, I will show you how to configure manually the periodic CSI report for the 4 different CSI-RS (2 ports each). In this test, the four different CSI-RS is associated to a single resource set which will be used for single CSI report. In this case, UE is expected to measure all of the beams and report the best beam with beam id(CRI) and the measurement result in a single report

As you may know if you have tried to configure this kind of measurement before, you would know it is extremly complicated and confusing to configure those multiple CSI RS report manually. My personal tips to create a test plan for this kind of case is to draw a few diagram clearly showing what is intended to do. In my case, I usually draw two diagrams as shown below.

This time-domain resource map shows the physical allocation used for Test 2. The CSI-RS, CSI-IM, TRS, PDCCH, SSB, and TDD UL/DL symbols use the same basic timing structure as in Test 1.

The four beam CSI-RS resources and their corresponding CSI-IM resources use an 80-slot periodicity with slot offsets 1, 2, 3, and 4. Each beam CSI-RS is transmitted at OFDM symbol 4, while the associated CSI-IM is placed later in the same slot at OFDM symbol 8.

The four CSI-RS resources use relative power offsets of -8 dB, -4 dB, 0 dB, and 4 dB to emulate four beams with different received strengths. In Test 2, however, all four CSI-RS resources will be grouped into one NZP CSI-RS resource set so that the UE can compare them within a single CSI reporting configuration.

The TRS uses a 40-slot periodicity and consists of four CSI-RS resources distributed across slot offsets 11 and 12. All CSI-RS, CSI-IM, and TRS resources must be placed only in valid downlink symbols and must avoid SSB, PDCCH, and uplink regions.

This diagram summarizes the CSI measurement and reporting hierarchy used in Test 2.

The main difference from Test 1 is that beam CSI-RS resources 0, 1, 2, and 3 are grouped into a single NZP CSI-RS resource set with ID 0. CSI resource configuration ID 0 references this shared resource set and is used as the channel-measurement input to CSI report configuration ID 0.

Because one resource set contains multiple CSI-RS resources, the UE can compare all four candidate beams and indicate the selected CSI-RS through CRI. A resource set containing only one CSI-RS would not provide a meaningful beam choice for CRI reporting.

CSI-IM resources 0, 1, 2, and 3 remain in separate CSI-IM resource sets 0, 1, 2, and 3. These are referenced by CSI resource configuration IDs 8, 9, 10, and 11. However, the final CSI report uses the configured CSI-IM resource configuration associated with the common channel-measurement resource.

TRS CSI-RS resources 8, 9, 10, and 11 are grouped into NZP CSI-RS resource set 8 and referenced by CSI resource configuration ID 16. This TRS branch is used for tracking and is separate from the CRI beam-selection report.

Maintaining the ID mapping consistently across the configuration file, RRC message, and runtime logs is especially important here because multiple physical CSI-RS resources converge into one resource set, one channel-measurement configuration, and one CSI report configuration.

Configuration

The configuration shown here is common configuration for all the subtests belonging to Test 1 and I will not show this configuration repeatedly for every subtest.

I have used gnb-sa-rq-cri-ri-pmi-cqi-4beam.cfg which is copied and modified from gnb-sa.cfg

NR SA CSI Test 1 Config 01

I am using the default mme, ims config as shown below.

NR BWP Test1 Configuration 02

In gnb-sa-rq-cri-ri-pmi-cqi-4beam.cfg  it is configured as follows.

This test uses NR TDD mode with NR_TDD set to 1 and TDD configuration 2 selected through NR_TDD_CONFIG.

N_ANTENNA_DL is set to 2, configuring two downlink antenna ports. Each beam CSI-RS therefore uses two ports, allowing the UE to report RI, PMI, CQI, and CRI for the selected CSI-RS resource. N_ANTENNA_UL remains set to 1, and USE_SRS is disabled. The test therefore focuses on downlink CSI-RS-based beam comparison and periodic CSI reporting rather than uplink SRS-based measurements.

The NR carrier bandwidth is configured as 20 MHz.

This example uses NR band n78 with downlink NR-ARFCN 632628, corresponding to approximately 3489.42 MHz. The subcarrier spacing is set to 30 kHz, and the SSB position bitmap selects the configured SSB transmission position.

The selected band does not change the basic CSI-RS and CRI reporting procedure. Another supported band and frequency may be used as long as the carrier, numerology, bandwidth, and CSI-RS timing are configured consistently.

FR2 would provide a more representative beam-management environment because directional beamforming is generally more important at higher frequencies. However, FR1 band n78 is used here for easier test setup and equipment availability. (NOTE : For the sake of beam management, it would be more meaningful to use FR2, but I used FR1 for the convinience).

NR_TDD_CONFIG is set to 2, selecting a 5 ms TDD pattern with seven full downlink slots, six additional downlink symbols, two full uplink slots, and four uplink symbols.

Another TDD pattern may be used, but every beam CSI-RS, CSI-IM, and TRS resource must be placed within symbols configured for downlink transmission.

The CSI-RS slot offset and OFDM-symbol location must therefore be checked against the selected TDD pattern. A resource placed in an uplink symbol or outside the valid downlink region cannot be transmitted or measured correctly.

This configuration defines NZP CSI-RS resource ID 0 as the first candidate beam in the CRI-based reporting test.

Since N_ANTENNA_DL is set to 2, the CSI-RS uses two antenna ports with fd_cdm2. first_symb is set to 4, placing the resource in the fifth OFDM symbol, and the resource spans the configured carrier bandwidth.

power_control_offset is set to -8 dB, making this the weakest of the four simulated beams. No physical beamforming direction is applied in this test. Instead, different CSI-RS power levels are used to emulate candidate beams with different received strengths.

The CSI-RS is transmitted periodically every 80 slots with slot offset 1. In Test 2, this resource will later be grouped with CSI-RS resource IDs 1, 2, and 3 in a single NZP CSI-RS resource set so that the UE can compare all four resources and report the preferred one through CRI.

This configuration defines NZP CSI-RS resource ID 1 as the second candidate beam in the CRI-based reporting test.

Since N_ANTENNA_DL is set to 2, the CSI-RS uses two antenna ports with fd_cdm2. first_symb is set to 4, placing the resource in the fifth OFDM symbol, and the resource spans the configured carrier bandwidth.

power_control_offset is set to -4 dB, making this resource 4 dB stronger than the first candidate beam configured at -8 dB. No physical beamforming direction is applied. Instead, the relative CSI-RS power is changed to emulate beams with different received strengths.

The CSI-RS is transmitted every 80 slots with slot offset 2. It will later be grouped with CSI-RS resource IDs 0, 2, and 3 in the same NZP CSI-RS resource set, allowing the UE to compare all four resources and indicate the preferred one through CRI.

This configuration defines NZP CSI-RS resource ID 2 as the third candidate beam in the CRI-based reporting test.

Since N_ANTENNA_DL is set to 2, the CSI-RS uses two antenna ports with fd_cdm2. first_symb is set to 4, placing the resource in the fifth OFDM symbol, and the resource spans the configured carrier bandwidth.

power_control_offset is set to 0 dB, making this resource stronger than the first two candidate beams configured at -8 dB and -4 dB. No physical beamforming direction is applied. Instead, different CSI-RS power levels are used to emulate beams with different received strengths.

The CSI-RS is transmitted every 80 slots with slot offset 3. It will later be grouped with CSI-RS resource IDs 0, 1, and 3 in the same NZP CSI-RS resource set, allowing the UE to compare all four resources and report the preferred one through CRI.

This configuration defines NZP CSI-RS resource ID 3 as the fourth candidate beam in the CRI-based reporting test.

Since N_ANTENNA_DL is set to 2, the CSI-RS uses two antenna ports with fd_cdm2. first_symb is set to 4, placing the resource in the fifth OFDM symbol, and the resource spans the configured carrier bandwidth.

power_control_offset is set to 4 dB, making this the strongest of the four candidate beams configured at -8 dB, -4 dB, 0 dB, and 4 dB. No physical beamforming direction is applied. Instead, the different CSI-RS power levels emulate beams with different received strengths.

The CSI-RS is transmitted every 80 slots with slot offset 4. It will later be grouped with CSI-RS resource IDs 0, 1, and 2 in the same NZP CSI-RS resource set, allowing the UE to compare all four resources and report resource ID 3 through CRI when it is selected as the best beam.

This section defines the four single-port CSI-RS resources used to form the TRS.

CSI-RS resource IDs 8 and 9 use a 40-slot periodicity with slot offset 11. Resource ID 8 is placed at OFDM symbol 4, while resource ID 9 is placed at OFDM symbol 8. They are therefore transmitted in the same slot at two different symbol positions.

CSI-RS resource IDs 10 and 11 use the same 40-slot periodicity with slot offset 12. Resource ID 10 is placed at OFDM symbol 4, while resource ID 11 is placed at OFDM symbol 8. These two resources are transmitted in the following slot.

All four TRS resources use one CSI-RS port, row1 frequency-domain allocation, no CDM, density 3, and span the configured carrier bandwidth. Together, resource IDs 8, 9, 10, and 11 form one four-resource TRS pattern across two consecutive slots.

The gap between beam CSI-RS IDs 0–3 and TRS CSI-RS IDs 8–11 is only reserved for possible future expansion. Other ID values may be used as long as the same IDs are referenced consistently in the NZP CSI-RS resource-set configuration.

The four TRS CSI-RS resources, IDs 8, 9, 10, and 11, are grouped into NZP CSI-RS resource-set ID 8. repetition is set to false, and trs_info is set to true to identify the set as a tracking reference signal resource set.

The gap between beam CSI-RS IDs 0–3 and TRS IDs 8–11 leaves room for adding more beam-related CSI-RS resources later. The specific ID values are flexible, but they must be referenced consistently in the corresponding CSI resource configuration..

This section defines four CSI-IM resources corresponding to the four beam CSI-RS resources.

CSI-IM resource IDs 0, 1, 2, and 3 use pattern 1 and span the configured carrier bandwidth. Each resource is placed at symbol_location 8, corresponding to the ninth OFDM symbol, while the associated beam CSI-RS is transmitted at OFDM symbol 4. This prevents the CSI-IM and CSI-RS from overlapping within the same slot.

All four CSI-IM resources use an 80-slot periodicity. Their slot offsets are 1, 2, 3, and 4, matching the offsets of beam CSI-RS resource IDs 0, 1, 2, and 3 respectively.

This timing alignment allows the UE to measure the desired CSI-RS and the corresponding interference resource within the same measurement occasion.

This section groups the four CSI-IM resources into four separate CSI-IM resource sets.

CSI-IM resource IDs 0, 1, 2, and 3 are assigned to CSI-IM resource-set IDs 0, 1, 2, and 3 respectively. Each resource set contains one CSI-IM resource and corresponds to one of the four beam CSI-RS measurement occasions.

This one-to-one structure keeps the interference resources independently addressable in the later CSI resource configurations. The resource and resource-set IDs must remain consistent when they are referenced by csi-ResourceConfig and the final CSI report configuration.

This section defines four periodic zero-power CSI-RS resources corresponding to the four CSI-IM resources.

ZP CSI-RS resource IDs 0, 1, 2, and 3 are configured to overlap the RE locations of CSI-IM resource IDs 0, 1, 2, and 3. Because these are zero-power resources, the gNB does not transmit on the selected REs, allowing the UE to measure interference and noise.

Each resource uses four ports with fd_cdm2, first_symb 8, density 1, and spans the configured carrier bandwidth. The four resources use an 80-slot periodicity with offsets 1, 2, 3, and 4, matching the timing of the corresponding CSI-IM resources.

This matching time-frequency allocation ensures that the intended CSI-IM REs are muted for each beam measurement occasion.

The four periodic zero-power CSI-RS resources are grouped into a single ZP CSI-RS resource set.

zp_csi_rs_resources contains resource IDs 0, 1, 2, and 3. Each resource corresponds to one CSI-IM occasion and mutes the REs used for interference measurement.

Grouping them into one set allows all four zero-power patterns to be configured together in the RRC message while each resource still follows its own periodic slot offset.

This section defines CSI resource configuration ID 0 for channel measurement across the four beam-related CSI-RS resources.

csi_rsc_config_id 0 references NZP CSI-RS resource-set ID 0. In Test 2, this resource set contains CSI-RS resource IDs 0, 1, 2, and 3, so a single CSI resource configuration represents all four candidate beams.

resource_type is set to periodic because the associated CSI-RS resources are transmitted periodically every 80 slots.

This CSI resource configuration will later be referenced by the CSI report configuration through resources_for_channel_measurement. Since the referenced resource set contains multiple CSI-RS resources, the UE can compare them and report the selected resource through CRI.

This section defines four periodic CSI resource configurations for the CSI-IM resource sets and one additional configuration for TRS.

csi_rsc_config_id values 8, 9, 10, and 11 reference CSI-IM resource-set IDs 0, 1, 2, and 3 respectively. Each configuration keeps one CSI-IM resource set independently addressable for interference measurement.

resource_type is set to periodic because all four CSI-IM resources use an 80-slot periodicity.

csi_rsc_config_id 16 references NZP CSI-RS resource-set ID 8, which contains TRS resource IDs 8, 9, 10, and 11. This configuration is used for tracking and is separate from the beam-selection CSI report.

The gaps in the CSI resource configuration IDs are only for easier future expansion. The IDs may be assigned differently as long as all references remain consistent in the CSI report and RRC configurations.

This section should be revised for Test 2 because only one CSI report configuration is created for the four candidate beam CSI-RS resources.

Since two CSI-RS ports are configured, the report uses a Type I Single-Panel codebook. cqi_table is set to 2, and subband_size is set to value1.

The introductory text should say one CSI report configuration, not four CSI report configurations.

Perform the Test

Running the test is straightforward. The more difficult part is verifying that the complete CSI-RS, CSI-IM, CRI reporting, and TRS configuration has been applied correctly.

After starting the gNB, run the cell phy command to verify the basic cell configuration. In this example, the cell operates in NR band n78 with a 20 MHz bandwidth, downlink NR-ARFCN 632628, two downlink antenna ports, and 30 kHz subcarrier spacing. The uplink uses one antenna port, and the SSB is transmitted at NR-ARFCN 632544 with 30 kHz subcarrier spacing.

The cell phy output confirms only the basic RF and PHY settings. It does not show the detailed CSI-RS resources, shared beam resource set, CSI-IM resources, TRS resources, or CRI report configuration. These must be verified from the collected RRC and PHY logs.

Run the t command to start the live PHY trace, then power on the UE and wait until the NR connection is established.

The PRACH entry confirms that the gNB detected the UE’s random-access preamble, including the sequence index, timing advance estimate, and received SNR.

After connection setup, the trace shows the UE context with RNTI 4601 on cell 001. The displayed values include downlink CQI and RI, downlink and uplink MCS, retransmissions, throughput, PUCCH status, HARQ activity, power headroom, path loss, and timing advance.

At this stage, the output confirms that the UE is connected and exchanging traffic. The CRI-based CSI configuration must still be verified from the RRC configuration and the decoded periodic CSI reports.

Log Analysis

Sample Log (with UEsim)

This is just for showing the association between the configuration shown above and IE (Information Elements) in RRC and see if UE report CSI RS as you intended.

Before collecting the logs, configure the ENB logging levels to debug so that the full protocol-stack trace is captured.

In the Amarisoft Web GUI, open the ENB configuration window and set the relevant layers to debug for both the filter and display level. This provides the detailed PHY, MAC, RLC, RRC, NAS, and other protocol information needed to verify the CSI-RS, CSI-IM, TRS, and CRI report configuration.

Enable the CSI option under PHY flags. This makes the decoded CSI report fields easier to read in the log instead of showing only the raw CSI payload.

After applying the settings with Update, start the log collection and reconnect the UE so that the complete RRC configuration and subsequent periodic CSI reports are captured.

The RRC Setup message contains one default PDCCH TCI state, tci-StateId 0, associated with SSB index 0 through qcl-TypeD.

This TCI state is generated automatically by the gNB and is independent of the four CSI-RS resources used for CRI-based beam measurement. Therefore, configuring multiple beam CSI-RS resources does not automatically create multiple PDCCH TCI states or switch the PDCCH to the CSI-RS selected by the UE.

At this stage, the UE receives the PDCCH using the spatial reference associated with SSB 0. Additional PDCCH TCI states can be configured explicitly with tci_states_pdcch_config when the test requires PDCCH beam association or beam switching based on specific CSI-RS resources. (NOTE : You can manually configure this if you like with tci_states_pdcch_config )

The RRC Setup message confirms all four periodic zero-power CSI-RS resources under zp-CSI-RS-ResourceToAddModList.

ZP CSI-RS resource IDs 0, 1, 2, and 3 use the configured row4 frequency-domain allocation, four ports, fd-CDM2, first OFDM symbol 8, density one, and the full configured bandwidth of 52 RBs.

Their periodicityAndOffset values are slots80 with offsets 1, 2, 3, and 4 respectively. These timing values match the four CSI-IM resources, ensuring that the corresponding CSI-IM REs are muted during each interference measurement occasion.

The RRC message also confirms periodic ZP CSI-RS resource-set ID 0 containing resource IDs 0, 1, 2, and 3. This verifies that all four muted resource patterns were correctly translated from the configuration file into the RRC configuration.

The RRC Setup message confirms the first beam-related NZP CSI-RS as nzp-CSI-RS-ResourceId 0.

The RRC parameters match the gNB configuration: two CSI-RS ports, fd-CDM2, the configured frequency-domain allocation, and firstOFDMSymbolInTimeDomain 4, corresponding to the fifth OFDM symbol. The resource spans 52 RBs starting from RB 0.

powerControlOffset is set to -8 dB, making this the weakest of the four candidate beam resources. powerControlOffsetSS is 0 dB, and scramblingID is 500.

periodicityAndOffset is configured as slots80 with offset 1, matching CSI-RS resource ID 0 in the configuration file. qcl-InfoPeriodicCSI-RS is set to 0.

This confirms that the first candidate beam CSI-RS was correctly translated into nzp-CSI-RS-ResourceToAddModList. In Test 2, this resource will later be grouped with CSI-RS resource IDs 1, 2, and 3 in one NZP CSI-RS resource set for CRI-based beam selection.

The RRC Setup message confirms the second beam-related NZP CSI-RS as nzp-CSI-RS-ResourceId 1.

The RRC parameters match the gNB configuration: two CSI-RS ports, fd-CDM2, the configured frequency-domain allocation, and firstOFDMSymbolInTimeDomain 4, corresponding to the fifth OFDM symbol. The resource spans 52 RBs starting from RB 0.

powerControlOffset is set to -4 dB, making this candidate beam 4 dB stronger than resource ID 0 configured at -8 dB. powerControlOffsetSS is 0 dB, and scramblingID is 500.

periodicityAndOffset is configured as slots80 with offset 2, matching CSI-RS resource ID 1 in the configuration file. qcl-InfoPeriodicCSI-RS is set to 0.

This confirms that the second candidate beam CSI-RS was correctly translated into nzp-CSI-RS-ResourceToAddModList. It is later grouped with resource IDs 0, 2, and 3 in the shared NZP CSI-RS resource set used for CRI-based beam selection.

The RRC Setup message confirms the third beam-related NZP CSI-RS as nzp-CSI-RS-ResourceId 2.

The RRC parameters match the gNB configuration: two CSI-RS ports, fd-CDM2, the configured frequency-domain allocation, and firstOFDMSymbolInTimeDomain 4, corresponding to the fifth OFDM symbol. The resource spans 52 RBs starting from RB 0.

powerControlOffset is set to 0 dB, making this candidate beam stronger than resource IDs 0 and 1 configured at -8 dB and -4 dB. powerControlOffsetSS is 0 dB, and scramblingID is 500.

periodicityAndOffset is configured as slots80 with offset 3, matching CSI-RS resource ID 2 in the configuration file. qcl-InfoPeriodicCSI-RS is set to 0.

This confirms that the third candidate beam CSI-RS was correctly translated into nzp-CSI-RS-ResourceToAddModList. It is later grouped with resource IDs 0, 1, and 3 in the shared NZP CSI-RS resource set used for CRI-based beam selection.

The RRC Setup message confirms the fourth beam-related NZP CSI-RS as nzp-CSI-RS-ResourceId 3.

The RRC parameters match the gNB configuration: two CSI-RS ports, fd-CDM2, the configured frequency-domain allocation, and firstOFDMSymbolInTimeDomain 4, corresponding to the fifth OFDM symbol. The resource spans 52 RBs starting from RB 0.

powerControlOffset is set to 4 dB, making this the strongest of the four candidate beam resources configured at -8 dB, -4 dB, 0 dB, and 4 dB. powerControlOffsetSS is 0 dB, and scramblingID is 500.

periodicityAndOffset is configured as slots80 with offset 4, matching CSI-RS resource ID 3 in the configuration file. qcl-InfoPeriodicCSI-RS is set to 0.

This confirms that the fourth candidate beam CSI-RS was correctly translated into nzp-CSI-RS-ResourceToAddModList. It is later grouped with resource IDs 0, 1, and 2 in the shared NZP CSI-RS resource set used for CRI-based beam selection.

The RRC Setup message confirms the first two TRS resources as nzp-CSI-RS-ResourceId 8 and 9.

Both resources use one CSI-RS port, row1 frequency-domain allocation, no CDM, density three, and span 52 RBs starting from RB 0. They use a 40-slot periodicity with slot offset 11.

Resource ID 8 is placed at firstOFDMSymbolInTimeDomain 4, corresponding to the fifth OFDM symbol. Resource ID 9 is placed at symbol 8, corresponding to the ninth OFDM symbol. They are therefore transmitted in the same slot at two different symbol positions.

Both resources use 0 dB power offsets, scramblingID 500, and qcl-InfoPeriodicCSI-RS 0. This confirms that the first two TRS CSI-RS resources were correctly translated into nzp-CSI-RS-ResourceToAddModList.

The RRC Setup message confirms the remaining two TRS resources as nzp-CSI-RS-ResourceId 10 and 11.

Both resources use one CSI-RS port, row1 frequency-domain allocation, no CDM, density three, and span 52 RBs starting from RB 0. They use a 40-slot periodicity with slot offset 12.

Resource ID 10 is placed at firstOFDMSymbolInTimeDomain 4, corresponding to the fifth OFDM symbol. Resource ID 11 is placed at symbol 8, corresponding to the ninth OFDM symbol. They are therefore transmitted in the same slot at two different symbol positions.

Both resources use 0 dB power offsets, scramblingID 500, and qcl-InfoPeriodicCSI-RS 0. Together with resource IDs 8 and 9, they complete the four-resource TRS pattern across two consecutive slots.

The RRC message confirms two NZP CSI-RS resource sets.

NZP CSI-RS resource-set ID 0 contains beam CSI-RS resource IDs 0, 1, 2, and 3. Grouping all four candidate beams into one resource set allows the UE to compare them within a single CSI report and identify the selected resource through CRI. repetition is set to false because the resources represent different candidate beams rather than repeated transmission of the same beam.

NZP CSI-RS resource-set ID 8 contains TRS resource IDs 8, 9, 10, and 11. trs-Info is set to true, identifying this set as a tracking reference signal resource set.

This confirms that the beam-measurement resources and TRS resources were correctly grouped into separate NZP CSI-RS resource sets in nzp-CSI-RS-ResourceSetToAddModList.

The RRC message confirms the first three CSI-IM resources as csi-IM-ResourceId 0, 1, and 2.

Each resource uses CSI-IM pattern 1 with subcarrier location 8 and symbol location 8. The resources span 52 RBs starting from RB 0, matching the configured carrier bandwidth.

Their periodicityAndOffset values are slots80 with offsets 1, 2, and 3 respectively. These offsets match the timing of beam CSI-RS resource IDs 0, 1, and 2.

This confirms that the first three CSI-IM resources were correctly translated into csi-IM-ResourceToAddModList in the RRC message.

The RRC message confirms the fourth CSI-IM resource as csi-IM-ResourceId 3.

It uses CSI-IM pattern 1 with subcarrier location 8 and symbol location 8. The resource spans 52 RBs starting from RB 0 and uses an 80-slot periodicity with offset 4, matching the timing of the fourth beam CSI-RS.

The message also confirms four CSI-IM resource sets. csi-IM-ResourceSetId values 0, 1, 2, and 3 contain CSI-IM resource IDs 0, 1, 2, and 3 respectively.

This keeps each interference-measurement resource independently addressable through its corresponding CSI resource configuration.

The RRC message confirms CSI resource configuration ID 0 in csi-ResourceConfigToAddModList.

csi-ResourceConfigId 0 references NZP CSI-RS resource-set ID 0. This resource set contains beam CSI-RS resource IDs 0, 1, 2, and 3, so the single CSI resource configuration represents all four candidate beams.

bwp-Id is set to 0, and resourceType is set to periodic, matching the periodic 80-slot transmission of the beam CSI-RS resources.

This configuration is later referenced by resourcesForChannelMeasurement in the CSI report configuration. Since the referenced resource set contains four CSI-RS resources, the UE can compare them and report the selected resource through CRI.

The RRC message confirms four periodic CSI resource configurations for the CSI-IM resource sets and one additional configuration for TRS.

csi-ResourceConfigId values 8, 9, 10, and 11 reference CSI-IM resource-set IDs 0, 1, 2, and 3 respectively. Each configuration therefore keeps one interference-measurement resource set independently addressable.

All four configurations use bwp-Id 0 and resourceType periodic, matching the periodic CSI-IM timing.

csi-ResourceConfigId 16 references NZP CSI-RS resource-set ID 8, which contains TRS resource IDs 8, 9, 10, and 11. This configuration is used for tracking and is separate from the CRI-based beam-selection report.

This confirms that the four CSI-IM resource sets and the TRS resource set were correctly translated into csi-ResourceConfigToAddModList.

The RRC message confirms CSI report configuration ID 0 for the CRI-based beam report.

resourcesForChannelMeasurement is set to 0, referencing CSI resource configuration ID 0. This configuration points to the shared NZP CSI-RS resource set containing beam CSI-RS resource IDs 0, 1, 2, and 3. The UE therefore compares all four candidate beams within a single report.

csi-IM-ResourcesForInterference is set to 8, referencing CSI resource configuration ID 8 for interference measurement.

The report is periodic with an 80-slot period. reportSlotOffset is automatically assigned by the gNB as 9, and the report is carried on PUCCH resource 13 in uplink BWP 0.

reportQuantity is set to cri-RI-PMI-CQI. The UE reports the CRI of the selected CSI-RS resource together with RI, PMI, and CQI for that resource.

The report uses wideband CQI and wideband PMI. For the two-port CSI-RS configuration, the codebook is Type I Single-Panel with codebookMode 1. cqi-Table is set to table2, and subbandSize is set to value1.

This confirms that the shared four-beam CSI-RS resource set is linked to one periodic CRI-based CSI report configuration.

Once the configuration is applied and the UE is connected, the PHY log shows periodic CSI reports with report quantity CRI_RI_PMI_CQI.

The reported cri value identifies the CSI-RS resource selected from the shared resource set containing CSI-RS IDs 0, 1, 2, and 3. In the captured log, cri is consistently reported as 0.

Because CRI is an index within the configured CSI-RS resource set, cri 0 indicates that the UE selected the first resource in that set, corresponding to NZP CSI-RS resource ID 0.

The same report also includes RI, PMI, and CQI. In this example, RI is 2 and CQI is 15. The repeated reports confirm that the UE is periodically measuring the four configured CSI-RS candidates and returning the selected resource and its CSI measurement results.

RRC / NAS Signaling

RrcSetup (SA)

: This is the RrcSetup message sent by gNB  to configure NR SA. (NOTE : You would see some IEs that has a specific assigned vale here, but consider it as just an example value. Those values should vary depending on test requirement)

{

  message c1: rrcSetup: {

    rrc-TransactionIdentifier 0,

    criticalExtensions rrcSetup: {

      radioBearerConfig {

        ...

      },

      masterCellGroup {

        cellGroupId 0,

        rlc-BearerToAddModList {

          ...

        },

        mac-CellGroupConfig {

          ...

        },

        physicalCellGroupConfig {

          pdsch-HARQ-ACK-Codebook dynamic

        },

        spCellConfig {

          spCellConfigDedicated {

            initialDownlinkBWP {

              pdcch-Config setup: {

                ...

              },

              pdsch-Config setup: {

                dmrs-DownlinkForPDSCH-MappingTypeA setup: {

                  dmrs-AdditionalPosition pos1

                },

                tci-StatesToAddModList {

                  {

                    tci-StateId 0,

                    qcl-Type1 {

                      referenceSignal ssb: 0,

                      qcl-Type typeD

                    }

                  },

                  {

                    tci-StateId 1,

                    qcl-Type1 {

                      referenceSignal csi-rs: 0,

                      qcl-Type typeD

                    }

                  },

                  {

                    tci-StateId 2,

                    qcl-Type1 {

                      referenceSignal ssb: 0,

                      qcl-Type typeC

                    },

                    qcl-Type2 {

                      referenceSignal csi-rs: 0,

                      qcl-Type typeD

                    }

                  }

                },

                ...

                zp-CSI-RS-ResourceToAddModList {

                  {

                    zp-CSI-RS-ResourceId 0,

                    resourceMapping {

                      frequencyDomainAllocation row4: '100'B,

                      nrofPorts p4,

                      firstOFDMSymbolInTimeDomain 8,

                      cdm-Type fd-CDM2,

                      density one: NULL,

                      freqBand {

                        startingRB 0,

                        nrofRBs 52

                      }

                    },

                    periodicityAndOffset slots80: 1

                  }

                },

                p-ZP-CSI-RS-ResourceSet setup: {

                  zp-CSI-RS-ResourceSetId 0,

                  zp-CSI-RS-ResourceIdList {

                    0

                  }

                }

              }

            },

            firstActiveDownlinkBWP-Id 0,

            uplinkConfig {

              initialUplinkBWP {

                pucch-Config setup: {

                  ...

                },

                pusch-Config setup: {

                  ...

                },

                srs-Config setup: {

                  ...

                }

              },

              firstActiveUplinkBWP-Id 0,

              pusch-ServingCellConfig setup: {

              }

            },

            pdcch-ServingCellConfig setup: {

            },

            pdsch-ServingCellConfig setup: {

              ...

            },

            csi-MeasConfig setup: {

              nzp-CSI-RS-ResourceToAddModList {

                {

                  nzp-CSI-RS-ResourceId 0,

                  resourceMapping {

                    frequencyDomainAllocation other: '100000'B,

                    nrofPorts p2,

                    firstOFDMSymbolInTimeDomain 4,

                    cdm-Type fd-CDM2,

                    density one: NULL,

                    freqBand {

                      startingRB 0,

                      nrofRBs 52

                    }

                  },

                  powerControlOffset 0,

                  powerControlOffsetSS db0,

                  scramblingID 500,

                  periodicityAndOffset slots80: 1,

                  qcl-InfoPeriodicCSI-RS 0

                },

                {

                  nzp-CSI-RS-ResourceId 1,

                  resourceMapping {

                    frequencyDomainAllocation row1: '1'H,

                    nrofPorts p1,

                    firstOFDMSymbolInTimeDomain 4,

                    cdm-Type noCDM,

                    density three: NULL,

                    freqBand {

                      startingRB 0,

                      nrofRBs 52

                    }

                  },

                  powerControlOffset 0,

                  powerControlOffsetSS db0,

                  scramblingID 500,

                  periodicityAndOffset slots40: 11,

                  qcl-InfoPeriodicCSI-RS 0

                },

                {

                  nzp-CSI-RS-ResourceId 2,

                  resourceMapping {

                    frequencyDomainAllocation row1: '1'H,

                    nrofPorts p1,

                    firstOFDMSymbolInTimeDomain 8,

                    cdm-Type noCDM,

                    density three: NULL,

                    freqBand {

                      startingRB 0,

                      nrofRBs 52

                    }

                  },

                  powerControlOffset 0,

                  powerControlOffsetSS db0,

                  scramblingID 500,

                  periodicityAndOffset slots40: 11,

                  qcl-InfoPeriodicCSI-RS 0

                },

                {

                  nzp-CSI-RS-ResourceId 3,

                  resourceMapping {

                    frequencyDomainAllocation row1: '1'H,

                    nrofPorts p1,

                    firstOFDMSymbolInTimeDomain 4,

                    cdm-Type noCDM,

                    density three: NULL,

                    freqBand {

                      startingRB 0,

                      nrofRBs 52

                    }

                  },

                  powerControlOffset 0,

                  powerControlOffsetSS db0,

                  scramblingID 500,

                  periodicityAndOffset slots40: 12,

                  qcl-InfoPeriodicCSI-RS 0

                },

                {

                  nzp-CSI-RS-ResourceId 4,

                  resourceMapping {

                    frequencyDomainAllocation row1: '1'H,

                    nrofPorts p1,

                    firstOFDMSymbolInTimeDomain 8,

                    cdm-Type noCDM,

                    density three: NULL,

                    freqBand {

                      startingRB 0,

                      nrofRBs 52

                    }

                  },

                  powerControlOffset 0,

                  powerControlOffsetSS db0,

                  scramblingID 500,

                  periodicityAndOffset slots40: 12,

                  qcl-InfoPeriodicCSI-RS 0

                }

              },

              nzp-CSI-RS-ResourceSetToAddModList {

                {

                  nzp-CSI-ResourceSetId 0,

                  nzp-CSI-RS-Resources {

                    0

                  }

                },

                {

                  nzp-CSI-ResourceSetId 1,

                  nzp-CSI-RS-Resources {

                    1,

                    2,

                    3,

                    4

                  },

                  trs-Info true

                }

              },

              csi-IM-ResourceToAddModList {

                {

                  csi-IM-ResourceId 0,

                  csi-IM-ResourceElementPattern pattern1: {

                    subcarrierLocation-p1 s8,

                    symbolLocation-p1 8

                  },

                  freqBand {

                    startingRB 0,

                    nrofRBs 52

                  },

                  periodicityAndOffset slots80: 1

                }

              },

              csi-IM-ResourceSetToAddModList {

                {

                  csi-IM-ResourceSetId 0,

                  csi-IM-Resources {

                    0

                  }

                }

              },

              csi-ResourceConfigToAddModList {

                {

                  csi-ResourceConfigId 0,

                  csi-RS-ResourceSetList nzp-CSI-RS-SSB: {

                    nzp-CSI-RS-ResourceSetList {

                      0

                    }

                  },

                  bwp-Id 0,

                  resourceType periodic

                },

                {

                  csi-ResourceConfigId 1,

                  csi-RS-ResourceSetList csi-IM-ResourceSetList: {

                    0

                  },

                  bwp-Id 0,

                  resourceType periodic

                },

                {

                  csi-ResourceConfigId 2,

                  csi-RS-ResourceSetList nzp-CSI-RS-SSB: {

                    nzp-CSI-RS-ResourceSetList {

                      1

                    }

                  },

                  bwp-Id 0,

                  resourceType periodic

                }

              },

              csi-ReportConfigToAddModList {

                {

                  reportConfigId 0,

                  resourcesForChannelMeasurement 0,

                  csi-IM-ResourcesForInterference 1,

                  reportConfigType periodic: {

                    reportSlotConfig slots80: 9,

                    pucch-CSI-ResourceList {

                      {

                        uplinkBandwidthPartId 0,

                        pucch-Resource 13

                      }

                    }

                  },

                  reportQuantity cri-RI-PMI-CQI: NULL,

                  reportFreqConfiguration {

                    cqi-FormatIndicator widebandCQI,

                    pmi-FormatIndicator widebandPMI

                  },

                  timeRestrictionForChannelMeasurements notConfigured,

                  timeRestrictionForInterferenceMeasurements notConfigured,

                  codebookConfig {

                    codebookType type1: {

                      subType typeI-SinglePanel: {

                        nrOfAntennaPorts two: {

                          twoTX-CodebookSubsetRestriction '111111'B

                        },

                        typeI-SinglePanel-ri-Restriction '03'H

                      },

                      codebookMode 1

                    }

                  },

                  groupBasedBeamReporting disabled: {

                  },

                  cqi-Table table2,

                  subbandSize value1

                }

              }

            },

            tag-Id 0

          }

 

 

 

Tips

Resource Collision Problem

: One of the most common issues that you would encounter when you are configuring CSI RS manually (not using resource_auto) would be the error caused by collision among resources various other channels. Unfortunately there is no single shot solution to fix this automatically. It there is such a way, we might have implmented in our software. We do support a certain level of automation as described in this section and it will suit your purpose for most of the test, but the auto_configuration cannot be as flexible as manual configuration. Here I just want to provide some general guidelines for the case where you want to configure CSI RS manually and come across with physical resource collision issue,

 

 

Step 1 : Draw a time domain resource allocation map and remove the collision

First step is to draw all the physical channels and signals on time domain symbol map as follows. You should draw not only for CSI-RS that you want to configure but also draw all other resources (like SSB, PDSCH DMRS etc) and make it sure that there is no collision among any of those physical channels and signals.

You may try to tweak following configuration parameters to avoid time-domain collision :

First draw a picture showing all the major physical signal resources except CSI-RS and mark which slots/symbols are allowed for CSI-RS and which are not allowed as shown below. (NOTE : This is only an example)

NR SA SSB CSI RS Test 1 Overview 01

Then allocate the various CSI-RS to any of the allowed slots/symbols. There can be many possibilities, but following diagram shows only one of those possibilities and this will configured into the configuration file for this test. (NOTE : This is only an example)

NR SA SSB CSI RS Test 1 Overview 02

 

 

Step 2 : Change transmission slot

There might be some cases where you cannot avoid all the collision for some reasons such as :

In this case, you may distribute the configurations among multiple non-overlapping slot. You may tweak following configuration to distribute the csi-rs resources to different slots.

 

 

Step 3 : Change Frequency Domain Resources

If step 1 and step 2 does not solve the problem, you may try tweaking frequency domain resource allocation of CSI-RS resources using following configuration.

 

 

Setting n1, n2

When you want to set n1, n2 of codebook_config[], you should associate it with nzp_csi_rs_resource->n_ports parameters, NOT with number of physical antenna(n_antenna_dl).

 

 

No codebook configuration in RRC message ?

 

If you don't see codebook setting in RRC message (RRCSetup or RrcReconfiguration) in the log where you expect to see, check the number of port that is configured for the csi configuration. If the number of ports is only 1, the codebook setting will not be configured in the RRC message.

If the RRC message is for the serving cell, check the number of port setting in the serving cell. If the RRC message is for another cell (e.g, RrcReconfiguration for Handover) check out the number of port setting for the target (destination) cell.

 

 

Logging Decoded CSI Report

 

In default phy log, you would see only the csi bitmap on PUCCH or PUSCH which would be hard to understand the meaning of each bits. If you want to get those bitmap decoded and printed into the log file. You have two options.

 

Option 1 :  Add phy.csi=1 to log option

Add phy.csi=1 to log option in the confgiuration as shown below.

log_options: "all.level=debug,all.max_size=1, phy.csi=1",

 

 

Option 2 :  Enable CSI in WebGUI Property Window

 

You can enable CSI in ENB property window in WebGUI (NOTE : If you don't see this option in your WebGUI, it is highly likely to use very old version of software. It is recommended to upgrade your software).

 

NR SA CSI Tips CSI Decode 01

 

Then you can get the decoded CSI report as shown below.

NR SA CSI Tips CSI Decode 02