Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/aregm/nff-go-nat
NAT (network address translation) example for NFF-Go framework
https://github.com/aregm/nff-go-nat
cloud cloud-native dpdk go golang intel linux nat network-functions networking nff-go nfv nfv-framework packet-processing sdn vnf
Last synced: 1 day ago
JSON representation
NAT (network address translation) example for NFF-Go framework
- Host: GitHub
- URL: https://github.com/aregm/nff-go-nat
- Owner: aregm
- License: bsd-3-clause
- Created: 2018-10-02T19:20:52.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2023-02-25T04:04:27.000Z (over 1 year ago)
- Last Synced: 2024-06-20T03:34:33.381Z (5 months ago)
- Topics: cloud, cloud-native, dpdk, go, golang, intel, linux, nat, network-functions, networking, nff-go, nfv, nfv-framework, packet-processing, sdn, vnf
- Language: Go
- Size: 5.64 MB
- Stars: 118
- Watchers: 8
- Forks: 26
- Open Issues: 7
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
README
# Network Address Translation example using NFF-Go
## What it is
NAT example is a fully functional NAT (network address translation)
program written using [NFF-Go
framework](https://github.com/intel-go/nff-go). It has support for
IPv4 and IPv6, ARP, ND, ICMP, ICMPv6, DHCP and DHCPv6 protocols with
remote control over GRPC.## Building
To build NAT application you need Go tools. Get them from
[Golang site](https://golang.org/). Go should be `1.11.5` or newer.First, you need DPDK. Usually NAT application uses DPDK from NFF-Go
framework. If you want to go this way, check out NFF-Go framework from
[NFF-Go framework](https://github.com/intel-go/nff-go) and run `make`
in it. This will also build DPDK. After that execute `source env.sh`
script to initialize necessary variables to build native code.If you have DPDK already built in some other location, change `env.sh`
script to point `RTE_SDK` variable to it so that it can set up other
variables correctly and run `source env.sh`.To build NFF-Go NAT application use `make` in this
repository. Alternatively you can run `go build` or `go install
./...`. Main executable is `nff-go-nat` and there is also a GRPC
command line client in `client` directory.## Testing
Testing requires test framework from NFF-Go repository. Test VMs
configurations reside there as well. Test image is built using `make
images` target (removed with `make clean-images`). Test image can be
deployed with `make deploy` target (removed from target hosts with
`make cleanall`). Just like it is done in NFF-Go repository.It is possible to run stability and performance tests with `make
test-stability` and `make test-performance`.Performance testing is done using `wrk` web server benchmark on one
side and test http server on another side.