An LTE Attach and a VoLTE Call on the Air Interface, Layer by Layer

Reading a real srsRAN LTE capture taken at the eNB's MAC layer. Two phones attach to one cell, register with IMS, and call each other. The trace was decoded and annotated with VisualEther. Every security layer in it uses a null cipher, so no keys are needed: the radio stack, the core-network signaling, and even the SIP call inside IMS IPsec read in the clear.

๐Ÿ’ก Read the walkthrough and the diagram side by side: open the interactive diagram in a split-screen window, or open it in a new tab and snap the two windows side by side.

Overview

The capture is 3,380 frames over 113 seconds from one srsRAN eNB, connected to an EPC and an IMS core. Two phones are on the cell, C-RNTI 70 and C-RNTI 71. Each one attaches, opens an internet PDN and an IMS PDN, and registers with IMS. Then they call each other six times. Each call adds a voice bearer for its duration and removes it at hang-up.

Three facts shape what you will read:

In the interactive viewer or the HTML sequence diagram above, click any message to open its parameters and the full Wireshark field tree for that frame.

A primer on the LTE radio stack

Here is the layer cake every frame rides on, from application intent at the top down to the radio at the bottom.

LayerJob in one lineWhat you'll see in the trace
NAS / EMM & ESMUE โ†” MME signaling: attach, security, bearersAttach Request, Authentication, Activate EPS Bearer
RRCUE โ†” eNB radio-connection controlRRC Connection Setup, Security Mode Command, Reconfiguration
PDCPIntegrity, ciphering, sequence numberingPDCP SN / COUNT, MAC-I integrity tag
RLCSegmentation, and reliable delivery in AMRLC AM Data and Status PDUs, ACK_SN, poll bit
MACScheduling, multiplexing, control elementsLCID, Contention Resolution, BSR, PHR

Each layer talks to its peer on the other side of the link. The control plane and the user plane share PDCP, RLC, MAC, and PHY. They differ at the top, and in where they end in the core. NAS signaling runs between the UE and the MME, relayed through the eNB. User data leaves the eNB over S1-U to the serving and PDN gateways.

sequenceDiagram accTitle: LTE control-plane protocol stack and peer relationships accDescr: The control-plane layers, top of stack to bottom. NAS spans the UE and the MME, passing transparently through the eNB. RRC, PDCP, RLC, MAC, and PHY each span the UE and the eNB. participant UE participant eNB participant MME Note over UE,MME: NAS Note over UE,eNB: RRC Note over UE,eNB: PDCP Note over UE,eNB: RLC Note over UE,eNB: MAC Note over UE,eNB: PHY
Control plane: each layer is a box spanning the entities that run it. RRC, PDCP, RLC, MAC, and PHY span the UE and the eNB. NAS spans the UE and the MME, passing through the eNB that relays it.
sequenceDiagram accTitle: LTE user-plane protocol stack and peer relationships accDescr: The user-plane layers. An IP packet spans the UE and the gateway. Below it, PDCP, RLC, MAC, and PHY span the UE and the eNB, and GTP-U over S1-U spans the eNB and the gateway. participant UE participant eNB participant GW as S-GW / P-GW Note over UE,GW: IP (SIP, RTP, TCP) Note over UE,eNB: PDCP Note over UE,eNB: RLC Note over UE,eNB: MAC Note over UE,eNB: PHY Note over eNB,GW: S1-U ยท GTP-U
User plane: IP packets ride PDCP, RLC, MAC, and PHY between the UE and the eNB, then GTP-U over S1-U to the gateways. The UE's IP peer is a server beyond the gateway, here the IMS core.

Key ideas from this stack:

Signaling bearers and data bearers. Control messages travel on Signaling Radio Bearers: SRB1 from the start, and SRB2, added with the first reconfiguration for NAS traffic. User data travels on Data Radio Bearers. In LTE each EPS bearer, the core network's unit of QoS, maps one-to-one onto a DRB. LTE has no SDAP layer. (5G added SDAP to map several QoS flows onto one DRB.)

QCI. Every EPS bearer carries a QoS Class Identifier. You will see three. QCI 9 is best-effort internet data. QCI 5 is IMS signaling. QCI 1 is conversational voice, with a guaranteed bit rate. Each phone holds DRB 1 for internet and DRB 2 for SIP, plus a voice DRB for the length of each call: DRB 3 for the first call, and the next number for each call after that, up to DRB 8.

RLC acknowledged and unacknowledged mode. SRBs and the two data bearers run RLC AM: each PDU has a sequence number, the receiver returns Status PDUs with a cumulative ACK_SN, and missing PDUs are resent. The voice bearer runs RLC UM, which keeps sequence numbers for reordering but never acknowledges or retransmits. A voice packet that arrives late is useless, so retransmitting it would only add delay.

Three security contexts. NAS security is negotiated between the UE and the MME, and AS security between the UE and the eNB. IMS IPsec runs between the UE and the P-CSCF, inside the user plane. Each has its own handshake and keys. Here all three pick a null cipher, so everything stays readable.

