5G/NR   

 

 

 

NR RRC Reconfiguration in a nutshell

 

  • NR RRCReconfiguration modifies an existing RRC connection and is used in SA, NR-DC, NGEN-DC, and inter-RAT mobility procedures.
  • In EN-DC NSA, the LTE RRCConnectionReconfiguration may carry an NR SCG configuration; this is distinct from the native NR message defined in TS 38.331.
  • Major configurations carried by the NR message through Release 19 include:
    • Radio bearers, measurements, MCG/SCG cell groups, SCells, and reconfiguration with sync
    • MR-DC, DAPS, conditional handover/PSCell changes, IAB/BAP, and sidelink relay configuration
    • Dedicated NAS/system information, measurement-gap requirements, MUSIM/FR2 gaps, and positioning assistance
    • Release 18 aerial UE, indirect-path, N3C, layer-1/layer-2 triggered mobility (LTM), and RACH-less handover controls
    • Release 19 extended N3C paths, NR-DC LTM, on-demand positioning SIB control, prediction applicability reporting, and early CSI acquisition

NR RRCReconfiguration in Detail

Specification baseline: This page is updated through 3GPP TS 38.331 V19.3.0 (2026-06), Release 19. ASN.1 excerpts retain the normative 3GPP field names, extension order, and release suffixes. Release 19 is still under change control, so later V19.x maintenance versions may add corrections.

As in LTE, RRC Reconfiguration is the most important steps in establishing Radio Connection between UE and Network. Understanding every details of RRC Reconfiguration would imply understanding almost everything in NR Radio Stack.  I would take around an year to get the understandings on the details of this single message to a certain degree and you would need to keep learning further details and new things throughout the whole life cycles of 5G/NR. So.. don't be too hurry trying to understand everything at a time and read / think on small pieces and analyze the protocol log when available whenever you have chance. This page also will be updated piece by piece and linked to many other pages for the details.

Overall Sequence of RRC Reconfiguration for NR

Following sequence shows what triggers NR RRC Reconfiguration on UE. As you see here, this can be triggered by LTE (in NSA(Non-Standalone) deployment) or by NR (in SA(Standalone) deployment).

  • Both processes start with an "Initial Setup" phase, where the UE establishes an initial connection with the network (eNB or gNB).
  • After this, both systems undergo a "RRC Connection Reconfiguration".
    • In LTE, this is detailed as an RRCConnectionReconfiguration message including 'v15x0-IEs' (which likely refers to certain information elements specific to the version 15.x of the LTE standard).
    • In 5G, this step is simply labeled as "RRC Reconfiguration".
  •  Following the reconfiguration command, there is an acknowledgment step labeled "RRC Connection Reconfiguration Complete" in LTE and "RRC Reconfiguration Complete" in 5G, indicating that the reconfiguration process has been acknowledged by the UE.

NOTE : In both case, NR RACH process are crucial and understanding the procedure is super important. (In NSA case, the NR RACH process happens after RRC Connection Reconfiguration. In SA, it happens as a part of Initial Attach). For further details, check out the followings

Purpose (Function) of RRC Reconfiguration

The purpose of NR RRCReconfiguration is to modify an RRC connection that is already established. In NR, the initial configuration is created by RRCSetup; subsequent bearer, measurement, mobility, cell-group, and feature configurations are delivered or changed through RRCReconfiguration. In EN-DC, an LTE RRCConnectionReconfiguration can carry the NR SCG container used for initial NR addition.

The major functionality of RRC Reconfiguration is to configure or reconfigure:

  • Radio Bearers
  • Measurements
  • Secondary Cells (SCells) or Cell Groups (e.g., Master Cell Group [MCG], Secondary Cell Group [SCG])
  • Backhaul RLC (BH RLC) Channels (for IAB nodes)
  • Uu Relay RLC Channels / PC5 Relay RLC Channels (for sidelink relay scenarios)
  • Conditional Reconfiguration (e.g., CHO – Conditional Handover, CPA – Conditional PSCell Addition/Change, CPC – Conditional PSCell Change)
  • Other dedicated configurations (e.g., BAP config, IAB IP address, sidelink dedicated configs, etc.)

Within each category, the RRCReconfiguration procedure can establish, modify, or release the relevant entities

Radio Bearer Configuration

Radio bearers are logical channels responsible for carrying either control-plane or user-plane data. RRC Reconfiguration can:

  • Establish new radio bearers, such as:
    • Signaling Radio Bearers (SRBs) – for RRC/NAS signaling
    • Data Radio Bearers (DRBs) – for user-plane data
    • Multicast MRBs (for broadcast or multicast data)
  • Modify existing radio bearers (e.g., changing their PDCP/RLC configuration, security settings, QoS mapping via SDAP, etc.).
  • Release radio bearers that are no longer needed or are being replaced.

This includes handling of:

  • DAPS bearers (dual active protocol stack scenarios),
  • RLC entity re-establishment or PDCP data recovery in certain handover or reconfiguration-with-sync scenarios,
  • Security key updates for ciphering and integrity protection.

Measurement Configuration

Another major purpose of RRC Reconfiguration is to manage the UE’s measurement activities:

  • Setup measurement configurations (e.g., events to trigger cell reselection or handover, reporting criteria, thresholds).
  • Modify existing measurement parameters (change event thresholds, add or remove frequency layers, etc.).
  • Release measurement configurations that are no longer applicable.

This procedure may configure measurements for intra- and inter-frequency scenarios, including NR, E-UTRA, and possibly inter-RAT (depending on RAT type). It can also handle advanced measurement setups like conditional reconfiguration triggers.

SCells or Cell Group Configuration

Especially relevant in carrier aggregation (CA) or Dual Connectivity (DC) scenarios, RRC Reconfiguration can:

  • Add Secondary Cells (SCells) or entire Secondary Cell Groups (SCG).
  • Modify the configurations of already added SCells or SCG (e.g., activation/deactivation, scheduling, beam failure detection, or radio link monitoring parameters).
  • Release SCells or SCGs that are no longer required.

In (NG)EN-DC or NR-DC, the RRCReconfiguration message may also include:

  • SCG MAC configuration
  • SRB3 usage (a special SRB in DC scenarios)
  • SCG activation/deactivation (with or without random access)

Backhaul RLC Channels (IAB)

For Integrated Access and Backhaul (IAB) nodes:

  • Establish, modify, or release BH RLC channels used on the wireless backhaul link.
  • Only possible when AS security is activated.
  • May involve setting up logical channels and corresponding RLC entities for data relaying between IAB nodes and the donor network.

Uu Relay RLC Channels / PC5 Relay RLC Channels

In sidelink relay scenarios (e.g., L2 U2N Relay UE or L2 U2N Remote UE):

  • Establish, modify, or release relay RLC channels that carry user or control data over Uu or PC5 interfaces.
  • Manage specialized RLC channels (SL-RLC0, SL-RLC1, or additional ones) associated with the relay.
  • Set up the SRAP (Sidelink Relay Adaptation Protocol) configuration for U2N relay scenarios

Conditional Reconfiguration (CHO, CPA, CPC)

RRC Reconfiguration can include conditionalReconfiguration, where the UE is pre-configured with one or more “candidate” target cells. The UE automatically executes the reconfiguration when certain triggering conditions (e.g., measurement events) are met. Examples:

  • CHO (Conditional Handover)
  • CPA (Conditional PSCell Addition or Change)
  • CPC (Conditional PSCell Change)

The network can remove, add, or modify conditional reconfiguration entries. The UE stores them, evaluates the trigger events, and applies the new configuration only if the condition is fulfilled.

Other Configuration Aspects

Depending on the needs of the network, RRC Reconfiguration may carry additional, more specialized configuration elements, such as:

  • Security Key Update (masterKeyUpdate or sk-Counter)
  • Sidelink Dedicated Configuration for V2X or direct UE-to-UE communication
  • BAP (Backhaul Adaptation Protocol) Configuration for IAB
  • IAB IP Address Configuration (adding/modifying/releasing IPs used by the IAB-node)
  • Dedicated NAS Message List to forward NAS messages from the network to the UE
  • System Information Delivery (e.g., dedicatedSIB1-Delivery or dedicatedSystemInformationDelivery)
  • MUSIM gap configuration or FR2 UL gap configuration for multi-SIM or certain FR2 setups
  • Application layer measurement configuration (e.g., QoE measurements for streaming sessions)
  • Release 18 aerial UE configuration, sidelink/N3C indirect paths, SRS positioning aggregation, LTM, RACH-less handover, and effective E-UTRA measurement windows
  • Release 19 extended N3C paths, NR-DC LTM, on-demand positioning SIB control, retained logged measurements, prediction applicability reports, L3 fast beam sweeping, and early CSI acquisition

What should UE do when it gets  RRCReconfiguration message ?

Clause 5.3.5.3 of TS 38.331 defines the UE processing order. The UE first handles mobility and cell-group changes, then bearer and measurement configuration, followed by dedicated information and release-specific configurations through Release 19. Finally, it builds RRCReconfigurationComplete with any requested response information.

Processing area

Top-level IEs and UE action

Mobility and cell groups

masterCellGroup, secondaryCellGroup, mrdc-SecondaryCellGroupConfig, fullConfig, daps-SourceRelease-r16, and scg-State-r17. Apply cell-group configuration, MR-DC setup/release, reconfiguration with sync, DAPS source release, or SCG deactivation as indicated.

Security

masterKeyUpdate and sk-Counter. Perform the AS key update before applying bearer security changes that depend on the new keys.

Bearers and measurements

radioBearerConfig, radioBearerConfig2, and measConfig. Add, modify, or release SRBs, DRBs, multicast MRBs, and measurement objects/reporting identities.

Dedicated information

dedicatedNAS-MessageList, dedicatedSIB1-Delivery, dedicatedSystemInformationDelivery, dedicatedPosSysInfoDelivery-r16, and dedicatedPagingDelivery-r17. Forward NAS data or process the contained system, positioning, or paging information.

IAB and conditional mobility

bap-Config-r16, iab-IP-AddressConfigurationList-r16, and conditionalReconfiguration-r16. Configure BAP/IP addressing or store, evaluate, and execute CHO/CPA/CPC candidates.

Gaps and on-demand SI

needForGapsConfigNR-r16, needForGapNCSG-ConfigNR-r17, needForGapNCSG-ConfigEUTRA-r17, onDemandSIB-Request-r16, musim-GapConfig-r17, and ul-GapFR2-Config-r17.

Sidelink, relay, measurement, and positioning

sl-ConfigDedicatedNR-r16, sl-ConfigDedicatedEUTRA-Info-r16, sl-L2RelayUE-Config-r17, sl-L2RemoteUE-Config-r17, appLayerMeasConfig-r17, and ue-TxTEG-RequestUL-TDOA-Config-r17.

Release 18 mobility and multi-path

aerial-Config-r18, sl-IndirectPathAddChange-r18, n3c-IndirectPathAddChange-r18, n3c-IndirectPathConfigRelay-r18, ltm-Config-r18, and rach-LessHO-r18. Configure aerial operation, indirect sidelink/N3C paths, LTM candidates, or a handover without random access.

Release 19 mobility, positioning, and prediction

n3c-ExtIndirectPathAddChange-r19, ltm-ConfigNRDC-r19, onDemandPosSIB-RequestCtrlParam-r19, and retainLoggedMeasurements-r19. Configure extended N3C/NR-DC mobility, control on-demand positioning SIB requests, or retain logged measurements across synchronized reconfiguration.

Since this message carries too many parameters (Information Elements), you would easily get lost if you try to go through each and every items from the beginning. I would suggest you to pick up any one of the high level items from the items listed above and try to understand the overall functionality of the high level item ,and then move to next item and get an overview and so on. When you have overall understandings on every items listed above, then move down to next level (one-step down) in each section.

General Approach

  • Understand the Overall Purpose: The RRCReconfiguration message serves to update the UE's configuration during an active RRC connection, impacting various aspects such as radio bearers, measurements, cells, or mobility procedures.
  • Identify and Parse Key Information Elements (IEs): The message contains several high-level Information Elements (IEs) that direct specific configuration updates. The UE must extract and interpret these elements to determine the required actions.
  • Follow a Systematic Process: To avoid confusion due to the complexity of the message, a systematic understanding of the key IEs and their relationships is essential. Start with the highest-level IEs, understand their overall functionality, and then drill down into the detailed parameters and sub-elements.

secondaryCellGroup:

The secondaryCellGroup Information Element is essential for Dual Connectivity (DC) or Carrier Aggregation (CA). It provides configuration details for the Secondary Cell Group (SCG) in EN-DC or NR-DC scenarios. This element includes parameters for adding, modifying, or releasing Secondary Cells (SCells). It also specifies SCG-specific configurations for the RLC, MAC, and physical layers. These configurations ensure efficient operation and coordination between primary and secondary connections.

  • Relevant for Dual Connectivity (DC) or Carrier Aggregation (CA).
    • The IE may contain:
      • Configuration for the Secondary Cell Group (SCG) in EN-DC or NR-DC.
        • - This configuration outlines the parameters that define how the SCG is established and maintained.
        • - It includes information about the scheduling, coordination, and management of the resources allocated to the SCG.
        • - This setup enables seamless data transmission across multiple nodes, improving data rates and connection reliability.
  • Parameters for SCell addition, modification, or release.
    • This part specifies the parameters required for the management of Secondary Cells (SCells) within the SCG. It covers:
      • Addition: When a new Secondary Cell is added to enhance the overall capacity and improve throughput. The parameters include details like frequency, bandwidth, and cell ID.
      • Modification: When an existing Secondary Cell needs to be updated, such as changing its configuration to optimize performance or adapt to dynamic network conditions.
      • Release: When an SCell is no longer required, the parameters ensure the efficient removal of the cell without disrupting ongoing communication. These operations allow dynamic adjustments to the network based on user and network demands.
  • SCG-specific RLC, MAC, and physical-layer configurations.
    • The SCG-specific configurations define how RLC, MAC, and physical layers operate within the Secondary Cell Group:
      • RLC Layer: The configurations include parameters for segmentation, reassembly, and retransmission of data packets. These ensure reliable data transfer between the UE and the network.
      • MAC Layer: This includes scheduling, priority handling, and HARQ (Hybrid Automatic Repeat Request) configurations for the SCG. These parameters manage the allocation of radio resources and ensure low-latency communication.
      • Physical Layer: The settings in this layer define the transmission and reception parameters, including modulation schemes, antenna configurations, and reference signal configurations. These parameters are tailored for the SCG to maximize signal quality and efficiency.

radioBearerConfig:

The radioBearerConfig Information Element (IE) is responsible for configuring the Radio Bearers used for communication between the User Equipment (UE) and the network. Radio Bearers are categorized into Signaling Radio Bearers (SRBs) for control messages and Data Radio Bearers (DRBs) for user data. This IE ensures the proper setup, modification, and release of these bearers based on the network's requirements and the user's session.

  • Key Actions:
    • Establish New Bearers:
      • - This involves setting up new SRBs or DRBs to enable communication. For example, establishing an SRB is necessary to exchange control messages, while DRBs handle user data like internet browsing or video streaming.
    • Modify Existing Bearers:
      • - Modifications can include updating Quality of Service (QoS) parameters, such as priority levels, latency targets, and throughput requirements, to adapt to changing network conditions. It may also involve updating security settings, including ciphering and integrity protection algorithms.
    • Release Unused Bearers:
      • - Bearers that are no longer required, such as those associated with inactive sessions or terminated services, are released. This action frees up network resources for other users or services.
  • Layer-Specific Configurations:
    • Packet Data Convergence Protocol (PDCP) Layer:
      • Configurations include header compression, ciphering, and integrity protection. These ensure efficient and secure data transmission.
    • Radio Link Control (RLC) Layer:
      • The RLC layer settings define how data is segmented, reassembled, and retransmitted, ensuring reliability in data delivery.
    • Service Data Adaptation Protocol (SDAP) Layer:
      • This layer maps the data flows (QoS flows) to the appropriate DRBs, ensuring that QoS requirements are met for each data flow.

measConfig:

The measConfig Information Element (IE) is responsible for defining the measurement configurations that the User Equipment (UE) uses to monitor and report network conditions. These measurements play a critical role in optimizing the UE's connectivity by enabling efficient handovers, cell reselection, and network performance evaluation.

NOTE: This is pretty complicated configuration and there is a separate note for the full details on this.

  • Measurement Types:
    • Event-Triggered Measurements:
      • The configuration includes various event-based triggers: (a few examples are )
        • A1 (Serving Cell Becomes Better): Triggered when the serving cell's signal quality surpasses a configured threshold.
        • A2 (Serving Cell Becomes Worse): Triggered when the serving cell's signal quality drops below a threshold.
        • A3 (Neighbor Cell Becomes Better): Triggered when a neighbor cell's signal quality becomes better than the serving cell by a predefined offset. This is commonly used for handover decisions.
  • Key Responsibilities for the UE:
    • Configure New Measurements:
      • The network may instruct the UE to start new measurement campaigns, such as:
      • Intra-frequency Measurements: Assessing cells operating on the same frequency as the current connection.
      • Inter-frequency Measurements: Monitoring cells on different frequencies.
      • Inter-RAT (Radio Access Technology) Measurements: Evaluating cells in other technologies, such as LTE while connected to NR or vice versa.
    • Modify Existing Measurements:
      • The UE may update its measurement parameters, such as thresholds, offsets, and reporting criteria, based on updated network commands.
    • Release Existing Measurement Configurations:
      • When certain measurements are no longer required, the UE removes those configurations to save resources and processing power.

mrdc-SecondaryCellGroupConfig:

The Release 15.6 mrdc-SecondaryCellGroupConfig IE is a SetupRelease wrapper for MR-DC SCG configuration. It replaces the non-standard nr-SecondaryCellGroupConfig label previously used on this page. On setup, mrdc-SecondaryCellGroup selects an NR SCG containing an NR RRCReconfiguration, or an E-UTRA SCG container. mrdc-ReleaseAndAdd requests release of the existing MR-DC configuration before the new SCG is applied.

  • Applicable to NR-DC, NGEN-DC, and NE-DC procedures.
    • nr-SCG contains an NR RRCReconfiguration.
    • eutra-SCG contains an E-UTRA SCG configuration.
  • A release value triggers the MR-DC release procedure in clause 5.3.5.10.

spCellConfig -> reconfigurationWithSync:

The spCellConfig -> reconfigurationWithSync procedure plays a crucial role in mobility and reconfiguration scenarios involving the Primary Cell (PCell) in NR systems. This configuration is essential during NR addition in EN-DC (EUTRA NR-DC), handovers, or other mobility events.

  • Used During NR Addition in ENDC, Handovers, or Mobility Procedures:
    • This procedure enables the UE to maintain seamless connectivity while transitioning to a new cell, whether for adding NR functionality in EN-DC or during intra-NR or inter-NR handovers.
  • Synchronization with a New Cell:
    • The UE must synchronize with the new cell's timing and frequency. This step ensures the UE aligns with the new cell's transmission, enabling proper communication and minimizing service disruption.
  • Random Access for Reconfiguration:
    • The UE may need to perform a Random Access Procedure (RACH) as part of the reconfiguration process. This step facilitates initial access to the new cell or reestablishes uplink timing alignment.
  • Updating Parameters for the PCell or PSCell:
    • The UE updates its configuration parameters for the PCell (Primary Cell) or the PSCell (Primary Secondary Cell) to match the new cell's requirements. These updates may include physical layer settings, RLC/MAC configurations, and cell-specific identifiers.

conditionalReconfiguration:

The conditionalReconfiguration information element (IE) enables advanced mobility procedures by preparing the UE with pre-configured parameters for potential network changes. This allows for faster and more efficient transitions when specific conditions are met.

  • Storing the Conditional Configuration:
    • If the conditionalReconfiguration IE is included, the UE must store the configuration parameters. These parameters typically include cell-specific settings, such as Physical Cell ID (PCI), frequency, and access-related parameters, required for seamless reconfiguration.
  • Monitoring for the Trigger Condition:
    • The UE must actively monitor for the specified trigger condition defined in the conditional configuration. For example, the trigger condition may be related to measurement events such as signal strength thresholds (e.g., A3, A5) or mobility events (handover triggers).
  • Applicability to Conditional Handover (CHO):
    • In Conditional Handover (CHO), the network provides the UE with a pre-configured target cell. When the trigger condition is met (e.g., target cell quality becomes better than the serving cell), the UE autonomously initiates the handover, reducing latency and improving mobility efficiency.
  • Applicable for Conditional PSCell Addition/Change (CPA/CPC):
    • For Conditional PSCell Addition/Change (CPA/CPC), the conditional configuration enables the UE to seamlessly add or change the PSCell when the conditions are satisfied. This is commonly used in dual-connectivity scenarios for optimizing resource usage or network performance.

masterKeyUpdate:

The masterKeyUpdate procedure is a critical component of security reconfiguration in LTE and NR networks. It ensures that the communication between the UE and the network remains secure by refreshing cryptographic keys used for ciphering and integrity protection.

  • Security Reconfiguration:
    • The masterKeyUpdate is triggered as part of the security procedures to enhance the confidentiality and integrity of transmitted data. This is particularly important during mobility events such as handovers, where secure communication must be maintained as the UE transitions between cells or networks.
  • Ciphering Key Update:
    • The UE must generate and apply a new ciphering key. This key is used to encrypt user and signaling data, preventing unauthorized access and maintaining data confidentiality.
  • Integrity Key Update:
    • The integrity key is also updated to ensure the authenticity of signaling messages exchanged between the UE and the network. This prevents tampering and ensures that messages are not altered during transmission.
  • Procedure:
    • The network provides the UE with updated security parameters, such as the Key Derivation Function (KDF) inputs or new key seeds. The UE uses these inputs to derive fresh ciphering and integrity keys, ensuring secure and uninterrupted communication.

otherConfig and Release 16-19 extensions:

The ASN.1 field is otherConfig, with versioned additions in otherConfig-v1540, otherConfig-v1610, otherConfig-v1700, otherConfig-v1800, otherConfig-v1830, and otherConfig-v1900. Separate top-level IEs carry IAB, conditional mobility, sidelink relay, gap, application-layer measurement, paging-relay, positioning, aerial UE, N3C, LTM, and Release 19 logged-measurement controls.

  • Sidelink Configuration for V2X or Direct UE-to-UE Communication:
    • This setup enables sidelink operations, allowing devices to communicate directly without routing through the base station. It is particularly relevant for Vehicle-to-Everything (V2X) communications, enhancing road safety and traffic efficiency, and for other applications requiring low-latency device-to-device (D2D) communication.
  • Integrated Access and Backhaul (IAB) Configurations:
    • The configuration includes parameters related to backhaul Radio Link Control (RLC) or other layers essential for IAB nodes. IAB facilitates the use of a single node for both access (UE connectivity) and backhaul (network connection), optimizing network deployment in areas with limited infrastructure.
  • NAS Message Forwarding or System Information Delivery:
    • This covers mechanisms for forwarding Non-Access Stratum (NAS) messages, ensuring seamless communication of higher-layer control information between the UE and the core network. It also includes delivering system information to UEs, ensuring they remain updated with essential network parameters for proper functioning.

RRC Reconfiguration Message structure

The following structure is aligned with TS 38.331 V19.3.0. The base Release 15 message carries bearer, SCG, and measurement configuration. Successive non-critical extensions add MCG and security updates, MR-DC, IAB, DAPS, conditional mobility, sidelink/relay, measurement gaps, aerial operation, LTM, N3C multi-path, positioning, and prediction-related functions.

ASN.1 level

Main additions

Base / v1530

Radio bearers, SCG, measurements, MCG, full configuration, NAS delivery, master-key update, dedicated SIB/system information, and other configuration.

v1540 / v1560

Additional other configuration, MR-DC SCG setup/release, second bearer container, and secondary-key counter.

v1610

IAB BAP/IP configuration, conditional reconfiguration, DAPS source release, T316, gaps, on-demand SI, positioning SI, and sidelink.

v1700

L2 U2N relay/remote UE, paging relay, NCSG gap requirements, MUSIM/FR2 UL gaps, SCG deactivation, application-layer measurement, and UL-TDOA assistance.

v1800 / v1830

NR interruption control, aerial UE configuration, sidelink and N3C indirect paths, SRS positioning aggregation, LTM, and updated other configuration.

v1900

Extended N3C indirect paths, Release 19 other configuration, on-demand positioning SIB request control, retained logged measurements, and NR-DC LTM.

RRCReconfiguration ::= SEQUENCE {
    rrc-TransactionIdentifier           RRC-TransactionIdentifier,
    criticalExtensions                  CHOICE {
        rrcReconfiguration                  RRCReconfiguration-IEs,
        criticalExtensionsFuture            SEQUENCE {}
    }
}

RRCReconfiguration-IEs ::= SEQUENCE {
    radioBearerConfig                   RadioBearerConfig                         OPTIONAL, -- Need M
    secondaryCellGroup                  OCTET STRING (CONTAINING CellGroupConfig) OPTIONAL, -- Cond SCG
    measConfig                          MeasConfig                                OPTIONAL, -- Need M
    lateNonCriticalExtension            OCTET STRING (CONTAINING RRCReconfiguration-v15t0-IEs) OPTIONAL,
    nonCriticalExtension                RRCReconfiguration-v1530-IEs             OPTIONAL
}

RRCReconfiguration-v1530-IEs ::= SEQUENCE {
    masterCellGroup                     OCTET STRING (CONTAINING CellGroupConfig) OPTIONAL, -- Need M
    fullConfig                          ENUMERATED {true}                         OPTIONAL, -- Cond FullConfig
    dedicatedNAS-MessageList            SEQUENCE (SIZE(1..maxDRB)) OF DedicatedNAS-Message OPTIONAL, -- Cond nonHO
    masterKeyUpdate                     MasterKeyUpdate                           OPTIONAL, -- Cond MasterKeyChange
    dedicatedSIB1-Delivery              OCTET STRING (CONTAINING SIB1)            OPTIONAL, -- Need N
    dedicatedSystemInformationDelivery  OCTET STRING (CONTAINING SystemInformation) OPTIONAL, -- Need N
    otherConfig                         OtherConfig                               OPTIONAL, -- Need M
    nonCriticalExtension                RRCReconfiguration-v1540-IEs              OPTIONAL
}

RRCReconfiguration-v1540-IEs ::= SEQUENCE {
    otherConfig-v1540                   OtherConfig-v1540                         OPTIONAL, -- Need M
    nonCriticalExtension                RRCReconfiguration-v1560-IEs              OPTIONAL
}

RRCReconfiguration-v1560-IEs ::= SEQUENCE {
    mrdc-SecondaryCellGroupConfig       SetupRelease { MRDC-SecondaryCellGroupConfig } OPTIONAL, -- Need M
    radioBearerConfig2                  OCTET STRING (CONTAINING RadioBearerConfig) OPTIONAL, -- Need M
    sk-Counter                          SK-Counter                                OPTIONAL, -- Need N
    nonCriticalExtension                RRCReconfiguration-v1610-IEs              OPTIONAL
}

RRCReconfiguration-v1610-IEs ::= SEQUENCE {
    otherConfig-v1610                   OtherConfig-v1610                         OPTIONAL, -- Need M
    bap-Config-r16                      SetupRelease { BAP-Config-r16 }           OPTIONAL, -- Need M
    iab-IP-AddressConfigurationList-r16 IAB-IP-AddressConfigurationList-r16      OPTIONAL, -- Need M
    conditionalReconfiguration-r16      ConditionalReconfiguration-r16           OPTIONAL, -- Need M
    daps-SourceRelease-r16              ENUMERATED {true}                         OPTIONAL, -- Need N
    t316-r16                            SetupRelease { T316-r16 }                 OPTIONAL, -- Need M
    needForGapsConfigNR-r16             SetupRelease { NeedForGapsConfigNR-r16 }  OPTIONAL, -- Need M
    onDemandSIB-Request-r16             SetupRelease { OnDemandSIB-Request-r16 }  OPTIONAL, -- Need M
    dedicatedPosSysInfoDelivery-r16     OCTET STRING (CONTAINING PosSystemInformation-r16-IEs) OPTIONAL, -- Need N
    sl-ConfigDedicatedNR-r16            SetupRelease { SL-ConfigDedicatedNR-r16 } OPTIONAL, -- Need M
    sl-ConfigDedicatedEUTRA-Info-r16    SetupRelease { SL-ConfigDedicatedEUTRA-Info-r16 } OPTIONAL, -- Need M
    targetCellSMTC-SCG-r16              SSB-MTC                                  OPTIONAL, -- Need S
    nonCriticalExtension                RRCReconfiguration-v1700-IEs              OPTIONAL
}

RRCReconfiguration-v1700-IEs ::= SEQUENCE {
    otherConfig-v1700                   OtherConfig-v1700                         OPTIONAL, -- Need M
    sl-L2RelayUE-Config-r17             SetupRelease { SL-L2RelayUE-Config-r17 }  OPTIONAL, -- Need M
    sl-L2RemoteUE-Config-r17            SetupRelease { SL-L2RemoteUE-Config-r17 } OPTIONAL, -- Need M
    dedicatedPagingDelivery-r17         OCTET STRING (CONTAINING Paging)          OPTIONAL, -- Cond PagingRelay
    needForGapNCSG-ConfigNR-r17         SetupRelease { NeedForGapNCSG-ConfigNR-r17 } OPTIONAL, -- Need M
    needForGapNCSG-ConfigEUTRA-r17      SetupRelease { NeedForGapNCSG-ConfigEUTRA-r17 } OPTIONAL, -- Need M
    musim-GapConfig-r17                 SetupRelease { MUSIM-GapConfig-r17 }       OPTIONAL, -- Need M
    ul-GapFR2-Config-r17                SetupRelease { UL-GapFR2-Config-r17 }      OPTIONAL, -- Need M
    scg-State-r17                       ENUMERATED {deactivated}                   OPTIONAL, -- Need S
    appLayerMeasConfig-r17              AppLayerMeasConfig-r17                    OPTIONAL, -- Need M
    ue-TxTEG-RequestUL-TDOA-Config-r17  SetupRelease { UE-TxTEG-RequestUL-TDOA-Config-r17 } OPTIONAL, -- Need M
    nonCriticalExtension                RRCReconfiguration-v1800-IEs              OPTIONAL
}

RRCReconfiguration-v1800-IEs ::= SEQUENCE {
    needForInterruptionConfigNR-r18         ENUMERATED {disabled, enabled} OPTIONAL, -- Need M
    aerial-Config-r18                       SetupRelease { Aerial-Config-r18 } OPTIONAL, -- Need M
    sl-IndirectPathAddChange-r18            SetupRelease { SL-IndirectPathAddChange-r18 } OPTIONAL, -- Need M
    n3c-IndirectPathAddChange-r18           SetupRelease { N3C-IndirectPathAddChange-r18 } OPTIONAL, -- Need M
    n3c-IndirectPathConfigRelay-r18         SetupRelease { N3C-IndirectPathConfigRelay-r18 } OPTIONAL, -- Need M
    otherConfig-v1800                       OtherConfig-v1800 OPTIONAL, -- Need M
    srs-PosResourceSetAggBW-CombinationList-r18 SetupRelease { SRS-PosResourceSetAggBW-CombinationList-r18 } OPTIONAL, -- Need M
    ltm-Config-r18                          SetupRelease { LTM-Config-r18 } OPTIONAL, -- Need M
    nonCriticalExtension                    RRCReconfiguration-v1830-IEs OPTIONAL
}

RRCReconfiguration-v1830-IEs ::= SEQUENCE {
    otherConfig-v1830                       OtherConfig-v1830 OPTIONAL, -- Need M
    nonCriticalExtension                    RRCReconfiguration-v1900-IEs OPTIONAL
}

RRCReconfiguration-v1900-IEs ::= SEQUENCE {
    n3c-ExtIndirectPathAddChange-r19        SetupRelease { N3C-ExtIndirectPathAddChange-r19 } OPTIONAL, -- Need M
    otherConfig-v1900                       OtherConfig-v1900 OPTIONAL, -- Need M
    onDemandPosSIB-RequestCtrlParam-r19     ENUMERATED {enabled} OPTIONAL, -- Need R
    retainLoggedMeasurements-r19            ENUMERATED {true} OPTIONAL, -- Cond Sync
    ltm-ConfigNRDC-r19                      SetupRelease { LTM-ConfigNRDC-r19 } OPTIONAL, -- Need M
    nonCriticalExtension                    SEQUENCE {} OPTIONAL
}

RRCReconfigurationComplete

The UE returns RRCReconfigurationComplete with the same transaction identifier. Release extensions can report uplink Tx direct-current locations, an embedded SCG response, measurement-gap requirements, the selected conditional reconfiguration, Release 18 interruption/flight-path/LTM results, and Release 19 applicability or logged-CSI information.

RRCReconfigurationComplete ::= SEQUENCE {
    rrc-TransactionIdentifier           RRC-TransactionIdentifier,
    criticalExtensions                  CHOICE {
        rrcReconfigurationComplete          RRCReconfigurationComplete-IEs,
        criticalExtensionsFuture            SEQUENCE {}
    }
}

RRCReconfigurationComplete-IEs ::= SEQUENCE {
    lateNonCriticalExtension            OCTET STRING                                  OPTIONAL,
    nonCriticalExtension                RRCReconfigurationComplete-v1530-IEs          OPTIONAL
}

RRCReconfigurationComplete-v1530-IEs ::= SEQUENCE {
    uplinkTxDirectCurrentList           UplinkTxDirectCurrentList                     OPTIONAL,
    nonCriticalExtension                RRCReconfigurationComplete-v1560-IEs          OPTIONAL
}

RRCReconfigurationComplete-v1560-IEs ::= SEQUENCE {
    scg-Response                        CHOICE {
        nr-SCG-Response                     OCTET STRING (CONTAINING RRCReconfigurationComplete),
        eutra-SCG-Response                  OCTET STRING
    }                                                                                 OPTIONAL,
    nonCriticalExtension                RRCReconfigurationComplete-v1610-IEs          OPTIONAL
}

RRCReconfigurationComplete-v1610-IEs ::= SEQUENCE {
    ue-MeasurementsAvailable-r16        UE-MeasurementsAvailable-r16                  OPTIONAL,
    needForGapsInfoNR-r16               NeedForGapsInfoNR-r16                         OPTIONAL,
    nonCriticalExtension                RRCReconfigurationComplete-v1640-IEs          OPTIONAL
}

RRCReconfigurationComplete-v1640-IEs ::= SEQUENCE {
    uplinkTxDirectCurrentTwoCarrierList-r16 UplinkTxDirectCurrentTwoCarrierList-r16    OPTIONAL,
    nonCriticalExtension                RRCReconfigurationComplete-v1700-IEs          OPTIONAL
}

RRCReconfigurationComplete-v1700-IEs ::= SEQUENCE {
    needForGapNCSG-InfoNR-r17           NeedForGapNCSG-InfoNR-r17                     OPTIONAL,
    needForGapNCSG-InfoEUTRA-r17        NeedForGapNCSG-InfoEUTRA-r17                  OPTIONAL,
    selectedCondRRCReconfig-r17         CondReconfigId-r16                            OPTIONAL,
    nonCriticalExtension                RRCReconfigurationComplete-v1720-IEs          OPTIONAL
}

RRCReconfigurationComplete-v1720-IEs ::= SEQUENCE {
    uplinkTxDirectCurrentMoreCarrierList-r17 UplinkTxDirectCurrentMoreCarrierList-r17  OPTIONAL,
    nonCriticalExtension                RRCReconfigurationComplete-v1800-IEs          OPTIONAL
}

RRCReconfigurationComplete-v1800-IEs ::= SEQUENCE {
    needForInterruptionInfoNR-r18           NeedForInterruptionInfoNR-r18             OPTIONAL,
    flightPathInfoAvailable-r18             ENUMERATED {true}                         OPTIONAL,
    selectedPSCellForCHO-WithSCG-r18        SelectedPSCellForCHO-WithSCG-r18          OPTIONAL,
    selectedSK-Counter-r18                  SK-Counter                                OPTIONAL,
    measConfigReportAppLayerAvailable-r18   ENUMERATED {true}                         OPTIONAL,
    appliedLTM-CandidateId-r18              LTM-CandidateId-r18                       OPTIONAL,
    nonCriticalExtension                    RRCReconfigurationComplete-v1900-IEs      OPTIONAL
}

RRCReconfigurationComplete-v1900-IEs ::= SEQUENCE {
    applicabilityReportList-r19             ApplicabilityReportList-r19               OPTIONAL,
    csi-LogMeasAvailable-r19                ENUMERATED {true}                         OPTIONAL,
    assisted-SSB-MTC-MG-Report-r19          BIT STRING (SIZE (7))                    OPTIONAL,
    nonCriticalExtension                    SEQUENCE {}                               OPTIONAL
}

RadioBearerConfig

The radio bearer configuration process allows the network to establish, modify, and release radio bearers for the UE. The procedure controls SRBs, DRBs, and multicast MRBs used to meet signaling, QoS, and service requirements. Release 18 adds SRB5 and N3C bearer association; Release 19 adds SRB6 and its corresponding identity extension.

Here is a brief overview of what radio bearer configuration does:

  • Radio bearers carry user plane data between the UE and the network. The SRBs (Signaling Radio Bearers) carry control plane data like RRC messages, while the DRBs (Data Radio Bearers) carry user plane data.
  • The network uses the RadioBearerConfig information element to configure the radio bearers for the UE. This allows the network to setup, modify or release SRBs, DRBs, and multicast MRBs.
  • Through this configuration, the network can control the QoS profile, security parameters, PDCP configuration etc for each radio bearer.
  • The network can add new radio bearers, modify the configuration of existing ones, or release radio bearers that are no longer needed.
  • The UE is required to act on the RadioBearerConfig IE and setup, modify or release bearers accordingly. This allows the UE and network to establish the necessary radio bearers to support the desired services.

Here goes a little bit detailed summary based on 38.331-5.3.5.6

The UE performs actions to configure radio bearers based on the RadioBearerConfig IE received from the network. This includes SRB release, SRB addition/modification, DRB release, DRB addition/modification, multicast MRB release, and multicast MRB addition/modification. Followings are summary based on each sections under 38.331-5.3.5.6

    1> SRB Release

    • Release PDCP entity and srb-Identity for SRB3 if srb3-ToRelease is included
    • Release PDCP entity and srb-Identity for SRB4 if srb4-ToRelease is included

    2> SRB Addition/Modification

    • Establish PDCP entity for target cell group for each SRB if DAPS bearer configured
    • Configure security (ciphering/integrity) based on target RAT
    • Establish PDCP entity and configure it for each new srb-Identity
    • Reconfigure PDCP for existing srb-Identity if included

    3> DRB Release

    • Release PDCP entity and drb-Identity for each drb-Identity included
    • Indicate DRB release to SDAP and upper layers

    4> DRB Addition/Modification

    • Establish PDCP entity and configure it for each new drb-Identity
    • Configure security (ciphering/integrity) based on target RAT
    • Establish SDAP entity if needed
    • Associate eps-BearerIdentity for DRB if included
    • Reconfigure PDCP for existing drb-Identity configured as DAPS bearer
    • Re-establish or recover PDCP for existing drb-Identity based on flags
    • Reconfigure SDAP entity if sdap-Config included

    5> Multicast MRB Release

    • Release PDCP entity and mrb-Identity for each mrb-Identity included

    6> Multicast MRB Addition/Modification

    • Reconfigure/re-establish/recover PDCP for existing mrb-Identity
    • Establish PDCP entity and configure it for each new mrb-Identity
    • Establish SDAP entity if needed
    • Update mrb-Identity if mrb-IdentityNew included

Followings are the Information Elements for RadioBearerConfig

RadioBearerConfig ::= SEQUENCE {
    srb-ToAddModList        SRB-ToAddModList    OPTIONAL, -- Cond HO-Conn
    srb3-ToRelease          ENUMERATED {true}   OPTIONAL, -- Need N
    drb-ToAddModList        DRB-ToAddModList    OPTIONAL, -- Cond HO-toNR
    drb-ToReleaseList       DRB-ToReleaseList   OPTIONAL, -- Need N
    securityConfig          SecurityConfig      OPTIONAL, -- Need M
    ...,
    [[
    mrb-ToAddModList-r17    MRB-ToAddModList-r17     OPTIONAL, -- Need N
    mrb-ToReleaseList-r17   MRB-ToReleaseList-r17    OPTIONAL, -- Need N
    srb4-ToAddMod-r17       SRB-ToAddMod              OPTIONAL, -- Need N
    srb4-ToRelease-r17      ENUMERATED {true}         OPTIONAL  -- Need N
    ]],
    [[
    srb5-ToAddMod-r18       SRB-ToAddMod              OPTIONAL, -- Need N
    srb5-ToRelease-r18      ENUMERATED {true}         OPTIONAL  -- Need N
    ]],
    [[
    srb6-ToAddMod-r19       SRB-ToAddMod              OPTIONAL, -- Need N
    srb6-ToRelease-r19      ENUMERATED {true}         OPTIONAL  -- Need N
    ]]
}

SRB-ToAddModList ::= SEQUENCE (SIZE (1..2)) OF SRB-ToAddMod

SRB-ToAddMod ::=    SEQUENCE {
    srb-Identity        SRB-Identity,
    reestablishPDCP     ENUMERATED{true}    OPTIONAL, -- Need N
    discardOnPDCP       ENUMERATED{true}    OPTIONAL, -- Need N
    pdcp-Config         PDCP-Config     OPTIONAL, -- Cond PDCP
    ...,
    [[
    srb-Identity-v1700  SRB-Identity-v1700 OPTIONAL -- Need M
    ]],
    [[
    srb-Identity-v1800      SRB-Identity-v1800 OPTIONAL, -- Need M
    n3c-BearerAssociated-r18 ENUMERATED {true} OPTIONAL -- Cond N3C MP
    ]],
    [[
    srb-Identity-v1900      SRB-Identity-v1900 OPTIONAL -- Need M
    ]]
}

