IPv6 management: datamodel/XenAPI additions

NOTE: the IPv6 API is a prototype and not yet stable. It is
subject to change at any time.

Signed-off-by: Rob Hoes <rob.hoes@citrix.com>
IPv6 management: CLI update

NOTE: the IPv6 CLI is a prototype and not yet stable. It is
subject to change at any time.

Signed-off-by: Bob Ball <bob.ball@citrix.com>
Signed-off-by: Rob Hoes <rob.hoes@citrix.com>
IPv6 management: inventory file update

Signed-off-by: Bob Ball <bob.ball@citrix.com>
Signed-off-by: Rob Hoes <rob.hoes@citrix.com>
IPv6 management: xe bash completion

Signed-off-by: Bob Ball <bob.ball@citrix.com>
Signed-off-by: Rob Hoes <rob.hoes@citrix.com>
IPv6 management: XAPI management interface on IPv6

XAPI can now listen on either IPv4 or IPv6 addresses; the "primary
address type" of the management interface defines which one of the
two it is.

You can only change management to a PIF that has:
1. the same primary address type as the current management PIF, and
2. IP configuration of the required type (i.e. not "none").

You therefore need to make the choice for IPv4 or IPv6 management
from the start, as the primary address type can be changed only by
first disabling management.

Signed-off-by: Bob Ball <bob.ball@citrix.com>
Signed-off-by: Rob Hoes <rob.hoes@citrix.com>
IPv6 management: SSL configuration

Signed-off-by: Bob Ball <bob.ball@citrix.com>
Signed-off-by: Rob Hoes <rob.hoes@citrix.com>
IPv6 management: pool join homogeneity check

A joining host must have the same primary address type as the pool
master: either IPv4 or IPv6.

Signed-off-by: Bob Ball <bob.ball@citrix.com>
Signed-off-by: Rob Hoes <rob.hoes@citrix.com>
IPv6 management: update inventory file on pool eject

Signed-off-by: Bob Ball <bob.ball@citrix.com>
Signed-off-by: Rob Hoes <rob.hoes@citrix.com>
IPv6 management: IPv6-related fixes and improvements in networkd

Signed-off-by: Rob Hoes <rob.hoes@citrix.com>
IPv6 management: update Nm to pass IPv6 configuration to networkd

Signed-off-by: Rob Hoes <rob.hoes@citrix.com>
IPv6 management: monitor IPv6 address changes in networkd and signal xapi if needed

Uses "ip monitor address" from iproute2 to track updates on IPv6 addresses.

This serves the same purpose as the calls to 'xe host-signal-networking-change' that
are done by dhclient-script in the IPv4 case. IPv6 is slightly more complex, because besides
by DHCP, addresses may be added by prefix delegation ("autoconf"), for which there is no
callback.

If this works well, we may consider doing it for IPv4 as well. We can then leave dhclient-script
unmodified (good for Kronos etc).

Signed-off-by: Rob Hoes <rob.hoes@citrix.com>
When changing management interfaces, do not wait for an IP anymore

This is no longer needed, since we listen on all IP addresses by
default. This allows for an IP address to be added later (e.g. by
DHCP, or IPv6 autoconf), after the host.management_reconfigure call
returns.

Signed-off-by: Rob Hoes <rob.hoes@citrix.com>
Improve Message_forwarding.reconfigure_ipv6

Signed-off-by: Rob Hoes <rob.hoes@citrix.com>
Clean up Xapi_pif.reconfigure_ipv6

Signed-off-by: Rob Hoes <rob.hoes@citrix.com>
Merge commit '2d1007ec5e7e05ea3dbd41ed0b0b5ba1f4c73baa'
Re-use some autogenerated types.

Signed-off-by: John Else <john.else@citrix.com>
Whitespace changes.

Signed-off-by: John Else <john.else@citrix.com>
Rewrite wait_for_all_tasks to use event.from

Signed-off-by: John Else <john.else@citrix.com>
CA-69463: Don't return a list of failed tasks from wait_for_all_tasks.

These tasks may have been destroyed in the meantime, and we ignore the
return value anyway.

Signed-off-by: John Else <john.else@citrix.com>