DMTF Change Request

DMTF Confidential

All changes to be submitted by the Working Group Chair (or designee) after approval by the working group.  

The Change Request sample (http://www.dmtf.org/members/zdata/CRTemplateSample.html) contains more detailed
information on how to complete the template.

DMTF Change Request Number   [sysdevCR006655]

 CIMCoreCR00901

CR Owner Name, Email  [My Name, my.name@company.com]

Richard Landau, Richard_Landau@dell.com

Alliance Partner submitting CR request (if applicable)

Printer Working Group, pwg.org

Alliance Partner vote history (e.g. SNIA XYZ Approved on 8/12/06)

 

Alliance Partner identifier/tracking number (if available)

 n/a

Errata   [Yes/No]

 No

Short Description

Add new class  CIM_PrintOutputTray to enhanced printer device model.

Spec, Document or Model(s) Being Changed   [Device Model]

 [Core Model]

Spec, Document or Model Version Incorporating the Change  [V2.9 Final]

 V2.16 Experimental

Filename(s) Incorporating the Change [Device_USB.mof]

CIM_PrintOutputTray.mof

Date Originated  [mm/dd/yyyy]

 02/07/2007

Date of Last Revision of the Change Request [mm/dd/yyyy]

 03/08/2007

Dependencies   [smwgCR00567,sysdevCR00555]

 n/a

Terminology

The terminology used in this CR should conform to the "Rules for the structure and drafting of International Standards", 5th Edition, 2005 available at:

http://isotc.iso.org/livelink/livelink.exe/fetch/2000/2122/3146825/4229629/4230450/4230456/ISO_IEC_Directives__Part_2__Rules_for_the_structure_and_drafting_of_International_Standards__2004__5th_edition___pdf_format_.pdf?nodeid=4230517&vernum=0

Particular attention shall be paid to Annex H which lays out guidelines for the expression of provisions.

Background/Rationale (Explanation of the background and reason(s) for the requested change, and supporting documentation):

As part of the PWG/DMTF Work Register dated 2005/05/12, the Printer Working Group (PWG, see http://www.pwg.org/) is updating the printing-related classes in the CIM data model.  PWG is submitting a series of Change Requests to update the CIM model to align with the current model developed in the PWG. 

 

The PWG models for printing related devices and services include many properties that need to be managed but are not currently represented in CIM at all.  If these properties are to be visible to CIM-based management applications, then they must appear in the CIM model. 

 

The current PWG printer device model, as embodied in the SNMP Printer MIB v2, RFC3805, contains many properties Some examples:

•        Printer console displays and lights, and cover and other interlocks

•        Printer input and output trays containing media

•        Printer media paths that control the layout of page images on physical sheets

•        Printer toners, colorants, and other supplies

•        Printer communication channels and language interpreters

•        Printer counters for pages and sheets printed in various operational modes

 

The CIM model will be extended to include these important management objects.  This will require extensions to the CIM_Printer class and the addition of other CIM classes to represent the capabilities, settings, and counters required. 

 

The current new class, CIM_PrintOutputTray, is the first of several classes to be added. 

 

Alliance Partner Status (tracking number, other key identifiers,  supporting documentation, etc.):

(insert text here)

Requested Change (Change information such as details before/after the change, readable/indented MOF, and/or references to "Uploaded" MOF and other documents if the changes are too lengthy to include inline):

//add the new class CIM_PrintOutputTray as CIM_PrintOutputTray.mof

 

 

// Copyright (c) 2007 DMTF.  All rights reserved.

// ==================================================================

// CIM_PrintOutputTray

// ==================================================================

 

   [Experimental, Version ( "2.16.0" ), Description (

       "Subunit: Output tray on a printer (print device). Properties "

       "of a device capable of receiving media delivered from the "

       "printing process.") ,

    UMLPackagePath ( "CIM::Device::Printing" )]

class CIM_PrintOutputTray : CIM_ManagedElement {

 

      [Key, Description (

          "Within the scope of the instantiating Namespace, InstanceID "

          "opaquely and uniquely identifies an instance of this class. "

          "To ensure uniqueness within the NameSpace, the value of "

          "InstanceID should be constructed using the following "

          "\"preferred\" algorithm: \n"

          "<OrgID>:<LocalID> \n"

          "Where <OrgID> and <LocalID> are separated by a colon (:), "

          "and where <OrgID> must include a copyrighted, trademarked, "

          "or otherwise unique name that is owned by the business "

          "entity that is creating or defining the InstanceID or that "

          "is a registered ID assigned to the business entity by a "

          "recognized global authority. (This requirement is similar "

          "to the <Schema Name>_<Class Name> structure of Schema class "

          "names.) In addition, to ensure uniqueness, <OrgID> must not "

          "contain a colon (:). When using this algorithm, the first "

          "colon to appear in InstanceID must appear between <OrgID> "

          "and <LocalID>. \n"

          "<LocalID> is chosen by the business entity and should not "

          "be reused to identify different underlying (real-world) "

          "elements. If the above \"preferred\" algorithm is not used, "

          "the defining entity must assure that the resulting "

          "InstanceID is not reused across any InstanceIDs produced by "

          "this or other providers for the NameSpace of this instance. "

          "\nFor DMTF-defined instances, the \"preferred\" algorithm "

          "entity that is creating or defining the InstanceID or that "

          "is a registered ID assigned to the business entity by a "

          "recognized global authority. (This requirement is similar "

          "to the <Schema Name>_<Class Name> structure of Schema class "

          "names.) In addition, to ensure uniqueness, <OrgID> must not "

          "contain a colon (:). When using this algorithm, the first "

          "colon to appear in InstanceID must appear between <OrgID> "

          "and <LocalID>. \n"

          "<LocalID> is chosen by the business entity and should not "

          "be reused to identify different underlying (real-world) "

          "elements. If the above \"preferred\" algorithm is not used, "

          "the defining entity must assure that the resulting "

          "InstanceID is not reused across any InstanceIDs produced by "

          "this or other providers for the NameSpace of this instance. "

          "\nFor DMTF-defined instances, the \"preferred\" algorithm "

          "must be used with the <OrgID> set to CIM.")]

   string InstanceID;

 

      [Required, Override ( "ElementName" ), Write, Description (

          "The user-friendly name for this instance of output tray. In "

          "addition, the user-friendly name can be used as an index "

          "property for a search or query. (Note: The name does not "

          "have to be unique within a namespace. This name shall be "

          "generated as a factory default by the manufacturer and may "

          "be changed to a site-specific name by the system "

          "administrator."),

       MappingStrings { "MIB.IETF|Printer-MIB.prtOutputName" }]

   string ElementName;

 

      [Description (

          "A unique value used by this printer to identify this output "

          "tray subunit. Although these values may change due to a "

          "major reconfiguration of the subunit (e.g., the addition of "

          "new output trays to the printer), values should remain "

          "stable across successive printer power cycles."),

       MinValue ( 1 ), MaxValue ( 65535 ),

       MappingStrings { "MIB.IETF|Printer-MIB.prtOutputIndex" }]

   uint32 Id;

 

      [Description (

          "The type of technology supported by this output tray "

          "subunit."),

       ValueMap { "1", "2", "3", "4", "5", "6", "7" },

       Values { "Other", "Unknown", "RemovableBin", "UnRemovableBin",

          "ContinuousRollDevice", "MailBox", "ContinuousFanFold" },

       MappingStrings { "MIB.IETF|Printer-MIB.prtOutputType",

          "MIB.IETF|IANA-PRINTER-MIB.PrtOutputTypeTC" }]

   uint32 Type;

 

      [Description (

          "A free-form string that describes the type of technology "

          "when the value of the Type property is equal to 1 (Other)."),

       MinLen ( 0 ), MaxLen ( 255 )]

   string OtherType;

 

      [Description (

          "The unit of measurement for use in calculating and relaying "

          "capacity values for this output tray subunit."),

       ValueMap { "1", "2", "3", "4", "8", "16", "17", "18", "19" },

       Values { "Other", "Unknown", "TenThousandthsOfInches",

          "Micrometers", "Sheets", "Feet", "Meters", "Items",

       "Percent" },

       MappingStrings { "MIB.IETF|Printer-MIB.prtOutputCapacityUnit",

          "MIB.IETF|Printer-MIB.PrtCapacityUnitTC" }]

   uint32 CapacityUnit;

 

      [Description (

          "A free-form string that describes the capacity unit when "

          "the value of the CapacityUnit property is equal to 1 "

          "(Other)."),

       MinLen ( 0 ), MaxLen ( 255 )]

   string OtherCapacityUnit;

 

      [Write, Description (

          "The maximum capacity of this output tray subunit. There is "

          "no convention associated with the media itself so this "

          "value essentially reflects claimed capacity. If this output "

          "tray subunit can reliably sense this value, the value is "

          "sensed by the printer and shall not be changed by "

          "management requests; otherwise, the value may be written "

          "(by a Remote Control Panel or a Management Application). "

          "The value (-1) means other and specifically indicates that "

          "the subunit places no restrictions on this parameter. The "

          "value (-2) means unknown."),

       MinValue ( -2 ), MaxValue ( 2147483647 ),

       MappingStrings { "MIB.IETF|Printer-MIB.prtOutputMaxCapacity",

          "MIB.IETF|Printer-MIB.prtOutputCapacityUnit",

          "MIB.IETF|Printer-MIB.PrtCapacityUnitTC" }]

   sint32 MaxCapacity;

 

      [Write, Description (

          "The remaining capacity of this output tray subunit. If this "

          "output tray subunit can reliably sense this value, the "

          "value is sensed by the printer and shall not be modified by "

          "management requests; otherwise, the value may be written "

          "(by a Remote Control Panel or a Management Application). "

          "The value (-1) means other and specifically indicates that "

          "the subunit places no restrictions on this parameter. The "

          "value (-2) means unknown. The value (-3) means that the "

          "printer knows that there remains capacity for at least one "

          "unit."),

       MinValue ( -3 ), MaxValue ( 2147483647 ),

       MappingStrings {

          "MIB.IETF|Printer-MIB.prtOutputRemainingCapacity",

          "MIB.IETF|Printer-MIB.prtOutputCapacityUnit",

          "MIB.IETF|Printer-MIB.PrtCapacityUnitTC" }]

   sint32 RemainingCapacity;

 

      [Description (

          "Status: Assessment of the availability of this printer "

          "subunit."),

       ValueMap { "1", "2", "3", "4", "5", "6", "7" },

       Values { "Unknown", "AvailableIdle", "AvailableStandby",

          "AvailableActive", "AvailableBusy", "UnavailableOnRequest",

          "UnavailableBroken" },

       MappingStrings { "MIB.IETF|Printer-MIB.PrtSubUnitStatusTC" }]

   uint32 StatusAvailability;

 

      [Description (

          "Status: If true, there are currently non-critical alerts on "

          "this printer subunit."),

       MappingStrings { "MIB.IETF|Printer-MIB.PrtSubUnitStatusTC" }]

   boolean StatusNonCriticalAlerts;

 

      [Description (

          "Status: If true, there are currently critical alerts on "

          "this printer subunit."),

       MappingStrings { "MIB.IETF|Printer-MIB.PrtSubUnitStatusTC" }]

   boolean StatusCriticalAlerts;

 

      [Description (

          "Status: If true, the current state is offline on this "

          "printer subunit."),

       MappingStrings { "MIB.IETF|Printer-MIB.PrtSubUnitStatusTC" }]

   boolean StatusOffline;

 

      [Description (

          "Status: If true, the current state is transitioning from "

          "one value to another on this printer subunit."),

       MappingStrings { "MIB.IETF|Printer-MIB.PrtSubUnitStatusTC" }]

   boolean StatusTransitioning;

 

      [Description (

          "A free-form text description of this output tray subunit in "

          "the localization specified by "

          "CIM_Printer.CurrentNaturalLanguage."),

       MinLen ( 0 ), MaxLen ( 255 ),

       MappingStrings { "MIB.IETF|Printer-MIB.prtOutputDescription",

          "MIB.IETF|Printer-MIB.PrtLocalizedDescriptionStringTC" }]

   string LocalizedDescription;

 

      [Write, Description (

          "The current state of the stacking order for the associated "

          "output tray subunit. 'FirstToLast' means that as pages are "

          "output the front of the next page is placed against the "

          "back of the previous page. 'LasttoFirst' means that as "

          "pages are output the back of the next page is placed "

          "against the front of the previous page."),

       ValueMap { "2", "3", "4" },

       Values { "Unknown", "FirstToLast", "LastToFirst" },

       MappingStrings { "MIB.IETF|Printer-MIB.prtOutputStackingOrder",

          "MIB.IETF|Printer-MIB.PrtOutputStackingOrderTC" }]

   uint32 StackingOrder;

 

      [Write, Description (

          "The reading surface that will be 'up' when pages are "

          "delivered to the associated output tray subunit. Values are "

          "faceUp and faceDown. (Note: interpretation of these values "

          "is in general context-dependent based on locale; "

          "presentation of these values to an end-user should be "

          "normalized to the expectations of the user)."),

       ValueMap { "3", "4" },

       Values { "FaceUp", "FaceDown" },

       MappingStrings {

          "MIB.IETF|Printer-MIB.prtOutputPageDeliveryOrientation",

          "MIB.IETF|Printer-MIB.PrtOutputPageDeliveryOrientationTC" }]

   uint32 PageDeliveryOrientation;

 

      [Write, Description (

          "This property indicates that the output tray supports "

          "offset stacking,and if so, whether the feature is enabled. "

          "See RFC 3805 Appendix A, Glossary Of Terms, for how Offset "

          "Stacking is defined by this document."),

       ValueMap { "3", "4", "5" },

       Values { "On", "Off", "NotPresent" },

       MappingStrings { "MIB.IETF|Printer-MIB.prtOutputOffsetStacking",

          "MIB.IETF|Printer-MIB.PresentOnOff" }]

   uint32 OffsetStacking;

 

      [Experimental, Description (

          "PrimaryStatus provides a high level status value, intended "

          "to align with Red-Yellow-Green type representation of "

          "status. It should be used in conjunction with "

          "DetailedStatus to provide high level and detailed health "

          "status of the ManagedElement and its subcomponents. \n"

          "PrimaryStatus consists of one of the following values: "

          "Unknown, OK, Degraded or Error. \"Unknown\" indicates the "

          "implementation is in general capable of returning this "

          "property, but is unable to do so at this time. \n"

          "\"OK\" indicates the ManagedElement is functioning "

          "normally. \n"

          "\"Degraded\" indicates the ManagedElement is functioning "

          "below normal. \n"

          "\"Error\" indicates the ManagedElement is in an Error "

          "condition."),

       ValueMap { "0", "1", "2", "3", "..", "0x8000.." },

       Values { "Unknown", "OK", "Degraded", "Error", "DMTF Reserved",

          "Vendor Reserved" },

       ModelCorrespondence { "CIM_ManagedSystemElement.DetailedStatus",

          "CIM_ManagedSystemElement.HealthState" }]

   uint16 PrimaryStatus;

 

      [Experimental, Description (

          "DetailedStatus complements PrimaryStatus with additional "

          "status detail. It consists of one of the following values: "

          "Not Available, No Additional Information, Stressed, "

          "Predictive Failure, Non-Recoverable Error, "

          "SupportingEntityInError. Detailed status is used to expand "

          "upon the PrimaryStatus of the element. \n"

          "A Null return indicates the implementation (provider) does "

          "not implement this property. \n"

          "\"Not Available\" indicates that the implementation "

          "(provider) is capable of returning a value for this "

          "property, but not ever for this particular piece of "

          "hardware/software or the property is intentionally not used "

          "because it adds no meaningful information (as in the case "

          "of a property that is intended to add additional info to "

          "another property). \n"

          "\"No Additional Information\" indicates that the element is "

          "functioning normally as indicated by PrimaryStatus = "

          "\"OK\". \n"

          "\"Stressed\" indicates that the element is functioning, but "

          "needs attention. Examples of \"Stressed\" states are "

          "overload, overheated, and so on. \n"

          "\"Predictive Failure\" indicates that an element is "

          "functioning normally but a failure is predicted in the near "

          "future. \n"

          "\"Non-Recoverable Error \" indicates that this element is "

          "in an error condition that requires human intervention. \n"

          "\"Supporting Entity in Error\" indicates that this element "

          "might be \"OK\" but that another element, on which it is "

          "dependent, is in error. An example is a network service or "

          "endpoint that cannot function due to lower-layer networking "

          "problems."),

       ValueMap { "0", "1", "2", "3", "4", "5", "..", "0x8000.." },

       Values { "Not Available", "No Additional Information",

          "Stressed", "Predictive Failure", "Non-Recoverable Error",

          "Supporting Entity in Error", "DMTF Reserved",

          "Vendor Reserved" },

       ModelCorrespondence { "CIM_EnabledLogicalElement.PrimaryStatus",

          "CIM_ManagedSystemElement.HealthState" }]

   uint16 DetailedStatus;

 

      [Experimental, Description (

          "OperatingStatus provides a current status value for the "

          "operational condition of the element and can be used for "

          "providing more detail with respect to the value of "

          "EnabledState. It can also provide the transitional states "

          "when an element is transitioning from one state to another, "

          "such as when an element is transitioning between "

          "EnabledState and RequestedState, as well as other "

          "transitional conditions. \n"

          "OperatingStatus consists of one of the following values: "

          "Unknown, Not Available, In Service, Starting, Stopping, "

          "Stopped, Aborted, Dormant, Completed, Migrating, "

          "Emigrating, Immigrating, Snapshotting. Shutting Down, In "

          "Test \n"

          "A Null return indicates the implementation (provider) does "

          "not implement this property. \n"

          "\"Unknown\" indicates the implementation is in general "

          "capable of returning this property, but is unable to do so "

          "at this time. \n"

          "\"None\" indicates that the implementation (provider) is "

          "capable of returning a value for this property, but not "

          "ever for this particular piece of hardware/software or the "

          "property is intentionally not used because it adds no "

          "meaningful information (as in the case of a property that "

          "is intended to add additional info to another property). \n"

          "\"In Service\" describes an element being configured, "

          "maintained, cleaned, or otherwise administered. \n"

          "\"Starting\" describes an element being initialized. \n"

          "\"Stopping\" describes an element being brought to an "

          "orderly stop. \n"

          "\"Stopped\" and \"Aborted\" are similar, although the "

          "former implies a clean and orderly stop, while the latter "

          "implies an abrupt stop where the state and configuration of "

          "the element might need to be updated. \n"

          "\"Dormant\" indicates that the element is inactive or "

          "quiesced. \n"

          "\"Completed\" indicates that the element has completed its "

          "operation. This value should be combined with either OK, "

          "Error, or Degraded in the PrimaryStatus so that a client "

          "can tell if the complete operation Completed with OK "

          "(passed), Completed with Error (failed), or Completed with "

          "Degraded (the operation finished, but it did not complete "

          "OK or did not report an error). \n"

          "\"Migrating\" element is being moved between host elements. "

          "\n\"Immigrating\" element is being moved to new host "

          "element. \n"

          "\"Emigrating\" element is being moved away from host "

          "element. \n"

          "\"Shutting Down\" describes an element being brought to an "

          "abrupt stop. \n"

          "\"In Test\" element is performing test functions."),

       ValueMap { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9",

          "10", "11", "12", "13", "14", "..", "0x8000.." },

       Values { "Unknown", "Not Available", "In Service", "Starting",

          "Stopping", "Stopped", "Aborted", "Dormant", "Completed",

          "Migrating", "Emigrating", "Immigrating", "Snapshotting",

          "Shutting Down", "In Test", "DMTF Reserved",

          "Vendor Reserved" },

       ModelCorrespondence { "CIM_EnabledLogicalElement.EnabledState" }]

   uint16 OperatingStatus;

 

      [Experimental, Description (

          "CommunicationStatus indicates the ability of the "

          "instrumentation to communicate with the underlying "

          "ManagedElement. CommunicationStatus consists of one of the "

          "following values: Unknown, None, Communication OK, Lost "

          "Communication, or No Contact. \n"

          "A Null return indicates the implementation (provider) does "

          "not implement this property. \n"

          "\"Unknown\" indicates the implementation is in general "

          "capable of returning this property, but is unable to do so "

          "at this time. \n"

          "\"Not Available\" indicates that the implementation "

          "(provider) is capable of returning a value for this "

          "property, but not ever for this particular piece of "

          "hardware/software or the property is intentionally not used "

          "because it adds no meaningful information (as in the case "

          "of a property that is intended to add additional info to "

          "another property). \n"

          "\"Communication OK \" indicates communication is "

          "established with the element, but does not convey any "

          "quality of service. \n"

          "\"No Contact\" indicates that the monitoring system has "

          "knowledge of this element, but has never been able to "

          "establish communications with it. \n"

          "\"Lost Communication\" indicates that the Managed Element "

          "is known to exist and has been contacted successfully in "

          "the past, but is currently unreachable."),

       ValueMap { "0", "1", "2", "3", "4", "..", "0x8000.." },

       Values { "Unknown", "Not Available", "Communication OK",

          "Lost Communication", "No Contact", "DMTF Reserved",

          "Vendor Reserved" }]

   uint16 CommunicationStatus;

 

};

 

 

// end of class 

 

Discussion Points (Summary of decisions and discussions of the WG in creating this CR) :

Additional general information:

 

The goal of the alignment project is to represent the current printer device model faithfully in the CIM schema, to the extent possible.  Where the accepted model includes writable properties, specific semantics for status, or numeric enumerated values, we have tried to preserve these semantics.  In cases where the CIM schema has an existing property or a clear convention that would be useful for such a property, we will adapt to that property or convention. 

 

Early implementations of providers using the extended model will be proxy agents that mediate between CIM applications and SNMP-capable printer devices.  To permit plausible implementations, the extensions to the CIM model should employ any information that is likely to be available, and not require too much invention beyond the capabilities of existing devices.  Further extensions can be made in the future as CIM-capable agents migrate into such devices. 

 

The machine translation that is used to convert most of the model into MOF format includes post-processing with mofpretty, and there is some unfortunate interaction between their formatting rules.  For example, mofpretty deletes the final comments in Values and ValueMap lists, making some of the lists appear to be corrupt.  We will try to ameliorate some of these problems in the future.  Correction by hand-editing of all such formatting glitches is impractical for the expected fifteen CRs containing 120 new properties. 

[IBM]Most CRs are built by hand and precisely this sort of painful tinkering is done. 

[PWG responses in green, as this is.]Message received.  We did fix the Values formatting problem, and we have resolved to work around any other mofpretty or similar problems we run across.  

The following table includes comments, replies, further comments in response to the replies, and then further replies.  The exchanges are color-coded for legibility. 

Company

Comment

Response

IBM

value/valuemap properties should not include "Other" unless you have an OtherXXX property that accompanies it.

 

Will add OtherXxx to OutputType and CapacityUnit.  This was a direct translation from existing printer model. 

 

In the case of OffsetStacking, there is no additional information to populate an OtherXxx property, we will eliminate the enum value. 

IBM

the value/valuemap do not need to be listed one per line

 

Caused by a bug in mofpretty formatting that interacts with the output of our machine translation from the existing model.  (mofpretty deletes trailing comments in such lists.)  We will remove comments to avoid the bug.    

IBM

have you looked at specializing from EnabledLogicalElement instead of ManagedElement and reusing the status properties that are currently there

(or the ones proposed by CIMCoreCR00874?)

 

The subunit cannot be enabled or disabled.  Most of the properties of EnabledLogicalElement (and similar classes) do not apply. 

 

The status properties included in the class are directly derived from the existing model, which contains these five classes of status. 

 

The status values being proposed in CR874 are more appropriate to a system than to this simple subunit.  E.g., there is no "communications status" between the subunit and its host device. 

[IBM]Fair enough, but this communications status is actually b/w the instrumentation and the managed element to indicate whether you're providing good information. 

[PWG]Will add the status properties from Core CR874.  If these properties are promoted from EnabledLogicalElement to ManagedSystemElement, we will change the inheritance of this (and most future) classes to MSE, from the current ME, and acquire the new status properties that way.  

Note that the new status properties do not include all the information in the current model. 

IBM

There is already a Description property on ManagedElement.

The Name property seems redundant with ElementName on ManagedElement.

 

Accidental collision of Description property name, derived from existing model; will fix.  Change property name to LocalizedDescription with the same semantics. 

 

Will change Name to AdminName.  The CIM_ManagedElement.ElementName property will be used to specify subunit identity.  The AdminName property is a user-assigned (writable) string. 

[IBM]Pls add an override of ElementName and modify the description qualifier to indicate its intended usage such that within the MOF file its clear why two properties are used.

[PWG]Instances of this class require an administratively assigned name property that is writable by the user.  Rather than have two properties, we will override ManagedElement.ElementName (making it writable and required) to serve that purpose. 

IBM

Also need at least one Key property.

 

Fixed. 

 

The properties used relate to the printer device instance as the scoping element, since CIM_Printer is not derived from CIM_ComputerSystem.    

[IBM]Why not use InstanceId instead of propagated properties?  There has been a general shift towards using a single property instead of multiple.

[PWG]Will change to InstanceID. 

IBM

The commented value in the values qualifier do not match the actual value in the valuemap qualifier.

 

Which property, please?  There is a bug in mofpretty that removes the comment after the last item of a Values or ValueMap list.  This bug makes it appear that the lists don't match, but the values usually are parallel. 

[IBM]The problem went away when you cleaned up the qualifiers

[PWG]We will continue to fix or work around such formatting bugs.  

IBM

Is there a reason that the valuemap integers are not sequential?

 

The values are preserved, wherever possible, from the existing model.  Changing the enum values would add dissonance to the model and reduce traceability.  

 

Many of the value lists in this and other classes are textual conventions controlled by IANA registry and therefore cannot be changed.  

IBM

A property like MaxCapacity is generally implemented in an associated sub-class of Capabilities.

 

MaxCapacity is writable in cases where the value is not reliably sensed by the device; not suitable as a capability. 

[IBM]We still split this data into something like:  CIM_PrintOutputTrayCapabilities.MaxCapacity and CIM_PrintOutputTray.CurrentMaxCapacity. 

how does mgmt client A know whether the value was provided by the device or written by mgmt client B?.  By splitting into two values you can say that if Capabilities.MaxCapacity = unknown, and OutputTray.CurrentMaxCapacity has a value, someone must have written it.

[PWG]This additional complexity -- another class and an association instance -- yields extremely little benefit.  Proxy instrumentation will never have information to make this distinction.  We would much prefer to use the simpler model at least until we gain some user experience with it. 

 

[IBM]Further, the text in the Description qualifier uses  "may not" where I think you want to say "shall not"

[PWG]Will fix.  The wording was taken directly from the MIB.  We will have to be careful about places where the older, looser wording clashes with modern normative use.   

IBM

Its unclear whether RemainingCapacity would be used to advertise the capacity is known, and then have a different value later to reflect the

actual capacity.

 

Derived from existing model.  The property may be employed in various ways by users, depending on local policy. 

 

Also, again, this property is writable in cases where the value cannot be sensed reliably by the device.   

[IBM]same basic comment as above.  You're not providing a mechanism to allow a client to know what is provided by the instrumentation and what has been written by a different client.

IBM

CapacityUnits should have the ProgrammaticUnits qualifier and adhere to the rules agreed to by architecture for DSP0004 (arch 72 and 89)

 

 

Is it possible to add Units qualifier when the exhaustive list of units in DSP0004 does not include equivalents for several of the required values?  (Sheets, TenThousandthsOfInches, Micrometers, Items) 

 

We were not aware of the proposed PUNIT qualifier.  After looking at CR72, we feel that we should not obscure the vendor's declaration of the unit to be used for capacity measurement.  Different vendors must be free to choose units of measurement, which was the purpose of the CapacityUnits property in the original model.  

 

PUNIT would apply directly if we were to impose a fixed unit on MaxCapacity or RemainingCapacity, but that is not possible across the spectrum of devices. 

 

Also, it would be possible to change the representation of CapacityUnits to a string with the ISPUNIT qualifier.  We don't see an advantage of changing the representation to this experimental form.  

[IBM]I don't understand.  It sounds like you're saying that you think it is more interoperable to allow vendors to dump whatever value they want into this property and force clients to treat it as an opaque string.  Using IsPUnit would force a format while allowing implementations to use different base units.  Further, this is the agreed upon direction for DMTF for expressing units.

[PWG]CapacityUnit is an enum, not an opaque string.  Vendors don't get to use whatever they want; they choose from an existing enumerated list of legal values, the same ones in the Values list above.  

Using ISPUNIT on this (or analogous) property, and having the (for the time being) proxy providers translate from the existing vendor-supplied enum to the corresponding PUNIT string, would not improve interoperability, and would require much more code in the client applications   

 

Using the new units proposed in Appendix C.1, for instance,

Micrometers = "meter * 10^-6"

TenThousandthsOfInches = "inch * 10^-5"

Sheets = (no equivalent base-unit)

Items = (no equivalent base-unit)

Need to add these two values to base-unit table in appendix. 

[IBM]No problem, the list has already been expanded in subsequent CRs to fill gaps.

[PWG]The Arch CRs currently do not include either "sheets" or "items" in their lists.  We will supply an exhaustive list of the values that must be added to PUNIT.   

 

 

 

 

 

Change History (Mandatory after submission to the TC, May be used by the WGs):

Version

Date 

Short description of changes

 0.2

2007/02/08 

Original version

 0.3

2007/02/08

Fixed datatypes of Id and similar fields to uint.

 0.4

2007/02/14

Added Key properties, accidentally omitted.  

 0.5

2007/02/27

Responded to IBM comments, including a number of changes detailed in the response.  

 0.7

2007/03/02

Fixed formatting of table of comments.  

 0.8

2007/03/07

Made most changes requested by comments:

  • Removed previous value-based keys. 
  • Removed Key qualifier from Id property, but kept the property.
  • Added InstanceID as Key. 
  • Added Override for ElementName, replacing AdminName: make it required and writable.
  • Changed to newer normative terminology: replace "SHOULD" with "should," "may not" with "shall not." 

 0.9

2007/03/08

Shortened discussions around comments.  

 

 

 

Note that this document is labeled as "DMTF Confidential".  It is intended only for DMTF member companies and alliance partners.
This Change Request may be withdrawn or modified by subsequent Change Requests.

All submissions MUST comply with the DMTF Patent and Technology policy (http://www.dmtf.org/about/policies/patent-10-18-01.pdf)

Template Sample Version 2.0.0.d