RASD/schema: Add properties for device address representation
RASD/schema: Add properties for device address representation

Certain device types are only identifiable uniquely via a device
address from the guest's perspective. Adding or removing devices
has the potential to change the address of other unrelated devices
and impact the guest's operation. Therefore it is less desirable
to rely on implicit device address allocation but rather to use
persistent device addresses.

Depending on the device's bus type (PCI, SCSI, USB, CCW ...) the
address specification format can vary, see also the libvirt
domain XML documentation. To account for the various formats
device addresses are specified with two array properties in the
respective RASD classes: AddressProperties and AddressValues.
The former contains a list of address property names and the latter
the values.

E.g., a PCI address is specified by the properties domain, bus,
slot and function. Therefore, for a PCI device RASD we could
have:

AddressProperties = ['type', 'domain','bus', 'slot', 'function']
AddressValues = ['pci', '0x0000', '0x00', '0x01', '0x2']

resulting in a libvirt address element:

<address type='pci' domain='0x0000' bus='0x00' slot='0x01'
 function='0x2'/>

Initially, we support only disk and network devices for KVM guests.

Signed-off-by: Viktor Mihajlovski <a96a137ca8976b5ff3114c85be7aeb3b6464dad7@linux.vnet.ibm.com>

libvirt/libvirt-cim,libvirt/libvirt-cim,libvirt/libvirt-cim