Amarisoft

LTE PUCCH

The purpose of this tutorial is to show you how to configure various parameters related to PUCCH.  Main purpose is to help you understand the relationship between Amarisoft eNB configuration parameters and LTE RRC configuration for PUCCH.  It is important to understand the details of these parameters since PUCCH configuration may affect the UL max throughput and the number of UE that can be supported by eNB.

In LTE, PUCCH is located around the either ends of the spectrum as shown below to utilize the property of frequency diversity.  The exact location of PUCCH location and how many RBs are occupied by PUCCH is determined by a few RRC parameters and format of PUCCH.

LTE PUCCH Location 01

Image Source : Sharetechnote

Table of Contents

Introduction

The Physical Uplink Control Channel (PUCCH) is a pivotal component of the LTE (Long Term Evolution) radio interface, responsible for carrying uplink control information such as Hybrid Automatic Repeat Request (HARQ) acknowledgments, scheduling requests, and channel quality indicators from the User Equipment (UE) to the eNodeB (eNB). Architecturally, PUCCH is strategically allocated to the edges of the LTE system bandwidth to exploit frequency diversity, thereby enhancing reliability in the presence of frequency-selective fading. The precise allocation, size, and structure of PUCCH resources are governed by a set of RRC (Radio Resource Control) configuration parameters, which are in turn closely tied to the eNB’s configuration, especially within software-defined platforms like Amarisoft. The relationship between these configuration parameters directly impacts critical network performance metrics, including uplink maximum throughput and the number of UEs supportable within a cell. Understanding how PUCCH operates, its various formats, and the interplay between eNB configuration and RRC parameters is essential for network engineers and operators aiming to optimize LTE uplink control performance and overall system capacity. This tutorial provides a comprehensive exploration of these concepts, equipping learners with the knowledge to effectively configure and troubleshoot PUCCH in real-world LTE deployments.

Summary of the Tutorial

This tutorial provides detailed procedures for testing various PUCCH (Physical Uplink Control Channel) configurations in an LTE system using Amarisoft software. The following summarizes each test scenario, highlighting the procedures, configuration steps, and methodologies applied.

Across all tests, the methodology includes:

Test Setup

Test setup for this tutorial is as shown below.

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 :  SISO, CSI Disabled

This test is to show a case of the PUCCH configuration with minium resource allocation : SISO, CSI Disabled.

Configuration

I used the eNB configuration enb-pucch1-dl-siso.cfg which is copied from enb.default.cfg and modified for this tutorial.

LTE PUCCH Test 1 Config 01

I used the mme configuration mme-ims.cfg and ims configuration ims.default.cfg

LTE PUCCH Test 1 Config 02

In enb-pucch1-dl-siso.cfg , PUCCH related configurations are set as follows.

N_ANTENNA_DL is set to 1, so the downlink transmission uses a single antenna configuration. This makes the test independent of MIMO-related feedback such as RI and PMI. DISABLE_CSI is set to 1, so CSI reporting is disabled. In this condition, the UE does not send periodic CQI/PMI/RI reports on PUCCH. Therefore, the PUCCH resource usage is kept to the minimum required for basic uplink control signaling, mainly HARQ ACK/NACK and other basic control if configured. This is a good baseline test because it allows you to observe the simplest PUCCH behavior before enabling CSI reporting or increasing the antenna configuration.

LTE PUCCH Test 1 Config 03

In this part, pucch_dedicated is configured with only the required PUCCH resource size for this test. n1_pucch_sr_count is set to 11. This defines the number of PUCCH resources reserved for Scheduling Request. The comment indicates that this value should be increased only when more UEs are needed. cqi_pucch_n_rb is set to 1. This defines the number of resource blocks reserved for CQI reporting on PUCCH. Since this test disables CSI reporting, this value does not need to be large. Keeping it small helps reduce unnecessary PUCCH resource reservation. In general, these values should be matched to the expected UE count and reporting requirement. If they are set too large, more uplink physical resources are reserved for PUCCH than needed, and fewer resources remain available for normal PUSCH data transmission.

LTE PUCCH Test 1 Config 04

This part is only for understanding how the CSI-related parameters are selected based on DISABLE_CSI. No manual change is needed here for this test.

When DISABLE_CSI is set to 1, cqi_period is set to 0. This disables periodic CQI reporting from the UE. In the same condition, forced_cqi is set to 3 and forced_ri is set to N_ANTENNA_DL. These values are internally generated by the gNB side and passed to the scheduler. They are not CSI values reported by the UE. This allows the scheduler to still have fixed CQI and RI values even though real UE CSI reporting is disabled.

In this SISO test, N_ANTENNA_DL is 1, so forced_ri also becomes 1. This matches the single-layer downlink transmission case. Since CSI reporting is disabled, m_ri is also set to 0, which means RI reporting is disabled. If CSI reporting were enabled, cqi_period would be set to 40 ms and m_ri would be set to 8. In that case, the UE would periodically report CQI, and RI reporting would be configured with a period related to m_ri and cqi_period.

So for Test 1, the important point is that CSI reporting is intentionally disabled, but the scheduler can still use internally forced CQI and RI values for downlink scheduling decisions.

LTE PUCCH Test 1 Config 05

Run and Check

After running the cell phy command, check whether the cell PHY configuration matches the intended SISO test setup. In this output, the cell is configured as LTE with 5 MHz bandwidth. The DL antenna count is shown as 1 and the UL antenna count is also shown as 1. This confirms that the cell is running in SISO mode as expected. The DL ARFCN is 3350 and the UL ARFCN is 21350. The DL modulation capability is shown as 256QAM and the UL modulation capability is shown as 64QAM. For this test, the most important point is the ANT value. Since DL ANT is 1, the PHY side is correctly configured for the SISO PUCCH baseline test.

LTE PUCCH Test 1 Run 01

Run the t command to start the live trace, then power on the UE and check that the UE completes the attach procedure. In this example, the PRACH line shows that the UE sends random access to cell 01 and the received SNR is around 20.4 dB, so the initial access signal is received properly by the eNB. After attach, the UE appears in the trace with RNTI 003d and starts exchanging downlink and uplink traffic.

In the UE trace table, cqi is shown as 3 and ri is shown as 1. In this test, these values are not reported by the UE because CSI reporting is disabled. They come from the configured forced_cqi and forced_ri values. Since forced_cqi is set to 3 and forced_ri is set to N_ANTENNA_DL, and N_ANTENNA_DL is 1 in this SISO test, the trace shows cqi 3 and ri 1. This confirms that the test is running with CSI disabled, while the scheduler still uses fixed internal CQI and RI values for scheduling decisions.

LTE PUCCH Test 1 Run 02

(This is not mandatory but) perform some high throughput test for both DL and UL. I ran a speedtest app on internet for this tutorial.

Log Analysis

Sample Log

For PUCCH log analysis, it is useful to first check the metadata section at the beginning of the eNB log. This section summarizes the cell configuration and the PUCCH resource allocation before the detailed per-subframe log starts. In this example, the cell is LTE FDD with earfcn 3350, pci 1, DL bandwidth n_rb_dl 25 and UL bandwidth n_rb_ul 25. The UL configuration also shows prach_config_index 4, prach_freq_offset 2, delta_pucch_shift 2, n_rb_cqi 1 and n_cs_an 0. These values give the basic uplink control channel layout used by the test.

The PUCCH allocation section shows how the PUCCH resources are reserved. For PUCCH format 2/2a/2b, 1 RB is reserved and n is set to 6. The start of PUCCH ACK/NACK is shown as 11. The RBs reserved for PUCCH are shown as repeated 3 values, indicating the reserved PUCCH RB location pattern. The SR resource count is 220, which means SR resources are prepared for UE scheduling request assignment. The CQI resource count is 0 because CSI reporting is disabled in this test. This matches the DISABLE_CSI 1 configuration. So, even though cqi_pucch_n_rb is configured in the file, no actual CQI reporting resource is allocated to the UE when CSI reporting is disabled.

LTE PUCCH Test 1 Log 01

Check pucch-ConfigCommon in SIB2 and confirm that the PUCCH-related parameters are reflected correctly in the broadcast message. In this example, the configuration file sets cqi_pucch_n_rb to 1 and n1_pucch_sr_count to 11. In SIB2, these values appear under pucch-ConfigCommon as nRB-CQI 1 and n1PUCCH-AN 11. This confirms that the values configured in the Amarisoft configuration file are properly mapped into the LTE RRC system information.

Here, cqi_pucch_n_rb controls the number of RBs reserved for CQI-related PUCCH resources, and it is mapped to nRB-CQI in SIB2. n1_pucch_sr_count controls the starting resource offset for PUCCH ACK/NACK and is mapped to n1PUCCH-AN in SIB2. Even though CSI reporting is disabled in this test, the common PUCCH structure still needs to be broadcast in SIB2 because it defines the common uplink control channel layout for the cell. This check is useful to confirm that the configuration file, RRC broadcast message, and actual cell behavior are aligned.

LTE PUCCH Test 1 Log 02

You can also confirm CSI reporting is disabled from the RRC Connection Setup message. In this test, cqi_period is set to 0 because DISABLE_CSI is set to 1. As a result, the RRC Connection Setup shows cqi-ReportConfig release NULL. This means the UE is not configured with CQI reporting, so the UE will not send periodic CQI on PUCCH.

This matches the earlier trace result. The cqi value shown in the Amarisoft t command is not coming from UE CSI feedback. It is the internally forced value configured by forced_cqi. In this example, forced_cqi is set to 3 and forced_ri is set to N_ANTENNA_DL. Since this is a SISO test with N_ANTENNA_DL set to 1, the scheduler uses CQI 3 and RI 1 internally, while real UE CSI reporting remains disabled at the RRC level.

LTE PUCCH Test 1 Log 03

In addition to RRC Connection Setup, you can also confirm that CSI reporting is disabled from physicalConfigDedicated in RRC Connection Reconfiguration. In this message, physicalConfigDedicated includes cqi-ReportConfig-r10, but the actual cqi-ReportPeriodic-r10 is shown as release NULL. This means periodic CQI reporting is not configured for the UE. Therefore, the UE does not send CQI feedback on PUCCH in this test.

This behavior matches the configuration where DISABLE_CSI is set to 1 and cqi_period is set to 0. Even though the message still contains the cqi-ReportConfig container, the periodic CQI part is released. So the important point to check is not only whether cqi-ReportConfig exists, but whether cqi-ReportPeriodic is setup or release. In this case, release NULL confirms that CSI reporting is disabled at the RRC dedicated configuration level.

LTE PUCCH Test 1 Log 04

You can confirm the actual PUCCH format usage from the PHY log. In this test, the PHY log shows several PUCCH entries such as format=1A and format=1. format=1A is used for HARQ ACK/NACK feedback. For example, the log shows format=1A with n=15, ack=1 and snr around 4.7 dB. This indicates that the UE transmitted HARQ ACK on PUCCH after receiving downlink PDSCH. You can also see format=1 entries with sr=1 or sr=0. This indicates Scheduling Request related PUCCH transmission. When sr=1, the UE is requesting uplink resources. When sr=0, the UE is transmitting the configured SR resource without an active scheduling request.

