NR SA Coreset and Search Space
The purpose of this tutorial is to show you how to configure Coreset and Search Space and how those configurations are mapped to RRC message. In addition, this tutorial will explain how each of those search spaces are used throughout the call processing.
Table of Contents
- NR SA Coreset and Search Space
- Introduction
- Summary of the Tutorial
- Test Procedure Summary
- Test Setup
- Key Configuration Parameters
- Test 1 : Single Dedicated Coreset / Single Search Space
- Configuration
- Perform the Test
- Log Analysis
- Sub Test 1 : Single Dedicated Coreset / Single Search Space - Explicit Configurations
- Sub Test 2 : Single Dedicated Coreset / Single Search Space - Explicit Configurations : Assigning css to all transactions
- Sub Test 3 : Single Dedicated Coreset / Single Search Space - Explicit Configurations : Assigning both css and uss
- Test 2 : Multiple Dedicated Coreset / Multiple Search Space - Explicit Configurations : Assigning both css and uss
- RRC / NAS Signaling
Introduction
In 5G NR (New Radio) systems, the configuration and mapping of Control Resource Sets (Coresets) and Search Spaces are fundamental aspects of the physical layer’s control channel operation, directly influencing how downlink control information (DCI) is transmitted and decoded by user equipment (UE). Coresets define specific time-frequency resources within the downlink where the Physical Downlink Control Channel (PDCCH) may be transmitted, while Search Spaces determine the candidate locations within these coreset regions where a UE should monitor for its control information. The flexible and dynamic allocation of these resources enables efficient multiplexing, improved resource utilization, and robust support for a wide variety of service requirements and deployment scenarios in 5G networks. Architecturally, Coreset and Search Space configurations are managed by higher-layer signaling, particularly through RRC (Radio Resource Control) procedures, ensuring that UEs are continuously informed of relevant control channel parameters as the network adapts to changing conditions and service demands. This mechanism is critical for enabling features such as dynamic scheduling, beamforming, and network slicing, and plays a pivotal role in the overall 5G system’s performance and reliability. As the industry moves towards increasingly complex and heterogeneous network deployments, a thorough understanding of Coreset and Search Space configuration becomes essential for engineers, network architects, and anyone involved in the design or optimization of 5G NR systems.
-
Context of the Technology
- 5G NR introduces advanced control channel mechanisms, where Coresets and Search Spaces define how and where control information is delivered to UEs.
- These configurations are central to the flexible and scalable resource management required in next-generation mobile networks.
- Unlike LTE, where control channels have fixed resources, 5G NR supports dynamic and UE-specific control channel mapping, enhancing efficiency and supporting diverse use cases.
-
Relevance and Importance
- Proper configuration of Coreset and Search Space is essential for reliable and optimized downlink control signaling.
- Understanding these concepts enables network designers and engineers to tailor control channel behavior to specific deployment scenarios and service requirements.
- Non-Coreset 0 and non-Search Space 0 configurations are especially relevant for advanced scheduling and enhanced mobility procedures in 5G NR.
-
What You Will Gain from This Tutorial
- A clear understanding of the architectural concepts behind Coreset and Search Space in 5G NR.
- Insights into how these configurations are signaled via RRC procedures and mapped to network messages.
- Practical knowledge on how different search spaces are utilized throughout the call processing phases.
- The ability to interpret and apply configuration information in real-world 5G NR deployment and troubleshooting scenarios.
-
Prerequisite Knowledge and Skills
- A basic understanding of 5G NR system architecture and protocol stack.
- Familiarity with physical layer concepts such as PDCCH, OFDM resource grids, and downlink scheduling.
- Experience with RRC signaling and network configuration procedures is helpful but not strictly required.
- For comprehensive background on Coreset 0, refer to the dedicated tutorial linked in the source content.
Summary of the Tutorial
This tutorial demonstrates configuration and testing procedures for PDCCH (Physical Downlink Control Channel) coreset and search space mapping in NR (New Radio) SA (Standalone) mode, focusing on practical test setups and step-by-step methodologies. The procedures cover both basic and advanced configurations, including multiple subtests to show explicit mapping and assignment of resources for different protocol transactions.
- Test Preparation:
- Only gNB configuration is required; default MME and IMS configurations can be retained.
- Set desired TDD/FDD mode, number of DL antennas, band, frequency, and bandwidth.
- Configure PDCCH parameters: search_space0_index, dedicated_coreset, css, uss, rar_al_index, si_al_index, al_index (for controlling aggregation levels and candidate numbers for different search spaces and protocol transactions).
- Test setup uses supplied SIM card and minimal IP layer configuration.
- Key Configuration Parameters:
- Focus is on PDCCH-related parameters, especially common_coreset, dedicated_coreset, css, uss and their respective child parameters.
- Explicit assignment of aggregation level indices for various protocol transactions (RAR, SIB, user data) is highlighted as a method for granular control.
Test 1: Single Dedicated Coreset / Single Search Space
- Demonstrates default and explicit mapping of configuration parameters to protocol IEs for a single coreset and search space.
- Common configuration file is prepared and modified.
- Key steps:
- Set TDD pattern, bandwidth, MIMO configuration, and band.
- Enable only SSB 0 and configure CSI-RS to avoid collision.
- Map css to pdcch-ConfigCommon in SIB1 and uss to pdcch-Config in RRC Setup.
- Confirm correct mapping of n_candidates to respective protocol elements.
- Run the test, power on UE, ensure attachment and traffic flow.
- Analyze logs to verify mapping and application of search spaces for SIB, RAR, RRC, and user traffic.
Sub Test 1: Explicit Configurations
- Similar to the main test, but with explicitly assigned coreset_id and search_space_id.
- Assigns aggregation levels explicitly for RAR, SIB, and user traffic.
- Logs are analyzed to confirm these explicit assignments are reflected in protocol messages and scheduling.
Sub Test 2: Assigning CSS to All Transactions
- Demonstrates the use of dl_search_space and ul_search_space parameters to force all transactions to use the CSS.
- Shows configuration and log verification for the effect of these assignments.
Sub Test 3: Assigning Both CSS and USS
- Shows explicit assignment of specific search spaces for each transaction using dl_search_space and ul_search_space parameters.
- Only specific transactions (e.g., RAR, RRC with PHY config) use CSS; others use the search space defined by dl_search_space and ul_search_space.
- Logs validate the selective search space usage.
Test 2: Multiple Dedicated Coreset / Multiple Search Space
- Extends the previous tests to include multiple dedicated and common coresets and search spaces.
- Configuration files are expanded to define several coresets and search spaces, providing gNB with the ability to select depending on context.
- Highlights:
- Multiple common_coreset and dedicated_coreset definitions.
- Assignment of search spaces for various transactions with rar_search_space, dl_search_space, ul_search_space parameters.
- Verifies in logs that correct search space and coreset assignments are used for each protocol transaction.
General Methodology:
- For each test, confirm gNB and UE configuration using provided tools (e.g., cell phy commands).
- Power on UE and verify attachment completion and data flow.
- Analyze logs to correlate configuration with protocol message fields and to observe scheduling behavior for SIB1, RAR, RRC Setup, and user data messages.
- Pay particular attention to mapping between configuration parameters and protocol IEs for control resource sets and search space assignments.
Notes:
- Explicit configuration of coreset_id and search_space_id allows for fine control over scheduling and resource mapping.
- Aggregation levels can be tuned for each protocol transaction to match specific test requirements.
- Multiple coresets and search spaces provide flexibility for different scheduling scenarios and are useful for advanced test cases.
Test Procedure Summary
This test requires gNB configuration change only and you can keep mme, ims configuration as in default.
Step 1 : Set TDD/FDD(NR_TDD). number of DL Antenna(N_ANTENNA_DL), Band(band) and Frequency(dl_nr_arfcn) and Bandwidth(NR_BANDWIDTH) as you want
Step 2 : Configure pdcch parameter as per your requirement. search_space0_index, dedicated_coreset, css, uss, rar_al_index,si_al_index and al_index are the detailed parameters you need to configure. css is the parameter for common search space and uss is the parameter for user specific search space where you can specify the number of candidates for each aggregation level. rar_al_index, si_al_index and al_index are parameters indicating the specific aggregation level and number of candidates for RAR, SIB and user data respectively.
Step 3 : Run the test
Step 4 : Verify the result with Log. Check SIB for verifying the configuration on CSS (Common Search Space) and RRC Setup message for USS. Check PDCCH log to see which specific search space are applied for each PDCCH.
Test Setup
Test setup for this tutorial is as shown below. This is just for low layer testing, you may not need any complicated IP layer setup.
- 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
- common_coreset
- coreset_id
- rb_start
- l_crb
- rb_list
- duration
- interleaved
- reg_bundle_size
- interleaver_size
- shift_index
- precoder_granularity
- dmrs_scid
- tci_states_pdcch
- dedicated_coreset
- css
- uss
- search_space_id
- n_candidates
- start_symb
- coreset_id
- css
- dci_0_1_and_1_1
- slot_period
- slot_duration
- force_cce0
- force_dci_0_0
- rar_search_space
- dl_search_space
- ul_search_space
- coreset0_index
- search_space0_index
- n_rb_coreset0
- n_symb_coreset0
- offset_rbs_coreset0
- rar_al_index
- al_index
- si_al_index
- paging_al_index
- pei_al_index
Test 1 : Single Dedicated Coreset / Single Search Space
In this test, I am trying to show you how to interpret each of the configuration parameters from default setting(gnb-sa.cfg) and how to correlate the configuration with IE(information elements) in RRC messages. Then I will add multiple subtests. In the subtest, I will add some additional configuration parameters to have more controll over the coreset/searchspace mapping or control on which search space is supposed to be when.
Configuration
The configuration shown here is common configuration for all the subtests belonging to Test 1 and I will not show this configuration repeatedly for every subtest.
I have used gnb-sa-coreset-ss-test1.cfg which is copied and modified from gnb-sa.cfg

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

In gnb-sa-coreset-ss-test1.cfg, it is configured as follows.
In the configuration file, you can select any specific tdd pattern with the parameter NR_TDD_CONFIG. To apply TDD configuration, you first need to configure the duplex mode (NR_TDD) to 1 (TDD). And then I set NR_TDD_CONFIG to 2 which is one of default sample configuration provided by Amarisoft sample configuration. And I set the channel bandwidth (NR_BANDWIDTH) to 20Mhz and 2x2 MIMO (N_ANTENNA_DL = 2)

Here the band is set to n78 which is a TDD band. The important part is ssb_pos_bitmap. In this test, only ssb 0 is enabled and all the csi-rs is configured not to collide with the ssb 0 symbols. If you want to change this part, you may need to change CSI-RS symbols accordingly not to collide the changed ssb burst position.

Here comes the tricky and confusing part. Sorry for spaghetti like arrows, but this is the best I can do for now. Flow through each of the lines and arrows whenever you are confused with which parameters are mapped to which IE(information elements) in RRC. Just as high level descriptions :
- css maps to pdcch-ComfigCommon in SIB1
- uss maps to pdcch-Config in RRC Setup or RRC Reconfiguration
- n_candiates maps to nrofCanadiates in searchSpacesToAddModList
- You can explicitely specify which aggregation level(AL) should be used for which specific transactions in protocol sequence (e.g, rar_al_index for RAR, si_al_index for SIBs(Other SIBs), al_index for other general user traffcis etc)

