A fairly big patch ! I have tried to really read everything, but
finding locking issues, especially when there is multiple layers
of locks is nearly impossible by review.
I think the best is to get this running and tested as much as possible
before the next release,
ACK

Thanks for the ACK.

However, there are some things that I would like to adapt before
checking in:

- rename the 'ip_learning' variable to CTRL_IP_LEARNING to open up a
'namespace' for future extensions providing control to users over the
behavior of the algorithm; someone may be interested in having IP
addresses detected by the DHCP snooper but have no filters instantiated
and for that there could be a variable CTRL_NO_INSTANTIATE (=true)

- some small optimization to not have packets submitted to the worker
that are shorter than the minimal size a valid DHCP packet must have

- forgot about the existence of virSocketAddr and so I needed to replace
the usage of uint32_t's with virSocketAddr

So I would check in patches 1-3 soon and post the rest of the series
again later.