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.
74 lines
2.6 KiB
74 lines
2.6 KiB
7 years ago
|
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
|