[libvirt] Plan A or Plan B?

Gene Czarcinski gene at czarc.net
Mon Nov 19 13:31:58 UTC 2012

Plan A:

This consists of the set of patches I have submitted for conf-file, 
DHCPv6, etc.  The response has been a resounding SILENCE.  Thus, I am 
assuming that there is some reluctance to adopting these changes in 
their current form.  This especially includes the conf-file changes.  
While I believe that changing dnsmasq parameters from the command-line 
to a configuration file makes a great deal of sense and might have been 
the approach if this was being done today, there is resistance to change.

OK, so here is Plan B:

I am removing the conf-file and related changes.  They will be 
repackaged and resubmitted at some later time.  The new multi-file patch 
will focus on "IPV6 Enhanced Support" which will consist of the following:

1.  In a manner similar to what is done for IPV6, add ip6tables rules to 
permit virtual systems to communicate via a defined virtual interface 
which has no gateway addresses defined.  This does mean that virtual 
systems will not be able to communicate with the host via this interface 
... only with each other.  Also, the following must be:
       net.ipv6.conf.virbr19.disable_ipv6 = 1
so that the kernel does not start anything.

This implements IPv6 functionality currently available for IPv4.

Documentation will be added to explain the functionality for both IPv4 
and IPv6.

[BTW, the only place I have found to add documentaiotn is in the 
"docs/formatnetwork.html.in" file.  If there are other files I should be 
updating, please enlighten me.]

2. Add code to get the dnsmasq version and save that information. The 
added code described below will require a dnsmasq version greater than 
or equal to 2.64.  Documentation will be updated to state that dnsmasq 
 >= 2.64 is required for DHCPv6.

3.  Implement support for DHCPv6.  Most of this is already done with the 
existing patch.  However, this refits the code to work with command-line 
parameters AND adds a check for dnsmasq >= 2.64. Naturally, tests and 
documentation will be updated.

4.  If dnsmasq >= 2.64, do not use radvd but instead use dnsmasq to 
support the RA service for both state-full and state-less IPV6.

a) If dnsmasq < 2.64, just ignore dhcp-range or dhcp-host definitions


b) issue error message and stop dnsmasq startup if dhcp-range or 
dhcp-host is specified.
c) Currently, tests for valid dhcp specifications is only done when a 
network is started (all significant changes are to 
"network/bridge_driver.c".  This situation could continue.  Thus, virsh 
could be used to specify dhcp-range and dhcp-host but it would not work 
if the network was started.


d) Move the dnsmasq version checks back into when the network is 
defined.  This would be a bit "trickier" to implement properly since the 
same code is used by multiple network types and not just that supported 
by "network/bridge_driver.c".  If this is the approach, I will need some 
guidance as to modifying "conf/network.c".

OK folks.  I need some input here.  I realize that all of you are very 
busy working your own interests but I need a little time from someone 
with "commit" authority to say "go ahead" or "get lost".


More information about the libvir-list mailing list