diff options
Diffstat (limited to 'doc/rfc/rfc3380.txt')
-rw-r--r-- | doc/rfc/rfc3380.txt | 3307 |
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] + |