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.
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.
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.
| Component | What it is | Role | Key interfaces |
|---|---|---|---|
| π§ smf | GGSN / PDN-GW (forked from erGW), evolving toward a full SMF | User-plane session anchor | GTP-C/U, PFCP, Gx, Gy, RADIUS/Diameter Gi/SGi |
| ποΈ udr | Converged HSS + UDR/UDM | Subscriber data | S6a Diameter, Nudr SBI, MILENAGE |
| π pcf | PCF + PCRF | Policy & PCC rules | Gx Diameter, Npcf SBI |
| π³ chf | CHF + OCS + OFCS | Online/offline charging | Gy/Ro, Rf Diameter, Nchf SBI |
| π¦ support-containers | Reusable images (e.g. srsran-4g) |
Interop & demos | podman/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.
Erlang/OTP Β· rebar3 Β· DIAMETER Β· GTP-C/U Β· PFCP Β· 3GPP SBI (HTTP/2) Β· MILENAGE Β·
Mnesia Β· OpenTelemetry Β· podman Β· srsRAN Β· Open5GS
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.
