{"id":19924132,"url":"https://github.com/acassen/gtp-guard","last_synced_at":"2025-05-03T07:31:18.274Z","repository":{"id":181260253,"uuid":"662166786","full_name":"acassen/gtp-guard","owner":"acassen","description":"Mobile Core-Network routing software","archived":false,"fork":false,"pushed_at":"2025-04-21T07:14:48.000Z","size":3215,"stargazers_count":36,"open_issues_count":0,"forks_count":4,"subscribers_count":5,"default_branch":"main","last_synced_at":"2025-04-21T08:28:31.517Z","etag":null,"topics":["5gc","ebpf","epc","firewall","gtp","proxy","router","upf","xdp"],"latest_commit_sha":null,"homepage":"https://www.gtp-guard.org","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/acassen.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"github":"acassen"}},"created_at":"2023-07-04T13:52:19.000Z","updated_at":"2025-04-21T07:14:51.000Z","dependencies_parsed_at":"2023-07-14T17:38:56.761Z","dependency_job_id":"f8bdc691-4b8a-4345-960b-908828425663","html_url":"https://github.com/acassen/gtp-guard","commit_stats":null,"previous_names":["acassen/gtp-guard"],"tags_count":8,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/acassen%2Fgtp-guard","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/acassen%2Fgtp-guard/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/acassen%2Fgtp-guard/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/acassen%2Fgtp-guard/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/acassen","download_url":"https://codeload.github.com/acassen/gtp-guard/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252156882,"owners_count":21703367,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["5gc","ebpf","epc","firewall","gtp","proxy","router","upf","xdp"],"created_at":"2024-11-12T22:16:27.705Z","updated_at":"2025-05-03T07:31:18.268Z","avatar_url":"https://github.com/acassen.png","language":"C","funding_links":["https://github.com/sponsors/acassen"],"categories":["Core"],"sub_categories":["4G"],"readme":"# GTP Guard: GPRS Tunneling Protocol Routing software\n\n\n[![gtp-guard CI](https://github.com/acassen/gtp-guard/actions/workflows/actions-compile.yml/badge.svg)](https://github.com/acassen/gtp-guard/actions/workflows/actions-compile.yml)\n\n\u003cimg width=\"30%\" src=\"https://www.gtp-guard.org/assets/logo.png\" align=\"left\"/\u003e\n\nGTP-Guard is a routing software written in C. The main goal of this project is to provide robust and secure extensions to GTP protocol (GPRS Tunneling Protocol). GTP is widely used for data-plane in mobile core-network. GTP-Guard implements a set of 3 main framworks. The first one offers a Proxy feature for data-plane tweaking. The second one is a Routing facility to inter-connect, encapsulates or provides any routing related. The last one is a Firewall feature offering filtering, rewriting, redirecting. GTP-Guard relies on Linux Kernel XDP framework for its data-plane using eBPF programs. Administration and user-level interface are available via a standard VTY terminal interface.\n\nGTP-Guard is free software; you can redistribute it and/or modify it under the terms of the GNU Affero General Public License Version 3.0 as published by the Free Software Foundation.\n\n# Build\n\n```\ngit clone --recursive git@github.com:acassen/gtp-guard.git\ncd gtp-guard\nmake -j $(nproc)\n```\n\ngcc is the default compiled. Should you prefer the usage of clang, then use:\n```\nCC=clang make -j $(nproc)\n```\n\n# Basic Run\n\nDefine your own `gtp-guard.conf` settings in order to enable its vty over TCP.\n\n```\n$ cat \u003c\u003cEOFCONF \u003e /tmp/gtp-guard.conf\n!\npdn\n  request-channel 127.0.0.1 port 8080\n!\ngtp-router demo\n  gtpc-tunnel-endpoint 0.0.0.0 port 2123 listener-count 3\n  gtpu-tunnel-endpoint 0.0.0.0 port 2152 listener-count 3\n!\nline vty\n  no login\n  listen 127.0.0.1 8888\n!\nEOFCONF\n\n$ sudo bin/gtp-guard --dont-fork --log-console --log-detail -f /tmp/gtp-guard.conf\n```\n\nthen from another console, you can `telnet 127.0.0.1 8888` in order to get the CLI:\n```\n$ telnet 127.0.0.1 8888\nTrying 127.0.0.1...\nConnected to 127.0.0.1.\nEscape character is '^]'.\n\n Welcome to GTP-Guard VTY\n\nxps\u003e show version\ngtp-guard v1.0.4-pre1 (2023/11/28) ().\nCopyright (C) 2023 Alexandre Cassen, \u003cacassen@gmail.com\u003e\nxps\u003e quit\nConnection closed by foreign host.\n```\n\nThen you can start sending your GTPc and GTPu workload to the UDP ports 2123 and 2152.\n\n## basic test\n\nFor example, the following `test/testenv.sh` script can be used in order to perform a Basic Run\nalong with a set of few GTPu and GTPc ping.\n\nIt assumes that [gtping](https://github.com/ThomasHabets/gtping) has been isntalled.\n\n```\ncd test\nsudo ./testenv.sh \\\n  -i path/dev/gtping/src/gtping \\\n  -u path/dev/gtpu-guard/test/gtpu-ping.py \\\n  -g path/dev/gtp-guard/bin/gtp-guard \\\n  -c /tmp/gtp-guard.conf \\\n  -f path/dev/gtp-guard/bin/gtp_fwd.bpf \\\n  -r path/dev/gtp-guard/bin/gtp_route.bpf \\\n  -m path/dev/gtp-guard/bin/gtp_mirror.bpf \\\n  -k no\n```\n\n## getenv settings\n\n  - `GTP_GUARD_PID_FILE` : set alternate pid file (default = /var/run/gtp-guard.pid)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Facassen%2Fgtp-guard","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Facassen%2Fgtp-guard","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Facassen%2Fgtp-guard/lists"}