Movatterモバイル変換


[0]ホーム

URL:


[RFC Home] [TEXT|PDF|HTML] [Tracker] [IPR] [Errata] [Info page]

PROPOSED STANDARD
Errata Exist
Network Working Group                                        T. HastingsRequest for Comments: 3380                             Xerox CorporationUpdates:2910,2911                                           R. HerriotCategory: Standards Track                                     Consultant                                                               C. Kugler                                                                H. Lewis                                                         IBM Corporation                                                          September 2002Internet Printing Protocol (IPP):Job and Printer Set OperationsStatus 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 2002Table of Contents1 Introduction......................................................42 Terminology.......................................................52.1 Conformance Terminology.........................................52.2 Other terminology...............................................53 Requirements and Use Cases........................................54 Definition of the Set operations..................................64.1 Set-Printer-Attributes Operation................................74.1.1 Settable and READ-ONLY Printer Description attributes.........94.1.2 Set-Printer-Attributes Request...............................104.1.3 Set-Printer-Attributes Response..............................124.2 Set-Job-Attributes Operation...................................134.2.1 Settable and READ-ONLY Job Description attributes............164.2.2 Set-Job-Attributes Request...................................174.2.3 Set-Job-Attributes Response..................................184.3 Get-Printer-Supported-Values Operation.........................19   4.3.1 Definition of the usage of the 'admin-define' out-of-band         attribute value..............................................205 New Operation attributes.........................................225.1 printer-message-from-operator (text(127))......................225.2 job-message-from-operator (text(127))..........................236 New Printer Description Attributes...............................246.1 printer-settable-attributes-supported (1setOf type2 keyword)...246.2 job-settable-attributes-supported (1setOf type2 keyword).......256.3 document-format-varying-attributes (1setOf type2 keyword)......256.4 printer-message-time (integer(MIN:MAX))........................256.5 printer-message-date-time (dateTime)...........................266.6 printer-xri-supported (1setOf collection)......................266.7 xri-uri-scheme-supported (1setOf uriScheme)....................286.8 xri-authentication-supported (1setOf type2 keyword)............296.9 xri-security-supported (1setOf type2 keyword)..................297 Additional status codes..........................................297.1 client-error-attributes-not-settable (0x0413)..................298 Additional out-of-band values....................................308.1 'not-settable' out-of-band value...............................308.1.1 Encoding of the 'not-settable' out-of-band attribute value...308.2 'delete-attribute' out-of-band value...........................308.2.1 Encoding of the 'delete-attribute' out-of-band value.........318.3 'admin-define' out-of-band attribute value.....................318.3.1 Encoding of the 'admin-define' out-of-band attribute value...329 New Values for Existing Printer Description Attributes...........339.1 operations-supported (1setOf type2 enum).......................3310 Conformance Requirements........................................3311 IANA Considerations.............................................3411.1 Operation Registrations.......................................35   11.2 Additional Enum Attribute Value Registrations for the        "operations-supported" Printer Attribute......................35Hastings, et. al.           Standards Track                     [Page 2]

RFC 3380          IPP: Job and Printer Set Operations     September 200211.3 Attribute Registrations.......................................3511.4 Status code Registrations.....................................3611.5 Out-of-band Attribute Value Registrations.....................3612 Internationalization Considerations.............................3713 Security Considerations.........................................3714 References......................................................3814.1 Normative References..........................................3814.2 Informative References........................................38Appendix A: Allowed Values for Set-Printer-Attributes and Set-Job-               Attributes requests (Normative)........................39Appendix B: Attributes returned from Get-Printer-Supported-Values               (Normative)............................................50Appendix C: Description of the Base IPP Documents (Informative)....55   Authors' Addresses.................................................56   Full Copyright Statement...........................................58Table 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 .......................................53Hastings, et. al.           Standards Track                     [Page 3]

RFC 3380          IPP: Job and Printer Set Operations     September 20021 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 seeAppendix 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 inBCP 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-bitHastings, 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                                     operation4.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 (seeAppendix 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      inAppendix 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 (seesection 8.3 andAppendix 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 notHastings, 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 inAppendix 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 (seesection 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 (seesection 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] Sections1 and8.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],section3.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, seesection 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]section3.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),section4.4 Printer Description Attributes, and any attribute extensions      supported by the Printer.  The value(s) of each Printer attributeHastings, 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] sections3.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' (seesection 8.1) and         the 'client-error-attributes-not-settable' status code (seesection 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 (seesection4.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]section3.1).  Using the Set-Printer-Attributes operation, the administrator   can set arbitrary 'name' values to those "xxx-supported" PrinterHastings, 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 (seesection 8.3 andAppendix 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' (seesection 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, afterHastings, 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 inAppendix 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] Sections1 and8.5).Hastings, et. al.           Standards Track                    [Page 16]