The important point in this test is that there is no PUCCH format 2, 2a, or 2b transmission for CQI reporting. This matches the configuration where DISABLE_CSI is set to 1 and cqi-ReportPeriodic is released in RRC. So the PHY log confirms the same result from the lower layer side. PUCCH is being used only for basic control such as HARQ ACK/NACK and SR, while CSI reporting on PUCCH is not used.

LTE PUCCH Test 1 Log 05

If you check the time period while PDSCH is flowing in RB map, you can easily check out the Uplink physical resources that are really used by PUCCH. The small green rectangles in the lower track indicates the physical resources that are used by PUCCH.

When PDSCH traffic is running, the RB map gives a very clear view of which uplink physical resources are actually used by PUCCH. In this example, the upper track shows downlink PDSCH allocation in blue. The lower track shows uplink resource usage. The small green rectangles at the edge of the uplink grid indicate PUCCH transmissions. These are the actual UL physical resource blocks used for uplink control signaling.

Since this test is SISO with CSI disabled, the PUCCH usage is very small and appears only as narrow green allocations. These PUCCH resources are mainly used for HARQ ACK/NACK and SR-related transmission. You can also see that most uplink RBs remain free except for occasional PUSCH allocations shown in red. This confirms that disabling CSI reduces periodic PUCCH usage and keeps the uplink resource reservation small. This RB map view is useful because it visually confirms what we already checked from the configuration, RRC messages, and PHY log: PUCCH is active, but CQI-related PUCCH reporting is not being used in this test.

LTE PUCCH Test 1 Log 06

When PUSCH is heavily allocated, the RB map can show not only the resources actually used by PUCCH, but also the resources reserved for PUCCH. In this example, the lower track shows uplink allocation. The large red blocks are PUSCH allocations. However, even when PUSCH is almost fully scheduled, you can still see blank areas near the edge of the uplink resource grid. These blank areas are not used for PUSCH because they are reserved for PUCCH.

This is an important point for throughput analysis. Amarisoft keeps the reserved PUCCH region protected and does not allocate that area to PUSCH, even when there is no actual PUCCH transmission in that subframe. This behavior is safe from a control-channel point of view, but it can slightly reduce the maximum uplink throughput compared with the theoretical value calculated from the full UL bandwidth. So if the measured uplink throughput is a little lower than expected, one thing to check is how much uplink resource is reserved for PUCCH. For maximum uplink throughput, you may need to use a configuration or scheduling option that allows PUSCH to use the reserved area when possible, as described in this tutorial

LTE PUCCH Test 1 Log 07

Test 2 :  SISO, CSI Disabled : n1PUCCH-AN

This test is to show a case of the PUCCH configuration for SISO, CSI Disabled. In this test, I will show you how to change the RRC parameter n1PUCCH-AN in configuration file.  

Configuration

I used the eNB configuration enb-pucch1-dl-siso-sr-count.cfg which is copied from enb.default.cfg and modified for this tutorial.

LTE PUCCH Test 2 Config 01

I used the mme configuration mme-ims.cfg and ims configuration ims.default.cfg

LTE PUCCH Test 1 Config 02

In enb-pucch1-dl-siso-sr-count.cfg  , PUCCH related configurations are set as follows.

TDD is set to 0, so this test uses FDD. N_RB_DL is set to 25, which means the LTE cell bandwidth is 5 MHz. N_ANTENNA_DL is set to 1, so the downlink cell is configured as SISO. N_ANTENNA_UL is also set to 1, so uplink uses one antenna. CHANNEL_SIM is set to 0, so the channel simulator is disabled. DISABLE_CSI is set to 1, which disables CSI reporting. With this setting, the test focuses on PUCCH ACK/NACK behavior without CSI report involvement.

LTE PUCCH Test 1 Config 03

Configure n1_pucch_sr_count and cqi_pucch_n_rb in pucch_dedicated according to the test requirement. In this example, n1_pucch_sr_count is set to 44. This value controls the amount of PUCCH resource space reserved for scheduling request related PUCCH resources. cqi_pucch_n_rb is set to 1, which defines the number of RBs reserved for CQI/CSI related PUCCH resources. Since DISABLE_CSI is set to 1 in this test, CSI reporting is disabled, but the parameter is still shown here as part of the PUCCH dedicated configuration. In general, these values should not be set unnecessarily large because they reserve physical resources. In this test, n1_pucch_sr_count is intentionally increased mainly to show how the configuration change is reflected later in the RRC parameter and in the physical resource allocation.

LTE PUCCH Test 2 Config 04

This part is mainly informational and does not require any change for this test. It shows how CQI and RI related parameters are controlled by the DISABLE_CSI value. Since DISABLE_CSI is set to 1, cqi_period is set to 0, which disables periodic CQI reporting from the UE. At the same time, forced_cqi is set to 3 and forced_ri is set to N_ANTENNA_DL. These values are internally generated by the gNB and passed to the scheduler, instead of being reported by the UE through CSI reporting.

The m_ri parameter is also controlled by DISABLE_CSI. When CSI is disabled, m_ri is set to 0, so RI reporting is disabled. If CSI were enabled, m_ri would be set to 8 in this example, meaning RI reporting would be configured with a periodicity related to cqi_period. Since this test is SISO and CSI disabled, the important point is that the UE does not send CQI or RI reports, and the scheduler uses forced internal values instead.

LTE PUCCH Test 1 Config 05

Run and Check

After running the cell phy command, check whether the cell PHY configuration matches the intended test setup. In this output, the cell is configured as LTE FDD with 5 MHz bandwidth. The DL ARFCN is 3350 and the UL ARFCN is 21350. The DL antenna count is 1 and the UL antenna count is also 1, so the cell is running in SISO mode as expected. The DL modulation capability is shown as 256QAM and the UL modulation capability is shown as 64QAM. For this test, the most important item to verify is the ANT value. Since DL ANT is 1, the PHY configuration is correctly set for the SISO PUCCH test.

LTE PUCCH Test 1 Run 01

Run the t command and power on the UE to check whether the UE completes attach successfully. In this trace, the PRACH line shows cell=01, seq=2, ta=4 and snr=20.4 dB, which means the UE random access preamble was received properly by the eNB. After that, the UE appears with RNTI 003d, so the UE has completed access and is active in the cell.

In the DL side, cqi is shown as 3 and ri is shown as 1. In this test, these values are not reported by the UE because CSI reporting is disabled. They are the internal values set by forced_cqi and forced_ri. Since forced_cqi is 3 and forced_ri follows N_ANTENNA_DL, the trace shows cqi 3 and ri 1 for this SISO configuration. This confirms that the UE is attached and traffic is running, while CSI feedback from the UE is still disabled.

LTE PUCCH Test 1 Run 02

(This is not mandatory but) perform some high throughput test for both DL and UL. I ran a speedtest app on internet for this tutorial.

Log Analysis

Sample Log

For PUCCH log analysis, first check the metadata section at the beginning of the eNB log. This section shows how the PUCCH physical resources are actually allocated after the configuration file is applied. It is useful to compare this result with the previous test, because you can see how changing the configuration values changes the actual reserved PUCCH resources.

In this example, the cell is LTE FDD with earfcn 3350, pci 1, DL bandwidth n_rb_dl 25 and UL bandwidth n_rb_ul 25. The UL configuration shows prach_freq_offset 3, delta_pucch_shift 2, n_rb_cqi 1 and n_cs_an 0. In the PUCCH allocation section, PUCCH format 2/2a/2b uses 1 RB and n is 6. The start of PUCCH ACK/NACK is now 44, which is larger than in the previous test. The RBs reserved for PUCCH are also shown as repeated 5 values, which indicates that more uplink RB area is reserved for PUCCH than before. The SR resource count is 880, which is also increased compared with the previous test.

The CQI resource count is still 0 because CQI reporting is disabled. So even though the reserved PUCCH region is larger in this test, CQI reporting itself is not active. The important point is that increasing PUCCH-related configuration values can increase the physical resources reserved for PUCCH. This can reduce the maximum area available for PUSCH, even when some of the reserved resources are not actively used in every subframe.

LTE PUCCH Test 2 Log 01

Check pucch-ConfigCommon in SIB2 and confirm that the configured PUCCH values are reflected correctly in the broadcast message. In this example, the configuration file sets n1_pucch_sr_count to 44 and cqi_pucch_n_rb to 1. In SIB2, these values are shown under pucch-ConfigCommon as n1PUCCH-AN 44 and nRB-CQI 1. This confirms that the Amarisoft configuration values are properly mapped into the LTE RRC SIB2 message.

Compared with the previous test, n1PUCCH-AN is increased from 11 to 44. This matches the increased n1_pucch_sr_count value in the configuration file. As a result, more PUCCH ACK/NACK resource space is reserved in the uplink resource grid. cqi_pucch_n_rb is still 1, so nRB-CQI remains 1 in SIB2. However, CQI reporting itself is still disabled in this test, so this value defines the common PUCCH layout but does not mean that the UE is actually sending CQI reports.

LTE PUCCH Test 2 Log 02

You can confirm that CQI reporting is disabled from the cqi-ReportConfig IE in RRC Connection Setup. In this test, DISABLE_CSI is set to 1, so cqi_period is set to 0 in the configuration. This is reflected in the RRC message as cqi-ReportPeriodic release NULL.

This means the UE is not configured to send periodic CQI reports. Therefore, even though the trace screen may show cqi 3, that value is not coming from UE-reported CSI. It is the internally forced CQI value from forced_cqi 3. In the same way, RI is also not reported by the UE in this test. The scheduler uses forced_ri based on N_ANTENNA_DL, which is 1 in this SISO configuration.

So this RRC Connection Setup check confirms the same behavior seen in the live trace and log metadata. CSI reporting is disabled, but Amarisoft still provides fixed internal CQI and RI values to the scheduler.

LTE PUCCH Test 2 Log 03

In addition, you can also confirm the CQI reporting status from physicalConfigDedicated in RRC Connection Reconfiguration. In this captured message, physicalConfigDedicated includes cqi-ReportConfig-r10, but cqi-ReportPeriodic-r10 is shown as release NULL. This means periodic CQI reporting is released, so CQI reporting is disabled for the UE.

This matches the configuration where DISABLE_CSI is set to 1 and cqi_period is set to 0. Even though the cqi-ReportConfig container is present in the RRC message, the important field to check is cqi-ReportPeriodic-r10. Since it is release NULL, the UE is not configured to send periodic CQI on PUCCH. Therefore, the cqi value shown in the live trace is still the internally forced value from forced_cqi, not a CQI report sent by the UE.

LTE PUCCH Test 2 Log 04

