srsRAN CU/DU and srsUE Control Plane Log Analysis Part 2

Part 1 Recap

The following flow chart outlines the procedures analyzed in the previous post.

  • MIB
  • SIB1
  • Random Access (Preamble, RAR, RRC Setup Request, Contention Resolution, and RRC Setup)
  • HARQ ACK attempt

Re-Transmission (Contention Resolution)

2025-01-09T19:06:09.170165 [SCHED   ][   596.4] Slot decisions pci=99 t=66us (1 PDSCH, 0 PUSCHs):
        - DL PDCCH: rnti=0x4601 type=tc-rnti cs_id=0 ss_id=1 format=1_0 cce=0 al=4  dci: h_id=0 ndi=1 rv=0 mcs=0 res_ind=0
        - UE PDSCH: ue=0 c-rnti=0x4601 h_id=0 rb=[0..2) symb=[1..14) tbs=7 mcs=0 rv=0 nrtx=1 k1=4 olla=0.00
2025-01-09T19:06:09.170183 [FAPI    ][   596.4] DL_TTI.request slot=596.4, is_last_message_in_slot=false
        - PDCCH bwp=2:96 symb=0:1 nof_dcis=1
        - PDSCH rnti=0x4601 bwp=2:96 symb=1:13 CW: tbs=7 mod=2 rv_idx=0
2025-01-09T19:06:09.170224 [FAPI    ][   596.4] Tx_Data.request slot=596.4 nof_pdus=1
2025-01-09T19:06:09.170301 [PHY     ][   596.4] PDCCH: rnti=0x4601 ss_id=1 format=1_0 cce=0 al=4 t=66.3us
2025-01-09T19:06:09.170332 [PHY     ][   596.4] PDSCH: rnti=0x4601 h_id=0 k1=4 prb=[0, 2) symb=[1, 14) mod=QPSK rv=0 tbs=7

Similar to what occurred in the previous post when the gNB sent Contention Resolution.

  • gNB now scheduled PDSCH with CR with the nrtx=1 (retransmission counter)
2025-01-09T19:06:09.175605 [UE-PHY_LIB][    0]  Found DCI in L=2,ncce=0
2025-01-09T19:06:09.175664 [UE-PHY_LIB][    0]  PDCCH Rx: K=65; E=432; M=216; n=9;
2025-01-09T19:06:09.175686 [UE-PHY1-NR][ 596.4] PDCCH: cc=0, c-rnti=0x4601 dci=1_0 ss=common0 L=2 cce=0 f_alloc=0x60 t_alloc=0x0 vrb_to_prb_map=0 mcs=0 ndi=1 rv=0 harq_id=0 dai=0 pucch_tpc=1 pucch_res=0 harq_feedback=3 
2025-01-09T19:06:09.175708 [UE-PHY_LIB][    0]  LDPC CB Segmentation: TBS: 56, C=1, K=120, F=120, Bp=72
2025-01-09T19:06:09.175723 [UE-PHY1-NR][ 596.4] PDCCH: c-rnti=0x4601 dci=0_0 ss=common3 L=2 cce=0 EPRE=+9.34, RSRP=+8.59, corr=0.843 nof_bits=41 crc=OK
2025-01-09T19:06:09.175726 [UE-MAC-NR ][ 595.7] new_grant_dl(): cc_idx=0, tti=5964, rnti=17921, pid=0, tbs=7, ndi=1, rv=0
2025-01-09T19:06:09.175871 [UE-MAC-NR ][ 595.7] cc_idx=0, set number of HARQ processes for DL to 16
2025-01-09T19:06:09.175881 [UE-MAC-NR ][ 595.7] DL 0: Received duplicate. Discarding and retransmitting ACK (n_retx=1)
2025-01-09T19:06:09.175883 [UE-PHY1-NR][ 596.4] Decoding not required. Skipping PDSCH. ack_tti_tx=5968

The UE receives Contention Resolution after being allocated resourced from PDCCH DCI 1_0.

  • UE MAC layer receives duplicate transmission and discards, MAC is not required to re-decode the message.
    • Triggers UE HARQ ACK retransmission at TTI 596.8 (ack_tti_tx=5968)

UE Process RRC Setup

The UE starts processing the RRC Setup message after it receives the Contention Resolution re-transmission

025-01-09T19:06:09.175898 [UE-RRC-NR ] Applying SRB Add/Mod to SRB1
2025-01-09T19:06:09.175908 [UE-PDCP-NR] SRB1 PDCP-NR entity configured. SN_LEN=12, Discard timer -1, Re-ordering timer 500, RLC=AM, RAT=NR
2025-01-09T19:06:09.175909 [UE-PDCP-NR] Add SRB1 (lcid=1, sn_len=12bits)
2025-01-09T19:06:09.175910 [UE-RRC-NR ] No Security Config Present
2025-01-09T19:06:09.175916 [UE-PHY-SA ][ 596.5] Setting new PHY configuration ARFCN=368500, PCI=99
2025-01-09T19:06:09.175919 [UE-PHY-SA ][ 596.5] PHY:   Set TA offset: n_ta_offset: 400, ta_usec: 13.0

UE RRC layer applies the SRB1 configuration provided in the RRC Setup message radioBearerConfig > srb-ToAddModList > SRB-ToAddMod > srb-Identity: 1

  • UE PDCP layer entity is configured with SRB1 and observed that there is currently no security configuration. That will be provided layer in the Secure Mode procedures.

Expand the block below to view the contents of the RRC Setup message

RRC Setup Message