DRB-ToAddModList ::= SEQUENCE (SIZE (1..maxDRB)) OF DRB-ToAddMod

DRB-ToAddMod ::= SEQUENCE {
    cnAssociation                       CHOICE {
        eps-BearerIdentity                  INTEGER (0..15),
        sdap-Config                         SDAP-Config
    }                                   OPTIONAL, -- Cond DRBSetup
    drb-Identity                            DRB-Identity,
    reestablishPDCP                         ENUMERATED{true}     OPTIONAL, -- Need N
    recoverPDCP                             ENUMERATED{true}     OPTIONAL, -- Need N
    pdcp-Config                             PDCP-Config          OPTIONAL, -- Cond PDCP
    ...,
    [[
    daps-Config-r16                         ENUMERATED{true}     OPTIONAL -- Cond DAPS
    ]],
    [[
    n3c-BearerAssociated-r18                ENUMERATED{true}     OPTIONAL -- Cond N3C MP
    ]]
}

SDAP-Config ::= SEQUENCE {
   pdu-Session                PDU-SessionID,
   sdap-HeaderDL              ENUMERATED {present, absent},
   sdap-HeaderUL              ENUMERATED {present, absent},
   defaultDRB                 BOOLEAN,
   mappedQoS-FlowsToAdd       SEQUENCE (SIZE (1..maxNrofQFIs)) OF QFI OPTIONAL, 
   mappedQoS-FlowsToRelease   SEQUENCE (SIZE (1..maxNrofQFIs)) OF QFI OPTIONAL, 
   ...
}

QFI ::= INTEGER (0..maxQFI)
PDU-SessionID ::= INTEGER (0..255)

PDCP-Config ::= SEQUENCE {
    drb SEQUENCE {
        discardTimer ENUMERATED {ms10, ms20, ms30, ms40, ms50, ms60, ms75, ms100, ms150, ms200,
                            ms250, ms300, ms500, ms750, ms1500, infinity} OPTIONAL, --Cond Setup
        pdcp-SN-SizeUL ENUMERATED {len12bits, len18bits} OPTIONAL, -- Cond Setup1
        pdcp-SN-SizeDL ENUMERATED {len12bits, len18bits} OPTIONAL, -- Cond Setup2
        headerCompression CHOICE {
        notUsed NULL,
        rohc SEQUENCE {
            maxCID INTEGER (1..16383) DEFAULT 15,
            profiles SEQUENCE {
                profile0x0001 BOOLEAN,
                profile0x0002 BOOLEAN,
                profile0x0003 BOOLEAN,
                profile0x0004 BOOLEAN,
                profile0x0006 BOOLEAN,
                profile0x0101 BOOLEAN,
                profile0x0102 BOOLEAN,
                profile0x0103 BOOLEAN,
                profile0x0104 BOOLEAN
            },
            drb-ContinueROHC ENUMERATED { true } OPTIONAL -- Need N
        },
        uplinkOnlyROHC SEQUENCE {
            maxCID INTEGER (1..16383) DEFAULT 15,
            profiles SEQUENCE {
                profile0x0006 BOOLEAN
            },
            drb-ContinueROHC ENUMERATED { true } OPTIONAL -- Need N
            },
        ...
        },
        integrityProtection ENUMERATED { enabled } OPTIONAL, -- Cond ConnectedTo5GC1
        statusReportRequired ENUMERATED { true } OPTIONAL, -- Cond Rlc-AM-UM
        outOfOrderDelivery ENUMERATED { true } OPTIONAL -- Need R
    } OPTIONAL, -- Cond DRB
    moreThanOneRLC SEQUENCE {
        primaryPath SEQUENCE {
            cellGroup              CellGroupId               OPTIONAL, -- Need R
            logicalChannel         LogicalChannelIdentity    OPTIONAL -- Need R
        },
        ul-DataSplitThreshold      UL-DataSplitThreshold     OPTIONAL, -- Cond SplitBearer
        pdcp-Duplication           BOOLEAN                   OPTIONAL -- Need R
    } OPTIONAL, -- Cond MoreThanOneRLC
    t-Reordering ENUMERATED {
                        ms0, ms1, ms2, ms4, ms5, ms8, ms10, ms15, ms20, ms30, ms40,
                        ms50, ms60, ms80, ms100, ms120, ms140, ms160, ms180, ms200, ms220,
                        ms240, ms260, ms280, ms300, ms500, ms750, ms1000, ms1250,
                        ms1500, ms1750, ms2000, ms2250, ms2500, ms2750,
                        ms3000, spare28, spare27, spare26, spare25, spare24,
                        spare23, spare22, spare21, spare20,
                        spare19, spare18, spare17, spare16, spare15, spare14,
                        spare13, spare12, spare11, spare10, spare09,
                        spare08, spare07, spare06, spare05, spare04, spare03,
                        spare02, spare01 } OPTIONAL, -- Need S
    ...,
    [[
    cipheringDisabled ENUMERATED {true} OPTIONAL -- Cond ConnectedTo5GC
    ]],
    [[
    discardTimerExt-r16 SetupRelease { DiscardTimerExt-r16 } OPTIONAL, -- Cond DRB2
    moreThanTwoRLC-DRB-r16 SEQUENCE {
        splitSecondaryPath-r16 LogicalChannelIdentity OPTIONAL, -- Cond SplitBearer2
        duplicationState-r16 SEQUENCE (SIZE (3)) OF BOOLEAN OPTIONAL -- Need S
    } OPTIONAL, -- Cond MoreThanTwoRLC-DRB
    ethernetHeaderCompression-r16 SetupRelease { EthernetHeaderCompression-r16 } OPTIONAL -- Need M
    ]],
    [[
    survivalTimeStateSupport-r17 ENUMERATED {true} OPTIONAL, -- Cond Drb-Duplication
    uplinkDataCompression-r17 SetupRelease { UplinkDataCompression-r17 } OPTIONAL, -- Cond Rlc-AM
    discardTimerExt2-r17 SetupRelease { DiscardTimerExt2-r17 } OPTIONAL, -- Need M
    initialRX-DELIV-r17 BIT STRING (SIZE (32)) OPTIONAL -- Cond MRB-Initialization
    ]],
    [[
    pdu-SetDiscard-r18 ENUMERATED {true} OPTIONAL, -- Need R
    discardTimerForLowImportance-r18 SetupRelease { DiscardTimerForLowImportance-r18 } OPTIONAL, -- Cond DRB2
    primaryPathOnIndirectPath-r18 ENUMERATED {true} OPTIONAL, -- Cond SplitBearerMP
    sn-GapReport-r18 ENUMERATED {true} OPTIONAL -- Need R
    ]],
    [[
    remainingTimeThresholdRLC-ReTx-r19 RLC-AM-RemainingTimeThreshold-r19 OPTIONAL, -- Cond RLC-AM
    remainingTimeThresholdRLC-Polling-r19 RLC-AM-RemainingTimeThreshold-r19 OPTIONAL -- Cond RLC-AM
    ]]
}

UL-DataSplitThreshold ::= ENUMERATED {
    b0, b100, b200, b400, b800, b1600, b3200, b6400, b12800, b25600, b51200, b102400, b204800,
    b409600, b819200, b1228800, b1638400, b2457600, b3276800, b4096000, b4915200, b5734400,
    b6553600, infinity, spare8, spare7, spare6, spare5, spare4, spare3, spare2, spare1}


DRB-ToReleaseList ::= SEQUENCE (SIZE (1..maxDRB)) OF DRB-Identity

MRB-ToAddModList-r17 ::= SEQUENCE (SIZE (1..maxMRB-r17)) OF MRB-ToAddMod-r17

MRB-ToAddMod-r17 ::= SEQUENCE {
    mbs-SessionId-r17       TMGI-r17             OPTIONAL, -- Cond MRBSetup
    mrb-Identity-r17        MRB-Identity-r17,
    mrb-IdentityNew-r17     MRB-Identity-r17      OPTIONAL, -- Need N
    reestablishPDCP-r17     ENUMERATED {true}     OPTIONAL, -- Need N
    recoverPDCP-r17         ENUMERATED {true}     OPTIONAL, -- Need N
    pdcp-Config-r17         PDCP-Config           OPTIONAL, -- Cond PDCP
    ...
}

MRB-ToReleaseList-r17 ::= SEQUENCE (SIZE (1..maxMRB-r17)) OF MRB-Identity-r17

SecurityConfig ::= SEQUENCE {  
    securityAlgorithmConfig                 SecurityAlgorithmConfig    OPTIONAL, -- Cond RBTermChange1
    keyToUse                                ENUMERATED {master, secondary} OPTIONAL, -- Cond RBTermChange
    ...
}

SecurityAlgorithmConfig ::= SEQUENCE {
    cipheringAlgorithm           CipheringAlgorithm,
    integrityProtAlgorithm       IntegrityProtAlgorithm  OPTIONAL,   -- Need R   
    ...
}

IntegrityProtAlgorithm ::=  ENUMERATED {
                    nia0, nia1, nia2, nia3, spare4, spare3,
                    spare2, spare1, ...}

CipheringAlgorithm ::=  ENUMERATED {
                    nea0, nea1, nea2, nea3, spare4, spare3,
                    spare2, spare1, ...}

CellGroupConfig ::= SEQUENCE {
    cellGroupId CellGroupId,
    rlc-BearerToAddModList      SEQUENCE (SIZE(1..maxLC-ID)) OF RLC-Bearer-Config   OPTIONAL,  
    rlc-BearerToReleaseList     SEQUENCE (SIZE(1..maxLC-ID)) OF LogicalChannelIdentity  OPTIONAL,
    mac-CellGroupConfig         MAC-CellGroupConfig          OPTIONAL, 
    physicalCellGroupConfig     PhysicalCellGroupConfig      OPTIONAL, 
    spCellConfig                SpCellConfig                 OPTIONAL, 
    sCellToAddModList           SEQUENCE (SIZE (1..maxNrofSCells)) OF SCellConfig   OPTIONAL, 
    sCellToReleaseList          SEQUENCE (SIZE (1..maxNrofSCells)) OF SCellIndex    OPTIONAL, 
    ...,
    -- Earlier extension groups are omitted from this overview.
    [[
    ncr-FwdConfig-r18                  SetupRelease { NCR-FwdConfig-r18 } OPTIONAL, -- Cond NCR
    autonomousDenialParameters-r18     SetupRelease { AutonomousDenialParameters-r18 } OPTIONAL, -- Need M
    nonCollocatedTypeMRDC-r18          ENUMERATED {true} OPTIONAL, -- Need R
    nonCollocatedTypeNR-CA-r18         ENUMERATED {true} OPTIONAL, -- Need R
    uplinkTxSwitchingMoreBands-r18     SetupRelease { UplinkTxSwitchingMoreBands-r18 } OPTIONAL -- Need M
    ]],
    [[
    uplinkTxSwitching3Tx-r19           ENUMERATED {true} OPTIONAL, -- Cond 3Tx
    lowBandCA-Switching-r19            SetupRelease { LowBandCA-Switching-r19 } OPTIONAL, -- Need M
    nonCollocatedTypeMRDC-v1900        ENUMERATED {type1, type4} OPTIONAL, -- Need R
    nonCollocatedTypeNR-CA-v1900       ENUMERATED {type1, type4} OPTIONAL, -- Need R
    mprReductionExtensionRatio-r19     ENUMERATED {ratio1, ratio2, ratio3, ratio4, ratio5, ratio6, spare2, spare1} OPTIONAL -- Need R
    ]]
}

