Skip to content
@smec-project

SMEC: SLO-Aware Cellular Multi-Access Edge Computing

SMEC: SLO-Aware Cellular Multi-Access Edge Computing

SMEC

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.


Repository Map

This organization hosts the SMEC system implementation, example applications, evaluation harness, measurement tooling, and the project website. The repositories below are grouped by components.

Core system

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.

Applications and APIs

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/.

Evaluation and measurement

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.

How the pieces fit together

          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) and client-prober (client side), linking against the SMEC API libraries in edge-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.

Getting started

  1. Read the system overview on the project page.
  2. To reproduce paper results, start with auto-evaluation — it points at every other repository and pins the configurations used in the paper.
  3. To build a single component, see the README in that component's repository (each has its own build/run instructions).

Citation

@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}
}

Contact

Popular repositories Loading

  1. client-prober client-prober Public

    C++ 2

  2. smec-measurement smec-measurement Public

    Python 2

  3. srsRAN_Project srsRAN_Project Public

    C++ 1

  4. edge-manager edge-manager Public

    C++ 1

  5. auto-evaluation auto-evaluation Public

    Python 1

  6. edge-applications edge-applications Public

    C++ 1

Repositories

Showing 8 of 8 repositories

People

This organization has no public members. You must be a member to see who’s a part of this organization.

Top languages

Loading…

Most used topics

Loading…