You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
73 lines
2.6 KiB
73 lines
2.6 KiB
From 5940d2c8abdf8872b779319fc1f85f066e37c2de Mon Sep 17 00:00:00 2001 |
|
From: Viktor Mihajlovski <mihajlov@linux.vnet.ibm.com> |
|
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: |
|
|
|
<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 <mihajlov@linux.vnet.ibm.com> |
|
Signed-off-by: John Ferlan <jferlan@redhat.com> |
|
--- |
|
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
|
|
|