draft-ietf-ipp-ops-set2-03.txt   draft-ietf-ipp-ops-set2-04.txt 
Internet Printing Protocol WG Carl Kugler Internet Printing Protocol WG Carl Kugler
INTERNET-DRAFT H. Lewis INTERNET-DRAFT H. Lewis
<draft-ietf-ipp-ops-set2-03.txt> IBM Corporation <draft-ietf-ipp-ops-set2-04.txt> IBM Corporation
Updates: RFC 2911 T. Hastings (editor) Updates: RFC 2911, RFC 3380 T. Hastings (editor)
[Target Category: standards track Xerox Corporation [Target Category: standards track Xerox Corporation
Expires: January 17, 2002 July 17, 2001 Expires: January 15, 2005 July 15, 2004
Internet Printing Protocol (IPP): Internet Printing Protocol (IPP):
Job and Printer Administrative Operations Job and Printer Administrative Operations
Copyright (C) The Internet Society (2001). All Rights Reserved. Copyright (C) The Internet Society (2004). 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.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
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.
By submitting this Internet-Draft, we certify that any applicable
patent or other IPR claims of which we are aware have been disclosed,
or will be disclosed, and any of which we become aware will be
disclosed, in accordance with RFC 3668.
Abstract Abstract
This document specifies the following 16 additional OPTIONAL This document specifies the following 16 additional OPTIONAL system
operations for use with the Internet Printing Protocol/1.0 (IPP) administration operations for use with the Internet Printing
[RFC2565, RFC2566] and IPP/1.1 [RFC2910, RFC2911]: Protocol/1.1 (IPP) [RFC2910, RFC2911]:
Printer operations: Job operations: Printer operations: Job operations:
Enable-Printer and Disable-Printer Reprocess-Job Enable-Printer and Disable-Printer Reprocess-Job
Pause-Printer-After-Current-Job Cancel-Current-Job Pause-Printer-After-Current-Job Cancel-Current-Job
Hold-New-Jobs and Release-Held-New- Suspend-Current-Job and Hold-New-Jobs and Release-Held-New-Jobs Suspend-Current-Job
Jobs Resume-Job Deactivate-Printer and Activate-Printer Resume-Job
Deactivate-Printer and Activate- Promote-Job Restart-Printer Promote-Job
Printer Shutdown-Printer and Startup-Printer Schedule-Job-After
Restart-Printer Schedule-Job-After plus a few associated attributes, values, and status codes and
Shutdown-Printer and Startup-Printer using the IPP Printer object to manage printer fan-out and fan-in.
New Job Description attributes: "original-requesting-user-name"
New Printer Description attributes: "subordinate-printers-supported"
and "parent-printers-supported".
New "printer-state-reasons" values: 'hold-new-jobs' and
'deactivated'.
New "job-state-reasons" attribute values: 'job-suspended'.
New Job event keyword: 'job-forwarded-operation-failed'.
New status code: 'server-error-printer-is-deactivated'.
Table of Contents Table of Contents
1 Introduction.....................................................6 1 Introduction.....................................................5
2 Terminology......................................................6 2 Terminology......................................................5
2.1 Conformance Terminology........................................6 2.1 Conformance Terminology........................................5
2.2 Other terminology..............................................6 2.2 Other terminology..............................................5
3 Definition of the Printer Operations.............................7 3 Definition of the Printer Operations.............................6
3.1 The Disable and Enable Printer Operations.....................10 3.1 The Disable and Enable Printer Operations......................8
3.1.1 Disable-Printer Operation...................................10 3.1.1 Disable-Printer Operation....................................8
3.1.2 Enable-Printer Operation....................................11 3.1.2 Enable-Printer Operation.....................................9
3.2 The Pause and Resume Printer Operations.......................11 3.2 The Pause and Resume Printer Operations........................9
3.2.1 Pause-Printer-After-Current-Job operation...................12 3.2.1 Pause-Printer-After-Current-Job operation...................10
3.3 Hold and Release New Jobs operations..........................14 3.3 Hold and Release New Jobs operations..........................12
3.3.1 Hold-New-Jobs operation.....................................15 3.3.1 Hold-New-Jobs operation.....................................12
3.3.2 Release-Held-New-Jobs operation.............................15 3.3.2 Release-Held-New-Jobs operation.............................13
3.4 Deactivate and Activate Printer Operations....................16 3.4 Deactivate and Activate Printer Operations....................13
3.4.1 Deactivate-Printer operation................................16 3.4.1 Deactivate-Printer operation................................13
3.4.2 Activate-Printer operation..................................17 3.4.2 Activate-Printer operation..................................14
3.5 Restart-Printer, Shutdown-Printer, and Startup-Printer operations 3.5 Restart-Printer, Shutdown-Printer, and Startup-Printer operations
17 15
3.5.1 Restart-Printer operation...................................18 3.5.1 Restart-Printer operation...................................15
3.5.2 Shutdown-Printer Operation..................................18 3.5.2 Shutdown-Printer Operation..................................15
3.5.3 Startup-Printer operation...................................19 3.5.3 Startup-Printer operation...................................16
4 Definition of the Job Operations................................20 4 Definition of the Job Operations................................17
4.1 Reprocess-Job Operation.......................................21 4.1 Reprocess-Job Operation.......................................18
4.2 Cancel-Current-Job Operation..................................22 4.2 Cancel-Current-Job Operation..................................19
4.3 Suspend and Resume Job operations.............................23 4.3 Suspend and Resume Job operations.............................20
4.3.1 Suspend-Current-Job operation...............................23 4.3.1 Suspend-Current-Job operation...............................20
4.3.2 Resume-Job operation........................................24 4.3.2 Resume-Job operation........................................21
4.4 Job Scheduling Operations.....................................25 4.4 Job Scheduling Operations.....................................22
4.4.1 Promote-Job operation.......................................25 4.4.1 Promote-Job operation.......................................22
4.4.2 Schedule-Job-After operation................................26 4.4.2 Schedule-Job-After operation................................23
5 Additional status codes.........................................27 5 Additional status codes.........................................24
5.1 'server-error-printer-is-deactivated' (0x050A)................28 5.1 'server-error-printer-is-deactivated' (0x050A)................24
6 Use of Operation Attributes that are Messages from the Operator.28 6 Use of Operation Attributes that are Messages from the Operator.25
7 New Printer Description Attributes..............................31 7 New Printer Description Attributes..............................28
7.1 subordinate-printers-supported (1setOf uri)...................31 7.1 subordinate-printers-supported (1setOf uri)...................28
7.2 parent-printers-supported (1setOf uri)........................31 7.2 parent-printers-supported (1setOf uri)........................28
8 Additional Values for the "printer-state-reasons" Printer 8 Additional Values for the "printer-state-reasons" Printer
Description attribute.............................................32 Description attribute.............................................29
8.1 'hold-new-jobs' value.........................................32 8.1 'hold-new-jobs' value.........................................29
8.2 'deactivated' value...........................................32 8.2 'deactivated' value...........................................29
9 Additional Values for the "job-state-reasons" Job Description 9 Additional Values for the "job-state-reasons" Job Description
attribute.........................................................32 attribute.........................................................29
9.1 'job-suspended' value.........................................33 9.1 'job-suspended' value.........................................30
10 Additional events..............................................33 10 Use of the Printer object to represent IPP Printer Fan-Out and IPP
Printer Fan-In....................................................30
10.1 IPP Printer Fan-Out..........................................30
10.2 IPP Printer Fan-In...........................................31
10.3 Printer object attributes used to represent Printer Fan-Out and
Printer Fan-In....................................................31
10.4 Subordinate Printer URI......................................31
10.5 Printer object attributes used to represent Output Device Fan-
Out 32
10.6 Figures to show all possible configurations..................33
10.7 Forwarding requests..........................................36
10.7.1 Forwarding requests that affect Printer objects............36
10.7.2 Forwarding requests that affect Jobs.......................38
10.8 Additional attributes to help with fan-out...................40
10.8.1 output-device-assigned (name(127)) Job Description attribute -
from [RFC2911].........................................40
10.8.2 original-requesting-user-name (name(MAX)) operation and Job
Description attribute..................................40
10.8.3 requesting-user-name (name(MAX)) operation attribute -
additional semantics...................................40
10.8.4 job-originating-user-name (name(MAX)) Job Description
attribute - additional semantics.......................41
11 Use of the Printer object to represent IPP Printer Fan-Out and IPP 11 Conformance Requirements.......................................41
Printer Fan-In....................................................33
11.1 IPP Printer Fan-Out..........................................33
11.2 IPP Printer Fan-In...........................................34
11.3 Printer object attributes used to represent Printer Fan-Out and
Printer Fan-In....................................................34
11.4 Subordinate Printer URI......................................35
11.5 Printer object attributes used to represent Output Device Fan-
Out 35
11.6 Figures to show all possible configurations..................37
11.7 Forwarding requests..........................................40
11.7.1 Forwarding requests that affect Printer objects............40
11.7.2 Forwarding requests that affect Jobs.......................42
11.8 Additional attributes to help with fan-out...................44
11.8.1 output-device-assigned (name(127)) Job Description attribute -
from [RFC2911].........................................45
11.8.2 original-requesting-user-name (name(MAX)) operation attribute
.......................................................45
12 Conformance Requirements.......................................45 12 Normative References...........................................42
13 IANA Considerations............................................47 13 Informative References.........................................43
13.1 This section contains the registration information for IANA to
add to the various IPP Registries according to the procedures defined
in RFC 2911 [RFC2911] section 6 to cover the definitions in this
document. Attribute Registrations................................47
13.2 Attribute Value Registrations................................48
13.2.1 Additional Keyword Attribute Value Registrations for the "job-
state-reasons" attribute...............................48
13.2.2 Additional Keyword Attribute Value Registrations for the
"printer-state-reasons" attribute......................49
13.3 Additional Enum Attribute Value Registrations for the
"operations-supported" Printer Attribute..........................49
13.4 Additional keyword Attribute Value Registrations for the
"notify-events" Subscription Template Attribute...................50
13.5 Operation Registrations......................................50
13.6 Status code Registrations....................................51
14 Internationalization Considerations............................51 14 IANA Considerations............................................43
15 Security Considerations........................................51 14.1 Attribute Registrations......................................44
14.2 Attribute Value Registrations................................44
14.3 Additional Enum Attribute Value Registrations................45
14.4 Operation Registrations......................................45
14.5 Status code Registrations....................................46
16 Author's Addresses.............................................51 15 Internationalization Considerations............................46
17 References.....................................................52 16 Security Considerations........................................47
18 Summary of Base IPP Documents..................................53 17 Author's Addresses.............................................47
18 IPR Notice.....................................................48
19 Appendix A: Full Copyright Statement...........................55 19 Summary of Base IPP Documents..................................49
20 Full Copyright Statement.......................................50
List of Tables List of Tables
Table 1 - Printer Operation Operation-Id assignments...............9 Table 1 - Printer Operation Operation-Id assignments...............7
Table 2 - Pause and Resume Printer Operations.....................12 Table 2 - Pause and Resume Printer Operations.....................10
Table 3 - State Transition Table for Pause-Printer-After-Current-Job Table 3 - State Transition Table for Pause-Printer-After-Current-Job
operation .....................................................14 operation.....................................................11
Table 4 - Job operation Operation-Id assignments..................21 Table 4 - Job operation Operation-Id assignments..................18
Table 5 - Operation attribute support for Printer Operations......29 Table 5 - Operation attribute support for Printer Operations......26
Table 6 - Operation attribute support for Job operations..........30 Table 6 - Operation attribute support for Job operations..........27
Table 7 - Forwarding operations that affect Printer objects.......41 Table 7 - Forwarding operations that affect Printer objects.......37
Table 8 - Forwarding operations that affect Jobs objects..........43 Table 8 - Forwarding operations that affect Jobs objects..........39
Table 9 - Conformance Requirement Dependencies for Operations.....46 Table 9 - Conformance Requirement Dependencies for Operations.....41
Table 10- Conformance Requirement Dependencies for "printer-state- Table 10- Conformance Requirement Dependencies for "printer-state-
reasons" Values ...............................................47 reasons" Values...............................................42
Table 11- Conformance Requirement Dependencies for "job-state- Table 11- Conformance Requirement Dependencies for "job-state-
reasons" Values ...............................................47 reasons" Values...............................................42
List of Figures List of Figures
Figure 1 - Embedded Printer object................................38 Figure 1 - Embedded Printer object................................34
Figure 2 - Hosted Printer object..................................38 Figure 2 - Hosted Printer object..................................34
Figure 3 - Output Device Fan-Out..................................38 Figure 3 - Output Device Fan-Out..................................34
Figure 4 - Chained IPP Printer Objects............................39 Figure 4 - Chained IPP Printer Objects............................35
Figure 5 - IPP Printer Object Fan-Out.............................39 Figure 5 - IPP Printer Object Fan-Out.............................35
Figure 6 - IPP Printer Object Fan-In..............................40 Figure 6 - IPP Printer Object Fan-In..............................35
1 Introduction 1 Introduction
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 technologies. IPP version 1.1 ([RFC2911, RFC2910]) focuses on end
user functionality with a few administrative operations included. user functionality with a few administrative operations included.
This document defines additional OPTIONAL end user, operator, and This document defines additional OPTIONAL end user, operator, and
administrator operations used to control Jobs and Printers. In administrator operations used to control Jobs and Printers. In
addition, this document extends the semantic model of the Printer addition, this document extends the semantic model of the Printer
object by allowing them to be configured into trees and/or inverted object by allowing them to be configured into trees and/or inverted
trees that represent Printer object Fan-Out and Printer object Fan- trees that represent Printer object Fan-Out and Printer object Fan-
In, respectively. The special case of a tree with only a single In, respectively. The special case of a tree with only a single
Subordinate node represents Chained Printers. This document is a Subordinate node represents Chained Printers. This document is a
registration proposal for an extension to IPP/1.0 and IPP/1.1 registration proposal for an extension to IPP/1.0 and IPP/1.1
following the registration procedures in those documents. following the registration procedures in those documents.
The requirements and use cases for this document are defined in [ipp- The requirements and use cases for this document are defined in
ops-admin-req]. [RFC3239].
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 as defined in RFC 2119 [RFC2119] and [RFC2911] section conformance as defined in RFC 2119 [RFC2119] and [RFC2911] section
12.1. If an implementation supports the extension defined in this 12.1. If an implementation supports the extension defined in this
document, then these terms apply; otherwise, they do not. These document, then these terms apply; otherwise, they do not. These
terms define conformance to this document only; they do not affect terms define conformance to this document only; they do not affect
conformance to other documents, unless explicitly stated otherwise. conformance to other documents, unless explicitly stated otherwise.
2.2 Other terminology 2.2 Other terminology
This document uses terms such as "client", "Printer", "Job", This document uses terms such as "client", "Printer", "Job",
"attributes", "keywords", and "support". These terms have special "attributes", "keywords", "operation" and "support". These terms
meaning and are defined in the model terminology [RFC2911] section have special meaning and are defined in the model terminology
12.2. [RFC2911] section 12.2.
In addition, the following capitalized terms are defined: In addition, the following capitalized terms are defined:
IPP Printer object (or Printer for short) - a software abstraction IPP Printer object (or Printer for short) - a software abstraction
defined by [RFC2911]. defined by [RFC2911].
Printer Operation - an operation whose target is an IPP Printer Printer Operation - an operation whose target is an IPP Printer
object and whose effect is on the Printer object. object and whose effect is on the Printer object.
Output Device - the physical imaging mechanism that an IPP Printer Output Device - the physical imaging mechanism that an IPP Printer
controls. Note: while this term is capitalized in this controls. Note: while this term is capitalized in this
specification (but not in [RFC2911]), there is no formal object specification (but not in [RFC2911]), there is no formal object
called an Output Device defined in this document (or [RFC2911]). called an Output Device defined in this document (or [RFC2911]).
Output Device Fan-Out - a configuration in which an IPP Printer Output Device Fan-Out - a configuration in which an IPP Printer
controls more that one output-device. controls more that one Output Device.
Printer Fan-Out - a configuration in which an IPP Printer object Printer Fan-Out - a configuration in which an IPP Printer object
controls more than one Subordinate IPP Printer object. controls more than one Subordinate IPP Printer object.
Printer Fan-In - a configuration in which an IPP Printer object is Printer Fan-In - a configuration in which an IPP Printer object is
controlled by more than one IPP Printer object. controlled by more than one IPP Printer object.
Subordinate Printer - an IPP Printer object that is controlled by Subordinate Printer - an IPP Printer object that is controlled by
another IPP Printer object. Such a Subordinate Printer MAY have another IPP Printer object. Such a Subordinate Printer MAY have
one or more Subordinate Printers. zero or more Subordinate Printers.
Leaf Printer - a Subordinate Printer that has no Subordinate Leaf Printer - an IPP Printer object that has no Subordinate
Printers. Printers.
Non-Leaf Printer - an IPP Printer object that has one or more Non-Leaf Printer - an IPP Printer object that has one or more
Subordinate Printers. Subordinate Printers. A Non-Leaf Printer is also called a Parent
Printer.
Chained Printer - a Non-Leaf Printer that has exactly one Subordinate Chained Printer - a Non-Leaf Printer that has exactly one Subordinate
Printer. Printer.
Job Creation operations - IPP operations that create a Job object: Job Creation operations - IPP operations that create a Job object:
Print-Job, Print-URI, and Create-Job. Print-Job, Print-URI, and Create-Job.
3 Definition of the Printer Operations 3 Definition of the Printer Operations
All Printer Operations are directed at Printer objects. A client All Printer Operations are directed at Printer objects. A client
MUST always supply the "printer-uri" operation attribute in order to MUST always supply the "printer-uri" operation attribute in order to
identify the correct target of the operation. These descriptions identify the correct target of the operation. These descriptions
skipping to change at page 9, line 6 skipping to change at page 7, line 9
All Printer Operations are directed at Printer objects. A client All Printer Operations are directed at Printer objects. A client
MUST always supply the "printer-uri" operation attribute in order to MUST always supply the "printer-uri" operation attribute in order to
identify the correct target of the operation. These descriptions identify the correct target of the operation. These descriptions
assume all of the common semantics of IPP/1.1 Model and Semantics assume all of the common semantics of IPP/1.1 Model and Semantics
document [RFC2911] section 3.1. document [RFC2911] section 3.1.
The Printer Operations defined in this document are summarized in The Printer Operations defined in this document are summarized in
Table 1: Table 1:
Table 1 - Printer Operation Operation-Id assignments Table 1 - Printer Operation Operation-Id assignments
Operation Name Operation- Brief description Operation Name Operation- Brief description
Id Id
Enable-Printer 0x22 Allows the target Printer to accept Enable-Printer 0x22 Allows the target Printer to accept
Job Creation operations Job Creation operations
Disable-Printer 0x23 Prevents the target Printer from Disable-Printer 0x23 Prevents the target Printer from
accepting Job Creation operations accepting Job Creation operations
Pause-Printer- 0x24 Pause the Printer after the current
Pause-Printer- Pause the Printer after the current
After-Current- job has been sent to the Output After-Current- job has been sent to the Output
Job 0x24 Device. Job Device.
Hold-New-Jobs 0x25 Finishes processing all currently Hold-New-Jobs 0x25 Finishes processing all currently
pending jobs. Any new jobs are pending jobs. Any new jobs are
placed in the 'pending-held' state. placed in the 'pending-held' state.
Release-Held- 0x26 Release all jobs to the 'pending' Release-Held- 0x26 Release all jobs to the 'pending'
New-Jobs state that had been held by the New-Jobs state that had been held by the
effect of a previous Hold-New-Jobs effect of a previous Hold-New-Jobs
operation and condition the Printer operation and condition the Printer
to no longer hold new jobs. to no longer hold new jobs.
Deactivate- 0x27 Puts the Printer into a read-only Deactivate- 0x27 Puts the Printer into a read-only
Printer deactivated state. Printer deactivated state.
Activate- 0x28 Restores the Printer to normal Activate- 0x28 Restores the Printer to normal
Printer activity Printer activity
Restart-Printer 0x29 Restarts the target Printer and re- Restart-Printer 0x29 Restarts the target Printer and re-
initializes the software initializes the software
Shutdown- 0x2A Shuts down the target Printer so that Shutdown- 0x2A Shuts down the target Printer so that
Printer it cannot be restarted or queried Printer it cannot be restarted or queried
Startup-Printer 0x2B Starts up the instance of the Printer Startup-Printer 0x2B Starts up the instance of the Printer
object object
All of the operations in this document are OPTIONAL for an IPP object All of the operations in this document are OPTIONAL for an IPP object
to support. Unless the specification of an OPTIONAL operation to support. Unless the specification of an OPTIONAL operation
requires support of another OPTIONAL operation, conforming requires support of another OPTIONAL operation, conforming
implementations may support any combination of these operations. implementations may support any combination of these operations.
Many of the operations come in pairs and so both are REQUIRED if Many of the operations come in pairs and so both are REQUIRED if
either one is implemented. either one is implemented.
3.1 The Disable and Enable Printer Operations 3.1 The Disable and Enable Printer Operations
This section defines the OPTIONAL Disable-Printer and Enable-Printer This section defines the OPTIONAL Disable-Printer and Enable-Printer
operations that stop and start the IPP Printer object from accepting operations that stop and start the IPP Printer object from accepting
new IPP jobs. If either of these operations are supported, both MUST new IPP jobs. If either of these operations are supported, both MUST
be supported. be supported.
skipping to change at page 23, line 8 skipping to change at page 19, line 47
Printer object (see [RFC2911] Sections 1 and 8.5). Printer object (see [RFC2911] Sections 1 and 8.5).
The Cancel-Current-Job Request and Cancel-Current-Job Response have The Cancel-Current-Job Request and Cancel-Current-Job Response have
the same attribute groups and attributes as the Resume-Printer the same attribute groups and attributes as the Resume-Printer
operation (see [RFC2911] section 3.2.8), including the new "job- operation (see [RFC2911] section 3.2.8), including the new "job-
message-from-operator" operation attribute (see section 6), with the message-from-operator" operation attribute (see section 6), with the
addition of the following Group 1 Operation attributes in the addition of the following Group 1 Operation attributes in the
request: request:
"job-id" (integer(1:MAX)): "job-id" (integer(1:MAX)):
The client OPTIONALLY supplies this Operation attribute in order to The client OPTIONALLY supplies this Operation attribute in
verify that the identified job is still the current job on the order to verify that the identified job is still the current
target Printer object. The IPP object MUST supports this operation job on the target Printer object. The IPP object MUST supports
attribute, if it supports this operation. this operation attribute, if it supports this operation.
4.3 Suspend and Resume Job operations 4.3 Suspend and Resume Job operations
This section defines the Suspend-Current-Job and Resume-Job This section defines the Suspend-Current-Job and Resume-Job
operations. These operations allow an operator or user to suspend a operations. These operations allow an operator or user to suspend a
job while it is processing and allow other jobs to be processed and job while it is processing and allow other jobs to be processed and
the resume the suspended job at a later point in time without losing the resume the suspended job at a later point in time without losing
any of the output. any of the output.
If either of these operations is supported, they both MUST be If either of these operations is supported, they both MUST be
skipping to change at page 28, line 16 skipping to change at page 25, line 11
The Printer has been deactivated using the Deactivate-Printer The Printer has been deactivated using the Deactivate-Printer
operation and is only accepting the Activate-Printer (see section operation and is only accepting the Activate-Printer (see section
3.5.1), Get-Job-Attributes, Get-Jobs, Get-Printer-Attributes, and any 3.5.1), Get-Job-Attributes, Get-Jobs, Get-Printer-Attributes, and any
other Get-Xxxx operations. An operator can perform the Activate- other Get-Xxxx operations. An operator can perform the Activate-
Printer operation to allow the Printer to accept other operations. Printer operation to allow the Printer to accept other operations.
6 Use of Operation Attributes that are Messages from the Operator 6 Use of Operation Attributes that are Messages from the Operator
This section summarizes the usage of the "printer-message-from- This section summarizes the usage of the "printer-message-from-
operator" and "job-message-from-operator" operation attributes that operator" and "job-message-from-operator" operation attributes
set the corresponding Printer and Job Description attributes (see [RFC3380] that set the corresponding Printer and Job Description
[ipp-set-ops] for the definition of these operation attributes). attributes (see [RFC2911] for the definition of these Description
These operation attributes are defined for most of the Printer and attributes). These operation attributes are defined for most of the
Job operations that operators are likely to perform, respectively, so Printer and Job operations that operators are likely to perform,
that operators can indicate the reasons for their actions. respectively, so that operators can indicate the reasons for their
actions.
Table 5 shows the operation attributes that are defined for use with Table 5 shows the operation attributes that are defined for use with
the Printer Operations. the Printer Operations.
Table 5 - Operation attribute support for Printer Operations Table 5 - Operation attribute support for Printer Operations
Operation Attribute A B
Operation Attribute A B C D E F G attributes-charset REQ REQ
attributes-natural-language REQ REQ
attributes-charset REQ REQ REQ REQ REQ REQ REQ printer-uri REQ REQ
requesting-user-name REQ REQ
attributes-natural-language REQ REQ REQ REQ REQ REQ REQ printer-message-from-operator Note OPT
printer-uri REQ REQ REQ REQ REQ REQ REQ
requesting-user-name REQ REQ REQ REQ REQ REQ REQ
printer-message-from- OPT OPT OPT OPT OPT OPT
operator
Legend: Legend:
A: Pause-Printer, Pause-Printer-After-Current-Job, Resume-Printer A: Get-Printer-Attributes, Set-Printer-Attributes
B: Hold-New-Jobs, Release-Held-New-Jobs B: All other Printer administrative operations, including, but not
C: Purge-Jobs limited to: Pause-Printer, Pause-Printer-After-Current-Job, Resume-
D: Get-Printer-Attributes, Set-Printer-Attributes Printer, Hold-New-Jobs, Release-Held-New-Jobs, Purge-Jobs, , Enable-
E: Enable-Print, Disable-Printer Print, Disable-Printer, Restart-Printer, Shutdown-Printer, and
F: Restart-Printer Startup-Printer.
G: Shutdown-Printer, Startup-Printer
REQ - REQUIRED for a Printer to support REQ - REQUIRED for a Printer to support
OPT - OPTIONAL for a Printer to support; the Printer ignores the OPT - OPTIONAL for a Printer to support; the Printer ignores the
attribute if not supported attribute if not supported
<blank> - not defined for use with the operation; the Printer Note - According to [RFC3380], the Client MUST NOT supply the
ignores the attribute "printer-message-from-operator" operation attribute in a
Get-Printer-Attributes or Set-Printer-Attributes operation;
the Printer MUST ignore this operation attribute in these
two operations. Instead, the client when used by an
operator MUST supply the "printer-message-from-operator" as
(one of the) explicit attributes being set on the Printer
object with the Set-Printer-Attributes operation.
Table 6 shows the operation attributes that are defined for use with Table 6 shows the operation attributes that are defined for use with
the Job operations. the Job operations.
Table 6 - Operation attribute support for Job operations Table 6 - Operation attribute support for Job operations
Operation Attribute A B C F
Operation A B C D E F G H I J attributes-charset REQ REQ REQ REQ
Attribute attributes-natural-language REQ REQ REQ REQ
printer-uri REQ REQ REQ REQ
attributes- REQ REQ REQ REQ REQ REQ REQ REQ REQ REQ job-uri REQ REQ REQ
charset job-id REQ REQ REQ REQ
requesting-user-name REQ REQ REQ REQ
attributes- REQ REQ REQ REQ REQ REQ REQ REQ REQ REQ job-message-from-operator OPT OPT OPT Note
natural- message*** OPT OPT OPT n/a
language job-hold-until n/a n/a OPT* n/a
printer-uri REQ REQ REQ REQ REQ REQ REQ REQ REQ REQ
job-uri REQ REQ REQ REQ REQ REQ REQ REQ
job-id REQ REQ REQ REQ REQ REQ REQ REQ REQ REQ
requesting- REQ REQ REQ REQ REQ REQ REQ REQ REQ REQ
user-name
job-message- OPT OPT OPT OPT OPT OPT OPT OPT OPT
from-operator
message [to- OPT OPT OPT OPT OPT OPT OPT OPT
operator]
job-hold-until OPT OPT
* **
Legend: Legend:
A: Cancel-Job A: Cancel-Job, Resume-Job, Restart-Job, Promote-Job, Schedule-Job-
B: Cancel-Current-Job After
C: Hold-Job, Release-Job B: Cancel-Current-Job, Suspend-Current-Job
D: Suspend-Current-Job C: Hold-Job, Release-Job, Reprocess-Job
E: Resume-Job
F: Get-Job-Attributes, Set-Job-Attributes F: Get-Job-Attributes, Set-Job-Attributes
G: Restart-Job
H: Reprocess-Job
I: Promote-Job
J: Schedule-Job-After
REQ - REQUIRED for a Printer to support REQ - REQUIRED for a Printer to support
O - OPTIONAL for a Printer to support; the Printer ignores the OPT - OPTIONAL for a Printer to support; the Printer ignores the
attribute if supplied, but not supported attribute if supplied, but not supported
<blank> - not defined for use with the operation; the Printer ignores n/a - not applicable for use with the operation; the Printer ignores
the attribute the attribute
* The Printer MUST support the "job-hold-until" operation attribute Note - According to [RFC3380], the Client MUST NOT supply the "job-
if it supports the "job-hold-until" Job Template attribute. message-from-operator" operation attribute in a Get-Job-
** The Printer MUST support the "job-hold-until" operation attribute Attributes or Set-Job-Attributes operation; the Printer MUST
if it supports the Set-Job-Attributes operation, so that the ignore this operation attribute in these two operations.
client can hold the job with the Reprocess-Job operation and the Instead, the client when used by an operator MUST supply the
modify the job before releasing it to be processed. "job-message-from-operator" as (one of the) explicit attributes
being set on the Job object with the Set-Job-Attributes
operation.
* - The Printer MUST support the "job-hold-until" operation
attribute if it supports the "job-hold-until" Job Template
attribute. For the Reprocess-Job operation the client can hold
the job and then modify the job before releasing it to be
processed.
** - In [RFC2911] the "message" operation attribute is defined to
contain a message to the operator but [RFC2911] does not define
a Job Description to store the message.
7 New Printer Description Attributes 7 New Printer Description Attributes
The following new Printer Description attributes are needed to The following new Printer Description attributes are needed to
support the new operations defined in this document and the concepts support the new operations defined in this document and the concepts
of Printer Fan-Out (see section 11). of Printer Fan-Out (see section 10).
7.1 subordinate-printers-supported (1setOf uri) 7.1 subordinate-printers-supported (1setOf uri)
This Printer attribute is REQUIRED if an implementation supports This Printer attribute is REQUIRED if an implementation supports
Subordinate Printers (see section 11) and contains the URIs of the Subordinate Printers (see section 10) and contains the URIs of the
immediate Subordinate Printer object(s) associated with this Printer immediate Subordinate Printer object(s) associated with this Printer
object. Each Non-Leaf Printer object MUST support this Printer object. Each Non-Leaf Printer object MUST support this Printer
Description attribute. A Leaf Printer object either does not support Description attribute. A Leaf Printer object either does not support
the "subordinate-printers-supported" attribute or does so with the the "subordinate-printers-supported" attribute or does so with the
'no-value' out-of-band value (see [RFC2911] section 4.1), depending 'no-value' out-of-band value (see [RFC2911] section 4.1), depending
on implementation. on implementation.
The precise format of the Subordinate Printer URIs is implementation The precise format of the Subordinate Printer URIs is implementation
dependent (see section 11.4). dependent (see section 10.4).
If the Printer object does not have an associated Output Device, the If the Printer object does not have an associated Output Device, the
Printer MAY automatically copy the value of the Subordinate Printer Printer MAY automatically copy the value of the Subordinate Printer
object's "printer-name" attribute to the Job object's "output- object's "printer-name" attribute to the Job object's "output-
device-assigned" attribute (see [RFC2911] section 4.3.13). The device-assigned" attribute (see [RFC2911] section 4.3.13). The
"output-device-assigned" Job attribute identifies the Output Device "output-device-assigned" Job attribute identifies the Output Device
to which the Printer object has assigned a job, for example, when a to which the Printer object has assigned a job, for example, when a
single Printer object is supporting Device Fan-Out or Printer Fan- single Printer object is supporting Device Fan-Out or Printer Fan-
Out. Out.
7.2 parent-printers-supported (1setOf uri) 7.2 parent-printers-supported (1setOf uri)
This Printer attribute is REQUIRED if an implementation supports This Printer attribute is REQUIRED if an implementation supports
Subordinate Printers (see section 11) and contains the URI of the Subordinate Printers (see section 10) and contains the URI of the
Non-Leaf printer object(s) for which this Printer object is the Non-Leaf printer object(s) for which this Printer object is the
immediate Subordinate, i.e., this Printer's immediate "parent" or immediate Subordinate, i.e., this Printer's immediate "parent" or
"parents". Each Subordinate Printer object MUST support this Printer "parents". Each Subordinate Printer object MUST support this Printer
Description attribute. A Printer that has no parents, either does Description attribute. A Printer that has no parents, either does
not support the "parent-printers-supported" attribute or does so with not support the "parent-printers-supported" attribute or does so with
the 'no-value' out-of-band value (see [RFC2911] section 4.1), the 'no-value' out-of-band value (see [RFC2911] section 4.1),
depending on implementation. depending on implementation.
8 Additional Values for the "printer-state-reasons" Printer Description 8 Additional Values for the "printer-state-reasons" Printer Description
attribute attribute
skipping to change at page 33, line 12 skipping to change at page 30, line 12
This section defines additional values for the "job-state-reasons" This section defines additional values for the "job-state-reasons"
Job Description attribute. Job Description attribute.
9.1 'job-suspended' value 9.1 'job-suspended' value
'job-suspended': The job has been suspended while processing 'job-suspended': The job has been suspended while processing
using the Suspend-Current-Job operation and other jobs can be using the Suspend-Current-Job operation and other jobs can be
processed on the Printer. The Job can be resumed using the processed on the Printer. The Job can be resumed using the
Resume-Job operation which removes this value. Resume-Job operation which removes this value.
10 Additional events 10 Use of the Printer object to represent IPP Printer Fan-Out and IPP
The following Job events are defined for use with [ipp-ntfy]:
'job-forwarded-operation-failed' - an operation that a Printer
forwarded to a Subordinate Printer (see section 11.7) failed.
11 Use of the Printer object to represent IPP Printer Fan-Out and IPP
Printer Fan-In Printer Fan-In
This section defines how the Printer object MAY be used to represent This section defines how the Printer object MAY be used to represent
IPP Printer Fan-Out and IPP Printer Fan-In. Fan-Out is where an IPP IPP Printer Fan-Out and IPP Printer Fan-In. Fan-Out is where an IPP
Printer is used to represent other IPP Printer objects. Fan-In is Printer is used to represent other IPP Printer objects. Fan-In is
where several IPP Printer objects are used to represent another IPP where several IPP Printer objects are used to represent another IPP
Printer object. Printer object.
11.1 IPP Printer Fan-Out 10.1 IPP Printer Fan-Out
The IPP/1.1 Model and Semantics introduces the semantic concept of an The IPP/1.1 Model and Semantics introduces the semantic concept of an
IPP Printer object that represents more than one Output Device (see IPP Printer object that represents more than one Output Device (see
[RFC2911] section 2.1). This concept is called "Output Device Fan- [RFC2911] section 2.1). This concept is called "Output Device Fan-
Out". However, there was no way to represent the individual states Out". However, there was no way to represent the individual states
of the Output Devices or to perform operations on a specific Output of the Output Devices or to perform operations on a specific Output
Device when there was Fan-Out. This document generalizes the Device when there was Fan-Out. This document generalizes the
semantics of the Printer object to represent such Subordinate Fan-Out semantics of the Printer object to represent such Subordinate Fan-Out
Output Devices as IPP Printer objects. This concept is called Output Devices as IPP Printer objects. This concept is called
"Printer object Fan-Out". A Printer object that has a Subordinate "Printer object Fan-Out". A Printer object that has a Subordinate
skipping to change at page 34, line 15 skipping to change at page 31, line 7
be both a Non-Leaf Printer and a Subordinate Printer. be both a Non-Leaf Printer and a Subordinate Printer.
A Subordinate Printer object MUST be a conforming Printer object, so A Subordinate Printer object MUST be a conforming Printer object, so
it MUST support all of the REQUIRED [RFC2911] operations and it MUST support all of the REQUIRED [RFC2911] operations and
attributes. However, with access control, the Subordinate Printer attributes. However, with access control, the Subordinate Printer
MAY be configured so that end-user clients are not permitted to MAY be configured so that end-user clients are not permitted to
perform any operations (or just Get-Printer-Attributes) while one or perform any operations (or just Get-Printer-Attributes) while one or
more Non-Leaf Printer object(s) are permitted to perform any more Non-Leaf Printer object(s) are permitted to perform any
operation. operation.
11.2 IPP Printer Fan-In 10.2 IPP Printer Fan-In
The IPP/1.1 Model and Semantics did not preclude the semantic concept The IPP/1.1 Model and Semantics did not preclude the semantic concept
of multiple IPP Printer objects that represent a single Output Device of multiple IPP Printer objects that represent a single Output Device
(see [RFC2911] section 2.1). However, there was no way for the (see [RFC2911] section 2.1). However, there was no way for the
client to determine that there was a Fan-In configuration, nor was client to determine that there was a Fan-In configuration, nor was
there a way to perform operations on the Subordinate device. This there a way to perform operations on the Subordinate device. This
specification generalizes the semantics of the Printer object to specification generalizes the semantics of the Printer object to
allow several Non-Leaf IPP Printer objects to represent a single allow several Non-Leaf IPP Printer objects to represent a single
Subordinate Printer object. Thus a Non-Leaf Printer object MAY share Subordinate Printer object. Thus a Non-Leaf Printer object MAY share
a Subordinate Printer object with one or more other Non-Leaf Printer a Subordinate Printer object with one or more other Non-Leaf Printer
objects in order to represent IPP Printer Fan-In. objects in order to represent IPP Printer Fan-In.
As with Fan-Out (see section 11.1), when a Printer object is a Non- As with Fan-Out (see section 10.1), when a Printer object is a Non-
Leaf Printer, it MUST NOT have an associated Output Device. As with Leaf Printer, it MUST NOT have an associated Output Device. As with
Fan-Out, a Leaf Printer object has one or more associated Output Fan-Out, a Leaf Printer object has one or more associated Output
Devices. As with Fan-Out, the Non-Leaf Printer objects submit jobs Devices. As with Fan-Out, the Non-Leaf Printer objects submit jobs
to their Subordinate Printer objects and otherwise control the to their Subordinate Printer objects and otherwise control the
Subordinate Printer. As with Fan-Out, whether pending jobs are kept Subordinate Printer. As with Fan-Out, whether pending jobs are kept
in the Non-Leaf Printers until the Subordinate Printer can accept in the Non-Leaf Printers until the Subordinate Printer can accept
them or are kept in the Subordinate Printer depends on implementation them or are kept in the Subordinate Printer depends on implementation
and/or configuration policy. and/or configuration policy.
11.3 Printer object attributes used to represent Printer Fan-Out and 10.3 Printer object attributes used to represent Printer Fan-Out and
Printer Fan-In Printer Fan-In
The following Printer Description attributes are defined to represent The following Printer Description attributes are defined to represent
the relationship between Printer object(s) and their Subordinate the relationship between Printer object(s) and their Subordinate
Printer object(s): Printer object(s):
1."subordinate-printers-supported" (1setOf uri) - contains the URI 1."subordinate-printers-supported" (1setOf uri) - contains the URI
of the immediate Subordinate Printer object(s). of the immediate Subordinate Printer object(s).
2."parent-printers-supported (1setOf uri) - contains the URI of 2."parent-printers-supported (1setOf uri) - contains the URI of
the Non-Leaf printer object(s) for which this Printer object is the Non-Leaf printer object(s) for which this Printer object is
the immediate Subordinate, i.e., this Printer's immediate the immediate Subordinate, i.e., this Printer's immediate
"parent" or "parents". "parent" or "parents".
11.4 Subordinate Printer URI 10.4 Subordinate Printer URI
Each Subordinate Printer object has a URI which is used as the target Each Subordinate Printer object has a URI which is used as the target
of each operation on the Subordinate Printer. The means for of each operation on the Subordinate Printer. The means for
configuring URIs for Subordinate Printer objects is implementation- configuring URIs for Subordinate Printer objects is implementation-
dependent as are all URIs. However, there are two distinct dependent as are all URIs. However, there are two distinct
approaches: approaches:
a. When the implementation wants to make sure that no operation on a. When the implementation wants to make sure that no operation on
a Subordinate Printer object as a target "sneaks by" the parent a Subordinate Printer object as a target "sneaks by" the parent
Printer object (or the Subordinate Printer is fronting for a device Printer object (or the Subordinate Printer is fronting for a device
skipping to change at page 35, line 29 skipping to change at page 32, line 22
of the parent Printer. Then the parent Printer object can easily of the parent Printer. Then the parent Printer object can easily
reflect the state of the Subordinate Printer objects in the reflect the state of the Subordinate Printer objects in the
parent's Printer object state and state reasons as the operation parent's Printer object state and state reasons as the operation
passes "through" the parent Printer object. passes "through" the parent Printer object.
b. When the Subordinate Printer is networked and the implementation b. When the Subordinate Printer is networked and the implementation
allows operations to go directly to the Subordinate Printer (with allows operations to go directly to the Subordinate Printer (with
proper access control) without knowledge of the parent Printer proper access control) without knowledge of the parent Printer
object, the host part of the URI is different than the host part of object, the host part of the URI is different than the host part of
the parent Printer object. In such a case, the parent Printer the parent Printer object. In such a case, the parent Printer
object MUST keep its "printer-state" and "printer-state-reasons" up object MAY keep its "printer-state" and "printer-state-reasons" up
to date, either by polling the Subordinate Printer object or by to date, either by polling the Subordinate Printer object or by
subscribing to events with the Subordinate Printer object (see subscribing to events with the Subordinate Printer object (see
[ipp-not-spec] for means to subscribe to event notification when [ipp-ntfy] for means to subscribe to event notification when the
the Subordinate Printer object supports IPP notification). Subordinate Printer object supports IPP notification).
Alternatively, the parent Printer MAY wait until its "printer-
state" and "printer-state-reasons" attributes are queried and then
query all its Subordinate Printers in order to return the correct
values.
11.5 Printer object attributes used to represent Output Device Fan-Out 10.5 Printer object attributes used to represent Output Device Fan-Out
Only Leaf IPP Printer objects are allowed to have one or more Only Leaf IPP Printer objects are allowed to have one or more
associated Output Devices. Each Leaf Printer object MAY support the associated Output Devices. Each Leaf Printer object MAY support the
"output-devices-supported" (1setOf name(127)) to indicate the user- "output-devices-supported" (1setOf name(127)) to indicate the user-
friendly name(s) of the Output Device(s) that the Leaf Printer object friendly name(s) of the Output Device(s) that the Leaf Printer object
represents. It is RECOMMENDED that each Leaf Printer object have represents. It is RECOMMENDED that each Leaf Printer object have
only one associated Output Device, so that the individual Output only one associated Output Device, so that the individual Output
Devices can be represented completely and controlled completely by Devices can be represented completely and controlled completely by
clients. In other words, the Leaf Printer's "output-devices- clients. In other words, the Leaf Printer's "output-devices-
supported" attribute SHOULD have only one value. supported" attribute SHOULD have only one value.
skipping to change at page 37, line 5 skipping to change at page 33, line 25
When adding, removing, or changing a configuration of Printers and When adding, removing, or changing a configuration of Printers and
Output Devices, there can be moments in time when the tree structure Output Devices, there can be moments in time when the tree structure
is not consistent. In other words, times when a Non-Leaf Printer's is not consistent. In other words, times when a Non-Leaf Printer's
"subordinate-printers-supported" does not agree with the Subordinate "subordinate-printers-supported" does not agree with the Subordinate
Printer's "parent-printers-supported". Therefore, the operator Printer's "parent-printers-supported". Therefore, the operator
SHOULD first Deactivate all Printers that are being configured in SHOULD first Deactivate all Printers that are being configured in
this way, update all pointer attributes, and then reactivate. A this way, update all pointer attributes, and then reactivate. A
useful client tool would validate a tree structure before Activating useful client tool would validate a tree structure before Activating
the Printers involved. the Printers involved.
11.6 Figures to show all possible configurations 10.6 Figures to show all possible configurations
Figure 1, Figure 2, and Figure 3 are taken from [RFC2911] to show the Figure 1, Figure 2, and Figure 3 are taken from [RFC2911] to show the
configurations possible with IPP/1.0 and IPP/1.1 where all Printer configurations possible with IPP/1.0 and IPP/1.1 where all Printer
objects are Leaf Printer objects. The remaining figures show objects are Leaf Printer objects. The remaining figures show
additional configurations that this document defines using Non-Leaf additional configurations that this document defines using Non-Leaf
and Leaf Printer objects. Legend for all figures: and Leaf Printer objects. Legend for all figures:
----> indicates a network protocol with the direction of its requests ----> indicates a network protocol with the direction of its requests
##### indicates a Printer object which is either: ##### indicates a Printer object which is either:
skipping to change at page 39, line 18 skipping to change at page 35, line 18
########### ########### ########### ###########
The Subordinate Printer can be a Non-Leaf Printer as in Figure 4 to The Subordinate Printer can be a Non-Leaf Printer as in Figure 4 to
Figure 6, or can be a Leaf Printer as in Figure 1 to Figure 3. Figure 6, or can be a Leaf Printer as in Figure 1 to Figure 3.
Figure 4 - Chained IPP Printer Objects Figure 4 - Chained IPP Printer Objects
+------IPP--------------------->########### +------IPP--------------------->###########
/ +---># subord. # / +---># subord. #
/ / # Printer # / / # Printer #
/ ########### any # object # / ########### IPP # object #
O +--------+ # Non-Leaf# / ########### O +--------+ # Non-Leaf# / ###########
/|\ | client |---IPP----># Printer #--* /|\ | client |---IPP----># Printer #--*
/ \ +--------+ # object # \ / \ +--------+ # object # \
\ ########### any ########### \ ########### IPP ###########
\ \ # subord. # \ \ # subord. #
\ +---># Printer # \ +---># Printer #
+------IPP---------------------># object # +------IPP---------------------># object #
########### ###########
The Subordinate Printer can be a Non-Leaf Printer as in Figure 4 to The Subordinate Printer can be a Non-Leaf Printer as in Figure 4 to
Figure 6, or can be a Leaf Printer as in Figure 1 to Figure 3. Figure 6, or can be a Leaf Printer as in Figure 1 to Figure 3.
Figure 5 - IPP Printer Object Fan-Out Figure 5 - IPP Printer Object Fan-Out
(Non-Leaf)
########### ###########
# Non-Leaf# # Non-Leaf#
+---># Printer #-+ +---># Printer #-+
/ # object # \ / # object # \
IPP ########### \ ########### IPP ########### \ ###########
O +--------+ / +-IPP-># subord. # O +--------+ / +-IPP-># subord. #
/|\ | client |--+-----------IPP---------------># Printer # /|\ | client |--+-----------IPP---------------># Printer #
/ \ +--------+ \ +-IPP-># object # / \ +--------+ \ +-IPP-># object #
IPP ########### / ########### IPP ########### / ###########
\ # Non-Leaf# / \ # Non-Leaf# /
+---># Printer #-+ +---># Printer #-+
# object # # object #
########### ###########
(Non-Leaf)
The Subordinate Printer can be a Non-Leaf Printer as in Figure 4, The Subordinate Printer can be a Non-Leaf Printer as in Figure 4, to
Figure 5, or Figure 6, or can be a Leaf Printer as in Figure 1, Figure 6, or can be a Leaf Printer as in Figure 1, to Figure 3.
Figure 2, or Figure 3.
Figure 6 - IPP Printer Object Fan-In Figure 6 - IPP Printer Object Fan-In
11.7 Forwarding requests 10.7 Forwarding requests
This section describes the forwarding of Job and Printer requests to This section describes the forwarding of Job and Printer requests to
Subordinate Printer objects. Subordinate Printer objects.
11.7.1 Forwarding requests that affect Printer objects 10.7.1 Forwarding requests that affect Printer objects
In Printer Fan-Out, Printer Fan-In, and Chained Printers, the Non- In Printer Fan-Out, Printer Fan-In, and Chained Printers, the Non-
Leaf IPP Printer object MUST NOT forward the operations that affect Leaf IPP Printer object MUST NOT forward the operations that affect
Printer objects to its Subordinate Printer objects. If a client Printer objects to its Subordinate Printer objects. If a client
wants to explicitly target a Subordinate Printer, the client MUST wants to explicitly target a Subordinate Printer, the client MUST
specify the URI of the Subordinate Printer. The client can specify the URI of the Subordinate Printer. The client can
determine the URI of any Subordinate Printers by querying the determine the URI of any Subordinate Printers by querying the
Printer's "subordinate-printers-supported (1setOf uri) attribute (see Printer's "subordinate-printers-supported (1setOf uri) attribute (see
section 7.1). section 7.1).
Table 7 lists the operations that affect Printer objects and the Table 7 lists the operations that affect Printer objects and the
forwarding behavior that a Non-Leaf Printer MUST exhibit to its forwarding behavior that a Non-Leaf Printer MUST exhibit to its
immediate Subordinate Printers. Operations that affect jobs have a immediate Subordinate Printers. Operations that affect jobs have a
different forwarding rule (see section 11.7.2 and Table 8): different forwarding rule (see section 10.7.2 and Table 8):
Table 7 - Forwarding operations that affect Printer objects Table 7 - Forwarding operations that affect Printer objects
Printer Operation Non-Leaf Printer action Printer Operation Non-Leaf Printer action
Printer Operations: Printer Operations:
Enable-Printer MUST NOT forward to any of its Subordinate Enable-Printer MUST NOT forward to any of its Subordinate
Printers Printers
Disable-Printer MUST NOT forward to any of its Subordinate Disable-Printer MUST NOT forward to any of its Subordinate
Printers Printers
Hold-New-Jobs MUST NOT forward to any of its Subordinate Hold-New-Jobs MUST NOT forward to any of its Subordinate
Printers Printers
Release-Held-New- MUST NOT forward to any of its Subordinate Release-Held-New- MUST NOT forward to any of its Subordinate
Jobs Printers Jobs Printers
Deactivate-Printer MUST NOT forward to any of its Subordinate Deactivate-Printer MUST NOT forward to any of its Subordinate
Printers Printers
Activate-Printer MUST NOT forward to any of its Subordinate Activate-Printer MUST NOT forward to any of its Subordinate
Printers Printers
Restart-Printer MUST NOT forward to any of its Subordinate Restart-Printer MUST NOT forward to any of its Subordinate
Printers Printers
Shutdown-Printer MUST NOT forward to any of its Subordinate Shutdown-Printer MUST NOT forward to any of its Subordinate
Printers Printers
Startup-Printer MUST NOT forward to any of its Subordinate Startup-Printer MUST NOT forward to any of its Subordinate
Printers Printers
IPP/1.1 Printer See [RFC2911] IPP/1.1 Printer See [RFC2911]
Operations: Operations:
Get-Printer- MUST NOT forward to any of its Subordinate Get-Printer- MUST NOT forward to any of its Subordinate
Attributes Printers Attributes Printers
Pause-Printer MUST NOT forward to any of its Subordinate Pause-Printer MUST NOT forward to any of its Subordinate
Printers Printers
Resume-Printer MUST NOT forward to any of its Subordinate Resume-Printer MUST NOT forward to any of its Subordinate
Printers Printers
Printer Operation Non-Leaf Printer action Set operations: See [RFC3380]
Set operations: See [ipp-set-ops]
Set-Printer- MUST NOT forward to any of its Subordinate Set-Printer- MUST NOT forward to any of its Subordinate
Attributes Printers Attributes Printers
11.7.2 Forwarding requests that affect Jobs 10.7.2 Forwarding requests that affect Jobs
Unlike Printer Operations that only affect Printer objects (see Unlike Printer Operations that only affect Printer objects (see
section 11.7.1), a Non-Leaf Printer object MUST forward operations section 10.7.1), a Non-Leaf Printer object MUST forward operations
that directly affect jobs to the appropriate Job object(s) in one or that directly affect jobs to the appropriate Job object(s) in one or
more of its immediate Subordinate Printer objects. Forwarding is more of its immediate Subordinate Printer objects. Forwarding is
REQUIRED since the purpose of such a Job operation is to affect the REQUIRED since the purpose of such a Job operation is to affect the
indicated job which itself may have been forwarded. Such forwarding indicated job which itself may have been forwarded. Such forwarding
MAY be immediate or queued, depending on the operation and the MAY be immediate or queued, depending on the operation and the
implementation. For example, a Non-Leaf Printer object MAY implementation. For example, a Non-Leaf Printer object MAY
queue/spool jobs, feeding a job at a time to its Subordinate queue/spool jobs, feeding a job at a time to its Subordinate
Printer(s), or MAY forward jobs immediately to one of its Subordinate Printer(s), or MAY forward jobs immediately to one of its Subordinate
Printers. In either case, the Non-Leaf Printer object is forwarding Printers. In either case, the Non-Leaf Printer object is forwarding
Job Creation operations to one of its Subordinate Printers. Only the Job Creation operations to one of its Subordinate Printers. Only the
skipping to change at page 43, line 6 skipping to change at page 39, line 6
is IMPLEMENTATION-DEPENDENT. In either case, the Non-Leaf Printer is IMPLEMENTATION-DEPENDENT. In either case, the Non-Leaf Printer
MUST be able to accept and carry out future Job operations that MUST be able to accept and carry out future Job operations that
specify the "job-id" that the Non-Leaf Printer assigned and returned specify the "job-id" that the Non-Leaf Printer assigned and returned
to the job submitting client. to the job submitting client.
Table 8 lists the operations that directly affect jobs and the Table 8 lists the operations that directly affect jobs and the
forwarding behavior that a Non-Leaf Printer MUST exhibit to its forwarding behavior that a Non-Leaf Printer MUST exhibit to its
Subordinate Printers: Subordinate Printers:
Table 8 - Forwarding operations that affect Jobs objects Table 8 - Forwarding operations that affect Jobs objects
Job operation Non-Leaf Printer action Job operation Non-Leaf Printer action
Job operations: Job operations:
Reprocess-Job MUST forward to the appropriate Job in one of Reprocess-Job MUST forward to the appropriate Job in one of
its Subordinate Printers its Subordinate Printers
Cancel-Current- MUST NOT forward
Cancel-Current- Job
Job MUST NOT forward
Resume-Job MUST forward to the appropriate Job in one of Resume-Job MUST forward to the appropriate Job in one of
its Subordinate Printers its Subordinate Printers
Promote-Job MUST forward to the appropriate Job in one of Promote-Job MUST forward to the appropriate Job in one of
its Subordinate Printers its Subordinate Printers
IPP/1.1 Printer IPP/1.1 Printer
Operations: Operations:
Print-Job MUST forward immediately or queue to the Print-Job MUST forward immediately or queue to the
appropriate Subordinate Printer appropriate Subordinate Printer
Print-URI MUST forward immediately or queue to the Print-URI MUST forward immediately or queue to the
appropriate Subordinate Printer appropriate Subordinate Printer
Validate-Job MUST forward to the appropriate Subordinate Validate-Job MUST forward to the appropriate Subordinate
Printer Printer
Create-Job MUST forward immediately or queue to the Create-Job MUST forward immediately or queue to the
appropriate Subordinate Printer appropriate Subordinate Printer
Get-Jobs MUST forward to all its Subordinate Printers Get-Jobs MUST forward to all its Subordinate Printers
Purge-Jobs MUST forward to all its Subordinate Printers Purge-Jobs MUST forward to all its Subordinate Printers
IPP/1.1 Job IPP/1.1 Job
operations: operations:
Send-Document MUST forward immediately or queue to the Send-Document MUST forward immediately or queue to the
appropriate Job in one of its Subordinate appropriate Job in one of its Subordinate
Printers Printers
Send-URI MUST forward immediately or queue to the Send-URI MUST forward immediately or queue to the
appropriate Job in one of its Subordinate appropriate Job in one of its Subordinate
Printers Printers
Job operation Non-Leaf Printer action
appropriate Job in one of its Subordinate
Printers
Cancel-Job MUST forward to the appropriate Job in one of Cancel-Job MUST forward to the appropriate Job in one of
its Subordinate Printers its Subordinate Printers
Get-Job- MUST forward to the appropriate Job in one of Get-Job- MUST forward to the appropriate Job in one of
Attributes its Subordinate Printers, if the Non-Leaf Attributes its Subordinate Printers, if the Non-Leaf
Printer doesn't know the complete status of the Printer doesn't know the complete status of the
Job object Job object
Hold-Job MUST forward to the appropriate Job in one of Hold-Job MUST forward to the appropriate Job in one of
its Subordinate Printers its Subordinate Printers
Release-Job MUST forward to the appropriate Job in one of Release-Job MUST forward to the appropriate Job in one of
its Subordinate Printers its Subordinate Printers
Restart-Job MUST forward to the appropriate Job in one of Restart-Job MUST forward to the appropriate Job in one of
its Subordinate Printers its Subordinate Printers
IPP Set operations: See [RFC3380]
IPP Set operations: See [ipp-set-ops]
Set-Job- MUST forward to the appropriate Job in one of Set-Job- MUST forward to the appropriate Job in one of
Attributes its Subordinate Printers Attributes its Subordinate Printers
When a Printer receives a request that REQUIRES forwarding, it does When a Printer receives a request that REQUIRES forwarding, it does
so on a "best efforts basis", and returns a response to its client so on a "best efforts basis", and returns a response to its client
without waiting for responses from any of its Subordinate Printers. without waiting for responses from any of its Subordinate Printers.
Such forwarded requests could fail. In order for a client to become Such forwarded requests could fail.
aware of such a condition, a new 'job-forwarded-operation-failed' Job
event is defined, which a client can subscribe to (see section 10 and
[ipp-ntfy]).
11.8 Additional attributes to help with fan-out 10.8 Additional attributes to help with fan-out
The following Job Description attributes are defined to help The following operation and Job Description attributes are defined to
represent Job relationships for Fan-Out and forwarding of jobs: help represent Job relationships for Fan-Out and forwarding of jobs:
11.8.1 output-device-assigned (name(127)) Job Description attribute - 10.8.1 output-device-assigned (name(127)) Job Description attribute -
from [RFC2911] from [RFC2911]
This attribute identifies the Output Device to which the Printer [RFC2911] defines "output-device-assigned" as: "This attribute
object has assigned this job. If an Output Device implements an identifies the Output Device to which the Printer object has assigned
embedded Printer object, the Printer object NEED NOT set this this job. If an Output Device implements an embedded Printer object,
attribute. If a print server implements a Printer object, the value the Printer object NEED NOT set this attribute. If a print server
MAY be empty (zero-length string) or not returned until the Printer implements a Printer object, the value MAY be empty (zero-length
object assigns an Output Device to the job. This attribute is string) or not returned until the Printer object assigns an Output
particularly useful when a single Printer object supports multiple Device to the job. This attribute is particularly useful when a
devices (so called "Device Fan-Out"). single Printer object supports multiple devices (so called "Device
Fan-Out" see [RFC2911] section 2.1)." See also section 10.1 in this
specification.
11.8.2 original-requesting-user-name (name(MAX)) operation attribute 10.8.2 original-requesting-user-name (name(MAX)) operation and Job
Description attribute
The operation attribute containing the user name of the original The operation attribute containing the user name of the original
user, i.e., corresponds to the "requesting-user-name" operation user, i.e., corresponds to the "requesting-user-name" operation
attribute that the original client supplied to the first Printer attribute (see [RFC2911] section 3.2.1.1) that the original client
object. The IPP/1.1 "requesting-user-name" operation attribute (see supplied to the first Printer object. The Printer copies the
[RFC2911]) is updated by each client to be itself on each hop, i.e., "original-requesting-user-name" operation attribute to the
the "requesting-user-name" is the client forwarding the request, not corresponding Job Description attribute.
the original client. The "job-originating-user-name" Job Description
attribute remains as the authenticated original user, not the parent
Printer's authenticated host, and is forwarded by each client without
changing the value.
12 Conformance Requirements 10.8.3 requesting-user-name (name(MAX)) operation attribute - additional
semantics
The IPP/1.1 "requesting-user-name" operation attribute (see [RFC2911]
section 3.2.1.1) is updated by each client to be itself on each hop,
i.e., the "requesting-user-name" is the client forwarding the
request, not the original client.
10.8.4 job-originating-user-name (name(MAX)) Job Description attribute -
additional semantics
The "job-originating-user-name" Job Description attribute (see
[RFC2911] section 4.3.6) remains as the authenticated original user,
not the parent Printer's authenticated host, and is forwarded by each
client without changing the value.
11 Conformance Requirements
The Job and Printer Administrative operations defined in this The Job and Printer Administrative operations defined in this
document are OPTIONAL operations. However, some operations MUST be document are OPTIONAL operations. However, some operations MUST be
implemented if others are implemented as shown in Table 9. implemented if others are implemented as shown in Table 9.
Table 9 - Conformance Requirement Dependencies for Operations Table 9 - Conformance Requirement Dependencies for Operations
Operations REQUIRED If any of these operations are
Operations REQUIRED If any of these operations are supported: supported:
Enable-Printer Disable-Printer Enable-Printer Disable-Printer
Disable-Printer Enable-Printer Disable-Printer Enable-Printer
Pause-Printer Resume-Printer Pause-Printer Resume-Printer
Resume-Printer Pause-Printer,
Resume-Printer Pause-Printer, Pause-Printer-After-Current- Pause-Printer-After-Current-Job
Job
Hold-New-Jobs Release-Held-New-Jobs Hold-New-Jobs Release-Held-New-Jobs
Release-Held-New-Jobs Hold-New-Jobs Release-Held-New-Jobs Hold-New-Jobs
Activate-Printer, Deactivate-Printer Activate-Printer, Deactivate-Printer
Disable-Printer, Disable-Printer,
Pause-Printer-After- Pause-Printer-After-Current-Job
Current-Job
Deactivate-Printer, Activate-Printer Deactivate-Printer, Activate-Printer
Enable-Printer, Enable-Printer,
Resume-Printer Resume-Printer
Restart-Printer none Restart-Printer none
Shutdown-Printer none Shutdown-Printer none
Startup-Printer none Startup-Printer none
Reprocess-Job none Reprocess-Job none
Cancel-Current-Job none Cancel-Current-Job none
Resume-Job Suspend-Current-Job Resume-Job Suspend-Current-Job
Suspend-Current-Job Resume-Job Suspend-Current-Job Resume-Job
Promote-Job none Promote-Job none
Schedule-Job-After Promote-Job Schedule-Job-After Promote-Job
Table 10 and Table 11 list the "printer-state-reasons" and "job- Table 10 and Table 11 list the "printer-state-reasons" and "job-
state-reasons" values that are REQUIRED if the indicated operations state-reasons" values that are REQUIRED if the indicated operations
are supported. are supported.
Table 10- Conformance Requirement Dependencies for "printer-state- Table 10- Conformance Requirement Dependencies for "printer-state-
reasons" Values reasons" Values
"printer-state- Conformance If any of the following Printer "printer-state- Conformance If any of the following Printer
reasons" values: Requirement Operations are supported: reasons" values: Requirement Operations are supported:
'paused' REQUIRED Pause-Printer, Pause-Printer- 'paused' REQUIRED Pause-Printer,
After-Current-Job, or Pause-Printer-After-Current-Job,
Deactivate-Printer or Deactivate-Printer
'hold-new-jobs' REQUIRED Hold-New-Jobs 'hold-new-jobs' REQUIRED Hold-New-Jobs
'moving-to-paused' OPTIONAL Pause-Printer,
'moving-to-paused' OPTIONAL Pause-Printer, Pause-Printer- Pause-Printer-After-Current-Job,
After-Current-Job, Deactivate- Deactivate-Printer
Printer
'deactivated' REQUIRED Deactivate-Printer 'deactivated' REQUIRED Deactivate-Printer
Table 11- Conformance Requirement Dependencies for "job-state- Table 11- Conformance Requirement Dependencies for "job-state-
reasons" Values reasons" Values
"job-state-reasons" Conformance If any of the following Job "job-state-reasons" Conformance If any of the following Job
values: Requirement operations are supported: values: Requirement operations are supported:
'job-suspended' REQUIRED Suspend-Current-Job 'job-suspended' REQUIRED Suspend-Current-Job
'printer-stopped' REQUIRED always REQUIRED 'printer-stopped' REQUIRED always REQUIRED
13 IANA Considerations 12 Normative References
13.1 This section contains the registration information for IANA to add [RFC2910]
to the various IPP Registries according to the procedures defined in Herriot, R., Butler, S., Moore, P., Tuner, R., "Internet Printing
RFC 2911 [RFC2911] section 6 to cover the definitions in this Protocol/1.1: Encoding and Transport", RFC 2910, September 2000.
document. Attribute Registrations
The following table lists all the attributes defined in this [RFC2911]
document. These are to be registered according to the procedures in R. deBry, T. Hastings, R. Herriot, S. Isaacson, P. Powell,
RFC 2911 [RFC2911] section 6.2. "Internet Printing Protocol/1.0: Model and Semantics", RFC 2911,
September 2000.
Job Description attributes: Ref. Section: [RFC3380]
output-device-assigned (name(127)) RFC NNNN 11.8.1 Hastings, T., Herriot, R., Kugler, C., and H. Lewis, "Internet
Printing Protocol (IPP): Job and Printer Set Operations", RFC 3380,
September 2002.
Printer Description attributes: Ref. Section: 13 Informative References
subordinate-printers-supported (1setOf uri) RFC NNNN 7.1
parent-printers-supported (1setOf uri) RFC NNNN 7.2
Operation attributes: Ref. Section: [ipp-ntfy]
original-requesting-user-name (name(MAX)) RFC NNNN 11.8.2 Herriot, R., and T. Hastings, "Internet Printing Protocol/1.1:
Event Notifications and Subscriptions", <draft-ietf-ipp-not-spec-
12.txt>, June 21, 2004.
The resulting attribute registrations will be published in the [RFC2566]
ftp://ftp.iana.org/in-notes/iana/assignments/ipp/attributes/ R. deBry, T. Hastings, R. Herriot, S. Isaacson, P. Powell,
area. "Internet Printing Protocol/1.0: Model and Semantics", RFC 2566,
April 1999.
13.2 Attribute Value Registrations [RFC3196]
Hastings, T., Manros, C., Zehler, P., Kugler, C., and H. Holst,
"Internet Printing Protocol/1.1: Implementer's Guide", RFC 3196,
November 2001.
This section lists the additional values that are defined in this [RFC3239]
document for existing attributes. Kugler, C., Lewis, H., and T. Hastings, "Internet Printing Protocol
(IPP): Requirements for Job, Printer, and Device Administrative
Operations", RFC 3239, February 2002.
13.2.1 Additional Keyword Attribute Value Registrations for the "job- Change History of this document is available at:
state-reasons" attribute ftp://ftp.pwg.org/pub/pwg/ipp/new_OPS/ipp-ops-set2-change-
history.txt
The following table the new keyword attribute value defined in this 14 IANA Considerations
document as an additional type2 keyword value for use with the "job-
state-reasons" Job Description attribute. This is to be registered
according to the procedures in RFC 2911 [RFC2911] section 6.1.
type2 keyword Attribute Values: Ref. Section: This section contains the registration information for IANA to add to
job-suspended RFC NNNN 9.1 the IPP Registry according to the procedures defined in RFC 2911
[RFC2911] section 6 to cover the definitions in this document. The
resulting registrations will be published as additions to the
http://www.iana.org/assignments/ipp-registrations file.
The resulting enum attribute value registration will be published in Note to RFC Editors: Replace [RFCnnnn] below with the RFC number
the for this document, so that it accurately reflects the content of the
ftp://ftp.iana.org/in-notes/iana/assignments/ipp/attribute- information for the IANA Registry.
values/job-state-reasons/
area.
13.2.2 Additional Keyword Attribute Value Registrations for the 14.1 Attribute Registrations
"printer-state-reasons" attribute
The following table all the new keyword attribute values defined in The following table lists all the attributes defined in this
this document as additional type2 keyword values for use with the document. These are to be registered according to the procedures in
"printer-state-reasons" Printer Description attribute. These are to RFC 2911 [RFC2911] section 6.2.
be registered according to the procedures in RFC 2911 [RFC2911]
section 6.1.
type2 keyword Attribute Values: Ref. Section: Name Reference Section
hold-new-jobs RFC NNNN 8.1 -------------------------------------- --------- -------
deactivated RFC NNNN 8.2 Job Description attributes:
original-requesting-user-name (name(MAX)) [RFCnnnn] 10.8.2
The resulting enum attribute value registrations will be published in Printer Description attributes:
the subordinate-printers-supported (1setOf uri) [RFCnnnn] 7.1
ftp://ftp.iana.org/in-notes/iana/assignments/ipp/attribute- parent-printers-supported (1setOf uri) [RFCnnnn] 7.2
values/printer-state-reasons/
area.
13.3 Additional Enum Attribute Value Registrations for the "operations- Operation attributes:
supported" Printer Attribute original-requesting-user-name (name(MAX)) [RFCnnnn] 10.8.2
The following table lists all the new enum attribute values defined 14.2 Attribute Value Registrations
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 in RFC 2911 [RFC2911]
section 6.1.
type2 enum Attribute Values: Value Ref. Section: This section lists the additional values that are defined in this
Enable-Printer 0x22 RFC NNNN 3 document for existing attributes.
Disable-Printer 0x23 RFC NNNN 3
Pause-Printer-After-Current-Job 0x24 RFC NNNN 3
Hold-New-Jobs 0x25 RFC NNNN 3
Release-Held-New-Jobs 0x26 RFC NNNN 3
Deactivate-Printer 0x27 RFC NNNN 3
Activate-Printer 0x28 RFC NNNN 3
Restart-Printer 0x29 RFC NNNN 3
Shutdown-Printer 0x2A RFC NNNN 3
Startup-Printer 0x2B RFC NNNN 3
The resulting enum attribute value registrations will be published in Attribute
the Value Reference Section
ftp://ftp.iana.org/in-notes/iana/assignments/ipp/attribute- --------------------- --------- -------
values/operations-supported/ job-state-reasons (1setOf type2 keyword)
area. job-suspended [RFCnnnn] 9.1
13.4 Additional keyword Attribute Value Registrations for the "notify- printer-state-reasons (1setOf type2 keyword)
events" Subscription Template Attribute hold-new-jobs [RFCnnnn] 8.1
deactivated [RFCnnnn] 8.2
The following table lists the event keyword defined in this document 14.3 Additional Enum Attribute Value Registrations
as an additional type2 keyword value for use with the "notify-events"
Subscription Template attribute, i.e., the "notify-events", "notify-
events-default", and "notify-events-supported" attributes. This is
to be registered according to the procedures in RFC 2911 [RFC2911]
section 6.1 and [ipp-ntfy] section 13.6.
type2 keyword Attribute Value: Ref. Section: The following table lists all the new enum attribute values defined
job-forwarded-operation-failed RFC NNNN 10 in this document. These are to be registered according to the
procedures in RFC 2911 [RFC2911] section 6.1.
The resulting status code registration will be published in the Attribute (attribute syntax)
ftp://ftp.iana.org/in-notes/iana/assignments/ipp/attribute- Value Name Reference Section
values/notify-events/ ----- -------------------- --------- -------
area. operations-supported (1setOf type2 enum) [RFC2911] 4.4.1
0x0022 Enable-Printer [RFCnnnn] 3
0x0023 Disable-Printer [RFCnnnn] 3
0x0024 Pause-Printer-After-Current-Job [RFCnnnn] 3
0x0025 Hold-New-Jobs [RFCnnnn] 3
0x0026 Release-Held-New-Jobs [RFCnnnn] 3
0x0027 Deactivate-Printer [RFCnnnn] 3
0x0028 Activate-Printer [RFCnnnn] 3
0x0029 Restart-Printer [RFCnnnn] 3
0x002A Shutdown-Printer [RFCnnnn] 3
0x002B Startup-Printer [RFCnnnn] 3
0x002C Reprocess-Job [RFCnnnn] 4
0x002D Cancel-Current-Job [RFCnnnn] 4
0x002E Suspend-Current-Job [RFCnnnn] 4
0x002F Resume-Job [RFCnnnn] 4
0x0030 Promote-Job [RFCnnnn] 4
0x0031 Schedule-Job-After [RFCnnnn] 4
13.5 Operation Registrations 14.4 Operation Registrations
The following table lists all of the operations defined in this The following table lists all of the operations defined in this
document. These are to be registered according to the procedures in document. These are to be registered according to the procedures in
RFC 2911 [RFC2911] section 6.4. RFC 2911 [RFC2911] section 6.4.
Operations: Ref. Section: Name Reference Section
Enable-Printer Operation RFC NNNN 3.1.2 ----------------------------- --------- -------
Disable-Printer Operation RFC NNNN 3.1.1 Activate-Printer [RFCnnnn] 3.4.2
Pause-Printer-After-Current-Job Operation RFC NNNN 3.2.1 Cancel-Current-Job [RFCnnnn] 4.2
Hold-New-Jobs Operation RFC NNNN 3.3.1 Deactivate-Printer [RFCnnnn] 3.4.1
Release-Held-New-Jobs Operation RFC NNNN 3.3.2 Disable-Printer [RFCnnnn] 3.1.1
Deactivate-Printer Operation RFC NNNN 3.4.1 Enable-Printer [RFCnnnn] 3.1.2
Activate-Printer Operation RFC NNNN 3.4.2 Hold-New-Jobs [RFCnnnn] 3.3.1
Restart-Printer Operation RFC NNNN 3.5.1 Pause-Printer-After-Current-Job [RFCnnnn] 3.2.1
Shutdown-Printer Operation RFC NNNN 3.5.2 Promote-Job [RFCnnnn] 4.4.1
Startup-Printer Operation RFC NNNN 3.5.3 Release-Held-New-Jobs [RFCnnnn] 3.3.2
Reprocess-Job [RFCnnnn] 4.1
The resulting enum attribute value registrations will be published in Restart-Printer [RFCnnnn] 3.5.1
the Resume-Job [RFCnnnn] 4.3.2
ftp://ftp.iana.org/in-notes/iana/assignments/ipp/attribute- Schedule-Job-After [RFCnnnn] 4.4.2
values/operations/ Shutdown-Printer [RFCnnnn] 3.5.2
area. Startup-Printer [RFCnnnn] 3.5.3
Suspend-Current-Job [RFCnnnn] 4.3.1
13.6 Status code Registrations 14.5 Status code Registrations
The following table lists the status code defined in this document. The following table lists the status code defined in this document.
This is to be registered according to the procedures in RFC 2911 This is to be registered according to the procedures in RFC 2911
[RFC2911] section 6.6. [RFC2911] section 6.6.
Status codes: Ref. Section: Value Name Reference Section
server-error-printer-is-deactivated RFC NNNN 5.1 ------ ------------------------ --------- -------
0x0000:0x00FF - "successful"
none at this time
The resulting status code registration will be published in the 0x0100:0x01FF - "informational"
ftp://ftp.iana.org/in-notes/iana/assignments/ipp/status-codes/ none at this time
area.
14 Internationalization Considerations 0x0300:0x03FF - "redirection" - -- See RFC 2911 Errata
none at this time
0x0400:0x04FF - "client-error"
none at this time
0x0500:0x05FF - "server-error"
0x050A server-error-printer-is-deactivated [RFCnnnn] 5.1
15 Internationalization Considerations
This document has the same localization considerations as the This document has the same localization considerations as the
[RFC2911]. [RFC2911].
15 Security Considerations 16 Security Considerations
The IPP Model and Semantics document [RFC2911] discusses high level The IPP Model and Semantics document [RFC2911] discusses high level
security requirements (Client Authentication, Server Authentication security requirements (Client Authentication, Server Authentication
and Operation Privacy). Client Authentication is the mechanism by and Operation Privacy). Client Authentication is the mechanism by
which the client proves its identity to the server in a secure which the client proves its identity to the server in a secure
manner. Server Authentication is the mechanism by which the server manner. Server Authentication is the mechanism by which the server
proves its identity to the client in a secure manner. Operation proves its identity to the client in a secure manner. Operation
Privacy is defined as a mechanism for protecting operations from Privacy is defined as a mechanism for protecting operations from
eavesdropping. eavesdropping.
16 Author's Addresses Printer operations defined in this specification (see section 3) and
Pause-Printer, Resume-Printer, and Purge-Job (defined in [RFC2911])
are intended for use by an operator and/or administrator. Job
operations defined in this specification (see section 4) and Cancel-
Job, Hold-Job, Release-Job defined in [RFC2911]) are intended for use
by the job owner or may be an operator or administrator of the
Printer object. These operator and administrative operations affect
the service of all users. In appropriate use of an administrative
operation by an un-authenticated end user could affect the quality of
service for all users. Therefore, for both inter-net and intra-net,
conformance to this specification REQUIRES that initial configuration
of IPP Printer implementations MUST require successful certificate-
based TLS [RFC2246] client authentication and successful operator and
administrator authorization (see [RFC2911] sections 5.2.7 and 8 and
[RFC2910]) for any administrative operations defined in this
document. [RFC2910] REQUIRES the IPP Printer to support the minimum
cypher suite required for TLS/1.0. The means for authorizing an
operator or administrator of the Printer object are outside the scope
of this specification, [RFC2911], and [RFC2910].
The use of TLS and Client Authentication solves the Denial of
Service, Man in the Middle, and Masquerading security threats.
17 Author's Addresses
Carl Kugler Carl Kugler
P.O. Box 1900
IBM IBM
Boulder CO 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
Tom Hastings Tom Hastings, editor
Xerox Corporation Xerox Corporation
737 Hawaii St. ESAE 231 701 Aviation Blvd. ESAE 231
El Segundo, CA 90245 El Segundo, CA 90245
Phone: 310-333-6413 Phone: 310-333-6413
Fax: 310-333-5514 Fax: 310-333-5514
e-mail: hastings@cp10.es.xerox.com e-mail: hastings@cp10.es.xerox.com
Harry Lewis Harry Lewis
P.O. Box 1900
IBM IBM
Boulder CO 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
IPP Web Page: http://www.pwg.org/ipp/ 18 IPR Notice
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.
17 References
[ipp-iig]
Hastings, T., Manros, C., "Internet Printing Protocol/1.1: draft-
ietf-ipp-implementers-guide-v11-03.txt, work in progress, July 17,
2001.
[ipp-ntfy]
Isaacson, S., Martin, J., deBry, R., Hastings, T., Shepherd, M.,
Bergman, R., "Internet Printing Protocol/1.1: IPP Event
Notification Specification", <draft-ietf-ipp-not-spec-07.txt>, July
17, 2001.
[ipp-ops-admin-req]
Hastings, T., "Internet Printing Protocol (IPP): Requirements for
Job, Printer, and Device Administrative Operations", <draft-ietf-
ipp-ops-admin-req-01.txt>, work in progress, July 17, 2001.
[RFC2566]
R. deBry, T. Hastings, R. Herriot, S. Isaacson, P. Powell,
"Internet Printing Protocol/1.0: Model and Semantics", RFC 2566,
April 1999.
[RFC2910] The IETF takes no position regarding the validity or scope of any
Herriot, R., Butler, S., Moore, P., Tuner, R., "Internet Printing Intellectual Property Rights or other rights that might be claimed to
Protocol/1.1: Encoding and Transport", RFC 2910, September 2000. pertain to the implementation or use of the technology described in
this document or the extent to which any license under such rights
might or might not be available; nor does it represent that it has
made any independent effort to identify any such rights. Information
on the procedures with respect to rights in RFC documents can be
found in BCP 78 and BCP 79.
[RFC2911] Copies of IPR disclosures made to the IETF Secretariat and any
R. deBry, T. Hastings, R. Herriot, S. Isaacson, P. Powell, assurances of licenses to be made available, or the result of an
"Internet Printing Protocol/1.0: Model and Semantics", RFC 2911, attempt made to obtain a general license or permission for the use of
September 2000. such proprietary rights by implementers or users of this
specification can be obtained from the IETF on-line IPR repository at
http://www.ietf.org/ipr.
Change History of this document is available at: The IETF invites any interested party to bring to its attention any
ftp://ftp.pwg.org/pub/pwg/ipp/new_OPS/ipp-ops-set2-change- copyrights, patents or patent applications, or other proprietary
history.txt rights that may cover technology that may be required to implement
this standard. Please address the information to the IETF at ietf-
ipr@ietf.org."
18 Summary of Base IPP Documents 19 Summary of Base IPP Documents
The base set of IPP documents includes: The base set of IPP documents includes:
Design Goals for an Internet Printing Protocol [RFC2567] Design Goals for an Internet Printing Protocol [RFC2567]
Rationale for the Structure and Model and Protocol for the Internet Rationale for the Structure and Model and Protocol for the Internet
Printing Protocol [RFC2568] Printing Protocol [RFC2568]
Internet Printing Protocol/1.1: Model and Semantics [RFC2911] Internet Printing Protocol/1.1: Model and Semantics [RFC2911]
Internet Printing Protocol/1.1: Encoding and Transport [RFC2910] Internet Printing Protocol/1.1: Encoding and Transport [RFC2910]
Internet Printing Protocol/1.1: Implementer's Guide [ipp-iig] Internet Printing Protocol/1.1: Implementer's Guide [RFC3196]
Mapping between LPD and IPP Protocols [RFC2569] Mapping between LPD and IPP Protocols [RFC2569]
Internet Printing Protocol (IPP): IPP Event Notifications and
Subscriptions [ipp-ntfy]
The "Design Goals for an Internet Printing Protocol" document takes a The "Design Goals for an Internet Printing Protocol" document takes a
broad look at distributed printing functionality, and it enumerates broad look at distributed printing functionality, and it enumerates
real-life scenarios that help to clarify the features that need to be real-life scenarios that help to clarify the features that need to be
included in a printing protocol for the Internet. It identifies included in a printing protocol for the Internet. It identifies
requirements for three types of users: end users, operators, and requirements for three types of users: end users, operators, and
administrators. It calls out a subset of end user requirements that administrators. It calls out a subset of end user requirements that
are satisfied in IPP/1.0. A few OPTIONAL operator operations have are satisfied in IPP/1.0. A few OPTIONAL operator operations have
been added to IPP/1.1. been added to IPP/1.1.
skipping to change at page 54, line 43 skipping to change at page 50, line 11
objects. It is intended to help them understand IPP/1.1 and some of 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 the considerations that may assist them in the design of their client
and/or IPP object implementations. For example, a typical order of and/or IPP object implementations. For example, a typical order of
processing requests is given, including error checking. Motivation processing requests is given, including error checking. Motivation
for some of the specification decisions is also included. for some of the specification decisions is also included.
The "Mapping between LPD and IPP Protocols" document gives some The "Mapping between LPD and IPP Protocols" document gives some
advice to implementers of gateways between IPP and LPD (Line Printer advice to implementers of gateways between IPP and LPD (Line Printer
Daemon) implementations. Daemon) implementations.
The "IPP Event Notifications and Subscriptions" document defines an 20 Full Copyright Statement
extension to IPP/1.0 [RFC2566, RFC2565] and IPP/1.1 [RFC2911,
RFC2910]. This extension allows a client to subscribe to printing
related Events and defines the semantics for delivering asynchronous
Event Notifications to the specified Notification Recipient via a
specified Delivery Method (i.e., protocols) defined in (separate)
Delivery Method documents.
19 Appendix A: Full Copyright Statement
Copyright (C) The Internet Society (1998,1999,2000,2001). All Rights Copyright (C) The Internet Society
Reserved (1998,1999,2000,2001,2002,2003,2004). All Rights 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
document itself may not be modified in any way, such as by removing document itself may not be modified in any way, such as by removing
the copyright notice or references to the Internet Society or other the copyright notice or references to the Internet Society or other
Internet organizations, except as needed for the purpose of Internet organizations, except as needed for the purpose of
 End of changes. 

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