Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/nextmn/upf
Experimental 5G UPF
https://github.com/nextmn/upf
5g nextmn upf
Last synced: 24 days ago
JSON representation
Experimental 5G UPF
- Host: GitHub
- URL: https://github.com/nextmn/upf
- Owner: nextmn
- License: mit
- Created: 2021-12-14T09:38:13.000Z (almost 3 years ago)
- Default Branch: master
- Last Pushed: 2024-10-31T21:01:32.000Z (about 1 month ago)
- Last Synced: 2024-11-12T11:25:20.454Z (about 1 month ago)
- Topics: 5g, nextmn, upf
- Language: Go
- Homepage:
- Size: 180 KB
- Stars: 11
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-5g - NextMN-UPF - An experimental 5G UPF implementation (NFs)
README
# NextMN-UPF
NextMN-UPF is an experimental 5G UPF implementation. This UPF is implemented in User Space, meaning it does not depend on Linux GTP module.
> [!WARNING]
> This UPF is still at the early stages of development and contains bugs and will crash in unexpected manners.
> Please do not use it for anything other than experimentation. Expect breaking changes until v1.0.0The following features are implemented:
- IPv4/IPv6 both in inner and outer PDUs (note: IPv6 is not implemented in Linux GTP module)
- PFCP Association Setup Procedure
- PFCP Session Establishment Procedure
- PFCP Session Modification Procedure
- PDRs/FARs, SDF Filters
- Interoperability with Free5GC (you can replace Free5GC's UPF container with NextMN-UPF container) (tested only with IPv4)
- Interoperability with UERANSIM (since 2022-06-24's version in UERANSIM master branch)
- Periodic display of the currently applied PFCP rulesMissing features:
- PFCP Session Deletion Procedure
- PDRs/FARs deletion
- BARs, MARs, URRs, QERs are not handled yet
- Gracefull shutdown procedure
- Any other advanced PFCP useOther missing things because we are at early stages of development:
- Unit/Integration Tests (Not implemented) + CI/CD
- Testing full IPv6 deployment with UERANSIM+Free5GC integration
- Documentation (WIP)
- Performances (Not the current goal as long as it is decent)
- Storing Sessions/Rules in a database to be more efficient (currently everything is stored in RAM), and the Session/Rules research is not optimal## Getting started
### Build dependencies
- golang
- make (optional)### Runtime dependencies
- iproute2
- iptables### Build and install
Simply run `make build` and `make install`.### Docker
If you plan using NextMN-UPF with Docker:
- The container required the `NET_ADMIN` capability;
- The container required the forwarding to be enabled (not enabled by the UPF itself);
- The tun interface (`/dev/net/tun`) must be available in the container.This can be done in `docker-compose.yaml` by defining the following for the service:
```yaml
cap_add:
- NET_ADMIN
devices:
- "/dev/net/tun"
sysctls:
- net.ipv4.ip_forward=1
```## Author
Louis Royer## License
MIT