This repository contains the implementation over ns-3 NR module (5G-LENA) of a Guaranteed Flow Bit Rate (GFBR) aware MAC scheduler based on Lyapunov Theory. In a nutshell, the scheduler aims to stabilize traffic flows, ensuring the required throughput for each flow based on their QoS requirements, while minimizing the radio resources allocated by base stations.
It has been tested in Ubuntu 22.04.3 LTS (Jammy Jellyfish)
.
Jupyter is used to generate plots.
The project contains a copy of ns-3 that includes 5G-LENA v2.5
.
The contrib/nr/examples folder contains an example, cttc-nr-traffic-3gpp-xr-qos-sched, to simulate XR traffic. This example allows to configurate the MAC scheduler used.
run.ipynb is a Jupyter notebook to automate experiment execution and to ease the generation of corresponding result figures.
Configure and compile ns-3.
$ ./ns3 configure --enable-examples --enable-tests
$ ./ns3 build
Run cttc-nr-traffic-3gpp-xr-qos-sched to test the scheduler.
$ ./ns3 run cttc-nr-traffic-3gpp-xr-qos-sched
The execution of this scenario generates the following logs:
- Scheduling decisions: alpha.txt [time (ms) | UE RNTI | RBGs allocated]
- Average throughput: res.txt [throughput (Mbps) | size (bytes) | time (ms)]
run.ipynb contains code snippets to reproduce the results shown in the paper.
Disclaimer: figures in manuscript are generated with Tikz using the same data.