Follow one protocol at a time

This page interleaves every layer on one timeline. Each companion page follows one protocol on its own, with its own annotated diagram, ordered here from the bottom of the stack upward. The last card leaves the radio for the core network: the eNB also logged its S1AP link to the MME during the same run, on the same clock.

The flow at a glance

The cut follows nine phases. The interactive diagram shows every arrow.

  1. UE 70 onto the cell (frames 1โ€“5): random access, RRC Connection Setup, and the Attach Request.
  2. Identify, authenticate, secure (frames 6โ€“18): Identity, Authentication, NAS Security Mode, AS Security Mode.
  3. Capabilities and the default bearer (frames 19โ€“29): UE capabilities, Attach Accept, DRB 1.
  4. The IMS PDN (frames 30โ€“35): a second default bearer, QCI 5 on DRB 2.
  5. IMS registration (frames 36โ€“68): SIP REGISTER in the clear, the 401 challenge, the protected REGISTER inside ESP.
  6. UE 71 attaches (frames 301โ€“518): the same sequence, with one difference.
  7. Call setup (frames 821โ€“983): INVITE, 183, the QCI-1 bearer on both phones, PRACK, UPDATE, 180 Ringing, 200 OK.
  8. Voice (frames 985โ€“1003): AMR-WB RTP on DRB 3, 20 ms per frame.
  9. Hang-up (frames 1143โ€“1156): BYE, and the voice bearer torn down on both phones.

The capture drives three state machines. On the radio side, each phone goes from idle to connected and stays there: srsRAN never releases them.

stateDiagram-v2 accTitle: RRC connection state journey accDescr: Each UE moves from RRC_IDLE to RRC_CONNECTED on random access and RRC Connection Setup, and stays connected for the rest of the capture. [*] --> RRC_IDLE RRC_IDLE --> RRC_CONNECTED: RA + RRC Connection Setup note right of RRC_CONNECTED: No release in the capture
RRC state, each UE: IDLE to CONNECTED at RRC Connection Setup. Neither phone is released before the capture ends.

In the core, the EMM state machine tracks registration. Unlike the 5G capture this page parallels, nothing is hidden here. The Attach Accept is readable, so the move to EMM-REGISTERED can be confirmed in frame 24.

stateDiagram-v2 accTitle: EMM mobility state journey accDescr: The UE moves from EMM-DEREGISTERED to EMM-REGISTERED-INITIATED on the Attach Request in frame 4, and to EMM-REGISTERED on the Attach Accept in frame 24. state "EMM-DEREGISTERED" as DEREG state "EMM-REGISTERED-INITIATED" as REGINIT state "EMM-REGISTERED" as REG [*] --> DEREG DEREG --> REGINIT: Attach Request (frame 4) REGINIT --> REG: Attach Accept (frame 24)
EMM (mobility) state, UE side: the Attach Request in frame 4 starts the procedure and the Attach Accept in frame 24 completes it.

The bearers have their own life cycle. The two default bearers live as long as the attach, while the voice bearer exists only for the length of each call.

stateDiagram-v2 accTitle: EPS bearer life cycle on one UE accDescr: After attach the UE has default bearer 5 for internet and default bearer 6 for IMS. For each call a dedicated bearer 7 with QCI 1 is activated and later deactivated, six times in the capture. state "Default bearers 5 and 6" as DEF state "Plus dedicated bearer 7 (QCI 1)" as CALL [*] --> DEF: Attach + IMS PDN DEF --> CALL: Activate dedicated bearer CALL --> DEF: Deactivate bearer note right of CALL: Six times, once per call
EPS bearers on one UE: bearers 5 (internet) and 6 (IMS) stay up, and bearer 7 (voice, QCI 1) is created and deleted with every call.

Phase 1 โ€” Onto the cell (frames 1โ€“5)

sequenceDiagram accTitle: Phase 1 โ€” RRC connection setup and Attach Request accDescr: The eNB sends the Random Access Response, the UE sends Msg3 RRC Connection Request, the eNB replies with Msg4 contention resolution and RRC Connection Setup, and the UE sends RRC Connection Setup Complete carrying the NAS Attach Request. participant UE as UE 70 participant eNB participant MME eNB->>UE: Msg2 ยท Random Access Response (Temp C-RNTI 70) UE->>eNB: Msg3 ยท RRC Connection Request (mo-Signalling) eNB->>UE: Msg4 ยท Contention Resolution + RRC Connection Setup UE->>eNB: RRC Connection Setup Complete UE->>MME: Attach Request (inside Setup Complete)

Frame 1 โ€” Random Access Response (Msg2). The UE's preamble (Msg1) is a physical-layer event and does not appear in a MAC capture. The eNB answers preamble 0x24 on RA-RNTI 2, an identity derived from when the preamble arrived. It assigns Temporary C-RNTI 70, a Timing Advance, and an uplink grant for Msg3.

