1xBTS 1xBTS

Protocol Layers (MAC/LAC)

The two key sublayers between the physical layer and Layer 3 — MAC and LAC — handle multiplexing, reliable delivery, and message framing.

Layer Model

CDMA2000 protocol layer model

Layer 3 generates signaling messages (SDUs). The LAC wraps them in PDUs with sequence numbers and CRC for reliable delivery. The MAC multiplexes signaling with voice/data traffic into physical layer frames.

MAC Sublayer

The MAC (Medium Access Control) sublayer multiplexes signaling and user traffic into fixed-size frames for the physical layer.

MuxPDU Type 1

RC1 and RC3 use MuxPDU Type 1 framing. At full rate (9600 bps), each 20 ms frame carries 172 information bits. A 4-bit header controls how those bits are split between traffic and signaling:

ModeHeaderTrafficSignalingDescription
Traffic only0___171 bits0Normal voice/data frame
Dim-and-burst100080 bits88 bitsReduced traffic + signaling
Dim-and-burst100140 bits128 bitsMore signaling capacity
Dim-and-burst101016 bits152 bitsMostly signaling
Blank-and-burst10110168 bitsAll signaling, no traffic

At sub-full rates (4800/2400/1200 bps), there is no MuxPDU header — the entire frame is primary traffic. Signaling can only be carried at full rate.

Dim-and-Burst vs. Blank-and-Burst

  • Dim-and-burst reduces voice quality slightly to make room for signaling alongside active speech. Used for in-call power control messages, data bursts during voice, etc.
  • Blank-and-burst replaces the entire frame with signaling. Used for call setup messages, service negotiation, and other control messages where a brief voice interruption is acceptable.

The mobile transmits at variable rates. All rates produce the same number of code symbols after encoding (576 for RC3), so the base station must try each rate and check the CRC:

RateInfo BitsCRCRepetition
9600 bps (full)172CRC-121x
4800 bps (half)80CRC-82x
2400 bps (quarter)40None4x
1200 bps (eighth)16None8x

The receiver Viterbi-decodes the frame and tests CRC at each rate. The first rate that passes CRC determines the frame content.

LAC Sublayer

The LAC (Link Access Control) sits between Layer 3 and MAC. It implements the ARQ mechanism for guaranteed message delivery, handles addressing, and fragments long messages across multiple frames.

LAC Processing Pipeline

A Layer 3 message passes through several sublayers within LAC before reaching the MAC:

Layer 3 SDU (e.g., Service Connect Message)

ARQ Sublayer       Add MSG_SEQ, ACK_SEQ, ACK_REQ

Addressing         Add ADDR_TYPE + address (for paging channel)

Utility            Add MSG_TYPE, ENCRYPTION field, padding

SAR                Add MSG_LENGTH, compute CRC-16, fragment

MAC                Wrap in MuxPDU header, schedule frame

ARQ — Assured Delivery

LAC ARQ assured delivery diagram

ARQ (Automatic Repeat Request) ensures critical messages are received. Each PDU carries sequence fields:

FieldBitsPurpose
MSG_SEQ3Sequence number of this PDU (0-7, modulo 8)
ACK_SEQ3Sequence number of the PDU being acknowledged
ACK_REQ1Whether an acknowledgment is requested
VALID_ACK1Whether the ACK_SEQ field is valid (f-csch/r-csch only)

For mini PDUs on the dedicated channel, the sequence space is smaller: 2-bit MSG_SEQ/ACK_SEQ (0-3, modulo 4).

Assured Mode (ACK_REQ = 1)

When a message requires guaranteed delivery:

  1. Transmitter sends the PDU with a unique MSG_SEQ and ACK_REQ=1
  2. A copy is stored for possible retransmission
  3. If no acknowledgment arrives within the timeout (T1m = 400 ms for regular, T75m = 120 ms for mini), retransmit with the same MSG_SEQ
  4. Continue retransmitting until acknowledged or max attempts reached
  5. The receiver sends back the MSG_SEQ value in the ACK_SEQ field of its next PDU

Unassured Mode (ACK_REQ = 0)

For less critical messages or acknowledgment-only PDUs:

  1. PDU may be sent multiple times for robustness
  2. No acknowledgment is expected
  3. All transmissions use the same MSG_SEQ
  4. After the last transmission, wait T3m (320 ms) before reusing the same MSG_SEQ for a different unassured PDU

Sequence Number Tracking

Separate MSG_SEQ counters are maintained for each combination of:

  • Channel — Forward common (f-csch), reverse common (r-csch), forward dedicated (f-dsch), reverse dedicated (r-dsch)
  • PDU type — Regular vs. mini (on dedicated channels)
  • Destination — (address_type, address, ack_req) on the paging channel

This means the base station may be tracking dozens of independent sequence streams simultaneously — one per registered mobile on the paging channel, plus separate streams for each active traffic channel.

Duplicate Detection

The receiver maintains a sliding window of recently seen sequence numbers:

  1. When MSG_SEQ=k arrives and hasn’t been seen: process it, mark it seen, clear (k+4) mod 8
  2. When MSG_SEQ=k arrives and was already seen: it’s a duplicate — send the ACK again but don’t deliver to Layer 3

