NR PDCCH Order
This tutorial shows how to trigger a PDCCH Order based RACH procedure from the callbox. In live network and UE, PDCCH Order transmission would happen when a UE reaches ul_max_consecutive_retx or dl_max_consecutive_retx, but it would not be easy to create such a situation in lab settings. So in this tutorial, I will use RemoteAPI to trigger PDCCH order. The main purpose of this tutorial is to show how to configure PDCCH Order related parameters in configuration file and check if UE properly responds to the PDCCH order.
The critical component for the implementation of PDCCH Order in gNB is to transmit a specific DCI 1_0 with RACH configuration as shown below. UE should initiate RACH procedure when it recieves this DCI.
< DCI format 1_0 with CRC scrambled by C-RNTI for PDCCH Order>
|
Field (Item) |
Bits |
Reference |
|
Identifier for DCI formats |
1 |
Always set to 1, meaning this is for DL |
|
Frequency domain resource assignment |
Variable |
All Ones |
|
Random Access Preamble index |
6 |
6 bits according to ra-PreambleIndex |
|
UL/SUL indicator |
1 |
|
|
SS/PBCH index |
6 |
|
|
PRACH Mask index |
4 |
|
|
Reserved bits |
12 or 10 |
|
Table of Contents
Introduction
The Physical Downlink Control Channel (PDCCH) Order based Random Access Channel (RACH) procedure is a critical mechanism in 5G NR (New Radio) wireless communications, enabling the gNB (next-generation NodeB) to explicitly instruct a User Equipment (UE) to initiate a random access process. This mechanism is particularly significant in scenarios where uplink or downlink radio link failures occur, or when a UE's retransmission limits are exceeded, necessitating a robust recovery and re-synchronization strategy. PDCCH Orders are transmitted via specially-encoded Downlink Control Information (DCI) messages—specifically, DCI format 1_0 with parameters set to trigger RACH—allowing the network to maintain control over UE connectivity and resource utilization. In commercial deployments, such orders are typically triggered by network events, but reproducing these conditions in a controlled lab environment can be challenging. Therefore, this tutorial demonstrates how to use a callbox and RemoteAPI to manually trigger a PDCCH Order, providing an accessible methodology for testing and verification. The tutorial covers the architectural context of PDCCH and RACH within the 5G NR protocol stack, explains the configuration parameters involved, and details the interactions between gNB and UE that ensure successful random access procedures. By leveraging this approach, engineers and testers can gain deeper insights into the network's recovery mechanisms, validate UE responses to network-initiated random access commands, and fine-tune system behavior for enhanced reliability in real-world deployments.
-
Technology Context
- 5G NR Control Channels: PDCCH serves as the primary carrier of downlink control information in 5G NR, facilitating critical signaling such as scheduling, resource allocation, and special commands like the PDCCH Order.
- Random Access Procedures: RACH is the initial access and re-synchronization mechanism for UEs, essential for establishing or recovering radio connectivity with the gNB.
- Network Architecture: The gNB orchestrates radio resource control and recovery procedures, with the UE responding to network triggers to maintain session continuity.
-
Relevance and Importance
- Understanding and testing PDCCH Order based RACH is vital for validating the resilience and robustness of 5G NR networks, especially for scenarios involving link failures or mobility.
- The tutorial provides practical insight into configuring, triggering, and monitoring PDCCH Orders using callbox automation, which is otherwise difficult to replicate in live environments.
- Ensuring correct UE behavior in response to PDCCH Orders is necessary for network interoperability and compliance with 3GPP standards.
-
Learning Outcomes
- Gain an in-depth understanding of the PDCCH Order mechanism and its role in the 5G NR protocol stack.
- Learn to configure the necessary parameters in the gNB or callbox environment to trigger PDCCH Orders.
- Develop skills to validate UE responses and troubleshoot issues in RACH procedures initiated by network commands.
- Acquire experience with RemoteAPI tools for automated network testing and scenario creation.
-
Prerequisite Knowledge
- Familiarity with 5G NR protocol architecture, especially the physical and MAC layers.
- Understanding of 3GPP specifications relevant to PDCCH and RACH procedures.
- Basic experience with callbox operation, network simulation tools, and UE logging/tracing.
- Some exposure to scripting or automation interfaces (such as RemoteAPI) is recommended for following the practical sections.
Summary of the Tutorial
This tutorial presents procedures for configuring and testing both contention-based and contention-free PDCCH Order in an NR (New Radio) test environment using Amarisoft tools. The summary below highlights the step-by-step methodologies and test execution flow for both tests outlined in the document.
-
Test 1: Contention Based PDCCH Order
- Configuration:
- The test utilizes a modified eNB configuration file (gnb-sa-pdcch-order-cb.cfg), based on the default gnb-sa.cfg.
- Key configuration involves setting pdcch_order_prach to enable PDCCH order functionality.
- The preamble_type parameter is set to cb_random, indicating contention-based access.
- The default MME configuration (mme-ims.cfg) is used without further modification.
- Test Execution:
- Trace logging is started on the Callbox.
- The UE (User Equipment) is powered on and allowed to complete the network attach procedure.
- A RemoteAPI command is sent to trigger the PDCCH order procedure (the correct enb_ue_id must be ensured, typically checked in the trace window).
- Expected Result:
- The PRACH (Physical Random Access Channel) is triggered by the PDCCH order.
- Log analysis confirms that a 4-step RACH (contention-based RACH) procedure is performed.
- Additional Notes:
- If commercial UEs do not support PDCCH Order properly, Amarisoft UE simulation may be used for log collection.
- Configuration:
-
Test 2: Contention Free PDCCH Order
- Configuration:
- This test uses a modified configuration file (gnb-sa-pdcch-order-cf.cfg), derived from the default gnb-sa.cfg.
- The pdcch_order_prach parameter is configured to enable PDCCH order.
- The preamble_type parameter is set to cf_random, specifying the contention-free procedure.
- The standard mme-ims.cfg file is used for MME settings.
- Test Execution:
- Trace logging is started on the Callbox.
- The UE is powered on and completes the network attach process.
- A RemoteAPI command is sent (ensure the enb_ue_id is correct, as checked in the trace window).
- Expected Result:
- The PRACH is triggered by the PDCCH order as intended.
- Log analysis confirms a 2-step RACH (contention-free RACH) procedure is completed.
- The logs should indicate a "Contention free preamble" message, verifying the contention-free operation.
- Additional Notes:
- It is recommended to verify the default EPS bearer ID before sending the RemoteAPI command, especially if linking a dedicated bearer.
- Amarisoft UE simulation is used for log collection if commercial UE does not support the required feature.
- Configuration:
General Methodology Overview:
- Preparation of proper configuration files for each test scenario (contention-based or contention-free).
- Initialization of trace logging and network setup steps, including UE power-on and attach.
- Activation of the PDCCH order via RemoteAPI commands with verification of appropriate identifiers.
- Analysis of logs to confirm correct RACH procedures were executed as per the configuration.
Test Setup
Test setup for this tutorial is as shown below.
- SIM Card used in this tutorial is the one delivered with the system as it is.
- If you want to change the configuration, The tutorial Configuration Guide would help