You can confirm the actual PUCCH format usage from the PHY log. In this test, the PHY log mainly shows PUCCH format=1A and format=1. format=1A is used for HARQ ACK/NACK feedback. For example, the log shows format=1A with n=48 or n=44, ack=1, and measured SNR values. This means the UE is sending ACK feedback on PUCCH after receiving downlink PDSCH.

The log also shows format=1 with sr=1 or sr=0. This is related to Scheduling Request. When sr=1, the UE is requesting uplink resources. When sr=0, the UE is transmitting on the configured SR occasion without an active scheduling request.

The important point is that you do not see PUCCH format 2, 2a, or 2b for CQI reporting. This matches the RRC result where cqi-ReportPeriodic is released, and it also matches the configuration where DISABLE_CSI is set to 1. So even though the reserved PUCCH resource area is larger in this test, the actually used PUCCH formats are still only for basic uplink control such as HARQ ACK/NACK and SR.

LTE PUCCH Test 2 Log 05

When PDSCH traffic is running, the RB map makes it easy to identify the uplink physical resources that are actually used by PUCCH. In this view, the upper track shows downlink PDSCH allocation in blue, and the lower track shows uplink allocation. The small green rectangles in the lower track are the PUCCH resources. They appear near the edge of the uplink resource grid, which is the normal PUCCH location in LTE.

In this test, many green PUCCH allocations are visible, but they are still small and narrow compared with the full uplink bandwidth. These PUCCH resources are mainly used for HARQ ACK/NACK and SR, because CQI reporting is disabled. The red blocks in the lower track are PUSCH allocations. So this RB map confirms the same result from the PHY log: PUCCH is active, but the used PUCCH formats are for basic uplink control, not for CQI reporting.

LTE PUCCH Test 2 Log 06

When PUSCH is fully allocated, the RB map shows the PUCCH reservation more clearly. In the lower track, the red blocks are PUSCH allocations. Even though the scheduler is trying to allocate large PUSCH resources, some blank areas remain at the edge of the uplink resource grid. These blank areas are the resources reserved for PUCCH. Amarisoft does not allocate these reserved PUCCH resources to PUSCH, even when there is no actual PUCCH transmission in that subframe.

This is important when you check maximum uplink throughput. The UE may look fully scheduled from the traffic point of view, but the full UL bandwidth is not completely available for PUSCH because part of the bandwidth is protected for PUCCH. In this test, the reserved PUCCH area is larger than in the previous configuration, so the available PUSCH area becomes smaller. As a result, the measured maximum uplink throughput can be slightly lower than the theoretical throughput calculated from the full 5 MHz uplink bandwidth. If you want to push maximum uplink throughput, you need to check the related Amarisoft option that allows PUSCH scheduling over the reserved PUCCH area when possible. If you want to schedule PUSCH even at the reserved area for maximum throughput, check out this tutorial.

LTE PUCCH Test 2 Log 07

Test 3 :  SISO, CSI Enabled

This test is to show a case of the PUCCH configuration for SISO, CSI Enabled.

Configuration

I used the eNB configuration enb-pucch-dl-siso-csi.cfg which is copied from enb.default.cfg and modified for this tutorial.

LTE PUCCH Test 3 Config 01

I used the mme configuration mme-ims.cfg and ims configuration ims.default.cfg

LTE PUCCH Test 1 Config 02

In enb-pucch-dl-siso-csi.cfg , PUCCH related configurations are set as follows.

N_ANTENNA_DL is set to 1, so the cell uses a single downlink antenna configuration. This keeps the test simple because there is no MIMO layer adaptation or RI change involved.

DISABLE_CSI is set to 0. In this configuration, 0 means CSI is not disabled, so CSI reporting is enabled. Unlike the previous tests where the CQI value came from forced_cqi, this test allows the UE to report real CSI information. Therefore, you should expect CQI-related RRC configuration to be set up, and you should also be able to observe CQI-related PUCCH usage in the PHY log and RB map.

This test is useful for checking how the PUCCH behavior changes when CSI reporting is enabled while keeping the antenna configuration the same as the previous SISO cases.

LTE PUCCH Test 3 Config 03

In this SISO CSI enabled test, pucch_dedicated is configured with n1_pucch_sr_count 11 and cqi_pucch_n_rb 1. n1_pucch_sr_count defines the PUCCH ACK/NACK and SR-related resource range. Since this test uses a simple single-UE SISO setup, 11 is enough and does not reserve too much uplink resource.

cqi_pucch_n_rb is set to 1. This is important in this test because CSI reporting is enabled. Unlike the previous CSI disabled tests, CQI reporting resources can now be actually used by the UE. So this value should be large enough to support the expected number of UEs and CQI reports, but it should not be set unnecessarily large. If cqi_pucch_n_rb is too large, more uplink RBs are reserved for CQI-related PUCCH resources, and the available PUSCH area becomes smaller.

So the key point is to keep both n1_pucch_sr_count and cqi_pucch_n_rb matched to the test scale. For this SISO CSI enabled baseline, n1_pucch_sr_count 11 and cqi_pucch_n_rb 1 are small and efficient values.

LTE PUCCH Test 3 Config 04

NOTE : cqi_pucch_n_rb = 0 is allowed only when Periodic CSI report is disabled.

This part shows how the CQI-related parameters are selected depending on DISABLE_CSI. This is only for information, so no manual change is needed here.

When DISABLE_CSI is set to 0, the else condition is used and cqi_period is set to 40. This means periodic CQI reporting is enabled with a 40 ms periodicity. In this test, the UE is expected to report CQI periodically, so the CQI value can come from the UE instead of only from the internally forced value.

The forced_cqi and forced_ri values are used only in the DISABLE_CSI 1 case. In that case, CQI reporting is disabled and the scheduler uses fixed internal values. But in this test, CSI is enabled, so the important parameter is cqi_period 40. This should later be reflected in the RRC CQI report configuration and should also be visible from the PHY log as CQI-related PUCCH transmission. Since this is still a SISO test with N_ANTENNA_DL set to 1, RI reporting is not the main focus here. The main change from the previous tests is that periodic CQI reporting is now enabled.

LTE PUCCH Test 3 Config 05

Run and Check

After running the cell phy command, check whether the cell PHY configuration matches the intended SISO CSI enabled test. In this output, the cell is configured as LTE FDD with 5 MHz bandwidth. The DL ARFCN is 3350 and the UL ARFCN is 21350. The DL antenna count is 1 and the UL antenna count is also 1, so the cell is correctly running in SISO mode.

For this test, the PHY antenna configuration is the same as the previous SISO cases. The difference is not in the cell phy output. The key difference is in the CSI configuration, where DISABLE_CSI is set to 0 and CQI reporting is enabled with cqi_period 40. So this step mainly confirms that the basic cell configuration is correct before checking UE attach, RRC CQI configuration, PHY PUCCH format usage, and RB map behavior.

LTE PUCCH Test 3 Run 01

Run the t command and power on the UE to confirm that the UE completes attach and starts normal operation. In this trace, the PRACH line shows cell=01, seq=45, ta=4 and snr=20.9 dB, so the random access preamble is received properly. After that, the UE appears with RNTI 003d and starts exchanging traffic, which confirms that the UE is attached and active.

The important difference in this test is the cqi value. Unlike the previous CSI disabled cases, the cqi values shown here are changing, such as 7, 10, 9, 8 and 6. These values are reported by the UE because CSI reporting is enabled with cqi_period 40. This means the scheduler is now using UE-reported channel quality information instead of the fixed forced_cqi value. The ri value remains 1 because this is still a SISO test with one downlink antenna layer. So this trace confirms both points: the UE attach is successful, and CQI reporting is now active.

LTE PUCCH Test 3 Run 02

(This is not mandatory but) perform some high throughput test for both DL and UL. I ran a speedtest app on internet for this tutorial.

Log Analysis

Sample Log

For PUCCH log analysis, first check the metadata section at the beginning of the eNB log. This section shows the actual PUCCH resource allocation after the configuration is applied. It is useful to compare this with the previous CSI disabled test, because the difference clearly shows how enabling CSI changes the PUCCH resource usage.

In this example, the cell is LTE FDD with earfcn 3350, pci 1, DL bandwidth n_rb_dl 25 and UL bandwidth n_rb_ul 25. The UL configuration shows prach_freq_offset 2, delta_pucch_shift 2, n_rb_cqi 1 and n_cs_an 0. In the PUCCH allocation section, PUCCH format 2/2a/2b uses 1 RB and n is 6. The start of PUCCH ACK/NACK is 11, and the RBs reserved for PUCCH are shown as repeated 3 values. This part is similar to the earlier small-resource SISO test.

The important difference is CQI resource count. In the CSI disabled test, CQI resource count was 0. In this CSI enabled test, CQI resource count is 240. This confirms that CQI reporting resources are now actually allocated. Since cqi_pucch_n_rb is set to 1 and CSI reporting is enabled, Amarisoft reserves PUCCH resources for periodic CQI reporting. So this metadata confirms that the configuration is not only present in the config file, but is also reflected in the actual PUCCH physical resource allocation.

LTE PUCCH Test 3 Log 00

Check pucch-ConfigCommon in SIB2 and confirm that the PUCCH common configuration is correctly reflected in the broadcast message. In this example, the configuration file sets n1_pucch_sr_count to 11 and cqi_pucch_n_rb to 1. In SIB2, these values appear under pucch-ConfigCommon as n1PUCCH-AN 11 and nRB-CQI 1. This confirms that the Amarisoft configuration file is properly mapped into the LTE RRC SIB2 message.

For this CSI enabled test, nRB-CQI 1 is especially important because CQI reporting is active. This value defines the number of RBs reserved for CQI-related PUCCH resources. Since DISABLE_CSI is set to 0, these CQI resources can actually be used by the UE for periodic CQI reporting. n1PUCCH-AN 11 defines the PUCCH ACK/NACK resource starting point, and it matches the same small-resource baseline used in the earlier SISO test. So this SIB2 check confirms that both the common PUCCH layout and the CQI resource reservation are configured as intended.

LTE PUCCH Test 3 Log 01

You can confirm that CQI reporting is enabled from the cqi-ReportConfig IE in RRC Connection Setup. In this test, DISABLE_CSI is set to 0, so the else condition is used and cqi_period is set to 40. This is reflected in the RRC message as cqi-ReportPeriodic setup.

Inside cqi-ReportPeriodic, cqi-PUCCH-ResourceIndex is set to 0 and cqi-pmi-ConfigIndex is set to 38. This means the UE is configured with a periodic CQI reporting resource on PUCCH. The report format is shown as widebandCQI, so the UE reports wideband CQI rather than subband CQI in this test.

This is different from the previous CSI disabled tests, where cqi-ReportPeriodic was shown as release NULL. Here, the setup field confirms that CQI reporting is active. Therefore, the changing CQI values seen in the t command are UE-reported CQI values, not the fixed forced_cqi value.

