How yigitcemakbas/n3-accelerator works
This is an XDP-based 5G GTP-U router with a Go control plane. The principal workflow is: an administrator configures subscriber forwarding rules, the control plane writes them to pinned eBPF maps, and the attached kernel program handles uplink decapsulation or downlink encapsulation, NAT, rate limiting, quarantine, and redirect. The dashboard reads rule tables and verdict statistics. The README documents these capabilities; sampled source confirms map access, attachment, and selected packet-processing behavior, but does not expose every datapath branch.
Main entry points: gtp_xdp.c XDP packet engine · maps.go Map access · cmd CLI commands · dashboard.go Terminal dashboard
Components 18
Kernel dataplane
- XDP packet engine
gtp-router/ebpf/gtp_xdp.c - Uplink decap
gtp-router/ebpf/gtp_xdp.c - Downlink encap
gtp-router/ebpf/gtp_xdp.c - Static NAT
gtp-router/ebpf/gtp_xdp.c - Rate quarantine
gtp-router/ebpf/gtp_xdp.c
Pinned BPF state
- TEID rules
gtp-router/control/maps/maps.go - UE IP rules
gtp-router/control/maps/maps.go - NAT rules
gtp-router/control/maps/maps.go - Redirect devmap
gtp-router/control/maps/maps.go - Verdict counters
gtp-router/control/stats/stats.go
Control plane
- CLI commands
gtp-router/control/cmd - XDP loader
gtp-router/control/loader/loader.go - Map access
gtp-router/control/maps/maps.go
Monitoring
- Terminal dashboard
gtp-router/control/tui/dashboard.go - Stats reader
gtp-router/control/stats/stats.go
Other components
- Administrator
- GTP-U traffic
- Network interfaces
Connections 22
- Administrator → CLI commands: configures
- CLI commands → Map access: manages rules
- Map access → TEID rules: writes rules
- Map access → UE IP rules: writes rules
- Map access → NAT rules: writes rules
- CLI commands → XDP loader: loads or unloads
- XDP loader → XDP packet engine: attaches program
- GTP-U traffic → XDP packet engine: enters XDP
- XDP packet engine → TEID rules: looks up TEID
- XDP packet engine → UE IP rules: looks up UE IP
- XDP packet engine → NAT rules: looks up NAT
- XDP packet engine → Verdict counters: updates counters
- XDP packet engine → Redirect devmap: redirects frames
- Redirect devmap → Network interfaces: redirects to
- XDP packet engine → Uplink decap: decapsulates uplink
- XDP packet engine → Downlink encap: encapsulates downlink
- XDP packet engine → Static NAT: rewrites addresses
- XDP packet engine → Rate quarantine: enforces policy
- Administrator → Terminal dashboard: views and edits
- Terminal dashboard → Map access: reads rules
- Terminal dashboard → Stats reader: requests counters
- Stats reader → Verdict counters: reads counters