Perform the Test
Check cell configurations with cell phy and cell command to confirm that cell configuration is properly configured as you intended.

Power on UE and make it sure the attach is complete and some traffic goes on.

Log Analysis
This is just for showing the association between the configuration shown above and IE (Information Elements) in RRC.
First you would check out how search_space0_index is mapped to RRC. It is mapped to searchSpaceZero IE in pdcch-ConfigSIB1 of MIB.

Now let's take a look at how css parameter is mapped to RRC. It is mapped to pdcch-ConfigCommon in SIB1. css parameter (object) has many child paramters in it, but by default we usually specify agrregation level with the parameter n_candidates. n_candidates is mapped to nrofCandiates IE and each of the elements in n_candidates array maps to each elements of nrofCandidates IE.
Another important thing worth paying attention to are searchSpaceOtherSystempInformation, pagingSearchSpace and ra-SearchSpace in RRC. In the configuration file of this test, I haven't specified these value. In this case, those IEs uses the seachSpaceID specified in commonSearchSpaceList.

Now let's confirm how each of these search spaces are applied to each of the transactions in protocol sequence.
You can confirm that PDCCH for SIB1 uses ss_id configured by search_space0_index.

You can confirm that PDCCH for RAR uses ss_id configured in ra-SearchSpace IE in SIB. (

Now let's take a look at how dedicated coreset and uss are configured and how they are mapped to RRC. High level mappings are as follows :
- rb_start and l_crb in configuration file are mapped to frequencyDomainResources in controlResourceSetToAddModList (
NOTE : 6 consecutive RBs corresponds to single bit '1' in frequencyDomainResources) - duration in configuration file maps to duration in controlResourceSetToAddModList
- precoder_granularity in configuration file maps to precoderGranularity in controlResourceSetToAddModList

You will notice that RRC setup message is scheduled by PDCCH in ss_id configured in ra-SearchSpace which is a css (

Other traffics (i.e, any traffic except SIB, RAR, RRC with PHY config) uses uss.

This shows a long sequence of transactions in a single shot showing which search space is used by each transaction. Just try to get familiar with the mapping and search space selection logic.

Sub Test 1 : Single Dedicated Coreset / Single Search Space - Explicit Configurations
The purpose of this Sub Test is basically same as the previous test but specified coreset_id, search_space_id explicitely. In this way, you can assign these ids as you like instead of getting them assigned automatically by gNB.
Just as high level descriptions :
- css maps to pdcch-ComfigCommon in SIB1
- uss maps to pdcch-Config in RRC Setup or RRC Reconfiguration
- n_candiates maps to nrofCanadiates in searchSpacesToAddModList
- You can explicitely specify which aggregation level(AL) should be used for which specific transactions in protocol sequence (e.g, rar_al_index for RAR, si_al_index for SIBs(Other SIBs), al_index for other general user traffcis etc)
I have used gnb-sa-coreset-ss-test1-subtest1.cfg which is copied and modified from gnb-sa-coreset-ss-test1.cfg

Then perform the test and look into the logs.
Frist let's take a look at how css parameter is mapped to RRC. It is mapped to pdcch-ConfigCommon in SIB1. css parameter (object) has many child paramters in it, but by default we usually specify agrregation level with the parameter n_candidates. n_candidates is mapped to nrofCandiates IE and each of the elements in n_candidates array maps to each elements of nrofCandidates IE.
Another important thing worth paying attention to are searchSpaceOtherSystempInformation, pagingSearchSpace and ra-SearchSpace in RRC. In the configuration file of this test, I haven't specified these value. In this case, those IEs uses the seachSpaceID specified in commonSearchSpaceList.

Now you can confirm that PDCCH for RAR uses ss_id configured in ra-SearchSpace IE in SIB. (

Now let's take a look at how dedicated coreset and uss are configured and how they are mapped to RRC. High level mappings are as follows :
- rb_start and l_crb in configuration file are mapped to frequencyDomainResources in controlResourceSetToAddModList (
NOTE : 6 consecutive RBs corresponds to single bit '1' in frequencyDomainResources) - duration in configuration file maps to duration in controlResourceSetToAddModList
- precoder_granularity in configuration file maps to precoderGranularity in controlResourceSetToAddModList

This shows a long sequence of transactions in a single shot showing which search space is used by each transaction. Just try to get familiar with the mapping and search space selection logic.

Sub Test 2 : Single Dedicated Coreset / Single Search Space - Explicit Configurations : Assigning css to all transactions
The purpose of this Sub Test is basically same as the previous test but specified coreset_id, search_space_id explicitely. In this way, you can assign these ids as you like instead of getting them assigned automatically by gNB.
Just as high level descriptions :
- css maps to pdcch-ComfigCommon in SIB1
- uss maps to pdcch-Config in RRC Setup or RRC Reconfiguration
- n_candiates maps to nrofCanadiates in searchSpacesToAddModList
- You can explicitely specify which aggregation level(AL) should be used for which specific transactions in protocol sequence (e.g, rar_al_index for RAR, si_al_index for SIBs(Other SIBs), al_index for other general user traffcis etc)
I have used gnb-sa-coreset-ss-test1-subtest2.cfg which is copied and modified from gnb-sa-coreset-ss-test1-subtest1.cfg

Then perform the test and look into the logs.
Frist let's take a look at how css parameter is mapped to RRC. It is mapped to pdcch-ConfigCommon in SIB1. css parameter (object) has many child paramters in it, but by default we usually specify agrregation level with the parameter n_candidates. n_candidates is mapped to nrofCandiates IE and each of the elements in n_candidates array maps to each elements of nrofCandidates IE.
Another important thing worth paying attention to are searchSpaceOtherSystempInformation, pagingSearchSpace and ra-SearchSpace in RRC. In the configuration file of this test, I haven't specified these value. In this case, those IEs uses the seachSpaceID specified in commonSearchSpaceList.

Now you can confirm that PDCCH for RAR uses ss_id configured in ra-SearchSpace IE in SIB. (

Now let's take a look at how dedicated coreset and uss are configured and how they are mapped to RRC. High level mappings are as follows :
- rb_start and l_crb in configuration file are mapped to frequencyDomainResources in controlResourceSetToAddModList (
NOTE : 6 consecutive RBs corresponds to single bit '1' in frequencyDomainResources) - duration in configuration file maps to duration in controlResourceSetToAddModList
- precoder_granularity in configuration file maps to precoderGranularity in controlResourceSetToAddModList

This shows a long sequence of transactions in a single shot showing which search space is used by each transaction. Just try to get familiar with the mapping and search space selection logic.

Sub Test 3 : Single Dedicated Coreset / Single Search Space - Explicit Configurations : Assigning both css and uss
The purpose of this Sub Test is basically same as the previous test but specified coreset_id, search_space_id explicitely. In this way, you can assign these ids as you like instead of getting them assigned automatically by gNB.
Just as high level descriptions :
- css maps to pdcch-ComfigCommon in SIB1
- uss maps to pdcch-Config in RRC Setup or RRC Reconfiguration
- n_candiates maps to nrofCanadiates in searchSpacesToAddModList
- You can explicitely specify which aggregation level(AL) should be used for which specific transactions in protocol sequence (e.g, rar_al_index for RAR, si_al_index for SIBs(Other SIBs), al_index for other general user traffcis etc)
I have used gnb-sa-coreset-ss-test1-subtest3.cfg which is copied and modified from gnb-sa-coreset-ss-test1-subtest2.cfg

Then perform the test and look into the logs.
Frist let's take a look at how css parameter is mapped to RRC. It is mapped to pdcch-ConfigCommon in SIB1. css parameter (object) has many child paramters in it, but by default we usually specify agrregation level with the parameter n_candidates. n_candidates is mapped to nrofCandiates IE and each of the elements in n_candidates array maps to each elements of nrofCandidates IE.
Another important thing worth paying attention to are searchSpaceOtherSystempInformation, pagingSearchSpace and ra-SearchSpace in RRC. In the configuration file of this test, I haven't specified these value. In this case, those IEs uses the seachSpaceID specified in commonSearchSpaceList.

Now you can confirm that PDCCH for RAR uses ss_id configured in ra-SearchSpace IE in SIB. (

Now let's take a look at how dedicated coreset and uss are configured and how they are mapped to RRC. High level mappings are as follows :
- rb_start and l_crb in configuration file are mapped to frequencyDomainResources in controlResourceSetToAddModList (
NOTE : 6 consecutive RBs corresponds to single bit '1' in frequencyDomainResources) - duration in configuration file maps to duration in controlResourceSetToAddModList
- precoder_granularity in configuration file maps to precoderGranularity in controlResourceSetToAddModList

This shows a long sequence of transactions in a single shot showing which search space is used by each transaction. Just try to get familiar with the mapping and search space selection logic.

Test 2 : Multiple Dedicated Coreset / Multiple Search Space - Explicit Configurations : Assigning both css and uss
The purpose of this Sub Test is basically similar to previous test. Main difference is that I configured multiple dedicated and common coresents and search space. In this case, gNB can have more choices to select different search spaces depending on situations
Just as high level descriptions :
- css maps to pdcch-ComfigCommon in SIB1
- uss maps to pdcch-Config in RRC Setup or RRC Reconfiguration
- n_candiates maps to nrofCanadiates in searchSpacesToAddModList
- You can explicitely specify which aggregation level(AL) should be used for which specific transactions in protocol sequence (e.g, rar_al_index for RAR, si_al_index for SIBs(Other SIBs), al_index for other general user traffcis etc)
I have used gnb-sa-coreset-ss-test2.cfg which is copied and modified from gnb-sa-coreset-ss-test1-subtest3.cfg
In previous test, we used coreset 0 for all the css, but you can add another coresets for css as shown here. common_coreset is configured in pdcch-ConfigCommon.commonControlResourceSet IE.

You can also configure multiple dedicated coresets. These dedicated_coreset is populated into pdcch-Config.controlResourceSetToAddModList in RRC Setup message.

css configuration is same as in previous test and it is mapped to pdcch-ConfigCommon.commonSearchSpaceList in SIB1.

You can also configure multiple uss and these uss are populated into RRC Setup message.

Then perform the test and look into the logs.
Frist let's take a look at how css parameter is mapped to RRC. It is mapped to pdcch-ConfigCommon in SIB1. css parameter (object) has many child paramters in it, but by default we usually specify agrregation level with the parameter n_candidates. n_candidates is mapped to nrofCandiates IE and each of the elements in n_candidates array maps to each elements of nrofCandidates IE.
Another important thing worth paying attention to are searchSpaceOtherSystempInformation, pagingSearchSpace and ra-SearchSpace in RRC. In the configuration file of this test, I haven't specified these value. In this case, those IEs uses the seachSpaceID specified in commonSearchSpaceList.

Now you can confirm that PDCCH for RAR uses ss_id configured in ra-SearchSpace IE in SIB. (

Now let's take a look at how dedicated coreset and uss are configured and how they are mapped to RRC. High level mappings are as follows :
- rb_start and l_crb in configuration file are mapped to frequencyDomainResources in controlResourceSetToAddModList (
NOTE : 6 consecutive RBs corresponds to single bit '1' in frequencyDomainResources) - duration in configuration file maps to duration in controlResourceSetToAddModList
- precoder_granularity in configuration file maps to precoderGranularity in controlResourceSetToAddModList
- The main point in this log is to show that multiple coreset and search spaces are configured.

You see that the PDCCH for RRC Setup message is still using the css configured by ra-SearchSpace because this message carries PHY configurations.

This shows a long sequence of transactions in a single shot showing which search space is used by each transaction. Just try to get familiar with the mapping and search space selection logic.

RRC / NAS Signaling
SIB1 (SA)
: This is the SIB1 message sent by gNB to configure NR SA. (
{
message c1: systemInformationBlockType1: {
cellSelectionInfo {
q-RxLevMin -70,
q-QualMin -20
},
cellAccessRelatedInfo {
plmn-IdentityInfoList {
{
plmn-IdentityList {
{
mcc {
0,
0,
1
},
mnc {
0,
1
}
}
},
trackingAreaCode '000064'H,
cellIdentity '001234501'H,
cellReservedForOperatorUse notReserved
}
}
},
servingCellConfigCommon {
downlinkConfigCommon {
frequencyInfoDL {
frequencyBandList {
{
freqBandIndicatorNR 78
}
},
offsetToPointA 30,
scs-SpecificCarrierList {
{
offsetToCarrier 0,
subcarrierSpacing kHz30,
carrierBandwidth 106
}
}
},
initialDownlinkBWP {
genericParameters {
locationAndBandwidth 28875,
subcarrierSpacing kHz30
},
pdcch-ConfigCommon setup: {
commonControlResourceSet {
controlResourceSetId 1,
frequencyDomainResources '011111110000000000000000000000000000000000000'B,
duration 2,
cce-REG-MappingType nonInterleaved: NULL,
precoderGranularity sameAsREG-bundle
},
commonSearchSpaceList {
{
searchSpaceId 1,
controlResourceSetId 1,
monitoringSlotPeriodicityAndOffset sl1: NULL,
monitoringSymbolsWithinSlot '10000000000000'B,
nrofCandidates {
aggregationLevel1 n0,
aggregationLevel2 n0,
aggregationLevel4 n4,
aggregationLevel8 n0,
aggregationLevel16 n0
},
searchSpaceType common: {
dci-Format0-0-AndFormat1-0 {
}
}
}
},
searchSpaceSIB1 0,
searchSpaceOtherSystemInformation 1,
pagingSearchSpace 1,
ra-SearchSpace 1
},
pdsch-ConfigCommon setup: {
pdsch-TimeDomainAllocationList {
{
mappingType typeA,
startSymbolAndLength 53
},
{
mappingType typeA,
startSymbolAndLength 44
}
}
}
},
bcch-Config {
modificationPeriodCoeff n4
},
pcch-Config {
defaultPagingCycle rf128,
nAndPagingFrameOffset oneT: NULL,
ns one
}
},
uplinkConfigCommon {
frequencyInfoUL {
scs-SpecificCarrierList {
{
offsetToCarrier 0,
subcarrierSpacing kHz30,
carrierBandwidth 106
}
}
},
initialUplinkBWP {
genericParameters {
locationAndBandwidth 28875,
subcarrierSpacing kHz30
},
rach-ConfigCommon setup: {
rach-ConfigGeneric {
prach-ConfigurationIndex 160,
msg1-FDM one,
msg1-FrequencyStart 7,
zeroCorrelationZoneConfig 15,
preambleReceivedTargetPower -110,
preambleTransMax n7,
powerRampingStep dB4,
ra-ResponseWindow sl20
},
ssb-perRACH-OccasionAndCB-PreamblesPerSSB one: n8,
ra-ContentionResolutionTimer sf64,
prach-RootSequenceIndex l139: 1,
msg1-SubcarrierSpacing kHz30,
restrictedSetConfig unrestrictedSet
},
pusch-ConfigCommon setup: {
pusch-TimeDomainAllocationList {
{
k2 7,
mappingType typeA,
startSymbolAndLength 27
},
{
k2 4,
mappingType typeA,
startSymbolAndLength 27
},
{
k2 2,
mappingType typeA,
startSymbolAndLength 27
}
},
p0-NominalWithGrant -84
},
pucch-ConfigCommon setup: {
pucch-ResourceCommon 11,
pucch-GroupHopping neither,
p0-nominal -96
}
},
timeAlignmentTimerCommon infinity
},
ssb-PositionsInBurst {
inOneGroup '80'H
},
ssb-PeriodicityServingCell ms20,
tdd-UL-DL-ConfigurationCommon {
referenceSubcarrierSpacing kHz30,
pattern1 {
dl-UL-TransmissionPeriodicity ms5,
nrofDownlinkSlots 7,
nrofDownlinkSymbols 6,
nrofUplinkSlots 2,
nrofUplinkSymbols 4
}
},
ss-PBCH-BlockPower -40
},
ue-TimersAndConstants {
t300 ms1000,
t301 ms1000,
t310 ms1000,
n310 n1,
t311 ms30000,
n311 n1,
t319 ms1000
}
}
}
RRC Setup (SA)
: This is the RRC Setup message sent by gNB to configure NR SA. (
{
message c1: rrcSetup: {
rrc-TransactionIdentifier 0,
criticalExtensions rrcSetup: {
radioBearerConfig {
srb-ToAddModList {
{
srb-Identity 1
}
}
},
masterCellGroup {
cellGroupId 0,
rlc-BearerToAddModList {
{
logicalChannelIdentity 1,
servedRadioBearer srb-Identity: 1,
mac-LogicalChannelConfig {
ul-SpecificParameters {
priority 1,
prioritisedBitRate infinity,
bucketSizeDuration ms5,
logicalChannelGroup 0,
schedulingRequestID 0,
logicalChannelSR-Mask FALSE,
logicalChannelSR-DelayTimerApplied FALSE
}
}
}
},
mac-CellGroupConfig {
schedulingRequestConfig {
schedulingRequestToAddModList {
{
schedulingRequestId 0,
sr-TransMax n64
}
}
},
bsr-Config {
periodicBSR-Timer sf20,
retxBSR-Timer sf320
},
tag-Config {
tag-ToAddModList {
{
tag-Id 0,
timeAlignmentTimer infinity
}
}
},
phr-Config setup: {
phr-PeriodicTimer sf500,
phr-ProhibitTimer sf200,
phr-Tx-PowerFactorChange dB3,
multiplePHR FALSE,
dummy FALSE,
phr-Type2OtherCell FALSE,
phr-ModeOtherCG real
},
skipUplinkTxDynamic FALSE
},
physicalCellGroupConfig {
pdsch-HARQ-ACK-Codebook dynamic
},
spCellConfig {
spCellConfigDedicated {
initialDownlinkBWP {
pdcch-Config setup: {
controlResourceSetToAddModList {
{
controlResourceSetId 3,
frequencyDomainResources '111111110000000000000000000000000000000000000'B,
duration 1,
cce-REG-MappingType nonInterleaved: NULL,
precoderGranularity sameAsREG-bundle
},
{
controlResourceSetId 4,
frequencyDomainResources '000011110000000000000000000000000000000000000'B,
duration 1,
cce-REG-MappingType nonInterleaved: NULL,
precoderGranularity sameAsREG-bundle
}
},
searchSpacesToAddModList {
{
searchSpaceId 2,
controlResourceSetId 3,
monitoringSlotPeriodicityAndOffset sl1: NULL,
monitoringSymbolsWithinSlot '10000000000000'B,
nrofCandidates {
aggregationLevel1 n0,
aggregationLevel2 n4,
aggregationLevel4 n2,
aggregationLevel8 n1,
aggregationLevel16 n0
},
searchSpaceType ue-Specific: {
dci-Formats formats0-1-And-1-1
}
},
{
searchSpaceId 3,
controlResourceSetId 4,
monitoringSlotPeriodicityAndOffset sl1: NULL,
monitoringSymbolsWithinSlot '10000000000000'B,
nrofCandidates {
aggregationLevel1 n0,
aggregationLevel2 n4,
aggregationLevel4 n2,
aggregationLevel8 n1,
aggregationLevel16 n0
},
searchSpaceType ue-Specific: {
dci-Formats formats0-1-And-1-1
}
}
}
},
pdsch-Config setup: {
dmrs-DownlinkForPDSCH-MappingTypeA setup: {
dmrs-AdditionalPosition pos1
},
tci-StatesToAddModList {
{
tci-StateId 0,
qcl-Type1 {
referenceSignal ssb: 0,
qcl-Type typeD
}
}
},
resourceAllocation resourceAllocationType1,
rbg-Size config1,
prb-BundlingType staticBundling: {
bundleSize wideband
},
zp-CSI-RS-ResourceToAddModList {
{
zp-CSI-RS-ResourceId 0,
resourceMapping {
frequencyDomainAllocation row4: '100'B,
nrofPorts p4,
firstOFDMSymbolInTimeDomain 4,
cdm-Type fd-CDM2,
density one: NULL,
freqBand {
startingRB 0,
nrofRBs 108
}
},
periodicityAndOffset slots80: 1
}
},
p-ZP-CSI-RS-ResourceSet setup: {
zp-CSI-RS-ResourceSetId 0,
zp-CSI-RS-ResourceIdList {
0
}
}
}
},
firstActiveDownlinkBWP-Id 0,
uplinkConfig {
initialUplinkBWP {
pucch-Config setup: {
resourceSetToAddModList {
{
pucch-ResourceSetId 0,
resourceList {
0,
1,
2,
3,
4,
5,
6,
7
}
},
{
pucch-ResourceSetId 1,
resourceList {
8,
9,
10,
11
}
}
},
resourceToAddModList {
{
pucch-ResourceId 0,
startingPRB 105,
intraSlotFrequencyHopping enabled,
secondHopPRB 0,
format format1: {
initialCyclicShift 1,
nrofSymbols 14,
startingSymbolIndex 0,
timeDomainOCC 0
}
},
{
pucch-ResourceId 1,
startingPRB 105,
intraSlotFrequencyHopping enabled,
secondHopPRB 0,
format format1: {
initialCyclicShift 5,
nrofSymbols 14,
startingSymbolIndex 0,
timeDomainOCC 0
}
},
{
pucch-ResourceId 2,
startingPRB 105,
intraSlotFrequencyHopping enabled,
secondHopPRB 0,
format format1: {
initialCyclicShift 9,
nrofSymbols 14,
startingSymbolIndex 0,
timeDomainOCC 0
}
},
{
pucch-ResourceId 3,
startingPRB 105,
intraSlotFrequencyHopping enabled,
secondHopPRB 0,
format format1: {
initialCyclicShift 1,
nrofSymbols 14,
startingSymbolIndex 0,
timeDomainOCC 1
}
},
{
pucch-ResourceId 4,
startingPRB 105,
intraSlotFrequencyHopping enabled,
secondHopPRB 0,
format format1: {
initialCyclicShift 5,
nrofSymbols 14,
startingSymbolIndex 0,
timeDomainOCC 1
}
},
{
pucch-ResourceId 5,
startingPRB 105,
intraSlotFrequencyHopping enabled,
secondHopPRB 0,
format format1: {
initialCyclicShift 9,
nrofSymbols 14,
startingSymbolIndex 0,
timeDomainOCC 1
}
},
{
pucch-ResourceId 6,
startingPRB 105,
intraSlotFrequencyHopping enabled,
secondHopPRB 0,
format format1: {
initialCyclicShift 1,
nrofSymbols 14,
startingSymbolIndex 0,
timeDomainOCC 2
}
},
{
pucch-ResourceId 7,
startingPRB 105,
intraSlotFrequencyHopping enabled,
secondHopPRB 0,
format format1: {
initialCyclicShift 5,
nrofSymbols 14,
startingSymbolIndex 0,
timeDomainOCC 2
}
},
{
pucch-ResourceId 8,
startingPRB 1,
intraSlotFrequencyHopping enabled,
secondHopPRB 104,
format format2: {
nrofPRBs 1,
nrofSymbols 2,
startingSymbolIndex 0
}
},
{
pucch-ResourceId 9,
startingPRB 1,
intraSlotFrequencyHopping enabled,
secondHopPRB 104,
format format2: {
nrofPRBs 1,
nrofSymbols 2,
startingSymbolIndex 2
}
},
{
pucch-ResourceId 10,
startingPRB 1,
intraSlotFrequencyHopping enabled,
secondHopPRB 104,
format format2: {
nrofPRBs 1,
nrofSymbols 2,
startingSymbolIndex 4
}
},
{
pucch-ResourceId 11,
startingPRB 1,
intraSlotFrequencyHopping enabled,
secondHopPRB 104,
format format2: {
nrofPRBs 1,
nrofSymbols 2,
startingSymbolIndex 6
}
},
{
pucch-ResourceId 12,
startingPRB 105,
intraSlotFrequencyHopping enabled,
secondHopPRB 0,
format format1: {
initialCyclicShift 9,
nrofSymbols 14,
startingSymbolIndex 0,
timeDomainOCC 2
}
},
{
pucch-ResourceId 13,
startingPRB 1,
intraSlotFrequencyHopping enabled,
secondHopPRB 104,
format format2: {
nrofPRBs 1,
nrofSymbols 2,
startingSymbolIndex 8
}
}
},
format1 setup: {
},
format2 setup: {
maxCodeRate zeroDot25
},
schedulingRequestResourceToAddModList {
{
schedulingRequestResourceId 1,
schedulingRequestID 0,
periodicityAndOffset sl40: 8,
resource 12
}
},
dl-DataToUL-ACK {
8,
7,
6,
5,
4,
12,
11
}
},
pusch-Config setup: {
txConfig codebook,
dmrs-UplinkForPUSCH-MappingTypeA setup: {
dmrs-AdditionalPosition pos1,
transformPrecodingDisabled {
}
},
pusch-PowerControl {
msg3-Alpha alpha1,
p0-AlphaSets {
{
p0-PUSCH-AlphaSetId 0,
p0 0,
alpha alpha1
}
},
pathlossReferenceRSToAddModList {
{
pusch-PathlossReferenceRS-Id 0,
referenceSignal ssb-Index: 0
}
},
sri-PUSCH-MappingToAddModList {
{
sri-PUSCH-PowerControlId 0,
sri-PUSCH-PathlossReferenceRS-Id 0,
sri-P0-PUSCH-AlphaSetId 0,
sri-PUSCH-ClosedLoopIndex i0
}
}
},
resourceAllocation resourceAllocationType1,
codebookSubset nonCoherent,
maxRank 1,
uci-OnPUSCH setup: {
betaOffsets semiStatic: {
betaOffsetACK-Index1 9,
betaOffsetACK-Index2 9,
betaOffsetACK-Index3 9,
betaOffsetCSI-Part1-Index1 7,
betaOffsetCSI-Part1-Index2 7,
betaOffsetCSI-Part2-Index1 7,
betaOffsetCSI-Part2-Index2 7
},
scaling f1
}
},
srs-Config setup: {
srs-ResourceSetToAddModList {
{
srs-ResourceSetId 0,
srs-ResourceIdList {
0
},
resourceType aperiodic: {
aperiodicSRS-ResourceTrigger 1,
slotOffset 7
},
usage codebook,
p0 -84,
pathlossReferenceRS ssb-Index: 0
}
},
srs-ResourceToAddModList {
{
srs-ResourceId 0,
nrofSRS-Ports port1,
transmissionComb n2: {
combOffset-n2 0,
cyclicShift-n2 0
},
resourceMapping {
startPosition 0,
nrofSymbols n1,
repetitionFactor n1
},
freqDomainPosition 0,
freqDomainShift 9,
freqHopping {
c-SRS 22,
b-SRS 3,
b-hop 0
},
groupOrSequenceHopping neither,
resourceType aperiodic: {
},
sequenceId 500
}
}
}
},
firstActiveUplinkBWP-Id 0,
pusch-ServingCellConfig setup: {
}
},
pdcch-ServingCellConfig setup: {
},
pdsch-ServingCellConfig setup: {
nrofHARQ-ProcessesForPDSCH n16
},
csi-MeasConfig setup: {
nzp-CSI-RS-ResourceToAddModList {
{
nzp-CSI-RS-ResourceId 0,
resourceMapping {
frequencyDomainAllocation row2: '100'H,
nrofPorts p1,
firstOFDMSymbolInTimeDomain 3,
cdm-Type noCDM,
density one: NULL,
freqBand {
startingRB 0,
nrofRBs 108
}
},
powerControlOffset 0,
scramblingID 500,
periodicityAndOffset slots80: 1,
qcl-InfoPeriodicCSI-RS 0
},
{
nzp-CSI-RS-ResourceId 1,
resourceMapping {
frequencyDomainAllocation row1: '4'H,
nrofPorts p1,
firstOFDMSymbolInTimeDomain 5,
cdm-Type noCDM,
density three: NULL,
freqBand {
startingRB 0,
nrofRBs 108
}
},
powerControlOffset 0,
scramblingID 500,
periodicityAndOffset slots80: 1,
qcl-InfoPeriodicCSI-RS 0
},
{
nzp-CSI-RS-ResourceId 2,
resourceMapping {
frequencyDomainAllocation row1: '4'H,
nrofPorts p1,
firstOFDMSymbolInTimeDomain 9,
cdm-Type noCDM,
density three: NULL,
freqBand {
startingRB 0,
nrofRBs 108
}
},
powerControlOffset 0,
scramblingID 500,
periodicityAndOffset slots80: 1,
qcl-InfoPeriodicCSI-RS 0
},
{
nzp-CSI-RS-ResourceId 3,
resourceMapping {
frequencyDomainAllocation row1: '4'H,
nrofPorts p1,
firstOFDMSymbolInTimeDomain 5,
cdm-Type noCDM,
density three: NULL,
freqBand {
startingRB 0,
nrofRBs 108
}
},
powerControlOffset 0,
scramblingID 500,
periodicityAndOffset slots80: 2,
qcl-InfoPeriodicCSI-RS 0
},
{
nzp-CSI-RS-ResourceId 4,
resourceMapping {
frequencyDomainAllocation row1: '4'H,
nrofPorts p1,
firstOFDMSymbolInTimeDomain 9,
cdm-Type noCDM,
density three: NULL,
freqBand {
startingRB 0,
nrofRBs 108
}
},
powerControlOffset 0,
scramblingID 500,
periodicityAndOffset slots80: 2,
qcl-InfoPeriodicCSI-RS 0
}
},
nzp-CSI-RS-ResourceSetToAddModList {
{
nzp-CSI-ResourceSetId 0,
nzp-CSI-RS-Resources {
0
}
},
{
nzp-CSI-ResourceSetId 1,
nzp-CSI-RS-Resources {
1,
2,
3,
4
},
trs-Info true
}
},
csi-IM-ResourceToAddModList {
{
csi-IM-ResourceId 0,
csi-IM-ResourceElementPattern pattern1: {
subcarrierLocation-p1 s8,
symbolLocation-p1 4
},
freqBand {
startingRB 0,
nrofRBs 108
},
periodicityAndOffset slots80: 1
}
},
csi-IM-ResourceSetToAddModList {
{
csi-IM-ResourceSetId 0,
csi-IM-Resources {
0
}
}
},
csi-ResourceConfigToAddModList {
{
csi-ResourceConfigId 0,
csi-RS-ResourceSetList nzp-CSI-RS-SSB: {
nzp-CSI-RS-ResourceSetList {
0
}
},
bwp-Id 0,
resourceType periodic
},
{
csi-ResourceConfigId 1,
csi-RS-ResourceSetList csi-IM-ResourceSetList: {
0
},
bwp-Id 0,
resourceType periodic
},
{
csi-ResourceConfigId 2,
csi-RS-ResourceSetList nzp-CSI-RS-SSB: {
nzp-CSI-RS-ResourceSetList {
1
}
},
bwp-Id 0,
resourceType periodic
}
},
csi-ReportConfigToAddModList {
{
reportConfigId 0,
resourcesForChannelMeasurement 0,
csi-IM-ResourcesForInterference 1,
reportConfigType periodic: {
reportSlotConfig slots80: 9,
pucch-CSI-ResourceList {
{
uplinkBandwidthPartId 0,
pucch-Resource 13
}
}
},
reportQuantity cri-RI-PMI-CQI: NULL,
reportFreqConfiguration {
cqi-FormatIndicator widebandCQI,
pmi-FormatIndicator widebandPMI
},
timeRestrictionForChannelMeasurements notConfigured,
timeRestrictionForInterferenceMeasurements notConfigured,
groupBasedBeamReporting disabled: {
},
cqi-Table table2,
subbandSize value1
}
}
},
tag-Id 0
}
}
}
}
}
}