LTE PUCCH Test 3 Log 02

In addition, you can also confirm that CQI reporting is enabled from physicalConfigDedicated in RRC Connection Reconfiguration. In this message, physicalConfigDedicated includes cqi-ReportConfig-r10, and cqi-ReportPeriodic-r10 is shown as setup. This means the UE is configured for periodic CQI reporting on PUCCH.

Inside the setup, cqi-PUCCH-ResourceIndex-r10 is set to 0 and cqi-pmi-ConfigIndex is set to 38. The report format is widebandCQI, so the UE reports one wideband CQI value instead of subband CQI. simultaneousAckNackAndCQI is shown as TRUE, which means ACK/NACK and CQI can be handled together according to the configured PUCCH behavior.

This matches the configuration where DISABLE_CSI is set to 0 and cqi_period is set to 40. It also matches the t command result where CQI values change over time. Therefore, in this test, the CQI value is coming from UE-reported CSI, not from forced_cqi.

LTE PUCCH Test 3 Log 03

You can confirm the actual PUCCH format usage from the PHY log. In this CSI enabled test, the PHY log shows the normal HARQ/SR related PUCCH formats, and it also shows CQI related PUCCH transmission.

format=1A is used for HARQ ACK/NACK feedback. For example, the log shows format=1A with ack=1 and n values such as 15 or 11. This means the UE is sending ACK feedback for downlink PDSCH.

format=1 is used for SR related transmission. You can see entries with sr=1 or sr=0. sr=1 means the UE sends a Scheduling Request. sr=0 means the UE transmits on the configured SR occasion without requesting uplink resources.

The important difference from the CSI disabled test is format=2. In this log, format=2 appears with cqi value, such as cqi=1111. This confirms that the UE is transmitting CQI on PUCCH. This matches the RRC configuration where cqi-ReportPeriodic is setup and cqi-pmi-ConfigIndex is configured. So in this test, PUCCH is used not only for HARQ ACK/NACK and SR, but also for periodic CQI reporting.

LTE PUCCH Test 3 Log 04

When PDSCH traffic is running, the RB map gives a clear visual view of the uplink PUCCH resource usage. The upper track shows downlink PDSCH allocation in blue. The lower track shows uplink resources, where the red blocks are PUSCH and the small green rectangles are PUCCH.

In this CSI enabled test, the green PUCCH allocations appear more frequently because PUCCH is now used not only for HARQ ACK/NACK and SR, but also for periodic CQI reporting. This matches the PHY log where format=2 is observed with CQI information. The green blocks near the upper and lower edges of the uplink grid show the actual physical RBs used by PUCCH. So the RB map confirms the same result as the RRC and PHY log: CSI reporting is enabled, and CQI is being transmitted on PUCCH.

LTE PUCCH Test 3 Log 05

When PUSCH is fully allocated, the RB map shows the PUCCH reservation very clearly. In the lower track, the red blocks are PUSCH allocations. Even though the uplink is heavily scheduled, the red PUSCH area does not occupy the full RB range. The blank areas near the lower and upper edges remain protected because they are reserved for PUCCH.

This means Amarisoft does not allocate the reserved PUCCH region to PUSCH, even when there is no actual PUCCH transmission in that specific subframe. In this CSI enabled test, this reservation is more meaningful because CQI reporting is active and PUCCH format 2 can be transmitted periodically. However, from a throughput point of view, this also means the maximum PUSCH allocation can be slightly smaller than the theoretical full-bandwidth allocation. So if the uplink throughput looks a little lower than expected, check how much resource is reserved for PUCCH, especially when CSI reporting is enabled. For maximum uplink throughput, you may need to check the related Amarisoft tutorial option that allows PUSCH scheduling over the reserved PUCCH area when possible. If you want to schedule PUSCH even at the reserved area for maximum throughput, check out this tutorial.

LTE PUCCH Test 3 Log 06

Test 4 :  SISO, CSI Enabled : nRB-CQI

This test is to show a case of the PUCCH configuration for SISO, CSI Enabled. In this test, I will show you how to change the RRC parameter nRB-CQI in configuration file.  

Configuration

I used the eNB configuration enb-pucch-dl-siso-csi-nrbCQI.cfg which is copied from enb.default.cfg and modified for this tutorial.

LTE PUCCH Test 4 Config 01

I used the mme configuration mme-ims.cfg and ims configuration ims.default.cfg

LTE PUCCH Test 1 Config 02

In enb-pucch-dl-siso-csi-nrbCQI.cfg , PUCCH related configurations are set as follows.

For This test, keep the basic cell configuration the same as the previous SISO CSI enabled test. N_ANTENNA_DL is set to 1, so the cell is configured as SISO. DISABLE_CSI is set to 0, so CSI reporting is enabled. This means the UE can report CQI on PUCCH.

This part confirms that the test condition is still SISO with CSI enabled. The main change in this test is not the antenna mode or CSI enable option. The main change will be the CQI resource size controlled by cqi_pucch_n_rb, which is mapped to nRB-CQI in SIB2. So first, make sure N_ANTENNA_DL 1 and DISABLE_CSI 0 are set correctly, and then check how changing cqi_pucch_n_rb changes the PUCCH resource allocation.

LTE PUCCH Test 4 Config 03

In this test, pucch_dedicated is configured with n1_pucch_sr_count 11 and cqi_pucch_n_rb 10. n1_pucch_sr_count is kept as 11, so the ACK/NACK and SR-related PUCCH resource setting remains the same as the previous small-resource test.

The main change is cqi_pucch_n_rb. It is now set to 10. This value is mapped to nRB-CQI in SIB2 and controls how many RBs are reserved for CQI-related PUCCH resources. Since CSI reporting is enabled in this test, this larger value can actually affect the CQI reporting resource area. Compared with cqi_pucch_n_rb 1, this setting reserves much more uplink resource for CQI-related PUCCH.

This is useful for showing the effect of nRB-CQI clearly, but it is not usually recommended to make this value unnecessarily large. A larger cqi_pucch_n_rb can support more CQI reporting resources, but it also reduces the uplink resource area available for PUSCH. So this test is mainly to demonstrate the impact of increasing nRB-CQI, not necessarily to show an optimized configuration.

LTE PUCCH Test 4 Config 04

NOTE : cqi_pucch_n_rb = 0 is allowed only when Periodic CSI report is disabled.

This part is only to show how CQI-related parameters are selected depending on DISABLE_CSI. You do not need to modify anything here for this test.

Since DISABLE_CSI is set to 0, the else condition is used. In this branch, cqi_period is set to 40, so periodic CQI reporting is enabled with a 40 ms period. This is the same CQI reporting behavior as the previous CSI enabled test.

The main difference in Test 4 is not cqi_period. The main difference is cqi_pucch_n_rb, which was increased to 10. So the UE still reports CQI every 40 ms, but the amount of uplink resource reserved for CQI-related PUCCH is much larger than before.

The forced_cqi and forced_ri values are only used when DISABLE_CSI is set to 1. In this test, CSI is enabled, so the scheduler can use the CQI reported by the UE. Since this is still SISO, RI remains simple and the main thing to check later is how nRB-CQI 10 is reflected in SIB2, the eNB log metadata, and the RB map.

LTE PUCCH Test 3 Config 05

Run and Check

After running the cell phy command, check whether the cell PHY configuration matches the intended Test 4 setup. In this output, the cell is configured as LTE FDD with 5 MHz bandwidth. The DL ARFCN is 3350 and the UL ARFCN is 21350. The DL antenna count is 1 and the UL antenna count is also 1, so the cell is correctly configured as SISO.

This output confirms the basic PHY condition for the test. The important Test 4 change, cqi_pucch_n_rb 10, is not directly visible in the cell phy output. That value should be checked later in SIB2 as nRB-CQI, in the eNB log metadata as the CQI-related PUCCH resource allocation, and in the RB map as a larger reserved PUCCH region.

LTE PUCCH Test 3 Run 01

Run the t command and power on the UE to confirm that the UE completes attach and starts normal operation. In this trace, the PRACH line shows cell=01, seq=26, ta=3 and snr=26.4 dB, so the random access preamble is received with good signal quality. After attach, the UE appears with RNTI 003d and traffic starts flowing.

The important point in this test is the cqi value. The trace shows cqi 15, and this value is reported by the UE because CSI reporting is enabled. This is different from the CSI disabled tests, where the displayed CQI came from forced_cqi. In this case, DISABLE_CSI is set to 0, so the UE reports CQI periodically through PUCCH.

The ri value remains 1 because this is still a SISO test. The main purpose of this test is not to change the reported CQI period or antenna behavior, but to show the effect of increasing cqi_pucch_n_rb to 10. So this trace confirms that the UE is attached and CSI reporting is active before checking how the larger nRB-CQI value affects the PUCCH resource allocation in logs, SIB2, and RB map.

LTE PUCCH Test 4 Run 02

(This is not mandatory but) perform some high throughput test for both DL and UL. I ran a speedtest app on internet for this tutorial.

Log Analysis

Sample Log

For PUCCH log analysis, first check the metadata section at the beginning of the eNB log. This section shows how the PUCCH resources are actually allocated after the configuration file is applied. In this test, cqi_pucch_n_rb is set to 10, and this is reflected in the log as n_rb_cqi=10.

Compared with the previous CSI enabled test where n_rb_cqi was 1, several PUCCH allocation values are increased. PUCCH format 2/2a/2b now uses 10 RBs instead of 1 RB, and the n value is increased to 60. The RBs reserved for PUCCH are also changed to repeated 12 values, which indicates that a much larger uplink edge region is reserved for PUCCH. The CQI resource count is now 2400, which is much larger than the previous value of 240. This increase comes from the larger cqi_pucch_n_rb value.

The start of PUCCH ACK/NACK remains 11, and the SR resource count remains 220, because n1_pucch_sr_count was not changed in this test. So the main change is only the CQI-related PUCCH resource reservation. This confirms that increasing cqi_pucch_n_rb directly increases the physical resources reserved for CQI reporting. This is useful for supporting more CQI reporting resources, but it also reduces the uplink resource area available for PUSCH.

LTE PUCCH Test 4 Log 01

Check pucch-ConfigCommon in SIB2 and confirm that the configuration values are correctly reflected in the broadcast message. In this test, the configuration file sets n1_pucch_sr_count to 11 and cqi_pucch_n_rb to 10. In SIB2, these values are shown under pucch-ConfigCommon as n1PUCCH-AN 11 and nRB-CQI 10.

This confirms that cqi_pucch_n_rb in the Amarisoft configuration file is mapped to nRB-CQI in SIB2, and n1_pucch_sr_count is mapped to n1PUCCH-AN in SIB2. Compared with the previous CSI enabled test, n1PUCCH-AN remains 11 because n1_pucch_sr_count was not changed. However, nRB-CQI is increased from 1 to 10 because cqi_pucch_n_rb was changed to 10.

