Skip to content
View next-nf's full-sized avatar
  • Next-NF
  • Berlin
  • 11:08 (UTC +02:00)

Block or report next-nf

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
next-nf/README.md

Hi, I'm Nathan 👋

Telco Engineer by day, hobbyist coder by night.
Deep diving into 3GPP and packet core logic. 📍 Berlin

🛠️ Current mission: Learning Erlang to build scalable mobile-core systems.


About me

I've been building telco software for ~20 years. I discovered Erlang in 2011 and have reached for it on and off ever since — it was born at Ericsson to run telephone switches, so using it for 3GPP network functions feels like bringing the workload home.

More recently I came across erGW, Travelping's Erlang PGW/GGSN, and was immediately intrigued — and then saddened to find it seemingly abandoned, no longer publicly maintained. I wanted to play with it, and to genuinely learn and use Erlang for 3GPP systems. So I forked it and started building.

Along the way I found that combining AI-assisted "vibe coding" with deep domain expertise is a remarkably good match — the domain knowledge keeps the AI honest, and the AI keeps the momentum up. next-nf is where that combination plays out.


🚀 The next-nf mission

Resurrect and grow a forked PGW into a full, open-source 3GPP core network in Erlang/OTP — spanning the 4G/EPC and 5GC worlds — and surround it with the control-plane and charging functions a real core needs.

🌐 Project site:next-nf — open-source 3GPP mobile core in Erlang/OTP

ComponentWhat it isRoleKey interfaces
🧠 smfGGSN / PDN-GW (forked from erGW), evolving toward a full SMFUser-plane session anchorGTP-C/U, PFCP, Gx, Gy, RADIUS/Diameter Gi/SGi
🗂️ udrConverged HSS + UDR/UDMSubscriber dataS6a Diameter, Nudr SBI, MILENAGE
📐 pcfPCF + PCRFPolicy & PCC rulesGx Diameter, Npcf SBI
💳 chfCHF + OCS + OFCSOnline/offline chargingGy/Ro, Rf Diameter, Nchf SBI
📦 support-containersReusable images (e.g. srsran-4g)Interop & demospodman/buildah → GHCR

Where it's headed:

  • 🔧 Maintain and enhance the forked PGW — and grow it into a full SMF (combined SMF+PGW).
  • 🧩 Build out the supporting functions: PCRF/PCF, OCS/OFCS/CHF, and converged subscriber data.
  • 🧪 Prove it works against the real open-source stack — srsRAN UEs and Open5GS, with CI-gated interop demos.

🧰 Toolbox

Erlang/OTP · rebar3 · DIAMETER · GTP-C/U · PFCP · 3GPP SBI (HTTP/2) · MILENAGE · Mnesia · OpenTelemetry · podman · srsRAN · Open5GS


🤝 Commercial support?

I'm considering offering commercial support for these components — maintenance, integration help, feature work — but I haven't decided yet. If that's something you'd find useful, I'd love to talk it through and see if there's a fit.

📫 Let's have a discussion: next-nf@proton.me


Putting modern 3GPP network functions back on the runtime that was designed for telecom in the first place.

Popular repositories Loading

  1. smf smfPublic

    Forked from travelping/ergw

    3GPP GGSN / PDN-GW in Erlang/OTP (forked from Travelping erGW), evolving toward a full SMF. GTP-C/U, PFCP, Gx/Gy, RADIUS/Diameter on Gi/SGi.

    Erlang

  2. erlando erlandoPublic

    Forked from travelping/erlando

    Erlando

    Erlang

  3. gtplib gtplibPublic

    Forked from travelping/gtplib

    Erlang GTPv1/GTPv2 library

    Erlang

  4. pfcplib pfcplibPublic

    Forked from travelping/pfcplib

    Erlang library for encoding and decoding Packet Forwarding Control Protocol (PFCP) frames.

    Erlang

  5. ergw_aaa ergw_aaaPublic

    Forked from travelping/ergw_aaa

    Erlang AAA session implementation for erGW

    Erlang

  6. zoneinfo zoneinfoPublic

    Forked from RoadRunnr/zoneinfo

    zoneinfo implemented in Erlang

    Erlang