Skip to content

xunleer/dpdk-go

 
 

Repository files navigation

Go bindings for DPDK

Build Status Go Report Card

Install dpdk and dpdk-go

Setup RTE_TARGET, RTE_SDK and DPDK_VERSION in hack/dpdk.rc, then run

hack/dpdk-install.sh
source hack/dpdk-util.sh
init-dpdk`
go get -u github.com/feiskyer/dpdk-go

Notes: If dpdk is installed inside a virtual machine, (e.g. VMWARE), then patch hack/vmware.diff must be applied before compling the dpdk source.

Install dpdk-ovs

Install dpdk first, then run

hack/ovs-install.sh
source hack/dpdk-util.sh
init-dpdk
start-ovs

DPDK samples

go get -u github.com/feiskyer/dpdk-go/samples/helloworld
helloworld -c3 -n1

A simple skeleton example of a forwarding application.

go get -u github.com/feiskyer/dpdk-go/samples/skeleton
skeleton -c3 -n1

Reads packets from dpdk port 0, and then write the data to tap_dpdk_00:

go get -u github.com/feiskyer/dpdk-go/samples/exception-path
exception-path

# in another terminal
tcpdump -nn -i tap_dpdk_00

Acknowledgement

Performance is not guaranteed because of less tests.

About

Go bindings for dpdk.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Go 73.8%
  • Shell 25.4%
  • C 0.8%