NR Radio Resource Control (RRC) protocol
DL-CCCH-Message
message: c1 (0)
c1: rrcSetup (1)
rrcSetup
rrc-TransactionIdentifier: 0
criticalExtensions: rrcSetup (0)
rrcSetup
radioBearerConfig
srb-ToAddModList: 1 item
Item 0
SRB-ToAddMod
srb-Identity: 1
masterCellGroup […]:
CellGroupConfig
cellGroupId: 0
rlc-BearerToAddModList: 1 item
Item 0
RLC-BearerConfig
logicalChannelIdentity: 1
servedRadioBearer: srb-Identity (0)
srb-Identity: 1
rlc-Config: am (0)
am
ul-AM-RLC
sn-FieldLength: size12 (0)
t-PollRetransmit: ms45 (8)
pollPDU: infinity (23)
pollByte: infinity (43)
maxRetxThreshold: t8 (5)
dl-AM-RLC
sn-FieldLength: size12 (0)
t-Reassembly: ms35 (7)
t-StatusProhibit: ms0 (0)
mac-LogicalChannelConfig
ul-SpecificParameters
priority: 1
prioritisedBitRate: infinity (15)
bucketSizeDuration: ms5 (0)
logicalChannelGroup: 0
schedulingRequestID: 0
…. .0.. logicalChannelSR-Mask: False
…. ..0. logicalChannelSR-DelayTimerApplied: False
mac-CellGroupConfig
schedulingRequestConfig
schedulingRequestToAddModList: 1 item
Item 0
SchedulingRequestToAddMod
schedulingRequestId: 0
sr-TransMax: n64 (4)
bsr-Config
periodicBSR-Timer: sf10 (2)
retxBSR-Timer: sf80 (3)
tag-Config
tag-ToAddModList: 1 item
Item 0
TAG
tag-Id: 0
timeAlignmentTimer: infinity (7)
phr-Config: setup (1)
setup
phr-PeriodicTimer: sf10 (0)
phr-ProhibitTimer: sf10 (1)
phr-Tx-PowerFactorChange: dB1 (0)
…. …0 multiplePHR: False
0… …. dummy: False
.0.. …. phr-Type2OtherCell: False
phr-ModeOtherCG: real (0)
…0 …. skipUplinkTxDynamic: False
physicalCellGroupConfig
pdsch-HARQ-ACK-Codebook: dynamic (1)
spCellConfig
spCellConfigDedicated
initialDownlinkBWP
pdcch-Config: setup (1)
setup
controlResourceSetToAddModList: 1 item
Item 0
ControlResourceSet
controlResourceSetId: 1
frequencyDomainResources: ffff80000000 [bit length 45, 3 LSB pad bits, 1111 1111 1111 1111 1000 0000 0000 0000 0000 0000 0000 0… decimal value 35184103653376]
duration: 1
cce-REG-MappingType: nonInterleaved (1)
nonInterleaved: NULL
precoderGranularity: sameAsREG-bundle (0)
searchSpacesToAddModList: 1 item
Item 0
SearchSpace
searchSpaceId: 2
controlResourceSetId: 1
monitoringSlotPeriodicityAndOffset: sl1 (0)
sl1: NULL
monitoringSymbolsWithinSlot: 8000 [bit length 14, 2 LSB pad bits, 1000 0000 0000 00.. decimal value 8192]
nrofCandidates
aggregationLevel1: n0 (0)
aggregationLevel2: n4 (4)
aggregationLevel4: n4 (4)
aggregationLevel8: n0 (0)
aggregationLevel16: n0 (0)
searchSpaceType: common (0)
common
dci-Format0-0-AndFormat1-0
pdsch-Config: setup (1)
setup
dmrs-DownlinkForPDSCH-MappingTypeA: setup (1)
setup
tci-StatesToAddModList: 1 item
Item 0
TCI-State
tci-StateId: 0
qcl-Type1
referenceSignal: ssb (1)
ssb: 0
qcl-Type: typeD (3)
resourceAllocation: resourceAllocationType1 (1)
rbg-Size: config1 (0)
prb-BundlingType: staticBundling (0)
staticBundling
bundleSize: wideband (1)
zp-CSI-RS-ResourceToAddModList: 1 item
Item 0
ZP-CSI-RS-Resource
zp-CSI-RS-ResourceId: 0
resourceMapping
frequencyDomainAllocation: row4 (2)
row4: 80 [bit length 3, 5 LSB pad bits, 100. …. decimal value 4]
nrofPorts: p4 (2)
firstOFDMSymbolInTimeDomain: 8
cdm-Type: fd-CDM2 (1)
density: one (1)
one: NULL
freqBand
startingRB: 0
nrofRBs: 108
periodicityAndOffset: slots20 (5)
slots20: 2
p-ZP-CSI-RS-ResourceSet: setup (1)
setup
zp-CSI-RS-ResourceSetId: 0
zp-CSI-RS-ResourceIdList: 1 item
Item 0
ZP-CSI-RS-ResourceId: 0
uplinkConfig
initialUplinkBWP
pucch-Config: setup (1)
setup
resourceSetToAddModList: 2 items
Item 0
PUCCH-ResourceSet
pucch-ResourceSetId: 0
resourceList: 8 items
Item 0
PUCCH-ResourceId: 0
Item 1
PUCCH-ResourceId: 1
Item 2
PUCCH-ResourceId: 2
Item 3
PUCCH-ResourceId: 3
Item 4
PUCCH-ResourceId: 4
Item 5
PUCCH-ResourceId: 5
Item 6
PUCCH-ResourceId: 6
Item 7
PUCCH-ResourceId: 7
Item 1
PUCCH-ResourceSet
pucch-ResourceSetId: 1
resourceList: 8 items
Item 0
PUCCH-ResourceId: 9
Item 1
PUCCH-ResourceId: 10
Item 2
PUCCH-ResourceId: 11
Item 3
PUCCH-ResourceId: 12
Item 4
PUCCH-ResourceId: 13
Item 5
PUCCH-ResourceId: 14
Item 6
PUCCH-ResourceId: 15
Item 7
PUCCH-ResourceId: 16
resourceToAddModList: 18 items
Item 0
PUCCH-Resource
pucch-ResourceId: 0
startingPRB: 0
format: format1 (1)
format1
initialCyclicShift: 0
nrofSymbols: 14
startingSymbolIndex: 0
timeDomainOCC: 0
Item 1
PUCCH-Resource
pucch-ResourceId: 1
startingPRB: 0
format: format1 (1)
format1
initialCyclicShift: 6
nrofSymbols: 14
startingSymbolIndex: 0
timeDomainOCC: 0
Item 2
PUCCH-Resource
pucch-ResourceId: 2
startingPRB: 105
format: format1 (1)
format1
initialCyclicShift: 0
nrofSymbols: 14
startingSymbolIndex: 0
timeDomainOCC: 0
Item 3
PUCCH-Resource
pucch-ResourceId: 3
startingPRB: 105
format: format1 (1)
format1
initialCyclicShift: 6
nrofSymbols: 14
startingSymbolIndex: 0
timeDomainOCC: 0
Item 4
PUCCH-Resource
pucch-ResourceId: 4
startingPRB: 1
format: format1 (1)
format1
initialCyclicShift: 0
nrofSymbols: 14
startingSymbolIndex: 0
timeDomainOCC: 0
Item 5
PUCCH-Resource
pucch-ResourceId: 5
startingPRB: 1
format: format1 (1)
format1
initialCyclicShift: 6
nrofSymbols: 14
startingSymbolIndex: 0
timeDomainOCC: 0
Item 6
PUCCH-Resource
pucch-ResourceId: 6
startingPRB: 104
format: format1 (1)
format1
initialCyclicShift: 0
nrofSymbols: 14
startingSymbolIndex: 0
timeDomainOCC: 0
Item 7
PUCCH-Resource
pucch-ResourceId: 7
startingPRB: 104
format: format1 (1)
format1
initialCyclicShift: 6
nrofSymbols: 14
startingSymbolIndex: 0
timeDomainOCC: 0
Item 8
PUCCH-Resource
pucch-ResourceId: 8
startingPRB: 4
format: format1 (1)
format1
initialCyclicShift: 0
nrofSymbols: 14
startingSymbolIndex: 0
timeDomainOCC: 0
Item 9
PUCCH-Resource
pucch-ResourceId: 9
startingPRB: 6
format: format2 (2)
format2
nrofPRBs: 1
nrofSymbols: 2
startingSymbolIndex: 0
Item 10
PUCCH-Resource
pucch-ResourceId: 10
startingPRB: 6
format: format2 (2)
format2
nrofPRBs: 1
nrofSymbols: 2
startingSymbolIndex: 2
Item 11
PUCCH-Resource
pucch-ResourceId: 11
startingPRB: 6
format: format2 (2)
format2
nrofPRBs: 1
nrofSymbols: 2
startingSymbolIndex: 4
Item 12
PUCCH-Resource
pucch-ResourceId: 12
startingPRB: 6
format: format2 (2)
format2
nrofPRBs: 1
nrofSymbols: 2
startingSymbolIndex: 6
Item 13
PUCCH-Resource
pucch-ResourceId: 13
startingPRB: 6
format: format2 (2)
format2
nrofPRBs: 1
nrofSymbols: 2
startingSymbolIndex: 8
Item 14
PUCCH-Resource
pucch-ResourceId: 14
startingPRB: 6
format: format2 (2)
format2
nrofPRBs: 1
nrofSymbols: 2
startingSymbolIndex: 10
Item 15
PUCCH-Resource
pucch-ResourceId: 15
startingPRB: 6
format: format2 (2)
format2
nrofPRBs: 1
nrofSymbols: 2
startingSymbolIndex: 12
Item 16
PUCCH-Resource
pucch-ResourceId: 16
startingPRB: 99
format: format2 (2)
format2
nrofPRBs: 1
nrofSymbols: 2
startingSymbolIndex: 0
Item 17
PUCCH-Resource
pucch-ResourceId: 17
startingPRB: 7
format: format2 (2)
format2
nrofPRBs: 1
nrofSymbols: 2
startingSymbolIndex: 4
format1: setup (1)
setup
format2: setup (1)
setup
maxCodeRate: zeroDot35 (3)
simultaneousHARQ-ACK-CSI: true (0)
schedulingRequestResourceToAddModList: 1 item
Item 0
SchedulingRequestResourceConfig
schedulingRequestResourceId: 1
schedulingRequestID: 0
periodicityAndOffset: sl20 (9)
sl20: 0
resource: 8
dl-DataToUL-ACK: 1 item
Item 0
dl-DataToUL-ACK item: 4
pusch-Config: setup (1)
setup
txConfig: codebook (0)
dmrs-UplinkForPUSCH-MappingTypeA: setup (1)
setup
transformPrecodingDisabled
pusch-PowerControl
msg3-Alpha: alpha1 (7)
p0-NominalWithoutGrant: -76 dBm
p0-AlphaSets: 1 item
Item 0
P0-PUSCH-AlphaSet
p0-PUSCH-AlphaSetId: 0
p0: 0 dB
alpha: alpha1 (7)
pathlossReferenceRSToAddModList: 1 item
Item 0
PUSCH-PathlossReferenceRS
pusch-PathlossReferenceRS-Id: 0
referenceSignal: ssb-Index (0)
ssb-Index: 0
sri-PUSCH-MappingToAddModList: 1 item
Item 0
SRI-PUSCH-PowerControl
sri-PUSCH-PowerControlId: 0
sri-PUSCH-PathlossReferenceRS-Id: 0
sri-P0-PUSCH-AlphaSetId: 0
sri-PUSCH-ClosedLoopIndex: i0 (0)
resourceAllocation: resourceAllocationType1 (1)
transformPrecoder: disabled (1)
codebookSubset: nonCoherent (2)
maxRank: 1
uci-OnPUSCH: setup (1)
setup
betaOffsets: semiStatic (1)
semiStatic
betaOffsetACK-Index1: 9
betaOffsetACK-Index2: 9
betaOffsetACK-Index3: 9
betaOffsetCSI-Part1-Index1: 9
betaOffsetCSI-Part1-Index2: 9
betaOffsetCSI-Part2-Index1: 9
betaOffsetCSI-Part2-Index2: 9
scaling: f1 (3)
srs-Config: setup (1)
setup
srs-ResourceSetToAddModList: 1 item
Item 0
SRS-ResourceSet
srs-ResourceSetId: 0
srs-ResourceIdList: 1 item
Item 0
SRS-ResourceId: 0
resourceType: aperiodic (0)
aperiodic
aperiodicSRS-ResourceTrigger: 1
slotOffset: 7
usage: codebook (1)
p0: -84 dBm
pathlossReferenceRS: ssb-Index (0)
ssb-Index: 0
srs-ResourceToAddModList: 1 item
Item 0
SRS-Resource
srs-ResourceId: 0
nrofSRS-Ports: port1 (0)
transmissionComb: n2 (0)
n2
combOffset-n2: 0
cyclicShift-n2: 0
resourceMapping
startPosition: 0
nrofSymbols: n1 (0)
repetitionFactor: n1 (0)
freqDomainPosition: 0
freqDomainShift: 0
freqHopping
c-SRS: 0
b-SRS: 0
b-hop: 0
groupOrSequenceHopping: neither (0)
resourceType: aperiodic (0)
aperiodic
sequenceId: 99
pdsch-ServingCellConfig: setup (1)
setup
nrofHARQ-ProcessesForPDSCH: n16 (5)
csi-MeasConfig: setup (1)
setup
nzp-CSI-RS-ResourceToAddModList: 5 items
Item 0
NZP-CSI-RS-Resource
nzp-CSI-RS-ResourceId: 0
resourceMapping
frequencyDomainAllocation: row2 (1)
row2: 8000 [bit length 12, 4 LSB pad bits, 1000 0000 0000 …. decimal value 2048]
nrofPorts: p1 (0)
firstOFDMSymbolInTimeDomain: 4
cdm-Type: noCDM (0)
density: one (1)
one: NULL
freqBand
startingRB: 0
nrofRBs: 108
powerControlOffset: 0 dB
powerControlOffsetSS: db0 (1)
scramblingID: 99
periodicityAndOffset: slots20 (5)
slots20: 2
qcl-InfoPeriodicCSI-RS: 0
Item 1
NZP-CSI-RS-Resource
nzp-CSI-RS-ResourceId: 1
resourceMapping
frequencyDomainAllocation: row1 (0)
row1: 10 [bit length 4, 4 LSB pad bits, 0001 …. decimal value 1]
nrofPorts: p1 (0)
firstOFDMSymbolInTimeDomain: 4
cdm-Type: noCDM (0)
density: three (2)
three: NULL
freqBand
startingRB: 0
nrofRBs: 108
powerControlOffset: 0 dB
powerControlOffsetSS: db0 (1)
scramblingID: 99
periodicityAndOffset: slots20 (5)
slots20: 12
qcl-InfoPeriodicCSI-RS: 0
Item 2
NZP-CSI-RS-Resource
nzp-CSI-RS-ResourceId: 2
resourceMapping
frequencyDomainAllocation: row1 (0)
row1: 10 [bit length 4, 4 LSB pad bits, 0001 …. decimal value 1]
nrofPorts: p1 (0)
firstOFDMSymbolInTimeDomain: 8
cdm-Type: noCDM (0)
density: three (2)
three: NULL
freqBand
startingRB: 0
nrofRBs: 108
powerControlOffset: 0 dB
powerControlOffsetSS: db0 (1)
scramblingID: 99
periodicityAndOffset: slots20 (5)
slots20: 12
qcl-InfoPeriodicCSI-RS: 0
Item 3
NZP-CSI-RS-Resource
nzp-CSI-RS-ResourceId: 3
resourceMapping
frequencyDomainAllocation: row1 (0)
row1: 10 [bit length 4, 4 LSB pad bits, 0001 …. decimal value 1]
nrofPorts: p1 (0)
firstOFDMSymbolInTimeDomain: 4
cdm-Type: noCDM (0)
density: three (2)
three: NULL
freqBand
startingRB: 0
nrofRBs: 108
powerControlOffset: 0 dB
powerControlOffsetSS: db0 (1)
scramblingID: 99
periodicityAndOffset: slots20 (5)
slots20: 13
qcl-InfoPeriodicCSI-RS: 0
Item 4
NZP-CSI-RS-Resource
nzp-CSI-RS-ResourceId: 4
resourceMapping
frequencyDomainAllocation: row1 (0)
row1: 10 [bit length 4, 4 LSB pad bits, 0001 …. decimal value 1]
nrofPorts: p1 (0)
firstOFDMSymbolInTimeDomain: 8
cdm-Type: noCDM (0)
density: three (2)
three: NULL
freqBand
startingRB: 0
nrofRBs: 108
powerControlOffset: 0 dB
powerControlOffsetSS: db0 (1)
scramblingID: 99
periodicityAndOffset: slots20 (5)
slots20: 13
qcl-InfoPeriodicCSI-RS: 0
nzp-CSI-RS-ResourceSetToAddModList: 2 items
Item 0
NZP-CSI-RS-ResourceSet
nzp-CSI-ResourceSetId: 0
nzp-CSI-RS-Resources: 1 item
Item 0
NZP-CSI-RS-ResourceId: 0
Item 1
NZP-CSI-RS-ResourceSet
nzp-CSI-ResourceSetId: 1
nzp-CSI-RS-Resources: 4 items
Item 0
NZP-CSI-RS-ResourceId: 1
Item 1
NZP-CSI-RS-ResourceId: 2
Item 2
NZP-CSI-RS-ResourceId: 3
Item 3
NZP-CSI-RS-ResourceId: 4
trs-Info: true (0)
csi-IM-ResourceToAddModList: 1 item
Item 0
CSI-IM-Resource
csi-IM-ResourceId: 0
csi-IM-ResourceElementPattern: pattern1 (1)
pattern1
subcarrierLocation-p1: s8 (2)
symbolLocation-p1: 8
freqBand
startingRB: 0
nrofRBs: 108
periodicityAndOffset: slots20 (5)
slots20: 2
csi-IM-ResourceSetToAddModList: 1 item
Item 0
CSI-IM-ResourceSet
csi-IM-ResourceSetId: 0
csi-IM-Resources: 1 item
Item 0
CSI-IM-ResourceId: 0
csi-ResourceConfigToAddModList: 3 items
Item 0
CSI-ResourceConfig
csi-ResourceConfigId: 0
csi-RS-ResourceSetList: nzp-CSI-RS-SSB (0)
nzp-CSI-RS-SSB
nzp-CSI-RS-ResourceSetList: 1 item
Item 0
NZP-CSI-RS-ResourceSetId: 0
bwp-Id: 0
resourceType: periodic (2)
Item 1
CSI-ResourceConfig
csi-ResourceConfigId: 1
csi-RS-ResourceSetList: csi-IM-ResourceSetList (1)
csi-IM-ResourceSetList: 1 item
Item 0
CSI-IM-ResourceSetId: 0
bwp-Id: 0
resourceType: periodic (2)
Item 2
CSI-ResourceConfig
csi-ResourceConfigId: 2
csi-RS-ResourceSetList: nzp-CSI-RS-SSB (0)
nzp-CSI-RS-SSB
nzp-CSI-RS-ResourceSetList: 1 item
Item 0
NZP-CSI-RS-ResourceSetId: 1
bwp-Id: 0
resourceType: periodic (2)
csi-ReportConfigToAddModList: 1 item
Item 0
CSI-ReportConfig
reportConfigId: 0
resourcesForChannelMeasurement: 0
csi-IM-ResourcesForInterference: 1
reportConfigType: periodic (0)
periodic
reportSlotConfig: slots20 (5)
slots20: 6
pucch-CSI-ResourceList: 1 item
Item 0
PUCCH-CSI-Resource
uplinkBandwidthPartId: 0
pucch-Resource: 17
reportQuantity: cri-RI-PMI-CQI (1)
cri-RI-PMI-CQI: NULL
reportFreqConfiguration
cqi-FormatIndicator: widebandCQI (0)
pmi-FormatIndicator: widebandPMI (0)
timeRestrictionForChannelMeasurements: notConfigured (1)
timeRestrictionForInterferenceMeasurements: notConfigured (1)
groupBasedBeamReporting: disabled (1)
disabled
cqi-Table: table1 (0)
subbandSize: value1 (0)
non-PMI-PortIndication: 1 item
Item 0
PortIndexFor8Ranks: portIndex1 (3)
portIndex1: NULL
tag-Id: 0

