Skip to content

Repository files navigation

SCP-Tracer

An OpenTelemetry-based tracing proxy for a 5G core's Service-Based Interface (SBI) traffic. It classifies each SBI call into a 5G procedure (UE Registration, PDU Session Establishment, ...) and correlates the calls belonging to one UE's one procedure into a single trace.

  • The contribution is src/scp-tracer.
  • Everything else in this repo is the evaluation testbed used to benchmark it.

Repository structure

src/
  scp-tracer/                   The OTel tracing proxy
  open5gs/                      Dockerfiles that build the 5G core
  ueransim/                     Dockerfiles that build the RAN
conf/                           per-stack configs for each NF
docker-compose-cn*.yaml         compose file per stack (described below)
docker-compose-ran-bulk.yaml    gNB + UE simulator
scripts/                        UE provisioning helpers
evaluation/                     the paper evaluation scripts and results

Stacks

Compose file Proxy Deployment model Traces
docker-compose-cn.yaml none Model B no
docker-compose-cn-scp.yaml Open5GS SCP Model C no
docker-compose-cn-scp-d.yaml Open5GS SCP Model D no
docker-compose-cn-scp-tracer.yaml scp-tracer Model C yes
docker-compose-cn-scp-tracer-d.yaml scp-tracer Model D yes
docker-compose-cn-scp-traefik.yaml Traefik Model C yes
docker-compose-cn-scp-traefik-d.yaml Traefik Model D yes

Quickstart

Prerequisites: Docker with Compose v2, and a Linux host.

Each core-network stack only exposes two ports to the host: MongoDB (27017/tcp); and Jaeger (16686/tcp).

Clone the repository:

git clone https://github.com/simula/anservapp26.git
cd anservapp26

Build the base images:

docker build -t base-open5gs:v2.7.6 -f src/open5gs/base/Dockerfile .
docker build -t base-ueransim:v3.2.7 -f src/ueransim/base/Dockerfile .

Then bring up the stacks:

# 1. bring up a core-network stack
docker compose -f docker-compose-cn-scp-tracer.yaml up -d --build

# 2. provision some subscribers in DB
scripts/add-ues.sh 20

# 3. bring up the RAN and UEs
N_UES=20 docker compose -f docker-compose-ran-bulk.yaml up -d --build

# 4. view traces
open http://localhost:16686

Tear down:

docker compose -f docker-compose-ran-bulk.yaml down
docker compose -f docker-compose-cn-scp-tracer.yaml down

Swap the compose file in step 1 for any of the stacks above.

Reproducing the evaluation

cd evaluation
./run_all.sh        # runs 10 times by default; ./run_all.sh 5 for 5 runs

Raw results land in evaluation/results/*.csv (registration_latency.csv, pdu_latency.csv, resource_consumption.csv).

The paper also compares against 5gmap (MobiCom 2025). That baseline's code isn't included here. Clone and build it from their repo if you want to reproduce that comparison.

License

AGPL-3.0, see LICENSE.

The Docker/Compose tooling (src/open5gs/*/Dockerfile, conf/, docker-compose-cn*.yaml) is adapted (2026) from Borjis131/docker-open5gs.

Citation

@inproceedings{mekrache2026scp,
  title        = {SCP-Tracer: Procedure-Aware 5G Core Tracing},
  author       = {Mekrache, Abdelkader and Cicic, Tarik},
  booktitle    = {2026 22nd International Conference on Network and Service Management (CNSM)},
  pages        = {1--6},
  year         = {2026},
  organization = {IEEE}
}

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages