go-dpdk

module
v0.1.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 22, 2023 License: BSD-3-Clause

README

Go bindings for DPDK framework.

Documentation Build Status codecov

Building apps

Starting from DPDK 21.05, pkg-config becomes the only official way to build DPDK apps. Because of it go-dpdk uses #cgo pkg-config directive to link against your DPDK distribution.

Go compiler may fail to accept some C compiler flags. You can fix it by submitting those flags to environment:

export CGO_CFLAGS_ALLOW="-mrtm"
export CGO_LDFLAGS_ALLOW="-Wl,--(?:no-)?whole-archive"

Caveats

  • Only dynamic linking is viable at this point.
  • If you isolate CPU cores with isolcpus kernel parameter then GOMAXPROCS should be manually specified to reflect the actual number of logical cores in CPU mask. E.g. if isolcpus=12-95 on a 96-core machine then default value for GOMAXPROCS would be 12 but it should be at least 84.

Directories

Path Synopsis
Package acl wraps DPDK ACL packet classification library.
Package acl wraps DPDK ACL packet classification library.
app
Package common contains basic routines needed by other modules in go-dpdk package.
Package common contains basic routines needed by other modules in go-dpdk package.
Package eal wraps EAL initialization and provides some additional functionality on top of that.
Package eal wraps EAL initialization and provides some additional functionality on top of that.
Package ethdev wraps RTE Ethernet Device API.
Package ethdev wraps RTE Ethernet Device API.
flow
Package flow encaps RTE generic flow API.
Package flow encaps RTE generic flow API.
Package hash wraps RTE hash libraries.
Package hash wraps RTE hash libraries.
Package lcore allows to control execution of user-supplied functions on specified logical CPU core.
Package lcore allows to control execution of user-supplied functions on specified logical CPU core.
Package lpm wraps RTE LPM library.
Package lpm wraps RTE LPM library.
Package mempool wraps RTE mempool library.
Package mempool wraps RTE mempool library.
Package memzone wraps RTE memzone library.
Package memzone wraps RTE memzone library.
Package pipeline wraps RTE Pipeline.
Package pipeline wraps RTE Pipeline.
Package port wraps RTE Port.
Package port wraps RTE Port.
Package ring wraps RTE ring library.
Package ring wraps RTE ring library.
Package table implements RTE Table.
Package table implements RTE Table.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL