Skip to main content
Ctrl+K

Sionna

  • Installation
  • Ray Tracing (RT)
  • Physical Layer (PHY)
  • System Level (SYS)
  • Research Kit (RK)
    • “Made with Sionna”
    • Citation
  • GitHub
  • PyPI
  • Installation
  • Ray Tracing (RT)
  • Physical Layer (PHY)
  • System Level (SYS)
  • Research Kit (RK)
  • “Made with Sionna”
  • Citation
  • GitHub
  • PyPI

Section Navigation

  • Quickstart
  • Setup
    • Platform Preparation
      • Bill of Materials
      • DGX Spark Setup
      • Jetson AGX Thor Setup
      • Jetson AGX Orin Setup
      • Custom Jetson Linux Kernel
      • Jetson Performance Tweaks
      • USRP Driver Installation
      • USRP X410 Configuration
      • SIM Card Programming
      • Using RF Simulator Mode
      • Quectel Modem Setup
    • Software Configuration
      • OpenAirInterface Setup
      • 5G System Configuration
      • Sionna Installation
    • Your First Call
      • Connect & Test Performance
    • Documentation of Scripts
      • quickstart-oai.sh
      • quickstart-cn5g.sh
      • configure-system.sh
      • install-usrp.sh
      • build-custom-kernel.sh
      • install-custom-kernel.sh
      • start_system.sh
      • stop_system.sh
      • generate-configs.sh
      • build-cn5g-images.sh
      • build-oai-images.sh
      • get-config-changes.sh
      • get-oai-changed-files.sh
      • get-oai-cn5g-changed-files.sh
      • get-oai-cn5g-commit-versions.sh
      • get-oai-commit-versions.sh
    • System Upgrades
  • Tutorials
    • Running the Tutorials
    • Plugins & Data Acquisition
    • RAN Intelligent Controller (RIC) & xApps
    • GPU-Accelerated LDPC Decoding
      • Part 1: Background & Python Reference Implementation
      • Part 2: CUDA Implementation
    • Integration of a Neural Demapper
      • Neural Demapper Training and TensorRT Export
      • Part 2: GPU-Accelerated inference
    • 5G NR PUSCH Neural Receiver
    • Software-defined End-to-End 5G Network
    • Link Adaptation Algorithms
      • OAI’s Link Adaptation Algorithm
      • Inner & Outer Loop Link Adaptation Algorithm (ILLA & OLLA)
      • Configuration and Usage
    • Real-time Channel Emulator
    • Debugging & Troubleshooting
  • Get the Code
  • Research Kit (RK)
  • Tutorials
  • Link Adaptation Algorithms

Link Adaptation Algorithms#

Link Adaptation Overview

Fig. 25 Link adaptation is called by the scheduling algorithm and takes HARQ feedback, effective SINR, and scheduling decisions as inputs to determine the optimal MCS.#

Link adaptation is a fundamental technique in wireless communication systems that dynamically selects the optimal modulation and coding scheme (MCS) to maximize throughput while keeping the block error rate (BLER) close to a target value. The goal is to utilize the available channel capacity as efficiently as possible without exceeding reliability constraints that could impact higher-layer communication and latency requirements.

The link adaptation function is typically called by the scheduling algorithm, which determines allocation of user data to physical resource blocks (PRBs). For example, the OAI gNB’s MAC scheduler applies a proportional fairness (PF) scheduler that balances throughput and fairness among users. The commonly used target BLER value is 10%, which provides a good balance between throughput and reliability.

Link adaptation algorithms typically obtain ACK/NACK feedback from HARQ (Hybrid Automatic Repeat Request) and adjust the MCS selection accordingly. In 5G NR, the frame structure can also be configured to include channel state information reference signals (CSI-RS) in the downlink, allowing the user equipment (UE) to report a channel quality indicator (CQI) index in a subsequent uplink transmission. Although important, the CQI report is typically delayed, outdated, and reported in a quantized form (with values ranging from 0 to 15), limiting its utility for accurate link adaptation.

Link Adaptation Result Preview

Fig. 26 MCS comparison of various link adaptation algorithms for an abrupt channel quality increase at time t=0s. Faster adaptation to higher spectral efficiency ultimately results in higher throughput and more resource efficient transmission (see [SALADPaper] for details).#

In this tutorial, you will learn:

  • How link adaptation works in the OAI gNB MAC scheduler

  • How to develop and load MAC layer plugins using the OAI Shared Library Loader

  • How to implement Outer Loop Link Adaptation (OLLA) and advanced variants

  • How to collect and analyze link adaptation statistics from a running system

This tutorial demonstrates several link adaptation algorithm variants:

  • OAI’s original Link Adaptation (OAI-LA): The default algorithm implemented in the OpenAirInterface (OAI) gNB MAC scheduler that uses a sampling-based MCS selection.

  • Outer Loop Link Adaptation (OLLA): The industry-standard algorithm that maintains an adaptive SINR offset based on HARQ feedback. This tutorial starts with a simple OLLA implementation that requires minimal adaptation of the OAI gNB MAC and operates on scheduling statistics.

  • Advanced OLLA (recommended): Enhanced version with a per-UE HARQ feedback history list and a sigmoid-fit ILLA (Inner Loop Link Adaptation) that interpolates BLER across MCS and code block size.

The MAC plugin architecture introduced here is not limited to link adaptation — it can be used for any MAC layer feature that can be implemented as a dynamically loaded library.

For a simulation-based introduction to link adaptation, see the Sionna Link Adaptation Tutorial. For further details on the development of more advanced link adaptation algorithms, including results from real-world over-the-air experiments, we refer to [SALADPaper].

  • OAI’s Link Adaptation Algorithm
  • Inner & Outer Loop Link Adaptation Algorithm (ILLA & OLLA)
  • Configuration and Usage

References#

[SALADPaper] (1,2)
  1. Wiesmayr, L. Maggi, S. Cammerer, J. Hoydis, F. Aït Aoudia, and A. Keller, “SALAD: Self-Adaptive Link Adaptation,” arXiv preprint arXiv:2510.05784, 2024.

previous

Software-defined End-to-End 5G Network

next

OAI’s Link Adaptation Algorithm

On this page
  • References

This Page

  • Show Source

© Copyright 2021-2026 NVIDIA CORPORATION.

Created using Sphinx 9.1.0.

Built with the PyData Sphinx Theme 0.16.1.