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]

 CIMCoreCR00930

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_PrintInputTray 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_PrintInputTray.mof

Date Originated  [mm/dd/yyyy]

05/11/2007

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

05/11/2007

Dependencies   [smwgCR00567,sysdevCR00555]

 

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, PWG is updating the printing-related classes in the CIM data model.  

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.  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.   

 

Many early implementers of this class are expected to be proxy providers for SNMP-capable printers.  A few properties in this class are included to permit software and users to correlate status and event information between CIM and legacy SNMP access paths.  It is expected that such properties will be deprecated when they are no longer needed for this purpose. 

 

The current new class, CIM_PrintInputTray, is the second 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 class CIM_PrintInputTray

 

 

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

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

// CIM_PrintInputTray

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

 

   [Experimental, Version ( "2.16.0" ),

       UMLPackagePath ( "CIM::Device::Printing" ), Description (

       "This class represents the input tray component of a printer "

       "(print device). It contains properties that describe a device "

       "capable of providing media for input to the printing process.")]

class CIM_PrintInputTray : CIM_LogicalElement {

 

      [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> shall 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> shall "

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

          "first colon to appear in InstanceID shall 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 shall 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> shall "

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

          "first colon to appear in InstanceID shall 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 shall 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 "

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

   string InstanceID;

 

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

          "The user-friendly name for this instance of input 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 out-of-band to a site-specific name by the "

          "system administrator."),

       MappingStrings { "MIB.IETF|Printer-MIB.prtInputName" },

       ModelCorrespondence { "CIM_ManagedElement.ElementName" }]

   string ElementName;

 

      [Description (

          "A unique value used by the printer to identify this input "

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

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

          "new input trays to the printer), values should "

          "remain stable across successive printer power cycles. Note: "

          "This property is necessary to correlate status and event "

          "(alert) information between CIM and SNMP interfaces."),

       MinValue ( 1 ), MaxValue ( 65535 ),

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

   uint32 SNMPRowId;

 

      [Description (

          "Denotes whether or not this input tray is the default input "

          "tray for this printer. "

          "If the default input tray feature is not supported for "

          "this printer, then this property shall be null. "

          "If the default input tray feature is supported for "

          "this printer, then this property shall be true for at most "

          "one instance of CIM_PrintInputTray on this printer, i.e., "

          "the default may not be currently configured."),

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

   boolean IsDefault;

 

      [Description (

          "A free-form text description of this input tray in "

          "the localization specified by "

          "CIM_Printer.CurrentNaturalLanguage."),

       MinLen ( 0 ), MaxLen ( 255 ),

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

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

   string LocalizedDescription;

 

      [Description (

          "The type of technology (discriminated primarily according "

          "to feeder mechanism type) employed by the input tray."),

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

       Values { "Other", "Unknown", "SheetFeedAutoRemovableTray",

          "SheetFeedAutoNonRemovableTray", "SheetFeedManual",

          "ContinuousRoll", "ContinuousFanFold", "DMTF Reserved" },

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

          "MIB.IETF|IANA-PRINTER-MIB.PrtInputTypeTC" },

       ModelCorrespondence {

          "CIM_PrintInputTray.OtherTypeDescription" }]

   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 ),

       ModelCorrespondence { "CIM_PrintInputTray.Type" }]

   string OtherTypeDescription;

 

      [Description (

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

          "capacity values for this input tray."),

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

          ".." },

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

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

          "Percent", "DMTF Reserved" },

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

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

       ModelCorrespondence {

          "CIM_PrintInputTray.OtherCapacityUnit" }]

   unit32 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 ),

       ModelCorrespondence {

          "CIM_PrintInputTray.CapacityUnit" }]

   string OtherCapacityUnit;

 

      [Description (

          "The basis for the limit property MaxCapacity, that "

          "specifies whether a meaningful value is available. 1 "

          "(Other) means the input tray places no restrictions on "

          "capacity and MaxCapacity shall be null. 2 (Unknown) means "

          "the input tray "

          "cannot sense a meaningful value and MaxCapacity "

          "shall be null. 3 (Actual) means the input tray "

          "can sense a "

          "meaningful value and MaxCapacity shall be present."),

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

       Values { "Other", "Unknown", "Actual", "DMTF Reserved" },

       MappingStrings { "MIB.IETF|Printer-MIB.prtInputMaxCapacity" },

       ModelCorrespondence {

          "CIM_PrintInputTray.MaxCapacity" }]

   uint16 MaxCapacityBasis;

 

      [Description (

          "The maximum capacity of the input tray in units "

          "specified by CIM_PrintInputTray.CapacityUnit. There is no "

          "convention associated with the media itself so this value "

          "reflects claimed capacity. If this input tray can "

          "reliably sense this value, the value is sensed by the "

          "input tray "

          "and cannot be changed by the system administrator; "

          "otherwise, the value may be changed out-of-band by the "

          "system administrator."),

       MinValue ( 0 ), MaxValue ( 2147483647 ),

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

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

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

       ModelCorrespondence {

          "CIM_PrintInputTray.MaxCapacityBasis" }]

   uint32 MaxCapacity;

 

      [Description (

          "The basis for the gauge property CurrentLevel, that "

          "specifies whether a meaningful value is available. 1 "

          "(Other) means the input tray places no restrictions on "

          "capacity and CurrentLevel shall be null. 2 (Unknown) means "

          "the input tray cannot sense a meaningful value and "

          "CurrentLevel shall be null. 3 (Actual) means the input tray "

          "can sense a meaningful value and CurrentLevel shall be "

          "present. 4 (AtLeastOne) means that the input tray can only "

          "sense that at least one capacity unit remains (i.e., not "

          "empty) and CurrentLevel shall be present and shall contain "

          "the value zero or one."),

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

       Values { "Other", "Unknown", "Actual", "AtLeastOne",

          "DMTF Reserved" },

       MappingStrings { "MIB.IETF|Printer-MIB.prtInputCurrentLevel" },

       ModelCorrespondence {

          "CIM_PrintInputTray.CurrentLevel" }]

   uint16 CurrentLevelBasis;

 

      [Description (

          "The current level of the input tray in units "

          "specified by CIM_PrintInputTray.CapacityUnit. If this input "

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

          "sensed by the input tray "

          "and cannot be changed by the system "

          "administrator; otherwise, the value may be changed "

          "out-of-band by the system administrator."),

       MinValue ( 0 ), MaxValue ( 2147483647 ),

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

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

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

       ModelCorrespondence {

          "CIM_PrintInputTray.CurrentLevelBasis" }]

   uint32 CurrentLevel;

 

      [Description (

          "This property contains detailed availability information "

          "for this input tray, as follows: "

          "1 (Other) means other detailed availability information "

          "is present in the OtherAvailabilityStatus property. "

          "2 (Unknown) means detailed availability information for "

          "this input tray is unknown. "

          "3 (AvailableIdle) means this input tray is available "

          "and idle, i.e., not currently in use. "

          "4 (AvailableStandy) means this input tray is available "

          "but on standby, e.g., in a power saving mode. "

          "5 (AvailableActive) means this input tray is available "

          "and active, i.e., currently in use. "

          "6 (AvailableBusy) means this input tray is available "

          "but busy, i.e., not immediately available for its "

          "primary function. "

          "7 (UnavailableOnRequest) means this input tray is not "

          "available and is on request, i.e., needs human "

          "intervention. "

          "8 (UnavailableBroken) means this input tray is not "

          "available and is broken, e.g., needs repair/replacement."),

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

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

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

          "UnavailableBroken", "DMTF Reserved" },

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

       ModelCorrespondence {

          "CIM_ManagedSystemElement.OperatingStatus",

          "CIM_PrintInputTray.OtherAvailabilityStatus" }]

   uint32 AvailabilityStatus;

 

      [Description (

          "A free-form string that describes the detailed availability "

          "of this input tray when the value of the AvailabilityStatus "

          "property is equal to 1 (Other)."),

       MinLen ( 0 ), MaxLen ( 255 ),

       ModelCorrespondence {

          "CIM_PrintInputTray.AvailabilityStatus" }]

   string OtherAvailabilityStatus;

 

      [Description (

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

          "this input tray."),

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

       ModelCorrespondence { "CIM_ManagedSystemElement.DetailedStatus"

          }]

   boolean NonCriticalAlertsPresent;

 

      [Description (

          "If true, there are currently critical alerts on "

          "this input tray."),

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

       ModelCorrespondence { "CIM_ManagedSystemElement.DetailedStatus"

          }]

   boolean CriticalAlertsPresent;

 

      [Description (

          "This property provides the value of the PWG standard or "

          "custom media size name of the media that is (or, if empty, "

          "was or will be) in this input tray. The values of "

          "this property shall conform to the requirements of the PWG "

          "Media Standardized Names specification [PWG5101.1], which "

          "defines the normative values for this property. If this "

          "input tray can reliably sense this value, the value "

          "is sensed by the input tray and cannot be changed by the "

          "system administrator; otherwise, the value may be changed "

          "out-of-band by the system administrator. The empty value "

          "means unknown."),

       MinLen ( 0 ), MaxLen ( 63 ),

       MappingStrings { "PWG5101-1.PWG|Media Standardized Names",

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

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

   string MediaSizeName;

 

      [Description (

          "The descriptive name "

          "of the media contained in this input tray. "

          "This media name is to be used by a client to "

          "format and localize a string for display to a human "

          "operator. This media name is not processed by the printer. "

          "It is used to provide information not expressible in terms "

          "of the other media attributes (e.g., "

          "CIM_PrintInputTray.MediaWeight and "

          "CIM_PrintInputTray.MediaType)."),

       MinLen ( 0 ), MaxLen ( 63 ),

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

   string MediaName;

 

      [Description (

          "The basis for the media property MediaWeight, that "

          "specifies whether a meaningful value is available. 2 "

          "(Unknown) means the input tray "

          "cannot sense a meaningful value "

          "and MediaWeight shall be null. 3 (Actual) means the "

          "input tray "

          "can sense a meaningful value and MediaWeight shall be "

          "present."),

       ValueMap { "2", "3", ".." },

       Values { "Unknown", "Actual", "DMTF Reserved" },

       MappingStrings { "MIB.IETF|Printer-MIB.prtInputMediaWeight" },

       ModelCorrespondence {

          "CIM_PrintInputTray.MediaWeight" }]

   uint16 MediaWeightBasis;

 

      [Description (

          "The weight of the media associated with this input tray "

          "in grams per square meter."),

       Punit ( " gram / (meter * meter)" ), MinValue ( 0 ),

       MaxValue ( 2147483647 ),

       MappingStrings { "MIB.IETF|Printer-MIB.prtInputMediaWeight" },

       ModelCorrespondence {

          "CIM_PrintInputTray.MediaWeightBasis" }]

   uint32 MediaWeight;

 

      [Description (

          "The name of the type of media associated with this input "

          "tray. The values of this property should conform to "

          "the requirements of the PWG Media Standardized Names "

          "specification [PWG5101.1], which defines the normative "

          "values for this property. This media type name need not be "

          "processed by the printer; it might simply be displayed to "

          "an operator."),

       MinLen ( 0 ), MaxLen ( 63 ),

       MappingStrings { "PWG5101-1.PWG|Media Standardized Names",

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

   string MediaType;

 

      [Description (

          "The name of the color of the media associated with this "

          "input tray. The values of this property should "

          "conform to the requirements of the PWG Media Standardized "

          "Names specification [PWG5101.1], which defines the "

          "normative values for this property."),

       MinLen ( 0 ), MaxLen ( 63 ),

       MappingStrings { "PWG5101-1.PWG|Media Standardized Names",

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

   string MediaColor;

};

 

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

 

Comments and Resolutions from ballot 2007/05/25

Name

Company

Comment & Resolution

John Crandall

Brocade

The following description for PrintInputTray is ackward and should be re-written:
"Subunit: Input tray on a printer (print device). Properties of a device capable of providing media for input to the printing process."
[PWG] Done.  

Throughout the descriptions it says "printer subunit when I think it should be "PrintInputTray"
[PWG] Changed all occurrences. 

OtherTypeDescription needs model correspondence to Type
OtherCapacityUnit needs mode correspondence to CapacityUnit
MaxCapacity needs model correspondence to MaxCapacityBasis
CurrentLevel needs model correspondence to CurrentLevelBasis
[PWG] Agreed.  Done.  

The description for AvailabilityStatus is ackward starting with "Status" and also am not sure how it relates to the other status. Also the enums need to be explained.
[PWG] Description fixed.  Enums values documented.  

With the property OfflineStatus, shouldn't we have this added to the other state/status properties Jon Hass added.
[PWG] Property removed in favor of values Not Available and In Service in MSE.OperatingStatus.  This will occlude at least one transient case. 

The properties CriticalAlertsStatus and NonCriticalAlertsStatus names should be slightly different since they are not enums indicating a status but a boolean indicating there are non critical alerts to look into. Do these effect the other status?
[PWG] Names changed to CriticalAlertsPresent to reflect that the PrintAlertLog (future class) contains some.  Similarly for NonCriticalAlertsPresent. 

FOr the last set of perties, is it media or medium?
[PWG] Changed the words to "media" in all cases.  (The distinction was inconsistently used and opaque.)

Can many of the media properties be enums. For example MediaSize?
[PWG] We believe that this would be extremely unwieldy. 
- The enum list is very large (over a hundred);
- The enum list is open-ended, with rules for creating custom names (as strings);
- Many of the values have synonyms from which vendors prefer to choose, so mapping from a numeric ValueMap to a string Value is not unambiguous.
- For near-term proxy implementations, the value of this string must sometimes be synthesized by the agent based on size measurements received from the printer. 
All these (admittedly declarative) properties will be writable only out-of-band, not thru CIM interfaces, for the foreseeable future.  Applications will receive these values as strings that can be directly displayed to users.   

I spend about an hour going through the descriptions and think they will need a little more work to get them correct from a DMTF perspective. I also think there are more model correspondence.
[PWG] Added ModelCorrespondences for the remaining status property. 

 

 

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

Version

Date 

Short description of changes

 0.1

 2007/05/10

 Original version.  

 0.2

 2007/05/11

 Fix CR number and date. 

 0.3

 2007/05/25

 Respond to ballot comments, detailed above.

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