This is the key point of this test. Increasing cqi_pucch_n_rb increases nRB-CQI in SIB2, and this tells the UE that a larger CQI-related PUCCH resource region is configured. Since CSI reporting is enabled in this test, this larger nRB-CQI value can directly affect the amount of uplink resource reserved for periodic CQI reporting.

LTE PUCCH Test 4 Log 02

You can confirm that CQI reporting is enabled from the cqi-ReportConfig IE in RRC Connection Setup. In this test, DISABLE_CSI is set to 0, so cqi_period is set to 40. This is reflected in the RRC message as cqi-ReportPeriodic setup.

Inside cqi-ReportPeriodic, cqi-PUCCH-ResourceIndex is set to 0 and cqi-pmi-ConfigIndex is set to 38. The report format is widebandCQI, so the UE is configured to report wideband CQI periodically on PUCCH. This confirms that CSI reporting is enabled at the RRC dedicated configuration level.

Compared with the previous CSI enabled test, the CQI reporting period is still the same. The key difference in Test 4 is not the CQI period, but the common PUCCH CQI resource size. cqi_pucch_n_rb was increased to 10, and this was reflected in SIB2 as nRB-CQI 10. So the UE is still configured for periodic CQI reporting with the same cqi-pmi-ConfigIndex, but the cell reserves a much larger CQI-related PUCCH resource region.

LTE PUCCH Test 4 Log 03

In addition, you can also confirm that CQI reporting is enabled from physicalConfigDedicated in RRC Connection Reconfiguration. In this message, physicalConfigDedicated includes cqi-ReportConfig-r10, and cqi-ReportPeriodic-r10 is shown as setup. This means the UE is configured to send periodic CQI on PUCCH.

Inside the setup, cqi-PUCCH-ResourceIndex-r10 is set to 0 and cqi-pmi-ConfigIndex is set to 38. The CQI report format is configured as widebandCQI, so the UE reports a wideband CQI value periodically. simultaneousAckNackAndCQI is shown as TRUE, so ACK/NACK and CQI can be handled together according to the configured PUCCH behavior.

This confirms the same result as RRC Connection Setup. CSI reporting is enabled because DISABLE_CSI is set to 0 and cqi_period is set to 40. The main difference in this test is still nRB-CQI. Since cqi_pucch_n_rb is set to 10, the CQI reporting itself is enabled in the same way as the previous test, but the CQI-related PUCCH resource reservation is much larger.

LTE PUCCH Test 4 Log 04

You can confirm the actual PUCCH format usage from the PHY log. In this CSI enabled test, the PHY log shows PUCCH format=1A, format=1, and format=2.

format=1A is used for HARQ ACK/NACK feedback. In the log, you can see entries such as format=1A with ack=1 and n=15. This means the UE is sending ACK feedback on PUCCH after receiving downlink PDSCH.

format=1 is used for SR related transmission. The log shows format=1 with sr=1 or sr=0. sr=1 means the UE sends a Scheduling Request, and sr=0 means the UE transmits on the configured SR occasion without requesting uplink resources.

The important part for this test is format=2. In the highlighted line, the PHY log shows format=2 with cqi=1111. This confirms that the UE is transmitting CQI on PUCCH. This matches the RRC configuration where cqi-ReportPeriodic is set up. Compared with the previous CSI enabled test, the CQI reporting behavior is the same, but the CQI-related PUCCH resource region is larger because cqi_pucch_n_rb is set to 10. So this PHY log confirms that CQI reporting is active, while the larger nRB-CQI value mainly affects how much uplink resource is reserved for CQI-related PUCCH.

LTE PUCCH Test 4 Log 05

When PDSCH traffic is running, the RB map shows the actual uplink PUCCH usage very clearly. The upper track shows downlink PDSCH allocation in blue. The lower track shows uplink allocation, where the red blocks are PUSCH and the small green rectangles are PUCCH.

In this test configuration, cqi_pucch_n_rb is set to 10, so the CQI-related PUCCH resource region is much larger than in the previous CSI enabled test. This is why the green PUCCH resources are spread across a wider area near the uplink edge region. Since CSI reporting is enabled, these PUCCH resources can be used not only for HARQ ACK/NACK and SR, but also for periodic CQI reporting.

This RB map confirms the effect of increasing nRB-CQI. The UE still reports CQI periodically, but the physical resource area reserved and used for CQI-related PUCCH becomes larger. This is useful when more CQI reporting resources are needed, but it also means that less uplink resource remains available for PUSCH.

LTE PUCCH Test 4 Log 06

When PUSCH is fully allocated, the RB map makes the reserved PUCCH region easier to see. In the lower track, the red blocks show PUSCH allocation. Even though the uplink is heavily scheduled, the red PUSCH blocks do not occupy the whole UL bandwidth. The blank areas outside the red PUSCH allocation are protected for PUCCH.

In this test case, cqi_pucch_n_rb is set to 10, so the reserved CQI-related PUCCH area is much larger than in the previous CSI enabled test. This is why the PUSCH allocation starts farther away from the uplink edge and leaves a wider blank region. Amarisoft does not allocate this reserved PUCCH area to PUSCH, even when PUCCH is not actually transmitted in that subframe.

This behavior is important for uplink throughput testing. Since more RBs are reserved for CQI-related PUCCH, fewer RBs are available for PUSCH. As a result, the measured maximum uplink throughput can be lower than expected from the full 5 MHz uplink bandwidth. This test clearly shows the tradeoff of increasing nRB-CQI. It provides more CQI-related PUCCH resource space, but it also reduces the maximum PUSCH resource area unless a special scheduling option is used to allow PUSCH over the reserved PUCCH region. If you want to schedule PUSCH even at the reserved area for maximum throughput, check out this tutorial.

LTE PUCCH Test 4 Log 07

Test 5 :  MIMO, CSI Enabled 

This test is to show a case of the PUCCH configuration for MIMO, CSI enabled.

Configuration

I used the eNB configuration enb-pucch-dl-mimo-csi.cfg which is copied from enb.default.cfg and modified for this tutorial.

LTE PUCCH Test 5 Config 01

I used the mme configuration mme-ims.cfg and ims configuration ims.default.cfg

LTE PUCCH Test 1 Config 02

In enb-pucch-dl-mimo-csi.cfg , PUCCH related configurations are set as follows.

N_ANTENNA_DL is set to 2, so the downlink cell is configured for MIMO 2x2. DISABLE_CSI is set to 0, so CSI reporting is enabled.

This is different from the previous SISO CSI enabled tests. Since the downlink antenna count is now 2, the UE may report CSI information that is meaningful for MIMO scheduling. CQI is reported by the UE, and RI can also become relevant because the UE may indicate the preferred transmission rank depending on channel condition and UE capability.

So for this test, the key configuration values are N_ANTENNA_DL 2 and DISABLE_CSI 0. This means the cell runs as MIMO 2x2, and the scheduler can use UE-reported CSI instead of the fixed forced_cqi and forced_ri values used in the CSI disabled case.

LTE PUCCH Test 5 Config 03

In this MIMO CSI enabled test, pucch_dedicated is configured with n1_pucch_sr_count 11 and cqi_pucch_n_rb 1. n1_pucch_sr_count defines the ACK/NACK and SR-related PUCCH resource range. Since this is still a simple single-UE test, 11 is enough for the test purpose and keeps the reserved PUCCH region small.

cqi_pucch_n_rb is set to 1. Since DISABLE_CSI is set to 0, CSI reporting is enabled, so this CQI-related PUCCH resource can actually be used by the UE. Even though the cell is configured as MIMO with N_ANTENNA_DL 2, the CQI resource size is kept small in this baseline test. This allows you to focus on the difference caused by MIMO and CSI reporting without unnecessarily increasing the reserved PUCCH area.

In general, n1_pucch_sr_count and cqi_pucch_n_rb should be selected according to the number of UEs and the expected CSI reporting load. If these values are set too large, Amarisoft reserves more uplink physical resources for PUCCH, and the remaining area available for PUSCH becomes smaller.

LTE PUCCH Test 5 Config 04

NOTE : cqi_pucch_n_rb = 0 is allowed only when Periodic CSI report is disabled.

This part shows how CQI and RI related parameters are selected depending on DISABLE_CSI. This is only for information, so no manual change is needed here.

Since DISABLE_CSI is set to 0, cqi_period is set to 40. This enables periodic CQI reporting with a 40 ms period. In this MIMO test, N_ANTENNA_DL is set to 2, so RI reporting also becomes meaningful. Because N_ANTENNA_DL is greater than or equal to 2 and DISABLE_CSI is 0, m_ri is set to 8. This enables RI reporting, and the RI reporting period is derived from m_ri and cqi_period.

This is different from the CSI disabled case. When DISABLE_CSI is 1, cqi_period becomes 0 and m_ri becomes 0, so both CQI and RI reporting are disabled. In that case, the scheduler uses forced_cqi and forced_ri internally. In this MIMO CSI enabled test, however, CQI and RI can be reported by the UE. So later, you should check that cqi-ReportPeriodic is set up in RRC and that the PHY log shows CQI-related PUCCH transmission.

LTE PUCCH Test 5 Config 05

Run and Check

After running the cell phy command, check whether the cell PHY configuration matches the intended MIMO CSI enabled test. In this output, the cell is configured as LTE FDD with 5 MHz bandwidth. The DL ARFCN is 3350 and the UL ARFCN is 21350.

The important point is the antenna configuration. The DL ANT value is 2, so the downlink is configured as MIMO 2x2. The UL ANT value is 1, so uplink transmission remains single antenna. This matches the purpose of Test 5, where the downlink uses MIMO and CSI reporting is enabled.

Compared with the previous SISO tests, the PHY output now confirms that the downlink antenna count has changed from 1 to 2. The CSI-related behavior itself is not shown directly in this cell phy output. It should be checked later from the UE trace, RRC cqi-ReportConfig, PHY PUCCH log, and RB map.

LTE PUCCH Test 5 Run 01

Run the t command and power on the UE to confirm that the UE completes attach and starts normal operation. In this trace, the PRACH line shows cell=01, seq=38, ta=2 and snr=16.3 dB, so the random access preamble is received and the UE can proceed with attach. After that, the UE appears with RNTI 003d and starts exchanging traffic.

The important point in this MIMO CSI enabled test is that both cqi and ri are now UE-reported values. The trace shows cqi 15, and ri changes between 1 and 2. This is different from the SISO case, where ri stayed at 1. Since DL ANT is configured as 2, the UE can report rank information depending on the channel condition and its MIMO capability. When ri is 2, it means the UE is reporting that rank 2 transmission can be used. When ri is 1, the UE is reporting rank 1.

So this trace confirms that the UE is attached, CSI reporting is enabled, and MIMO-related RI reporting is active. The scheduler can now use UE-reported CQI and RI values instead of fixed forced_cqi and forced_ri values.

LTE PUCCH Test 5 Run 02

