From 5940d2c8abdf8872b779319fc1f85f066e37c2de Mon Sep 17 00:00:00 2001 From: Viktor Mihajlovski Date: Mon, 14 Oct 2013 17:29:40 +0200 Subject: [PATCH 25/60] 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:
Initially, we support only disk and network devices for KVM guests. Signed-off-by: Viktor Mihajlovski Signed-off-by: John Ferlan --- schema/ResourceAllocationSettingData.mof | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/schema/ResourceAllocationSettingData.mof b/schema/ResourceAllocationSettingData.mof index ebc4806..bf1fbb6 100644 --- a/schema/ResourceAllocationSettingData.mof +++ b/schema/ResourceAllocationSettingData.mof @@ -67,6 +67,12 @@ class KVM_DiskResourceAllocationSettingData : KVM_ResourceAllocationSettingData [Description ("if device is shareable")] boolean shareable; + + [Description ("Device address property names")] + string AddressProperties[]; + + [Description ("Device address property values")] + string AddressValues[]; }; [Description ("LXC virtual disk configuration"), @@ -167,6 +173,12 @@ class KVM_NetResourceAllocationSettingData : KVM_ResourceAllocationSettingData [Description ("Filter REF")] string FilterRef; + + [Description ("Device address property names")] + string AddressProperties[]; + + [Description ("Device address property values")] + string AddressValues[]; }; [Description ("LXC virtual network configuration"), -- 2.1.0