Re-Transmission (RRC Setup)

2025-01-09T19:06:09.171502 [SCHED   ][   596.5] Slot decisions pci=99 t=66us (1 PDSCH, 0 PUSCHs):
         - DL PDCCH: rnti=0x4601 type=c-rnti cs_id=0 ss_id=1 format=1_0 cce=0 al=4  dci: h_id=1 ndi=1 rv=0 mcs=0 res_ind=0
         - UE PDSCH: ue=0 c-rnti=0x4601 h_id=1 rb=[0..82) symb=[1..14) tbs=301 mcs=0 rv=0 nrtx=1 k1=4 olla=0.00
2025-01-09T19:06:09.171521 [FAPI    ][   596.5] DL_TTI.request slot=596.5, is_last_message_in_slot=false
         - PDCCH bwp=2:96 symb=0:1 nof_dcis=1
         - PDSCH rnti=0x4601 bwp=2:96 symb=1:13 CW: tbs=301 mod=2 rv_idx=0
2025-01-09T19:06:09.171618 [PHY     ][   596.5] PDCCH: rnti=0x4601 ss_id=1 format=1_0 cce=0 al=4 t=51.3us
2025-01-09T19:06:09.171740 [PHY     ][   596.5] PDSCH: rnti=0x4601 h_id=1 k1=4 prb=[0, 82) symb=[1, 14) mod=QPSK rv=0 tbs=301

