SMEC is a practical, SLO-aware resource-scheduling framework for 5G/6G multi-access edge computing (MEC). It brings deadline-aware scheduling to MEC through completely decoupled resource managers at the RAN and edge — each making independent decisions without requiring RAN–edge coordination.
SMEC is described in our NSDI '26 paper, Enabling SLO-Aware 5G Multi-Access Edge Computing with SMEC.
- Project page: smec-project.github.io
- Paper (NSDI '26): PDF
This organization hosts the SMEC system implementation, example applications, evaluation harness, measurement tooling, and the project website. The repositories below are grouped by components.
| Repository | Role |
|---|---|
srsRAN_Project |
Fork of srsRAN with the SMEC RAN scheduler integrated into the MAC layer, plus controllers (smec_controller, tutti_controller, arma_controller) that ingest application/SLO signals and push priority updates to the scheduler. |
edge-manager |
Edge resource manager — user-space daemon that schedules CPU and GPU resources on edge servers using probe/RTT/app reports. Includes affinity control and CUDA priority control. |
client-prober |
Client-side timing daemon — TCP prober and report handlers (query/feedback, app/RTT) that run on the UE and feed signals to the edge manager. |
| Repository | Role |
|---|---|
edge-applications |
Example MEC use-case applications (video object detection, super-resolution, transcoding, file transfer) implemented for SMEC and baselines (default, ARMA, Tutti), along with the SMEC client/server API libraries under lib/. |
| Repository | Role |
|---|---|
auto-evaluation |
Automated evaluation scripts that reproduce the figures and results in the NSDI '26 paper. Orchestrates the components above on the UTNS testbed. |
smec-measurement |
5G network latency measurement system (uplink/downlink RTT, configurable packet sizes) used to characterize commercial 5G deployments. |
UE gNB Edge server
┌──────────────────┐ ┌──────────────────────┐ ┌─────────────────────┐
│ Application │ │ │ │ Offloaded tasks │
│ ──────────────── │ │ srsRAN │ │ ─────────────────── │
│ client-prober │◀── 5G ──▶│ + SMEC RAN scheduler │◀── Wired ──▶│ edge-manager │
│ (timing daemon) │ │ + Controller │ │ (CPU/GPU scheduler) │
└──────────────────┘ └──────────────────────┘ └─────────────────────┘
All traffic between client-prober and edge-manager traverses the 5G data path via the gNB — there is no out-of-band channel between them.
- edge-applications runs on top of
edge-manager(server side) andclient-prober(client side), linking against the SMEC API libraries inedge-applications/lib/. - auto-evaluation drives all of the above end-to-end on the UTNS testbed to reproduce paper results.
- smec-measurement is independent — it characterizes commercial 5G networks and motivates the design.
- Read the system overview on the project page.
- To reproduce paper results, start with
auto-evaluation— it points at every other repository and pins the configurations used in the paper. - To build a single component, see the README in that component's repository (each has its own build/run instructions).
@inproceedings{smec-nsdi26,
title = {Enabling SLO-Aware 5G Multi-Access Edge Computing with SMEC},
author = {Xiao Zhang and Daehyeok Kim},
booktitle = {Proceedings of the 23rd USENIX Symposium on Networked Systems Design and Implementation (NSDI)},
year = {2026}
}- Xiao Zhang — zx123@utexas.edu
- Daehyeok Kim — daehyeok@utexas.edu