RFC 3380          IPP: Job and Printer Set Operations     September 20024.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 (seesection 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 20024.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], sections3.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],section13.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 (seesection 8.1)         and the 'client-error-attributes-not-settable' status code (seesection 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],ysection 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 (SeeAppendix 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], Sections1 and8.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 (seesection 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.   SeeAppendix 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 20025 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   (seesection 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 (seesection 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        bysection 4.1.1.Hastings, et. al.           Standards Track                    [Page 24]

RFC 3380          IPP: Job and Printer Set Operations     September 20026.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 (seesection4.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 (seesection 7.1).   Standard keyword values are:      'none': There are no settable Job attributes.      'xxx':  Where 'xxx' is any of the keyword attribute names allowed        bysection 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 (seesection 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 (seesection 5.1)   or was explicitly set using the Set-Printer-Attributes operation (seesection 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],section4.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],section4.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 (seesection 5.1) or was explicitly set using the Set-Printer-Attributes   operation (seesection 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 sideHastings, 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]   sections4.4.1,4.4.2, and4.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 aHastings, 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 (seesection 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 (seesection 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 20026.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 (seesection 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 (seesection 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 sections4.1.3 and4.2.3).   The Printer MUST return this error code and the attribute keyword   name(s) and the 'not-settable' out-of-band value (seesection 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 20028 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 sections4.1.3 and4.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.   Seesection 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 valueSection 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 forHastings, 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.   Seesection 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 20029 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-Values10 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 (seesection 5), if         any "xxx-supported" attributes are settable.      2. the "printer-settable-attributes-supported" Printer Description         attribute (seesection 6.1).      3. the 'not-settable' out-of-band value in responses (seesection8.1).      4. the 'client-error-not-settable' status code (seesection 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 (seesection 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 (seesection 8.3) MUST be         supported in the Get-Printer-Supported-Values response for each         such settable attribute (seesection 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 (seesection 6.2).      2. the 'not-settable' out-of-band value in responses (seesection8.1).      3. the 'delete-attribute' out-of-band value in requests (seesection 8.2).      4. the 'client-error-not-settable' status code (seesection 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 200211 IANA Considerations   This section contains registration information for IANA to add to the   various IPP Registries according to the procedures defined inRFC2911[RFC2911], section 6.  The resulting registrations will be   published in thehttp://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 inRFC 2911[RFC2911], section 6.4.   Operations:                                       Ref.      Section:   Set-Printer-AttributesRFC 3380       4.1   Set-Job-AttributesRFC 3380       4.2   Get-Printer-Supported-ValuesRFC 3380       4.311.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 inRFC 2911 [RFC   2911],section 6.1.   Enum Attribute Values:               Value        Ref.      Section:   Set-Printer-Attributes               0x0013RFC 3380       4   Set-Job-Attributes                   0x0014RFC 3380       4   Get-Printer-Supported-Values         0x0015RFC 3380       4Hastings, et. al.           Standards Track                    [Page 35]

RFC 3380          IPP: Job and Printer Set Operations     September 200211.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     noneRFC 3380       6.1     <Any other Printer attribute keyword name>   job-settable-attributes-supported (1setOf type2 keyword)RFC 3380       6.2     noneRFC 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     noneRFC 2911     4.4.3     ssl3RFC 2911     4.4.3     tls'RFC 2911     4.4.3   xri-authentication-supported (1setOf type2 keyword)     noneRFC 2911     4.4.2     requesting-user-nameRFC 2911     4.4.2     basicRFC 2911     4.4.2     digestRFC 2911     4.4.2     certificateRFC 2911     4.4.2Hastings, et. al.           Standards Track                    [Page 36]

RFC 3380          IPP: Job and Printer Set Operations     September 200211.4 Attribute Registrations   The following table lists all of the attributes defined in this   document.  These are to be registered according to the procedures inRFC 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.911.5 Status code Registrations   The following table lists the status code defined in this document.   This is to be registered according to the procedures inRFC 2911[RFC2911], section 6.6.   Status codes:                                     Ref.      Section:   client-error-attributes-not-settable (0x0413)RFC 3380       7.111.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 inRFC 2911[RFC2911] section 6.7.   Value:    Out-of-band Attribute value name:       Ref.      Section:   0x15      not-settableRFC 3380       8.1   0x16      delete-attributeRFC 3380       8.2   0x17      admin-defineRFC 3380       8.3Hastings, et. al.           Standards Track                    [Page 37]

RFC 3380          IPP: Job and Printer Set Operations     September 200212 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 200214 References14.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 2002Appendix 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 (seesection 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 seesection3.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 (seeAppendix 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 seesection3.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-ONLYHastings, 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-ValuesHastings, 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-ValuesHastings, 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-ValuesHastings, 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-ValuesHastings, 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 returnedHastings, 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 2002Appendix 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 clientHastings, 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.comHastings, 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 2002Full 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]

[8]ページ先頭

©2009-2025 Movatter.jp