Overview
With netlink landed. it is desired to have some netlink library in base, to simplify netlink interactions for both base and third-party applications.
There are the following goals:
- the library should be small and simple (inlined) so it can be used in the critical tools like route(8).
- the library should have a compatible license to be included in base
- there should be an easy way to push FreeBSD-specific changes to the library
The popular libraries like libnl or libml does not look positive when evaluating (2) and (3).
As a result, the snl(3) library is written to address all 3 requirements. De-facto it is a userland port of the sys/netlink/netlink_message_parser.[ch]