ConfigMutex used to coordinate access to the dnsmasq config files.
func DHCPAllocatedIPs(network string) (map[byte]DHCPAllocation, map[byte]DHCPAllocation, error)
DHCPAllocatedIPs returns a map of IPs currently allocated (statically and dynamically) in dnsmasq for a specific network. The returned map is keyed by a 16 byte array representing the net.IP format. The value of each map item is a DHCPAllocation struct containing at least whether the allocation was static or dynamic and optionally container name or MAC address. MAC addresses are only included for dynamic IPv4 allocations (where name is not reliable). Static allocations are not overridden by dynamic allocations, allowing for container name to be included for static IPv6 allocations. IPv6 addresses that are dynamically assigned cannot be reliably linked to containers using either name or MAC because dnsmasq does not record the MAC address for these records, and the recorded host name can be set by the container if the dns.mode for the network is set to "dynamic" and so cannot be trusted, so in this case we do not return any identifying info.
func DHCPStaticIPs(network, projectName, instanceName string) (DHCPAllocation, DHCPAllocation, error)
DHCPStaticIPs retrieves the dnsmasq statically allocated IPs for a container. Returns IPv4 and IPv6 DHCPAllocation structs respectively.
GetVersion returns the version of dnsmasq.
Kill kills dnsmasq for a particular network (or optionally reloads it).
RemoveStaticEntry removes a single dhcp-host line for a network/instance combination.
UpdateStaticEntry writes a single dhcp-host line for a network/instance combination.
DHCPAllocation represents an IP allocation from dnsmasq.