This sliding window of 4 consecutive sequence numbers handles both retransmissions and natural wrap-around of the 3-bit sequence space.

Outstanding PDU Limits

The transmitter can have multiple unacknowledged PDUs in flight, but with limits:

  • Regular PDUs: Up to 4 outstanding (waiting for ACK)
  • Mini PDUs: Up to 2 outstanding

If the window is full, the transmitter blocks until an acknowledgment frees a slot.

T4m Reuse Enforcement (Paging Channel)

On the forward common channel, a special rule prevents sequence number confusion. After transmitting a PDU with MSG_SEQ=k to a specific mobile, the base station must wait at least T4m = 2.2 seconds before reusing MSG_SEQ=k for a different PDU to the same mobile.

First TX (MSG_SEQ=k)      Last retransmit         T4m expires → can reuse k
        |                       |                        |
        ├── retransmissions ────┤──── 2.2s cooldown ─────┤

ARQ Timers

TimerValuePurpose
T1m400 msRetransmission timeout for regular PDUs
T2m200 msMax time for MS to send ack (regular)
T3m320 msDuplicate detection window (unassured regular)
T4m2.2 sMSG_SEQ reuse cooldown on paging channel
T75m120 msRetransmission timeout for mini PDUs
T76m60 msMax time for MS to send ack (mini)
T77m20 msDuplicate detection window (unassured mini)
ConstantValuePurpose
N1m13Max transmissions of a regular PDU (MS → BS)
N14m6Number of mini PDU retransmits using T75m before falling back to T1m
N15m17Max transmissions of a mini PDU (MS → BS)

SAR — Segmentation and Reassembly

Long messages are fragmented across multiple frames by the SAR sublayer.

SAR Encapsulation

Before fragmentation, each PDU is wrapped in a SAR envelope:

MSG_LENGTH (8 bits) | LAC PDU (variable) | CRC-16 (16 bits)
  • MSG_LENGTH — Total octets in the MSG_LENGTH + LAC PDU portion
  • CRC-16 — CRC-16-CCITT (polynomial x^16 + x^12 + x^5 + 1) computed over MSG_LENGTH + LAC PDU

Fragmentation

The SAR data block is split into fragments that fit in a single frame’s signaling allocation (168 bits for blank-and-burst). Each fragment gets a 1-bit SOM (Start of Message) prefix:

SOMMeaning
1First fragment of a new message
0Continuation fragment

Fragment capacity: 168 - 1 (SOM) = 167 bits per frame.

Single-Frame Example

A short message like a BS Ack Order (40-bit PDU) fits in one frame:

SAR data:   8 (MSG_LENGTH) + 40 (PDU) + 16 (CRC-16) = 64 bits
Fragment:   1 (SOM) + 64 (SAR data) + 103 (zero padding) = 168 bits
MuxPDU:     4 (header: 1011 = blank-and-burst) + 168 = 172 info bits
Physical:   172 + 12 (CRC-12) + 8 (tail) = 192 encoder input bits

Multi-Frame Example

A longer message like a Service Connect Message (~200 bits) requires two frames:

SAR data:    8 + ~200 + 16 = ~224 bits
Fragment 1:  SOM=1 + 167 bits of SAR data        (168 bits)
Fragment 2:  SOM=0 + 57 bits of SAR data + pad   (168 bits)

The receiver reassembles by collecting SOM=0 fragments until the next SOM=1, then validates the CRC-16 over the complete SAR data block.

Channel-Specific Messaging

Paging Channel (f-csch)

Broadcast messages (System Parameters, Access Parameters, Neighbor List) are sent without ARQ fields — they’re transmitted periodically and any mobile that misses one will catch the next cycle.

Directed messages (General Page, Channel Assignment) include full ARQ and addressing fields:

MSG_TAG(8) | ACK_SEQ(3) | MSG_SEQ(3) | ACK_REQ(1) | VALID_ACK(1) |
ADDR_TYPE(3) | ADDR_LEN(4) | ADDRESS(variable) | SDU | padding

Access Channel (r-csch)

Mobile-initiated messages (Registration, Origination, Page Response) include ARQ fields plus identity:

MSID_TYPE(3) | MSID(variable) | ACK_SEQ(3) | MSG_SEQ(3) | ACK_REQ(1) |
VALID_ACK(1) | ACK_TYPE(3) | SDU | padding

Each access probe is an independent frame. The mobile retransmits with incrementing MSG_SEQ until acknowledged.

Traffic Channel (f-dsch / r-dsch)

Signaling on the traffic channel uses blank-and-burst or dim-and-burst MuxPDU framing:

MuxPDU Header(4) | SOM(1) | MSG_LENGTH(8) | MSG_TYPE(8) | ACK_SEQ(3) |
MSG_SEQ(3) | ACK_REQ(1) | ENCRYPTION(2) | SDU | padding | CRC-16(16)

When the base station needs to send an acknowledgment but has no pending Layer 3 message, it sends a BS Ack Order — a minimal PDU whose only purpose is to carry the ACK_SEQ field back to the mobile.