While adding error handling to tap device, I noticed we already have two places rolling their own netlink message handling (tap and mlx5) and now with proposed IF proxy there is a third.
Netlink is non-trivial and easy to get wrong and doing error handling also requires work. There should be a common library for this. My preference would be to use pre-existing code (libmnl) but the DPDK maintainers seem to have an aversion to taking a dependency on any external code and reinvent everything (see RCU etc).