Similar to what occurred in the previous post when the gNB sent RRC Setup.

gNB now scheduled PDSCH with RRC Setup with the nrtx=1 (retransmission counter)

2025-01-09T19:06:09.176573 [UE-PHY_LIB][    0]  Found DCI in L=2,ncce=0
2025-01-09T19:06:09.176631 [UE-PHY_LIB][    0]  PDCCH Rx: K=65; E=432; M=216; n=9;
2025-01-09T19:06:09.176653 [UE-PHY2-NR][ 596.5] PDCCH: cc=0, c-rnti=0x4601 dci=1_0 ss=common0 L=2 cce=0 f_alloc=0x5ff t_alloc=0x0 vrb_to_prb_map=0 mcs=0 ndi=1 rv=0 harq_id=1 dai=0 pucch_tpc=1 pucch_res=0 harq_feedback=3 
2025-01-09T19:06:09.176692 [UE-PHY_LIB][    0]  LDPC CB Segmentation: TBS: 2408, C=1, K=2560, F=2560, Bp=2424
2025-01-09T19:06:09.176710 [UE-PHY2-NR][ 596.5] PDCCH: c-rnti=0x4601 dci=0_0 ss=common3 L=2 cce=0 EPRE=+9.47, RSRP=+8.54, corr=0.806 nof_bits=41 crc=OK
2025-01-09T19:06:09.176713 [UE-MAC-NR ][ 596.5] new_grant_dl(): cc_idx=0, tti=5965, rnti=17921, pid=1, tbs=301, ndi=1, rv=0
2025-01-09T19:06:09.176714 [UE-MAC-NR ][ 596.5] DL 1: Received duplicate. Discarding and retransmitting ACK (n_retx=1)
2025-01-09T19:06:09.176715 [UE-PHY2-NR][ 596.5] Decoding not required. Skipping PDSCH. ack_tti_tx=5969

The UE receives RRC Setup after being allocated resourced from PDCCH DCI 1_0.

Triggers UE HARQ ACK retransmission at TTI 596.9 (ack_tti_tx=5969)

UE MAC layer receives duplicate transmission and discards, MAC is not required to re-decode the message.

Channel State Information Attempt

2025-01-09T19:06:09.172132 [SCHED   ][   596.6] Slot decisions pci=99 t=15us (0 PDSCHs, 0 PUSCHs):
         - PUCCH: c-rnti=0x4601 format=2 prb=[7..8) symb=[4..6) uci: harq_bits=0 sr=0 csi-1_bits=4
2025-01-09T19:06:09.172153 [FAPI    ][   596.6] UL_TTI.request slot=596.6
         - PUCCH rnti=0x4601 bwp=0:106 format=2 prb=7:1 prb2=0 symb=4:2 harq_bit_len=0 sr_bit_len=0 csi1_bit_len=4

The gNB schedules a CSI report from the UE on the PUCCH using PUCCH Format 2.

2025-01-09T19:06:09.176714 [PHY     ][   596.6] PUCCH: rnti=0x4601 format=2 prb=[7, 8) prb2=na symb=[4, 6) csi1=2222
2025-01-09T19:06:09.176730 [FAPI    ][   597.0] UCI.indication slot=596.
         - UCI PUCCH format 2/3/4 format=2 rnti=17921 sinr=-2.3 ta_ns=1270 CSI1: detection=3 bit_len=4

The gNB attempts to detect the PUCCH Format 2 at the scheduled TTI, though the UE never sent the transmission.

  • Observe the low SINR measurement, indicating the the gNB likely did not have any UE transmission to receive.

Re-Transmission (HARQ)

## CR HARQ ACK
2025-01-09T19:06:09.174424 [SCHED   ][   596.8] Slot decisions pci=99 t=22us (0 PDSCHs, 0 PUSCHs):
         - PUCCH: c-rnti=0x4601 format=1 prb=[0..1) symb=[0..14) cs=0 occ=0 uci: harq_bits=1 sr=0
         - PUCCH: c-rnti=0x4601 format=1 prb=[0..1) second_prbs=[105..106) symb=[0..14) cs=0 occ=0 uci: harq_bits=1 sr=0
2025-01-09T19:06:09.174475 [FAPI    ][   596.8] UL_TTI.request slot=596.8
         - PUCCH rnti=0x4601 bwp=0:106 format=1 prb=0:1 prb2=0 symb=0:14 harq_bit_len=1 sr_bit_len=0
         - PUCCH rnti=0x4601 bwp=0:106 format=1 prb=0:1 prb2=105 symb=0:14 harq_bit_len=1 sr_bit_len=0

