{"id":18483136,"url":"https://github.com/free5gc/gtp5g","last_synced_at":"2025-04-05T02:04:28.413Z","repository":{"id":36984369,"uuid":"381642627","full_name":"free5gc/gtp5g","owner":"free5gc","description":"GTP-U Linux Kernel Module","archived":false,"fork":false,"pushed_at":"2025-03-13T07:26:04.000Z","size":349,"stargazers_count":66,"open_issues_count":8,"forks_count":69,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-03-29T01:03:33.085Z","etag":null,"topics":["5g","gtp","gtpu","pgw","sgw","upf"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/free5gc.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"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}},"created_at":"2021-06-30T09:14:43.000Z","updated_at":"2025-03-17T14:15:22.000Z","dependencies_parsed_at":"2024-01-16T08:18:51.194Z","dependency_job_id":"d887d671-b53d-47f6-a869-d5183e539fc9","html_url":"https://github.com/free5gc/gtp5g","commit_stats":null,"previous_names":[],"tags_count":53,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/free5gc%2Fgtp5g","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/free5gc%2Fgtp5g/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/free5gc%2Fgtp5g/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/free5gc%2Fgtp5g/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/free5gc","download_url":"https://codeload.github.com/free5gc/gtp5g/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247276163,"owners_count":20912288,"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":["5g","gtp","gtpu","pgw","sgw","upf"],"created_at":"2024-11-06T12:34:09.756Z","updated_at":"2025-04-05T02:04:28.392Z","avatar_url":"https://github.com/free5gc.png","language":"C","funding_links":[],"categories":["Core Network"],"sub_categories":["5G"],"readme":"# gtp5g - 5G compatible GTP kernel module\ngtp5g is a customized Linux kernel module gtp5g to handle packet by PFCP IEs such as PDR and FAR.\nFor detailed information, please reference to 3GPP specification TS 29.281 and TS 29.244.\n\n## Notice\nDue to the evolution of Linux kernel, this module would not work with every kernel version.\nPlease run this module with kernel version `5.0.0-23-generic`, upper than `5.4` (Ubuntu 20.04) or RHEL8.\n\n## Usage\n### Clone\n#### The latest version\n```\ngit clone https://github.com/free5gc/gtp5g.git\n```\n#### The specific version\n```\n# git clone -b {version} https://github.com/free5gc/gtp5g.git\ngit clone -b v0.8.10 https://github.com/free5gc/gtp5g.git\n```\n### Install Required Packages\n```\nsudo apt -y update\nsudo apt -y install gcc g++ cmake autoconf libtool pkg-config libmnl-dev libyaml-dev\n```\n\n### Compile\n```\ncd gtp5g\nmake clean \u0026\u0026 make\n```\n\n### Install kernel module\nInstall the module to the system and load automatically at boot\n```\nsudo make install\n```\n\n### Remove kernel module\nRemove the kernel module from the system\n```\nsudo make uninstall\n```\n\n### DKMS support\nWhen updating the kernel gtp5g needs to get rebuilt against the current kernel source.\nThis can be automated using [DKMS](https://github.com/dell/dkms).\n\nTo use the DKMS support the following steps are required:\n1. Copy the repository to `/usr/src/gtp5g-\u003cVERSION\u003e` (e.g., `/usr/src/gtp5g-0.9.5/`).\n1. Run the following command to add the DKMS module to the module tree:\n   ```\n   # sudo dkms add -m gtp5g -v \u003cVERSION\u003e\n   sudo dkms add -m gtp5g -v 0.9.5\n   ```\n1. Run this command to install the DKMS module:\n   ```\n   # sudo dkms install -m gtp5g -v \u003cVERSION\u003e\n   sudo dkms install -m gtp5g -v 0.9.5\n   ```\n\nAfter a reboot of the system everything should be set up.\nWhether the kernel module is loaded can be checked by running:\n```\nlsmod | grep gtp\n```\nWhich should result in a similar output to:\n```\ngtp5g                 200704  0\nudp_tunnel             28672  2 gtp5g,sctp\n```\n\n### Check Rules\nGet PDR/FAR/QER information by \"/proc\"\n```\n# if UPF used legacy netlink struct without SEID, need use #SEID=0 to query related info as below:\necho #interfaceName #SEID #PDRID \u003e /proc/gtp5g/pdr\necho #interfaceName #SEID #FARID \u003e /proc/gtp5g/far\necho #interfaceName #SEID #QERID \u003e /proc/gtp5g/qer\n```\n```\ncat /proc/gtp5g/pdr\ncat /proc/gtp5g/far\ncat /proc/gtp5g/qer\n```\n\n### Enable/Disable QoS (Default is disabled)\nSupport Session AMBR and MFBR.\n\n1) Check whether QoS is enabled or disabled. (1 means enabled, 0 means disabled)\n    ```\n    cat /proc/gtp5g/qos\n    ```\n2) Enable or disable QoS\n   + enable\n        ```\n        echo 1 \u003e  /proc/gtp5g/qos\n        ```\n   + disable\n        ```\n        echo 0 \u003e  /proc/gtp5g/qos\n        ```\n\n### Enable/Disable GTP-U Sequence Number (Default is enabled)\nSupport GTP-U Sequence Number.\n\n1) Check whether GTP-U Sequence Number is enabled or disabled. (1 means enabled, 0 means disabled)\n    ```\n    cat /proc/gtp5g/seq\n    ```\n2) Enable or disable GTP-U Sequence Number\n   + enable\n        ```\n        echo 1 \u003e  /proc/gtp5g/seq\n        ```\n   + disable\n        ```\n        echo 0 \u003e  /proc/gtp5g/seq\n        ```\n\n### Log Related\n1) check log\n    ```\n    dmesg\n    ```\n1) update log level\n    ```\n    # [number] is 0~4 \n    # e.g. echo 4 \u003e /proc/gtp5g/dbg\n    echo [number] \u003e /proc/gtp5g/dbg\n    ```\n### Tools\n+ [go-gtp5gnl](https://github.com/free5gc/go-gtp5gnl)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffree5gc%2Fgtp5g","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffree5gc%2Fgtp5g","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffree5gc%2Fgtp5g/lists"}