draft-ietf-ipp-job-printer-set-ops-03.txt   draft-ietf-ipp-job-printer-set-ops-04.txt 
INTERNET-DRAFT T. Hastings Internet Printing Protocol WG T. Hastings
<draft-ietf-ipp-job-printer-set-ops-03.txt> R. Herriot INTERNET-DRAFT R. Herriot
Category: standards track Xerox Corporation <draft-ietf-ipp-job-printer-set-ops-04.txt> Xerox Corporation
Carl Kugler Updates: RFC 2910 and 2911 Carl Kugler
H. Lewis [Target Category: standards track] H. Lewis
IBM Corporation Expires: January 17, 2002 IBM Corporation
January 22, 2001 July 17, 2001
Internet Printing Protocol (IPP): Internet Printing Protocol (IPP):
Job and Printer Set Operations Job and Printer Set Operations
Copyright (C) The Internet Society (2001). All Rights Reserved. Copyright (C) The Internet Society (2001). All Rights Reserved.
Status of this Memo Status of this Memo
This document is an Internet-Draft and is in full conformance with This document is an Internet-Draft and is in full conformance with
all provisions of Section 10 of [RFC2026]. Internet-Drafts are all provisions of Section 10 of [RFC2026]. Internet-Drafts are
working documents of the Internet Engineering Task Force (IETF), its working documents of the Internet Engineering Task Force (IETF), its
areas, and its working groups. Note that other groups may also areas, and its working groups. Note that other groups may also
distribute working documents as Internet-Drafts. distribute working documents as Internet-Drafts.
skipping to change at page 1, line 37 skipping to change at page 1, line 36
material or to cite them other than as "work in progress". material or to cite them other than as "work in progress".
The list of current Internet-Drafts can be accessed at The list of current Internet-Drafts can be accessed at
http://www.ietf.org/ietf/1id-abstracts.txt http://www.ietf.org/ietf/1id-abstracts.txt
The list of Internet-Draft Shadow Directories can be accessed as The list of Internet-Draft Shadow Directories can be accessed as
http://www.ietf.org/shadow.html. http://www.ietf.org/shadow.html.
Abstract Abstract
This document specifies 3 additional OPTIONAL operations for use with This document specifies 3 additional OPTIONAL operations for use with
the Internet Printing Protocol/1.0 (IPP) [RFC2565, RFC2566], IPP/1.1 the Internet Printing Protocol/1.0 (IPP) [RFC2565, RFC2566], and
[RFC2911, RFC2910], and future versions. The end user, operator, and IPP/1.1 [RFC2911, RFC2910]. The end user, operator, and
administrator Set-Job-Attributes and Set-Printer-Attributes administrator Set-Job-Attributes and Set-Printer-Attributes
operations are used to modify IPP Job objects and Printer objects, operations are used to modify IPP Job objects and Printer objects,
respectively. The third administrator Get-Printer-Supported-Values respectively. The third administrator Get-Printer-Supported-Values
operation returns values that the IPP Printer will accept for setting operation returns values that the IPP Printer will accept for setting
its "xxx-supported" attributes. its "xxx-supported" attributes.
Three out-of-band values are defined for use with these operations: Three out-of-band values are defined for use with these operations:
'delete-attribute', 'admin-define', and 'not-settable', along with a 'delete-attribute', 'admin-define', and 'not-settable', along with a
'client-error-attributes-not-settable' status code. 'client-error-attributes-not-settable' status code.
skipping to change at page 3, line 4 skipping to change at page 3, line 4
Nine Printer Description attributes are defined: Nine Printer Description attributes are defined:
printer-settable-attributes-supported (1setOf type2 keyword) printer-settable-attributes-supported (1setOf type2 keyword)
job-settable-attributes-supported (1setOf type2 keyword) job-settable-attributes-supported (1setOf type2 keyword)
document-format-varying-attributes (1setOf type2 keyword) document-format-varying-attributes (1setOf type2 keyword)
printer-message-time (integer(MIN:MAX)) printer-message-time (integer(MIN:MAX))
printer-message-date-time (dateTime) printer-message-date-time (dateTime)
printer-xri-supported (1setOf collection) printer-xri-supported (1setOf collection)
xri-uri-scheme-supported (1setOf uriScheme) xri-uri-scheme-supported (1setOf uriScheme)
xri-authentication-supported (1setOf type2 keyword) xri-authentication-supported (1setOf type2 keyword)
xri-security-supported (1setOf type2 keyword) xri-security-supported (1setOf type2 keyword)
The full 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 [IPP-IIG]
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. A few OPTIONAL operator operations have
been added to IPP/1.1.
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 working group's major decisions.
The "Internet Printing Protocol/1.1: Encoding and Transport" document Table of Contents
is a formal mapping of the abstract operations and attributes defined
in the model document onto HTTP/1.1 [RFC2616]. It 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 a new scheme named 'ipp'
for identifying IPP printers and jobs.
The "Internet Printing Protocol/1.1: Implementer's Guide" document 1 Introduction.....................................................6
gives insight and advice to implementers of IPP clients and IPP
objects. It is intended to help them understand IPP/1.1 and some of
the considerations that may assist them in the design of their client
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 is also included.
The "Mapping between LPD and IPP Protocols" document gives some 2 Terminology......................................................6
advice to implementers of gateways between IPP and LPD (Line Printer 2.1 Conformance Terminology........................................6
Daemon) implementations. 2.2 Other terminology..............................................7
Table of Contents 3 Requirements and Use Cases.......................................7
1 Introduction....................................................8 4 Definition of the Set operations.................................8
4.1 Set-Printer-Attributes Operation...............................9
4.1.1 Settable and READ-ONLY Printer Description attributes.......11
4.1.2 Set-Printer-Attributes Request..............................12
4.1.3 Set-Printer-Attributes Response.............................14
4.2 Set-Job-Attributes Operation..................................15
4.2.1 Settable and READ-ONLY Job Description attributes...........18
4.2.2 Set-Job-Attributes Request..................................18
4.2.3 Set-Job-Attributes Response.................................19
4.3 Get-Printer-Supported-Values Operation........................21
4.3.1 Definition of the usage of the 'admin-define' out-of-band
attribute value...................................................22
2 Terminology.....................................................8 5 New Operation attributes........................................23
2.1 Conformance Terminology......................................9 5.1 printer-message-from-operator (text(127)).....................23
2.2 Other terminology............................................9 5.2 job-message-from-operator (text(127)).........................25
3 Requirements and Use Cases......................................9 6 New Printer Description Attributes..............................26
6.1 printer-settable-attributes-supported (1setOf type2 keyword)..26
6.2 job-settable-attributes-supported (1setOf type2 keyword)......26
6.3 document-format-varying-attributes (1setOf type2 keyword).....27
6.4 printer-message-time (integer(MIN:MAX)).......................27
6.5 printer-message-date-time (dateTime)..........................27
6.6 printer-xri-supported (1setOf collection).....................28
6.7 xri-uri-scheme-supported (1setOf uriScheme)...................30
6.8 xri-authentication-supported (1setOf type2 keyword)...........30
6.9 xri-security-supported (1setOf type2 keyword).................31
4 Definition of the Set operations...............................10 7 Additional status codes.........................................31
4.1 Set-Printer-Attributes Operation............................11 7.1 client-error-attributes-not-settable (0x0413).................31
4.1.1 Settable and READ-ONLY Printer Description attributes.....13
4.1.2 Set-Printer-Attributes Request............................15
4.1.3 Set-Printer-Attributes Response...........................16
4.2 Set-Job-Attributes Operation................................18
4.2.1 Settable and READ-ONLY Job Description attributes.........21
4.2.2 Set-Job-Attributes Request................................21
4.2.3 Set-Job-Attributes Response...............................22
4.3 Get-Printer-Supported-Values Operation......................24
4.3.1 Definition of the usage of the 'admin-define' out-of-band
attribute value...................................................25
5 New Operation attributes.......................................27 8 Additional out-of-band values...................................32
5.1 printer-message-from-operator (text(127))...................27 8.1 'not-settable' out-of-band value..............................32
5.2 job-message-from-operator (text(127)).......................28 8.1.1 Encoding of the 'not-settable' out-of-band attribute value..32
8.2 'delete-attribute' out-of-band value..........................32
8.2.1 Encoding of the 'delete-attribute' out-of-band value........33
8.3 'admin-define' out-of-band attribute value....................33
8.3.1 Encoding of the 'admin-define' out-of-band attribute value..35
6 New Printer Description Attributes.............................29 9 New Values for Existing Printer Description Attributes..........35
6.1 printer-settable-attributes-supported (1setOf type2 keyword)29 9.1 operations-supported (1setOf type2 enum)......................35
6.2 job-settable-attributes-supported (1setOf type2 keyword)....30
6.3 document-format-varying-attributes (1setOf type2 keyword)...30
6.4 printer-message-time (integer(MIN:MAX)).....................31
6.5 printer-message-date-time (dateTime)........................31
6.6 printer-xri-supported (1setOf collection)...................32
6.7 xri-uri-scheme-supported (1setOf uriScheme).................34
6.8 xri-authentication-supported (1setOf type2 keyword).........35
6.9 xri-security-supported (1setOf type2 keyword)...............35
7 Additional status codes........................................35 10 Conformance Requirements.......................................35
7.1 'client-error-attributes-not-settable' (0x0413).............35
8 Additional out-of-band values..................................36 11 IANA Considerations............................................37
8.1 'not-settable' out-of-band value............................36 11.1 Operation Registrations......................................37
8.1.1 Encoding of the 'not-settable' out-of-band attribute value37 11.2 Additional Enum Attribute Value Registrations for the
8.2 'delete-attribute' out-of-band value........................37 "operations-supported" Printer Attribute..........................37
8.2.1 Encoding of the 'delete-attribute' out-of-band value......37 11.3 Attribute Registrations......................................38
8.3 'admin-define' out-of-band attribute value..................38 11.4 Status code Registrations....................................38
8.3.1 Encoding of the 'admin-define' out-of-band attribute value39 11.5 Out-of-band Attribute Value Registrations....................39
9 Conformance Requirements.......................................39
10 IANA Considerations............................................41 12 Internationalization Considerations............................39
10.1 Operation Registrations.....................................41
10.2 Attribute Registrations.....................................41
10.3 Status code Registrations...................................42
10.4 Out-of-band Attribute Value Registrations...................42
11 Internationalization Considerations............................43 13 Security Considerations........................................39
12 Security Considerations........................................43 14 Author's Addresses.............................................40
13 Author's Addresses.............................................44 15 References.....................................................41
14 References.....................................................45 16 Appendix A: Allowed Values for Set-Printer-Attributes and Set-Job-
Attributes requests...............................................43
15 Appendix A: Allowed Values for Set-Printer-Attributes and Set-Job- 17 Appendix B: Attributes returned from Get-Printer-Supported-Values
Attributes requests...............................................46 56
16 Appendix B: Attributes returned from Get-Printer-Supported-Values 18 Appendix C: Description of the Base IPP Documents..............61
60
17 Appendix C: Full Copyright Statement...........................65 19 Appendix D: Full Copyright Statement...........................62
Table of Tables Table of Tables
Table 1 - Operation-Id assignments................................11 Table 1 - Operation-Id assignments.................................9
Table 2 - Job State Transition Table for the Set-Job-Attributes Table 2 - Job State Transition Table for the Set-Job-Attributes
operation .....................................................20 operation .....................................................17
Table 3 - Member attributes of "printer-xri-supported" (1setOf Table 3 - Member attributes of "printer-xri-supported" (1setOf
collection) ...................................................33 collection) ...................................................29
Table 4 - Validation rules for 'Any of "xxx-supported" '..........47 Table 4 - Operation-id assignments................................35
Table 5 - Validation rules for 'From Get-Printer-Supported-Values'48 Table 5 - Validation rules for 'Any of "xxx-supported" '..........44
Table 6 - Values allowed for Job Template Attributes in the Set-Job- Table 6 - Validation rules for 'From Get-Printer-Supported-Values'45
Attributes Operation ..........................................50 Table 7 - Values allowed for Job Template Attributes in the Set-Job-
Table 7 - Values allowed for Job Description Attributes in the Set- Attributes Operation ..........................................47
Job-Attributes Operation ......................................52 Table 8 - Values allowed for Job Description Attributes in the Set-
Table 8 - Values allowed for Printer Job Template Attributes in the Job-Attributes Operation ......................................49
Set-Printer-Attributes Operation ..............................54 Table 9 - Values allowed for Printer Job Template Attributes in the
Table 9 - Values allowed for Printer Description Attributes in the Set-Printer-Attributes Operation ..............................51
Set-Printer-Attributes Operation ..............................57 Table 10 - Values allowed for Printer Description Attributes in the
Table 10 - Printer Job Template Attributes returned from Get-Printer- Set-Printer-Attributes Operation ..............................53
Supported-Values ..............................................61
Table 11 - Printer Job Template Attributes returned from Get-Printer- Table 11 - Printer Job Template Attributes returned from Get-Printer-
Supported-Values ..............................................61 Supported-Values ..............................................57
Table 12 - Printer Description Attributes returned from Get-Printer- Table 12 - Printer Job Template Attributes returned from Get-Printer-
Supported-Values ..............................................62 Supported-Values ..............................................57
Table 13 - Printer Job Template Attributes returned from Get-Printer- Table 13 - Printer Description Attributes returned from Get-Printer-
Supported-Values ..............................................62 Supported-Values ..............................................58
Table 14 - Printer Job Template Attributes returned from Get-Printer- Table 14 - Printer Job Template Attributes returned from Get-Printer-
Supported-Values ..............................................63 Supported-Values ..............................................58
Table 15 - Printer Description Attributes returned from Get-Printer- Table 15 - Printer Job Template Attributes returned from Get-Printer-
Supported-Values ..............................................64 Supported-Values ..............................................59
Table 16 - Printer Description Attributes returned from Get-Printer-
Supported-Values ..............................................60
1 Introduction 1 Introduction
This document is an OPTIONAL extension to IPP/1.0 [RFC2565, RFC2566]
and IPP/1.1 [RFC2911, RFC2910]. For a description of the base IPP
documents see section 18.
The Internet Printing Protocol (IPP) is an application level protocol The Internet Printing Protocol (IPP) is an application level protocol
that can be used for distributed printing using Internet tools and that can be used for distributed printing using Internet tools and
technologies. IPP version 1.1 [RFC2911, RFC2910] focuses on end user technologies. IPP version 1.1 [RFC2911, RFC2910] focuses on end user
functionality with a few administrative operations included. This functionality with a few administrative operations included. This
document defines additional OPTIONAL end user, operator, and document defines additional OPTIONAL end user, operator, and
administrator Set-Job-Attributes and Set-Printer-Attributes administrator Set-Job-Attributes and Set-Printer-Attributes
operations used to modify IPP Job objects and Printer objects, operations used to modify IPP Job objects and Printer objects,
respectively. It also defines a third administrator Get-Printer- respectively. It also defines a third Get-Printer-Supported-Values
Supported-Values operation that returns values that the IPP Printer administrator operation that returns values that the IPP Printer will
will accept for setting its "xxx-supported" attributes. The Get- accept for setting its "xxx-supported" attributes. The Get-Printer-
Printer-Supported-Values operation MUST be supported, if the Supported-Values operation MUST be supported, if the implementation
implementation supports setting any "xxx-supported" Printer supports setting any "xxx-supported" Printer attributes using the
attributes using the Set-Printer-Attributes operation. Set-Printer-Attributes operation.
Three out-of-band values are defined for use with these three Three out-of-band values are defined for use with these three
operations: 'delete-attribute' for deleting Job attributes with the operations: 'delete-attribute' for deleting Job attributes with the
Set-Job-Attributes request, 'not-settable' for use in either the Set- Set-Job-Attributes request, 'not-settable' for use in either the Set-
Job-Attributes or Set-Printer-Attributes responses, and 'admin- Job-Attributes or Set-Printer-Attributes responses, and 'admin-
define' for use in the Get-Printer-Supported-Values response. define' for use in the Get-Printer-Supported-Values response.
Two operation attributes: "printer-message-from-operator" (text) and Two operation attributes: "printer-message-from-operator" (text) and
"job-message-from-operator" (text) are defined to set the "job-message-from-operator" (text) are defined to set the
corresponding IPP/1.1 Printer and Job Description attributes with the corresponding IPP/1.1 Printer and Job Description attributes with the
same names. These operation attributes may be used with any same names. These operation attributes may be used with any
operation that affect the Printer or Job object for which an operation that affect the Printer or Job object for which an
operation might want to indicate a message. For the Set-Job- operation might want to indicate a message. For the Set-Job-
Attributes and Set-Printer-Attributes operations, the client MUST Attributes and Set-Printer-Attributes operations, the client MUST
explicitly set them, rather than using these operation attributes. explicitly set them, rather than using these operation attributes.
A Printer implementation can make the value of some attributes A Printer implementation can make the value of some attributes
dependent on the document-format, e.g. "resolution-supported". dependent on the document-format, e.g. "resolution-supported".
This document is an extension to IPP/1.0 [RFC2565, RFC2566] and
IPP/1.1 [RFC2911, RFC2910], and future versions.
2 Terminology 2 Terminology
This section defines terminology used throughout this document. This section defines terminology used throughout this document.
2.1 Conformance Terminology 2.1 Conformance Terminology
Capitalized terms, such as MUST, MUST NOT, REQUIRED, SHOULD, SHOULD Capitalized terms, such as MUST, MUST NOT, REQUIRED, SHOULD, SHOULD
NOT, MAY, NEED NOT, and OPTIONAL, have special meaning relating to NOT, MAY, NEED NOT, and OPTIONAL, have special meaning relating to
conformance. These terms are defined in [RFC2911] section 12.1 on conformance as defined in RFC 2119 [RFC2119] and [RFC2911] section
conformance terminology, most of which is taken from RFC 2119 12.1. If an implementation supports the extension defined in this
[RFC2119]. document, then these terms apply; otherwise, they do not. These
terms define conformance to this document only; they do not affect
The following specialization of these terms apply to this document: conformance to other documents, unless explicitly stated otherwise.
REQUIRED: if an implementation supports the extensions described in
this document, it MUST support a REQUIRED feature.
OPTIONAL: if an implementation supports the extensions described in
this document, it MAY support an OPTIONAL feature.
2.2 Other terminology 2.2 Other terminology
This document uses terms such as Job object (or Job), IPP Printer This document uses terms such as Job object (or Job), IPP Printer
object (or Printer), "operation", "request", response", "attributes", object (or Printer), "operation", "request", response", "attributes",
"keywords", and "support". These terms have special meaning and are "keywords", and "support". These terms have special meaning and are
defined in the model terminology [RFC2911] section 12.2. The defined in the model terminology [RFC2911] section 12.2. The
following additional terms are introduced in this document: following additional terms are introduced in this document:
READ-ONLY: used in an attribute definition document to indicate that READ-ONLY: used in an attribute definition document to indicate that
the attribute MUST NOT be settable using an IPP protocol Set the attribute MUST NOT be settable using an IPP protocol Set
operation. In other words, the attribute is not settable by operation. In other words, the attribute is not settable by
definition. definition.
not-settable: an implementation does not support setting an not-settable: an implementation does not support setting an
attribute (whether or not the attribute's definition is READ-ONLY). attribute (whether or not the attribute's definition is READ-
ONLY).
3 Requirements and Use Cases 3 Requirements and Use Cases
The following requirements and usage are intended to be met by the The following requirements and usage are intended to be met by the
specification in this document. specification in this document.
1. The end-user and the operator need a way to modify a Job that is in 1. The end-user and the operator need a way to modify a Job that is
the 'pending' or 'pending-held' state. in the 'pending' or 'pending-held' state.
Usage: The end-user discovers that he/she forgot to include a Usage: The end-user discovers that he/she forgot to include a
print instruction, such as "finishings" = 'staple' after submitting print instruction, such as "finishings" = 'staple' after
a job. Rather than canceling the job and resubmitting it to the submitting a job. Rather than canceling the job and resubmitting
same IPP Printer, the end-user is able to modify the job on the IPP it to the same IPP Printer, the end-user is able to modify the job
Printer. on the IPP Printer.
The operator needs to modify a job because it is requesting a 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 particular kind of media for which there is no more, but the
is to print the job on a comparable medium. policy is to print the job on a comparable medium.
2. The system administrator needs a way to re-configure or change the 2. The system administrator needs a way to re-configure or change the
policy of the IPP Printer remotely. policy of the IPP Printer remotely.
Usage: The system administrator is adding additional named media Usage: The system administrator is adding additional named media
to the supported media list (setting 'name' values to the "media- to the supported media list (setting 'name' values to the "media-
supported" Printer attribute). supported" Printer attribute).
The system administrator is reducing the capability of the IPP The system administrator is reducing the capability of the IPP
Printer by removing one of the operations from the supported Printer by removing one of the operations from the supported
skipping to change at page 10, line 31 skipping to change at page 8, line 20
administrative client needs to be able to display to an administrative client needs to be able to display to an
administrator that the implementation is capable of being administrator that the implementation is capable of being
reconfigured to support Cancel-Job once again. reconfigured to support Cancel-Job once again.
The system administrator is remotely configuring the IPP Printer The system administrator is remotely configuring the IPP Printer
after installing it, and so is replacing the Printer Description after installing it, and so is replacing the Printer Description
attributes that have the out-of-band 'no-value' value (see attributes that have the out-of-band 'no-value' value (see
[RFC2911] section 4.1) with the proper values. [RFC2911] section 4.1) with the proper values.
The operator is changing the media loaded in the input tray and so The operator is changing the media loaded in the input tray and so
is replacing the "media-ready" Job Template Printer attribute value is replacing the "media-ready" Job Template Printer attribute
with the proper values value with the proper values
4 Definition of the Set operations 4 Definition of the Set operations
The Set-Printer-Attributes operation (as are all Printer operations) The Set-Printer-Attributes operation (as are all Printer operations)
are directed at Printer objects. A client MUST always supply the are directed at Printer objects. A client MUST always supply the
"printer-uri" operation attribute in order to identify the correct "printer-uri" operation attribute in order to identify the correct
target of the operation. These descriptions assume all of the common target of the operation. These descriptions assume all of the common
semantics of IPP/1.1 Model and Semantics document [RFC2911] section semantics of IPP/1.1 Model and Semantics document [RFC2911] section
3.1. 3.1.
skipping to change at page 11, line 26 skipping to change at page 9, line 16
Operation Name Operation Brief description Operation Name Operation Brief description
-Id -Id
Set-Printer- 0x0013 Sets attribute values of the target Set-Printer- 0x0013 Sets attribute values of the target
Attributes Printer object Attributes Printer object
Set-Job-Attributes 0x0014 Sets attribute values of the target Set-Job-Attributes 0x0014 Sets attribute values of the target
Job object Job object
Get-Printer- 0x0015 Gets values that are valid for Get-Printer- Gets values that are valid for
Supported-Values setting "xxx-supported" attributes Supported-Values 0x0015 setting "xxx-supported" attributes
using the Set-Printer-Attributes using the Set-Printer-Attributes
operation operation
4.1 Set-Printer-Attributes Operation 4.1 Set-Printer-Attributes Operation
This OPTIONAL operation allows a client to set the values of the This OPTIONAL operation allows a client to set the values of the
attributes of a Printer object. In the request, the client supplies attributes of a Printer object. In the request, the client supplies
the set of Printer keyword attribute names and values that are to be the set of Printer keyword attribute names and values that are to be
set. In the response, the Printer object returns success or rejects set. In the response, the Printer object returns success or rejects
the entire request with indications of which attribute or attributes the entire request with indications of which attribute or attributes
could not be set. could not be set.
The Printer object validates the client-supplied attributes in the The Printer object validates the client-supplied attributes in the
Set-Printer-Attributes request. For an attribute to validate it MUST Set-Printer-Attributes request. For an attribute to validate it MUST
meet all of the following rules: meet all of the following rules:
1. The number of attributes supplied by the client MUST NOT exceed the 1. The number of attributes supplied by the client MUST NOT exceed
maximum number that the Printer supports in a Set-Printer- the maximum number that the Printer supports in a Set-Printer-
Attributes request. A Printer MUST accept at least one attribute, Attributes request. A Printer MUST accept at least one attribute,
but SHOULD accept a reasonable number in a single Set-Printer- but SHOULD accept a reasonable number in a single Set-Printer-
Attributes request. Attributes request.
Note: There is no way for the client to determine the maximum Note: There is no way for the client to determine the maximum
number of attributes that the Printer supports in a Set-Printer- number of attributes that the Printer supports in a Set-Printer-
Attributes request, except to try a reasonable number. Attributes request, except to try a reasonable number.
2. The Printer MUST support the attribute. 2. The Printer MUST support the attribute.
skipping to change at page 12, line 28 skipping to change at page 10, line 14
4. The attribute MUST be settable in this implementation. 4. The attribute MUST be settable in this implementation.
5. The Printer MUST support the value according to the rules defined 5. The Printer MUST support the value according to the rules defined
in Appendix A, i.e., each value of each supplied "xxx" attribute in Appendix A, i.e., each value of each supplied "xxx" attribute
MUST be validated against a value of a corresponding "xxx- MUST be validated against a value of a corresponding "xxx-
supported" Printer attribute. One of those rules permits an supported" Printer attribute. One of those rules permits an
administrator to set arbitrary 'name' values to those "xxx- administrator to set arbitrary 'name' values to those "xxx-
supported" Printer attributes that include the 'name' attribute supported" Printer attributes that include the 'name' attribute
syntax if the implementation supports the 'admin-define' out-of- syntax if the implementation supports the 'admin-define' out-of-
band value for that "xxx-supported" attribute (see section 15 and band value for that "xxx-supported" attribute (see section 16 and
8.3). 8.3).
6. The attribute's values MUST NOT conflict with the values of other 6. The attribute's values MUST NOT conflict with the values of other
Printer attributes, including ones being set in this same Printer attributes, including ones being set in this same
operation. operation.
If any of the supplied attributes does not validate, the Printer If any of the supplied attributes does not validate, the Printer
object MUST reject the entire operation; the Printer object MUST NOT object MUST reject the entire operation; the Printer object MUST NOT
partially set some of the supplied attributes. In other words, after partially set some of the supplied attributes. In other words, after
the operation, all the supplied attributes MUST be set or none of the operation, all the supplied attributes MUST be set or none of
skipping to change at page 18, line 31 skipping to change at page 15, line 47
"document-format" operation attribute used when setting a Job object, "document-format" operation attribute used when setting a Job object,
the operation can add an attribute to the (Job) object, the 'delete- the operation can add an attribute to the (Job) object, the 'delete-
attributes' out-of-band value is permitted to remove an attribute, attributes' out-of-band value is permitted to remove an attribute,
and the validation is the same as the Job Creation operations (Print- 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" Job, Print-URI, and Create-Job), i.e., depends on the "xxx-supported"
Printer Description attributes (see [RFC2911] section 3.1). Using Printer Description attributes (see [RFC2911] section 3.1). Using
the Set-Printer-Attributes operation, the administrator can set the Set-Printer-Attributes operation, the administrator can set
arbitrary 'name' values to those "xxx-supported" Printer attributes arbitrary 'name' values to those "xxx-supported" Printer attributes
that include the 'name' attribute syntax if the implementation that include the 'name' attribute syntax if the implementation
supports the 'admin-define' out-of-band value for that "xxx- supports the 'admin-define' out-of-band value for that "xxx-
supported" attribute (see section 15 and 8.3). However, the Set-Job- supported" attribute (see section 16 and 8.3). However, the Set-Job-
Attributes cannot be used to add unsupported names to the Job object. 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 If a client supplies a job attribute in a Set-Job-Attributes request
that the Printer supports, and the job was originally submitted that the Printer supports, and the job was originally submitted
without supplying that attribute, the Printer adds the attribute to without supplying that attribute, the Printer adds the attribute to
the Job object. the Job object.
If the client supplies a job attribute with the "out-of-band" value If the client supplies a job attribute with the "out-of-band" value
'delete-attribute' (see section 8.2), then the Printer MUST remove 'delete-attribute' (see section 8.2), then the Printer MUST remove
the attribute and all of its values from the Job object, if present. the attribute and all of its values from the Job object, if present.
skipping to change at page 20, line 8 skipping to change at page 17, line 11
READ-ONLY "job-state" attribute has the values shown in Table 2. The 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 job's current state MUST affect whether the IPP object accepts or
rejects the request. For example, in the case where the operation rejects the request. For example, in the case where the operation
creates a request for unavailable resources, the Job transitions to a creates a request for unavailable resources, the Job transitions to a
new state. Table 2 shows the allowed behaviors in each job state and new state. Table 2 shows the allowed behaviors in each job state and
the transitions. the transitions.
Table 2 - Job State Transition Table for the Set-Job-Attributes Table 2 - Job State Transition Table for the Set-Job-Attributes
operation operation
Current "job- New "job- IPP object's response status code Current New P object's response status code
state" state" and action: "job-state" "job-state" Iand "action":
'pending' 'pending' 'successful-ok' 'pending' 'pending' 'successful-ok'
'pending' 'pending-held' 'successful-ok' - needed resources 'pending' 'pending-held' 'successful-ok' - needed resources
are not ready are not ready
'pending-held' 'pending-held' 'successful-ok' 'pending-held' 'pending-held' 'successful-ok'
'pending-held' 'pending' 'successful-ok' - needed resources 'pending-held' 'pending' 'successful-ok' - needed resources
are ready are ready
skipping to change at page 33, line 8 skipping to change at page 29, line 8
such as SLP or LDPA, by using suitable delimiting characters to such as SLP or LDPA, by using suitable delimiting characters to
separate member attributes of the collection and/or terminating separate member attributes of the collection and/or terminating
collection values. See [svrloc-printer] and [ldap-printer]. collection values. See [svrloc-printer] and [ldap-printer].
The member attributes of the "printer-xri-supported" (1setOf The member attributes of the "printer-xri-supported" (1setOf
collection) are given in Table 3. collection) are given in Table 3.
Table 3 - Member attributes of "printer-xri-supported" (1setOf Table 3 - Member attributes of "printer-xri-supported" (1setOf
collection) collection)
Member attribute client Printer Member attribute client
MUST MUST MUST MUST
supply support supply support
xri-uri (uri) yes yes xri-uri (uri) yes yes
xri-authentication (1setOf type2 keyword) yes yes xri-authentication (1setOf type2 keyword) yes yes
xri-security (1setOf type2 keyword) yes yes xri-security (1setOf type2 keyword) yes yes
Each collection value MUST contain a single unique value for the Each collection value MUST contain a single unique value for the
skipping to change at page 33, line 45 skipping to change at page 29, line 45
semantically, but in a different form. semantically, but in a different form.
A client can query what member attribute values can be set by A client can query what member attribute values can be set by
supplying the three attribute names: "xri-uri-scheme-supported", supplying the three attribute names: "xri-uri-scheme-supported",
"xri-authentication-supported", and "xri-security-supported" in a "xri-authentication-supported", and "xri-security-supported" in a
Get-Printer-Supported-Values request and getting back the uriScheme Get-Printer-Supported-Values request and getting back the uriScheme
and type2 keyword values that can be set. Since the "printer-xri- and type2 keyword values that can be set. Since the "printer-xri-
supported", "uri-authentication-supported", and "uri-security- supported", "uri-authentication-supported", and "uri-security-
supported" attributes are READ-ONLY, they are not queriable with the supported" attributes are READ-ONLY, they are not queriable with the
Get-Printer-Supported-Values operation (see section 4.3). See Table Get-Printer-Supported-Values operation (see section 4.3). See Table
15. 16.
When performing a Set-Printer-Attributes operation, if there are When performing a Set-Printer-Attributes operation, if there are
multiple values for the "xri-authentication" and/or "xri-security" multiple values for the "xri-authentication" and/or "xri-security"
member attributes, the Printer MUST set the corresponding three READ- member attributes, the Printer MUST set the corresponding three READ-
ONLY attributes with all possible combinations of values. For ONLY attributes with all possible combinations of values. For
example, setting the "printer-xri-supported" with the following two example, setting the "printer-xri-supported" with the following two
collection values where the first URI has both 'basic' and 'digest' collection values where the first URI has both 'basic' and 'digest'
authentication: authentication:
"printer-xri-supported = "printer-xri-supported =
skipping to change at page 35, line 40 skipping to change at page 31, line 31
A Printer MUST support this attribute if it supports setting the A Printer MUST support this attribute if it supports setting the
"printer-xri-supported" (1setOf collection) with the Set-Printer- "printer-xri-supported" (1setOf collection) with the Set-Printer-
Attributes operation. Attributes operation.
7 Additional status codes 7 Additional status codes
This section defines new status codes used by the operations defined This section defines new status codes used by the operations defined
in this document. in this document.
7.1 'client-error-attributes-not-settable' (0x0413) 7.1 client-error-attributes-not-settable (0x0413)
The Set-Printer-Attributes or Set-Job-Attributes operation failed The Set-Printer-Attributes or Set-Job-Attributes operation failed
because one or more of the specified attributes cannot be set either 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 because the attribute is defined to be READ-ONLY or the attribute is
not settable in this implementation (see sections 4.1.3 and 4.2.3), not settable in this implementation (see sections 4.1.3 and 4.2.3),
the Printer MUST return this error code and the attribute keyword the Printer MUST return this error code and the attribute keyword
name(s) and the 'not-settable' out-of-band value (see section 8.1) in name(s) and the 'not-settable' out-of-band value (see section 8.1) in
the Unsupported Attributes Group(see [RFC2911] section 3.1.7) for all the Unsupported Attributes Group(see [RFC2911] section 3.1.7) for all
of the attributes that could not be set. When the Printer returns 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 this status, it MUST NOT change any of the attributes supplied in the
skipping to change at page 39, line 23 skipping to change at page 35, line 11
usage of the 'admin-define' out-of-band attribute value in any "xxx- usage of the 'admin-define' out-of-band attribute value in any "xxx-
supported" attribute returned in a Get-Printer-Supported-Values supported" attribute returned in a Get-Printer-Supported-Values
response that is defined to include the 'name' attribute syntax. response that is defined to include the 'name' attribute syntax.
8.3.1 Encoding of the 'admin-define' out-of-band attribute value 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 The encoding of the 'admin-define' out-of-band attribute value is
0x17 (see [RFC2910]). The value-length MUST be 0 and the value 0x17 (see [RFC2910]). The value-length MUST be 0 and the value
empty. empty.
9 Conformance Requirements 9 New Values for Existing Printer Description Attributes
This section contains those attributes for which additional values
are added.
9.1 operations-supported (1setOf type2 enum)
The following "operation-id" values are added in order to support the
new operations defined in this document:
Table 4 - Operation-id assignments
Value Operation Name
0x0013 Set-Printer-Attributes
0x0014 Set-Job-Attributes
0x0015 Get-Printer-Supported-Values
10 Conformance Requirements
This section specifies the conformance requirements for clients and This section specifies the conformance requirements for clients and
IPP objects. IPP objects.
Both the Set-Job-Attributes and the Set-Printer-Attributes operations Both the Set-Job-Attributes and the Set-Printer-Attributes operations
defined in the document are OPTIONAL for an IPP object to support. defined in the document are OPTIONAL for an IPP object to support.
Either one MAY be supported without the other or both MAY be Either one MAY be supported without the other or both MAY be
supported. However, if the Set-Printer-Attributes operation is supported. However, if the Set-Printer-Attributes operation is
supported, then the Get-Printer-Supported-Values operation MUST be supported, then the Get-Printer-Supported-Values operation MUST be
supported if any "xxx-supported" attributes are settable. Otherwise, supported if any "xxx-supported" attributes are settable. Otherwise,
skipping to change at page 41, line 17 skipping to change at page 37, line 9
Printer Description attributes. If both the "printer-message-time" Printer Description attributes. If both the "printer-message-time"
(integer) and the "printer-current-time" (dateTime) (see [RFC2911] (integer) and the "printer-current-time" (dateTime) (see [RFC2911]
section 4.4.30) attributes are supported, then the "printer-message- section 4.4.30) attributes are supported, then the "printer-message-
date-time" (dateTime) Printer Description attribute MUST be date-time" (dateTime) Printer Description attribute MUST be
supported. supported.
As with all out-of-band values, a client or a Printer MUST NOT use an 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 out-of-band value unless the definition document for the attribute in
an operation request and/or response explicitly allows such usage. an operation request and/or response explicitly allows such usage.
10 IANA Considerations 11 IANA Considerations
This section contains the exact information for IANA to add to the This section contains registration information for IANA to add to the
IPP Registries according to the procedures defined in RFC 2911 various IPP Registries according to the procedures defined in RFC
[RFC2911] section 6. 2911 [RFC2911] section 6.
Note to RFC Editors: Replace RFC NNNN below with the RFC number for Note to RFC Editors: Replace RFC NNNN below with the RFC number for
this document, so that it accurately reflects the content of the this document, so that it accurately reflects the content of the
information for the IANA Registry. information for the IANA Registry.
10.1 Operation Registrations 11.1 Operation Registrations
The operations defined in this document will be published by IANA
according to the procedures in RFC 2911 [RFC2911] section 6.4 with
the following path:
ftp.isi.edu/iana/assignments/ipp/operations/
The registry entry will contain the following information: The following table lists all of the operations defined in this
document. These are to be registered according to the procedures
defined in RFC 2911 [RFC2911] section 6.4.
Operations: Ref. Section: Operations: Ref. Section:
Set-Printer-Attributes RFC NNNN 4.1 Set-Printer-Attributes RFC NNNN 4.1
Set-Job-Attributes RFC NNNN 4.2 Set-Job-Attributes RFC NNNN 4.2
Get-Printer-Supported-Values RFC NNNN 4.3 Get-Printer-Supported-Values RFC NNNN 4.3
10.2 Attribute Registrations The resulting operation registrations will be published in the
ftp://ftp.iana.org/in-notes/iana/assignments/ipp/operations/
area.
The attributes defined in this document will be published by IANA 11.2 Additional Enum Attribute Value Registrations for the "operations-
according to the procedures in RFC 2911 [RFC2911] section 6.2 with supported" Printer Attribute
the following path:
ftp.isi.edu/iana/assignments/ipp/attributes/ The following table lists all the new enum attribute values defined
in this document as additional type2 enum values for use with the
"operations-supported" Printer Description attribute. These are to be
registered according to the procedures defined in RFC 2911 [RFC 2911]
section 6.1.
The registry entry will contain the following information: Enum Attribute Values: Value Ref. Section:
Set-Printer-Attributes 0x0013 RFC NNNN 4
Set-Job-Attributes 0x0014 RFC NNNN 4
Get-Printer-Supported-Values 0x0015 RFC NNNN 4
The resulting enum attribute value registrations will be published in
the
ftp://ftp.iana.org/in-notes/iana/assignments/ipp/attribute-
values/operations-supported/
area.
11.3 Attribute Registrations
The following table lists all of the attributes defined in this
document. These are to be registered according to the procedures in
RFC 2911 [RFC2911] section 6.2.
Operation attributes: Ref. Section: Operation attributes: Ref. Section:
printer-message-from-operator (text(127)) RFC NNNN 5.1 printer-message-from-operator (text(127)) RFC NNNN 5.1
job-message-from-operator (text(127)) RFC NNNN 5.2 job-message-from-operator (text(127)) RFC NNNN 5.2
Printer Description attributes: Ref. Section: Printer Description attributes: Ref. Section:
printer-settable-attributes-supported (1setOf type2 keyword) printer-settable-attributes-supported (1setOf type2 keyword)
RFC NNNN 6.1 RFC NNNN 6.1
job-settable-attributes-supported (1setOf type2 keyword) job-settable-attributes-supported (1setOf type2 keyword)
RFC NNNN 6.2 RFC NNNN 6.2
document-format-varying-attributes (1setOf type2 keyword) document-format-varying-attributes (1setOf type2 keyword)
RFC NNNN 6.3 RFC NNNN 6.3
printer-message-time (integer(MIN:MAX)) RFC NNNN 6.4 printer-message-time (integer(MIN:MAX)) RFC NNNN 6.4
printer-message-date-time (dateTime) RFC NNNN 6.5 printer-message-date-time (dateTime) RFC NNNN 6.5
printer-xri-supported (1setOf collection) RFC NNNN 6.6 printer-xri-supported (1setOf collection) RFC NNNN 6.6
xri-uri-scheme-supported (1setOf uriScheme) RFC NNNN 6.7 xri-uri-scheme-supported (1setOf uriScheme) RFC NNNN 6.7
xri-authentication-supported (1setOf type2 keyword) 6.8 xri-authentication-supported (1setOf type2 keyword) 6.8
xri-security-supported (1setOf type2 keyword) RFC NNNN 6.9 xri-security-supported (1setOf type2 keyword) RFC NNNN 6.9
10.3 Status code Registrations The resulting attribute registrations will be published in the
ftp://ftp.iana.org/in-notes/iana/assignments/ipp/attributes/
The status codes defined in this document will be published by IANA area.
according to the procedures in RFC 2911 [RFC2911] section 6.6 with
the following path:
ftp.isi.edu/iana/assignments/ipp/status-codes/ 11.4 Status code Registrations
The registry entry will contain the following information: The following table lists the status code defined in this document.
This is to be registered according to the procedures in RFC 2911
[RFC2911] section 6.6.
Status codes: Ref. Section: Status codes: Ref. Section:
'client-error-attributes-not-settable' (0x0413) RFC NNNN 7.1 client-error-attributes-not-settable (0x0413) RFC NNNN 7.1
10.4 Out-of-band Attribute Value Registrations
The out-of-band attribute values defined in this document will be The resulting status code registration will be published in the
published by IANA according to the procedures in RFC 2911 [RFC2911] ftp://ftp.iana.org/in-notes/iana/assignments/ipp/status-codes/
section 6.7 with the following path: area.
ftp.isi.edu/iana/assignments/ipp/out-of-band-attribute-value-tags/ 11.5 Out-of-band Attribute Value Registrations
The registry entry will contain the following information: The following table lists all of the out-of-band attribute values
defined in this document. These are to be registered according to
the procedures in RFC 2911 [RFC2911] section 6.7.
Out-of-band Attribute Values: Ref. Section: Out-of-band Attribute Values: Ref. Section:
'not-settable' out-of-band value RFC NNNN 8.1 'not-settable' out-of-band value RFC NNNN 8.1
'delete-attribute' out-of-band value RFC NNNN 8.2 'delete-attribute' out-of-band value RFC NNNN 8.2
'admin-define' out-of-band attribute value RFC NNNN 8.3 'admin-define' out-of-band attribute value RFC NNNN 8.3
11 Internationalization Considerations The resulting out-of-band attribute value registrations will be
published in the
ftp.iana.org/in-notes/iana/assignments/ipp/out-of-band-attribute-
value-tags/
area.
12 Internationalization Considerations
This document has the same localization considerations as the This document has the same localization considerations as the
[RFC2911]. [RFC2911].
12 Security Considerations 13 Security Considerations
The IPP Model and Semantics document [RFC2911 section 8] discusses The IPP Model and Semantics document [RFC2911 section 8] discusses
high level security requirements (Client Authentication, Server high level security requirements (Client Authentication, Server
Authentication and Operation Privacy). Client Authentication is the Authentication and Operation Privacy). Client Authentication is the
mechanism by which the client proves its identity to the server in a mechanism by which the client proves its identity to the server in a
secure manner. Server Authentication is the mechanism by which the secure manner. Server Authentication is the mechanism by which the
server proves its identity to the client in a secure manner. server proves its identity to the client in a secure manner.
Operation Privacy is defined as a mechanism for protecting operations Operation Privacy is defined as a mechanism for protecting operations
from eavesdropping. from eavesdropping.
skipping to change at page 44, line 7 skipping to change at page 40, line 21
user's Job, such as the "copies" attribute. For example, setting the user's Job, such as the "copies" attribute. For example, setting the
number of copies to a large number. number of copies to a large number.
The general remedy for such malicious user actions against another The general remedy for such malicious user actions against another
user's job is to have strong Client Authentication coupled with user's job is to have strong Client Authentication coupled with
Printer access control to limit the users who have System Printer access control to limit the users who have System
Administrator or Operator privileges who can modify any job and, in Administrator or Operator privileges who can modify any job and, in
addition, store the Client Authentication with each Job so that only addition, store the Client Authentication with each Job so that only
the job owner End User can modify his/her own job. the job owner End User can modify his/her own job.
13 Author's Addresses 14 Author's Addresses
Carl Kugler Carl Kugler
IBM IBM
P.O. Box 1900 P.O. Box 1900
Boulder, CO 80301-9191 Boulder, CO 80301-9191
Phone: (303) 924-5060 Phone: (303) 924-5060
FAX: FAX:
e-mail: kugler@us.ibm.com e-mail: kugler@us.ibm.com
skipping to change at page 44, line 35 skipping to change at page 41, line 4
e-mail: hastings@cp10.es.xerox.com e-mail: hastings@cp10.es.xerox.com
Robert Herriot Robert Herriot
Xerox Corp. Xerox Corp.
3400 Hill View Ave, Building 1 3400 Hill View Ave, Building 1
Palo Alto, CA 94304 Palo Alto, CA 94304
Phone: 650-813-7696 Phone: 650-813-7696
Fax: 650-813-6860 Fax: 650-813-6860
e-mail: robert.herriot@pahv.xerox.com e-mail: robert.herriot@pahv.xerox.com
Harry Lewis Harry Lewis
IBM IBM
P.O. Box 1900 P.O. Box 1900
Boulder, CO 80301-9191 Boulder, CO 80301-9191
Phone: (303) 924-5337 Phone: (303) 924-5337
FAX: FAX:
e-mail: harryl@us.ibm.com e-mail: harryl@us.ibm.com
14 References 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.
15 References
[ipp-coll] [ipp-coll]
deBry, R., , Hastings, T., Herriot, R., "Internet Printing Protocol deBry, R., , Hastings, T., Herriot, R., "Internet Printing Protocol
(IPP): The Collection Attribute Syntax", <draft-ietf-ipp- (IPP): The Collection Attribute Syntax", <draft-ietf-ipp-
collection-02.doc>, work in progress, March 9, 2000. collection-05.txt>, work in progress, July 17, 2001.
[ipp-set2] [ipp-set2]
Kugler, C, Hastings, T., Lewis, H., "Internet Printing Kugler, C, Hastings, T., Lewis, H., "Internet Printing
Protocol/1.1: Job and Printer Administrative Operations", <draft- Protocol/1.1: Job and Printer Administrative Operations", <draft-
ietf-ipp-ops-set2-01.txt>, December 8, 1999. ietf-ipp-ops-set2-02.txt>, July 19, 2000.
[ldap-printer] [ldap-printer]
Fleming, P., Jones, K., Lewis, H., McDonald, I., "Internet Printing Fleming, P., Jones, K., Lewis, H., McDonald, I., "Internet Printing
Protocol (IPP): LDAP Schema for Printer Services", <draft-ietf-ipp- Protocol (IPP): LDAP Schema for Printer Services", <draft-ietf-ipp-
ldap-printer-schema-00.txt>, work in progress, March 8, 2000. ldap-printer-schema-04.txt>, work in progress, December 20, 2000.
[RFC2565] [RFC2565]
Herriot, R., Butler, S., Moore, P., Tuner, R., "Internet Printing Herriot, R., Butler, S., Moore, P., Tuner, R., "Internet Printing
Protocol/1.0: Encoding and Transport", RFC 2565, April 1999. Protocol/1.0: Encoding and Transport", RFC 2565, April 1999.
[RFC2566] [RFC2566]
R. deBry, T. Hastings, R. Herriot, S. Isaacson, P. Powell, R. deBry, T. Hastings, R. Herriot, S. Isaacson, P. Powell,
"Internet Printing Protocol/1.0: Model and Semantics", RFC 2566, "Internet Printing Protocol/1.0: Model and Semantics", RFC 2566,
April 1999. April 1999.
skipping to change at page 46, line 5 skipping to change at page 43, line 5
[RFC2911] [RFC2911]
R. deBry, T. Hastings, R. Herriot, S. Isaacson, P. Powell, R. deBry, T. Hastings, R. Herriot, S. Isaacson, P. Powell,
"Internet Printing Protocol/1.0: Model and Semantics", RFC 2911, "Internet Printing Protocol/1.0: Model and Semantics", RFC 2911,
September 2000. September 2000.
[svrloc-printer] [svrloc-printer]
St. Pierre, P., Isaacson, S., McDonald, I., "Definition of the St. Pierre, P., Isaacson, S., McDonald, I., "Definition of the
Printer Abstract Service Type v2.0", <draft-ietf-svrloc-printer- Printer Abstract Service Type v2.0", <draft-ietf-svrloc-printer-
scheme-06.txt>, work in progress, March 8, 2000. scheme-06.txt>, work in progress, March 8, 2000.
15 Appendix A: Allowed Values for Set-Printer-Attributes and Set-Job- 16 Appendix A: Allowed Values for Set-Printer-Attributes and Set-Job-
Attributes requests Attributes requests
This appendix is a normative part of this document and contains a This appendix is a normative part of this document and contains a
table of all IPP/1.1 attributes. Each row contains: table of all IPP/1.1 attributes. Each row contains:
. an attribute and ? an attribute and
. the values allowed in the Set-Printer-Attributes or Set-Job- ? the values allowed in the Set-Printer-Attributes or Set-Job-
Attributes request for the attribute. The entry in each cell is 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 the name (first few words) of each item below 1, 2, 3, 4a-g, and
5. 5.
The allowed values include the following cases: The allowed values include the following cases:
1.READ-ONLY: the Set-Printer-Attributes or Set-Job-Attributes 1.READ-ONLY: the Set-Printer-Attributes or Set-Job-Attributes
operation MUST NOT change this attribute and MUST reject the operation MUST NOT change this attribute and MUST reject the
entire operation (see section 7.1). entire operation (see section 7.1).
2.Any of "xxx-supported": the Set-Printer-Attributes or Set-Job- 2.Any of "xxx-supported": the Set-Printer-Attributes or Set-Job-
Attributes operation accepts values that are allowed according to Attributes operation accepts values that are allowed according to
the IPP/1.1 rules for validating the value(s) of an "xxx" Printer 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- or Job attribute against the value(s) of the corresponding "xxx-
supported" Printer attribute. Table 4 summarizes those validation supported" Printer attribute. Table 5 summarizes those validation
rules depending on each attribute syntax and value of an "xxx" rules depending on each attribute syntax and value of an "xxx"
attribute supplied in the request and that of the corresponding attribute supplied in the request and that of the corresponding
"xxx-supported" Printer attribute. The "xxx-supported" attribute "xxx-supported" Printer attribute. The "xxx-supported" attribute
syntax type and value(s) are obtained from a Get-Printer- syntax type and value(s) are obtained from a Get-Printer-
Supported-Values response (see the tables in this Appendix). Supported-Values response (see the tables in this Appendix).
Table 4 - Validation rules for 'Any of "xxx-supported" ' Table 5 - Validation rules for 'Any of "xxx-supported" '
Type of "xxx" Type of "xxx- Validates if: Type of "xxx" Type of "xxx- Validates if:
value to be supported" value value to be supported" value
set set
integer rangeOfInteger each value is in one of the integer rangeOfInteger each value is in one of the
"xxx-supported" ranges "xxx-supported" ranges
uri uriScheme each uri scheme matches one uri uriScheme each uri scheme matches one
of the "xxx-supported" of the "xxx-supported"
skipping to change at page 47, line 33 skipping to change at page 44, line 33
type type
For additional non-normative explanatory information see section For additional non-normative explanatory information see section
3.1.2.3 of the "Internet Printing Protocol/1.1: Implementer's 3.1.2.3 of the "Internet Printing Protocol/1.1: Implementer's
Guide" [ipp-iig]). Guide" [ipp-iig]).
3. From Get-Printer-Supported-Values: the Set-Printer-Attributes 3. From Get-Printer-Supported-Values: the Set-Printer-Attributes
operation accepts values that are allowed according to the IPP/1.1 operation accepts values that are allowed according to the IPP/1.1
rules for validating the value(s) of an "xxx" Printer attribute rules for validating the value(s) of an "xxx" Printer attribute
against the value(s) of the corresponding "xxx-supported" Printer against the value(s) of the corresponding "xxx-supported" Printer
attribute. Table 5 summarizes those validation rules depending on attribute. Table 6 summarizes those validation rules depending on
each attribute syntax and value of an "xxx" attribute supplied in each attribute syntax and value of an "xxx" attribute supplied in
the request and that of the corresponding "xxx-supported" Printer the request and that of the corresponding "xxx-supported" Printer
attribute. The "xxx-supported" attribute syntax type and attribute attribute. The "xxx-supported" attribute syntax type and
value(s) are obtained from a Get-Printer-Supported-Values response attribute value(s) are obtained from a Get-Printer-Supported-
(see Appendix B: Attributes returned from Get-Printer-Supported- Values response (see Appendix B: Attributes returned from Get-
Values below). Printer-Supported-Values below).
Table 5 - Validation rules for 'From Get-Printer-Supported-Values' Table 6 - Validation rules for 'From Get-Printer-Supported-Values'
Type of Type of "xxx- Validates if: Type of Type of "xxx- Validates if:
"xxx" supported" value "xxx" supported" value
value to value to
be set be set
integer rangeOfInteger each 'integer' value is in one of integer rangeOfInteger each 'integer' value is in one of
the "xxx-supported" ranges the "xxx-supported" ranges
uri uriScheme the uri scheme of each value uri uriScheme the uri scheme of each value
skipping to change at page 48, line 34 skipping to change at page 45, line 34
value value
any same type each value matches an "xxx- any same type each value matches an "xxx-
supported" value of the same type supported" value of the same type
For additional non-normative explanatory information see section For additional non-normative explanatory information see section
3.1.2.3 of the "Internet Printing Protocol/1.1: Implementer's 3.1.2.3 of the "Internet Printing Protocol/1.1: Implementer's
Guide" [ipp-iig]). Guide" [ipp-iig]).
4. Any value of the proper attribute syntax: the Set-Printer- 4. Any value of the proper attribute syntax: the Set-Printer-
Attributes or Set-Job-Attributes operation accepts any value of the Attributes or Set-Job-Attributes operation accepts any value of
specified attribute syntax. The attribute syntaxes supported are the specified attribute syntax. The attribute syntaxes supported
enumerated below. are enumerated below.
a.Any text(127) a.Any text(127)
b.Any name(127) b.Any name(127)
c.Any uri c.Any uri
d.Any boolean d.Any boolean
e.Any positive integer e.Any positive integer
f.Any dateTime f.Any dateTime
g.1setOf any uri g.1setOf any uri
5. Combination of 'Any of "xxx-supported"' or 'Any name'. 5. Combination of 'Any of "xxx-supported"' or 'Any name'.
If a Printer implementation doesn't want to allow setting values If a Printer implementation doesn't want to allow setting values
indicated in this Appendix as "any xxx", it can make the value be indicated in this Appendix as "any xxx", it can make the value be
not-settable. not-settable.
Table 6 - Values allowed for Job Template Attributes in the Set-Job- Table 7 - Values allowed for Job Template Attributes in the Set-Job-
Attributes Operation Attributes Operation
Job Template Attributes Values allowed for Job Template Attributes Values allowed for
Set Set
job-priority (integer(1:100)) Any of "xxx- job-priority (integer(1:100)) Any of "xxx-
supported" supported"
job-hold-until (type3 keyword | name (MAX)) Any of "xxx- job-hold-until (type3 keyword | name (MAX)) Any of "xxx-
supported" supported"
skipping to change at page 52, line 4 skipping to change at page 49, line 4
supported" supported"
media (type3 keyword | name(MAX)) Any of "xxx- media (type3 keyword | name(MAX)) Any of "xxx-
supported" supported"
printer-resolution (resolution) Any of "xxx- printer-resolution (resolution) Any of "xxx-
supported" supported"
print-quality (type2 enum) Any of "xxx- print-quality (type2 enum) Any of "xxx-
supported" supported"
Table 7 - Values allowed for Job Description Attributes in the Set- Table 8 - Values allowed for Job Description Attributes in the Set-
Job-Attributes Operation Job-Attributes Operation
Job Description Attributes Values allowed for Job Description Attributes Values allowed for
Set Set
job-uri (uri) READ-ONLY job-uri (uri) READ-ONLY
job-id (integer(1:MAX)) READ-ONLY job-id (integer(1:MAX)) READ-ONLY
job-printer-uri (uri) READ-ONLY job-printer-uri (uri) READ-ONLY
skipping to change at page 54, line 4 skipping to change at page 51, line 4
job-k-octets-processed (integer(0:MAX)) READ-ONLY job-k-octets-processed (integer(0:MAX)) READ-ONLY
job-impressions-completed (integer(0:MAX)) READ-ONLY job-impressions-completed (integer(0:MAX)) READ-ONLY
job-media-sheets-completed (integer(0:MAX)) READ-ONLY job-media-sheets-completed (integer(0:MAX)) READ-ONLY
attributes-charset (charset) READ-ONLY attributes-charset (charset) READ-ONLY
attributes-natural-language READ-ONLY attributes-natural-language READ-ONLY
(naturalLanguage) (naturalLanguage)
Table 8 - Values allowed for Printer Job Template Attributes in the Table 9 - Values allowed for Printer Job Template Attributes in the
Set-Printer-Attributes Operation Set-Printer-Attributes Operation
Printer Job Template Attributes Values allowed Printer Job Template Attributes Values allowed
for Set for Set
job-priority-default (integer(1:100)) Any of "xxx- job-priority-default (integer(1:100)) Any of "xxx-
supported" supported"
job-hold-until-default (type3 keyword | name Any of "xxx- job-hold-until-default (type3 keyword | name -
(MAX)) supported" (MAX)) supported"xx
job-sheets-default (type3 keyword | name(MAX)) Any of "xxx- job-sheets-default (type3 keyword | name(MAX)) Any of "xxx-
supported" supported"
multiple-document-handling-default (type2 Any of "xxx- multiple-document-handling-default (type2 -
keyword) supported" keyword) supported"xx
copies-default (integer(1:MAX)) Any of "xxx- copies-default (integer(1:MAX)) Any of "xxx-
supported" supported"
finishings-default (1setOf type2 enum) Any of "xxx- finishings-default (1setOf type2 enum) Any of "xxx-
supported" supported"
sides-default (type2 keyword) Any of "xxx- sides-default (type2 keyword) Any of "xxx-
supported" supported"
skipping to change at page 55, line 11 skipping to change at page 52, line 11
job-priority-supported (integer(1:100)) From Get- job-priority-supported (integer(1:100)) From Get-
Printer- Printer-
Supported-Values Supported-Values
Printer Job Template Attributes Values allowed Printer Job Template Attributes Values allowed
for Set for Set
job-hold-until-supported (1setOf(type3 keyword From Get- job-hold-until-supported (1setOf(type3 keyword From Get-
| name (MAX))) Printer- | name (MAX))) Printer-
Supported-Values Supported-Values
job-sheets-supported (1setOf(type3 keyword | From Get- job-sheets-supported (1setOf(type3 keyword | -
name(MAX))) Printer- name(MAX))) Printer-
Supported-Values Supported-Values
multiple-document-handling-supported (1setOf From Get- multiple-document-handling-supported (1setOf -
type2 keyword) Printer- type2 keyword) FromtGet
Supported-Values Supported-Values
copies-supported (rangeOfInteger(1:MAX)) From Get- copies-supported (rangeOfInteger(1:MAX)) From Get-
Printer- Printer-
Supported-Values Supported-Values
finishings-supported (1setOf type2 enum) From Get- finishings-supported (1setOf type2 enum) From Get-
Printer- Printer-
Supported-Values Supported-Values
skipping to change at page 56, line 7 skipping to change at page 53, line 7
media-supported (1setOf (type3 keyword | From Get- media-supported (1setOf (type3 keyword | From Get-
name(MAX))) Printer- name(MAX))) Printer-
Supported-Values Supported-Values
printer-resolution-supported (1setOf From Get- printer-resolution-supported (1setOf From Get-
resolution) Printer- resolution) Printer-
Supported-Values Supported-Values
Printer Job Template Attributes Values allowed Printer Job Template Attributes Values allowed
for Set for Set
Supported-Values
print-quality-supported (1setOf type2 enum) From Get- print-quality-supported (1setOf type2 enum) From Get-
Printer- Printer-
Supported-Values Supported-Values
media-ready (type3 keyword | name(MAX)) From Get- media-ready (type3 keyword | name(MAX)) From Get-
Printer- Printer-
Supported-Values Supported-Values
Table 9 - Values allowed for Printer Description Attributes in the
Table 10 - Values allowed for Printer Description Attributes in the
Set-Printer-Attributes Operation Set-Printer-Attributes Operation
Printer Description Attributes Values allowed for Printer Description Attributes Values allowed for
Set Set
printer-uri-supported (1setOf uri) READ-ONLY printer-uri-supported (1setOf uri) READ-ONLY
uri-authentication-supported (1setOf type2 READ-ONLY uri-authentication-supported (1setOf type2 READ-ONLY
keyword) keyword)
skipping to change at page 57, line 33 skipping to change at page 54, line 4
supported" from supported" from
Get-Printer- Get-Printer-
Attributes Attributes
xri-authentication (1setOf type2 keyword) any keyword of xri-authentication (1setOf type2 keyword) any keyword of
"xri- "xri-
authentication- authentication-
supported" from supported" from
Get-Printer- Get-Printer-
Attributes Attributes
Printer Description Attributes Values allowed for
Set
xri-security (1setOf type2 keyword) any keyword of xri-security (1setOf type2 keyword) any keyword of
"xri-security- "xri-security-
supported" from supported" from
Get-Printer- Get-Printer-
Attributes Attributes
xri-uri-scheme-supported (1setOf uriScheme) READ-ONLY xri-uri-scheme-supported (1setOf uriScheme) READ-ONLY
xri-authentication-supported (1setOf type2 READ-ONLY xri-authentication-supported (1setOf type2 -ONLY
keyword) keyword) READ
xri-security-supported (1setOf type2 READ-ONLY xri-security-supported (1setOf type2 READ-ONLY
keyword) keyword)
printer-name (name(127)) Any name(127) printer-name (name(127)) Any name(127)
Printer Description Attributes Values allowed for
Set
printer-location (text(127)) Any text(127) printer-location (text(127)) Any text(127)
printer-info (text(127)) Any text(127) printer-info (text(127)) Any text(127)
printer-more-info (uri) Any uri printer-more-info (uri) Any uri
printer-driver-installer (uri) Any uri printer-driver-installer (uri) Any uri
printer-make-and-model (text(127)) Any text(127) printer-make-and-model (text(127)) Any text(127)
skipping to change at page 58, line 34 skipping to change at page 55, line 4
printer-state-message (text(MAX)) READ-ONLY printer-state-message (text(MAX)) READ-ONLY
ipp-versions-supported (1setOf type2 From Get-Printer- ipp-versions-supported (1setOf type2 From Get-Printer-
keyword) Supported-Values keyword) Supported-Values
operations-supported (1setOf type2 enum) From Get-Printer- operations-supported (1setOf type2 enum) From Get-Printer-
Supported-Values Supported-Values
multiple-document-jobs-supported (boolean) From Get-Printer- multiple-document-jobs-supported (boolean) From Get-Printer-
Supported-Values Supported-Values
Printer Description Attributes Values allowed for
Set
Supported-Values
charset-configured (charset) Any of "xxx- charset-configured (charset) Any of "xxx-
supported", use supported", use
"charset-supported" "charset-supported"
charset-supported (1setOf charset) From Get-Printer- charset-supported (1setOf charset) From Get-Printer-
Supported-Values Supported-Values
natural-language-configured Any of "xxx- natural-language-configured Any of "xxx-
(naturalLanguage) supported", use (naturalLanguage) supported", use
"generated-natural- "generated-natural-
language-supported" language-supported"
generated-natural-language-supported From Get-Printer- generated-natural-language-supported From Get-Printer-
(1setOf naturalLanguage) Supported-Values (1setOf naturalLanguage) Supported-Values
Printer Description Attributes Values allowed for
Set
document-format-default (mimeMediaType) Any of "xxx- document-format-default (mimeMediaType) Any of "xxx-
supported" supported"
document-format-supported (1setOf From Get-Printer- document-format-supported (1setOf From Get-Printer-
mimeMediaType) Supported-Values mimeMediaType) Supported-Values
printer-is-accepting-jobs (boolean) READ-ONLY printer-is-accepting-jobs (boolean) READ-ONLY
queued-job-count (integer(0:MAX)) READ-ONLY queued-job-count (integer(0:MAX)) READ-ONLY
skipping to change at page 59, line 31 skipping to change at page 56, line 4
reference-uri-schemes-supported (1setOf From Get-Printer- reference-uri-schemes-supported (1setOf From Get-Printer-
uriScheme) Supported-Values uriScheme) Supported-Values
pdl-override-supported (type2 keyword) From Get-Printer- pdl-override-supported (type2 keyword) From Get-Printer-
Supported-Values Supported-Values
printer-up-time (integer(1:MAX)) READ-ONLY printer-up-time (integer(1:MAX)) READ-ONLY
printer-current-time (dateTime) Any dateTime ** printer-current-time (dateTime) Any dateTime **
Printer Description Attributes Values allowed for
Set
multiple-operation-time-out any positive multiple-operation-time-out any positive
(integer(1:MAX)) integer (integer(1:MAX)) integer
compression-supported (1setOf type3 From Get-Printer- compression-supported (1setOf type3 From Get-Printer-
keyword) Supported-Values keyword) Supported-Values
job-k-octets-supported From Get-Printer- job-k-octets-supported From Get-Printer-
(rangeOfInteger(0:MAX)) Supported-Values (rangeOfInteger(0:MAX)) Supported-Values
job-impressions-supported From Get-Printer- job-impressions-supported From Get-Printer-
(rangeOfInteger(0:MAX)) Supported-Values (rangeOfInteger(0:MAX)) Supported-Values
job-media-sheets-supported From Get-Printer- job-media-sheets-supported -Printer-
(rangeOfInteger(0:MAX)) Supported-Values (rangeOfInteger(0:MAX)) Supported-Values
pages-per-minute (integer(0:MAX)) READ-ONLY pages-per-minute (integer(0:MAX)) READ-ONLY
pages-per-minute-color (integer(0:MAX)) READ-ONLY pages-per-minute-color (integer(0:MAX)) READ-ONLY
Printer Description Attributes Values allowed for
Set
printer-settable-attributes-supported From Get-Printer- printer-settable-attributes-supported From Get-Printer-
(1setOf type2 keyword) Supported-Values (1setOf type2 keyword) Supported-Values
job-settable-attributes-supported (1setOf From Get-Printer- job-settable-attributes-supported (1setOf From Get-Printer-
type2 keyword) Supported-Values type2 keyword) Supported-Values
document-format-varying-attributes (1setOf READ-ONLY document-format-varying-attributes (1setOf READ-ONLY
type2 keyword) type2 keyword)
printer-message-time (integer(MIN:MAX)) READ-ONLY printer-message-time (integer(MIN:MAX)) READ-ONLY
printer-message-date-time(dateTime) READ-ONLY printer-message-date-time(dateTime) READ-ONLY
** - The "printer-current-time" (dateTime) attribute is settable in ** - The "printer-current-time" (dateTime) attribute is settable in
order to allow an administrator to correct an incorrect dateTime or order to allow an administrator to correct an incorrect dateTime or
time zone. time zone.
16 Appendix B: Attributes returned from Get-Printer-Supported-Values 17 Appendix B: Attributes returned from Get-Printer-Supported-Values
This Appendix is a normative part of this document and lists all the This Appendix is a normative part of this document and lists all the
attributes that are possible for an implementation to return in a attributes that are possible for an implementation to return in a
Get-Printer-Supported-Values response, i.e., all the "xxx-supported" Get-Printer-Supported-Values response, i.e., all the "xxx-supported"
attributes that can be supplied in a Set-Printer-Attributes request. attributes that can be supplied in a Set-Printer-Attributes request.
READ-ONLY attributes MUST NOT be returned in a Get-Printer-Supported- READ-ONLY attributes MUST NOT be returned in a Get-Printer-Supported-
Values response and are indicated in the tables as "READ-ONLY - MUST Values response and are indicated in the tables as "READ-ONLY - MUST
NOT be returned." NOT be returned."
For the following attributes, the value allowed by the Set-Printer- For the following attributes, the value allowed by the Set-Printer-
Attributes operation MUST be a single integer value in the range Attributes operation MUST be a single integer value in the range
specified by the value returned by the Get-Printer-Supported-Values specified by the value returned by the Get-Printer-Supported-Values
operation. operation.
Table 10 - Printer Job Template Attributes returned from Get-Printer- Table 11 - Printer Job Template Attributes returned from Get-Printer-
Supported-Values Supported-Values
Printer Job Template Attributes Values Returned Printer Job Template Attributes Values Returned
job-priority-supported (integer(1:100)) rangeOfInteger(1:100) job-priority-supported (integer(1:100)) rangeOfInteger(1:100)
For the following attributes, the value allowed by the Set-Printer- For the following attributes, the value allowed by the Set-Printer-
Attributes operation MUST be a single rangeOfInteger value whose Attributes operation MUST be a single rangeOfInteger value whose
bounds do not exceed those of the range specified by the value bounds do not exceed those of the range specified by the value
returned by the Get-Printer-Supported-Values operation. returned by the Get-Printer-Supported-Values operation.
Table 11 - Printer Job Template Attributes returned from Get-Printer- Table 12 - Printer Job Template Attributes returned from Get-Printer-
Supported-Values Supported-Values
Printer Job Template Attributes Values Returned Printer Job Template Attributes Values Returned
copies-supported (rangeOfInteger(1:MAX)) rangeOfInteger(1:MAX) copies-supported (rangeOfInteger(1:MAX)) rangeOfInteger(1:MAX)
The following table has the same criteria as the last, but is for The following table has the same criteria as the last, but is for
Printer Description attributes. Printer Description attributes.
Table 12 - Printer Description Attributes returned from Get-Printer- Table 13 - Printer Description Attributes returned from Get-Printer-
Supported-Values Supported-Values
Printer Description Attributes Values allowed for Set Printer Description Attributes Values allowed for Set
job-k-octets-supported rangeOfInteger(0:MAX) job-k-octets-supported rangeOfInteger(0:MAX)
(rangeOfInteger(0:MAX)) (rangeOfInteger(0:MAX))
job-impressions-supported rangeOfInteger(0:MAX) job-impressions-supported rangeOfInteger(0:MAX)
(rangeOfInteger(0:MAX)) (rangeOfInteger(0:MAX))
job-media-sheets-supported rangeOfInteger(0:MAX) job-media-sheets-supported rangeOfInteger(0:MAX)
(rangeOfInteger(0:MAX)) (rangeOfInteger(0:MAX))
For the following attributes, the value allowed by the Set-Printer- For the following attributes, the value allowed by the Set-Printer-
Attributes operation MUST be one or more integers and rangeOfInteger Attributes operation MUST be one or more integers and rangeOfInteger
values, such that the integer values described by these integers and values, such that the integer values described by these integers and
rangeOfInteger is the same as or a subset of the integers described rangeOfInteger is the same as or a subset of the integers described
by the integers and rangeOf Integer of value returned by the Get- by the integers and rangeOf Integer of value returned by the Get-
Printer-Supported-Values operation. Printer-Supported-Values operation.
Table 13 - Printer Job Template Attributes returned from Get-Printer- Table 14 - Printer Job Template Attributes returned from Get-Printer-
Supported-Values Supported-Values
Printer Job Template Attributes Values Returned Printer Job Template Attributes Values Returned
number-up-supported (1setOf (integer(1:MAX) 1setOf number-up-supported (1setOf (integer(1:MAX) 1setOf
| rangeOfInteger(1:MAX))) (integer(1:MAX) | | rangeOfInteger(1:MAX))) (integer(1:MAX) |
rangeOfInteger(1:MA rangeOfInteger(1:MA
X)) X))
For the following attributes, the value allowed by the Set-Printer- For the following attributes, the value allowed by the Set-Printer-
Attributes operation MUST be one or more values, where each such Attributes operation MUST be one or more values, where each such
value matches a value returned by the Get-Printer-Supported-Values value matches a value returned by the Get-Printer-Supported-Values
operation. A keyword, enum, boolean, charset, naturalLanguage, operation. A keyword, enum, boolean, charset, naturalLanguage,
uriScheme, mimeMediaType or resolution value matches if it is equal. uriScheme, mimeMediaType or resolution value matches if it is equal.
For Job Template attributes with the attribute syntax 'type3 keyword For Job Template attributes with the attribute syntax 'type3 keyword
| name', any 'name' attribute syntax value matches the 'admin-define' | name', any 'name' attribute syntax value matches the 'admin-define'
out-of-band value, if the implementation allows the administrator to out-of-band value, if the implementation allows the administrator to
set any name values for the attribute. set any name values for the attribute.
Table 14 - Printer Job Template Attributes returned from Get-Printer- Table 15 - Printer Job Template Attributes returned from Get-Printer-
Supported-Values Supported-Values
Printer Job Template Attributes Values Returned Printer Job Template Attributes Values Returned
job-hold-until-supported (1setOf(type3 1setOf (type3 job-hold-until-supported (1setOf(type3 1setOf (type3
keyword | name (MAX))) keyword | 'admin- keyword | name (MAX))) keyword | 'admin-
define') define')
job-sheets-supported (1setOf(type3 keyword 1setOf (type3 job-sheets-supported (1setOf(type3 keyword 1setOf (type3
| name(MAX))) keyword | 'admin- | name(MAX))) keyword | 'admin-
define') define')
multiple-document-handling-supported 1setOf type2 multiple-document-handling-supported
(1setOf type2 keyword) keyword (1setOf type2 keyword) keywordtype2
finishings-supported (1setOf type2 enum) 1setOf type2 enum finishings-supported (1setOf type2 enum) 1setOf type2 enum
page-ranges-supported (boolean) 1setOf boolean ** page-ranges-supported (boolean) 1setOf boolean **
sides-supported (1setOf type2 keyword) 1setOf type2 sides-supported (1setOf type2 keyword) 1setOf type2
keyword keyword
orientation-requested-supported (1setOf 1setOf type2 enum orientation-requested-supported (1setOf 1setOf type2 enum
type2 enum) type2 enum)
skipping to change at page 64, line 5 skipping to change at page 60, line 5
print-quality-supported (1setOf type2 enum) 1setOf type2 enum print-quality-supported (1setOf type2 enum) 1setOf type2 enum
** Note: the Get-Printer-Supported-Values returns a '1setOf boolean' ** Note: the Get-Printer-Supported-Values returns a '1setOf boolean'
so that all possible values are indicated, while Get-Printer- so that all possible values are indicated, while Get-Printer-
Attributes returns only a single 'boolean' value. Attributes returns only a single 'boolean' value.
The following table has the same criteria as the last, but is for The following table has the same criteria as the last, but is for
Printer Description attributes. Printer Description attributes.
Table 15 - Printer Description Attributes returned from Get-Printer- Table 16 - Printer Description Attributes returned from Get-Printer-
Supported-Values Supported-Values
Printer Description Attributes Values allowed for Printer Description Attributes Values allowed for
Set Set
printer-uri-supported (1setOf uri) READ-ONLY - MUST printer-uri-supported (1setOf uri) READ-ONLY - MUST
NOT be returned NOT be returned
uri-authentication-supported (1setOf type2 READ-ONLY - MUST uri-authentication-supported (1setOf type2 READ-ONLY - MUST
keyword) NOT be returned keyword) NOT be returned
skipping to change at page 65, line 28 skipping to change at page 61, line 28
printer-settable-attributes-supported 1setOf type2 printer-settable-attributes-supported 1setOf type2
(1setOf type2 keyword) keyword (1setOf type2 keyword) keyword
job-settable-attributes-supported (1setOf 1setOf type2 job-settable-attributes-supported (1setOf 1setOf type2
type2 keyword) keyword type2 keyword) keyword
** Note: the Get-Printer-Supported-Values returns a '1setOf X' so ** Note: the Get-Printer-Supported-Values returns a '1setOf X' so
that all possible values are indicated, while Get-Printer-Attributes that all possible values are indicated, while Get-Printer-Attributes
returns only a single 'X' value. returns only a single 'X' value.
17 Appendix C: Full Copyright Statement 18 Appendix C: Description of the Base IPP Documents
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 [IPP-IIG]
Mapping between LPD and IPP Protocols [RFC2569]
The "Design Goals for an Internet Printing Protocol" document takes a
broad look at distributed printing functionality, and it enumerates
real-life scenarios that help to clarify the features that need to be
included in a printing protocol for the Internet. It identifies
requirements for three types of users: end users, operators, and
administrators. It calls out a subset of end user requirements that
are satisfied in IPP/1.0 [RFC2566, RFC2565]. A few OPTIONAL operator
operations have been added to IPP/1.1 [RFC2911, RFC2910].
The "Rationale for the Structure and Model and Protocol for the
Internet Printing Protocol" document describes IPP from a high level
view, defines a roadmap for the various documents that form the suite
of IPP specification documents, and gives background and rationale
for the IETF IPP working group's major decisions.
The "Internet Printing Protocol/1.1: Model and Semantics" document
describes a simplified model with abstract objects, their attributes,
and their operations. The model introduces a Printer and a Job. The
Job supports multiple documents per Job. The model document also
addresses how security, internationalization, and directory issues
are addressed.
The "Internet Printing Protocol/1.1: Encoding and Transport" document
is a formal mapping of the abstract operations and attributes defined
in the model document onto HTTP/1.1 [RFC2616]. It also defines the
encoding rules for a new Internet MIME media type called
"application/ipp". This document also defines the rules for
transporting over HTTP a message body whose Content-Type is
"application/ipp". This document defines the 'ipp' scheme for
identifying IPP printers and jobs.
The "Internet Printing Protocol/1.1: Implementer's Guide" document
gives insight and advice to implementers of IPP clients and IPP
objects. It is intended to help them understand IPP/1.1 and some of
the considerations that may assist them in the design of their client
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 is 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.
19 Appendix D: Full Copyright Statement
Copyright (C) The Internet Society (1998,1999,2000,2001). All Rights Copyright (C) The Internet Society (1998,1999,2000,2001). All Rights
Reserved Reserved
This document and translations of it may be copied and furnished to This document and translations of it may be copied and furnished to
others, and derivative works that comment on or otherwise explain it others, and derivative works that comment on or otherwise explain it
or assist in its implementation may be prepared, copied, published or assist in its implementation may be prepared, copied, published
and distributed, in whole or in part, without restriction of any and distributed, in whole or in part, without restriction of any
kind, provided that the above copyright notice and this paragraph are kind, provided that the above copyright notice and this paragraph are
included on all such copies and derivative works. However, this included on all such copies and derivative works. However, this
skipping to change at line 2520 skipping to change at page 63, line 21
The limited permissions granted above are perpetual and will not be The limited permissions granted above are perpetual and will not be
revoked by the Internet Society or its successors or assigns. revoked by the Internet Society or its successors or assigns.
This document and the information contained herein is provided on an This document and the information contained herein is provided on an
"AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
Acknowledgement
Funding for the RFC Editor function is currently provided by the
Internet Society.
 End of changes. 

This html diff was produced by rfcdiff 1.25, available from http://www.levkowetz.com/ietf/tools/rfcdiff/