## RRC SETUP HARQ ACK
2025-01-09T19:06:09.175089 [SCHED   ][   596.9] Slot decisions pci=99 t=17us (0 PDSCHs, 0 PUSCHs):
         - PUCCH: c-rnti=0x4601 format=1 prb=[0..1) symb=[0..14) cs=0 occ=0 uci: harq_bits=1 sr=0
         - PUCCH: c-rnti=0x4601 format=1 prb=[0..1) second_prbs=[105..106) symb=[0..14) cs=0 occ=0 uci: harq_bits=1 sr=0
2025-01-09T19:06:09.175129 [FAPI    ][   596.9] UL_TTI.request slot=596.9
         - PUCCH rnti=0x4601 bwp=0:106 format=1 prb=0:1 prb2=0 symb=0:14 harq_bit_len=1 sr_bit_len=0
         - PUCCH rnti=0x4601 bwp=0:106 format=1 prb=0:1 prb2=105 symb=0:14 harq_bit_len=1 sr_bit_len=0

The gNB schedules the PUCCH HARQ ACK for Contention Resolution and RRC Setup. FAPI requests UL TTIs

  • Contention Resolution HARQ ACK TTI = 596.8 (UL_TTI.request slot=596.8)
  • RRC Setup HARQ ACK TTI = 596.9 (UL_TTI.request slot=596.9)
2025-01-09T19:06:09.175891 [UE-PHY1-NR][ 596.4] use_pusch=n nof_cc=1
  CC 0: M=1
    m 0: k1=4 dai=0 ack=1
2025-01-09T19:06:09.175943 [UE-PHY_LIB][    0]  [UE-PUCCH Format 1 Data TX] d=-0.707-0.707
2025-01-09T19:06:09.176229 [UE-PHY1-NR][ 596.4] PUCCH: cc=0, f=1 prb=0:1 symb=0:14 cs=0 occ=0 rnti=0x4601 ack=1 , tti_tx=5968
2025-01-09T19:06:09.176722 [UE-PHY2-NR][ 596.5] use_pusch=n nof_cc=
  CC 0: M=1
    m 0: k1=4 dai=0 ack=1
2025-01-09T19:06:09.176772 [UE-PHY_LIB][    0]  [UE-PUCCH Format 1 Data TX] d=-0.707-0.707
2025-01-09T19:06:09.177019 [UE-PHY2-NR][ 596.5] PUCCH: cc=0, f=1 prb=0:1 symb=0:14 cs=0 occ=0 rnti=0x4601 ack=1 , tti_tx=5969

The UE transmits two PUCCH occasions

  • Format 1 (f=1 )
  • ack=1
  • tti_tx=5968 for Contention Resolution HARQ ACK
  • tti_tx=5969 for RRC Setup HARQ ACK
2025-01-09T19:06:09.179160 [PHY     ][   596.8] PUCCH: rnti=0x4601format=1 prb1=0 prb2=na symb=[0, 14) cs=0 occ=0 ack=1
2025-01-09T19:06:09.179170 [FAPI    ][   597.2] UCI.indication slot=596.8
         - UCI PUCCH format 0/1 format=1 rnti=17921 sinr=26.1 HARQ: confidence=255 harq_ack=ack
2025-01-09T19:06:09.179213 [PHY     ][   596.8] PUCCH: rnti=0x4601 format=1 prb1=0 prb2=105 symb=[0, 14) cs=0 occ=0 ack=2
2025-01-09T19:06:09.179240 [FAPI    ][   597.2] UCI.indication slot=596.8
         - UCI PUCCH format 0/1 format=1 rnti=17921 sinr=26.1 HARQ: confidence=255 harq_ack=dtx
2025-01-09T19:06:09.179324 [SCHED   ][   597.3] Processed slot events pci=99:
         - HARQ-ACK: ue=0 rnti=0x4601 pci=99 slot_rx=596.8 h_id=0 ack=1 tbs=7
         - HARQ-ACK: ue=0 rnti=0x4601 pci=99 slot_rx=596.8 h_id=0 ack=2

2025-01-09T19:06:09.180217 [PHY     ][   596.9] PUCCH: rnti=0x4601 format=1 prb1=0 prb2=105 symb=[0, 14) cs=0 occ=0 ack=2
2025-01-09T19:06:09.180217 [PHY     ][   596.9] PUCCH: rnti=0x4601 format=1 prb1=0 prb2=na symb=[0, 14) cs=0 occ=0 ack=1
2025-01-09T19:06:09.180224 [FAPI    ][   597.4] UCI.indication slot=596.9
         - UCI PUCCH format 0/1 format=1 rnti=17921 sinr=1.6 HARQ: confidence=255 harq_ack=dtx
2025-01-09T19:06:09.180225 [FAPI    ][   597.4] UCI.indication slot=596.9
         - UCI PUCCH format 0/1 format=1 rnti=17921 sinr=1.6 HARQ: confidence=255 harq_ack=ack
2025-01-09T19:06:09.181314 [SCHED   ][   597.5] Processed slot events pci=99:
         - HARQ-ACK: ue=0 rnti=0x4601 pci=99 slot_rx=596.9 h_id=1 ack=1 tbs=301
         - HARQ-ACK: ue=0 rnti=0x4601 pci=99 slot_rx=596.9 h_id=1 ack=2

You may have noticed that the gNB scheduled multiple PUCCH per TTI, and that the UE only transmits one of the two scheduled PUCCH for CR and RRC Setup HARQ ACK.

  • The gNB PHY receives the PUCCH
  • FAPI observed Uplink Control Information (UCI) Indication
    • harq_ack=ack
  • gNB MAC Scheduler processes the events
    • HARQ-ACK:
      • slot_rx=596.8
      • h_id=0 (HARQ Process ID)
      • ack=1
      • tbs=7 (for Contention Resolution)
    • HARQ-ACK:
      • slot_rx=596.9
      • h_id=1 (HARQ Process ID)
      • ack=1
      • tbs=301 (for RRC Setup)

RRC Setup Complete

Looking at the timestamps, you can see that the UE begins generating the RRC Setup Complete message after it processes the RRC Setup message. So we are essentially analyzing a bit out of sequence, but figured it would seem more logical to start talking about the RRC Setup Complete procedure after CR and RRC Setup Acknowledgements have been received by the gNB.

2025-01-09T19:06:09.175976 [UE-RRC-NR ]Finished Connection Setup successfully
2025-01-09T19:06:09.175977 [UE-RRC-NR ]PHY configuration completed.
2025-01-09T19:06:09.175930 [UE-RRC-NR ]Preparing RRC Connection Setup Complete
2025-01-09T19:06:09.175961 [UE-RRC-NR ]SRB1 - Tx rrcSetupComplete (27 B)
2025-01-09T19:06:09.175965 [UE-PDCP-NR]TX SRB1 SDU (27B), integrity=none, encryption=none
2025-01-09T19:06:09.175968 [UE-PDCP-NR]Integrity gen input: COUNT 0, Bearer ID 1, Direction Uplink
2025-01-09T19:06:09.175968 [UE-PDCP-NR]Integrity gen key:
2025-01-09T19:06:09.175969 [UE-PDCP-NR]Integrity gen input msg:
2025-01-09T19:06:09.175969 [UE-PDCP-NR]MAC (generated)
2025-01-09T19:06:09.175970 [UE-PDCP-NR]TX SRB1 PDU (33B), HFN=0, SN=0, integrity=none, encryption=none
2025-01-09T19:06:09.175973 [UE-RLC-NR ]SRB1: Tx SDU (33 B, PDCP_SN=0 tx_sdu_queue_len=1)
2025-01-09T19:06:09.175992 [UE-RLC-NR ]SRB1: total buffer state - 1 SDUs (35 B)

The UE determines it has successfully established an RRC Connection with the gNB after it has configured the protocol layers with the information from the Master Cell Group and SRB1. Subsequent transmission and reception will use SRB1, which now includes the PDCP layer and now the RLC entity will be in Acknowledged Mode.

  • RRC Layer prepared the RRC Setup Complete message
    • RRC layers transfers message to PDCP layer using SRB1
  • PDCP layer receives the 27 Byte SDU
    • Generates the Message Authentication Code (MAC) that PDCP header that will be added
    • Transfers the PDU to the RLC layer (now 33 bytes with PDCP header and MAC)
      • MAC = 4 bytes
      • PDCP Header = 2 bytes
  • RLC layer receives SRB1 SDU with PDCP header
    • Adds RLC AM header
    • Buffers the SDU (total buffer state – 1 SDUs (35 B))