Frame 2 โ€” RRC Connection Request (Msg3). The UE speaks on the common control channel (CCCH, LCID 0) with a random identity value and cause mo-Signalling: the UE wants to talk to the core network.

Frame 3 โ€” Contention resolution + RRC Connection Setup (Msg4). A MAC control element (LCID 0x1c) echoes the UE's Msg3 bytes, so the UE knows it won the random access. The RRC part installs SRB1 and the MAC reporting rules: a buffer status report every 20 subframes, a power headroom report every 50.

Frame 4 โ€” RRC Connection Setup Complete. The UE is now RRC_CONNECTED. Inside the RRC message rides the first NAS message, an Attach Request (combined EPS/IMSI attach) with a PDN Connectivity Request. The UE identifies itself with an old GUTI, a temporary identity from an earlier attach.

Frame 5 is the first RLC Status PDU: the eNB confirms SRB1 data up to ACK_SN 1. These acknowledgements run through every reliable exchange that follows.

Phase 2 โ€” Identify, authenticate, secure (frames 6โ€“18)

sequenceDiagram accTitle: Phase 2 โ€” Identity, authentication, and the two security handshakes accDescr: The MME asks for the IMSI and authenticates the UE, runs the NAS Security Mode procedure with EEA0 and EIA2, and then the eNB runs the RRC Security Mode procedure with the same algorithms. participant UE as UE 70 participant eNB participant MME MME->>UE: Identity Request (IMSI) UE->>MME: Identity Response MME->>UE: Authentication Request UE->>MME: Authentication Response MME->>UE: NAS Security Mode Command (EEA0 / EIA2) UE->>MME: NAS Security Mode Complete eNB->>UE: RRC Security Mode Command (eea0 / eia2) UE->>eNB: RRC Security Mode Complete

Frames 6โ€“7 โ€” Identity. The MME does not recognize the GUTI, so it asks for the permanent identity. The answer is IMSI 001011234567895, on the 3GPP test network (MCC 001, MNC 01).

Frames 9 and 11 โ€” Authentication. The MME sends a challenge and the UE's SIM answers with RES. A correct answer proves the SIM holds the subscriber key and leaves both sides with the same root key, K_ASME.

Frames 13โ€“14 โ€” NAS security. The MME picks EEA0 for ciphering and 128-EIA2 (AES-CMAC) for integrity. From frame 14 on, NAS messages carry a security header that says "integrity protected and ciphered", but the cipher is null, so the body is plaintext. That is why the Attach Accept below is readable.

Frames 16โ€“17 โ€” AS security. The eNB runs the other Security Mode procedure, for the radio link: again eea0 / eia2. From here, every PDCP PDU on an SRB carries a real integrity tag (MAC-I 0xd8c5635b in frame 19), but no data is encrypted. Two procedures, two key sets, one for the core and one for the radio.

Phase 3 โ€” Capabilities and the default bearer (frames 19โ€“29)

sequenceDiagram accTitle: Phase 3 โ€” UE capabilities, Attach Accept, and the first data bearer accDescr: The eNB asks for UE capabilities and the UE answers in three RLC segments. An RRC Connection Reconfiguration then carries the Attach Accept and the default bearer, adding DRB 1 and SRB2. The UE confirms, and sends Attach Complete on SRB2. participant UE as UE 70 participant eNB participant MME eNB->>UE: UE Capability Enquiry UE->>eNB: UE Capability Information (3 RLC segments) eNB->>UE: RRC Connection Reconfiguration (+ Attach Accept, DRB 1, QCI 9) UE->>eNB: RRC Connection Reconfiguration Complete UE->>MME: Attach Complete (on SRB2)

Frames 19โ€“23 โ€” UE capabilities. The eNB asks what the UE supports. The answer is too big for one uplink grant, so RLC splits it into three segments: SN 5 (frame 20), SN 6 (frame 21), and SN 7 (frame 22). The framing-info bits mark them first, middle, and last. The reassembled report says release 12, UE category 4. Frame 23's Status PDU, ACK_SN 8, confirms all three arrived.

Frame 24 โ€” Attach Accept and DRB 1. One RRC Connection Reconfiguration carries the NAS Attach Accept and Activate Default EPS Bearer Context Request: APN internet, QCI 9, EPS bearer 5. The RRC side builds the matching radio bearer, DRB 1 on LCID 3 in RLC AM, and adds SRB2. The UE asked for IPv4v6; ESM cause 50 tells it only IPv4 is allowed.

Frame 27 โ€” Attach Complete. The UE confirms the reconfiguration, and in the same MAC PDU sends Attach Complete on the new SRB2. UE 70 is attached, with an address on the internet PDN. Frame 29's EMM Information carries the network name and time zone.

Phase 4 โ€” The IMS PDN (frames 30โ€“35)

