Telecom engineering reference for protocols, messages, call flows, troubleshooting, releases, and tools.
Menu
RRC5GgNB -> UE3GPP TS 38.331
5G NR - Counter Check
Counter Check is the NR RRC message the network uses to provide current PDCP COUNT MSB values for configured DRBs and ask the UE to compare them with its own COUNT state.
Message Fact Sheet
Protocol
rrc
Network
5g
Spec
3GPP TS 38.331
Spec Section
6.2.2
Direction
gNB -> UE
Message Type
Mobility / PDCP Count Verification
Full message name
5G NR - Counter Check
Protocol
RRC
Technology
5G
Direction
gNB -> UE
Interface
Uu
Signaling bearer / channel
SRB1 / DL-DCCH
Typical trigger
Used when the network wants the UE to compare current DRB COUNT values, commonly around mobility, bearer continuity validation, or PDCP state investigation.
Main purpose
Helps the network verify uplink and downlink PDCP COUNT alignment for DRBs, especially when trace analysis or mobility procedures require confidence that user-plane sequence state remains synchronized.
Counter Check is the NR RRC message the network uses to provide current PDCP COUNT MSB values for configured DRBs and ask the UE to compare them with its own COUNT state.
Helps the network verify uplink and downlink PDCP COUNT alignment for DRBs, especially when trace analysis or mobility procedures require confidence that user-plane sequence state remains synchronized.
Why this message matters
Counter Check is the 5G NR RRC message the network sends when it wants the UE to compare DRB PDCP COUNT state and report back whether the bearer sequence state matches.
Where this message appears in the call flow
Connected-Mode Handover
Call flow position: Appears when the network wants to validate or compare DRB PDCP COUNT state in the mobility path.
Typical state: UE is connected and DRBs already exist.
Preconditions:
AS security is active.
One or more DRBs are configured.
The network has a reason to compare PDCP COUNT MSB state.
Next likely message: CounterCheckResponse
Bearer Continuity Investigation
Call flow position: Used when engineers or network logic need confidence that PDCP state remains aligned across the UE and network.
Typical state: UE is connected and user-plane bearers are active.
Preconditions:
Relevant DRBs exist.
The network can provide current COUNT MSB values for the affected DRBs.
Next likely message: CounterCheckResponse or later bearer-related corrective action
Domain: Access-side radio control with user-plane integrity correlation
Signaling bearer: SRB1
Logical channel: DL-DCCH
Transport / encapsulation: Dedicated RRC signaling on SRB1 over DCCH in connected mode
Security context: Sent as protected connected-mode RRC signaling after AS security activation. It is typically interpreted together with PDCP state and bearer continuity context.
Message Structure Overview
Counter Check is structurally simple. The important payload is the per-DRB COUNT MSB list.
In practice, this is not a message about radio admission or user experience by itself. It is a state-verification message for bearer continuity and PDCP sequence alignment.
Engineers should interpret it together with PDCP COUNT handling from TS 38.323 and the surrounding mobility or bearer event.
The ASN.1 is compact. The engineering focus is the mapping between each DRB identity and the uplink and downlink COUNT MSB values that the UE must compare against its own PDCP state.
The key question is whether each listed DRB maps to a real active bearer in the current UE context.
The COUNT values shown here are MSB portions, not the full PDCP COUNT.
A useful trace workflow is Counter Check followed by CounterCheckResponse, then correlation with handover or user-plane continuity behavior.
Important Information Elements
IE
Required
Description
rrc-TransactionIdentifier
Yes
Transaction identifier used to correlate the request with later UE behavior.
drb-CountMSB-InfoList
Yes
List of DRBs and their COUNT MSB values that the network wants the UE to compare.
drb-Identity
Yes
Identifies which DRB each COUNT entry belongs to.
countMSB-Uplink
Yes
Indicates the 25 MSBs derived from uplink PDCP TX_NEXT - 1 for the DRB.
countMSB-Downlink
Yes
Indicates the 25 MSBs derived from downlink PDCP RX_NEXT - 1 for the DRB.
Detailed field explanation
rrc-TransactionIdentifier
Transaction identifier used to correlate the request with later UE behavior.
Presence: Required
In practice: In practice, compare this field with the original request and with any later release-dependent optional fields so you can see whether the network accepted the same service model the UE asked for.
drb-CountMSB-InfoList
List of DRBs and their COUNT MSB values that the network wants the UE to compare.
Presence: Required
In practice: In practice, compare this field with the original request and with any later release-dependent optional fields so you can see whether the network accepted the same service model the UE asked for.
drb-Identity
Identifies which DRB each COUNT entry belongs to.
Presence: Required
In practice: In practice, compare this field with the original request and with any later release-dependent optional fields so you can see whether the network accepted the same service model the UE asked for.
countMSB-Uplink
Indicates the 25 MSBs derived from uplink PDCP TX_NEXT - 1 for the DRB.
Presence: Required
In practice: In practice, compare this field with the original request and with any later release-dependent optional fields so you can see whether the network accepted the same service model the UE asked for.
countMSB-Downlink
Indicates the 25 MSBs derived from downlink PDCP RX_NEXT - 1 for the DRB.
Presence: Required
In practice: In practice, compare this field with the original request and with any later release-dependent optional fields so you can see whether the network accepted the same service model the UE asked for.
What to check in logs and traces
Confirm the message is carried on SRB1 / DL-DCCH in connected mode.
Check which DRBs are listed in drb-CountMSB-InfoList.
Verify that each DRB identity matches the active bearer configuration in the current UE context.
Correlate countMSB-Uplink and countMSB-Downlink with PDCP state handling from the surrounding bearer or mobility event.
Check whether CounterCheckResponse follows and whether the returned full COUNT values make sense.
If user-plane continuity fails, compare the involved DRBs with the DRBs listed here.
Common Issues and Troubleshooting
Counter Check is sent, but CounterCheckResponse never appears.
Likely cause: The UE may not complete the comparison step, the trace may be incomplete, or a broader mobility / bearer issue may interrupt the procedure.
What to inspect: Check SRB1 continuity, RRC transaction flow, and whether the UE stayed connected long enough to respond.
Next step: Correlate with mobility execution, radio failure, or bearer release events.
Counter Check lists unexpected DRBs.
Likely cause: The network may be validating a bearer set different from what the engineer expects, or the bearer configuration view may be stale.
What to inspect: Compare the DRB identities with the current radio bearer configuration and recent reconfiguration history.
Next step: Validate the bearer map before assuming the COUNT values are wrong.
User-plane continuity still breaks even though Counter Check was exchanged.
Likely cause: COUNT comparison may have completed, but the underlying issue may be elsewhere in PDCP, bearer setup, handover preparation, or transport continuity.
What to inspect: Check CounterCheckResponse, PDCP/RLC continuity, DRB mapping, and the timing of the mobility event.
Next step: Treat Counter Check as one verification point, not as proof that the full user-plane path is healthy.
LTE / 5G / Variant Comparison
Counter Check versus CounterCheckResponse
Counter Check is the network request carrying DRB COUNT MSB values. CounterCheckResponse is the UE reply with the compared COUNT information.
Counter Check versus RRC Reconfiguration
RRC Reconfiguration changes bearer or mobility configuration. Counter Check verifies PDCP COUNT alignment for existing DRBs.
FAQ
What is Counter Check in 5G NR?
Counter Check is the NR RRC message the network uses to tell the UE the current DRB COUNT MSB values and ask it to compare them with its own PDCP COUNT state.
Who sends Counter Check?
The gNB or network side sends Counter Check to the UE.
What comes after Counter Check?
The normal follow-up is CounterCheckResponse from the UE.
Is Counter Check used during handover?
It can appear in mobility-sensitive situations where bearer continuity and PDCP COUNT alignment matter.
What is the most important IE in Counter Check?
drb-CountMSB-InfoList is the most important IE because it carries the DRB identities and the uplink and downlink COUNT MSB values to compare.
Does Counter Check carry reject causes?
No. Problems are inferred from missing response, unexpected COUNT comparison results, or later bearer continuity issues.
Decode this message with the 3GPP Decoder, inspect the related message database, or open the matching call flow to see where this signaling step fits in the full procedure.