UE RRC Setup Complete with RLC/PDCP headers and PDCP MAC

Buffer Status Report & Scheduling Request

The UE currently does not have a PUSCH grant to transmit the RRC Setup Complete message so the UE is triggered to send a Scheduling Request to the gNB.

2025-01-09T19:06:09.175996 [UE-MAC-NR ][ 595.8] nof_lcids_with_data=1, nof_lcgs_with_data=1, last_non_zero_lcg=0 [UE-lcg0=35, ] [UE-lcid0=0, lcid1=35, ]
2025-01-09T19:06:09.175997 [UE-MAC-NR ][ 595.8] BSR:   New data available for LCG=0
2025-01-09T19:06:09.175997 [UE-MAC-NR ][ 595.8] BSR:   Triggering Regular BSR tti=5958
2025-01-09T19:06:09.175999 [UE-MAC-NR ][ 595.8] BSR:   Triggering SR procedure
2025-01-09T19:06:09.176000 [UE-MAC-NR ][ 595.8] SR:    Starting procedure
RRC Setup Complete with MAC header for LCID 1

A Buffer Status Report is triggered that will be sent as a MAC Control Element with the RRC Setup Complete message

  • BSR includes volume calculation of RLC and PDCP data
    • The Index of 5 included in the BSR indicates a Buffer Size value of less than or equal to 38 bytes (which makes sense for the 33 bytes of RLC and PDCP data needing to be sent)
    • A “Short BSR” indicates that a single Logical Channel Group (LCG) has data pending while MAC PDU is built
    • Once the data is sent, additional BSR may be sent to notify the gNB if there is data still pending transmission or if the buffer is empty.
2025-01-09T19:06:09.186140 [SCHED   ][   598.0] Slot decisions pci=99 t=11us (0 PDSCHs, 0 PUSCHs):
         - PUCCH: c-rnti=0x4601 format=1 prb=[4..5) symb=[0..14) cs=0 occ=0 uci: harq_bits=0 sr=1
2025-01-09T19:06:09.186167 [FAPI    ][   598.0] UL_TTI.request slot=598.0
         - PUCCH rnti=0x4601 bwp=0:106 format=1 prb=4:1 prb2=0 symb=0:14 harq_bit_len=0 sr_bit_len=1

The gNB schedules PUCCH with scheduling request (sr=1) for TTI 598.0

2025-01-09T19:06:09.187435 [UE-MAC-NR ][ 597.6] SR:    Signalling PHY sr_counter=1
2025-01-09T19:06:09.187467 [UE-PHY_LIB][    0]  [UE-PUCCH Format 1 Data TX] d=+0.707+0.707
2025-01-09T19:06:09.187631 [UE-PHY1-NR][ 597.6] PUCCH: cc=0, f=1 prb=4:1 symb=0:14 cs=0 occ=0 rnti=0x4601 sr=1 , tti_tx=5980

The UE PHY layer triggers the scheduling request counter to increment (sr_counter=1) and the UE transmits the SR PUCCH (PUCCH format 1) at scheduled TTI 598.0

2025-01-09T19:06:09.191170 [PHY     ][   598.0] PUCCH: rnti=0x4601 format=1 prb1=4 prb2=na symb=[0, 14) cs=0 occ=0 sr=yes
2025-01-09T19:06:09.191187 [FAPI    ][   598.4] UCI.indication slot=598.0
         - UCI PUCCH format 0/1 format=1 rnti=17921 sinr=1.9 SR: confidence=255 sr=detected
2025-01-09T19:06:09.191304 [SCHED   ][   598.5] Processed slot events pci=99:
         - SR: ue=0 rnti=0x4601

The gNB receives the PUCCH with the scheduling request (sr=detected) and the MAC layer processes the event. The gNB is aware that the UE has data to send which will trigger the gNB to schedule a PDCCH DCI 0_0 for PUSCH resource allocation to the UE.

Channel State Information

2025-01-09T19:06:09.191308 [SCHED   ][   598.5] Slot decisions pci=99 t=30us (0 PDSCHs, 0 PUSCHs):
	 - UL PDCCH: rnti=0x4601 type=c-rnti cs_id=0 ss_id=1 format=0_0 cce=0 al=4  h_id=0 ndi=1 rv=0 mcs=9
2025-01-09T19:06:09.191325 [FAPI    ][   598.5] UL_DCI.request slot=598.5, is_last_message_in_slot=true
     - PDCCH bwp=2:96 symb=0:1 nof_dcis=1
2025-01-09T19:06:09.191450 [PHY     ][   598.5] PDCCH: rnti=0x4601 ss_id=1 format=0_0 cce=0 al=4

2025-01-09T19:06:09.192056 [SCHED   ][   598.6] Slot decisions pci=99 t=10us (0 PDSCHs, 0 PUSCHs):
	 - PUCCH: c-rnti=0x4601 format=2 prb=[7..8) symb=[4..6) uci: harq_bits=0 sr=0 csi-1_bits=4
2025-01-09T19:06:09.192076 [FAPI    ][   598.6] UL_TTI.request slot=598.6
     - PUCCH rnti=0x4601 bwp=0:106 format=2 prb=7:1 prb2=0 symb=4:2 harq_bit_len=0 sr_bit_len=0 csi1_bit_len=4

The gNB schedules PDCCH DCI 0_0 as well as PUCCH Format 2 with Channel State Information from the UE (csi-1_bits=4, csi1_bit_len=4)

  • PDCCH 0_0 provides resource allocation for PUCCH CSI transmission
  • CSI is used for the UE to inform the gNB on the conditions
2025-01-09T19:06:09.193174 [UE-PHY1-NR][ 598.2] NZP-CSI-RS: id=0, rsrp=+9.3 epre=+9.7 snr=+9.9
2025-01-09T19:06:09.193568 [UE-PHY1-NR][ 598.2] PUCCH: cc=0, f=2 prb=7:1 symb=4:2 rnti=0x4601 cqi=15 , tti_tx=5986

The UE conducts Non-Zero Power CSI RS (NZP-CSI-RS) which measures the transmit power of a resource element that the gNB is transmitting on.

  • Reference Signal Received Power (RSRP)
  • Energy Per Resource Element (EPRE)
  • Signal to Noise Ration (SNR)

Based on these measurements, the UE sends the Channel Quality Indication (CQI) on the PUCCH to the gNB at TTI 598.6

2025-01-09T19:06:09.196663 [PHY     ][   598.6] PUCCH: rnti=0x4601 format=2 prb=[7, 8) prb2=na symb=[4, 6) csi1=1111
2025-01-09T19:06:09.196676 [FAPI    ][   599.0] UCI.indication slot=598.6
     - UCI PUCCH format 2/3/4 format=2 rnti=17921 sinr=17.1 ta_ns=1562 CSI1: detection=4 bit_len=4
2025-01-09T19:06:09.197144 [SCHED   ][   599.1] Processed slot events pci=99:
	 - CSI: ue=0 rnti=0x4601: cqi=15 ri=1

gNB receives PUCCH Format 2 with CSI (csi1=1111) where the UCI provides the CSI information. The MAC layer processes the CSI that includes the CQI (cqi=15) value and Rank Indicator(ri=1) value.

  • High CQI value ranges from 0 to 15 and indicates that the UE is able to potentially receive higher modulation orders and coding rates

PUCCH Formats

I have pointed out the different PUCCH formats in use but have no elaborated on them yet.

PUCCH Format 1

  • Supports small UCI payloads of up to two bits, with multiplexing support
    • Scheduling Request and HARQ payloads are 1-bit
    • Scheduling Request and HARQ, or multiple HARQ can be multiplexed onto same PUCCH transmission
      • 00: No HARQ-ACK, no SR.
      • 01: HARQ-ACK only.
      • 10: SR only.
      • 11: Both HARQ-ACK and SR.