sequenceDiagram accTitle: Phase 4 โ€” A second PDN for IMS accDescr: The UE requests a PDN connection to the ims APN, the eNB reconfigures it with a QCI 5 default bearer on DRB 2, and the UE confirms. participant UE as UE 70 participant eNB participant MME UE->>MME: PDN Connectivity Request (APN ims) eNB->>UE: RRC Connection Reconfiguration (+ Activate Default Bearer, QCI 5, DRB 2) UE->>eNB: RRC Connection Reconfiguration Complete UE->>MME: Activate Default EPS Bearer Accept

Voice over LTE needs a separate PDN for IMS. 0.2 s after attaching, the UE asks for the ims APN (frame 30). Frame 32 delivers a second default bearer: QCI 5, EPS bearer 6, on DRB 2 / LCID 4. The same message's protocol options give the UE the address of its P-CSCF, the IMS entry point. UE 70 now holds two addresses: 192.168.100.2 on internet and 192.168.101.2 on IMS.

Phase 5 โ€” IMS registration (frames 36โ€“68)

sequenceDiagram accTitle: Phase 5 โ€” IMS registration and IPsec setup accDescr: Over DRB 2 the UE sends a SIP REGISTER in the clear and receives a 401 challenge that selects an integrity-only IPsec suite. The UE then sends a protected REGISTER inside ESP and receives 200 OK. participant UE as UE 70 participant PCSCF as P-CSCF UE->>PCSCF: REGISTER (TCP, in the clear, Security-Client) PCSCF->>UE: 401 Unauthorized (AKA challenge, Security-Server ealg=null) Note over UE,PCSCF: IPsec ESP security associations start UE->>PCSCF: REGISTER (inside ESP) PCSCF->>UE: 200 OK

Frames 36โ€“44 โ€” REGISTER in the clear. The first packet on DRB 2 is a TCP SYN to the P-CSCF at 172.22.0.21, port 5060. Over that connection the UE sends a SIP REGISTER, split across two TCP segments (frames 40 and 42). No security exists yet, so it travels in the clear. Its Security-Client header offers four IPsec suites, HMAC-MD5 or HMAC-SHA-1, each with AES-CBC or null encryption.

Frame 48 โ€” The 401 challenge. The P-CSCF answers 401 Unauthorized with an IMS-AKA challenge (AKAv1-MD5). Its Security-Server header picks hmac-sha-1-96 with ealg=null: the IPsec tunnel will authenticate SIP but not encrypt it.

Frames 63โ€“68 โ€” Protected REGISTER. The second REGISTER goes inside ESP, from the UE's protected client port 53360 to the P-CSCF's server port 6100. Its SPI, 0x00001001 (4097), is the spi-s the P-CSCF chose in frame 48. Downlink packets use 0x0db517d8, which is 229971928, the spi-c the UE offered in frame 42. The 200 OK in frame 68 completes registration, 2.3 s after UE 70's first random access.

Phase 6 โ€” UE 71 attaches (frames 301โ€“518)

14.5 s later, the second phone runs the same sequence: random access with Temporary C-RNTI 71, identity, authentication, both Security Mode procedures, capabilities, Attach Accept, and an IMS PDN (frames 511โ€“516). Its IMSI is 001011234567896. Its capability report fits in one frame and says release 10: an older phone than UE 70.

One step differs. UE 71 sets the ESM information transfer flag in its Attach Request (frame 304). The flag asks the MME to collect the PDN details later, once NAS security protects them. So after the NAS Security Mode Complete, the MME sends an ESM Information Request (frame 316) and gets the details in frame 317. UE 70 left the flag clear, so its PDN request needed no second round.

Phase 7 โ€” Call setup (frames 821โ€“983)

sequenceDiagram accTitle: Phase 7 โ€” VoLTE call setup with QoS preconditions accDescr: UE 70 sends INVITE through the IMS core to UE 71. UE 71 answers 183 Session Progress with its SDP. The network then adds a QCI 1 dedicated bearer on both phones. PRACK and UPDATE confirm the preconditions, UE 71 rings with 180, and answers with 200 OK, which UE 70 acknowledges. participant A as UE 70 participant IMS as IMS core participant B as UE 71 A->>IMS: INVITE (EVS, AMR-WB, AMR, preconditions) IMS->>B: INVITE B->>IMS: 183 Session Progress (AMR-WB) IMS->>A: 183 Session Progress Note over A,B: QCI 1 dedicated bearer on both phones (DRB 3, RLC UM) A->>B: PRACK, then UPDATE (local QoS ready) B->>A: 180 Ringing B->>A: 200 OK A->>B: ACK

At 23.4 s, UE 70 dials. Every SIP message rides DRB 2 inside ESP, between the phone and the P-CSCF. The null encryption chosen in frame 48 is what makes them readable.

