CA-82314: networkd: introduce Linklocal6 IPv6 address mode

This commit redefines the IPv6 address mode "None6" to mean "no IPv6 address at
all, not even a link local one", and introduces the new mode Linklocal6, which
means "only IPv6 address, except a link local one".

Previously, it was not possible to get networkd to remove the link-local IPv6
address from an interface.

When a link local IPv6 address is requested, it is derived from the interface's
MAC address as commonly done.

Signed-off-by: Rob Hoes <rob.hoes@citrix.com>
CA-82314: nm: Allow (only) bridge interfaces to have a link-local IPv6 address

Due to a recent change in xcp-network, the None6 IPv6 address mode removes all
IPv6 addresses, including the link local one.  To avoid problems with bonding,
we only want bridge interfaces to have any IP addresses, while the physical
interfaces may not even have a link-local address.

This commit ensures that bridge interfaces are configured accordingly.

Signed-off-by: Rob Hoes <rob.hoes@citrix.com>
CA-90424: Does not migrate VDI if it is already migrating.

Signed-off-by: Jerome Maloberti <jerome.maloberti@citrix.com>
CA-116420: when creating linux bond, add MAC address after adding bond slaves

This is needed under kernel 3.x, because the kernel now changes the bond
MAC to the MAC of the first slave that is added, which is not always
what we want.

Imported from xcp-networkd.git 0726ee01d071daa0ed8f1011e8bd5e6b05fee47b

Signed-off-by: Rob Hoes <rob.hoes@citrix.com>
Imported-by: John Else <john.else@citrix.com>
CA-114498: Linux bonding: set properties (e.g. mode) before adding slaves

This is needed to get LACP bonding to work on the Linux bridge backend.

Signed-off-by: Rob Hoes <rob.hoes@citrix.com>
Imported-by: John Else <john.else@citrix.com>
Merge pull request #1688 from johnelse/criticals-from-trunk

Backport critical fixes from trunk