(This is not mandatory but) perform some high throughput test for both DL and UL. I ran a speedtest app on internet for this tutorial.

Log Analysis

Sample Log

For PUCCH log analysis, first check the metadata section at the beginning of the eNB log. This section shows the actual PUCCH resource allocation after the MIMO CSI enabled configuration is applied. In this test, the cell is LTE FDD with earfcn 3350, pci 1, DL bandwidth n_rb_dl 25 and UL bandwidth n_rb_ul 25. The UL configuration shows prach_freq_offset 2, delta_pucch_shift 2, n_rb_cqi 1 and n_cs_an 0.

The PUCCH allocation is similar to the SISO CSI enabled baseline because cqi_pucch_n_rb is still set to 1 and n1_pucch_sr_count is still set to 11. PUCCH format 2/2a/2b uses 1 RB with n 6. The start of PUCCH ACK/NACK is 11. The RBs reserved for PUCCH are shown as repeated 3 values. The SR resource count is 220, and the CQI resource count is 240.

The important point is that CQI resource count is non-zero, so CQI reporting resources are allocated. This matches DISABLE_CSI 0. Compared with the SISO CSI enabled case, the common PUCCH resource allocation does not change much because the PUCCH resource size parameters are the same. The MIMO-specific difference is mainly in the UE-reported CSI contents, especially RI reporting, not in the basic nRB-CQI reservation shown here.

LTE PUCCH Test 5 Log 01

Check pucch-ConfigCommon in SIB2 and confirm that the configuration values are correctly reflected in the broadcast message. In this MIMO CSI enabled test, the configuration file sets n1_pucch_sr_count to 11 and cqi_pucch_n_rb to 1. In SIB2, these values are shown under pucch-ConfigCommon as n1PUCCH-AN 11 and nRB-CQI 1.

This confirms the same mapping as in the previous tests. cqi_pucch_n_rb in the Amarisoft configuration file is mapped to nRB-CQI in SIB2, and n1_pucch_sr_count is mapped to n1PUCCH-AN in SIB2. Since cqi_pucch_n_rb is still 1, the common CQI-related PUCCH resource size is the same as the SISO CSI enabled baseline. Since n1_pucch_sr_count is also still 11, the ACK/NACK resource starting point is also unchanged.

The important difference of this test is not the common PUCCH resource size. The difference is that the cell is configured with N_ANTENNA_DL 2, so the UE can report MIMO-related CSI such as RI. Therefore, SIB2 confirms the common PUCCH resource layout, while the MIMO-specific CSI behavior should be checked in RRC Connection Setup, RRC Connection Reconfiguration, live trace, and PHY PUCCH logs.

LTE PUCCH Test 5 Log 02

You can confirm that CQI reporting is enabled from the cqi-ReportConfig IE in RRC Connection Setup. In this MIMO CSI enabled test, DISABLE_CSI is set to 0, so cqi_period is set to 40. This is reflected in the RRC message as cqi-ReportPeriodic setup.

Inside cqi-ReportPeriodic, cqi-PUCCH-ResourceIndex is set to 0 and cqi-pmi-ConfigIndex is set to 38. The report format is widebandCQI, so the UE is configured to report wideband CQI periodically on PUCCH. This confirms that CQI reporting is enabled and that the CQI value shown in the live trace is reported by the UE, not generated from forced_cqi.

In this MIMO test, this RRC setup is especially important because CSI feedback is used together with the 2-layer downlink antenna configuration. The CQI reporting setup confirms the periodic CQI part, while RI-related behavior should be checked together with the MIMO configuration and later RRC/PHY logs. Since N_ANTENNA_DL is 2 and m_ri is enabled, the UE can also report RI, which is why the live trace can show ri changing between 1 and 2.

LTE PUCCH Test 5 Log 03

In addition, you can confirm that CQI and RI reporting are enabled from physicalConfigDedicated in RRC Connection Reconfiguration. In this MIMO CSI enabled test, physicalConfigDedicated includes cqi-ReportConfig-r10, and cqi-ReportPeriodic-r10 is shown as setup. This confirms that the UE is configured to send periodic CQI on PUCCH.

Inside the CQI periodic setup, cqi-PUCCH-ResourceIndex-r10 is set to 0 and cqi-pmi-ConfigIndex is set to 38. The report format is widebandCQI, so the UE reports wideband CQI periodically. Since this is a MIMO test with N_ANTENNA_DL set to 2, RI reporting is also enabled. This is shown by ri-ConfigIndex 483 in the RRC message. This matches the configuration where m_ri is set to 8 when CSI is enabled.

The message also shows antennaInfo-r10 with transmissionMode-r10 tm3 and codebookSubsetRestriction-r10. This confirms that the UE is configured with a MIMO transmission mode. So this RRC Connection Reconfiguration confirms the full MIMO CSI setup: CQI reporting is enabled, RI reporting is enabled, and the UE can provide MIMO-related CSI feedback to the scheduler.

LTE PUCCH Test 5 Log 04

You can confirm the actual PUCCH format usage from the PHY log. In this MIMO CSI enabled test, the PHY log shows format=1A, format=1, format=2, format=2A, and format=1B.

format=1A is used for HARQ ACK/NACK feedback. The log shows entries such as format=1A with ack=1 and n values such as 15 or 11. This confirms that the UE is sending ACK feedback for downlink PDSCH.

format=1 is used for SR related transmission. The log shows sr=1 or sr=0, which indicates Scheduling Request behavior.

The important MIMO CSI-related part is format=2 and format=2A. format=2 is used for CQI reporting, and the log shows CQI bits such as cqi=1111. format=2A is shown with cqi=1111 and ack=1. This means CQI and HARQ ACK are being carried together on PUCCH. The log also shows format=2 with ri=1, which confirms RI reporting is active in this MIMO test.

Compared with the SISO CSI enabled case, the key difference is that RI reporting is now visible because the downlink antenna configuration is MIMO 2x2. This matches the RRC configuration where cqi-ReportPeriodic is set up and ri-ConfigIndex is configured. So the PHY log confirms that PUCCH is used not only for HARQ ACK/NACK and SR, but also for MIMO-related CSI reporting such as CQI and RI.

LTE PUCCH Test 5 Log 05

When PDSCH traffic is running, the RB map gives a visual confirmation of the uplink resources used by PUCCH. The upper track shows downlink PDSCH allocation in blue. The lower track shows uplink allocation, where the red blocks are PUSCH and the small green rectangles are PUCCH.

In this MIMO CSI enabled test, the green PUCCH resources are used for multiple uplink control purposes. Some of them are for HARQ ACK/NACK after downlink PDSCH, some are for SR, and some are for CSI reporting such as CQI and RI. This matches the PHY log where format 1A, format 1, format 2, and format 2A are observed.

Compared with the SISO CSI enabled case, the RB map layout may look similar because cqi_pucch_n_rb is still 1 and the common PUCCH resource size is not changed. The important difference is the content carried on PUCCH. In this MIMO case, the UE can also report RI, so the PUCCH resources are now used for MIMO-related CSI feedback as well as basic HARQ and SR signaling.

LTE PUCCH Test 5 Log 06

When PUSCH is fully allocated, the RB map clearly shows the uplink resources reserved for PUCCH. In the lower track, the red blocks are PUSCH allocations. Even though the uplink is heavily scheduled, the red PUSCH blocks do not occupy the whole UL resource range. The blank areas near the edge of the uplink grid are kept reserved for PUCCH.

In this MIMO CSI enabled test, the reserved PUCCH area is used to protect resources for HARQ ACK/NACK, SR, CQI, and RI reporting. Since cqi_pucch_n_rb is still 1, the reserved CQI-related region is not as large as the nRB-CQI 10 test, but it is still protected from PUSCH scheduling. Amarisoft does not allocate these reserved PUCCH resources to PUSCH, even when there is no actual PUCCH transmission in that specific subframe.

This is important for maximum uplink throughput analysis. The UE may look close to fully scheduled, but the full 5 MHz uplink bandwidth is not available for PUSCH because part of the resource grid is reserved for PUCCH. In MIMO CSI enabled operation, this reservation is necessary because the UE may need to send CQI and RI feedback as well as HARQ ACK/NACK and SR. As a result, the measured maximum uplink throughput can be slightly lower than a simple theoretical calculation based on the full uplink bandwidth. If you want to schedule PUSCH even at the reserved area for maximum throughput, check out this tutorial.

LTE PUCCH Test 5 Log 07

Test 6 :  Simulteneous CSI and Ack/Nack 

This test is to show a case of the PUCCH configuration for SISO with Simultaneous CSI and Ack/Nack.

Configuration

I used the eNB configuration enb-pucch-dl-siso-csi-an-mux.cfg which is copied from enb.default.cfg and modified for this tutorial.

LTE PUCCH Test 6 Config 01

I used the mme configuration mme-ims.cfg and ims configuration ims.default.cfg

LTE PUCCH Test 1 Config 02

In enb-pucch-dl-siso-csi-an-mux.cfg , PUCCH related configurations are set as follows.

N_ANTENNA_DL is set to 1, so the downlink cell uses a single antenna configuration. This keeps the antenna condition simple and makes it easier to focus on the PUCCH behavior.

DISABLE_CSI is set to 0, so CSI reporting is enabled. This means the UE can report CQI on PUCCH. The main purpose of this test is not only to enable CQI reporting, but also to check the behavior when CQI and HARQ ACK/NACK need to be handled together. So after confirming this basic configuration, the next important point is to check the parameter related to simultaneous ACK/NACK and CQI reporting in the RRC configuration and then confirm the actual PUCCH format usage in the PHY log.

LTE PUCCH Test 6 Config 03

For this test, force_dl_schedule is set to true only to create a clear test condition. With this option enabled, Amarisoft tries to schedule PDSCH in every subframe. As a result, the UE needs to send HARQ ACK/NACK frequently, almost every subframe where downlink data is scheduled.

This is useful for testing simultaneous CSI and ACK/NACK behavior. Since CSI reporting is already enabled, the UE has periodic CQI reporting occasions. By forcing frequent PDSCH scheduling, ACK/NACK transmission can overlap with the CQI reporting occasion. This creates a situation where CQI and ACK/NACK need to be handled in the same subframe.

So this setting is not mainly for normal throughput optimization. It is used here to intentionally increase the chance of CQI and ACK/NACK collision or multiplexing on PUCCH. Later, you can check the RRC configuration and PHY log to see whether simultaneousAckNackAndCQI is enabled and which PUCCH format is used when CQI and ACK/NACK occur together.

LTE PUCCH Test 6 Config 04

For this test, simultaneousAckNackAndCQI is set to true and simultaneousAckNackAndCQI_format3 is also set to true. These settings are used to allow ACK/NACK and CQI to be handled together when they occur in the same subframe. They are already true by default, but they are explicitly configured here to make the test condition clear.