PUCCH Format 2

  • Supports UCI payloads of more than two bits, with no multiplexing support
    • CSI payload is 4-bits

RRC Setup Complete Transmission

2025-01-09T19:06:09.191308 [SCHED   ][   598.5] Slot decisions pci=99 t=30us (0 PDSCHs, 0 PUSCHs):
	 - UL PDCCH: rnti=0x4601 type=c-rnti cs_id=0 ss_id=1 format=0_0 cce=0 al=4  h_id=0 ndi=1 rv=0 mcs=9
2025-01-09T19:06:09.191325 [FAPI    ][   598.5] UL_DCI.request slot=598.5, is_last_message_in_slot=true
     - PDCCH bwp=2:96 symb=0:1 nof_dcis=1
2025-01-09T19:06:09.191450 [PHY     ][   598.5] PDCCH: rnti=0x4601 ss_id=1 format=0_0 cce=0 al=4

gNB schedules PDDCH DCI 0_0 with PUSCH resource allocation

2025-01-09T19:06:09.196585 [UE-PHY_LIB][    0]  PDCCH Rx: K=65; E=432; M=216; n=9;
2025-01-09T19:06:09.196721 [UE-PHY1-NR][ 598.5] PDCCH: c-rnti=0x4601 dci=1_0 ss=common0 L=2 cce=0 EPRE=+9.62, RSRP=+8.81, corr=0.830 nof_bits=41 crc=OK
2025-01-09T19:06:09.196729 [UE-PHY1-NR][ 598.5] PDCCH: c-rnti=0x4601 dci=0_0 ss=common3 L=2 cce=0 EPRE=+9.62, RSRP=+8.81, corr=0.830 nof_bits=41 crc=OK
2025-01-09T19:06:09.196746 [UE-PHY1-NR][ 598.5] PDCCH: cc=0, c-rnti=0x4601 dci=0_0 ss=common0 L=2 cce=0 f_alloc=0x98e t_alloc=0x0 hop=n mcs=9 ndi=1 rv=0 harq_id=0 tpc=1 
2025-01-09T19:06:09.196770 [UE-PHY_LIB][    0]  LDPC CB Segmentation: TBS: 4224, C=1, K=4576, F=4576, Bp=4248
2025-01-09T19:06:09.196777 [UE-MAC-NR ][ 598.5] new_grant_ul(): cc_idx=0, tti=5989, rnti=0x4601, pid=0, tbs=528, ndi=1, rv=0, is_rar=0
2025-01-09T19:06:09.196779 [UE-MAC-NR ][ 598.5] BSR:   Cancelling SR procedure due to UL grant

The UE receives PDCCH 0_0 with PUSCH resource allocation (new_grant_ul)

  • tti=5989
  • tbs=528
  • ndi=1

The UE scheduling request is canceled since the UE received an uplink grant from the gNB.

2025-01-09T19:06:09.196782 [UE-MAC-NR ][ 598.5] Building new MAC PDU (528 B)
2025-01-09T19:06:09.196785 [UE-MAC-NR ][ 598.5] Adding SDUs for LCID=0 (max 526 B)
2025-01-09T19:06:09.196788 [UE-MAC-NR ][ 598.5] Adding SDUs for LCID=1 (max 526 B)
2025-01-09T19:06:09.196791 [UE-RLC-NR ]SRB1: MAC opportunity - bytes=523, tx_window size=0 PDUs
2025-01-09T19:06:09.196792 [UE-RLC-NR ]SRB1: Reading from RLC SDU queue. Queue size 1
2025-01-09T19:06:09.196794 [UE-RLC-NR ]SRB1: Read RLC SDU - RLC_SN=0, PDCP_SN=0, 33 bytes
2025-01-09T19:06:09.196797 [UE-RLC-NR ]SRB1: Checking poll bit requirements for PDU. SN=0, retx=false, sdu_bytes=33, POLL_SN=0
2025-01-09T19:06:09.196798 [UE-RLC-NR ]SRB1: Setting poll bit due to empty buffers/inablity to TX. SN=0, POLL_SN=0
2025-01-09T19:06:09.196799 [UE-RLC-NR ]SRB1: Setting new POLL_SN. POLL_SN=0
2025-01-09T19:06:09.196800 [UE-RLC-NR ]SRB1: Started t-PollRetransmit. POLL_SN=0
2025-01-09T19:06:09.196805 [UE-RLC-NR ]SRB1: [UE-Data PDU, P=1, SI=full, SN_SIZE=12 bits, SN=0, SO=0]
2025-01-09T19:06:09.196806 [UE-RLC-NR ]SRB1: wrote RLC PDU - 35 bytes
2025-01-09T19:06:09.196808 [UE-MAC-NR ][ 598.5] Read 35 B from RLC
2025-01-09T19:06:09.196811 [UE-MAC-NR ][ 598.5] 488 B remaining PDU
2025-01-09T19:06:09.196811 [UE-RLC-NR ]SRB1: MAC opportunity - bytes=485, tx_window size=1 PDUs
2025-01-09T19:06:09.196813 [UE-RLC-NR ]SRB1: No data available to be sent
2025-01-09T19:06:09.196818 [UE-MAC-NR ][ 598.5] UL LCID=1 len=35 SBSR: lcg=0 bs=5 PAD: len=488
2025-01-09T19:06:09.196819 [UE-MAC-NR ][ 598.5] Generated MAC PDU (528 B)
2025-01-09T19:06:09.196820 [UE-MAC    ][ 598.5] UL 0:  New TX, rv=0, tbs=528

UE MAC begins building the MAC PDU by adding SDUs for LCID=0 and LCID=1

RLC has the RRC Setup Complete message queued from earlier and receives a MAC opportunity to pass the data to the MAC layer.

  • You may notice that the MAC PDU is 528 bytes, while the RLC PDU is only 35 bytes, lets look at a breakdown of the entire packet
Individual Length
MAC SubheaderLCID 1 (UL SCH SDU)2 Bytes
RLC AM HeaderSN=02 Bytes
PDCP Header w/MACSRB16 Bytes
RRC Message w/NAS PDUUL-DCCH27 Bytes/23 Bytes
MAC SubheaderLCID 61 (Short BSR)2 Bytes
MAC SubheaderLCID 63 (Padding)489 Bytes

RLC sends PDU to MAC where the UL, SBSR, and PADDING LCIDs are attached and the MAC PDU is generated.

2025-01-09T19:06:09.195149 [SCHED   ][   598.9] Slot decisions pci=99 t=16us (0 PDSCHs, 1 PUSCH):
	 - UE PUSCH: ue=0 c-rnti=0x4601 h_id=0 rb=[8..32) symb=[0..14) tbs=528 rv=0 nrtx=0 olla=0.00 k2=4
2025-01-09T19:06:09.195176 [FAPI    ][   598.9] UL_TTI.request slot=598.9
     - PUSCH rnti=0x4601 bwp=0:106 symb=0:14 mod=2 CW: tbs=528 rv_idx=0 harq_id=0

The gNB schedules the reception of the PUSCH at TTI 589.9

2025-01-09T19:06:09.196989 [UE-PHY_LIB][    0]  LDPC CB Segmentation: TBS: 4224, C=1, K=4576, F=4576, Bp=4248
2025-01-09T19:06:09.196992 [UE-PHY_LIB][    0]  LDPC CB Segmentation: TBS: 4224, C=1, K=4576, F=4576, Bp=4248
2025-01-09T19:06:09.197017 [UE-PHY_LIB][    0]  UCI-NR Tx: No HARQ-ACK to mux
2025-01-09T19:06:09.197019 [UE-PHY_LIB][    0]  UCI-NR Tx: No CSI part 1 to mux
2025-01-09T19:06:09.197020 [UE-PHY_LIB][    0]  LDPC CB Segmentation: TBS: 4224, C=1, K=4576, F=4576, Bp=4248
2025-01-09T19:06:09.197033 [UE-PHY_LIB][    0]  SCH Tx: CB 0: appending TB CRC=db4051
2025-01-09T19:06:09.197080 [UE-PHY_LIB][    0]  SCH Tx: RM CB 0: E=6336; F=328; BG=1; Z=208; RV=0; Qm=2; Nref=25344;
2025-01-09T19:06:09.197131 [UE-PHY_LIB][    0]  PUSCH: RNTI=17921 (0x4601); nid=99; cinit=587235427 (0x23008063);
2025-01-09T19:06:09.197416 [UE-PHY1-NR][ 598.5] PUSCH: cc=0 pid=0 c-rnti=0x4601 prb=(8,31) symb=(0,13) CW0: mod=QPSK tbs=528 R=0.670 rv=0  t=164 us cfo=-13 tti_tx=5989