Frame 821 โ€” INVITE. UE 70 calls tel:0698765432100. Its SDP offer lists three codecs: EVS, AMR-WB, and AMR. It also sets QoS preconditions (des:qos mandatory, curr:qos none): the call must not ring until both ends have a voice bearer. The INVITE was segmented by RLC across several frames. Only the re-tagged capture reassembles it.

Frame 839 โ€” 183 Session Progress. UE 71 answers with its SDP: AMR-WB (payload type 99), 20 ms per packet, preconditions still unmet. The answer settles the codec and the media ports, which is what the IMS core needs to authorize a voice bearer.

Frames 844 and 846 โ€” The voice bearer. 8 ms after the 183 leaves UE 71, the eNB reconfigures it with Activate Dedicated EPS Bearer Context Request. 6 ms later UE 70 gets the same bearer:

The 183 reaches UE 70 in frame 845. Its SDP no longer points at UE 71: it says c=IN IP4 172.22.0.16, port 49016. The IMS core rewrote the answer so that media flows through its relay at 172.22.0.16, not directly between the phones.

Here is frame 844's complete decoded field tree. Expand any node to open it:

โš™๏ธ [00103] Frame 844 RRC Connection Reconfiguration 2021-05-02T08:28:51.528185Z ๐Ÿ“ก eNB → ๐Ÿ“ฑ UE
frame : Frame 844: Packet, 147 bytes on wire (1176 bits), 147 bytes captured (1176 bits)
Encapsulation type : USER 2 (47)
Arrival Time : May 2, 2021 01:28:51.528185000 Pacific Daylight Time
UTC Arrival Time : May 2, 2021 08:28:51.528185000 UTC
Epoch Arrival Time : 1619944131.528185000
Time shift for this packet : 0.000000000 seconds
Time delta from previous captured frame : 68.000 microseconds
Time delta from previous displayed frame : 8.269000 milliseconds
Time since reference or first frame : 23.616271000 seconds
Frame Number : 844
Frame Length : 147 bytes (1176 bits)
Capture Length : 147 bytes (1176 bits)
Frame is marked : False
Frame is ignored : False
Protocols in frame : user_dlt:udp:mac-lte:rlc-lte:pdcp-lte:lte_rrc:nas-eps
Character encoding : ASCII (0)
user_dlt : DLT: 149, Payload: udp (User Datagram Protocol)
udp : User Datagram Protocol, Src Port: 48879, Dst Port: 57005
Source Port : 48879
Destination Port : 57005
Source or Destination Port : 48879
Source or Destination Port : 57005
Length : 147
Checksum : 0x0000 [zero-value ignored]
Checksum Status : Not present
Stream index : 0
Stream Packet Number : 844
Timestamps
Time since first frame : 23.616271000 seconds
Time since previous frame : 68.000 microseconds
UDP payload (139 bytes)
mac-lte : MAC-LTE DL-SCH: (SFN=735 , SF=2) UEId=71 (1:105 bytes) (Padding:remainder)
Context (RNTI=71)
Radio Type : FDD (1)
Direction : Downlink (1)
UEId : 71
System Frame Number : 735
Subframe : 2
RNTI : 71
RNTI Type : C-RNTI (3)
Predefined frame : Real MAC PDU present - will dissect (0)
Length of frame : 113
CRC Status : OK (1)
Carrier Id : Primary (0)
DL UE in TTI : 1
MAC PDU Header (1:105) (Padding:remainder) [2 subheaders]
Sub-header (lcid=1, length=105)
0... .... = SCH reserved bit : 0x0
.0.. .... = Format2 : Data length is < 32768 bytes
..1. .... = Extension : 0x1
...0 0001 = LCID : 1 (0x01)
...0 0001 = LCID : 0x01
0... .... = Format : Data length is < 128 bytes
.110 1001 = Length : 105
Sub-header (lcid=Padding, length is remainder)
0... .... = SCH reserved bit : 0x0
.0.. .... = Format2 : Data length is < 32768 bytes
..0. .... = Extension : 0x0
...1 1111 = LCID : Padding (0x1f)
...1 1111 = LCID : 0x1f
MAC PDU Header only : MAC PDU Headers and body present (0)
SDU (1, length=105 bytes)
RLC-LTE UEId=71 [DL] [AM] SRB:1 [DATA] (P) sn=8 [103-bytes]
Context
Direction : Downlink (1)
RLC Mode : Acknowledged Mode (4)
UEId : 71
Channel Type : SRB (4)
Channel ID : 1
PDU Length : 105
AM Sequence number length : 10
AM
AM Header (P) sn=8
1... .... = Frame type : Data PDU
.0.. .... = Re-segmentation Flag : AMD PDU (0x0)
..1. .... = Polling Bit : Status report is requested (0x1)
...0 0... = Framing Info : First byte begins a RLC SDU and last byte ends a RLC SDU (0x0)
.... .0.. = Extension : Data field follows from the octet following the fixed part of the header (0x0)
.... ..00 0000 1000 = Sequence Number : 8
Sequence Analysis - OK
Previous frame for channel : 513
OK : True
AM Data : 08200602b13a790ba0482b90062830280a12121212292080087180888560b00087fffffffa85fb4108107180888560b00087fffffffa85fb4090187180888560b00087fffffffa85fb4918207180888560b00087fffffffa85fb49007dc4a63a931728b428c9ce
PDCP-LTE sn=8
Configuration : (direction=Downlink, plane=Signalling)
Direction : Downlink (1)
Plane : Signalling (1)
UE : 71
Channel type : DCCH (1)
Channel Id : 1
ROHC Compression : False
UE Security (ciphering=EEA0 (NULL), integrity=EIA2 (AES))
Configuration frame : 319
Ciphering Algorithm : EEA0 (NULL) (0)
Integrity Algorithm : EIA2 (AES) (2)
BEARER : 0
DIRECTION : Downlink (1)
COUNT : 8
000. .... = Reserved : 0
...0 1000 = Seq Num : 8
Sequence Analysis - OK
Previous frame for channel : 513
Expected SN : 8
OK : True
LTE Radio Resource Control (RRC) protocol
LTE Radio Resource Control (RRC) protocol
DL-DCCH-Message
message : c1 (0)
c1 : rrcConnectionReconfiguration (4)
LTE Radio Resource Control (RRC) protocol
rrcConnectionReconfiguration
rrc-TransactionIdentifier : 0
criticalExtensions : c1 (0)
c1 : rrcConnectionReconfiguration-r8 (0)
rrcConnectionReconfiguration-r8
...0 .... Optional Field Bit : False (measConfig is NOT present)
.... 0... Optional Field Bit : False (mobilityControlInfo is NOT present)
.... .1.. Optional Field Bit : True (dedicatedInfoNASList is present)
.... ..1. Optional Field Bit : True (radioResourceConfigDedicated is present)
.... ...0 Optional Field Bit : False (securityConfigHO is NOT present)
0... .... Optional Field Bit : False (nonCriticalExtension is NOT present)
dedicatedInfoNASList : 1 item
Item 0
DedicatedInfoNAS : 274f217409057200c506050142424242452410010e301110ac160010ffffffff50bf6821020e301110ac160010ffffffff50bf6812030e301110ac160010ffffffff50bf6923040e301110ac160010ffffffff50bf69
Non-Access-Stratum (NAS)PDU
0010 .... = Security header type : Integrity protected and ciphered (2)
.... 0111 = Protocol discriminator : EPS mobility management messages (0x7)
Message authentication code : 0x4f217409
Sequence number : 5
Ciphered message : 7200c506050142424242452410010e301110ac160010ffffffff50bf6821020e301110ac160010ffffffff50bf6812030e301110ac160010ffffffff50bf6923040e301110ac160010ffffffff50bf69
0111 .... = EPS bearer identity : EPS bearer identity value 7 (7)
.... 0010 = Protocol discriminator : EPS session management messages (0x2)
Procedure transaction identity : 0
NAS EPS session management messages : Activate dedicated EPS bearer context request (0xc5)
0000 .... = Spare half octet : 0
.... 0110 = Linked EPS bearer identity : EPS bearer identity value 6 (6)
EPS quality of service
Length : 5
Quality of Service Class Identifier (QCI) : QCI 1 (1)
Maximum bit rate for uplink : 80 kbps
Maximum bit rate for downlink : 80 kbps
Guaranteed bit rate for uplink : 80 kbps
Guaranteed bit rate for downlink : 80 kbps
Traffic Flow Template
Length : 69
001. .... = TFT operation code : Create new TFT (1)
...0 .... = E bit : Parameters list is not included
.... 0100 = Number of packet filters : 4
Packet filter : 0
00.. .... = Spare bit(s) : 0
..01 .... = Packet filter direction : Downlink only (1)
.... 0000 = Packet filter identifier : 1 (0)
Packet evaluation precedence : 0x01 (1)
Packet filter length : 0x0e (14)
Packet filter component type identifier : Protocol identifier/Next header type (48)
Protocol/header : UDP (0x11)
Packet filter component type identifier : IPv4 remote address type (16)
IPv4 address : 172.22.0.16
IPv4 address mask : 255.255.255.255
Packet filter component type identifier : Single remote port type (80)
Port : 49000
Packet filter : 1
00.. .... = Spare bit(s) : 0
..10 .... = Packet filter direction : Uplink only (2)
.... 0001 = Packet filter identifier : 2 (1)
Packet evaluation precedence : 0x02 (2)
Packet filter length : 0x0e (14)
Packet filter component type identifier : Protocol identifier/Next header type (48)
Protocol/header : UDP (0x11)
Packet filter component type identifier : IPv4 remote address type (16)
IPv4 address : 172.22.0.16
IPv4 address mask : 255.255.255.255
Packet filter component type identifier : Single remote port type (80)
Port : 49000
Packet filter : 2
00.. .... = Spare bit(s) : 0
..01 .... = Packet filter direction : Downlink only (1)
.... 0010 = Packet filter identifier : 3 (2)
Packet evaluation precedence : 0x03 (3)
Packet filter length : 0x0e (14)
Packet filter component type identifier : Protocol identifier/Next header type (48)
Protocol/header : UDP (0x11)
Packet filter component type identifier : IPv4 remote address type (16)
IPv4 address : 172.22.0.16
IPv4 address mask : 255.255.255.255
Packet filter component type identifier : Single remote port type (80)
Port : 49001
Packet filter : 3
00.. .... = Spare bit(s) : 0
..10 .... = Packet filter direction : Uplink only (2)
.... 0011 = Packet filter identifier : 4 (3)
Packet evaluation precedence : 0x04 (4)
Packet filter length : 0x0e (14)
Packet filter component type identifier : Protocol identifier/Next header type (48)
Protocol/header : UDP (0x11)
Packet filter component type identifier : IPv4 remote address type (16)
IPv4 address : 172.22.0.16
IPv4 address mask : 255.255.255.255
Packet filter component type identifier : Single remote port type (80)
Port : 49001
radioResourceConfigDedicated
.... .0.. Extension Bit : False
.... ..0. Optional Field Bit : False (srb-ToAddModList is NOT present)
.... ...1 Optional Field Bit : True (drb-ToAddModList is present)
0... .... Optional Field Bit : False (drb-ToReleaseList is NOT present)
.0.. .... Optional Field Bit : False (mac-MainConfig is NOT present)
..0. .... Optional Field Bit : False (sps-Config is NOT present)
...0 .... Optional Field Bit : False (physicalConfigDedicated is NOT present)
drb-ToAddModList : 1 item
Item 0
DRB-ToAddMod
0... .... Extension Bit : False
.1.. .... Optional Field Bit : True (eps-BearerIdentity is present)
..1. .... Optional Field Bit : True (pdcp-Config is present)
...1 .... Optional Field Bit : True (rlc-Config is present)
.... 1... Optional Field Bit : True (logicalChannelIdentity is present)
.... .1.. Optional Field Bit : True (logicalChannelConfig is present)
eps-BearerIdentity : 7
drb-Identity : 3
pdcp-Config
.... ...0 Extension Bit : False
1... .... Optional Field Bit : True (discardTimer is present)
.0.. .... Optional Field Bit : False (rlc-AM is NOT present)
..1. .... Optional Field Bit : True (rlc-UM is present)
discardTimer : ms100 (1)
rlc-UM
pdcp-SN-Size : len12bits (1)
headerCompression : notUsed (0)
notUsed : NULL
0... .... Extension Bit : False
rlc-Config : um-Bi-Directional (1)
um-Bi-Directional
ul-UM-RLC
sn-FieldLength : size10 (1)
dl-UM-RLC
sn-FieldLength : size10 (1)
t-Reordering : ms50 (10)
logicalChannelIdentity : 5
logicalChannelConfig
.... .0.. Extension Bit : False
.... ..1. Optional Field Bit : True (ul-SpecificParameters is present)
ul-SpecificParameters
.... ...1 Optional Field Bit : True (logicalChannelGroup is present)
priority : 2
prioritisedBitRate : infinity (7)
bucketSizeDuration : ms100 (1)
logicalChannelGroup : 1
MAC : 0xb428c9ce
Padding data : 0000000000
Padding length : 5
fake-field-wrapper : fake-field-wrapper
Hidden header
Rendered from a Wireshark PCAP by VisualEther.