MAC-CellGroupConfig ::=     SEQUENCE {
    drx-Config                  SetupRelease { DRX-Config } OPTIONAL, -- Need M
    schedulingRequestConfig     SchedulingRequestConfig     OPTIONAL, -- Need M
    bsr-Config                  BSR-Config                  OPTIONAL, -- Need M
    tag-Config                  TAG-Config                  OPTIONAL, -- Need M 
    phr-Config                  SetupRelease { PHR-Config } OPTIONAL, -- Need M
    skipUplinkTxDynamic         BOOLEAN,
    ...,
    [[
    csi-Mask                    BOOLEAN OPTIONAL, -- Need M
    dataInactivityTimer         SetupRelease { DataInactivityTimer } OPTIONAL -- Cond MCG-Only
    ]],
    [[
    usePreBSR-r16                       ENUMERATED {true} OPTIONAL, -- Need R
    schedulingRequestID-LBT-SCell-r16   SchedulingRequestId OPTIONAL, -- Need R
    lch-BasedPrioritization-r16         ENUMERATED {enabled} OPTIONAL, -- Need R
    schedulingRequestID-BFR-SCell-r16   SchedulingRequestId OPTIONAL, -- Need R
    drx-ConfigSecondaryGroup-r16        SetupRelease { DRX-ConfigSecondaryGroup-r16 } OPTIONAL -- Need M
    ]],
    [[
    enhancedSkipUplinkTxDynamic-r16     ENUMERATED {true} OPTIONAL, -- Need R
    enhancedSkipUplinkTxConfigured-r16  ENUMERATED {true} OPTIONAL -- Need R
    ]],
    [[
    intraCG-Prioritization-r17          ENUMERATED {enabled} OPTIONAL, -- Cond LCH-PrioWithReTxTimer
    drx-ConfigSL-r17                    SetupRelease { DRX-ConfigSL-r17 } OPTIONAL, -- Need M
    drx-ConfigExt-v1700                 SetupRelease { DRX-ConfigExt-v1700 } OPTIONAL, -- Need M
    schedulingRequestID-BFR-r17         SchedulingRequestId OPTIONAL, -- Need R
    schedulingRequestID-BFR2-r17        SchedulingRequestId OPTIONAL, -- Need R
    schedulingRequestConfig-v1700       SchedulingRequestConfig-v1700 OPTIONAL, -- Need M
    tar-Config-r17                      SetupRelease { TAR-Config-r17 } OPTIONAL, -- Need M
    g-RNTI-ConfigToAddModList-r17       SEQUENCE (SIZE (1..maxG-RNTI-r17)) OF MBS-RNTI-SpecificConfig-r17 OPTIONAL, -- Need N
    g-RNTI-ConfigToReleaseList-r17      SEQUENCE (SIZE (1..maxG-RNTI-r17)) OF MBS-RNTI-SpecificConfigId-r17 OPTIONAL, -- Need N
    g-CS-RNTI-ConfigToAddModList-r17    SEQUENCE (SIZE (1..maxG-CS-RNTI-r17)) OF MBS-RNTI-SpecificConfig-r17 OPTIONAL, -- Need N
    g-CS-RNTI-ConfigToReleaseList-r17   SEQUENCE (SIZE (1..maxG-CS-RNTI-r17)) OF MBS-RNTI-SpecificConfigId-r17 OPTIONAL, -- Need N
    allowCSI-SRS-Tx-MulticastDRX-Active-r17 BOOLEAN OPTIONAL -- Need M
    ]],
    [[
    schedulingRequestID-PosMG-Request-r17 SchedulingRequestId OPTIONAL, -- Need R
    drx-LastTransmissionUL-r17          ENUMERATED {enabled} OPTIONAL -- Need R
    ]],
    [[
    posMG-Request-r17                   ENUMERATED {enabled} OPTIONAL -- Need R
    ]],
    [[
    drx-ConfigExt2-v1800                SetupRelease { DRX-ConfigExt2-v1800 } OPTIONAL, -- Need M
    additionalBS-TableAllowed-r18       BIT STRING (SIZE (maxNrofLCGs-r18)) OPTIONAL, -- Need R
    dsr-ConfigToAddModList-r18          SEQUENCE (SIZE (1..maxNrofLCGs-r18)) OF LCG-DSR-Config-r18 OPTIONAL, -- Need N
    dsr-ConfigToReleaseList-r18         SEQUENCE (SIZE (1..maxNrofLCGs-r18)) OF LCG-Id-r18 OPTIONAL, -- Need N
    tar-Config-r18                      SetupRelease { TAR-Config-r18 } OPTIONAL -- Need M
    ]],
    [[
    ul-RateQuery-r19                    SEQUENCE {
        ul-RateQueryConfigList-r19          SEQUENCE (SIZE (1..maxNrofRateQueryQFIs-r19)) OF QoS-FlowIdentity-r19,
        ul-RateQueryProhibitTimer-r19       ENUMERATED {s0, s0dot1, s0dot2, s0dot5, s1, s2, s5, s10, s20, s30, s60,
                                                        s90, s120, s300, s600, spare1},
        ...
    } OPTIONAL, -- Need R
    ul-RateControlConfigList-r19        SEQUENCE (SIZE (1..maxNrofRateCtrlQFIs-r19)) OF QoS-FlowIdentity-r19 OPTIONAL, -- Need R
    schedulingRequestID-LTM-r19         SchedulingRequestId OPTIONAL -- Need R
    ]]
}

DRX-Config ::= SEQUENCE {
    drx-onDurationTimer     CHOICE {
                               subMilliSeconds INTEGER (1..31),
                               milliSeconds    ENUMERATED {
                                   ms1, ms2, ms3, ms4, ms5, ms6, ms8, ms10, ms20, ms30, 
                                   ms40, ms50, ms60, ms80, ms100, ms200, ms300, ms400, ms500,
                                   ms600, ms800, ms1000, ms1200, ms1600, spare9, spare8, spare7,
                                   spare6, spare5, spare4, spare3, spare2, spare1 }
                                            },
    drx-InactivityTimer        ENUMERATED { 
                                   ms0, ms1, ms2, ms3, ms4, ms5, ms6, ms8, ms10, ms20, ms30, 
                                   ms40, ms50, ms60, ms80, ms100, ms200, ms300, ms500, ms750,
                                   ms1280, ms1920, ms2560, spare9, spare8, spare7, spare6, 
                                   spare5, spare4, spare3, spare2, spare1},
    drx-HARQ-RTT-TimerDL         INTEGER (0..56),
    drx-HARQ-RTT-TimerUL         INTEGER (0..56),
    drx-RetransmissionTimerDL    ENUMERATED { 
                                   sl0, sl1, sl2, sl4, sl6, sl8, sl16, sl24, sl33, sl40, sl64,
                                   sl80, sl96, sl112, sl128, sl160, sl320, spare15, spare14,
                                   spare13, spare12, spare11, spare10, spare9, spare8, spare7,
                                   spare6, spare5, spare4, spare3, spare2, spare1},
    drx-RetransmissionTimerUL    ENUMERATED {
                                   sl0, sl1, sl2, sl4, sl6, sl8, sl16, sl24, sl33, sl40, sl64,
                                   sl80, sl96, sl112, sl128, sl160, sl320, spare15, spare14,
                                   spare13, spare12, spare11, spare10, spare9, spare8, spare7,
                                   spare6, spare5, spare4, spare3, spare2, spare1 },
    drx-LongCycleStartOffset        CHOICE {
        ms10                            INTEGER(0..9),
        ms20                            INTEGER(0..19),
        ms32                            INTEGER(0..31),
        ms40                            INTEGER(0..39),
        ms60                            INTEGER(0..59),
        ms64                            INTEGER(0..63),
        ms70                            INTEGER(0..69),
        ms80                            INTEGER(0..79),
        ms128                           INTEGER(0..127),
        ms160                           INTEGER(0..159),
        ms256                           INTEGER(0..255),
        ms320                           INTEGER(0..319),
        ms512                           INTEGER(0..511),
        ms640                           INTEGER(0..639),
        ms1024                          INTEGER(0..1023),
        ms1280                          INTEGER(0..1279),
        ms2048                          INTEGER(0..2047),
        ms2560                          INTEGER(0..2559),
        ms5120                          INTEGER(0..5119),
        ms10240                         INTEGER(0..10239)
    },
    shortDRX  SEQUENCE {
        drx-ShortCycle        ENUMERATED  {
                                  ms2, ms3, ms4, ms5, ms6, ms7, ms8, ms10, ms14, ms16, ms20, 
                                  ms30, ms32, ms35, ms40, ms64, ms80, ms128, ms160, ms256, 
                                  ms320, ms512, ms640, spare9, spare8, spare7, spare6, spare5,
                                  spare4, spare3, spare2, spare1 },
        drx-ShortCycleTimer                 INTEGER (1..16)
    }       OPTIONAL,         -- Need R
    drx-SlotOffset                      INTEGER (0..31)

}

PHR-Config ::= SEQUENCE {
    phr-PeriodicTimer           ENUMERATED {sf10, sf20, sf50, sf100, sf200,sf500, sf1000, infinity},
    phr-ProhibitTimer           ENUMERATED {sf0, sf10, sf20, sf50, sf100,sf200, sf500, sf1000},
    phr-Tx-PowerFactorChange    ENUMERATED {dB1, dB3, dB6, infinity},
    multiplePHR                 BOOLEAN,
    dummy                       BOOLEAN,
    phr-Type2OtherCell          BOOLEAN,
    phr-ModeOtherCG             ENUMERATED {real, virtual},
    ...,
    [[
    mpe-Reporting-FR2-r16       SetupRelease { MPE-Config-FR2-r16 } OPTIONAL -- Need M
    ]],
    [[
    mpe-Reporting-FR2-r17       SetupRelease { MPE-Config-FR2-r17 } OPTIONAL, -- Need M
    twoPHRMode-r17              ENUMERATED {enabled} OPTIONAL -- Need R
    ]],
    [[
    phr-AssumedPUSCH-Reporting-r18 ENUMERATED {enabled} OPTIONAL, -- Need R
    dpc-Reporting-FR1-r18       ENUMERATED {enabled} OPTIONAL -- Need R
    ]]
}

TAG-Config ::=SEQUENCE {
    tag-ToReleaseList         SEQUENCE (SIZE (1..maxNrofTAGs)) OF TAG-Id   OPTIONAL,-- Need N
    tag-ToAddModList          SEQUENCE (SIZE (1..maxNrofTAGs)) OF TAG-ToAddMod OPTIONAL -- Need N
}

TAG-ToAddMod ::= SEQUENCE {
    tag-Id                      TAG-Id,
    timeAlignmentTimer          TimeAlignmentTimer,
    ...
}

TAG-Id ::= INTEGER (0..maxNrofTAGs-1)

TimeAlignmentTimer ::= ENUMERATED {ms500, ms750, ms1280, ms1920, ms2560, ms5120, 
                                        ms10240, infinity}

BSR-Config ::= SEQUENCE {
    periodicBSR-Timer        ENUMERATED {
                                sf1, sf5, sf10, sf16, sf20, sf32, sf40, sf64, sf80, sf128,
                                sf160, sf320, sf640, sf1280, sf2560, infinity},
    retxBSR-Timer            ENUMERATED { sf10, sf20, sf40, sf80, sf160, sf320, sf640, sf1280,
                                sf2560, sf5120, sf10240, spare5, spare4,spare3, spare2, spare1},
    logicalChannelSR-DelayTimer     ENUMERATED { sf20, sf40, sf64, sf128, sf512, sf1024, sf2560,
                                                spare1}    OPTIONAL    -- Need R
}

SchedulingRequestConfig ::= SEQUENCE {
    schedulingRequestToAddModList       SEQUENCE (SIZE (1..maxNrofSR-ConfigPerCellGroup)) OF
                                                SchedulingRequestToAddMod    OPTIONAL, -- Need N
    schedulingRequestToReleaseList      SEQUENCE (SIZE (1..maxNrofSR-ConfigPerCellGroup)) OF
                                                SchedulingRequestId          OPTIONAL  -- Need N
}

SchedulingRequestToAddMod ::=SEQUENCE {
    sr-ConfigIndex                      SchedulingRequestId,
    sr-ProhibitTimer                    ENUMERATED {ms1, ms2, ms4, ms8, ms16, 
                                                    ms32, ms64, ms128}  OPTIONAL,   -- Need S
    sr-TransMax                         ENUMERATED {n4,n8,n16,n32,n64,spare3,spare2,spare1}
}

SchedulingRequestId ::= INTEGER (0..7)

CellGroupId ::= INTEGER (0..maxSecondaryCellGroups)

LCH-Config ::= SEQUENCE {
    logicalChannelIdentity                  LogicalChannelIdentity,
    servedRadioBearer                       INTEGER (1..32)       OPTIONAL,   
    reestablishRLC                          ENUMERATED {true}     OPTIONAL,   
    rlc-Config                              RLC-Config           OPTIONAL,  
    mac-LogicalChannelConfig                LogicalChannelConfig    OPTIONAL 
}

LogicalChannelIdentity ::= INTEGER (1..maxLC-ID)

PhysicalCellGroupConfig ::= SEQUENCE {
    harq-ACK-SpatialBundlingPUCCH       ENUMERATED {true}    OPTIONAL,   -- Need S
    harq-ACK-SpatialBundlingPUSCH       ENUMERATED {true}    OPTIONAL,   -- Need S
    p-NR                                P-Max                OPTIONAL,   -- Need R
    pdsch-HARQ-ACK-Codebook             ENUMERATED {semiStatic, dynamic},
    tpc-SRS-RNTI                        RNTI-Value           OPTIONAL,   -- Need R
    tpc-PUCCH-RNTI                      RNTI-Value           OPTIONAL,   -- Need R
    tpc-PUSCH-RNTI                      RNTI-Value           OPTIONAL,   -- Need R
    sp-CSI-RNTI                         RNTI-Value           OPTIONAL,   -- Cond SP-CSI-Report
    cs-RNTI                             SetupRelease { RNTI-Value }  OPTIONAL,    -- Need R
    ...,
    -- Earlier extension groups are omitted from this overview.
    [[
    ncr-RNTI-r18                        RNTI-Value OPTIONAL, -- Cond NCR
    cellDTRX-DCI-config-r18             SetupRelease { CellDTRX-DCI-config-r18 } OPTIONAL, -- Need M
    twoQCL-TypeD-ForMultiDCI-r18        ENUMERATED {enabled} OPTIONAL, -- Need R
    enableType1HARQ-ACK-MuxForDL-AssignmentAfterUL-Grant-r18 ENUMERATED {enabled} OPTIONAL, -- Need R
    enableType2HARQ-ACK-MuxForDL-AssignmentAfterUL-Grant-r18 ENUMERATED {enabled} OPTIONAL, -- Need R
    enableType3HARQ-ACK-MuxForDL-AssignmentAfterUL-Grant-r18 ENUMERATED {enabled} OPTIONAL, -- Need R
    enableDiffPUCCH-Resource-r18        ENUMERATED {enabled} OPTIONAL, -- Need R
    enableDiffCB-Size-r18               ENUMERATED {enabled} OPTIONAL -- Need R
    ]],
    [[
    lpwus-Config-r19                    SetupRelease { LPWUS-Config-r19 } OPTIONAL, -- Need M
    adaptSSB-PeriodicityIndication-RNTI-r19 SetupRelease { RNTI-Value } OPTIONAL, -- Need M
    adaptSSB-SizeDCI-2-9-r19            SetupRelease { SizeDCI-2-9-r19 } OPTIONAL -- Need M
    ]]
}

MeasConfig

MeasConfig is to specify various configurations for RRC level measurement like types of measurement, types of reference signal for the measurement etc. The details are specifed in 38.331-5.5

Types of Measurement

  • NR measurements;
  • Inter-RAT measurements of E-UTRA frequencies;
  • Inter-RAT measurements of UTRA-FDD frequencies;
  • NR sidelink measurements of L2 U2N Relay UEs.

