Open
Description
Routing sockets are used for the kernel's routing tables to be read and altered (BSD). On the other hand, Netlink is a socket family used for inter-process communication (IPC) between both the kernel and userspace processes, and between different userspace processes. They also provide the functionality to alter the kernel's routing tables; initially designed to be a successor to the ioctl
approach.
TL;DR: Routing sockets are specifically made for altering routing tables where as Netlink sockets serves different purposes.
Unresolved Questions
Which one of the API's would be better to implement? Could we improve the existing approach, if so, how?
Sources
- Netlink: https://man7.org/linux/man-pages/man7/rtnetlink.7.html
- Routing Sockets (BSD): https://man.freebsd.org/cgi/man.cgi?query=route&sektion=4&manpath=netbsd