Frame 844, eNB โ†’ UE 71. One RRC Connection Reconfiguration carries both halves of the voice bearer: the NAS Activate Dedicated EPS Bearer Context Request for the core network, and the DRB 3 radio configuration for the eNB and UE.

๐Ÿ’ก Navigating the tree. Top to bottom is descending the stack. Three paths worth expanding:

  • Down to the RRC message: mac-lte โ†’ RLC-LTE โ†’ PDCP-LTE โ†’ lte-rrc โ†’ DL-DCCH-Message โ†’ c1 โ†’ rrcConnectionReconfiguration โ†’ criticalExtensions.
  • The radio bearer: radioResourceConfigDedicated โ†’ drb-ToAddModList โ†’ drb-Identity: 3, pdcp-Config (discardTimer: ms100, pdcp-SN-Size: len12bits) and rlc-Config: um-Bi-Directional.
  • The core-network bearer: dedicatedInfoNASList โ†’ Non-Access-Stratum (NAS)PDU โ†’ Activate dedicated EPS bearer context request โ†’ EPS quality of service (QCI 1, the bit rates) and Traffic Flow Template (the packet filters).

Frames 852โ€“892 โ€” Preconditions met, then ringing. UE 70 sends PRACK to acknowledge the reliable 183. Then it sends UPDATE (frame 872) to say its own voice bearer is in place. UE 71 answers 200 OK (frame 886). Only then, with both preconditions satisfied, does it send 180 Ringing (frame 889). This ordering is the point of preconditions: a phone that rings before its voice bearer exists could be answered into silence.