Type of Reference signal for the measurement and corresponding measurement item. These measurements are performed only when they are configured in the RRC message.

  • SS/PBCH block(s):
    • Measurement results per SS/PBCH block;
    • Measurement results per cell based on SS/PBCH block(s);
    • SS/PBCH block(s) indexes.
  • CSI-RS resources:
    • Measurement results per CSI-RS resource;
    • Measurement results per cell based on CSI-RS resource(s);
    • CSI-RS resource measurement identifiers.
  • NR sidelink and V2X sidelink for Cross Link Interference:
    • CBR(Channel Busy Ratio) measurements.
  • SRS resources for Cross Link Interference(CLI):
    • Measurement results per SRS resource;
    • SRS resource(s) indexes.
  • CLI-RSSI (Cross Link Interference RSSI) resources:
    • Measurement results per CLI-RSSI resource;
    • CLI-RSSI resource(s) indexes.
  • CSI-RS for tracking or PRS:
    • UE Rx-Tx time difference measurement result.

Components of Measurement Configuration

This is a pretty huge topic and it is decribed in a separate note here.

MeasConfig ::= SEQUENCE {
    measObjectToRemoveList     MeasObjectToRemoveList OPTIONAL, -- Need N
    measObjectToAddModList     MeasObjectToAddModList OPTIONAL, -- Need N
    reportConfigToRemoveList   ReportConfigToRemoveList OPTIONAL, -- Need N
    reportConfigToAddModList   ReportConfigToAddModList OPTIONAL, -- Need N
    measIdToRemoveList         MeasIdToRemoveList OPTIONAL, -- Need N
    measIdToAddModList         MeasIdToAddModList OPTIONAL, -- Need N
    s-MeasureConfig CHOICE {
        ssb-RSRP RSRP-Range,
        csi-RSRP RSRP-Range
    } OPTIONAL, -- Need M
    quantityConfig             QuantityConfig OPTIONAL, -- Need M
    measGapConfig              MeasGapConfig OPTIONAL, -- Need M
    measGapSharingConfig       MeasGapSharingConfig OPTIONAL, -- Need M
    ...,
    [[
    interFrequencyConfig-NoGap-r16 ENUMERATED {true} OPTIONAL -- Need R
    ]],
    [[
    effectiveMeasWindowConfig-r18 SetupRelease {MeasWindowConfig-r18} OPTIONAL -- Need M
    ]],
    [[
    cssf-Config-r19 SEQUENCE {
        cssf-MeasMO-List-r19 CSSF-MeasMO-List-r19 OPTIONAL -- Need R
    } OPTIONAL, -- Need R
    fbs-Config-r19 SetupRelease {FBS-Config-r19} OPTIONAL, -- Need M
    speedStatePars-r19 SetupRelease {SpeedStatePars-r19} OPTIONAL -- Need M
    ]]
}
MeasObjectToRemoveList ::= SEQUENCE (SIZE (1..maxNrofObjectId)) OF MeasObjectId
MeasIdToRemoveList ::= SEQUENCE (SIZE (1..maxNrofMeasId)) OF MeasId
ReportConfigToRemoveList ::= SEQUENCE (SIZE (1..maxReportConfigId)) OF ReportConfigId

CSSF-MeasMO-List-r19 ::= SEQUENCE (SIZE (1..maxNrofMeasMO-r19)) OF MeasObjectId

FBS-Config-r19 ::= SEQUENCE {
    fbs-ThresholdP-r19 RSRP-Range OPTIONAL, -- Need R
    fbs-ThresholdQ-r19 RSRQ-Range OPTIONAL  -- Need R
}

SpeedStatePars-r19 ::= SEQUENCE {
    mobilityStateParameters-r19 MobilityStateParameters,
    timeToTrigger-SF-r19 SpeedStateScaleFactors
}

MeasGapConfig ::= SEQUENCE {
    gapFR2 SetupRelease { GapConfig } OPTIONAL, -- Need M
    ...,
    [[
    gapFR1 SetupRelease { GapConfig } OPTIONAL, -- Need M
    gapUE  SetupRelease { GapConfig } OPTIONAL  -- Need M
    ]],
    [[
    gapToAddModList-r17 SEQUENCE (SIZE (1..maxNrofGapId-r17)) OF GapConfig-r17 OPTIONAL, -- Need N
    gapToReleaseList-r17 SEQUENCE (SIZE (1..maxNrofGapId-r17)) OF MeasGapId-r17 OPTIONAL, -- Need N
    posMeasGapPreConfigToAddModList-r17 PosMeasGapPreConfigToAddModList-r17 OPTIONAL, -- Need N
    posMeasGapPreConfigToReleaseList-r17 PosMeasGapPreConfigToReleaseList-r17 OPTIONAL -- Need N
    ]]
}

GapConfig ::= SEQUENCE {
    gapOffset INTEGER (0..159),
    mgl ENUMERATED {ms1dot5, ms3, ms3dot5, ms4, ms5dot5, ms6},
    mgrp ENUMERATED {ms20, ms40, ms80, ms160},
    mgta ENUMERATED {ms0, ms0dot25, ms0dot5},
    ...,
    [[
    refServCellIndicator ENUMERATED {pCell, pSCell, mcg-FR2} OPTIONAL -- Cond NEDCorNRDC
    ]],
    [[
    refFR2ServCellAsyncCA-r16 ServCellIndex OPTIONAL, -- Cond AsyncCA
    mgl-r16 ENUMERATED {ms10, ms20} OPTIONAL -- Cond PRS
    ]]
}

GapConfig-r17 ::= SEQUENCE {
    measGapId-r17               MeasGapId-r17,
    gapType-r17                 ENUMERATED {perUE, perFR1, perFR2},
    gapOffset-r17               INTEGER (0..159),
    mgl-r17                     ENUMERATED {ms1, ms1dot5, ms2, ms3, ms3dot5, ms4, ms5, ms5dot5, ms6, ms10, ms20},
    mgrp-r17                    ENUMERATED {ms20, ms40, ms80, ms160},
    mgta-r17                    ENUMERATED {ms0, ms0dot25, ms0dot5, ms0dot75},
    refServCellIndicator-r17    ENUMERATED {pCell, pSCell, mcg-FR2} OPTIONAL, -- Cond NEDCorNRDC
    refFR2-ServCellAsyncCA-r17  ServCellIndex OPTIONAL, -- Cond AsyncCA
    preConfigInd-r17            ENUMERATED {true} OPTIONAL, -- Need R
    ncsgInd-r17                 ENUMERATED {true} OPTIONAL, -- Need R
    gapAssociationPRS-r17       ENUMERATED {true} OPTIONAL, -- Need R
    gapSharing-r17              MeasGapSharingScheme OPTIONAL, -- Need R
    gapPriority-r17             GapPriority-r17 OPTIONAL, -- Need R
    ...
}

MeasGapSharingConfig ::= SEQUENCE {
    gapSharingFR2 SetupRelease { MeasGapSharingScheme } OPTIONAL, -- Need M
    ...
}
MeasGapSharingScheme ::= ENUMERATED { scheme00, scheme01, scheme10, scheme11 }

QuantityConfig ::= SEQUENCE {
    quantityConfigNR-List       SEQUENCE (SIZE (1..maxNrofQuantityConfig)) 
                                       OF QuantityConfigNR OPTIONAL, -- Need M
    ...
}

QuantityConfigNR::= SEQUENCE {
    quantityConfigCell         QuantityConfigRS,
    quantityConfigRS-Index     QuantityConfigRS OPTIONAL -- Need M
}

QuantityConfigRS ::= SEQUENCE {
    ssb-FilterConfig           FilterConfig,
    cs-RS-FilterConfig         FilterConfig
}

FilterConfig ::= SEQUENCE {
    filterCoefficientRSRP      FilterCoefficient DEFAULT fc4,
    filterCoefficientRSRQ      FilterCoefficient DEFAULT fc4,
    filterCoefficientRS-SINR   FilterCoefficient DEFAULT fc4
}

SpcellConfig

 "SpCell" means the special cell of a cell group: the PCell for the MCG or the PSCell for an SCG. In the context of NSA, the SpCell is the first NR cell added as SCG(Secondary Cell Group) to LTE anchor.

  • spCellConfig configures a special cell configuration for a defined group of cells in a 5G network. It essentially denotes the primary cell of a specified group, with mentions of Pcell for Master Cell Group (MCG) and PScell for Secondary Cell Group (SCG)
  • There are two specific configurations under spCellConfig: spCellConfigCommon and spCellConfigDedicated.
  • spCellConfigCommon is a common configuration available to all User Equipment (UE) for initial access to the network. It contains parameters used for initial Random Access Channel (RACH) synchronization with the Secondary Synchronization Signal Block (SSB). Parameters under this configuration are used for initial Bandwidth Part (BWP) calculations for both downlink (DL) and uplink (UL) which decide access to the NR cell after a specific trigger. This information is ideally sent as part of SIB1 in Standalone (SA) mode or via LTE RRC Signaling in an NR Container in case of EN-DC (E-UTRAN New Radio - Dual Connectivity).
  • spCellConfigDedicated is a dedicated configuration with specific parameters for a particular UE. It contains different configurations like CORESET/Searchspace, PUCCH allocations, PDSCH/PUSCH time domain allocation information, and it also allows the network to configure different BWPs for common and dedicated configurations
SpCellConfig ::=       SEQUENCE {
    servCellIndex                   ServCellIndex       OPTIONAL,   -- Cond SCG
    reconfigurationWithSync         ReconfigurationWithSync         OPTIONAL, -- Cond ReconfWithSync
    rlf-TimersAndConstants          SetupRelease { RLF-TimersAndConstants } OPTIONAL, -- Need M
    rlmInSyncOutOfSyncThreshold     ENUMERATED {n1}                         OPTIONAL, -- Need S
    spCellConfigDedicated           ServingCellConfig                   OPTIONAL,   -- Need M
    ...,
    [[
    lowMobilityEvaluationConnected-r17 SEQUENCE {
        s-SearchDeltaP-Connected-r17 ENUMERATED {dB3, dB6, dB9, dB12, dB15, spare3, spare2, spare1},
        t-SearchDeltaP-Connected-r17 ENUMERATED {s5, s10, s20, s30, s60, s120, s180, s240, s300, spare7, spare6, spare5, spare4, spare3, spare2, spare1}
    } OPTIONAL, -- Need R
    goodServingCellEvaluationRLM-r17 GoodServingCellEvaluation-r17 OPTIONAL, -- Need R
    goodServingCellEvaluationBFD-r17 GoodServingCellEvaluation-r17 OPTIONAL, -- Need R
    deactivatedSCG-Config-r17 SetupRelease { DeactivatedSCG-Config-r17 } OPTIONAL -- Cond SCG-Opt
    ]]
}

ReconfigurationWithSync ::=         SEQUENCE {
    spCellConfigCommon                ServingCellConfigCommon       OPTIONAL,   -- Need M
    newUE-Identity                      RNTI-Value,
    t304                                ENUMERATED {ms50, ms100, ms150, ms200, ms500, ms1000
                                                   , ms2000, ms10000},
    rach-ConfigDedicated              CHOICE {
            uplink                              RACH-ConfigDedicated,
            supplementaryUplink                 RACH-ConfigDedicated
    }                                 OPTIONAL,   -- Need N
    ...,
    [[
    smtc                                SSB-MTC OPTIONAL -- Need S
    ]],
    [[
    daps-UplinkPowerConfig-r16          DAPS-UplinkPowerConfig-r16 OPTIONAL -- Need N
    ]],
    [[
    sl-PathSwitchConfig-r17             SL-PathSwitchConfig-r17 OPTIONAL -- Cond DirectToIndirect-PathSwitch
    ]],
    [[
    rach-LessHO-r18                     RACH-LessHO-r18 OPTIONAL, -- Need N
    sl-IndirectPathMaintain-r18         ENUMERATED {true} OPTIONAL -- Cond MP
    ]],
    [[
    ltm-SchedulingRequestInfo-r19       LTM-SchedulingRequestInfo-r19 OPTIONAL, -- Cond LTM
    earlyCSI-Acquisition-r19            EarlyCSI-Acquisition-r19 OPTIONAL -- Need N
    ]]
}

EarlyCSI-Acquisition-r19 ::= SEQUENCE {
    early-NZP-CSI-RS-ResourceSet-r19    NZP-CSI-RS-ResourceSetId,
    early-CSI-IM-ResourceSet-r19        CSI-IM-ResourceSetId OPTIONAL, -- Need R
    earlyCSI-ReportQuantity-r19         ENUMERATED {cri-RI-PMI-CQI, spare},
    earlyCSI-CQI-Table-r19              CQI-Table OPTIONAL, -- Need R
    earlyCSI-CodeBookConfig-r19         EarlyCSI-CodeBookConfig-r19 OPTIONAL -- Need R
}