The PHY layer of the UE processes the data by applying Code Block Segmentation, adding the Cyclic Redundancy Check, and transmitting on the PUSCH.

2025-01-09T19:06:09.200267 [PHY     ][   598.9] PUSCH: rnti=0x4601 h_id=0 prb=[8, 32) symb=[0, 14) mod=QPSK rv=0 tbs=528 crc=OK
2025-01-09T19:06:09.200275 [FAPI    ][   599.4] CRC.indication slot=598.9
     - CRC rnti=0x4601 harq_id=0 tb_status=OK ta_ns=2106 sinr=17.0 rsrp=-3.7
2025-01-09T19:06:09.200280 [FAPI    ][   599.4] Rx_Data.indication slot=598.9
     - DATA rnti=0x4601 harq_id=0 tbs=528

The gNB receives the PUSCH where the CRC is checked and passes (tb_status=OK) and indicates that it has received data from the UE with a TBS of 528.

2025-01-09T19:06:09.200454 [MAC     ][   599.4] UL rnti=0x4601 ue=0 subPDUs: [lcid=1: len=35, SBSR: lcg=0 bs=5, PAD: len=488]
2025-01-09T19:06:09.200455 [MAC     ][   599.4] UL rnti=0x4601 ue=0 lcid=1 UL-DCCH: Forwarding SDU of 35 bytes
2025-01-09T19:06:09.200460 [RLC     ]du=0 ue=0 SRB1 UL: RX PDU. pdu_len=35 dc=data p=1 si=full sn=0
2025-01-09T19:06:09.200461 [RLC     ]du=0 ue=0 SRB1 UL: Status report requested via polling bit.
2025-01-09T19:06:09.200463 [RLC     ]du=0 ue=0 SRB1 UL: RX SDU. payload_len=33 dc=data p=1 si=full sn=0
2025-01-09T19:06:09.200463 [RLC     ]du=0 ue=0 SRB1 UL: Adding sn=0 to window.
2025-01-09T19:06:09.200465 [RLC     ]du=0 ue=0 SRB1 UL: RX entity state. rx_next=0 rx_next_status_trigger=0 rx_highest_status=0 rx_next_highest=0
2025-01-09T19:06:09.200465 [RLC     ]du=0 ue=0 SRB1 UL: Updated rx_next_highest=1.
2025-01-09T19:06:09.200468 [RLC     ]du=0 ue=0 SRB1 UL: RX SDU. sn=0 sdu_len=33
2025-01-09T19:06:09.200566 [RLC     ]du=0 ue=0 SRB1 UL: Updated rx_highest_status=1.
2025-01-09T19:06:09.200566 [RLC     ]du=0 ue=0 SRB1 UL: Removing sn=0 from window
2025-01-09T19:06:09.200567 [RLC     ]du=0 ue=0 SRB1 UL: Updated rx_next=1.
2025-01-09T19:06:09.200567 [RLC     ]du=0 ue=0 SRB1 UL: Post-processing for AMD PDU: status_changed=true status_requested=true
2025-01-09T19:06:09.200568 [RLC     ]du=0 ue=0 SRB1 UL: Generating status PDU. rx_next=1 rx_highest_status=1 stop_sn=1
2025-01-09T19:06:09.200568 [RLC     ]du=0 ue=0 SRB1 UL: Refreshed status_report. ack_sn=1 n_nack=0
2025-01-09T19:06:09.200569 [RLC     ]du=0 ue=0 SRB1 UL: Notifying TX that status report has changed.
2025-01-09T19:06:09.200570 [RLC     ]du=0 ue=0 SRB1 DL: Triggering buffer state update to lower layer
2025-01-09T19:06:09.200586 [RLC     ]du=0 ue=0 SRB1 DL: Sending buffer state update to lower layer. bs=3

The gNB decodes the transport block starting at the MAC layer and passes data segments to specific protocols for further processing. The RRC Setup Complete message is the first first to use SRB1 and the DCCH Logical Channel. The RLC layer triggers a Buffer Status Report of 3 bytes to the lower layers for follow on procedures (RLC Status PDU)

2025-01-09T19:06:09.200621 [RRC     ] [D] ue=0 c-rnti=0x4601: RX SRB1 PDCP PDU
2025-01-09T19:06:09.200641 [PDCP    ] [D] ue=0 SRB1 UL: RX PDU. pdu_len=33
2025-01-09T19:06:09.200642 [PDCP    ] [D] ue=0 SRB1 UL: RX entity state. rx_next=0 rx_deliv=0 rx_reord=0
2025-01-09T19:06:09.200643 [PDCP    ] [I] ue=0 SRB1 UL: RX PDU. type=data pdu_len=33 sn=0 count=0
2025-01-09T19:06:09.200647 [PDCP    ] [D] ue=0 SRB1 UL: Using sec_engine with worker_idx=3. count=0 pdu_len=33
2025-01-09T19:06:09.200647 [PDCP    ] [D] ue=0 SRB1 UL: Security passed. count=0
2025-01-09T19:06:09.200648 [PDCP    ] [D] ue=0 SRB1 UL: Adding sn=0 to window.
2025-01-09T19:06:09.200650 [PDCP    ] [I] ue=0 SRB1 UL: RX SDU. count=0
2025-01-09T19:06:09.200651 [PDCP    ] [D] ue=0 SRB1 UL: Removing sn=0 from window
2025-01-09T19:06:09.200651 [PDCP    ] [D] ue=0 SRB1 UL: RX entity state. rx_next=1 rx_deliv=1 rx_reord=0
2025-01-09T19:06:09.200693 [RRC     ] [D] ue=0 c-rnti=0x4601: Rx SRB1 DCCH UL rrcSetupComplete (27 B)
2025-01-09T19:06:09.200704 [NGAP    ] [D] ue=0 ran_ue=0: NGAP UE context created
2025-01-09T19:06:09.200729 [NGAP    ] [D] ue=0 ran_ue=0: Starting PDU session creation timer (timeout=3000ms)...
2025-01-09T19:06:09.200735 [NGAP    ] [I] Tx PDU ue=0 ran_ue=0: InitialUEMessage
2025-01-09T19:06:09.200749 [SCTP-GW ] [D] N2: Sending PDU of 70 bytes
2025-01-09T19:06:09.200801 [RRC     ] [D] ue=0 c-rnti=0x4601: "RRC Setup Procedure" finished successfully

2025-01-09T19:06:09.201421 [SCHED   ][   599.5] Processed slot events pci=99:
	 - UE dedicated config applied: ue=0 rnti=0x4601
	 - BSR: ue=0 rnti=0x4601 type="Short BSR" report={0: 38} pending_bytes=0
	 - RLC Buffer State: ue=0 lcid=1 pending_bytes=3
	 - CRC: ue=0 rnti=0x4601 pci=99 rx_slot=598.9 h_id=0 crc=true sinr=17.024dB

The data is processed at MAC, RLC, PDCP, and RRC layers. The RRC Setup Complete message also contains the Registration Request NAS PDU which needs to be sent to the AMF. The RRC layer forwards the appropriate data to the NGAP layer where a UE context is created and the InitialUEMessage is transferred.

  • The initial UE Message transfer can be viewed in the cu_ngap.pcap

Leave a Reply

Discover more from

Subscribe now to keep reading and get access to the full archive.

Continue reading