Frames 973โ€“983 โ€” Answer. UE 71 answers with 200 OK 1.6 s after ringing, and UE 70's ACK completes the INVITE transaction.

Phase 8 โ€” Voice (frames 985โ€“1003)

sequenceDiagram accTitle: Phase 8 โ€” AMR-WB voice through the media relay accDescr: UE 70 sends RTP packets on its DRB 3 to the media relay, which forwards them to UE 71 on UE 71's DRB 3. UE 71's own stream starts soon after and flows the other way. Neither DRB 3 carries any RLC acknowledgements. participant A as UE 70 participant R as Media relay 172.22.0.16 participant B as UE 71 loop Every 20 ms while speech is sent A->>R: RTP AMR-WB (DRB 3, RLC UM) R->>B: RTP AMR-WB (DRB 3, RLC UM) end B->>R: RTP AMR-WB (reverse stream starts) R->>A: RTP AMR-WB

24 ms after the ACK, the first RTP packet leaves UE 70 on DRB 3 (frame 985): AMR-WB, PDCP SN 0 on the new bearer. 0.7 ms later the relay's copy reaches UE 71 on its own DRB 3 (frame 986), with the same RTP sequence number. The next packets follow 20 ms apart, matching the ptime:20 in the SDP. UE 71's reverse stream starts at frame 1002.