Key Configuration Parameters
Followings are important configuration parameters for this tutorial. You may click on the items for the descriptions from Amarisoft documents.
- pdcch_order_prach : In this link, you will get the descriptions for all the items listed below.
- preamble_type
- sul_ind
- ssb_index
- prach_mask_index
Test 1 : Contention Based PDCCH Order
In this test, I will show you on how to configure and verify Contention based PDCCH Order.
Configuration
I used gnb-sa-pdcch-order-cb.cfg which is copied and modified from the default eNB configuration (gnb-sa.cfg).

I used the default configuration mme-ims.cfg .

In gnb-sa-pdcch-order-cb.cfg, parameters are set as follows. PDCCH order is configured by the parameter pdcch_order_prach. The parameter preamble_type specifies whether the PDCCH Order type is contention based or contention free. In this test, preamble_type is set to "cb_random" which indicates "contention based"

Perform the Test
Start trace logging on Callbox, Power on UE and let it complete the attach.
Send the RemoteAPI command as below. (

You would get the PRACH triggered by PDCCH order as shown below.

Log Analysis
NOTE : Since my commercial UE does not support PDCCH Order properly, I used Amarisoft UE sim to collect the log.
You would see that 4 step RACH (contention based RACH) is performed.

Test 2 : Contention Free PDCCH Order
In this test, I will show you on how to configure and verify Contention free PDCCH Order.
Configuration
I used gnb-sa-pdcch-order-cf.cfg which is copied and modified from the default eNB configuration (gnb-sa.cfg).

I used the default configuration mme-ims.cfg .

In gnb-sa-pdcch-order-cf.cfg, parameters are set as follows. PDCCH order is configured by the parameter pdcch_order_prach. The parameter preamble_type specifies whether the PDCCH Order type is contention based or contention free. In this test, preamble_type is set to "cf_random" which indicates "contention free"

Perform the Test
Start trace logging on Callbox, Power on UE and let it complete the attach.
Send the RemoteAPI command as below. (

You would get the PRACH triggered by PDCCH order as shown below.

Log Analysis
NOTE : Since my commercial UE does not support PDCCH Order properly, I used Amarisoft UE sim to collect the log.
Before you send RemoteAPI command, I would recommend to check the default EPS bearer ID you want to link the dedicated bearer you will create.
You would see that 2 step RACH (contention free RACH) is performed. You would also notice this is contention free by the log print 'Contention free preamble..'