ServingCellConfig ::=       SEQUENCE {
    tdd-UL-DL-ConfigurationDedicated    TDD-UL-DL-ConfigDedicated OPTIONAL, -- Cond TDD
    initialDownlinkBWP                  BWP-DownlinkDedicated OPTIONAL, -- Need M
    downlinkBWP-ToReleaseList           SEQUENCE (SIZE (1..maxNrofBWPs)) OF BWP-Id OPTIONAL, -- Need N
    downlinkBWP-ToAddModList            SEQUENCE (SIZE (1..maxNrofBWPs)) OF BWP-Downlink OPTIONAL, -- Need N
    firstActiveDownlinkBWP-Id           BWP-Id OPTIONAL, -- Cond SyncAndCellAdd
    bwp-InactivityTimer                 ENUMERATED {ms2, ms3, ms4, ms5, ms6, ms8, ms10, ms20, ms30,
                                                    ms40, ms50, ms60, ms80, ms100, ms200, ms300, ms500,
                                                    ms750, ms1280, ms1920, ms2560, spare10, spare9, spare8,
                                                    spare7, spare6, spare5, spare4, spare3, spare2, spare1} OPTIONAL, -- Need R
    defaultDownlinkBWP-Id               BWP-Id OPTIONAL, -- Need S
    uplinkConfig                        UplinkConfig OPTIONAL, -- Need M
    supplementaryUplink                 UplinkConfig OPTIONAL, -- Need M
    pdcch-ServingCellConfig             SetupRelease { PDCCH-ServingCellConfig } OPTIONAL, -- Need M
    pdsch-ServingCellConfig             SetupRelease { PDSCH-ServingCellConfig } OPTIONAL, -- Need M
    csi-MeasConfig                      SetupRelease { CSI-MeasConfig } OPTIONAL, -- Need M
    sCellDeactivationTimer              ENUMERATED {ms20, ms40, ms80, ms160, ms200, ms240, ms320, ms400,
                                                    ms480, ms520, ms640, ms720, ms840, ms1280, spare2, spare1} OPTIONAL, -- Cond ServingCellWithoutPUCCH
    crossCarrierSchedulingConfig        CrossCarrierSchedulingConfig OPTIONAL, -- Need M
    tag-Id                              TAG-Id,
    dummy1                              ENUMERATED {enabled} OPTIONAL, -- Need R
    pathlossReferenceLinking            ENUMERATED {spCell, sCell} OPTIONAL, -- Cond SCellOnly
    servingCellMO                       MeasObjectId OPTIONAL, -- Cond MeasObject
    ...,
    [[
    lte-CRS-ToMatchAround               SetupRelease { RateMatchPatternLTE-CRS } OPTIONAL, -- Need M
    rateMatchPatternToAddModList        SEQUENCE (SIZE (1..maxNrofRateMatchPatterns)) OF RateMatchPattern OPTIONAL, -- Need N
    rateMatchPatternToReleaseList       SEQUENCE (SIZE (1..maxNrofRateMatchPatterns)) OF RateMatchPatternId OPTIONAL, -- Need N
    downlinkChannelBW-PerSCS-List       SEQUENCE (SIZE (1..maxSCSs)) OF SCS-SpecificCarrier OPTIONAL -- Need S
    ]],
    [[
    supplementaryUplinkRelease-r16      ENUMERATED {true} OPTIONAL, -- Need N
    tdd-UL-DL-ConfigurationDedicated-IAB-MT-r16 TDD-UL-DL-ConfigDedicated-IAB-MT-r16 OPTIONAL, -- Cond TDD_IAB
    dormantBWP-Config-r16               SetupRelease { DormantBWP-Config-r16 } OPTIONAL, -- Need M
    ca-SlotOffset-r16                   CHOICE {
        refSCS15kHz                         INTEGER (-2..2),
        refSCS30KHz                         INTEGER (-5..5),
        refSCS60KHz                         INTEGER (-10..10),
        refSCS120KHz                        INTEGER (-20..20)
    } OPTIONAL, -- Cond AsyncCA
    dummy2                              SetupRelease { DummyJ } OPTIONAL, -- Need M
    intraCellGuardBandsDL-List-r16      SEQUENCE (SIZE (1..maxSCSs)) OF IntraCellGuardBandsPerSCS-r16 OPTIONAL, -- Need S
    intraCellGuardBandsUL-List-r16      SEQUENCE (SIZE (1..maxSCSs)) OF IntraCellGuardBandsPerSCS-r16 OPTIONAL, -- Need S
    csi-RS-ValidationWithDCI-r16        ENUMERATED {enabled} OPTIONAL, -- Need R
    lte-CRS-PatternList1-r16            SetupRelease { LTE-CRS-PatternList-r16 } OPTIONAL, -- Need M
    lte-CRS-PatternList2-r16            SetupRelease { LTE-CRS-PatternList-r16 } OPTIONAL, -- Need M
    crs-RateMatch-PerCORESETPoolIndex-r16 ENUMERATED {enabled} OPTIONAL, -- Need R
    enableTwoDefaultTCI-States-r16      ENUMERATED {enabled} OPTIONAL, -- Need R
    enableDefaultTCI-StatePerCoresetPoolIndex-r16 ENUMERATED {enabled} OPTIONAL, -- Need R
    enableBeamSwitchTiming-r16          ENUMERATED {true} OPTIONAL, -- Need R
    cbg-TxDiffTBsProcessingType1-r16    ENUMERATED {enabled} OPTIONAL, -- Need R
    cbg-TxDiffTBsProcessingType2-r16    ENUMERATED {enabled} OPTIONAL -- Need R
    ]],
    [[
    directionalCollisionHandling-r16    ENUMERATED {enabled} OPTIONAL, -- Need R
    channelAccessConfig-r16             SetupRelease { ChannelAccessConfig-r16 } OPTIONAL -- Need M
    ]],
    [[
    nr-dl-PRS-PDC-Info-r17              SetupRelease { NR-DL-PRS-PDC-Info-r17 } OPTIONAL, -- Need M
    semiStaticChannelAccessConfigUE-r17 SetupRelease { SemiStaticChannelAccessConfigUE-r17 } OPTIONAL, -- Need M
    mimoParam-r17                       SetupRelease { MIMOParam-r17 } OPTIONAL, -- Need M
    channelAccessMode2-r17              ENUMERATED {enabled} OPTIONAL, -- Need R
    timeDomainHARQ-BundlingType1-r17    ENUMERATED {enabled} OPTIONAL, -- Need R
    nrofHARQ-BundlingGroups-r17         ENUMERATED {n1, n2, n4} OPTIONAL, -- Need R
    fdmed-ReceptionMulticast-r17        ENUMERATED {true} OPTIONAL, -- Need R
    moreThanOneNackOnlyMode-r17         ENUMERATED {mode2} OPTIONAL, -- Need S
    tci-ActivatedConfig-r17             TCI-ActivatedConfig-r17 OPTIONAL, -- Cond TCI_ActivatedConfig
    directionalCollisionHandling-DC-r17 ENUMERATED {enabled} OPTIONAL, -- Need R
    lte-NeighCellsCRS-AssistInfoList-r17 SetupRelease { LTE-NeighCellsCRS-AssistInfoList-r17 } OPTIONAL -- Need M
    ]],
    [[
    lte-NeighCellsCRS-Assumptions-r17   ENUMERATED {false} OPTIONAL -- Need R
    ]],
    [[
    crossCarrierSchedulingConfigRelease-r17 ENUMERATED {true} OPTIONAL -- Need N
    ]],
    [[
    multiPDSCH-PerSlotType1-CB-r17      ENUMERATED {enabled, disabled} OPTIONAL -- Need R
    ]],
    [[
    lte-CRS-PatternList3-r18            SetupRelease { LTE-CRS-PatternList-r16 } OPTIONAL, -- Need M
    lte-CRS-PatternList4-r18            SetupRelease { LTE-CRS-PatternList-r16 } OPTIONAL, -- Need M
    pdcch-CandidateReceptionWithCRS-Overlap-r18 ENUMERATED {enabled} OPTIONAL, -- Need R
    cjt-Scheme-PDSCH-r18                ENUMERATED {cjtSchemeA, cjtSchemeB} OPTIONAL, -- Need R
    tag2-r18                            Tag2-r18 OPTIONAL, -- Need R
    cellDTX-DRX-Config-r18              SetupRelease { CellDTX-DRX-Config-r18 } OPTIONAL, -- Need M
    positionInDCI-cellDTRX-r18          INTEGER (0..maxDCI-2-9-Size-1-r18) OPTIONAL, -- Need R
    cellDTX-DRX-L1activation-r18        ENUMERATED {enabled} OPTIONAL, -- Need R
    mc-DCI-SetOfCellsToAddModList-r18   SEQUENCE (SIZE (1..maxNrofSetsOfCells-r18)) OF MC-DCI-SetOfCells-r18 OPTIONAL, -- Need N
    mc-DCI-SetOfCellsToReleaseList-r18  SEQUENCE (SIZE (1..maxNrofSetsOfCells-r18)) OF SetOfCellsId-r18 OPTIONAL -- Need N
    ]],
    [[
    mimoParam-v1850                     SetupRelease { MIMOParam-v1850 } OPTIONAL -- Need M
    ]],
    [[
    mc-DCI-SetOfCellsToAddModListExt-v1900 SEQUENCE (SIZE (1..maxNrofSetsOfCells-r18)) OF MC-DCI-SetOfCellsExt-v1900 OPTIONAL, -- Need N
    mimoParam-v1900                     SetupRelease { MIMOParam-v1900 } OPTIONAL, -- Need M
    servingCellMO-OD-r19                MeasObjectId OPTIONAL, -- Cond MeasObjectOD
    cjt-Scheme-PDSCH-v1900              ENUMERATED {cjt-SchemeC, cjt-SchemeD, cjt-SchemeE} OPTIONAL, -- Need R
    ntn-RedcapPrioritizeUL-Dynamic-r19  ENUMERATED {enabled} OPTIONAL, -- Need R
    ntn-RedcapPrioritizeUL-Semistatic-r19 ENUMERATED {enabled} OPTIONAL -- Need R
    ]]
}

PDSCH-ServingCellConfig ::= SEQUENCE {
    codeBlockGroupTransmission       SetupRelease { 
                                        PDSCH-CodeBlockGroupTransmission 
                                     }   OPTIONAL,   -- Need M
    xOverhead                        ENUMERATED { xOh6, xOh12, xOh18 }       OPTIONAL,-- Need S
    nrofHARQ-ProcessesForPDSCH       ENUMERATED {n2, n4, n6, n10, n12, n16}  OPTIONAL,-- Need S
    pucch-Cell                       ServCellIndex      OPTIONAL    ,   -- Cond SCellAddOnly
    ...,
    [[
    maxMIMO-Layers                  INTEGER (1..8) OPTIONAL, -- Need M
    processingType2Enabled          BOOLEAN OPTIONAL -- Need M
    ]],
    [[
    pdsch-CodeBlockGroupTransmissionList-r16 SetupRelease { PDSCH-CodeBlockGroupTransmissionList-r16 } OPTIONAL -- Need M
    ]],
    [[
    downlinkHARQ-FeedbackDisabled-r17 SetupRelease { DownlinkHARQ-FeedbackDisabled-r17 } OPTIONAL, -- Need M
    nrofHARQ-ProcessesForPDSCH-v1700 ENUMERATED {n32} OPTIONAL -- Need R
    ]]
}

PDSCH-CodeBlockGroupTransmission ::= SEQUENCE {
    maxCodeBlockGroupsPerTransportBlock     ENUMERATED {n2, n4, n6, n8},
    codeBlockGroupFlushIndicator            BOOLEAN,
    ...
}

UplinkConfig ::=    SEQUENCE {
    initialUplinkBWP            BWP-UplinkDedicated OPTIONAL, -- Need M
    uplinkBWP-ToReleaseList     SEQUENCE (SIZE (1..maxNrofBWPs)) OF BWP-Id OPTIONAL, -- Need N
    uplinkBWP-ToAddModList      SEQUENCE (SIZE (1..maxNrofBWPs)) OF BWP-Uplink OPTIONAL, -- Need N
    firstActiveUplinkBWP-Id     BWP-Id OPTIONAL, -- Cond SyncAndCellAdd
    pusch-ServingCellConfig     SetupRelease { PUSCH-ServingCellConfig } OPTIONAL, -- Need M
    carrierSwitching            SetupRelease { SRS-CarrierSwitching } OPTIONAL, -- Need M
    ...,
    [[
    powerBoostPi2BPSK           BOOLEAN OPTIONAL, -- Need M
    uplinkChannelBW-PerSCS-List SEQUENCE (SIZE (1..maxSCSs)) OF SCS-SpecificCarrier OPTIONAL -- Need S
    ]],
    [[
    enablePL-RS-UpdateForPUSCH-SRS-r16  ENUMERATED {enabled} OPTIONAL, -- Need R
    enableDefaultBeamPL-ForPUSCH0-0-r16 ENUMERATED {enabled} OPTIONAL, -- Need R
    enableDefaultBeamPL-ForPUCCH-r16    ENUMERATED {enabled} OPTIONAL, -- Need R
    enableDefaultBeamPL-ForSRS-r16      ENUMERATED {enabled} OPTIONAL, -- Need R
    uplinkTxSwitching-r16               SetupRelease { UplinkTxSwitching-r16 } OPTIONAL, -- Need M
    mpr-PowerBoost-FR2-r16              ENUMERATED {true} OPTIONAL -- Need R
    ]],
    [[
    srs-PosTx-Hopping-r18               SetupRelease { SRS-PosTx-Hopping-r18 } OPTIONAL, -- Need M
    enablePL-RS-UpdateForType1CG-PUSCH-r18 ENUMERATED {enabled} OPTIONAL, -- Need R
    powerBoostPi2BPSK-r18               BOOLEAN OPTIONAL, -- Need R
    powerBoostQPSK-r18                  BOOLEAN OPTIONAL -- Need R
    ]],
    [[
    powerBoostNTN-r19                   ENUMERATED {true} OPTIONAL -- Need R
    ]]
}