The pucch_dedicated parameters such as n1_pucch_sr_count, cqi_pucch_n_rb, n1_pucch_an_cs_count, and n3_pucch_an_n_rb can be configured as needed for resource allocation, but they are not the main focus of this test. They affect how much PUCCH resource is reserved, but they do not decide whether ACK/NACK and CQI are multiplexed. The multiplexing behavior is controlled by simultaneousAckNackAndCQI and simultaneousAckNackAndCQI_format3.

So the key point of this test is simple. CSI reporting is enabled, PDSCH is forced frequently by force_dl_schedule true, and simultaneous ACK/NACK plus CQI handling is enabled. This creates a good condition to observe how Amarisoft configures the RRC message and what PUCCH format appears in the PHY log when CQI and ACK/NACK are reported together.

LTE PUCCH Test 6 Config 05

NOTE : cqi_pucch_n_rb = 0 is allowed only when Periodic CSI report is disabled.

This part shows how cqi_period, forced_cqi, forced_ri, and m_ri are selected depending on DISABLE_CSI and antenna configuration. This section is only for reference, so you can configure it in any way depending on the test purpose.

In this test, DISABLE_CSI is set to 0, so cqi_period is set to 40. This enables periodic CQI reporting with a 40 ms period. Since this test is SISO, N_ANTENNA_DL is 1, so the RI reporting part is not the main focus. The main purpose is to create a condition where CQI reporting is enabled and ACK/NACK is frequently generated by forced downlink scheduling.

The important configuration for Test 6 is not this CQI period block itself. The important part is that CSI reporting is enabled, force_dl_schedule is set to true, and simultaneousAckNackAndCQI is enabled. With this combination, CQI and ACK/NACK can occur in the same subframe, and then you can check how Amarisoft handles the simultaneous reporting in RRC and PHY logs.

LTE PUCCH Test 6 Config 06

Run and Check

After running the cell phy command, check whether the cell PHY configuration matches the intended Test 6 setup. In this output, the cell is configured as LTE FDD with 5 MHz bandwidth. The DL ARFCN is 3350 and the UL ARFCN is 21350. The DL ANT value is 1 and the UL ANT value is also 1, so the cell is correctly configured as SISO.

The cell command also confirms the basic cell parameters. The TAC is 0x0001, the PCI is 1, the PRACH root sequence index is 204, and the PLMN is 00101. This confirms that the cell is running with the expected basic configuration before checking UE attach and PUCCH behavior.

For this test, the special behavior is not visible directly in the cell phy output. The important Test 6 settings are CSI enabled, force_dl_schedule true, simultaneousAckNackAndCQI true, and simultaneousAckNackAndCQI_format3 true. These should be confirmed later from the RRC configuration and PHY PUCCH log, especially when CQI and ACK/NACK occur in the same subframe.

LTE PUCCH Test 6 Run 01

Run the t command and power on the UE to confirm that the UE completes attach and starts normal operation. In this trace, the PRACH line shows cell=01, seq=22, ta=5 and snr=28.8 dB, so the random access preamble is received with good signal quality. After that, the UE appears with RNTI 003d, which confirms that the UE is attached and active.

In this test, the DL side shows cqi 6 and ri 1. Since CSI reporting is enabled, the CQI value is reported by the UE. RI stays at 1 because this is a SISO test. You can also see that downlink scheduling is very frequent. The retx value and txok count are high, and the DL bitrate increases to around 2.37 to 2.38 Mbps. This is expected because force_dl_schedule is set to true to make PDSCH occur frequently.

The purpose of this condition is to make the UE send HARQ ACK/NACK frequently while periodic CQI reporting is also enabled. This increases the chance that CQI and ACK/NACK occur in the same subframe. So this trace confirms the basic test condition: UE attach is successful, CSI reporting is active, and frequent downlink scheduling is creating many ACK/NACK opportunities for the simultaneous CSI and ACK/NACK test.

LTE PUCCH Test 6 Run 02

(This is not mandatory but) perform some high throughput test for both DL and UL. I ran a speedtest app on internet for this tutorial.

Log Analysis

Sample Log

For PUCCH log analysis, first check the metadata section at the beginning of the eNB log. This section shows the actual PUCCH resource allocation after the configuration is applied. In this test, the log shows n_rb_cqi 10, which matches cqi_pucch_n_rb 10 in the configuration file.

The PUCCH allocation section shows that PUCCH format 2/2a/2b uses 10 RBs and n is 60. This is much larger than the basic CSI enabled case where n_rb_cqi was 1. The RBs reserved for PUCCH are shown as repeated 12 values, which means a larger uplink edge region is reserved for PUCCH. The CQI resource count is 2400, so CQI-related PUCCH resources are actively allocated because CSI reporting is enabled.

The start of PUCCH ACK/NACK is 11 and the SR resource count is 220. These values are not the main focus of this test. The important point is that n_rb_cqi 10 increases the CQI-related PUCCH reservation. This helps create enough PUCCH resource space for CQI reporting and simultaneous CSI plus ACK/NACK testing, but it also reduces the maximum PUSCH resource area. The GBR limit shown at the bottom also reflects this effect, with UL reduced to around 1.473 Mre/s because more uplink resources are reserved for PUCCH.

LTE PUCCH Test 6 Log 01

Before checking the simultaneous CSI and ACK/NACK behavior in the PHY log, first confirm that the UE supports the required PUCCH capability from the UE Capability Information message. In this example, the featureGroupIndicators field is decoded, and the highlighted item shows that the UE supports the PUCCH type related to simultaneous CSI and ACK/NACK reporting.

This capability is important because the network can configure simultaneousAckNackAndCQI only when the UE can support the corresponding reporting behavior. For this test, the UE capability check confirms that the UE is able to report CSI and ACK/NACK together. Therefore, the later RRC configuration and PHY log can be interpreted as a valid simultaneous reporting test, not just a network-side configuration attempt.

LTE PUCCH Test 6 Log 02

You can confirm that simultaneousAckNackAndCQI is enabled from physicalConfigDedicated in the RRC Connection Reconfiguration message. In this message, cqi-ReportConfig-r10 is configured with cqi-ReportPeriodic-r10 setup, so periodic CQI reporting is enabled. Inside the same CQI report configuration, simultaneousAckNackAndCQI is shown as TRUE.

This means the UE is allowed to handle CQI and HARQ ACK/NACK together when they occur in the same subframe. This matches the test configuration where simultaneousAckNackAndCQI is explicitly set to true. Since force_dl_schedule is also enabled, PDSCH is scheduled frequently and ACK/NACK opportunities are created frequently. Therefore, when a periodic CQI occasion overlaps with ACK/NACK, the UE can use the configured simultaneous reporting behavior instead of dropping one of them.

So this RRC Connection Reconfiguration confirms the key Test 6 condition: CSI reporting is enabled, and simultaneous ACK/NACK plus CQI reporting is enabled at the UE dedicated configuration level.

LTE PUCCH Test 6 Log 03

You can confirm the actual simultaneous CSI and ACK/NACK behavior from the PHY log. In this log, most of the surrounding PUCCH entries are format=1A. These are normal HARQ ACK/NACK transmissions generated because force_dl_schedule is enabled and PDSCH is scheduled very frequently.

The important line is the highlighted PUCCH entry. It shows format=2A with cqi=0110 and ack=0. This means CQI and ACK/NACK are carried together on a single PUCCH transmission. The CQI value 0110 is the CSI report, and ack=0 is the HARQ feedback. This confirms that simultaneousAckNackAndCQI is working as intended.

So the PHY log confirms the full Test 6 behavior. CSI reporting is enabled, ACK/NACK is generated frequently by forced downlink scheduling, and when CQI and ACK/NACK occur in the same subframe, Amarisoft schedules them together using PUCCH format 2A. This matches the RRC configuration where simultaneousAckNackAndCQI is TRUE.

LTE PUCCH Test 6 Log 04

When PDSCH is flowing, the RB map can also confirm the actual PUCCH transmission used for simultaneous CSI and ACK/NACK. In the upper track, the blue blocks show PDSCH scheduling. Since force_dl_schedule is enabled, PDSCH is scheduled very frequently, so the UE needs to send HARQ ACK/NACK frequently.

In the lower track, the small green rectangles show the uplink PUCCH resources. When you hover over one of these PUCCH resources, the tooltip shows the detailed PUCCH content. In this example, the tooltip shows format=2A with cqi=0110 and ack=1. This means CSI and ACK/NACK are transmitted together on the same PUCCH resource.

This visually confirms the same result as the PHY log. The UE is not sending CQI and ACK/NACK separately in this subframe. Instead, they are multiplexed into one PUCCH transmission using format 2A. So the RB map confirms that simultaneousAckNackAndCQI is enabled and working as expected.

LTE PUCCH Test 6 Log 05

Test 7 :  SIB2 ASN.1 Modification :  nCS-AN change

This test is to show how to change a PUCCH configuration not cofigurable in configuration file by modifying SIB2 message.

Configuration

I used the eNB configuration enb-pucch-dl-siso-csi-nCS-AN.cfg which is copied from enb.default.cfg and modified for this tutorial.  And in this tutorial, the modified SIB ASN.1 is used.  sib2_3_nCS-AN.asn is copied and modified from sib2_3.asn.

LTE PUCCH Test 7 Config 01

I used the mme configuration mme-ims.cfg and ims configuration ims.default.cfg

LTE PUCCH Test 1 Config 02

In enb-pucch-dl-siso-csi-nCS-AN.cfg , PUCCH related configurations are set as follows.

N_ANTENNA_DL is set to 1, so the cell is configured as a single downlink antenna cell. DISABLE_CSI is set to 0, so CSI reporting is enabled and the UE can report CQI on PUCCH.

This configuration part is almost the same as the previous SISO CSI enabled test. The important difference of Test 7 is not in these macro values. The main purpose is to modify nCS-AN, which is part of pucch-ConfigCommon in SIB2. Since this value is not directly changed from the normal PUCCH configuration field used in the previous tests, it will be modified through the SIB2 ASN.1 message. So first, confirm that the cell is running as SISO with CSI enabled, and then check how the SIB2 modification changes nCS-AN in the broadcast message.

LTE PUCCH Test 7 Config 03

For this test, force_dl_schedule is set to true only to create a strong test condition. With this option enabled, Amarisoft schedules PDSCH in every possible subframe. As a result, the UE sends HARQ ACK/NACK very frequently on PUCCH.

This is useful for checking the effect of nCS-AN because it creates many ACK/NACK transmissions. If ACK/NACK is generated often, you have more PUCCH occasions to observe in the PHY log and RB map. This makes it easier to confirm whether the SIB2 ASN.1 modification is working as expected.

So this setting is not mainly for normal traffic behavior. It is used here to force frequent PUCCH activity. After this, the important check is whether the modified nCS-AN value appears in SIB2 and whether the UE can still attach and send ACK/NACK properly with the modified PUCCH common configuration.

LTE PUCCH Test 7 Config 04

Specify the modified SIB2 ASN.1 file in sib_sched_list using the filename field. In this example, filename is set to sib2_3_nCS-AN.asn. This is the ASN.1 file that contains the modified nCS-AN value. It is not the default SIB2 ASN.1 file, so you need to create this file before running the test.

The si_periodicity is set to 16 frames, so this SIB2 message is broadcast with the configured SI periodicity. When the eNB starts, Amarisoft reads the ASN.1 file specified in sib_sched_list and uses it for the SIB message. Therefore, if nCS-AN is changed inside sib2_3_nCS-AN.asn, the modified value should appear later in the decoded SIB2 message.

This step is important because Test 7 changes a PUCCH parameter through the SIB2 message itself, not through the normal PUCCH configuration field. So the key check is to make sure the modified ASN.1 filename is correctly specified here, and then verify from the RRC log that SIB2 broadcasts the modified nCS-AN value.

LTE PUCCH Test 7 Config 05

In this test, simultaneousAckNackAndCQI is set to true and simultaneousAckNackAndCQI_format3 is also set to true. These options are kept enabled so that CQI and ACK/NACK can be handled together when they occur in the same subframe.

The pucch_dedicated parameters are still shown here, but they are not the main target of this step. n1_pucch_sr_count, cqi_pucch_n_rb, n1_pucch_an_cs_count, ack_nack_feedback_mode_ca, and n3_pucch_an_n_rb control the PUCCH resource allocation and related resource positioning. If you want to study how nCS-AN changes the PUCCH resource position, you may need to adjust some of these values carefully together with the modified SIB2 value. Otherwise, the resource layout may not match the intended test condition.

For this test, the key point is that nCS-AN is changed through the modified SIB2 ASN.1 file, while simultaneousAckNackAndCQI is kept enabled. This allows you to check whether the modified common PUCCH configuration is broadcast correctly and whether the UE can still send ACK/NACK and CSI-related PUCCH properly under the modified nCS-AN condition.

LTE PUCCH Test 7 Config 06

In this test, you do not need to focus on cqi_period or m_ri because they are not the parameters that control the nCS-AN modification. This section only shows the general CQI and RI reporting configuration logic.

Since DISABLE_CSI is set to 0, cqi_period is set to 40, so periodic CQI reporting is enabled. Because this test is SISO with N_ANTENNA_DL set to 1, the RI-related part is not important for this test. RI reporting is mainly meaningful for MIMO cases.

For this test, the main target is nCS-AN in SIB2. That value is modified through the custom SIB2 ASN.1 file specified in sib_sched_list. Therefore, cqi_period and m_ri can be configured as needed for the test environment, but they do not directly affect the nCS-AN change. The important checks are whether the modified SIB2 broadcasts the intended nCS-AN value and whether the UE can still attach and transmit PUCCH properly with that modified common PUCCH configuration.

LTE PUCCH Test 7 Config 07

In sib2_3_nCS-AN.asn , the pucch-ConfigCommon IE in SIB2 is manually modified for this test. The important change is nCS-AN 1. This value is part of the common PUCCH configuration broadcast by SIB2, so the UE receives this value before it performs normal uplink control transmission.

In this modified ASN.1 file, nRB-CQI is set to 4 and n1PUCCH-AN is set to 12. These values are marked as patched by eNB, so Amarisoft may overwrite or patch them based on the running cell configuration. The key value to focus on in this test is nCS-AN 1, because this is the value intentionally changed in the custom SIB2 ASN.1 file.

So the purpose of this step is to prepare a modified SIB2 message that broadcasts a different nCS-AN value. Later, you should confirm in the decoded SIB2 log that nCS-AN is really changed to 1, and then check whether the UE can still attach and transmit PUCCH correctly with this modified common PUCCH configuration.

LTE PUCCH Test 7 Config 08

Run and Check

After running the cell phy command, check whether the cell PHY configuration matches the intended Test 7 setup. In this output, the cell is configured as LTE FDD with 5 MHz bandwidth. The DL ARFCN is 3350 and the UL ARFCN is 21350. The DL ANT value is 1 and the UL ANT value is also 1, so the cell is correctly configured as SISO.

The cell command also confirms the common cell parameters. The TAC is 0x0001, PCI is 1, PRACH root sequence index is 204, DL gain is 0.0, uplink discontinuous transmission is disabled, and PLMN is 00101. This confirms that the basic cell configuration is running as expected.

The nCS-AN modification is not visible in the cell phy output. This command only confirms the PHY and basic cell setup. To verify the actual Test 7 change, you need to check the decoded SIB2 message and confirm that pucch-ConfigCommon includes the modified nCS-AN value from the custom sib2_3_nCS-AN.asn file.

LTE PUCCH Test 7 Run 01

Run the t command and power on the UE to confirm that the UE completes attach with the modified SIB2 configuration. In this trace, the PRACH line shows cell=01, seq=22, ta=4 and snr=29.0 dB, so the random access preamble is received with good signal quality. After that, the UE appears with RNTI 003d, which confirms that the UE is attached and active.

The DL side shows cqi 15 and ri 1. Since CSI reporting is enabled, the CQI value is reported by the UE. RI stays at 1 because this is still a SISO test. The downlink bitrate is high, around 17.2 Mbps at first and then around 23.3 to 23.4 Mbps, because force_dl_schedule is enabled and PDSCH is scheduled very frequently.

This trace confirms that the UE can still attach and operate normally even after modifying nCS-AN in the custom SIB2 ASN.1 file. The next important check is to decode SIB2 and confirm that pucch-ConfigCommon actually contains the modified nCS-AN value.

LTE PUCCH Test 7 Run 02

(This is not mandatory but) perform some high throughput test for both DL and UL. I ran a speedtest app on internet for this tutorial.

Log Analysis

Sample Log

For PUCCH log analysis, first check the metadata section at the beginning of the eNB log. This section is especially useful in this test because it confirms whether the modified nCS-AN value from the custom SIB2 ASN.1 file is actually applied to the cell configuration.

In this log, the UL configuration line shows n_rb_cqi=10 and n_cs_an=1. This confirms that nCS-AN has been changed to 1. In the previous configuration, n_cs_an was 0, but after using the modified SIB2 ASN.1 file, the log now shows n_cs_an=1. This is the key confirmation point for Test 7.

You can also see that PUCCH format 2/2a/2b uses 10 RBs, and the n value is now 64. Compared with the previous case where n_cs_an was 0, this value has changed because the PUCCH resource calculation is affected by nCS-AN. The start of PUCCH ACK/NACK remains 11, the RBs reserved for PUCCH remain 12, and the SR resource count remains 220. The CQI resource count is now 2560, which is also affected by the changed common PUCCH resource configuration.

So this log confirms that the SIB2 ASN.1 modification is not only visible in the broadcast message, but is also reflected in the actual PUCCH physical resource allocation used by Amarisoft.

LTE PUCCH Test 7 Log 01

Check pucch-ConfigCommon in SIB2 and confirm that the nCS-AN value is reflected as configured in the modified SIB2 ASN.1 file. In this decoded SIB2 message, pucch-ConfigCommon shows nRB-CQI 10, nCS-AN 1, and n1PUCCH-AN 11. The important value for this test is nCS-AN 1. This confirms that the custom sib2_3_nCS-AN.asn file is being used and that the modified nCS-AN value is actually broadcast to the UE in SIB2.

This is different from the earlier default case where nCS-AN was 0. By changing the ASN.1 file and assigning it in sib_sched_list, Amarisoft broadcasts the modified common PUCCH configuration. The eNB log metadata also showed n_cs_an=1, so both the decoded RRC message and the internal log confirm the same result.

This check is important because nCS-AN is part of the common PUCCH configuration that the UE uses to derive PUCCH ACK/NACK resources. So if this value is changed incorrectly, the UE may not transmit PUCCH in the expected resource position, or the eNB may fail to decode the PUCCH properly. In this test, the UE attached successfully and SIB2 shows nCS-AN 1, so the modification is applied correctly.

LTE PUCCH Test 7 Log 02

You can confirm the actual PUCCH format usage from the PHY log. In this test, the PHY log shows many PUCCH format=1A entries. These are HARQ ACK/NACK transmissions generated by the frequent PDSCH scheduling. Since force_dl_schedule is enabled, the UE receives downlink data very often and sends ACK/NACK very frequently.

The highlighted entry shows format=2A with cqi=1111 and ack=1. This means CQI and ACK/NACK are transmitted together on one PUCCH transmission. The CQI part is the CSI report, and ack=1 is the HARQ feedback. This confirms that simultaneous CSI and ACK/NACK reporting is working properly even after changing nCS-AN to 1 in SIB2.

So this PHY log confirms two things. First, the UE is still able to transmit PUCCH correctly with the modified nCS-AN value. Second, when CQI and ACK/NACK occur in the same subframe, they are multiplexed on PUCCH format 2A as expected.

LTE PUCCH Test 7 Log 03

When PDSCH is flowing, the RB map gives a visual confirmation of the uplink PUCCH resources used under the modified nCS-AN condition. The upper track shows PDSCH allocation in blue. The lower track shows uplink resource usage, and the small green rectangles are the PUCCH transmissions.

In this test, nCS-AN is changed to 1 through the modified SIB2 ASN.1 file. The RB map shows that PUCCH is still transmitted properly after this change. Since force_dl_schedule is enabled, PDSCH is scheduled frequently and the UE sends ACK/NACK often. Since CSI reporting is also enabled, some PUCCH occasions can carry CSI-related information as well.

The important point is that the green PUCCH resources are still visible and regularly decoded. This means the UE and eNB are using the modified common PUCCH configuration consistently. Together with the decoded SIB2 showing nCS-AN 1 and the PHY log showing valid PUCCH format 1A and format 2A transmissions, this RB map confirms that the nCS-AN modification is applied correctly and does not break PUCCH operation in this test.

LTE PUCCH Test 7 Log 04

RRC / NAS Signaling

SIB 2

: This is the SIB 2 message sent by eNB  to configure LTE PUCCH. (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: systemInformation: {

    criticalExtensions systemInformation-r8: {

      sib-TypeAndInfo {

        sib2: {

          radioResourceConfigCommon {

            rach-ConfigCommon {

             ...

            },

            bcch-Config {

              ...

            },

            pcch-Config {

              ...

            },

            prach-Config {

              ...

            },

            pdsch-ConfigCommon {

              ...

            },

            pusch-ConfigCommon {

              ...

            },

            pucch-ConfigCommon {

              deltaPUCCH-Shift ds2,

              nRB-CQI 1,

              nCS-AN 0,

              n1PUCCH-AN 11

            },

            soundingRS-UL-ConfigCommon setup: {

              ...

            },

            uplinkPowerControlCommon {

              ...

            },

            ul-CyclicPrefixLength len1,

            pusch-ConfigCommon-v1270 {

              ...

            }

          },

          ue-TimersAndConstants {

            ...

          },

          ...

        },