https://github.com/yerden/go-dpdk
Go bindings for DPDK library.
https://github.com/yerden/go-dpdk
dpdk go golang
Last synced: 5 months ago
JSON representation
Go bindings for DPDK library.
- Host: GitHub
- URL: https://github.com/yerden/go-dpdk
- Owner: yerden
- License: bsd-3-clause
- Created: 2019-06-08T10:26:52.000Z (about 7 years ago)
- Default Branch: master
- Last Pushed: 2024-09-19T17:04:15.000Z (almost 2 years ago)
- Last Synced: 2024-11-17T12:49:19.333Z (over 1 year ago)
- Topics: dpdk, go, golang
- Language: Go
- Size: 413 KB
- Stars: 133
- Watchers: 6
- Forks: 17
- Open Issues: 7
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Go bindings for DPDK framework.
[](http://godoc.org/github.com/yerden/go-dpdk) [](https://github.com/yerden/go-dpdk/actions/workflows/unit.yml) [](https://codecov.io/gh/yerden/go-dpdk)
# 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.