demond2 / dpdk-go

Go bindings for dpdk (http://dpdk.org/).

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Go bindings for dpdk

Install dpdk and dpdk-go

  • Setup RTE_TARGET, RTE_SDK and DPDK_VERSION in hack/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

$ 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

Open another termial, and run

$ tcpdump -nn -i tap_dpdk_00

About

Go bindings for dpdk (http://dpdk.org/).

License:MIT License


Languages

Language:Go 78.8%Language:Shell 20.6%Language:C 0.6%