Link Adaptation & HARQ
Link Adaptation dynamically adjusts transmission parameters based on real-time channel conditions. Combined with HARQ and its round-trip timing, it forms the closed-loop system that maximizes spectral efficiency in 5G NR. Covers MCS selection, CQI reporting, OLLA, and HARQ RTT.
#1The Link Adaptation Loop
The link adaptation loop tracks the channel and adjusts transmission parameters every slot (or few slots):
Real-time link adaptation — watch MCS, CQI, and throughput track channel conditions slot-by-slot
What Gets Adapted?
| Parameter | What Changes | Controlled By | Speed |
|---|---|---|---|
| Modulation order | QPSK → 16QAM → 64QAM → 256QAM | MCS index | Per-slot |
| Code rate | 0.076 → 0.926 | MCS index | Per-slot |
| Layers | 1 → 4 spatial streams | RI report | Per-slot |
| PRBs | 1 → 273 PRBs | Scheduler | Per-slot |
| Beam direction | SSB beam selection | Beam mgmt | Per-slot |
#2MCS — Modulation and Coding Scheme
The MCS index simultaneously specifies modulation order and target code rate. It is the primary output of link adaptation:
MCS table — drag to see modulation, code rate, and spectral efficiency change in real-time
MCS Tables — 3 Options
| Table | Max Modulation | Used For | MCS Range |
|---|---|---|---|
| Table 1 (Default) | 256QAM | eMBB data | 0–27 |
| Table 2 (Low SE) | 64QAM | URLLC | 0–27 |
| Table 3 (Coverage) | 64QAM | Coverage enhancement | 0–28 |
#3CQI — Channel Quality Indicator
The UE reports a CQI index (1–15) that maps to the highest modulation/code rate it can decode at ≤ 10% BLER:
CQI selection — UE finds the highest CQI where estimated BLER ≤ 10% at the measured SINR
CQI Table (TS 38.214)
| CQI | Modulation | Code Rate | SE (bps/Hz) | ≈ SNR |
|---|---|---|---|---|
| 1 | QPSK | 0.117 | 0.234 | -6 dB |
| 4 | QPSK | 0.439 | 0.877 | 0 dB |
| 7 | 16QAM | 0.379 | 1.516 | 5 dB |
| 9 | 16QAM | 0.602 | 2.406 | 9 dB |
| 11 | 64QAM | 0.554 | 3.322 | 13 dB |
| 13 | 64QAM | 0.754 | 4.523 | 17 dB |
| 15 | 256QAM | 0.926 | 7.406 | 22 dB |
CQI Reporting Modes
| Mode | Trigger | Channel | Granularity |
|---|---|---|---|
| Periodic (P-CSI) | RRC configured | PUCCH | Wideband only |
| Aperiodic (A-CSI) | DCI request | PUSCH | Subband OK |
| Semi-Persistent (SP-CSI) | MAC CE | PUCCH/PUSCH | Configurable |
#4Transport Block Size (TBS)
TBS Determination (TS 38.214 §5.1.3.2):
Step 1: N_info = N_RE × R × Q_m × ν
Step 2: If N_info ≤ 3824:
TBS = max(24, 2^n × round(N_info / 2^n))
If N_info > 3824:
TBS = max(3840, 2^n × round((N_info-24) / 2^n)) + 24
Step 3: If TBS > 8448 → segment into C code blocks
Example: MCS=20, 50 PRBs, 2 layers
N_RE = 50×132 = 6600
N_info = 6600 × 0.7109 × 6 × 2 = 56,303
TBS ≈ 55,320 bits → 7 code blocks
#5Outer Loop Link Adaptation (OLLA)
OLLA adjusts MCS selection to track the actual BLER toward the target (10%):
On ACK (success)
OLLA_offset += Δ_up (small step, e.g., 0.01 dB)
Increase MCS — be more aggressive
On NACK (failure)
OLLA_offset -= Δ_down (large step, e.g., 0.1 dB)
Decrease MCS — be more conservative
Step Size Ratio
Δ_down / Δ_up = (1 - BLER_target) / BLER_target
For 10% target: Δ_down/Δ_up = 0.9/0.1 = 9 → convergence guaranteed
OLLA convergence — watch the offset adapt slot-by-slot to maintain target BLER ≈ 10%
#6HARQ Round-Trip Time (RTT)
The HARQ RTT is the time between initial transmission and earliest possible retransmission. It determines pipeline depth and throughput efficiency:
HARQ timeline — adjust K1 and scheduling delay to see RTT impact on pipeline utilization
Key Timing Parameters
| Parameter | Definition | Typical Range |
|---|---|---|
| K1 | PDSCH → HARQ-ACK delay (slots) | 1–15 (typically 2–4) |
| N1 | UE PDSCH processing time (symbols) | 3–20 (depends on UE cap) |
| K2 | DCI → PUSCH delay (slots) | 1–36 (typically 2–4) |
| N2 | UE PUSCH preparation time (symbols) | 5–36 (depends on UE cap) |
Pipeline Utilization
Utilization = min(1, N_HARQ / HARQ_RTT)
If RTT = 5 slots, 16 processes → 31% utilization. If RTT = 16 slots → 100% (full pipeline). RTT > 16 slots → pipeline stall → throughput drops.
#7HARQ-ACK Multiplexing & Bundling
Multiplexing (per-process)
Each HARQ process gets its own ACK/NACK bit. Payload: [ACK, NACK, ACK] = [1,0,1]. Precise but higher overhead.
Bundling (AND logic)
Multiple ACKs are AND-combined. If any failed → NACK for all. Lower overhead, more conservative.
| PUCCH Format | Max Bits | Used For |
|---|---|---|
| 0 | 1–2 | 1–2 HARQ-ACK (no SR/CSI) |
| 1 | 1–2 | 1–2 bits with SR |
| 2 | > 2 | Multiple ACK + CSI + SR |
| 3 | > 2 | Large payload (long PUCCH) |
#8New Data Indicator (NDI)
The NDI is a 1-bit DCI field that toggles to distinguish new data from retransmissions:
NDI Toggle Rule
NDI_current ≠ NDI_previous→ NEW transmission (flush soft buffer)NDI_current = NDI_previous→ RETRANSMISSION (combine with stored LLRs)
Example HARQ process #3: TX #1: NDI=0 → UE: "toggled → new data" → flush buffer, decode TX #2: NDI=0 → UE: "no toggle → reTX" → combine + decode TX #3: NDI=1 → UE: "toggled → new data" → flush buffer, decode
#9Link Adaptation Performance Metrics
| KPI | Target | Too High | Too Low |
|---|---|---|---|
| First-TX BLER | 10% | >20% → MCS too aggressive | <3% → MCS too conservative |
| Residual BLER | <0.1% | >1% → HARQ not recovering | — |
| ReTX Rate | <15% | >25% → excessive overhead | <3% → wasting capacity |
| CQI Accuracy | ±1 index | Monitor vs optimal CQI (offline analysis) | |
#10Practical Field Considerations
| Pitfall | Impact | Best Practice |
|---|---|---|
| OLLA not converged | Wrong MCS → reTX storm or wasted capacity | Monitor OLLA offset; ±2 dB steady-state |
| Stale CQI in mobility | MCS mismatch → BLER spike | Short CQI period (<20 ms) for mobile UEs |
| K1 too small | ACK timing violation | Verify K1 ≥ N1 for UE capability |
| HARQ pipeline stall | Throughput drops 20-40% | Reduce K1 or add HARQ processes |
| Ignoring subband CQI | Missing 10-30% freq-selective gain | Enable aperiodic subband CQI for cell-center |
| Wrong BLER target | Over/under-provisioning | Standard: 10% first-TX BLER |
LTE vs 5G NR Link Adaptation
| Aspect | LTE | 5G NR |
|---|---|---|
| MCS tables | 1 table | 3 tables (64QAM/256QAM/low-SE) |
| HARQ processes | 8 (FDD) | 16 |
| HARQ timing | Fixed (4 subframes FDD) | Flexible (K1/K2 per-slot) |
| Min HARQ RTT | 8 ms | 2-5 slots (0.5-2.5 ms) |
| CQI reporting | Periodic + aperiodic | + semi-persistent |
#11Further Reading
3GPP Specifications
- TS 38.214 — NR Physical Layer Procedures for Data (MCS, TBS, CQI, HARQ)
- TS 38.213 — NR Physical Layer Procedures (HARQ-ACK timing, K1, K2)
- TS 38.212 — NR Multiplexing and Channel Coding
Companion Resources
Channel Coding Page → Spatial Multiplexing Page → ☆ AI Scheduling → ☆ NTN MAC →