ServingCellConfigCommon ::= SEQUENCE {
    physCellId                      PhysCellId OPTIONAL, -- Cond HOAndServCellAdd
    downlinkConfigCommon            DownlinkConfigCommon OPTIONAL, -- Cond HOAndServCellAdd
    uplinkConfigCommon              UplinkConfigCommon OPTIONAL, -- Need M
    supplementaryUplinkConfig       UplinkConfigCommon OPTIONAL, -- Need S
    n-TimingAdvanceOffset           ENUMERATED {n0, n25600, n39936} OPTIONAL, -- Need S
    ssb-PositionsInBurst CHOICE {
        shortBitmap                     BIT STRING (SIZE (4)),
        mediumBitmap                    BIT STRING (SIZE (8)),
        longBitmap                      BIT STRING (SIZE (64))
    } OPTIONAL, -- Cond AbsFreqSSB
    ssb-periodicityServingCell ENUMERATED {ms5, ms10, ms20, ms40, ms80, ms160, spare2, spare1} OPTIONAL, -- Need S
    dmrs-TypeA-Position ENUMERATED {pos2, pos3},
    lte-CRS-ToMatchAround           SetupRelease { RateMatchPatternLTE-CRS } OPTIONAL, -- Need M
    rateMatchPatternToAddModList    SEQUENCE (SIZE (1..maxNrofRateMatchPatterns)) OF RateMatchPattern OPTIONAL, -- Need N
    rateMatchPatternToReleaseList   SEQUENCE (SIZE (1..maxNrofRateMatchPatterns)) OF RateMatchPatternId OPTIONAL, -- Need N
    ssbSubcarrierSpacing            SubcarrierSpacing OPTIONAL, -- Cond HOAndServCellWithSSB
    tdd-UL-DL-ConfigurationCommon   TDD-UL-DL-ConfigCommon OPTIONAL, -- Cond TDD
    ss-PBCH-BlockPower              INTEGER (-60..50),
    ...,
    [[
    channelAccessMode-r16           CHOICE {
        dynamic                         NULL,
        semiStatic                      SemiStaticChannelAccessConfig-r16
    } OPTIONAL, -- Cond SharedSpectrum
    discoveryBurstWindowLength-r16  ENUMERATED {ms0dot5, ms1, ms2, ms3, ms4, ms5} OPTIONAL, -- Need R
    ssb-PositionQCL-r16             SSB-PositionQCL-Relation-r16 OPTIONAL, -- Cond SharedSpectrum
    highSpeedConfig-r16             HighSpeedConfig-r16 OPTIONAL -- Need R
    ]],
    [[
    highSpeedConfig-v1700           HighSpeedConfig-v1700 OPTIONAL, -- Need R
    channelAccessMode2-r17          ENUMERATED {enabled} OPTIONAL, -- Cond SharedSpectrum2
    discoveryBurstWindowLength-r17  ENUMERATED {ms0dot125, ms0dot25, ms0dot5, ms0dot75, ms1, ms1dot25} OPTIONAL, -- Need R
    ssb-PositionQCL-r17             SSB-PositionQCL-Relation-r17 OPTIONAL, -- Cond SharedSpectrum2
    highSpeedConfigFR2-r17          HighSpeedConfigFR2-r17 OPTIONAL, -- Need R
    uplinkConfigCommon-v1700        UplinkConfigCommon-v1700 OPTIONAL, -- Need R
    ntn-Config-r17                  NTN-Config-r17 OPTIONAL -- Need R
    ]],
    [[
    featurePriorities-r17           SEQUENCE {
        redCapPriority-r17              FeaturePriority-r17 OPTIONAL, -- Need R
        slicingPriority-r17             FeaturePriority-r17 OPTIONAL, -- Need R
        msg3-Repetitions-Priority-r17   FeaturePriority-r17 OPTIONAL, -- Need R
        sdt-Priority-r17                FeaturePriority-r17 OPTIONAL -- Need R
    } OPTIONAL -- Need R
    ]],
    [[
    ra-ChannelAccess-r17            ENUMERATED {enabled} OPTIONAL -- Cond SharedSpectrum2
    ]],
    [[
    featurePriorities-v1800         SEQUENCE {
        msg1-Repetitions-Priority-r18   FeaturePriority-r17 OPTIONAL, -- Need R
        eRedCapPriority-r18             FeaturePriority-r17 OPTIONAL -- Need R
    } OPTIONAL, -- Need R
    atg-Config-r18                  ATG-Config-r18 OPTIONAL -- Need R
    ]]
}

RateMatchPatternLTE-CRS ::= SEQUENCE {
    carrierFreqDL                   INTEGER (0..16383),
    carrierBandwidthDL              ENUMERATED {n6, n15, n25, n50, n75, n100, spare2, spare1},
    mbsfn-SubframeConfigList        EUTRA-MBSFN-SubframeConfigList OPTIONAL, 
    nrofCRS-Ports                   ENUMERATED {n1, n2, n4},
    v-Shift                         ENUMERATED {n0, n1, n2, n3, n4, n5}
}

RateMatchPattern ::= SEQUENCE {
    rateMatchPatternId RateMatchPatternId,
    patternType CHOICE {
        bitmaps SEQUENCE {
        resourceBlocks              BIT STRING (SIZE (275)),
        symbolsInResourceBlock CHOICE {
            oneSlot                 BIT STRING (SIZE (14)),
            twoSlots                BIT STRING (SIZE (28))
        },
        periodicityAndPattern CHOICE {
            n2                      BIT STRING (SIZE (2)),
            n4                      BIT STRING (SIZE (4)),
            n5                      BIT STRING (SIZE (5)),
            n8                      BIT STRING (SIZE (8)),
            n10                     BIT STRING (SIZE (10)),
            n20                     BIT STRING (SIZE (20)),
            n40                     BIT STRING (SIZE (40))
        } OPTIONAL, -- Need S
        ...
    },
        controlResourceSet          ControlResourceSetId
    },
        subcarrierSpacing           SubcarrierSpacing OPTIONAL, -- Cond CellLevel
        mode                        ENUMERATED { dynamic, semiStatic },
    ...
}

EUTRA-MBSFN-SubframeConfigList ::= 
            SEQUENCE (SIZE (1..maxMBSFN-Allocations)) OF EUTRA-MBSFN-SubframeConfig

EUTRA-MBSFN-SubframeConfig ::= SEQUENCE {
    radioframeAllocationPeriod          ENUMERATED {n1, n2, n4, n8, n16, n32},
    radioframeAllocationOffset          INTEGER (0..7),
    subframeAllocation CHOICE {
        oneFrame                        BIT STRING (SIZE(6)),
        fourFrames                      BIT STRING (SIZE(24))
    },
    subframeAllocation-v1430 CHOICE {
        oneFrame-v1430                  BIT STRING (SIZE(2)),
        fourFrames-v1430                BIT STRING (SIZE(8))
    } OPTIONAL, -- Need R
    ...
}

SubcarrierSpacing ::=  ENUMERATED {kHz15, kHz30, kHz60, kHz120, kHz240,
                                   kHz480-v1700, kHz960-v1700, spare1}

UplinkConfigCommon ::=      SEQUENCE {
    frequencyInfoUL     FrequencyInfoUL OPTIONAL, -- Cond InterFreqHOAndServCellAdd
    initialUplinkBWP    BWP-UplinkCommon OPTIONAL, -- Cond ServCellAdd
    dummy               TimeAlignmentTimer
}

UplinkConfigCommon-v1700 ::= SEQUENCE {
    initialUplinkBWP-RedCap-r17 BWP-UplinkCommon OPTIONAL -- Need R
}

FrequencyInfoDL ::=         SEQUENCE {
    absoluteFrequencySSB        ARFCN-ValueNR OPTIONAL, -- Cond SpCellAdd
    frequencyBandList           MultiFrequencyBandListNR,
    absoluteFrequencyPointA     ARFCN-ValueNR,
    scs-SpecificCarrierList     SEQUENCE (SIZE (1..maxSCSs)) OF SCS-SpecificCarrier,
    ...,
    [[
    referenceCell-r18           ServCellIndex OPTIONAL -- Cond SSBlessSCell
    ]]
} 

SCS-SpecificCarrier ::=             SEQUENCE {
    offsetToCarrier                     INTEGER (0..2199),
    subcarrierSpacing                   SubcarrierSpacing,
    carrierBandwidth                    INTEGER (1..maxNrofPhysicalResourceBlocks),
    ...,
    [[
    txDirectCurrentLocation         INTEGER (0..4095) OPTIONAL -- Need S
    ]],
    [[
    sbfd-Subband-Allocation-r19     SBFD-Subband-Allocation-r19 OPTIONAL -- Need R
    ]]
}

SBFD-Subband-Allocation-r19 ::= SEQUENCE {
    ul-subbandlocationAndBandwidth-r19      INTEGER (0..37949) OPTIONAL, -- Need R
    firstDL-subbandlocationAndBandwidth-r19 INTEGER (0..37949) OPTIONAL, -- Need R
    secondDL-subbandlocationAndBandwidth-r19 INTEGER (0..37949) OPTIONAL, -- Need R
    ...
}

absoluteFrequencySSB : Frequency of the SSB to be used for this serving cell. SSB related parameters (e.g. SSB index) provided for a serving cell refer to this SSB frequency unless mentioned otherwise. The frequency provided in this field identifies the position of resource element RE=#0 (subcarrier #0) of resource block RB#10 of the SS block. The cell-defining SSB of the PCell is always on the sync raster. Frequencies are considered to be on the sync raster if they are also identifiable with a GSCN value. If the field is absent, the SSB related parameters should be absent, e.g. ssb-PositionsInBurst, ssb-periodicityServingCell and subcarrierSpacing in ServingCellConfigCommon IE. If the field is absent, the UE obtains timing reference from the SpCell. This is only supported in case the Scell is in the same frequency band as the SpCell

absoluteFrequencyPointA :  Absolute frequency position of the reference resource block (Common RB 0). Its lowest subcarrier is also known as Point A. Note that the lower edge of the actual carrier is not defined by this field but rather in the scs-SpecificCarrierList. Corresponds to L1 parameter 'offset-ref-low-scs-ref-PRB' . See this page for further details.

carrierBandwidth : Width of this carrier in number of PRBs (using the subcarrierSpacing defined for this carrier) Corresponds to L1 parameter 'BW

offsetToCarrier : Offset in frequency domain between Point A (lowest subcarrier of common RB 0) and the lowest usable subcarrier on this carrier in number of PRBs (using the subcarrierSpacing defined for this carrier). The maximum value corresponds to 275*8-1. Corresponds to L1 parameter 'offset-pointA-low-scs'

SubcarrierSpacing : Subcarrier spacing of this carrier. It is used to convert the offsetToCarrier into an actual frequency. Only the values 15 or 30 kHz (<6GHz), 60 or 120 kHz (>6GHz) are applicable. The network configures all SCSs of configured BWPs configured in this serving cell. Corresponds to L1 parameter 'ref-scs'

txDirectCurrentLocation : Indicates the downlink Tx Direct Current location for the carrier. A value in the range 0..3299 indicates the subcarrier index within the carrier. The values in the value range 3301..4095 are reserved and ignored by the UE. If this field is absent, the UE assumes the default value of 3300 (i.e. "Outside the carrier").

offsetToPointA : The offset in PRB between the Point A and the lowest subcarrier of the lowest PRB of the cell-defining SSB after floating SSB is resolved. See this page for further details.

 

Example 01 : spCellConfig.FrequencyInfoDL

 

IE(Information Element)

Example

Description

 

absoluteFrequencySSB

2054962

 

 

ssb_SubcarrierOffset

Omit

 

 

frequencyBandList

 

 

 

    frequencyBand[0]

257

 

 

absoluteFrequencyPointA

2054170

 

 

scs_SpecificCarrierList

 

 

 

    scs_SpecificCarrier[0]

 

 

 

        offsetToCarrier

0

 

 

        subcarrierSpacing

120khz

 

 

        k0

n0

 

 

        carrierBandwidth

66

 

 

FrequencyInfoUL ::=      SEQUENCE {
    frequencyBandList                 MultiFrequencyBandListNR OPTIONAL, -- Cond FDD-OrSUL-OrEarlyUL-Sync
    absoluteFrequencyPointA           ARFCN-ValueNR OPTIONAL, -- Cond FDD-OrSUL-OrEarlyUL-Sync
    scs-SpecificCarrierList           SEQUENCE (SIZE (1..maxSCSs)) OF SCS-SpecificCarrier,
    additionalSpectrumEmission        AdditionalSpectrumEmission OPTIONAL, -- Need S
    p-Max                             P-Max OPTIONAL, -- Need S
    frequencyShift7p5khz              ENUMERATED {true} OPTIONAL, -- Cond FDD-TDD-OrSUL-Optional
    ...,
    [[
    additionalSpectrumEmission-v1760 AdditionalSpectrumEmission-v1760 OPTIONAL -- Need S
    ]],
    [[
    additionalSpectrumEmissionAerial-r18 AdditionalSpectrumEmission-r18 OPTIONAL -- Need S
    ]]
}
                                

subcarrierSpacingCommon : Indicates Subcarrier spacing for SIB1, Msg.2/4 for initial access and SI-messages.

                            Values 15, and 30 kHz are applicable for carrier frequencies <6GHz;

                            Values 60 and 120 kHz are applicable for carrier frequencies >6GHz

ssb-subcarrieroffset :  The frequency domain offset between SSB and the overall resource block grid in number of subcarriers. Absence of the field indicates that no offset if applied (offset = 0). See 38.211, 7.4.3.1)

ssb-PositionsInBurst : Indicates the time domain positions of the transmitted SS-blocks in an SS-burst. It corresponds to L1 parameter 'SSB-Transmitted' (see 38.213, section 4.1)

                         shortBitmap : bitmap for sub 3 GHz

                         mediumBitmap : bitmap for 3-6 GHz

                         longBitmap : bitmap for above 6 GHz

ssb-periodicityServingCell : The SSB periodicity in msec for the rate matching purpose (see 38.211-7.4.3.1)  

dmrs-TypeA-Position : Position of (first) DL DM-RS (see 38.211, section 7.4.1.1.1). This field is usually in MIB. Assuming that the UE does not need to acquire MIB before sending RA to target cell, this parameter should also be here.

subcarrierSpacingSSB : Subcarrier spacing of SSB. Used only for non-initial access (e.g. SCells, PCell of SCG).

ss-PBCH-BlockPower : TX power that the NW used for SSB transmission. The UE uses it to estimate the RA preamble TX power

rach-ConfigCommon : Parameters that are also conveyed via system information (SIB1) but which are provided here to accelerate handover and to avoid that UEs need to read system information from SCells. See rach-ConfigCommon details in RACH page.

newUE-Identity : This RNTI value assigns the C-RNTI used in the target cell group during reconfiguration with sync. See TS 38.331 V19.3.0, clause 5.3.5.5.2.

Example :

Example 01 : Initial NR Addition.

   You can get the entire procedure of how to test NSA and full log from this tutorial of Amarisoft Tech-Academy

Reference

[1] 3GPP TS 38.331 V19.3.0 (2026-06), NR; Radio Resource Control (RRC) protocol specification, especially clauses 5.3.5, 6.2.2, and 6.3.2.

[2] 3GPP TS 38.321, NR; Medium Access Control (MAC) protocol specification.

[3] 3GPP TS 38.323, NR; Packet Data Convergence Protocol (PDCP) specification.