User Tools

Site Tools


doc:techref:libnl

Table of Contents

libnl and libnl-tiny – Technical Reference

libnl is a library for applications dealing with netlink sockets, for instance to retrieve or change routing information, interface settings, and is used more generally when communicating with the kernel.

libnl

The upstream version of libnl is maintained at http://www.infradead.org/~tgr/libnl/

Since libnl is somewhat heavyweight, it is not included by default on OpenWRT. If you need only basic netlink functionalities, you may want to use libnl-tiny instead. However, some applications require the full features of libnl.

Since r47037, the libnl package has been split into multiple components. The sizes below are approximate sizes after compression, based on the ar71xx target with musl:

Name Size Description
libnl-core 37K Common code for all netlink libraries
libnl-genl 8K Generic Netlink Library Functions
libnl-nf 25K Netfilter Netlink Library Functions
libnl-route 91K Routing Netlink Library Functions

For compatibility, a meta-package name libnl depends on all the above packages.

libnl-tiny

The libnl-tiny package is a stripped down version of libnl, included by default on OpenWRT.

The code is maintained directly in the OpenWRT code tree, see http://git.openwrt.org/?p=openwrt.git;a=tree;f=package/libs/libnl-tiny

Name Size Description
libnl-tiny 14K Drop-in replacement for most of libnl-core and libnl-genl

libnl-tiny replaces the most commonly used parts of libnl-core and libnl-genl. The API is a bit more limited, but compatible for most applications. The ABI is different, but that doesn't matter much.

Any package that can easily work with libnl-tiny instead of libnl should be changed to make use of it, since libnl-tiny is usually part of the default package set.

However, mixing libnl-based libraries with libnl-tiny does not work.

doc/techref/libnl.txt · Last modified: 2015/10/04 20:12 by zorun