Package netlink provides low-level access to Linux netlink sockets. MIT Licensed.
Go Assembly
Switch branches/tags
Nothing to show
Latest commit 756e798 Dec 14, 2017 @mdlayher mdlayher Merge pull request #72 from mdlayher/mdl-lockthread
netlink: by default, lock OS thread internally
Permalink
Failed to load latest commit information.
nlenc support uint8 encoding and decoding in nlenc Sep 9, 2017
nltest nltest, genltest: simplify, add genltest.ServeFamily Sep 1, 2017
.travis.yml travis: use new staticcheck path Mar 12, 2017
LICENSE.md genetlink: move to github.com/mdlayher/genetlink Sep 1, 2017
README.md genetlink: move to github.com/mdlayher/genetlink Sep 1, 2017
align.go attribute: initial commit Dec 22, 2016
align_test.go *: initial commit Dec 20, 2016
attribute.go netlink: note Attribute.Nested is not always set, format Mar 22, 2017
attribute_test.go netlink: note Attribute.Nested is not always set, format Mar 22, 2017
conn.go netlink: by default, lock OS thread internally Dec 14, 2017
conn_linux.go netlink: by default, lock OS thread internally Dec 14, 2017
conn_linux_error_test.go netlink: return errors from multipart done messages Nov 3, 2017
conn_linux_integration_test.go netlink: use term netlink family instead of protocol Mar 12, 2017
conn_linux_test.go netlink: by default, lock OS thread internally Dec 14, 2017
conn_others.go netlink: expose osConn as type Socket Aug 25, 2017
conn_others_test.go Change dial() signature in conn_others following re-factoring Mar 11, 2017
conn_test.go netlink: change Conn.ReadWriter to Conn.ReadWriteCloser Sep 15, 2017
doc.go *: initial commit Dec 20, 2016
example_test.go netlink: use term netlink family instead of protocol Mar 12, 2017
fuzz.go fuzz: add go-fuzz functions, build them in CI (#9) Dec 23, 2016
message.go Added missing new object HeaderFlags. Dec 4, 2017
message_linux_test.go *: initial commit Dec 20, 2016
message_test.go Added missing new object HeaderFlags. Dec 4, 2017
sockopt_linux.go netlink: move from syscall to golang.org/x/sys/unix, where possible Feb 22, 2017
sockopt_linux_386.go netlink: fix 32-bit Linux builds Jan 10, 2017
sockopt_linux_386.s netlink: add {Join,Leave}Group using setsockopt on Linux Dec 31, 2016

README.md

netlink Build Status GoDoc Go Report Card

Package netlink provides low-level access to Linux netlink sockets. MIT Licensed.

For more information about how netlink works, check out my blog series on Linux, Netlink, and Go.

If you're looking for package genetlink, it's been moved to its own repository at github.com/mdlayher/genetlink.

Why?

A number of netlink packages are already available for Go, but I wasn't able to find one that aligned with what I wanted in a netlink package:

  • Simple, idiomatic API
  • Well tested
  • Well documented
  • Makes use of Go best practices
  • Doesn't need root to work

My goal for this package is to use it as a building block for the creation of other netlink family packages.