summaryrefslogtreecommitdiff
path: root/doc/rfc/rfc3380.txt
diff options
context:
space:
mode:
Diffstat (limited to 'doc/rfc/rfc3380.txt')
-rw-r--r--doc/rfc/rfc3380.txt3307
1 files changed, 3307 insertions, 0 deletions
diff --git a/doc/rfc/rfc3380.txt b/doc/rfc/rfc3380.txt
new file mode 100644
index 0000000..6ea6c07
--- /dev/null
+++ b/doc/rfc/rfc3380.txt
@@ -0,0 +1,3307 @@
+
+
+
+
+
+
+Network Working Group T. Hastings
+Request for Comments: 3380 Xerox Corporation
+Updates: 2910, 2911 R. Herriot
+Category: Standards Track Consultant
+ C. Kugler
+ H. Lewis
+ IBM Corporation
+ September 2002
+
+
+ Internet Printing Protocol (IPP):
+ Job and Printer Set Operations
+
+Status of this Memo
+
+ This document specifies an Internet standards track protocol for the
+ Internet community, and requests discussion and suggestions for
+ improvements. Please refer to the current edition of the "Internet
+ Official Protocol Standards" (STD 1) for the standardization state
+ and status of this protocol. Distribution of this memo is unlimited.
+
+Copyright Notice
+
+ Copyright (C) The Internet Society (2002). All Rights Reserved.
+
+Abstract
+
+ This document is an OPTIONAL extension to the Internet Printing
+ Protocol (IPP/1.0 and IPP/1.1). This document specifies 3 additional
+ OPTIONAL operations for use with the Internet Printing Protocol/1.0
+ (IPP) and IPP/1.1. The end user, operator, and administrator Set-
+ Job-Attributes and Set-Printer-Attributes operations are used to
+ modify IPP Job objects and Printer objects, respectively. The Get-
+ Printer-Supported-Values administrative operation returns values that
+ the IPP Printer will accept for setting its "xxx-supported"
+ attributes.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Hastings, et. al. Standards Track [Page 1]
+
+RFC 3380 IPP: Job and Printer Set Operations September 2002
+
+
+Table of Contents
+
+ 1 Introduction......................................................4
+ 2 Terminology.......................................................5
+ 2.1 Conformance Terminology.........................................5
+ 2.2 Other terminology...............................................5
+ 3 Requirements and Use Cases........................................5
+ 4 Definition of the Set operations..................................6
+ 4.1 Set-Printer-Attributes Operation................................7
+ 4.1.1 Settable and READ-ONLY Printer Description attributes.........9
+ 4.1.2 Set-Printer-Attributes Request...............................10
+ 4.1.3 Set-Printer-Attributes Response..............................12
+ 4.2 Set-Job-Attributes Operation...................................13
+ 4.2.1 Settable and READ-ONLY Job Description attributes............16
+ 4.2.2 Set-Job-Attributes Request...................................17
+ 4.2.3 Set-Job-Attributes Response..................................18
+ 4.3 Get-Printer-Supported-Values Operation.........................19
+ 4.3.1 Definition of the usage of the 'admin-define' out-of-band
+ attribute value..............................................20
+ 5 New Operation attributes.........................................22
+ 5.1 printer-message-from-operator (text(127))......................22
+ 5.2 job-message-from-operator (text(127))..........................23
+ 6 New Printer Description Attributes...............................24
+ 6.1 printer-settable-attributes-supported (1setOf type2 keyword)...24
+ 6.2 job-settable-attributes-supported (1setOf type2 keyword).......25
+ 6.3 document-format-varying-attributes (1setOf type2 keyword)......25
+ 6.4 printer-message-time (integer(MIN:MAX))........................25
+ 6.5 printer-message-date-time (dateTime)...........................26
+ 6.6 printer-xri-supported (1setOf collection)......................26
+ 6.7 xri-uri-scheme-supported (1setOf uriScheme)....................28
+ 6.8 xri-authentication-supported (1setOf type2 keyword)............29
+ 6.9 xri-security-supported (1setOf type2 keyword)..................29
+ 7 Additional status codes..........................................29
+ 7.1 client-error-attributes-not-settable (0x0413)..................29
+ 8 Additional out-of-band values....................................30
+ 8.1 'not-settable' out-of-band value...............................30
+ 8.1.1 Encoding of the 'not-settable' out-of-band attribute value...30
+ 8.2 'delete-attribute' out-of-band value...........................30
+ 8.2.1 Encoding of the 'delete-attribute' out-of-band value.........31
+ 8.3 'admin-define' out-of-band attribute value.....................31
+ 8.3.1 Encoding of the 'admin-define' out-of-band attribute value...32
+ 9 New Values for Existing Printer Description Attributes...........33
+ 9.1 operations-supported (1setOf type2 enum).......................33
+ 10 Conformance Requirements........................................33
+ 11 IANA Considerations.............................................34
+ 11.1 Operation Registrations.......................................35
+ 11.2 Additional Enum Attribute Value Registrations for the
+ "operations-supported" Printer Attribute......................35
+
+
+
+Hastings, et. al. Standards Track [Page 2]
+
+RFC 3380 IPP: Job and Printer Set Operations September 2002
+
+
+ 11.3 Attribute Registrations.......................................35
+ 11.4 Status code Registrations.....................................36
+ 11.5 Out-of-band Attribute Value Registrations.....................36
+ 12 Internationalization Considerations.............................37
+ 13 Security Considerations.........................................37
+ 14 References......................................................38
+ 14.1 Normative References..........................................38
+ 14.2 Informative References........................................38
+ Appendix A: Allowed Values for Set-Printer-Attributes and Set-Job-
+ Attributes requests (Normative)........................39
+ Appendix B: Attributes returned from Get-Printer-Supported-Values
+ (Normative)............................................50
+ Appendix C: Description of the Base IPP Documents (Informative)....55
+ Authors' Addresses.................................................56
+ Full Copyright Statement...........................................58
+
+Table of Tables
+
+ Table 1 - Operation-Id assignments.................................7
+ Table 2 - Job State Transition Table for the Set-Job-Attributes
+ operation ..............................................15
+ Table 3 - Member attributes of "printer-xri-supported" (1setOf
+ collection) ............................................27
+ Table 4 - Operation-id assignments................................33
+ Table 5 - Validation rules for 'Any of "xxx-supported" '..........40
+ Table 6 - Validation rules for 'From Get-Printer-Supported-Values'41
+ Table 7 - Values allowed for Job Template Attributes in the Set-Job-
+ Attributes Operation ...................................42
+ Table 8 - Values allowed for Job Description Attributes in the Set-
+ Job-Attributes Operation ...............................43
+ Table 9 - Values allowed for Printer Job Template Attributes in the
+ Set-Printer-Attributes Operation .......................44
+ Table 10 - Values allowed for Printer Description Attributes in the
+ Set-Printer-Attributes Operation .......................47
+ Table 11 - Printer Job Template Attributes returned from Get-Printer-
+ Supported-Values .......................................51
+ Table 12 - Printer Job Template Attributes returned from Get-Printer-
+ Supported-Values .......................................51
+ Table 13 - Printer Description Attributes returned from Get-Printer-
+ Supported-Values .......................................51
+ Table 14 - Printer Job Template Attributes returned from Get-Printer-
+ Supported-Values .......................................52
+ Table 15 - Printer Job Template Attributes returned from Get-Printer-
+ Supported-Values .......................................52
+ Table 16 - Printer Description Attributes returned from Get-Printer-
+ Supported-Values .......................................53
+
+
+
+
+
+Hastings, et. al. Standards Track [Page 3]
+
+RFC 3380 IPP: Job and Printer Set Operations September 2002
+
+
+1 Introduction
+
+ This document is an OPTIONAL extension to IPP/1.0 [RFC2565, RFC2566]
+ and IPP/1.1 [RFC2911, RFC2910]. For a description of the base IPP
+ documents see Appendix C.
+
+ The Internet Printing Protocol (IPP) is an application level protocol
+ that can be used for distributed printing using Internet tools and
+ technologies. IPP version 1.1 [RFC2911, RFC2910] focuses on end user
+ functionality with a few administrative operations included. This
+ document defines additional OPTIONAL end user, operator, and
+ administrator Set-Job-Attributes and Set-Printer-Attributes
+ operations used to modify IPP Job objects and Printer objects,
+ respectively. It also defines a third Get-Printer-Supported-Values
+ administrator operation that returns values that the IPP Printer will
+ accept for setting its "xxx-supported" attributes. The Get-Printer-
+ Supported-Values operation MUST be supported, if the implementation
+ supports setting any "xxx-supported" Printer attributes using the
+ Set-Printer-Attributes operation.
+
+ Nine Printer Description attributes are defined:
+
+ printer-settable-attributes-supported (1setOf type2 keyword)
+ job-settable-attributes-supported (1setOf type2 keyword)
+ document-format-varying-attributes (1setOf type2 keyword)
+ printer-message-time (integer(MIN:MAX))
+ printer-message-date-time (dateTime)
+ printer-xri-supported (1setOf collection)
+ xri-uri-scheme-supported (1setOf uriScheme)
+ xri-authentication-supported (1setOf type2 keyword)
+ xri-security-supported (1setOf type2 keyword)
+
+ Three out-of-band values are defined for use with these three
+ operations: 'delete-attribute' for deleting Job attributes with the
+ Set-Job-Attributes request, 'not-settable' for use in either the
+ Set-Job-Attributes or Set-Printer-Attributes responses, and 'admin-
+ define' for use in the Get-Printer-Supported-Values response.
+
+ Two operation attributes: "printer-message-from-operator" (text) and
+ "job-message-from-operator" (text) are defined to set the
+ corresponding IPP/1.1 Printer and Job Description attributes with the
+ same names. These operation attributes may be used with any
+ operation that affect the Printer or Job object for which an
+ operation might want to indicate a message. For the Set-Job-
+ Attributes and Set-Printer-Attributes operations, the client MUST
+ explicitly set them, rather than using these operation attributes.
+
+
+
+
+
+Hastings, et. al. Standards Track [Page 4]
+
+RFC 3380 IPP: Job and Printer Set Operations September 2002
+
+
+ A Printer implementation can make the value of some attributes
+ dependent on the document-format, e.g., "resolution-supported".
+
+2 Terminology
+
+ This section defines terminology used throughout this document.
+
+2.1 Conformance Terminology
+
+ Capitalized terms, such as MUST, MUST NOT, REQUIRED, SHOULD, SHOULD
+ NOT, MAY, NEED NOT, and OPTIONAL, have special meaning relating to
+ conformance as defined in BCP 14, RFC 2119 [RFC2119] and [RFC2911]
+ section 12.1. If an implementation supports the extension defined in
+ this document, then these terms apply; otherwise, they do not. These
+ terms define conformance to this document only; they do not affect
+ conformance to other documents, unless explicitly stated otherwise.
+
+2.2 Other terminology
+
+ This document uses terms such as Job object (or Job), IPP Printer
+ object (or Printer), "operation", "request", response", "attributes",
+ "keywords", and "support". These terms have special meaning and are
+ defined in the model terminology [RFC2911], section 12.2. The
+ following additional terms are introduced in this document:
+
+ READ-ONLY: used in an attribute definition document to indicate that
+ the attribute MUST NOT be settable using an IPP protocol Set
+ operation. In other words, the attribute is not settable by
+ definition.
+
+ not-settable: an implementation does not support setting an attribute
+ (whether or not the attribute's definition is READ-ONLY).
+
+3 Requirements and Use Cases
+
+ The following requirements and usage are intended to be met by the
+ specification in this document.
+
+ 1. The end-user and the operator need a way to modify a Job that is
+ in the 'pending' or 'pending-held' state.
+
+ Usage: The end-user discovers that he/she forgot to include a
+ print instruction, such as "finishings" = 'staple' after
+ submitting a job. Rather than canceling the job and resubmitting
+ it to the same IPP Printer, the end-user is able to modify the job
+ on the IPP Printer.
+
+
+
+
+
+Hastings, et. al. Standards Track [Page 5]
+
+RFC 3380 IPP: Job and Printer Set Operations September 2002
+
+
+ The operator needs to modify a job because it is requesting a
+ particular kind of media for which there is no more, but the
+ policy is to print the job on a comparable medium.
+
+ 2. The system administrator needs a way to re-configure or change the
+ policy of the IPP Printer remotely.
+
+ Usage: The system administrator is adding additional named media
+ to the supported media list (setting 'name' values to the "media-
+ supported" Printer attribute).
+
+ The system administrator is reducing the capability of the IPP
+ Printer by removing one of the operations from the supported
+ operations list, such as Cancel-Job, because the policy is to run
+ the IPP Printer like a public facsimile machine. After having
+ removed Cancel-Job from the list of supported operations, an
+ administrative client needs to be able to display to an
+ administrator that the implementation is capable of being
+ reconfigured to support Cancel-Job once again.
+
+ The system administrator is remotely configuring the IPP Printer
+ after installing it, and so is replacing the Printer Description
+ attributes that have the out-of-band 'no-value' value (see
+ [RFC2911], section 4.1) with the proper values.
+
+ The operator is changing the media loaded in the input tray, and
+ so is replacing the "media-ready" Job Template Printer attribute
+ value with the proper values.
+
+4 Definition of the Set operations
+
+ The Set-Printer-Attributes operations (as are all Printer operations)
+ are directed at Printer objects. A client MUST always supply the
+ "printer-uri" operation attribute in order to identify the correct
+ target of the operation. These descriptions assume all of the common
+ semantics of the IPP/1.1 Model and Semantics document [RFC2911],
+ section 3.1.
+
+ The Set-Job-Attributes operations (as are all Job operations) are
+ directed at Job objects. A client MUST always supply some means of
+ identifying the Job object in order to identify the correct target of
+ the operation. That job identification MAY either be a single Job
+ URI or a combination of a Printer URI with a Job ID, as defined in
+ [RFC2911]. The IPP object implementation MUST support both forms of
+ identification for every job. If possible, a client SHOULD use the
+ Printer URI with a Job ID rather than a Job URI, since the 32-bit
+
+
+
+
+
+Hastings, et. al. Standards Track [Page 6]
+
+RFC 3380 IPP: Job and Printer Set Operations September 2002
+
+
+ "job-id" is more readily translated to and from other print protocols
+ that MAY be serving as gateways into or out of the IPP
+ implementation.
+
+ The Set Printer operations are summarized in Table 1:
+
+ Table 1 - Operation-Id assignments
+
+ Operation Name Operation Brief description
+ -Id
+
+ Set-Printer- 0x0013 Sets attribute values of the target
+ Attributes Printer object
+
+ Set-Job-Attributes 0x0014 Sets attribute values of the target
+ Job object
+
+ Get-Printer- 0x0015 Gets values that are valid for
+ Supported-Values setting "xxx-supported" attributes
+ using the Set-Printer-Attributes
+ operation
+
+4.1 Set-Printer-Attributes Operation
+
+ This OPTIONAL operation allows a client to set the values of the
+ attributes of a Printer object. In the request, the client supplies
+ the set of Printer keyword attribute names and values that are to be
+ set. In the response, the Printer object returns success or rejects
+ the entire request with indications of which attribute or attributes
+ could not be set.
+
+ The Printer object validates the client-supplied attributes in the
+ Set-Printer-Attributes request. For an attribute to validate, it
+ MUST meet all of the following rules:
+
+ 1. The number of attributes supplied by the client MUST NOT exceed
+ the maximum number that the Printer supports in a Set-Printer-
+ Attributes request. A Printer MUST accept at least one attribute,
+ but SHOULD accept a reasonable number in a single Set-Printer-
+ Attributes request.
+
+ Note: There is no way for the client to determine the maximum
+ number of attributes that the Printer supports in a Set-Printer-
+ Attributes request, except to try a reasonable number.
+
+ 2. The Printer MUST support the attribute.
+
+
+
+
+
+Hastings, et. al. Standards Track [Page 7]
+
+RFC 3380 IPP: Job and Printer Set Operations September 2002
+
+
+ 3. The attribute MUST NOT be READ-ONLY, i.e., the definition of the
+ attribute MUST NOT indicate that the attribute is READ-ONLY (see
+ Appendix A for an indication of which IPP/1.1 attributes are
+ READ-ONLY).
+
+ 4. The attribute MUST be settable in this implementation.
+
+ 5. The Printer MUST support the value, according to the rules defined
+ in Appendix A, i.e., each value of each supplied "xxx" attribute
+ MUST be validated against the value of a corresponding "xxx-
+ supported" Printer attribute. One of those rules permits an
+ administrator to set arbitrary 'name' values to those "xxx-
+ supported" Printer attributes that include the 'name' attribute
+ syntax if the implementation supports the 'admin-define' out-of-
+ band value for that "xxx-supported" attribute (see section 8.3 and
+ Appendix A).
+
+ 6. The attribute's values MUST NOT conflict with the values of other
+ Printer attributes, including ones being set in this same
+ operation.
+
+ If any of the supplied attributes are not validate, the Printer
+ object MUST reject the entire operation; the Printer object MUST NOT
+ partially set some of the supplied attributes. In other words, after
+ the operation, all the supplied attributes MUST be set or none of
+ them MUST be set, thus making the Set-Printer-Attributes an atomic
+ operation.
+
+ The Printer MUST accept this operation when its READ-ONLY "printer-
+ state" attribute (see [RFC2911], section 4.4.11) is 'idle' or
+ 'stopped', and SHOULD accept it when the value is 'processing'. The
+ Printer MUST accept this operation for any of the values of the
+ Printer object's READ-ONLY "printer-state-reasons" and "printer-is-
+ accepting-jobs" attributes, unless explicitly defined otherwise in
+ the definition of these attributes' values.
+
+ This operation MUST NOT change the value of attributes not specified
+ in the operation unless the definition of the attribute explicitly
+ specifies such side-effects. For example, this document explicitly
+ specifies that when this operation sets "printer-message-from-
+ operator", the Printer also MUST set the READ-ONLY "printer-message-
+ time" and READ-ONLY "printer-message-date-time" attributes to the
+ time of the operation as a side effect. In particular, if this
+ operation changes an "xxx-default" attribute, the new value MUST be
+ in the "xxx-supported" attributes or the request MUST contain a new
+ value for "xxx-supported", which contains the new value for the
+ "xxx-default". Otherwise, the Printer MUST reject the operation. In
+ general, Printer attribute definitions that are settable will not
+
+
+
+Hastings, et. al. Standards Track [Page 8]
+
+RFC 3380 IPP: Job and Printer Set Operations September 2002
+
+
+ define side-effects on other attributes that are settable, only side
+ effects on READ-ONLY attributes, if any.
+
+4.1.1 Settable and READ-ONLY Printer Description attributes
+
+ If the Printer supports the Set-Printer-Attributes operation, then it
+ SHOULD support the setting of:
+
+ all Job Template Default ("xxx-default") attributes
+ all Job Template Supported ("xxx-supported") attributes
+ all Job Template Ready ("xxx-ready") attributes
+
+ that the implementation supports (see [RFC2911] section 4.2 and
+ extensions).
+
+ Some Printer Description attributes (see [RFC2911] section 4.4) MUST
+ NOT be settable, i.e., they are defined to be READ-ONLY. An
+ attribute marked as "READ-ONLY" in the Printer Description attribute
+ table in Appendix A is such an attribute. The Printer attributes
+ that are not marked as "READ-ONLY" MAY be settable using the Set-
+ Printer-Attributes operation, depending on implementation.
+
+ Note: From now on, all extensions that define new object attributes
+ will indicate whether or not the attributes are READ-ONLY, by
+ including the "READ-ONLY" adjective in their descriptions and/or
+ explicitly stating whether they MAY be settable.
+
+ The current values of each "xxx-supported" Printer attribute MUST
+ reflect the current policy for support of the corresponding "xxx"
+ attribute. If an "xxx-supported" Printer attribute is settable in an
+ implementation, then its value(s) MUST affect the behavior of the
+ implementation. If an "xxx-supported" Printer attribute is defined
+ to be READ-ONLY or is not-settable in an implementation, then its
+ values MUST NOT be settable using the Set-Printer-Attributes
+ operation. Consider the following examples:
+
+ For example, if the "operations-supported" Printer Description
+ attribute (see [RFC2911] section 4.4.15) is settable in a
+ particular implementation, then changing its value with a Set-
+ Printer-Attributes operation MUST affect the operations that the
+ implementation accepts or rejects. Such an implementation will
+ need to be able to reject values for operations that it contains
+ no code support for (see section 4.3). If the "operations-
+ supported" Printer Description attribute is not settable in a
+ particular implementation, then that implementation MUST reject an
+ attempt to set it with a Set-Printer-Attributes operation, return
+ the 'client-error-attributes-not-settable' status code (see
+ section 7.1), and return the "operations-supported" attribute,
+
+
+
+Hastings, et. al. Standards Track [Page 9]
+
+RFC 3380 IPP: Job and Printer Set Operations September 2002
+
+
+ with the out-of-band 'not-settable' value in the Unsupported
+ Attributes Group.
+
+ As another example, consider an implementation in which the
+ "media-default" and "media-supported" are settable. If a client
+ supplies a Set-Printer-Attributes request that contains the
+ "media-default" attribute with a value that is not a member of the
+ Printer's "media-supported" attribute, the Printer MUST reject the
+ request and return the "client-error-conflicting-attributes"
+ status code with the "media-default" and "media-supported"
+ attributes and their values (see [RFC2911] section 3.1.7).
+
+ As a third example, if a client supplies a Set-Printer-Attributes
+ request that contains both the "media-default" and the "media-
+ supported" attributes, but includes a value in the "media-default"
+ that is not a member of the supplied "media-supported" attribute,
+ the Printer MUST reject the request and return the "client-error-
+ conflicting-attributes" status code with the "media-default" and
+ "media-supported" attributes and their values (see [RFC2911]
+ section 3.1.7).
+
+ Access Rights: The authenticated user (see [RFC2911] section 8.3)
+ performing this operation must be an operator or administrator of the
+ Printer object (see [RFC2911] Sections 1 and 8.5). Most Printer
+ attributes will require administrator access rights to set, such as
+ "xxx-supported", while some will require operator access rights only,
+ such as "media-ready" and "printer-message-from-operator". Which
+ attributes require which access rights depends on implementation, and
+ MAY depend on site policy.
+
+4.1.2 Set-Printer-Attributes Request
+
+ The following sets of attributes are part of the Set-Printer-
+ Attributes Request:
+
+ Group 1: Operation Attributes
+
+ Natural Language and Character Set:
+ The "attributes-charset" and "attributes-natural-language"
+ attributes, as described in [RFC2911], section 3.1.4.1.
+
+ Target:
+ The "printer-uri" (uri) operation attribute, which is the
+ target for this operation, as described in [RFC2911], section
+ 3.1.5.
+
+
+
+
+
+
+Hastings, et. al. Standards Track [Page 10]
+
+RFC 3380 IPP: Job and Printer Set Operations September 2002
+
+
+ Requesting User Name:
+ The "requesting-user-name" (name(MAX)) attribute SHOULD be
+ supplied by the client, as described in [RFC2911], section 8.3.
+
+ "document-format" (mimeMediaType):
+ The client OPTIONALLY supplies this attribute. The Printer
+ object MUST support this attribute. This attribute is useful
+ for a client to select the document-format to which the
+ attribute modification should be applied. A Printer
+ implementation MAY allow some attributes to have different
+ values for each document format that it supports. See
+ [RFC2911], section 3.2.5.1 "Get-Printer-Attributes Request".
+
+ If the client includes this attribute, the Printer MUST change
+ the supplied attributes for the document format specified by
+ this attribute. If a supplied attribute is a member of the
+ "document-format-varying-attributes" (i.e., the attribute
+ varies by document format, see section 6.3), the Printer MUST
+ change the supplied attribute for the document format specified
+ by this attribute, but not for other document formats. If a
+ supplied attribute isn't a member of the "document-format-
+ varying-attributes" (i.e., it doesn't vary by document format),
+ the Printer MUST change the supplied attribute for all document
+ formats.
+
+ If the client omits this attribute, the Printer MUST change the
+ supplied attributes for all document formats, whether or not
+ they vary by document-format.
+
+ If the client supplies a value for the "document-format"
+ Operation attribute, that is either 'application/octet-stream'
+ or not supported by the Printer, i.e., is not among the values
+ of the Printer object's "document-format-supported" attribute,
+ the Printer object MUST reject the operation and return the
+ 'client-error-document-format-not-supported' status code.
+ Note: the document-format 'application/octet-stream' is the
+ union of several document-formats (see [RFC2911] section
+ 3.2.5.1, Get-Printer-Attributes) and is not a true document-
+ format.
+
+ Group 2: Printer Attributes
+
+ The client MUST supply a set of Printer attributes with one or
+ more values (including explicitly allowed out-of-band values) as
+ defined in [RFC2911] section 4.2 Job Template Attributes ("xxx-
+ default", "xxx-supported", and "xxx-ready" attributes), section
+ 4.4 Printer Description Attributes, and any attribute extensions
+ supported by the Printer. The value(s) of each Printer attribute
+
+
+
+Hastings, et. al. Standards Track [Page 11]
+
+RFC 3380 IPP: Job and Printer Set Operations September 2002
+
+
+ supplied in Group 2 replaces the value(s) of the corresponding
+ Printer attribute on the target Printer object. For attributes
+ that can have multiple values (1setOf), all values supplied by the
+ client replace all values of the corresponding Printer object
+ attribute. If a Printer object attribute had not yet been
+ configured, and so assumed the 'no-value' out-of-band value (see
+ [RFC2911] section 4.1), the supplied value(s) replaces the 'no-
+ value' value.
+
+4.1.3 Set-Printer-Attributes Response
+
+ The Printer object returns the following sets of attributes as part
+ of the Get-Printer-Attributes Response:
+
+ Group 1: Operation Attributes
+
+ Status Message:
+ In addition to the REQUIRED status code returned in every
+ response, the response OPTIONALLY includes a "status-message"
+ (text(255)) and/or a "detailed-status-message" (text(MAX))
+ operation attribute, as described in [RFC2911] sections 3.1.6
+ and 13.
+
+ Natural Language and Character Set:
+ The "attributes-charset" and "attributes-natural-language"
+ attributes, as described in [RFC2911], section 3.1.4.2.
+
+ Group 2: Unsupported Attributes
+
+ See [RFC2911], section 3.1.7, for details on returning Unsupported
+ Attributes.
+
+ If some of the attributes in the operation fail to validate, the
+ Printer MUST reject the operation, MUST NOT change any Printer
+ attributes, and MUST return the indicated status code below. In
+ this group, the Printer MUST also return all attributes that fail
+ to validate. The following are the reasons that an attribute
+ fails to validate and the value returns for the attribute, along
+ with the indicated status code and order of detection:
+
+ 1. The number of attributes supplied by the client exceeds the
+ maximum number that the Printer supports in a Set-Printer-
+ Attributes request: return the 'client-error-request-entity-
+ too-large' (see [RFC2911], section 13.1.4.9).
+
+
+
+
+
+
+
+Hastings, et. al. Standards Track [Page 12]
+
+RFC 3380 IPP: Job and Printer Set Operations September 2002
+
+
+ 2. The Printer doesn't support the attribute: return the attribute
+ with the "out-of-band" value 'unsupported' (see [RFC2911]
+ section 3.1.7 and [RFC2910]) and the 'client-error-attributes-
+ or-values-not-supported (see [RFC2911], section 13.1.4.12).
+
+ 3. The attribute is either READ-ONLY (in its definition) or is
+ not-settable in this implementation: return the attribute with
+ the "out-of-band" value 'not-settable' (see section 8.1) and
+ the 'client-error-attributes-not-settable' status code (see
+ section 7.1).
+
+ 4. The Printer doesn't support the value: if the attribute in the
+ operation has a single value, return it. If the attribute in
+ the operation is multi-valued, return only those values in a
+ 1setOf that are not supported. Return the 'client-error-
+ attributes-or-values-not-supported' status code (see [RFC2911],
+ section 13.1.4.12).
+
+ 5. The values of some of the supplied attributes conflict with one
+ another and/or other Printer attribute values not being set: if
+ the conflicting attribute in the operation has a single value,
+ return the attribute and the value. If the attribute in the
+ operation is multi-valued, return only the attribute and those
+ values in a 1setOf that are conflicting with other attributes.
+ Return the 'client-error-conflicting-attributes' status code
+ (see [RFC2911], section 13.1.4.15).
+
+4.2 Set-Job-Attributes Operation
+
+ This OPTIONAL operation allows a client to set the values of the
+ attributes of a Job object. In the request, the client supplies the
+ set of Job keyword attribute names and values that are to be set. In
+ the response, the IPP object returns success or rejects the entire
+ request with indications of which attribute or attributes could not
+ be set.
+
+ This operation is almost identical to the Set-Printer-Attributes
+ operation and follows the same rules for validation (see section
+ 4.1). The only differences are that the Set-Job-Attributes operation
+ is directed at a Job object rather than a Printer object, there is no
+ "document-format" operation attribute used when setting a Job object,
+ the operation can add an attribute to the (Job) object, the 'delete-
+ attributes' out-of-band value is permitted to remove an attribute,
+ and the validation is the same as the Job Creation operations
+ (Print-Job, Print-URI, and Create-Job), i.e., depends on the "xxx-
+ supported" Printer Description attributes (see [RFC2911] section
+ 3.1). Using the Set-Printer-Attributes operation, the administrator
+ can set arbitrary 'name' values to those "xxx-supported" Printer
+
+
+
+Hastings, et. al. Standards Track [Page 13]
+
+RFC 3380 IPP: Job and Printer Set Operations September 2002
+
+
+ attributes, that include the 'name' attribute syntax, if the
+ implementation supports the 'admin-define' out-of-band value for that
+ "xxx-supported" attribute (see section 8.3 and Appendix A). However,
+ the Set-Job-Attributes cannot be used to add unsupported names to the
+ Job object.
+
+ If a client supplies a job attribute in a Set-Job-Attributes request
+ that the Printer supports, and the job was originally submitted
+ without supplying that attribute, the Printer adds the attribute to
+ the Job object.
+
+ If the client supplies a job attribute with the "out-of-band" value
+ 'delete-attribute' (see section 8.2), then the Printer MUST remove
+ the attribute and all of its values from the Job object, if present.
+ The semantic effect of the client supplying the 'delete-attribute'
+ value in a Set-Job-Attributes operation MUST be the same as if the
+ attribute had not been supplied with the Job object in the Job
+ Creation operation, i.e., the Printer applies its default attribute
+ or behavior with lower precedence that the PDL (see the beginning of
+ [RFC2911] section 4.2 and [RFC2911] 3.2.1.1). Any subsequent query
+ of the Job object using Get-Job-Attributes or Get-Jobs, MUST NOT
+ return any attribute that has been deleted using the 'delete-
+ attribute' out-of-band value. However, a client can re-establish
+ such a deleted Job attribute with any supported value(s), using a
+ subsequent Set-Job-Attributes operation.
+
+ If the client supplies an attribute in a Set-Job-Attributes request
+ with the 'delete-attribute' value and that attribute is not present
+ on the Job object, the Printer ignores that supplied attribute in the
+ request, does not return the attribute in the Unsupported Attributes
+ group, and returns the 'successful-ok' status code, if there are no
+ other problems with the request.
+
+ The validation of the Set-Job-Attributes request is performed by the
+ Printer as if the job had been submitted originally with the new
+ attribute values (and the deleted attributes removed) and with "ipp-
+ attribute-fidelity" set to 'true', i.e., all modified attributes Job
+ attributes and values MUST be supported in combination with the Job
+ attributes not modified. If such a Job Creation operation would have
+ been accepted, then the Set-Job-Attributes MUST be accepted. If such
+ a Job Creation operation would have been rejected, then the Set-Job-
+ Attributes MUST be rejected and the Job MUST be unchanged. In
+ addition, if any of the supplied attributes are not supported, are
+ not settable, or the values are not supported, the Printer object
+ MUST reject the entire operation; the Printer object MUST NOT
+ partially set some of the supplied attributes. In other words, after
+
+
+
+
+
+Hastings, et. al. Standards Track [Page 14]
+
+RFC 3380 IPP: Job and Printer Set Operations September 2002
+
+
+ the operation, all the supplied attributes MUST be set or none of
+ them MUST be set, thus making the Set-Job-Attributes an atomic
+ operation.
+
+ The IPP object MUST accept or reject this operation when the Job's
+ READ-ONLY "job-state" attribute has the values shown in Table 2. The
+ job's current state MUST affect whether the IPP object accepts or
+ rejects the request. For example, in the case where the operation
+ creates a request for unavailable resources, the Job transitions to a
+ new state. Table 2 shows the allowed behaviors in each job state and
+ the transitions.
+
+ Table 2 - Job State Transition Table for the Set-Job-Attributes
+ operation
+
+ Current New IPP object's response status code
+ "job-state" "job-state" and "action":
+
+
+ 'pending' 'pending' 'successful-ok'
+
+ 'pending' 'pending-held' 'successful-ok' - needed resources
+ are not ready
+
+ 'pending-held' 'pending-held' 'successful-ok'
+
+ 'pending-held' 'pending' 'successful-ok' - needed resources
+ are ready
+
+ 'processing' 'processing' 'successful-ok' or 'client-error-
+ not-possible' depending on
+ implementation, including the
+ attributes being set, whether the
+ job has started marking media,
+ etc.
+
+ 'processing- 'processing- 'successful-ok' or 'client-error-
+ stopped' stopped' not-possible' depending on
+ implementation, including the
+ attributes being set, whether the
+ job has started marking media,
+ etc.
+
+ 'completed' 'completed' 'client-error-not-possible'
+
+ 'canceled' 'canceled' 'client-error-not-possible'
+
+ 'aborted' 'aborted' 'client-error-not-possible'
+
+
+
+Hastings, et. al. Standards Track [Page 15]
+
+RFC 3380 IPP: Job and Printer Set Operations September 2002
+
+
+ This operation MUST NOT change the value of attributes not specified
+ in the operation unless the definition of the attribute explicitly
+ specifies such side-effects. In general, Job attribute definitions
+ that are settable will not define side-effects on other attributes
+ that are settable, only side effects on READ-ONLY attributes, if any.
+
+4.2.1 Settable and READ-ONLY Job Description attributes
+
+ If the Printer supports the "job-message-from-operator" Job
+ Description attribute (see [RFC2911] section 4.3.16) and the client
+ explicitly supplies a new value for the "job-message-from-operator"
+ Job Description attribute in Group 2 in the Set-Job-Attributes
+ request, then the Printer MUST set the "job-message-from-operator"
+ Job Description attribute to this new value.
+
+ If the Printer supports the Set-Job-Attributes operation, then it
+ SHOULD support the setting of:
+
+ all Job Template job ("xxx") attributes
+
+ that the implementation supports (see [RFC2911] section 4.2 and
+ extensions).
+
+ Some Job Description attributes (see [RFC2911] section 4.3) MUST NOT
+ be settable, i.e., they are defined to be READ-ONLY. An attribute
+ marked as "READ-ONLY" in the Job Description attribute table in
+ Appendix A is such an attribute. The Job attributes not marked as
+ "READ-ONLY" MAY be settable using the Set-Job-Attributes operation,
+ depending on implementation.
+
+ Note: From now on, all extensions that define new object attributes
+ will indicate whether or not the attributes are READ-ONLY, by
+ including the "READ-ONLY" adjective in their descriptions and/or
+ explicitly stating whether they MAY be settable.
+
+ Access Rights: The authenticated user (see [RFC2911] section 8.3)
+ performing this operation must either be the job owner (as determined
+ in the Job Creation operation) or an operator or administrator of the
+ Printer object (see [RFC2911] Sections 1 and 8.5).
+
+
+
+
+
+
+
+
+
+
+
+
+Hastings, et. al. Standards Track [Page 16]
+
+RFC 3380 IPP: Job and Printer Set Operations September 2002
+
+
+4.2.2 Set-Job-Attributes Request
+
+ The following sets of attributes are part of the Set-Job-Attributes
+ Request:
+
+ Group 1: Operation Attributes
+
+ Natural Language and Character Set:
+ The "attributes-charset" and "attributes-natural-language"
+ attributes as described in [RFC2911], section 3.1.4.1.
+
+ Target:
+ Either (1) the "printer-uri" (uri) plus "job-id"
+ (integer(1:MAX)) or (2) the "job-uri" (uri) operation
+ attribute(s), which defines the target for this operation as
+ described in [RFC2911], section 3.1.5.
+
+ Requesting User Name:
+ The "requesting-user-name" (name(MAX)) attribute SHOULD be
+ supplied by the client, as described in [RFC2911], section 8.3.
+
+ Group 2: Job Attributes
+
+ The client MUST supply a set of Job attributes with one or more
+ values (including explicitly allowed out-of-band values) as
+ defined in [RFC2911], section 4.2, Job Template Attributes ("xxx"
+ attributes), section 4.3, Job Description Attributes, and any
+ attribute extensions supported by the Printer. The value(s) of
+ each Job attribute supplied in Group 2 replaces the value(s) of
+ the corresponding Job attribute on the target Job object. For
+ attributes that can have multiple values (1setOf), all values
+ supplied by the client replace all values of the corresponding Job
+ object attribute.
+
+ If the client supplies an "xxx" attribute with the 'delete-
+ attribute' out-of-band value (see section 8.2), the Printer MUST
+ remove the "xxx" attribute from the Job object, if present.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Hastings, et. al. Standards Track [Page 17]
+
+RFC 3380 IPP: Job and Printer Set Operations September 2002
+
+
+4.2.3 Set-Job-Attributes Response
+
+ The IPP object returns the following sets of attributes as part of
+ the Set-Job-Attributes Response:
+
+ Group 1: Operation Attributes
+
+ Status Message:
+ In addition to the REQUIRED status code returned in every
+ response, the response OPTIONALLY includes a "status-message"
+ (text(255)) and/or a "detailed-status-message" (text(MAX))
+ operation attribute as described in [RFC2911], sections 3.1.6
+ and 13.
+
+ Natural Language and Character Set:
+ The "attributes-charset" and "attributes-natural-language"
+ attributes as described in [RFC2911], section 3.1.4.2.
+
+ Group 2: Unsupported Attributes
+
+ See [RFC2911], section 3.1.7, for details on returning Unsupported
+ Attributes.
+
+ If some of the attributes in the operation fail to validate, the
+ Printer MUST reject the operation, MUST NOT change any Job
+ attributes, and MUST return the indicated status code below. In
+ this group, the Printer MUST also return all attributes that fail
+ to validate. The following are the reasons that an attribute
+ fails to validate and the value returns for the attribute, along
+ with the indicated status code and order of detection:
+
+ 1. The number of attributes supplied by the client exceeds the
+ maximum number that the Printer supports in a Set-Printer-
+ Attributes request: return the 'client-error-request-entity-
+ too-large' (see [RFC2911], section 13.1.4.9).
+
+ 2. The Printer doesn't support the attribute: return the attribute
+ with the 'unsupported' out-of-band attribute value (see
+ [RFC2911], section 3.1.7 and [RFC2910]) and the 'client-error-
+ attributes-or-values-not-supported (see [RFC2911], section
+ 13.1.4.12).
+
+ 3. The attribute is READ-ONLY (in its definition) or is not-
+ settable in this implementation: return the attribute with the
+ 'not-settable' out-of-band attribute value (see section 8.1)
+ and the 'client-error-attributes-not-settable' status code (see
+ section 7.1).
+
+
+
+
+Hastings, et. al. Standards Track [Page 18]
+
+RFC 3380 IPP: Job and Printer Set Operations September 2002
+
+
+ 4. The Printer doesn't support the value: if the attribute in the
+ operation has a single value return it. If the attribute in
+ the operation is multi-valued, return only those values in a
+ 1setOf that are not supported. Return the 'client-error-
+ attributes-or-values-not-supported' status code (see [RFC2911],
+ section 13.1.4.12).
+
+ 5. The values of some of the supplied attributes conflict with one
+ another and/or other Job attribute values not being set: if
+ the conflicting attribute in the operation has a single value,
+ return the attribute and the value. If the attribute in the
+ operation is multi-valued, return only the attribute and those
+ values in a 1setOf that are conflicting with other attributes.
+ Return the 'client-error-conflicting-attributes' status code
+ (see [RFC2911],y section 13.1.4.15).
+
+4.3 Get-Printer-Supported-Values Operation
+
+ This OPTIONAL operation allows a client to request the values that
+ the Printer allows in the Set-Printer-Attributes operation for "xxx-
+ supported" attributes. If the Printer supports the Set-Printer-
+ Attributes operation AND some of its "xxx-supported" Printer
+ attributes are settable, then the Printer MUST also support this
+ operation.
+
+ The Printer MUST return in the Get-Printer-Supported-Values response,
+ those, and only those, "xxx-supported" Printer attributes that it
+ supports setting with the Set-Printer-Attributes operation.
+ Furthermore, if a client requests the value of an attribute that is
+ not settable or is not supported (as in the Get-Printer-Attributes
+ response), the Unsupported Attributes Group of the response NEED NOT
+ contain the "requested-attributes" operation attribute with any such
+ requested (attribute keyword) values.
+
+ This operation has identical request/response attributes to the Get-
+ Printer-Attributes operation in IPP/1.1 [RFC2911]. The operation
+ also behaves identically to the Get-Printer-Attributes operation in
+ IPP/1.1 [RFC2911], with the following exceptions:
+
+ 1. The Get-Printer-Supported-Values operation supports only "xxx-
+ supported" attributes.
+
+ 2. The Get-Printer-Attributes operation returns the few "xxx-
+ supported" attributes that are defined to be single valued, such
+ as "page-ranges-supported" (boolean) or "pdl-override-supported"
+ (type2 keyword), as single values, while Get-Printer-Supported-
+
+
+
+
+
+Hastings, et. al. Standards Track [Page 19]
+
+RFC 3380 IPP: Job and Printer Set Operations September 2002
+
+
+ Values returns the possible values that can be set as a 1setOf of
+ the same attribute syntax type (See Appendix B: Attributes
+ returned from Get-Printer-Supported-Values).
+
+ 3. The Get-Printer-Attributes operation returns the current values of
+ requested attributes, while the Get-Printer-Supported-Values
+ operation returns the values that are inherently supported by the
+ implementation code, i.e., the values that an administrative
+ client can set in a Set-Printer-Attributes request.
+
+ 4. The Get-Printer-Attributes operation returns the current values of
+ requested "xxx-supported" attributes that the Printer is
+ configured to accept in Job Creation operations, including
+ additional values defined by the administrator, while the Get-
+ Printer-Supported-Values operation returns only the values of
+ "xxx-supported" attributes that are inherently supported by the
+ implementation and does not return any additional values defined
+ by the administrator, where the implementation supports the
+ 'admin-define' out-of-band value.
+
+ 5. The Get-Printer-Attributes never returns the 'admin-define' out-
+ of-band attribute value, while the Get-Printer-Supported-
+ Attributes operation does, if the implementation allows the
+ administrator to define name values by setting that "xxx-
+ supported" attribute with any 'name' value(s).
+
+ 6. The Get-Printer-Attributes operation only requires end-user access
+ rights, while the Get-Printer-Supported-Values requires
+ administrator access rights.
+
+ Access Rights: The authenticated user (see [RFC2911], section 8.3)
+ performing this operation must be an administrator of the Printer
+ object (see [RFC2911], Sections 1 and 8.5).
+
+4.3.1 Definition of the usage of the 'admin-define' out-of-band
+ attribute value
+
+ If the Set-Printer-Attributes operation allows the System
+ Administrator to define arbitrary 'name' values for an "xxx-
+ supported" attribute, then the Get-Printer-Supported-Values operation
+ MUST return the 'admin-define' out-of-band attribute value (see
+ section 8.3) as one of the values of the "xxx-supported" attribute.
+ In other words, the 'admin-define' out-of-band attribute value
+ indicates that the Printer implementation supports clients setting
+ arbitrary 'name' attribute syntax values for that "xxx-supported"
+ attribute using the Set-Printer-Attributes operation, as long as the
+ attribute is defined with the 'name' attribute syntax.
+
+
+
+
+Hastings, et. al. Standards Track [Page 20]
+
+RFC 3380 IPP: Job and Printer Set Operations September 2002
+
+
+ For example, if the Get-Printer-Supported-Values operation returns
+ several keywords as the value of the "media-supported" attribute,
+ then the Set-Printer-Attributes operation MUST accept any of these
+ keywords as values for the "media-supported" attribute. If the Get-
+ Printer-Supported-Values operation returns an 'admin-define' out-of-
+ band attribute value as one of the values of the "media-supported"
+ attribute, then the Set-Printer-Attributes operation MUST accept any
+ value whose attribute syntax is 'name', as a value for the "media-
+ supported" attribute (provided that the user is properly
+ authenticated to use the Set-Printer-Attributes operation, e.g., has
+ administrative access rights).
+
+ The Get-Printer-Supported-Values MAY return the 'admin-define' out-
+ of-band attribute value for any IPP/1.1 or extension Job Template
+ attribute if the implementation supports allowing the System
+ Administrator to add values to the "xxx-supported" attribute using
+ the Set-Printer-Attributes operation. In this case, the Printer MUST
+ accept any 'name' value of the correct attribute syntax in a Set-
+ Printer-Attributes operation that is setting that attribute. For
+ "xxx-supported" attributes that are defined with a choice of
+ attribute syntaxes, such as 'keyword | name', it is the 'name'
+ attribute syntax that the System Administrator can use to add new
+ values, not the 'keyword' attribute syntax. For IPP/1.1, this
+ requirement includes the following Job Template attributes:
+
+ media-supported
+ job-hold-until-supported
+ job-sheets-supported
+
+ Implementations that support additional Job Template attributes that
+ include the 'name' attribute syntax, MAY use the 'admin-define' out-
+ of-band value with them.
+
+ If the 'admin-define' out-of-band attribute value is not one of the
+ values of an "xxx-supported" attribute returned in a Get-Printer-
+ Supported-Values response, then the Printer MUST NOT allow the Set-
+ Printer-Attributes operation for that attribute to contain a value
+ that is not one of the explicit 'keyword' or 'name' values returned
+ in a Get-Printer-Supported-Values response.
+
+ See Appendix B: Attributes returned from Get-Printer-Supported-Values
+ for a full list of values returned by this operation.
+
+
+
+
+
+
+
+
+
+Hastings, et. al. Standards Track [Page 21]
+
+RFC 3380 IPP: Job and Printer Set Operations September 2002
+
+
+5 New Operation attributes
+
+ This section defines new operation attributes for use with the
+ IPP/1.1 operations indicated. As new operations are defined, they
+ will also indicate explicitly whether these operation attributes are
+ defined for use with them.
+
+5.1 printer-message-from-operator (text(127))
+
+ The Printer SHOULD support this Operation attribute in following
+ operations if it supports the corresponding "printer-message-from-
+ operator" Printer Description attribute.
+
+ Pause-Printer
+ Resume-Printer
+ Purge-Jobs
+
+ The client OPTIONALLY supplies this Operation attribute in the above
+ operations. The value of this attribute is a message from the
+ operator about the Printer object on which the operator is performing
+ the operation. If this operation attribute is supported, the Printer
+ copies the value to its "printer-message-from-operator" Printer
+ Description attribute (see [RFC2911], section 4.4.25), even if this
+ Operation attribute is a zero-length text value or consists solely of
+ white space.
+
+ If the Printer supports this operation attribute, it MUST support
+ both a zero-length text value and the 'no-value' out-of-band value
+ (see [RFC2911] section 4.1) to indicate that the operator has sent no
+ message. In this case, the Printer sets the value of the "printer-
+ message-from-operator" to the zero-length value or 'no-value' out-
+ of-band value, respectively. If the client queries the "printer-
+ message-from-operator" Printer attribute, the Printer returns the
+ attribute with the zero-length value or the 'no-value' value,
+ respectively.
+
+ In addition, the Printer automatically copies:
+
+ 1. the value of its "printer-up-time" attribute (see [RFC2911],
+ section 4.4.29) to its "printer-message-time" attribute,
+
+ 2. the value of its printer-current-time" (dateTime) attribute (see
+ [RFC2911], section 4.4.30) to its "printer-message-date-time"
+ attribute, if supported.
+
+
+
+
+
+
+
+Hastings, et. al. Standards Track [Page 22]
+
+RFC 3380 IPP: Job and Printer Set Operations September 2002
+
+
+ If the client omits this operation attribute, the Printer does not
+ change the value of its "printer-message-from-operator", "printer-
+ message-time" and "printer-message-date-time" Printer Description
+ attributes.
+
+ The "printer-message-from-operator" operation attribute MUST NOT be
+ supported as an operation attribute for the Set-Printer-Attributes
+ operation. If the operator wants to set the Printer's "printer-
+ message-from-operator" Printer Description attribute when issuing the
+ Set-Printer-Attributes operation, the client supplies the "printer-
+ message-from-operator" explicitly with its new value as one of the
+ Printer Description attributes in Group 2 in the request; the Printer
+ also updates its "printer-message-time" and "printer-message-date-
+ time" Printer Description attributes. If the client does not
+ explicitly supply the "printer-message-from-operator" with its new
+ value in the Set-Printer-Attributes request, the Printer leaves the
+ value of the Printer's "printer-message-from-operator" Printer
+ Description attribute unchanged.
+
+5.2 job-message-from-operator (text(127))
+
+ The Printer SHOULD support this Operation attribute in following
+ operations if it supports the corresponding "job-message-from-
+ operator" Job Description attribute.
+
+ Cancel-Job
+ Hold-Job
+ Release-Job
+ Restart-Job
+
+ The client OPTIONALLY supplies this attribute in the above
+ operations. The value of this attribute is a message from the
+ operator about the Job object on which the operator has just
+ performed an operation. If supported, the Printer copies the value
+ to the Job's "job-message-from-operator" Job Description attribute
+ (see [RFC2911], section 4.3.16) (even if this Operation attribute is
+ a zero-length text value or consists solely of white space).
+
+ If the Printer supports this operation attribute, it MUST support
+ both a zero-length text value and the 'no-value' out-of-band value
+ (see [RFC2911], section 4.1), to indicate that the operator has sent
+ no message. In this case, the Printer sets the value of the "job-
+ message-from-operator" to the zero-length value or 'no-value' out-
+ of-band value, respectively. If the client queries the "job-
+ message-from-operator" Job attribute, the IPP object returns the
+ attribute with the zero-length value or the 'no-value' value,
+ respectively.
+
+
+
+
+Hastings, et. al. Standards Track [Page 23]
+
+RFC 3380 IPP: Job and Printer Set Operations September 2002
+
+
+ If the client omits this attribute, the Printer does not change the
+ value of its "job-message-from-operator" Job Description attribute.
+
+ Note: There are no corresponding 'job-message-time" and "job-
+ message-date-time" Job Description attributes, since the usual
+ lifetime of a job is limited.
+
+ The "job-message-from-operator" operation attribute MUST NOT be
+ supported as an operation attribute for the Set-Job-Attributes
+ operation. If the operator wants to set the Job's "job-message-
+ from-operator" Job Description attribute when issuing the Set-Job-
+ Attributes operation, the client MUST supply the "job-message-from-
+ operator" with its new value as one of the Job Description attributes
+ in Group 2 in the request. Otherwise, the Printer leaves the value
+ of the Job's "job-message-from-operator" Job Description attribute
+ unchanged by not explicitly setting the attribute. If the client
+ does not explicitly supply the "job-message-from-operator" with its
+ new value in the Set-Job-Attributes request, the Printer leaves the
+ value of the Job's "job-message-from-operator" Job Description
+ attribute unchanged.
+
+6 New Printer Description Attributes
+
+ The following new Printer Description attributes are needed to
+ support the new operations defined in this document.
+
+6.1 printer-settable-attributes-supported (1setOf type2 keyword)
+
+ This REQUIRED READ-ONLY Printer Description attribute identifies the
+ Printer object attributes that are settable in this implementation,
+ i.e., that are settable using the Set-Printer-Attributes operations
+ (see section 4.1). This attribute MUST be supported if the Set-
+ Printer-Attributes operations is supported. The Printer MUST reject
+ attempts to set any Printer attributes that are not one of the values
+ of this attribute, returning the 'client-error-attributes-not-
+ settable' status code (see section 7.1). The value of this attribute
+ MAY depend on the value of the "document-format" operation attribute
+ supplied in the Get-Printer-Attributes operation (see [RFC2911],
+ section 3.2.5.1).
+
+ Standard keyword values are:
+
+ 'none': There are no settable Printer attributes.
+ 'xxx': Where 'xxx' is any of the keyword attribute names allowed
+ by section 4.1.1.
+
+
+
+
+
+
+Hastings, et. al. Standards Track [Page 24]
+
+RFC 3380 IPP: Job and Printer Set Operations September 2002
+
+
+6.2 job-settable-attributes-supported (1setOf type2 keyword)
+
+ This REQUIRED READ-ONLY Printer Description attribute identifies the
+ Job object attributes that are settable in this implementation, i.e.,
+ that are settable using the Set-Job-Attributes operation (see section
+ 4.2). This attribute MUST be supported if the Set-Job-Attributes
+ operations are supported. The Printer MUST reject attempts to set
+ any Job attributes that are not one of the values of this attribute,
+ returning the 'client-error-attributes-not-settable' status code (see
+ section 7.1).
+
+ Standard keyword values are:
+
+ 'none': There are no settable Job attributes.
+ 'xxx': Where 'xxx' is any of the keyword attribute names allowed
+ by section 4.2.1.
+
+6.3 document-format-varying-attributes (1setOf type2 keyword)
+
+ This OPTIONAL READ-ONLY Printer Description attribute contains a set
+ of attribute name keywords. This attribute SHOULD be supported by a
+ Printer object if the Printer object has Printer attributes whose
+ value vary depending on document format (see [RFC2911], Get-Printer-
+ Attributes operation). This attribute specifies which attribute
+ values can vary by document-format. If an attribute's name, "xxx",
+ is a member of this attribute and the value of attribute "xxx" is
+ changed with the Set-Printer-Attributes operation that included the
+ "document-format" operation attribute, then the Printer MUST change
+ the value for the specified document format and no other document
+ formats (see section 4.1.2). If an attribute's name, "xxx", is not a
+ member of this attribute and the value of attribute "xxx" is changed
+ with the Set-Printer-Attributes operation, then the attribute is
+ changed for all document formats (whether or not the client supplied
+ the "document-format" operation attribute).
+
+6.4 printer-message-time (integer(MIN:MAX))
+
+ This OPTIONAL READ-ONLY Printer Description attribute contains the
+ time that the Printer's "printer-message-from-operator" was changed
+ by the operator using any operation where the client supplied the
+ "printer-message-from-operator" operation attribute (see section 5.1)
+ or was explicitly set using the Set-Printer-Attributes operation (see
+ section 4.1). This attribute allows the users to know when the
+ "printer-message-from-operator" Printer Description attribute was
+ last set.
+
+
+
+
+
+
+Hastings, et. al. Standards Track [Page 25]
+
+RFC 3380 IPP: Job and Printer Set Operations September 2002
+
+
+ The Printer sets the value of this attribute by copying the value of
+ the Printer's "printer-up-time" attribute (see [RFC2911], section
+ 4.3.14). If the Printer resets its "printer-up-time" attribute to 1
+ on power-up, then it MUST change the value of the "printer-message-
+ time" to 0 or a negative number as specified in [RFC2911], section
+ 4.3.14.
+
+ Note: This attribute helps users better understand the context for
+ the "printer-message-from-operator" message.
+
+6.5 printer-message-date-time (dateTime)
+
+ This OPTIONAL READ-ONLY Printer Description attribute contains the
+ date and time that the Printer's "printer-message-from-operator" was
+ changed by the operator, using any operation where the client
+ supplied the "printer-message-from-operator" operation attribute (see
+ section 5.1) or was explicitly set using the Set-Printer-Attributes
+ operation (see section 4.1). This attribute allows the users to know
+ when the "printer-message-from-operator" Printer Description
+ attribute was last set.
+
+ This attribute MUST be supported if the Printer supports both the
+ "printer-message-time" and the "printer-current-time" (dateTime)
+ attributes (see [RFC2911], section 4.4.30).
+
+ Note: This attribute helps users better understand the context for
+ the "printer-message-from-operator" message.
+
+6.6 printer-xri-supported (1setOf collection)
+
+ This OPTIONAL Printer Description attribute is a multi-valued
+ attribute where each value has the 'collection' attribute syntax (see
+ [RFC3382]), containing member attributes with the same semantics as
+ the following IPP/1.1 READ-ONLY Printer Description attributes,
+ except for cardinality:
+
+ printer-uri-supported (1setOf uri)
+ - see [RFC2911], section 4.4.1
+ uri-authentication-supported (1setOf type2 keyword)
+ - see [RFC2911], section 4.4.2.
+ uri-security-supported (1setOf type2 keyword)
+ - see [RFC2911], section 4.4.3.
+
+ When setting the "printer-xri-supported" attribute with a Set-
+ Printer-Attributes request, the Printer MUST also set these three
+ IPP/1.1 READ-ONLY Printer Description attributes as a defined side
+
+
+
+
+
+Hastings, et. al. Standards Track [Page 26]
+
+RFC 3380 IPP: Job and Printer Set Operations September 2002
+
+
+ effect. Thus, this collection attribute provides the means to set
+ these three IPP/1.1 READ-ONLY attributes atomically so that they are
+ never left in a partially inconsistent state.
+
+ An IPP Printer MUST NOT provide any other way, using IPP, to set
+ these three IPP/1.1 READ-ONLY Printer Description attributes, since
+ they are READ-ONLY and MUST have consistent values at all times.
+ Note: The "printer-xri-supported" (1setOf collection) attribute can
+ be put into a directory schema that requires a single text string
+ value, such as could be used with SLPv2 [RFC2608], [RFC2609] or
+ LDAPv3 [RFC2251], [RFC2252], [RFC2926], by using suitable delimiting
+ characters to separate member attributes of the collection and/or
+ terminating collection values.
+
+ The member attributes of the "printer-xri-supported" (1setOf
+ collection) are given in Table 3.
+
+ Table 3 - Member attributes of "printer-xri-supported" (1setOf
+ collection)
+
+ Member attribute client Printer
+ MUST MUST
+ supply support
+
+ xri-uri (uri) yes yes
+
+ xri-authentication (type2 keyword) yes yes
+
+ xri-security (type2 keyword) yes yes
+
+ Other than the uniqueness and the cardinality requirements, the
+ semantics of these three member attributes is given in [RFC2911]
+ sections 4.4.1, 4.4.2, and 4.4.3, respectively.
+
+ A client can query the current values using the Get-Printer-
+ Attributes operation by supplying either:
+
+ 1. the three IPP/1.1 attribute names: "printer-uri-supported", "uri-
+ authentication-supported", "uri-security-supported" and getting
+ back the parallel values OR
+
+ 2. the single attribute name: "printer-xri-supported" and getting
+ back the 1setOf collection which contains the same information
+ semantically, but in a different form.
+
+ A client can query what member attribute values can be set by
+ supplying the three attribute names: "xri-uri-scheme-supported",
+ "xri-authentication-supported", and "xri-security-supported" in a
+
+
+
+Hastings, et. al. Standards Track [Page 27]
+
+RFC 3380 IPP: Job and Printer Set Operations September 2002
+
+
+ Get-Printer-Supported-Values request and getting back the uriScheme
+ and type2 keyword values that can be set. Since the "printer-xri-
+ supported", "uri-authentication-supported", and "uri-security-
+ supported" attributes are READ-ONLY, they are not queriable with the
+ Get-Printer-Supported-Values operation (see section 4.3). See Table
+ 16.
+
+ For example:
+
+ "printer-xri-supported =
+ { "xri-uri" = ipp://abc.com/p1
+ "xri-authentication" = basic
+ "xri-security" = tls
+ },
+ { "xri-uri" = ipp://abc.com/p2
+ "xri-authentication" = digest
+ "xri-security" = tls
+ },
+ { "xri-uri" = ipp://abc.com/p3
+ "xri-authentication" = none
+ "xri-security" = none
+ }
+
+ would cause the Printer to set the three corresponding IPP/1.1 READ-
+ ONLY attributes, each with three parallel values as follows:
+
+ "printer-uri-supported" = { ipp://abc.com/p1, ipp://abc.com/p2,
+ ipp://abc.com/p3 }
+ "uri-authentication-supported" = { basic, digest, none }
+ "uri-security-supported" = { tls, tls, none }
+
+6.7 xri-uri-scheme-supported (1setOf uriScheme)
+
+ This OPTIONAL READ-ONLY Printer Description attribute identifies the
+ URI schemes that the implementation supports for use in the
+ "printer-uri-supported" (1setOf uri) Printer Description attribute
+ (see [RFC2911] section 4.4.1) and the "xri-uri" member attribute of
+ the "printer-xri-supported" (1setOf collection) Printer Description
+ attribute (see section 6.6).
+
+ A Printer MUST support this attribute if it supports the setting of
+ the "printer-xri-supported" (1setOf collection) with the Set-
+ Printer-Attributes operation.
+
+
+
+
+
+
+
+
+Hastings, et. al. Standards Track [Page 28]
+
+RFC 3380 IPP: Job and Printer Set Operations September 2002
+
+
+6.8 xri-authentication-supported (1setOf type2 keyword)
+
+ This OPTIONAL READ-ONLY Printer Description attribute identifies the
+ Client Authentication mechanisms that the implementation supports for
+ use in the "uri-authentication-supported" (1setOf type2 keyword)
+ Printer Description attribute (see [RFC2911], section 4.4.2) and the
+ "xri-authentication" member attribute of the "printer-xri-supported"
+ (1setOf collection) Printer Description attribute (see section 6.6).
+
+ A Printer MUST support this attribute if it supports setting the
+ "printer-xri-supported" (1setOf collection) with the Set-Printer-
+ Attributes operation.
+
+6.9 xri-security-supported (1setOf type2 keyword)
+
+ This OPTIONAL READ-ONLY Printer Description attribute identifies the
+ URI schemes that the implementation supports for use in the "uri-
+ security-supported" (1setOf type2 keyword) Printer Description
+ attribute (see [RFC2911], section 4.4.3) and the "xri-security"
+ member attribute of the "printer-xri-supported" (1setOf collection)
+ Printer Description attribute (see section 6.6).
+
+ A Printer MUST support this attribute if it supports setting the
+ "printer-xri-supported" (1setOf collection) with the Set-Printer-
+ Attributes operation.
+
+7 Additional status codes
+
+ This section defines new status codes used by the operations defined
+ in this document.
+
+7.1 client-error-attributes-not-settable (0x0413)
+
+ The Set-Printer-Attributes or Set-Job-Attributes operation failed
+ because one or more of the specified attributes cannot be set, either
+ because the attribute is defined to be READ-ONLY or the attribute is
+ not settable in this implementation (see sections 4.1.3 and 4.2.3).
+ The Printer MUST return this error code and the attribute keyword
+ name(s) and the 'not-settable' out-of-band value (see section 8.1) in
+ the Unsupported Attributes Group (see [RFC2911], section 3.1.7) for
+ all of the attributes that could not be set. When the Printer
+ returns this status, it MUST NOT change any of the attributes
+ supplied in the operation.
+
+
+
+
+
+
+
+
+Hastings, et. al. Standards Track [Page 29]
+
+RFC 3380 IPP: Job and Printer Set Operations September 2002
+
+
+8 Additional out-of-band values
+
+ This section defines additional out-of-band values. As with all
+ out-of-band values, a client or a Printer MUST NOT use an out-of-band
+ value unless the definition of the attribute in an operation request
+ and/or response explicitly allows such usage. See the beginning of
+ [RFC2911], section 4.1.
+
+8.1 'not-settable' out-of-band value
+
+ The 'not-settable' out-of-band attribute value is returned by the IPP
+ Printer in the Unsupported Attributes group of a response to indicate
+ that the attribute supplied by the client in the request is READ-ONLY
+ by definition or is not settable in this implementation.
+
+ The 'not-settable' out-of-band attribute value is defined for use
+ with the Set-Job-Attributes and Set-Printer-Attributes responses
+ only. If a future additional "set" operation allows the 'not-
+ settable' out-of-band value, its definition document MUST indicate
+ such use explicitly, including with which attributes.
+
+ An IPP object MUST support the 'not-settable' out-of-band value in a
+ Set-Job-Attributes or Set-Printer-Attributes request if it supports
+ those operations. A client MUST NOT supply the 'not-settable' out-
+ of-band value in any request. An IPP object MUST NOT support the
+ 'not-settable' out-of-band value in other operations, unless the
+ operations' definition document explicitly defines such usage. If a
+ Printer receives this out-of-band value in any operation request, the
+ Printer MUST either (1) reject the entire request and return the
+ 'client-error-bad-request' status code or (2) ignore the attribute
+ and return it with the 'unsupported' out-of-band value.
+
+ See sections 4.1.3 and 4.2.3 in this document for an example
+ definition of the usage of the 'not-settable' out-of-band value in
+ the Set-Printer-Attributes and Set-Job-Attributes responses.
+
+8.1.1 Encoding of the 'not-settable' out-of-band attribute value
+
+ The encoding of the 'not-settable' out-of-band value is 0x15 (see
+ [RFC2910]). The value-length MUST be 0 and the value empty.
+
+8.2 'delete-attribute' out-of-band value
+
+ The 'delete-attribute' out-of-band attribute value is supplied by the
+ client in a request to indicate that the Printer is to remove the
+ supplied attribute and all of its values from the target object, if
+ present.
+
+
+
+
+Hastings, et. al. Standards Track [Page 30]
+
+RFC 3380 IPP: Job and Printer Set Operations September 2002
+
+
+ The 'delete-attribute' out-of-band attribute value is defined for use
+ with the Set-Job-Attributes request only. If a future additional
+ "set" operation allows the 'delete-attribute' out-of-band value, its
+ definition document MUST indicate such use explicitly, including with
+ which attributes.
+
+ An IPP Printer MUST support the 'delete-attribute' out-of-band value
+ if it supports the Set-Job-Attributes operation. A client MUST NOT
+ supply, and an IPP object MUST NOT support, the 'delete-attribute'
+ out-of-band value in other operations, unless the operations'
+ definition document explicitly defines such usage. For example, the
+ 'delete-attribute' out-of-band value MUST NOT be used in the Set-
+ Printer-Attributes operation, where the absence of an attribute from
+ an IPP object indicates that the attribute is not supported. If a
+ Printer receives this out-of-band value in other operation requests,
+ the Printer MUST either (1) reject the entire request and return the
+ 'client-error-bad-request' status code or (2) ignore the attribute
+ and return it with the 'unsupported' out-of-band value.
+
+ See section 4.2 in this document for the definition of the usage of
+ the 'delete-attribute' out-of-band value in the Set-Job-Attributes
+ request.
+
+8.2.1 Encoding of the 'delete-attribute' out-of-band value
+
+ The encoding of the 'delete-attribute' out-of-band value is 0x16 (see
+ [RFC2910]). The value-length MUST be 0 and the value empty.
+
+8.3 'admin-define' out-of-band attribute value
+
+ Section 4.3 defines the Get-Printer-Supported-Values response to
+ contain the values of an "xxx-supported" attribute that are supported
+ by the implementation before any additional values are defined by the
+ administrator. The 'admin-define' out-of-band attribute value is
+ returned as an additional value of an "xxx-supported" attribute in a
+ Get-Printer-Supported-Values response to indicate that the
+ implementation supports allowing an administrator to define
+ additional arbitrary 'name' values for that "xxx-supported"
+ attribute.
+
+ For example, if the "media-supported" (1setOf (type3 keyword | name))
+ attribute contains this value, then the Printer MUST permit an
+ administrator to add new media names to the Printer's "media-
+ supported" attribute. In order for an administrator to add new
+ values to a Printer's "xxx-supported" attribute, the client supplies
+ the existing and new values in a Set-Printer-Attributes request for
+
+
+
+
+
+Hastings, et. al. Standards Track [Page 31]
+
+RFC 3380 IPP: Job and Printer Set Operations September 2002
+
+
+ that attribute. The client MUST supply any such administratively
+ defined values in the Set-Printer-Attributes request, using the
+ 'name' attribute syntax.
+
+ The 'admin-define' out-of-band attribute value is defined for use
+ with the Get-Printer-Supported-Values response only. A Printer MUST
+ NOT return the 'admin-define' out-of-band value in a Get-Printer-
+ Attributes response, since such a response indicates what an end-user
+ client can supply in a Job Creation operation. If a future
+ additional "get" operation allows the 'admin-define' out-of-band
+ value, its definition document MUST indicate such use explicitly,
+ including with which attributes.
+
+ An IPP Printer MUST support the 'admin-define' out-of-band value, if
+ it supports a client setting arbitrary 'name' values of an "xxx-
+ supported" Printer attribute using the Set-Printer-Attributes
+ operation. A client MUST NOT supply the 'admin-define' out-of-band
+ value in any request. An IPP object MUST NOT support the 'admin-
+ define' out-of-band value in other operations, unless the operations'
+ definition document explicitly defines such usage. If a Printer
+ receives this out-of-band value in any operation request, the Printer
+ MUST either (1) reject the entire request and return the 'client-
+ error-bad-request' status code or (2) ignore the attribute and return
+ it with the 'unsupported' out-of-band value.
+
+ This document defines that the 'admin-define' out-of-band value MUST
+ be used only with "xxx-supported" attributes that are defined to
+ include the 'name' attribute syntax. This out-of-band value is not
+ intended to be used with "xxx-supported" attributes of other
+ attribute syntaxes, such as 'uri', even though the administrator
+ defines arbitrary values for such attributes. If other documents
+ extend the use of the 'admin-define' out-of-band value to other
+ attribute syntaxes, such a document MUST define such use explicitly,
+ including with which attributes.
+
+ See section 4.3 in this document for an example definition of the
+ usage of the 'admin-define' out-of-band attribute value in any "xxx-
+ supported" attribute returned in a Get-Printer-Supported-Values
+ response that is defined to include the 'name' attribute syntax.
+
+8.3.1 Encoding of the 'admin-define' out-of-band attribute value
+
+ The encoding of the 'admin-define' out-of-band attribute value is
+ 0x17 (see [RFC2910]). The value-length MUST be 0 and the value
+ empty.
+
+
+
+
+
+
+Hastings, et. al. Standards Track [Page 32]
+
+RFC 3380 IPP: Job and Printer Set Operations September 2002
+
+
+9 New Values for Existing Printer Description Attributes
+
+ This section contains those attributes for which additional values
+ are added.
+
+9.1 operations-supported (1setOf type2 enum)
+
+ The following "operation-id" values are added in order to support the
+ new operations defined in this document:
+
+ Table 4 - Operation-id assignments
+
+ Value Operation Name
+
+ 0x0013 Set-Printer-Attributes
+
+ 0x0014 Set-Job-Attributes
+
+ 0x0015 Get-Printer-Supported-Values
+
+10 Conformance Requirements
+
+ This section specifies the conformance requirements for clients and
+ IPP objects.
+
+ Both the Set-Job-Attributes and the Set-Printer-Attributes operations
+ defined in the document are OPTIONAL for an IPP object to support.
+ Either one MAY be supported without the other or both MAY be
+ supported. However, if the Set-Printer-Attributes operation is
+ supported, then the Get-Printer-Supported-Values operation MUST be
+ supported if any "xxx-supported" attributes are settable. Otherwise,
+ the Get-Printer-Supported-Values operation is OPTIONAL for an IPP
+ Printer to support.
+
+ If the Set-Printer-Attributes operation is supported, then the
+ Printer MUST support the following additional items:
+
+ 1. the Get-Printer-Supported-Values operation (see section 5), if
+ any "xxx-supported" attributes are settable.
+
+ 2. the "printer-settable-attributes-supported" Printer Description
+ attribute (see section 6.1).
+
+ 3. the 'not-settable' out-of-band value in responses (see section
+ 8.1).
+
+ 4. the 'client-error-not-settable' status code (see section 7.1).
+
+
+
+
+Hastings, et. al. Standards Track [Page 33]
+
+RFC 3380 IPP: Job and Printer Set Operations September 2002
+
+
+ 5. if the "printer-message-from-operator" Printer Description
+ attribute is supported (see [RFC2911], section 4.4.25), then it
+ MUST be settable.
+
+ 6. the Get-Printer-Supported-Values operation (see section 4.3),
+ if any "xxx-supported" attributes are settable.
+
+ 7. If a client can set a value with the 'name' attribute syntax
+ for one or more "xxx-supported" attributes, then the 'admin-
+ define' out-of-band attribute value (see section 8.3) MUST be
+ supported in the Get-Printer-Supported-Values response for each
+ such settable attribute (see section 4.3)
+
+ If the Set-Job-Attributes operation is supported, then the Printer
+ MUST support the following additional items:
+
+ 1. the "job-settable-attributes-supported" Printer Description
+ attribute (see section 6.2).
+
+ 2. the 'not-settable' out-of-band value in responses (see section
+ 8.1).
+
+ 3. the 'delete-attribute' out-of-band value in requests (see
+ section 8.2).
+
+ 4. the 'client-error-not-settable' status code (see section 7.1).
+
+ 5. if the "job-message-from-operator" Printer Description
+ attribute is supported (see [RFC2911], 4.3.16), then it MUST be
+ settable.
+
+ It is OPTIONAL for the Printer object to support the "printer-
+ message-time" (integer) and "printer-message-date-time" (dateTime)
+ Printer Description attributes. If both the "printer-message-time"
+ (integer) and the "printer-current-time" (dateTime) (see [RFC2911],
+ section 4.4.30) attributes are supported, then the "printer-message-
+ date-time" (dateTime) Printer Description attribute MUST be
+ supported.
+
+ As with all out-of-band values, a client or a Printer MUST NOT use an
+ out-of-band value, unless the definition document for the attribute
+ in an operation request and/or response explicitly allows such usage.
+
+
+
+
+
+
+
+
+
+Hastings, et. al. Standards Track [Page 34]
+
+RFC 3380 IPP: Job and Printer Set Operations September 2002
+
+
+11 IANA Considerations
+
+ This section contains registration information for IANA to add to the
+ various IPP Registries according to the procedures defined in RFC
+ 2911 [RFC2911], section 6. The resulting registrations will be
+ published in the http://www.iana.org/assignments/ipp-registrations
+ registry.
+
+11.1 Operation Registrations
+
+ The following table lists all of the operations defined in this
+ document. These are to be registered according to the procedures
+ defined in RFC 2911 [RFC2911], section 6.4.
+
+ Operations: Ref. Section:
+ Set-Printer-Attributes RFC 3380 4.1
+ Set-Job-Attributes RFC 3380 4.2
+ Get-Printer-Supported-Values RFC 3380 4.3
+
+11.2 Additional Enum Attribute Value Registrations for the
+ "operations-supported" Printer Attribute
+
+ The following table lists all the new enum attribute values defined
+ in this document as additional type2 enum values for use with the
+ "operations-supported" Printer Description attribute. These are to
+ be registered according to the procedures defined in RFC 2911 [RFC
+ 2911], section 6.1.
+
+ Enum Attribute Values: Value Ref. Section:
+ Set-Printer-Attributes 0x0013 RFC 3380 4
+ Set-Job-Attributes 0x0014 RFC 3380 4
+ Get-Printer-Supported-Values 0x0015 RFC 3380 4
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Hastings, et. al. Standards Track [Page 35]
+
+RFC 3380 IPP: Job and Printer Set Operations September 2002
+
+
+11.3 Keyword attribute value registrations
+
+ The following table lists all of the attributes defined in this
+ standard which have keywords values defined:
+
+ printer-settable-attributes-supported (1setOf type2 keyword)
+ RFC 3380 6.1
+ none RFC 3380 6.1
+ <Any other Printer attribute keyword name>
+ job-settable-attributes-supported (1setOf type2 keyword)
+ RFC 3380 6.2
+ none RFC 3380 6.2
+ <Any other Job attribute keyword name>
+ document-format-varying-attributes (1setOf type2 keyword)
+ RFC 3380 6.3
+ none
+ <Any Printer attribute keyword name>
+ xri-security-supported (1setOf type2 keyword) RFC 3380 6.9
+ none RFC 2911 4.4.3
+ ssl3 RFC 2911 4.4.3
+ tls' RFC 2911 4.4.3
+ xri-authentication-supported (1setOf type2 keyword)
+ none RFC 2911 4.4.2
+ requesting-user-name RFC 2911 4.4.2
+ basic RFC 2911 4.4.2
+ digest RFC 2911 4.4.2
+ certificate RFC 2911 4.4.2
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Hastings, et. al. Standards Track [Page 36]
+
+RFC 3380 IPP: Job and Printer Set Operations September 2002
+
+
+11.4 Attribute Registrations
+
+ The following table lists all of the attributes defined in this
+ document. These are to be registered according to the procedures in
+ RFC 2911 [RFC2911], section 6.2.
+
+ Operation attributes: Ref. Section:
+ printer-message-from-operator (text(127)) RFC 3380 5.1
+ job-message-from-operator (text(127)) RFC 3380 5.2
+
+ Printer Description attributes: Ref. Section:
+ printer-settable-attributes-supported (1setOf type2 keyword)
+ RFC 3380 6.1
+ job-settable-attributes-supported (1setOf type2 keyword)
+ RFC 3380 6.2
+ document-format-varying-attributes (1setOf type2 keyword)
+ RFC 3380 6.3
+ printer-message-time (integer(MIN:MAX)) RFC 3380 6.4
+ printer-message-date-time (dateTime) RFC 3380 6.5
+ printer-xri-supported (1setOf collection) RFC 3380 6.6
+ xri-uri (uri) RFC 3380 6.6
+ xri-authentication (type2 keyword) RFC 3380 6.6
+ xri-security (type2 keyword) RFC 3380 6.6
+ xri-uri-scheme-supported (1setOf uriScheme) RFC 3380 6.7
+ xri-authentication-supported (1setOf type2 keyword) 6.8
+ xri-security-supported (1setOf type2 keyword) RFC 3380 6.9
+
+11.5 Status code Registrations
+
+ The following table lists the status code defined in this document.
+ This is to be registered according to the procedures in RFC 2911
+ [RFC2911], section 6.6.
+
+ Status codes: Ref. Section:
+ client-error-attributes-not-settable (0x0413) RFC 3380 7.1
+
+11.6 Out-of-band Attribute Value Registrations
+
+ The following table lists all of the out-of-band attribute values
+ defined in this document. These are to be registered according to
+ the procedures in RFC 2911 [RFC2911] section 6.7.
+
+ Value: Out-of-band Attribute value name: Ref. Section:
+ 0x15 not-settable RFC 3380 8.1
+ 0x16 delete-attribute RFC 3380 8.2
+ 0x17 admin-define RFC 3380 8.3
+
+
+
+
+
+Hastings, et. al. Standards Track [Page 37]
+
+RFC 3380 IPP: Job and Printer Set Operations September 2002
+
+
+12 Internationalization Considerations
+
+ This document has the same localization considerations as [RFC2911].
+
+13 Security Considerations
+
+ The IPP Model and Semantics document ([RFC2911], section 8) discusses
+ high level security requirements (Client Authentication, Server
+ Authentication and Operation Privacy). Client Authentication is the
+ mechanism by which the client proves its identity to the server in a
+ secure manner. Server Authentication is the mechanism by which the
+ server proves its identity to the client in a secure manner.
+ Operation Privacy is defined as a mechanism for protecting operations
+ from eavesdropping.
+
+ In addition, the introduction of the Set-Printer-Attributes and Set-
+ Job-Attributes operations creates another security threat, since the
+ client is able to modify the Printer and Job attributes stored in the
+ Printer. Such modifications could lead to denial of service.
+
+ A malicious user could alter the policy established by the system
+ administrator and stored in the Printer attributes. Such alteration
+ could either grant access to more resources or deny access to
+ resources that the system administrator has established. For
+ example, the malicious user could remove all of the document-format
+ values from the "document-format-supported" Printer attribute so that
+ the Printer would refuse to accept all jobs.
+
+ The general remedy for such malicious user actions against Printer
+ attributes is to have strong Client Authentication coupled with
+ Printer access control, to limit the users who have System
+ Administrator or Operator privileges.
+
+ A malicious user could modify the Job Template attributes of another
+ user's Job, such as the "copies" attribute. For example, setting the
+ number of copies to a large number.
+
+ The general remedy for such malicious user actions against another
+ user's job is to have strong Client Authentication coupled with
+ Printer access control to limit the users who have System
+ Administrator or Operator privileges who can modify any job and, in
+ addition, store the Client Authentication with each Job so that only
+ the job owner End User can modify his/her own job.
+
+
+
+
+
+
+
+
+Hastings, et. al. Standards Track [Page 38]
+
+RFC 3380 IPP: Job and Printer Set Operations September 2002
+
+
+14 References
+
+14.1 Normative References
+
+ [RFC2565] Herriot, R., Butler, S., Moore, P. and R. Tuner, "Internet
+ Printing Protocol/1.0: Encoding and Transport", RFC 2565,
+ April 1999.
+
+ [RFC2566] deBry, R., Hastings, T., Herriot, R., Isaacson, S. and P.
+ Powell, "Internet Printing Protocol/1.0: Model and
+ Semantics", RFC 2566, April 1999.
+
+ [RFC2910] Herriot, R., Butler, S., Moore, P. and R. Turner,
+ "Internet Printing Protocol/1.1: Encoding and Transport",
+ RFC 2910, September 2000.
+
+ [RFC2911] Hastings, T., Herriot, R., deBry, R., Isaacson, S. and P.
+ Powell, "Internet Printing Protocol/1.0: Model and
+ Semantics", RFC 2911, September 2000.
+
+ [RFC3382] deBry, R., Hastings, T., Herriot, R., Ocke, K. and P.
+ Zehler, "Internet Printing Protocol (IPP): The
+ 'collection' attribute syntax", RFC 3382, September 2002.
+
+14.2 Informative References
+
+ [RFC2251] Wahl, M., Howes, T. abd S. Kille, "Lightweight Directory
+ Access Protocol (v3)", RFC 2251, December 1997.
+
+ [RFC2252] Wahl, M., Coulbeck, A., Howes, T. and S. Kille,
+ "Lightweight Directory Access Protocol (v3): Attribute
+ Syntax Definitions", RFC 2252, December 1997.
+
+ [RFC2608] Guttman, E., Perkins, C., Veizades, J. and M. Day,
+ "Service Location Protocol, Version 2", RFC 2608, June
+ 1999.
+
+ [RFC2609] Guttman, E., Perkins, C. and J. Kempf, "Service Templates
+ and service: Schemes", RFC 2609, June 1999.
+
+ [RFC3196] Hastings, T., Manros, C., Zehler, P., Kugler, C. and H.
+ Holst, "Internet Printing Protocol/1.1: Implementor's
+ Guide", RFC 3196, November 2001.
+
+
+
+
+
+
+
+
+Hastings, et. al. Standards Track [Page 39]
+
+RFC 3380 IPP: Job and Printer Set Operations September 2002
+
+
+Appendix A: Allowed Values for Set-Printer-Attributes and
+ Set-Job-Attributes requests (Normative)
+
+ This appendix is a normative part of this document and contains a
+ table of all IPP/1.1 attributes. Each row contains:
+
+ - an attribute and
+
+ - the values allowed in the Set-Printer-Attributes or Set-Job-
+ Attributes request for the attribute. The entry in each cell
+ is the name (first few words) of each item below 1, 2, 3, 4a-g,
+ and 5.
+
+ The allowed values include the following cases:
+
+ 1. READ-ONLY: the Set-Printer-Attributes or Set-Job-Attributes
+ operation MUST NOT change this attribute and MUST reject the
+ entire operation (see section 7.1).
+
+ 2. Any of "xxx-supported": the Set-Printer-Attributes or Set-
+ Job-Attributes operation accepts values that are allowed
+ according to the IPP/1.1 rules for validating the value(s) of
+ an "xxx" Printer or Job attribute against the value(s) of the
+ corresponding "xxx-supported" Printer attribute. Table 5
+ summarizes those validation rules depending on each attribute
+ syntax and value of an "xxx" attribute supplied in the request
+ and that of the corresponding "xxx-supported" Printer
+ attribute. The "xxx-supported" attribute syntax type and
+ value(s) are obtained from a Get-Printer-Supported-Values
+ response (see the tables in this Appendix).
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Hastings, et. al. Standards Track [Page 40]
+
+RFC 3380 IPP: Job and Printer Set Operations September 2002
+
+
+ Table 5 - Validation rules for 'Any of "xxx-supported" '
+
+ Type of "xxx" Type of "xxx- Validates if:
+ value to be supported" value
+ set
+
+ integer rangeOfInteger each value is in one of the
+ "xxx-supported" ranges
+
+ uri uriScheme each uri scheme matches one
+ of the "xxx-supported"
+ schemes
+
+ any boolean if the boolean "xxx-
+ supported" is 'true'
+
+ any same type each value matches an "xxx-
+ supported" value of the same
+ type
+
+ For additional non-normative explanatory information see section
+ 3.1.2.3 of the "Internet Printing Protocol/1.1: Implementer's Guide"
+ [RFC3196].
+
+ 3. From Get-Printer-Supported-Values: the Set-Printer-Attributes
+ operation accepts values that are allowed according to the
+ IPP/1.1 rules for validating the value(s) of an "xxx" Printer
+ attribute against the value(s) of the corresponding "xxx-
+ supported" Printer attribute. Table 6 summarizes those
+ validation rules depending on each attribute syntax and value
+ of an "xxx" attribute supplied in the request and that of the
+ corresponding "xxx-supported" Printer attribute. The "xxx-
+ supported" attribute syntax type and attribute value(s) are
+ obtained from a Get-Printer-Supported-Values response (see
+ Appendix B: Attributes returned from Get-Printer-Supported-
+ Values below).
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Hastings, et. al. Standards Track [Page 41]
+
+RFC 3380 IPP: Job and Printer Set Operations September 2002
+
+
+ Table 6 - Validation rules for 'From Get-Printer-Supported-Values'
+
+ Type of -
+ "xxx" supported" value Validates if:
+ value to
+ be set Type of "xxx
+
+
+ integer rangeOfInteger each 'integer' value is in one of
+ the "xxx-supported" ranges
+
+ uri uriScheme the uri scheme of each value
+ matches one of the "xxx-supported"
+ schemes
+
+ any boolean if the boolean "xxx-supported" is
+ 'true'
+
+ name 'admin-define' any 'name' value matches
+ out-of-band
+ value
+
+ any same type each value matches an "xxx-
+ supported" value of the same type
+
+ For additional non-normative explanatory information see section
+ 3.1.2.3 of the "Internet Printing Protocol/1.1: Implementer's Guide"
+ [RFC3196].
+
+ 4. Any value of the proper attribute syntax: the Set-Printer-
+ Attributes or Set-Job-Attributes operation accepts any value of
+ the specified attribute syntax. The attribute syntaxes
+ supported are enumerated below.
+
+ a. Any text(127)
+ b. Any name(127)
+ c. Any uri
+ d. Any boolean
+ e. Any positive integer
+ f. Any dateTime
+ g. 1setOf any uri
+
+ 5. Combination of 'Any of "xxx-supported"' or 'Any name'. If a
+ Printer implementation doesn't want to allow setting values
+ indicated in this Appendix as "any xxx", it can make the value
+ be not-settable.
+
+
+
+
+
+Hastings, et. al. Standards Track [Page 42]
+
+RFC 3380 IPP: Job and Printer Set Operations September 2002
+
+
+ Table 7 - Values allowed for Job Template Attributes in the
+ Set-Job-Attributes Operation
+
+ Job Template Attributes Values allowed for
+ Set
+
+ job-priority (integer(1:100)) Any of "xxx-
+ supported"
+
+ job-hold-until (type3 keyword | name (MAX)) Any of "xxx-
+ supported"
+
+ job-sheets (type3 keyword | name(MAX)) Any of "xxx-
+ supported"
+
+ multiple-document-handling (type2 keyword) Any of "xxx-
+ supported"
+
+ copies (integer(1:MAX)) Any of "xxx-
+ supported"
+
+ finishings (1setOf type2 enum) Any of "xxx-
+ supported"
+
+ page-ranges (1setOf rangeOfInteger (1:MAX)) Any of "xxx-
+ supported"
+
+ sides (type2 keyword) Any of "xxx-
+ supported"
+
+ number-up (integer(1:MAX)) Any of "xxx-
+ supported"
+
+ orientation-requested (type2 enum) Any of "xxx-
+ supported"
+
+ media (type3 keyword | name(MAX)) Any of "xxx-
+ supported"
+
+ printer-resolution (resolution) Any of "xxx-
+ supported"
+
+ print-quality (type2 enum) Any of "xxx-
+ supported"
+
+
+
+
+
+
+
+Hastings, et. al. Standards Track [Page 43]
+
+RFC 3380 IPP: Job and Printer Set Operations September 2002
+
+
+ Table 8 - Values allowed for Job Description Attributes in the
+ Set-Job-Attributes Operation
+
+ Job Description Attributes Values allowed for
+ Set
+
+ job-uri (uri) READ-ONLY
+
+ job-id (integer(1:MAX)) READ-ONLY
+
+ job-printer-uri (uri) READ-ONLY
+
+ job-more-info (uri) READ-ONLY
+
+ job-name (name(MAX)) Any name(MAX)
+
+ job-originating-user-name (name(MAX)) READ-ONLY
+
+ job-state (type1 enum) READ-ONLY
+
+ job-state-reasons (1setOf type2 keyword) READ-ONLY
+
+ job-state-message (text(MAX)) READ-ONLY
+
+ job-detailed-status-messages (1setOf READ-ONLY
+ text(MAX))
+
+ job-document-access-errors (1setOf READ-ONLY
+ text(MAX))
+
+ number-of-documents (integer(0:MAX)) READ-ONLY
+
+ output-device-assigned (name(127)) READ-ONLY
+
+ time-at-creation (integer(MIN:MAX)) READ-ONLY
+
+ time-at-processing (integer(MIN:MAX)) READ-ONLY
+
+ time-at-completed (integer(MIN:MAX)) READ-ONLY
+
+ job-printer-up-time (integer(1:MAX)) READ-ONLY
+
+ date-time-at-creation (dateTime) READ-ONLY
+
+
+
+
+
+
+
+
+Hastings, et. al. Standards Track [Page 44]
+
+RFC 3380 IPP: Job and Printer Set Operations September 2002
+
+
+ Job Description Attributes Values allowed for
+ Set
+
+ date-time-at-processing (dateTime) READ-ONLY
+
+ date-time-at-completed (dateTime) READ-ONLY
+
+ number-of-intervening-jobs (integer(0:MAX)) READ-ONLY
+
+ job-message-from-operator (text(127)) Any text(127)
+
+ job-k-octets (integer(0:MAX)) READ-ONLY
+
+ job-impressions (integer(0:MAX)) READ-ONLY
+
+ job-media-sheets (integer(0:MAX)) READ-ONLY
+
+ job-k-octets-processed (integer(0:MAX)) READ-ONLY
+
+ job-impressions-completed (integer(0:MAX)) READ-ONLY
+
+ job-media-sheets-completed (integer(0:MAX)) READ-ONLY
+
+ attributes-charset (charset) READ-ONLY
+
+ attributes-natural-language READ-ONLY
+ (naturalLanguage)
+
+ Table 9 - Values allowed for Printer Job Template Attributes in
+ the Set-Printer-Attributes Operation
+
+ Printer Job Template Attributes Values allowed
+ for Set
+
+ job-priority-default (integer(1:100)) Any of "xxx-
+ supported"
+
+ job-hold-until-default (type3 keyword | name Any of "xxx-
+ (MAX)) supported"
+
+ job-sheets-default (type3 keyword | name(MAX)) Any of "xxx-
+ supported"
+
+ multiple-document-handling-default (type2 Any of "xxx-
+ keyword) supported"
+
+ copies-default (integer(1:MAX)) Any of "xxx-
+ supported"
+
+
+
+Hastings, et. al. Standards Track [Page 45]
+
+RFC 3380 IPP: Job and Printer Set Operations September 2002
+
+
+ Printer Job Template Attributes Values allowed
+ for Set
+
+ finishings-default (1setOf type2 enum) Any of "xxx-
+ supported"
+
+ sides-default (type2 keyword) Any of "xxx-
+ supported"
+
+ number-up-default (integer(1:MAX)) Any of "xxx-
+ supported"
+
+ orientation-requested-default (type2 enum) Any of "xxx-
+ supported"
+
+ media-default (type3 keyword | name(MAX)) Any of "xxx-
+ supported"
+
+ printer-resolution-default (resolution) Any of "xxx-
+ supported"
+
+ print-quality-default (type2 enum) Any of "xxx-
+ supported"
+
+ job-priority-supported (integer(1:100)) From Get-
+ Printer-
+ Supported-Values
+
+ job-hold-until-supported (1setOf(type3 keyword From Get-
+ | name (MAX))) Printer-
+ Supported-Values
+
+ job-sheets-supported (1setOf(type3 keyword | From Get-
+ name(MAX))) Printer-
+ Supported-Values
+
+ multiple-document-handling-supported (1setOf From Get-
+ type2 keyword) Printer-
+ Supported-Values
+
+ copies-supported (rangeOfInteger(1:MAX)) From Get-
+ Printer-
+ Supported-Values
+
+ finishings-supported (1setOf type2 enum) From Get-
+ Printer-
+ Supported-Values
+
+
+
+
+Hastings, et. al. Standards Track [Page 46]
+
+RFC 3380 IPP: Job and Printer Set Operations September 2002
+
+
+ Printer Job Template Attributes Values allowed
+ for Set
+
+ page-ranges-supported (boolean) From Get-
+ Printer-
+ Supported-Values
+
+ sides-supported (1setOf type2 keyword) From Get-
+ Printer-
+ Supported-Values
+
+ number-up-supported (1setOf (integer(1:MAX) | From Get-
+ rangeOfInteger(1:MAX))) Printer-
+ Supported-Values
+
+ orientation-requested-supported (1setOf type2 From Get-
+ enum) Printer-
+ Supported-Values
+
+ media-supported (1setOf (type3 keyword | From Get-
+ name(MAX))) Printer-
+ Supported-Values
+
+ printer-resolution-supported (1setOf From Get-
+ resolution) Printer-
+ Supported-Values
+
+ print-quality-supported (1setOf type2 enum) From Get-
+ Printer-
+ Supported-Values
+
+ media-ready (type3 keyword | name(MAX)) From Get-
+ Printer-
+ Supported-Values
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Hastings, et. al. Standards Track [Page 47]
+
+RFC 3380 IPP: Job and Printer Set Operations September 2002
+
+
+ Table 10 - Values allowed for Printer Description Attributes in
+ the Set-Printer-Attributes Operation
+
+ Printer Description Attributes Values allowed for
+ Set
+
+ printer-uri-supported (1setOf uri) READ-ONLY
+
+ uri-authentication-supported (1setOf type2 READ-ONLY
+ keyword)
+
+ uri-security-supported (1setOf type2 READ-ONLY
+ keyword)
+
+ printer-xri-supported (1setOf collection)
+ member attributes:
+
+ xri-uri (uri) any uriScheme of
+ "xri-uri-scheme-
+ supported" from
+ Get-Printer-
+ Attributes
+
+ xri-authentication (type2 keyword) any keyword of
+ "xri-
+ authentication-
+ supported" from
+ Get-Printer-
+ Attributes
+
+ xri-security (type2 keyword) any keyword of
+ "xri-security-
+ supported" from
+ Get-Printer-
+ Attributes
+
+ xri-uri-scheme-supported (1setOf uriScheme) READ-ONLY
+
+ xri-authentication-supported (1setOf type2 READ-ONLY
+ keyword)
+
+ xri-security-supported (1setOf type2 READ-ONLY
+ keyword)
+
+
+
+
+
+
+
+
+Hastings, et. al. Standards Track [Page 48]
+
+RFC 3380 IPP: Job and Printer Set Operations September 2002
+
+
+ Printer Description Attributes Values allowed for
+ Set
+
+ printer-name (name(127)) Any name(127)
+
+ printer-location (text(127)) Any text(127)
+
+ printer-info (text(127)) Any text(127)
+
+ printer-more-info (uri) Any uri
+
+ printer-driver-installer (uri) Any uri
+
+ printer-make-and-model (text(127)) Any text(127)
+
+ printer-more-info-manufacturer (uri) Any uri
+
+ printer-state (type1 enum) READ-ONLY
+
+ printer-state-reasons (1setOf type2 READ-ONLY
+ keyword)
+
+ printer-state-message (text(MAX)) READ-ONLY
+
+ ipp-versions-supported (1setOf type2 From Get-Printer-
+ keyword) Supported-Values
+
+ operations-supported (1setOf type2 enum) From Get-Printer-
+ Supported-Values
+
+ multiple-document-jobs-supported (boolean) From Get-Printer-
+ Supported-Values
+
+ charset-configured (charset) Any of "xxx-
+ supported", use
+ "charset-supported"
+
+ charset-supported (1setOf charset) From Get-Printer-
+ Supported-Values
+
+
+
+
+
+
+
+
+
+
+
+
+Hastings, et. al. Standards Track [Page 49]
+
+RFC 3380 IPP: Job and Printer Set Operations September 2002
+
+
+ Printer Description Attributes Values allowed for
+ Set
+
+ natural-language-configured Any of "xxx-
+ (naturalLanguage) supported", use
+ "generated-natural-
+ language-supported"
+
+ generated-natural-language-supported From Get-Printer-
+ (1setOf naturalLanguage) Supported-Values
+
+ document-format-default (mimeMediaType) Any of "xxx-
+ supported"
+
+ document-format-supported (1setOf From Get-Printer-
+ mimeMediaType) Supported-Values
+
+ printer-is-accepting-jobs (boolean) READ-ONLY
+
+ queued-job-count (integer(0:MAX)) READ-ONLY
+
+ printer-message-from-operator (text(127)) Any text(127)
+
+ color-supported (boolean) From Get-Printer-
+ Supported-Values
+
+ reference-uri-schemes-supported (1setOf From Get-Printer-
+ uriScheme) Supported-Values
+
+ pdl-override-supported (type2 keyword) From Get-Printer-
+ Supported-Values
+
+ printer-up-time (integer(1:MAX)) READ-ONLY
+
+ printer-current-time (dateTime) Any dateTime **
+
+ multiple-operation-time-out any positive
+ (integer(1:MAX)) integer
+
+ compression-supported (1setOf type3 From Get-Printer-
+ keyword) Supported-Values
+
+ job-k-octets-supported From Get-Printer-
+ (rangeOfInteger(0:MAX)) Supported-Values
+
+
+
+
+
+
+
+Hastings, et. al. Standards Track [Page 50]
+
+RFC 3380 IPP: Job and Printer Set Operations September 2002
+
+
+ Printer Description Attributes Values allowed for
+ Set
+
+ job-impressions-supported From-Get-Printer-
+ (rangeOfInteger(0:MAX)) Supported-Values
+
+ job-media-sheets-supported From Get-Printer-
+ (rangeOfInteger(0:MAX)) Supported-Values
+
+ pages-per-minute (integer(0:MAX)) READ-ONLY
+
+ pages-per-minute-color (integer(0:MAX)) READ-ONLY
+
+ printer-settable-attributes-supported From Get-Printer-
+ (1setOf type2 keyword) Supported-Values
+
+ job-settable-attributes-supported (1setOf From Get-Printer-
+ type2 keyword) Supported-Values
+
+ document-format-varying-attributes (1setOf READ-ONLY
+ type2 keyword)
+
+ printer-message-time (integer(MIN:MAX)) READ-ONLY
+
+ printer-message-date-time(dateTime) READ-ONLY
+
+ ** - The "printer-current-time" (dateTime) attribute is settable in
+ order to allow an administrator to correct an incorrect dateTime or
+ time zone.
+
+Appendix B: Attributes returned from Get-Printer-Supported-Values
+ (Normative)
+
+ This Appendix is a normative part of this document and lists all the
+ attributes that are possible for an implementation to return in a
+ Get-Printer-Supported-Values response, i.e., all the "xxx-supported"
+ attributes that can be supplied in a Set-Printer-Attributes request.
+ READ-ONLY attributes MUST NOT be returned in a Get-Printer-
+ Supported-Values response and are indicated in the tables as "READ-
+ ONLY - MUST NOT be returned."
+
+ For the following attributes, the value allowed by the Set-Printer-
+ Attributes operation MUST be a single integer value in the range
+ specified by the value returned by the Get-Printer-Supported-Values
+ operation.
+
+
+
+
+
+
+Hastings, et. al. Standards Track [Page 51]
+
+RFC 3380 IPP: Job and Printer Set Operations September 2002
+
+
+ Table 11 - Printer Job Template Attributes returned from
+ Get-Printer-Supported-Values
+
+ Printer Job Template Attributes Values Returned
+
+ job-priority-supported (integer(1:100)) rangeOfInteger(1:100)
+
+ For the following attributes, the value allowed by the Set-Printer-
+ Attributes operation MUST be a single rangeOfInteger value whose
+ bounds do not exceed those of the range specified by the value
+ returned by the Get-Printer-Supported-Values operation.
+
+ Table 12 - Printer Job Template Attributes returned from
+ Get-Printer-Supported-Values
+
+ Printer Job Template Attributes Values Returned
+
+ copies-supported (rangeOfInteger(1:MAX)) rangeOfInteger(1:MAX)
+
+ The following table has the same criteria as the last, but is for
+ Printer Description attributes.
+
+ Table 13 - Printer Description Attributes returned from
+ Get-Printer-Supported-Values
+
+ Printer Description Attributes Values allowed for Set
+
+ job-k-octets-supported rangeOfInteger(0:MAX)
+ (rangeOfInteger(0:MAX))
+
+ job-impressions-supported
+ (rangeOfInteger(0:MAX)) rangeOfInteger(0:MAX)
+
+ job-media-sheets-supported rangeOfInteger(0:MAX)
+ (rangeOfInteger(0:MAX))
+
+ For the following attributes, the value allowed by the Set-Printer-
+ Attributes operation MUST be one or more integers and rangeOfInteger
+ values, such that the integer values described by these integers and
+ rangeOfInteger is the same as or a subset of the integers described
+ by the integers and rangeOf Integer of values returned by the Get-
+ Printer-Supported-Values operation.
+
+
+
+
+
+
+
+
+
+Hastings, et. al. Standards Track [Page 52]
+
+RFC 3380 IPP: Job and Printer Set Operations September 2002
+
+
+ Table 14 - Printer Job Template Attributes returned from
+ Get-Printer-Supported-Values
+
+ Printer Job Template Attributes Values Returned
+
+ number-up-supported (1setOf (integer(1:MAX) 1setOf
+ | rangeOfInteger(1:MAX))) (integer(1:MAX) |
+ rangeOfInteger(1:MA
+ X))
+
+ For the following attributes, the value allowed by the Set-Printer-
+ Attributes operation MUST be one or more values, where each such
+ value matches a value returned by the Get-Printer-Supported-Values
+ operation. A keyword, enum, boolean, charset, naturalLanguage,
+ uriScheme, mimeMediaType or resolution value matches if it is equal.
+ For Job Template attributes, with the attribute syntax 'type3 keyword
+ | name', any 'name' attribute syntax value matches the 'admin-define'
+ out-of-band value, if the implementation allows the administrator to
+ set any name values for the attribute.
+
+ Table 15 - Printer Job Template Attributes returned from
+ Get-Printer-Supported-Values
+
+ Printer Job Template Attributes Values Returned
+
+ job-hold-until-supported (1setOf(type3 1setOf (type3
+ keyword | name (MAX))) keyword | 'admin-
+ define')
+
+ job-sheets-supported (1setOf(type3 keyword 1setOf (type3
+ | name(MAX))) keyword | 'admin-
+ define')
+
+ multiple-document-handling-supported 1setOf type2
+ (1setOf type2 keyword) keyword
+
+ finishings-supported (1setOf type2 enum) 1setOf type2 enum
+
+ page-ranges-supported (boolean) 1setOf boolean **
+
+ sides-supported (1setOf type2 keyword) 1setOf type2
+ keyword
+
+ orientation-requested-supported (1setOf 1setOf type2 enum
+ type2 enum)
+
+
+
+
+
+
+Hastings, et. al. Standards Track [Page 53]
+
+RFC 3380 IPP: Job and Printer Set Operations September 2002
+
+
+ Printer Job Template Attributes Values Returned
+
+ media-supported (1setOf (type3 keyword | 1setOf (type3
+ name(MAX))) keyword | 'admin-
+ define')
+
+ printer-resolution-supported (1setOf 1setOf resolution
+ resolution)
+
+ print-quality-supported (1setOf type2 enum) 1setOf type2 enum
+
+ ** Note: the Get-Printer-Supported-Values returns a '1setOf boolean'
+ so that all possible values are indicated, while ** Get-Printer-
+ Attributes returns only a single 'boolean' value.
+
+ The following table has the same criteria as the last, but is for
+ Printer Description attributes.
+
+ Table 16 - Printer Description Attributes returned from
+ Get-Printer-Supported-Values
+
+ Printer Description Attributes Values allowed for
+ Set
+
+ printer-uri-supported (1setOf uri) READ-ONLY - MUST
+ NOT be returned
+
+ uri-authentication-supported (1setOf type2 READ-ONLY - MUST
+ keyword) NOT be returned
+
+ uri-security-supported (1setOf type2 READ-ONLY - MUST
+ keyword) NOT be returned
+
+ printer-xri-supported (1setOf collection) MUST NOT be
+ returned; see next
+ three attributes
+ returned with Get-
+ Printer-Attributes:
+
+ xri-uri-scheme-supported (1setOf uriScheme) READ-ONLY - MUST
+ NOT be returned
+
+ xri-authentication-supported (1setOf type2 READ-ONLY - MUST
+ keyword) NOT be returned
+
+ xri-security-supported (1setOf type2 READ-ONLY - MUST
+ keyword) NOT be returned
+
+
+
+
+Hastings, et. al. Standards Track [Page 54]
+
+RFC 3380 IPP: Job and Printer Set Operations September 2002
+
+
+ Printer Description Attributes Values allowed for
+ Set
+
+ ipp-versions-supported (1setOf type2 1setOf type2
+ keyword) keyword
+
+ operations-supported (1setOf type2 enum) 1setOf type2
+ keyword
+
+ multiple-document-jobs-supported (boolean) 1setOf boolean **
+
+ charset-supported (1setOf charset) 1setOf charset
+
+ generated-natural-language-supported 1setOf
+ (1setOf naturalLanguage) naturalLanguage
+
+ document-format-supported (1setOf 1setOf
+ mimeMediaType) mimeMediaType
+
+ color-supported (boolean) 1setOf boolean **
+
+ reference-uri-schemes-supported (1setOf 1setOf uriScheme
+ uriScheme)
+
+ pdl-override-supported (type2 keyword) 1setOf type2
+ keyword **
+
+ compression-supported (1setOf type3 1setOf type3
+ keyword) keyword
+
+ printer-settable-attributes-supported 1setOf type2
+ (1setOf type2 keyword) keyword
+
+ job-settable-attributes-supported (1setOf 1setOf type2
+ type2 keyword) keyword
+
+ ** Note: the Get-Printer-Supported-Values returns a '1setOf X' so
+ that all possible values are indicated, while Get-Printer-Attributes
+ returns only a single 'X' value.
+
+
+
+
+
+
+
+
+
+
+
+
+Hastings, et. al. Standards Track [Page 55]
+
+RFC 3380 IPP: Job and Printer Set Operations September 2002
+
+
+Appendix C: Description of the Base IPP Documents (Informative)
+
+ The base set of IPP documents includes:
+
+ Design Goals for an Internet Printing Protocol [RFC2567]
+ Rationale for the Structure and Model and Protocol for the
+ Internet Printing Protocol [RFC2568]
+ Internet Printing Protocol/1.1: Model and Semantics [RFC2911]
+ Internet Printing Protocol/1.1: Encoding and Transport [RFC2910]
+ Internet Printing Protocol/1.1: Implementer's Guide [RFC3196]
+ Mapping between LPD and IPP Protocols [RFC2569]
+
+ The "Design Goals for an Internet Printing Protocol" document takes a
+ broad look at distributed printing functionality, and it enumerates
+ real-life scenarios that help to clarify the features that need to be
+ included in a printing protocol for the Internet. It identifies
+ requirements for three types of users: end users, operators, and
+ administrators. It calls out a subset of end user requirements that
+ are satisfied in IPP/1.0 [RFC2566, RFC2565]. A few OPTIONAL operator
+ operations have been added to IPP/1.1 [RFC2911, RFC2910].
+
+ The "Rationale for the Structure and Model and Protocol for the
+ Internet Printing Protocol" document describes IPP from a high level
+ view, defines a roadmap for the various documents that form the suite
+ of IPP specification documents, and gives background and rationale
+ for the IETF IPP working group's major decisions.
+
+ The "Internet Printing Protocol/1.1: Model and Semantics" document
+ describes a simplified model with abstract objects, their attributes,
+ and their operations. The model introduces a Printer and a Job. The
+ Job supports multiple documents per Job. The model document also
+ addresses how security, internationalization, and directory issues
+ are addressed.
+
+ The "Internet Printing Protocol/1.1: Encoding and Transport" document
+ is a formal mapping of the abstract operations and attributes defined
+ in the model document onto HTTP/1.1 [RFC2616]. It also defines the
+ encoding rules for a new Internet MIME media type called
+ "application/ipp". This document also defines the rules for
+ transporting over HTTP, a message body whose Content-Type is
+ "application/ipp". This document defines the 'ipp' scheme for
+ identifying IPP printers and jobs.
+
+ The "Internet Printing Protocol/1.1: Implementer's Guide" document
+ gives insight and advice to implementers of IPP clients and IPP
+ objects. It is intended to help them understand IPP/1.1 and some of
+ the considerations that may assist them in the design of their client
+
+
+
+
+Hastings, et. al. Standards Track [Page 56]
+
+RFC 3380 IPP: Job and Printer Set Operations September 2002
+
+
+ and/or IPP object implementations. For example, a typical order of
+ processing requests is given, including error checking. Motivation
+ for some of the specification decisions are also included.
+
+ The "Mapping between LPD and IPP Protocols" document gives some
+ advice to implementers of gateways between IPP and LPD (Line Printer
+ Daemon) implementations.
+
+Authors' Addresses
+
+ Carl Kugler
+ IBM
+ P.O. Box 1900
+ Boulder, CO 80301-9191
+
+ Phone: (303) 924-5060
+ EMail: kugler@us.ibm.com
+
+
+ Tom Hastings
+ Xerox Corporation
+ 737 Hawaii St. ESAE 231
+ El Segundo, CA 90245
+
+ Phone: 310-333-6413
+ Fax: 310-333-5514
+ EMail: hastings@cp10.es.xerox.com
+
+
+ Robert Herriot
+ Consultant
+ 706 Colorado Ave
+ Palo Alto, CA 94303
+
+ Phone: 650-327-4466
+ Fax: 650-327-4466
+ EMail: bob@Herriot.com
+
+
+ Harry Lewis
+ IBM
+ 6300 Diagonal Hwy.
+ Boulder, CO 80301-9191
+
+ Phone: (303) 924-5337
+ EMail: harryl@us.ibm.com
+
+
+
+
+
+Hastings, et. al. Standards Track [Page 57]
+
+RFC 3380 IPP: Job and Printer Set Operations September 2002
+
+
+ IPP Web Page: http://www.pwg.org/ipp/
+ IPP Mailing List: ipp@pwg.org
+
+ To subscribe to the ipp mailing list, send the following email:
+
+ 1) send it to majordomo@pwg.org
+ 2) leave the subject line blank
+ 3) put the following two lines in the message body:
+ subscribe ipp
+ end
+
+ Implementers of this specification document are encouraged to join
+ the IPP Mailing List in order to participate in any discussions of
+ clarification issues and review of registration proposals for
+ additional attributes and values. In order to reduce spam the
+ mailing list rejects mail from non-subscribers, so you must subscribe
+ to the mailing list in order to send a question or comment to the
+ mailing list.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Hastings, et. al. Standards Track [Page 58]
+
+RFC 3380 IPP: Job and Printer Set Operations September 2002
+
+
+Full Copyright Statement
+
+ Copyright (C) The Internet Society (2002). All Rights Reserved.
+
+ This document and translations of it may be copied and furnished to
+ others, and derivative works that comment on or otherwise explain it
+ or assist in its implementation may be prepared, copied, published
+ and distributed, in whole or in part, without restriction of any
+ kind, provided that the above copyright notice and this paragraph are
+ included on all such copies and derivative works. However, this
+ document itself may not be modified in any way, such as by removing
+ the copyright notice or references to the Internet Society or other
+ Internet organizations, except as needed for the purpose of
+ developing Internet standards in which case the procedures for
+ copyrights defined in the Internet Standards process must be
+ followed, or as required to translate it into languages other than
+ English.
+
+ The limited permissions granted above are perpetual and will not be
+ revoked by the Internet Society or its successors or assigns.
+
+ This document and the information contained herein is provided on an
+ "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
+ TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
+ BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
+ HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
+ MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
+
+Acknowledgement
+
+ Funding for the RFC Editor function is currently provided by the
+ Internet Society.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Hastings, et. al. Standards Track [Page 59]
+