dpdk
Go bindings forInstall dpdk and dpdk-go
- Setup
RTE_TARGET
,RTE_SDK
andDPDK_VERSION
inhack/dpdk.rc
- Install dpdk by
hack/dpdk-install.sh
- Initial dpdk:
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
- First install dpdk
- Install ovs:
hack/ovs-install.sh
- Start ovs with dpdk:
source hack/dpdk-util.sh
init-dpdk
start-ovs
Sample Applications
Helloworld
$ go get -u github.com/feiskyer/dpdk-go/samples/helloworld
$ helloworld -c3 -n1
skeleton
A simple skeleton example of a forwarding application.
$ go get -u github.com/feiskyer/dpdk-go/samples/skeleton
$ skeleton -c3 -n1
Exception Path
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
Open another termial, and run
$ tcpdump -nn -i tap_dpdk_00