// Copyright (c) 2008 DMTF. All rights reserved. [Association, Version ( "2.19.0" ), ClassConstraint { "inv: self.Dependent.IsComposite = true" }, UMLPackagePath ( "CIM::Device::StorageExtents" ), Description ( "This specialization defines how data is striped across " "StorageExtents. Additionally, it includes information on " "distribution of check data so that the \'usual case\' RAID " "devices can be created in one step." )] class CIM_CompositeExtentBasedOn : CIM_BasedOn { [Override ( "Antecedent" ), Min ( 1 ), Description ( "The underlying StorageExtent." )] CIM_StorageExtent REF Antecedent; [Override ( "Dependent" ), Description ( "The StorageExtent which is built on the StorageExtent." )] CIM_StorageExtent REF Dependent; [Required, Override ( "OrderIndex" ), Description ( "Order matters to composite extents. An example of the " "use of this property is when defining a RAID-0 striped " "array of 3 disks. The resultant RAID array is a " "composite extent that is dependent on (as described by " "CompositeExtentBasedOn) the StorageExtents that " "represent each of the 3 disks. The OrderIndex of each " "CompositeExtentBasedOn association from the disk Extents " "to the RAID array could be specified as 1, 2 and 3 to " "indicate the order in which the disk Extents are used to " "access the RAID data." ), MappingStrings { "MIF.DMTF|Protected Space Extent|001.1" }] uint16 OrderIndex; [Description ( "True if logical blocks in the underlying StorageExtents " "are mapped in decrementing order. This property " "corresponds to the INCDEC value in the SCSI SCC-2 Volume " "Set PS_Extent Descriptor." )] boolean LBAsMappedByDecrementing; [Description ( "True if the logical block mapping algorithm includes " "check data bytes. This property corresponds to the " "NOCHKSKIP attribute in the SCC-2 Volume Set PS_Extent " "Descriptor." )] boolean LBAMappingIncludesCheckData; [Description ( "The total number of blocks that will be consumed on the " "Dependent Extent. This is limited by the Antecedent\'s " "NumberOfBlocks, but is included explicitly to provide " "for the DMTF MIF mapping. In SCSI SCC, this is " "equivalent to the NUMBER OF LBA_PS(s) field in the " "Volume Set PS_Extent Descriptor." ), MappingStrings { "MIF.DMTF|Protected Space Extent|001.3" }, ModelCorrespondence { "CIM_StorageExtent.NumberOfBlocks" }] uint64 NumberOfBlocks; [Description ( "The Dependent\'s BlockSize is limited by the " "Antecedent\'s. In SCSI SCC, this is equivalent to the " "NUMBER OF BYTES PER LBA_PS field in the RedundancyGroup " "P_Extent Descriptor." ), Units ( "Bytes" ), MappingStrings { "MIF.DMTF|Protected Space Extent|001.4" }, ModelCorrespondence { "CIM_StorageExtent.BlockSize" }, PUnit ( "byte" )] uint64 BlockSize; [Description ( "Number of bytes which form the stripe size for the " "Dependent StorageExtent. If the CompositeExtent is " "concatenated instead of striped, then " "UserDataStripeDepth should be set to zero." ), Units ( "Bytes" ), MappingStrings { "MIF.DMTF|Protected Space Extent|001.6" }, PUnit ( "byte" )] uint64 UserDataStripeDepth; [Description ( "Number of bytes of user data to skip before starting the " "check data interleave." ), Units ( "Bytes" ), MappingStrings { "MIF.DMTF|Physical Extent|001.6" }, PUnit ( "byte" )] uint64 UnitsBeforeCheckDataInterleave; [Description ( "Number of bytes to be reserved for check data." ), Units ( "Bytes" ), MappingStrings { "MIF.DMTF|Physical Extent|001.7" }, PUnit ( "byte" )] uint64 UnitsOfCheckData; [Description ( "Number of bytes to be reserved for user data." ), Units ( "Bytes" ), MappingStrings { "MIF.DMTF|Physical Extent|001.8" }, PUnit ( "byte" )] uint64 UnitsOfUserData; };