Hi all concerned,

This case was introduced to add GUID and volume activation support for 
the mpt-mpxio feature
in July 2008. This code is going in to S10U7 in November time frame. 
However, it turns out that
the Vela product needs this to be patch-supported for the S10U6+patch 
customers. And I would
like to request the change of this case from *minor* binding release to 
*patch* binding release
in order for this to go into the S10U7 sustaining/patch gate.

Would be happy to answer any question and/or concerns on this request.
If I don't hear anything in a couple of days, I would go ahead to revise 
the case file
with a note on this change.

Thanks for your attention,
T.Paul

Tzongyu Paul Lee ??:
> This fasttrack 2008/458 was approved in the 7/23 Open Meeting.
>
> Regards,
> Paul
> ------
>
> Tzongyu Paul Lee wrote:
>> I am sponsoring this fast-track for Jie Cao.
>> Requested release binding is minor, and the timer is set to
>> 07/24/2008.
>>
>> Regards,
>> T.Paul Lee
>> ---------------
>>
>> Template Version: @(#)sac_nextcase 1.66 04/17/08 SMI
>> This information is Copyright 2008 Sun Microsystems
>> 1. Introduction
>> 1.1. Project/Component Working Name:
>> RaidCfg GUID and volume activation support
>> 1.2. Name of Document Author/Supplier:
>> Author: Jie Cao
>> 1.3 Date of This Document:
>> 17 July, 2008
>> 4. Technical Description
>> 1. Introduction
>> 1.1. Project/Component Working Name:
>> RaidCfg GUID and volume activation support
>> 1.2. Name of Document Author/Supplier:
>> Author: jie.cao at sun.com
>> 1.3 Date of This Document:
>> Jul 7th, 2008
>> 4. Technical Description
>>
>> 4.1 Summary
>>
>> The raidctl utility is a RAID configuration tool for mpt controllers in
>> Solaris; however, it needs to be enhanced when the mpt-mpxio feature is
>> enabled. The reason is that the mpt controller can only deal with the
>> target id with RAID management commands; but accessible disks are
>> represented using GUID when mpt-mpxio is enabled. Considering that 
>> there's
>> no 1-1 mapping method between the GUID and target id, raidctl should
>> provide the GUID information so that user can figure out the disk target
>> id.
>>
>> Meanwhile, for mpt controllers, volume can be in an inactive state
>> and in this case no RAID config action can be conducted. The raidctl
>> utility needs to be enhanced to detect volume inactive status
>> and to include volume activation capability.
>>
>> 4.2 Proposal
>>
>> The GUID is a property for a physical disk. Presently raidctl utility 
>> can
>> display detailed information for a physical disk, including the target
>> id, but not GUID info. The solution is to add the GUID information to 
>> the
>> disk information output so user can determine both the target id and
>> GUID for a given disk; thus the user can use the corresponding target 
>> id for further
>> RAID management actions.
>>
>> Accordingly, a new Property object (to hold GUID
>> information) will be introduced into the RaidCfg software. Each Property
>> object will only associate with a single disk object as a component and
>> its attribute is defined as follows:
>>
>> typedef struct {
>> uint32_t prop_id;
>> uint32_t prop_size;
>> property_type_t prop_type;
>> char prop[1];
>> } property_attr_t;
>>
>> prop_id: A unique id number within a controller. It's used to address 
>> the property object.
>> prop_size: Length of buffer specified by the 'prop' field.
>> prop_type: Specifying what kind of information in buffer 'prop'.
>> Currently can only be PROP_GUID.
>> prop: Buffer used to store property information.
>>
>> The GUID information is generated by physical disk devices so each layer
>> of RaidCfg software will include some adjustment to meet this 
>> requirement.
>> All interfaces including CLI, API and SPI will be enhanced with backward
>> compatibilities, to provide features to address the property objects and
>> to query the corresponding attributes.
>>
>> And for the volume activation issue, a new flag will be introduced into
>> the 'state' field of array object attribute (see section 3.2.3 in 
>> RaidCfg
>> design doc version 1.1 [1]) to represent the array's activating 
>> status. When
>> bit 31 of the 'state' field is 1, the volume is in inactive state. Bit
>> 16 to bit 30 are reserved. Bit 0 to bit 15 remains unchanged.
>>
>> The API function raidcfg_set_attr() and SPI function rdcfg_set_attr()
>> will be enhanced to provide volume-activation feature.
>>
>>
>> 4.3 Interface Summary
>>
>> RaidCfg CLI interface:
>> Remains as Evolving.
>> GUID information output had been added to disk information display
>> in a compatible format. And for a given volume, if it's in inactive
>> state, array information display output will show this status. See
>> accompanied diff file for the raidctl manpage.
>>
>> RaidCfg API interface:
>> Remains as project-private.
>> The following API routines will be enhanced with backward compatibility:
>>
>> (1) int raidcfg_get_type(int obj_handle)
>> Constant OBJ_TYPE_PROP had been added to return value range;
>>
>> (2) int raidcfg_list_head(int obj_handle, raid_obj_type_id_t type)
>> Constant OBJ_TYPE_PROP had been added to value range of
>> parameter 'type'.
>>
>> (3) int raidcfg_get_attr(int obj_handle, void *attr)
>> This function will be enhanced with the capability to query
>> attributes for a Property object (presently only for GUID
>> information). In this case 'attr' must point to a structure of
>> type raidcfg_prop_t, defined as follows:
>>
>> typedef property_attr_t raidcfg_prop_t;
>>
>> Note that if 'prop_size' filed is 0, this function will fill
>> this field with required length of buffer 'prop' to store the
>> property information (hereby the GUID, as a string); otherwise
>> 'prop' will be filled with the property information.
>>
>> (4) int raidcfg_set_attr(int obj_handle, uint32_t set_cmd,
>> void *value, char **err_str)
>> This function will be enhanced with the capability to activate
>> a volume. In this case 'obj_handle' should contain the array
>> object handle, 'set_cmd' should be SET_ACTIVATION_PLY and
>> 'value' should point to a value of ARRAY_ACT_ACTIVATE.
>>
>>
>> RaidCfg SPI interface:
>> Remains as project-private.
>> The following SPI routines will be enhanced with backward compatibility:
>>
>> (1) int rdcfg_compnum(uint32_t controller_id, uint32_t container_id,
>> raid_obj_type_id_t container_type, raid_obj_type_id_t
>> component_type)
>> A new combination of parameters of 'container_type' and 
>> 'component_type' will be added, as follows:
>>
>> container_type component_type
>> ======================================================
>> RAID_OBJ_TYPE_DISK RAID_OBJ_TYPE_PROP
>>
>> This combination will be used to query for the number of
>> Property object for a given disk.
>>
>> (2) int rdcfg_complist(uint32_t controller_id, uint32_t container_id,
>> raid_obj_type_id_t container_type, raid_obj_type_id_t comp_type,
>> int comp_num, uint32_t *ids)
>> A new combination of parameters of 'container_type' and 
>> 'component_type' is added, as follows:
>>
>> container_type component_type
>> ======================================================
>> RAID_OBJ_TYPE_DISK RAID_OBJ_TYPE_PROP
>>
>> This combination will be used to query for Property object ids
>> for a given disk.
>>
>> (3) int rdcfg_get_attr(uint32_t controller_id, uint32_t device_id,
>> uint32_t index_id, raid_obj_type_id_t type, void *attr)
>> A new combination of parameters of 'type', 'device_id' and
>> 'index_id' will be added, as follows:
>>
>> type device_id index_id
>> ========================================================
>> RAID_OBJ_TYPE_PROP disk_id prop_id
>>
>> Buffer pointed by 'attr' will contain a structure of type
>> 'property_attr_t', which is defined as follows:
>>
>> typedef struct {
>> uint32_t prop_id;
>> uint32_t prop_size;
>> property_type_t prop_type;
>> char prop[1];
>> } property_attr_t;
>>
>> Since presently the Property object can only hold the GUID
>> information, rdcfg_get_attr() should always fill 'prop_type'
>> with constant PROP_GUID; and 'prop_size' stands for the length
>> of 'prop'. If 'prop_size' is 0, rdcfg_get_attr() should fill
>> it with length of the GUID information (in bytes) and return
>> SUCCESS; otherwise rdcfg_get_attr() should put the GUID
>> information into buffer 'prop' and return SUCCESS.
>>
>> (4) int rdcfg_set_attr(uint32_t controller_id, uint32_t device_id,
>> uint32_t cmd, uint32_t *value, char **err_ptr)
>> A new combination of parameters of 'device_id', 'cmd' and 'value' 
>> will be added, as follows:
>>
>> device_id cmd *value
>> =============================================================
>> array_id SET_ACTIVATION_PLY ARRAY_ACT_ACTIVATE
>>
>> This combination will be used to activate the volume in question.
>>
>>
>> 4.4 References
>>
>> [1] PSARC/2005/204 RaidCfg project
>> <http://sac.sfbay/PSARC/2005/204>
>>
>> [2] PSARC/2006/663 RaidCfg MPT adjustment
>> <http://sac.sfbay/PSARC/2006/663>
>>
>> [3] PSARC/2007/667 RaidCfg disk_id adjustment
>> <http://sac.sfbay/PSARC/2007/667>
>>
>> [4] Manpage of raidctl(1M)
>>
>>
>> 6. Resources and Schedule
>> 6.4. Steering Committee requested information
>> 6.4.1. Consolidation C-team Name:
>> ON
>> 6.5. ARC review type: FastTrack
>> 6.6. ARC Exposure: open
>>
>> 6. Resources and Schedule
>> 6.4. Steering Committee requested information
>> 6.4.1. Consolidation C-team Name:
>> ON
>> 6.5. ARC review type: FastTrack
>> 6.6. ARC Exposure: open
>>
>

-- 
Tzongyu Paul Lee, Tzongyu.Lee at Sun.Com or Paul.Lee at Sun.COM
BJS05 7225, x84343


Reply via email to