The 20 ms pace doesn't last. After seven speech packets, UE 70's stream drops to one small packet every 160 ms: 27 bytes of UDP instead of 53. That's AMR-WB silence suppression. When nobody is talking, the codec stops sending speech and sends a comfort-noise update every eighth frame instead, so the far end can play matching background noise. These lab phones spend most of the call in silence.

Compare these frames with the SIP frames on DRB 2. The voice PDUs carry no RLC poll bit and get no RLC Status PDUs, because RLC UM has neither. Meanwhile DRB 2 keeps its acknowledgements running: frame 988 is an RLC status for UE 71's signaling bearer, in the middle of the voice packets. The call lasts about 4.5 s.

Phase 9 โ€” Hang-up (frames 1143โ€“1156)

sequenceDiagram accTitle: Phase 9 โ€” Hang-up and voice bearer release accDescr: UE 71 sends BYE. The network deactivates the dedicated bearer on both phones, releasing DRB 3, and UE 70 answers the BYE with 200 OK. participant A as UE 70 participant eNB participant B as UE 71 B->>A: BYE (via IMS) eNB->>A: RRC Connection Reconfiguration (Deactivate EPS Bearer, release DRB 3) eNB->>B: RRC Connection Reconfiguration (Deactivate EPS Bearer, release DRB 3) A->>B: 200 OK (via IMS)

UE 71 hangs up with a BYE (frame 1143). 9 ms later both phones receive Deactivate EPS Bearer Context Request for bearer 7, cause "regular deactivation". In the same RRC messages, DRB 3 appears in drb-ToReleaseList (frames 1146โ€“1147). The BYE reaches UE 70 in frame 1149, and UE 70's 200 OK closes the dialog (frames 1154 and 1156).

After that, each phone is back to its two default bearers. The same cycle runs five more times. The second call goes the other way, with UE 71 dialing. The capture ends at 113 s with both phones still connected.

Why the capture was re-tagged

srsRAN writes each frame with a MAC-LTE framing header that includes a UE identity tag. It always writes 0. Wireshark uses that tag, not the C-RNTI, to keep each UE's RLC and PDCP state apart. With two phones on the cell, it merged them. In the original file, that shows up three ways:

The fix sets the UE identity tag of each C-RNTI frame to its C-RNTI. Nothing else in the file changes. The lesson applies to any multi-UE capture: before trusting an analysis flag, check that the tool is tracking UEs the way you think it is.

Takeaways

  1. An attach has a sequence. Random access โ†’ RRC setup โ†’ identity and authentication โ†’ NAS security โ†’ AS security โ†’ capabilities โ†’ default bearer.
  2. LTE secures the core and the radio separately. NAS and AS each run their own Security Mode handshake. IMS adds a third layer, IPsec, negotiated in SIP headers.
  3. One EPS bearer, one radio bearer. Each bearer the core creates (QCI 9 internet, QCI 5 IMS, QCI 1 voice) gets its own DRB with its own RLC and PDCP entities.
  4. SIP drives the radio. The 183 answer leads to the QCI-1 bearer, preconditions hold the 180 Ringing back until both bearers exist, and the BYE leads to the bearer's release. The three steps sit milliseconds apart on the wire.
  5. Voice uses RLC UM. No acknowledgements and no retransmissions: on a voice bearer, a late packet is worse than a lost one.
  6. Check what the tool assumes. A capture-format detail, a constant UE identity tag, was enough to fake retransmissions and hide a SIP INVITE.