I had not looked at the DhcpServiceProvider NetworkElement before, but after recent problem, I got a chance to look at it in more detail. I am new to CloudStack and don't have a lot of the history and had some questions.
Is there a link to documentation for the DhcpServiceProvider work? I assume the main use case for DhcpServiceProvider is to support DHCP Daemon like DNSMasq, are there other use cases? The interface is simple enough: public interface DhcpServiceProvider extends NetworkElement { boolean addDhcpEntry(...) ...; boolean configDhcpSupportForSubnet(...) ...; boolean removeDhcpSupportForSubnet(...) ...; } Is there a reason why the companion entry to addDhcpEntry() e.g. removeDhcpEntry() is missing? What is the motivation in adding this code to the NetworkManager versus contain it inside the NetworkElement providing the DHCP? (The logic I see in NetworkManager does not seem to be adding any value. Also it is adding a specific network function DHCP to the NetworkManager, where we are moving functions e.g. IP Address Allocation out.)