Finally!
Most of this patchset is setup for patch 09/13, which updates the
network XML parser to support IPv6, and 12/13, which turns on IPv6 in
the bridge driver.
In order to have each patch individually pass make check and
(otherwise function properly in case someone is doing a bisect), there
is a bit of extra code churn (lines that are changed in one patch,
only to be changed again in a later patch); I tried to minimize this
as much as possible.
For for IPv6 to work correctly, target *and build* systems will
now need to have ip6tables and radvd available. The way I added
ip6tables into autoconfigure.ac is identical to existing iptables, and
the way I added radvd is identical to dnsmasq. Unfortunately this
doesn't communicate the requirement downstream in a programmatic
fashion, so I guess we need to make sure that this is adequately
reported in the next set of release notes.
There is a remaining problem, outlined in PATCH 13/13, which I would
like some input on - there is a race between radvd writing its pidfile
and libvirtd reading it, and a couple possible ways to fix it, neither
of which is optimal. If anyone has a different idea, I'd like to hear
it (I'm leaning towards option 2 right now - it creates an extra file,
but behavior is 100% correct).