On Fri, Feb 22, 2008 at 08:04:26AM +0000, Mark McLoughlin wrote: > Hi Rich, > > On Thu, 2008-02-21 at 20:54 +0000, Richard W.M. Jones wrote: > > What this patch allows you to do is to create a table of IP address to > > host (defined by its hardware / MAC address) for each virtual network. > > Optionally you can also assign a hostname. When a host starts up and > > requests an IP address through DHCP, if it is in this table then it > > gets the fixed IP address from the table and, optionally, a fixed > > hostname. > > > > Four new API calls are added. Two are required to list the contents > > of the mapping table. Two more allow you to add and delete a mapping. > > > > The mapping table is semi-permanent. It is stored in > > /var/lib/libvirt/hosts-<networkname>.conf and survives across libvirtd > > restarts. > > Cool stuff, but why isn't this just an addition to the network's XML > definition? It is possible, but tricky to get the on-the-fly updates when the semantics of the APIs for creating/definging networks. If you call 'virNetworkDefine' with a new XML doc, it loads the new config into memory, but does not apply the config until you destroy & restart the network in question. We can't destroy & restart the network since this would break networking for any live guests attached to the network. So if we wanted to represent this in the master XML for a network we'd have to follow the example of domain device hotplug, and have APIs to add/remove a snippet of XML describing the new entry. virNetworkAddHostMapping(virNetworkPtr net, char *xml); virNetworkRemoveHostMapping(virNetworkPtr net, char *xml); Where the XML was: '<mapping hostname="foo" mac="00:33:22:55:44:11"/>' Dan. -- |=- Red Hat, Engineering, Emerging Technologies, Boston. +1 978 392 2496 -=| |=- Perl modules: http://search.cpan.org/~danberr/ -=| |=- Projects: http://freshmeat.net/~danielpb/ -=| |=- GnuPG: 7D3B9505 F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505 -=| -- Libvir-list mailing list Libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list