[Libvir] [Discussion] 0/4 Implement DHCP host mappings for virtual networks
Daniel P. Berrange
berrange at redhat.com
Sun Feb 24 22:17:38 UTC 2008
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 -=|
More information about the libvir-list
mailing list