The Netlink protocol is a Linux framework, that implements an easy to use communication channel between the kernel and userspace. This discussion is planned to highlight some common Netlink issues and practices, that can be interesting to other low-level network related projects.
The purpose of the pyroute2 project is to provide [not only] Python developers with a simple and reliable Netlink library, which could be used for the network setup as well as for the traffic processing, or even process monitoring and audit. While implementing it, we've met a number of issues coming from different parts of different Netlink subsystems. No one of the issues is a bug sensu stricto, but all of them seriously affect the final implementation.
So, it would be nice to share and discuss shortly the experience of the implementation solutions. Almost every low-level network related project has to work with the Netlink features and issues, and some of this knowledge can and, probably, should be generalized.
The agenda of the discussion is to show Netlink tricks and their impact on different levels: from the lowest protocol level to the high-level OS network setup. Will be prepared a demo of different projects interoperability, including Netlink proxying.
Speakers: Peter V. Saveliev