| < 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. | |||
| Abstract | By submitting this Internet-Draft, we certify that any applicable | |||
| patent or other IPR claims of which we are aware have been disclosed, | ||||
| This document specifies the following 16 additional OPTIONAL | or will be disclosed, and any of which we become aware will be | |||
| operations for use with the Internet Printing Protocol/1.0 (IPP) | disclosed, in accordance with RFC 3668. | |||
| [RFC2565, RFC2566] and IPP/1.1 [RFC2910, RFC2911]: | ||||
| Printer operations: Job operations: | Abstract | |||
| Enable-Printer and Disable-Printer Reprocess-Job | ||||
| Pause-Printer-After-Current-Job Cancel-Current-Job | ||||
| Hold-New-Jobs and Release-Held-New- Suspend-Current-Job and | ||||
| Jobs Resume-Job | ||||
| Deactivate-Printer and Activate- Promote-Job | ||||
| Printer | ||||
| Restart-Printer Schedule-Job-After | ||||
| Shutdown-Printer and Startup-Printer | ||||
| New Job Description attributes: "original-requesting-user-name" | This document specifies the following 16 additional OPTIONAL system | |||
| New Printer Description attributes: "subordinate-printers-supported" | administration operations for use with the Internet Printing | |||
| and "parent-printers-supported". | Protocol/1.1 (IPP) [RFC2910, RFC2911]: | |||
| New "printer-state-reasons" values: 'hold-new-jobs' and | Printer operations: Job operations: | |||
| 'deactivated'. | Enable-Printer and Disable-Printer Reprocess-Job | |||
| New "job-state-reasons" attribute values: 'job-suspended'. | Pause-Printer-After-Current-Job Cancel-Current-Job | |||
| New Job event keyword: 'job-forwarded-operation-failed'. | Hold-New-Jobs and Release-Held-New-Jobs Suspend-Current-Job | |||
| New status code: 'server-error-printer-is-deactivated'. | Deactivate-Printer and Activate-Printer Resume-Job | |||
| Restart-Printer Promote-Job | ||||
| Shutdown-Printer and Startup-Printer Schedule-Job-After | ||||
| plus a few associated attributes, values, and status codes and | ||||
| using the IPP Printer object to manage printer fan-out and fan-in. | ||||
| 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 | |||
| List of Tables | 20 Full Copyright Statement.......................................50 | |||
| Table 1 - Printer Operation Operation-Id assignments...............9 | List of Tables | |||
| Table 2 - Pause and Resume Printer Operations.....................12 | ||||
| Table 1 - Printer Operation Operation-Id assignments...............7 | ||||
| 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 | |||
| 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 | ||||
| Job Creation operations | ||||
| Disable-Printer 0x23 Prevents the target Printer from | ||||
| accepting Job Creation operations | ||||
| Pause-Printer- Pause the Printer after the current | ||||
| After-Current- job has been sent to the Output | ||||
| Job 0x24 Device. | ||||
| Hold-New-Jobs 0x25 Finishes processing all currently | ||||
| pending jobs. Any new jobs are | ||||
| placed in the 'pending-held' state. | ||||
| Release-Held- 0x26 Release all jobs to the 'pending' | ||||
| New-Jobs state that had been held by the | ||||
| effect of a previous Hold-New-Jobs | ||||
| operation and condition the Printer | ||||
| to no longer hold new jobs. | ||||
| Deactivate- 0x27 Puts the Printer into a read-only | ||||
| Printer deactivated state. | ||||
| Activate- 0x28 Restores the Printer to normal | ||||
| Printer activity | ||||
| Restart-Printer 0x29 Restarts the target Printer and re- | ||||
| initializes the software | ||||
| Shutdown- 0x2A Shuts down the target Printer so that | ||||
| Printer it cannot be restarted or queried | ||||
| Startup-Printer 0x2B Starts up the instance of the Printer | Enable-Printer 0x22 Allows the target Printer to accept | |||
| object | Job Creation operations | |||
| Disable-Printer 0x23 Prevents the target Printer from | ||||
| accepting Job Creation operations | ||||
| Pause-Printer- 0x24 Pause the Printer after the current | ||||
| After-Current- job has been sent to the Output | ||||
| Job Device. | ||||
| Hold-New-Jobs 0x25 Finishes processing all currently | ||||
| pending jobs. Any new jobs are | ||||
| placed in the 'pending-held' state. | ||||
| Release-Held- 0x26 Release all jobs to the 'pending' | ||||
| New-Jobs state that had been held by the | ||||
| effect of a previous Hold-New-Jobs | ||||
| operation and condition the Printer | ||||
| to no longer hold new jobs. | ||||
| Deactivate- 0x27 Puts the Printer into a read-only | ||||
| Printer deactivated state. | ||||
| Activate- 0x28 Restores the Printer to normal | ||||
| Printer activity | ||||
| Restart-Printer 0x29 Restarts the target Printer and re- | ||||
| initializes the software | ||||
| Shutdown- 0x2A Shuts down the target Printer so that | ||||
| Printer it cannot be restarted or queried | ||||
| Startup-Printer 0x2B Starts up the instance of the Printer | ||||
| 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 12, line 6 ¶ | skipping to change at page 10, line 6 ¶ | |||
| These operations allow the operator to control whether or not the | These operations allow the operator to control whether or not the | |||
| Printer will send new IPP jobs to the associated Output Device(s) | Printer will send new IPP jobs to the associated Output Device(s) | |||
| that the IPP Printer object represents. These operations have no | that the IPP Printer object represents. These operations have no | |||
| other effect on the Printer, so that the Printer continues to accept | other effect on the Printer, so that the Printer continues to accept | |||
| all operations. In other words, these operation control the "output | all operations. In other words, these operation control the "output | |||
| of new jobs" to the Output Device(s) while the Disable and Enable | of new jobs" to the Output Device(s) while the Disable and Enable | |||
| Printer Operations (see section 3.1) independently control the "input | Printer Operations (see section 3.1) independently control the "input | |||
| of new jobs" to the IPP Printer. | of new jobs" to the IPP Printer. | |||
| Table 2 - Pause and Resume Printer Operations | Table 2 - Pause and Resume Printer Operations | |||
| Pause and Resume Printers Description | ||||
| Pause and Resume Printers Description | IPP/1.1 Pause Printer Stops the IPP Printer from sending | |||
| new IPP Jobs to the Output Device(s) | ||||
| IPP/1.1 Pause Printer Stops the IPP Printer from sending | either immediately or after the | |||
| new IPP Jobs to the Output Device(s) | current job completes, depending on | |||
| either immediately or after the | implementation, as defined in | |||
| current job completes, depending on | [RFC2911]. | |||
| implementation, as defined in | Pause-Printer-After- Stops the IPP Printer from sending | |||
| [RFC2911]. | Current-Job new IPP Jobs to the Output Device(s) | |||
| after the current jobs finish | ||||
| Pause-Printer-After- Stops the IPP Printer from sending | Resume-Printer Starts the IPP Printer sending IPP | |||
| Current-Job new IPP Jobs to the Output Device(s) | Jobs to the Output Device again. | |||
| after the current jobs finish | ||||
| Resume-Printer Starts the IPP Printer sending IPP | ||||
| Jobs to the Output Device again. | ||||
| 3.2.1 Pause-Printer-After-Current-Job operation | 3.2.1 Pause-Printer-After-Current-Job operation | |||
| This OPTIONAL operation allows a client to stop the Printer object | This OPTIONAL operation allows a client to stop the Printer object | |||
| from starting to send IPP jobs to any of its Output Devices or | from starting to send IPP jobs to any of its Output Devices or | |||
| Subordinate Printers. If the IPP Printer is in the middle of sending | Subordinate Printers. If the IPP Printer is in the middle of sending | |||
| an IPP job to an Output Device or Subordinate Printer, the IPP | an IPP job to an Output Device or Subordinate Printer, the IPP | |||
| Printer MUST complete sending that Job. However, after receiving | Printer MUST complete sending that Job. However, after receiving | |||
| this operation, the IPP Printer MUST NOT start to send any additional | this operation, the IPP Printer MUST NOT start to send any additional | |||
| IPP jobs to any of its Output Devices or Subordinate Printers. In | IPP jobs to any of its Output Devices or Subordinate Printers. In | |||
| skipping to change at page 14, line 5 ¶ | skipping to change at page 11, line 20 ¶ | |||
| applies. However, the IPP Printer NEED NOT update those jobs' "job- | applies. However, the IPP Printer NEED NOT update those jobs' "job- | |||
| state-reasons" attributes and only need return the 'printer-stopped' | state-reasons" attributes and only need return the 'printer-stopped' | |||
| value when those jobs are queried using the Get-Job-Attributes or | value when those jobs are queried using the Get-Job-Attributes or | |||
| Get-Jobs operations (so-called "lazy evaluation"). | Get-Jobs operations (so-called "lazy evaluation"). | |||
| The IPP Printer MUST accept the request in any state and transition | The IPP Printer MUST accept the request in any state and transition | |||
| the Printer to the indicated new "printer-state" and MUST add the | the Printer to the indicated new "printer-state" and MUST add the | |||
| indicated value to "printer-state-reasons" attribute before returning | indicated value to "printer-state-reasons" attribute before returning | |||
| as follows: | as follows: | |||
| Table 3 - State Transition Table for Pause-Printer-After-Current-Job | Table 3 - State Transition Table for Pause-Printer-After-Current-Job | |||
| operation | operation | |||
| Current New "printer IPP Printer's response status | ||||
| "printer- "printer- -state- code and action: | ||||
| state" state" reasons" | ||||
| REQUIRED/OPTIONAL state | ||||
| transition for a Printer to | ||||
| support | ||||
| Current New "printer IPP Printer's response status | 'idle' 'stopped' 'paused' REQUIRED: 'successful-ok' | |||
| "printer- "printer- -state- code and action: | 'processing' 'processing' 'moving- OPTIONAL: 'successful-ok'; | |||
| state" state" reasons" | to- Later, when the IPP Printer | |||
| REQUIRED/OPTIONAL state | paused' has finished sending IPP jobs | |||
| transition for a Printer to | to an Output Device, the | |||
| support | "printer-state" becomes | |||
| 'stopped', and the 'paused' | ||||
| 'idle' 'stopped' 'paused' REQUIRED: 'successful-ok' | value replaces the 'moving-to- | |||
| paused' value in the "printer- | ||||
| 'processing' 'processing' 'moving- OPTIONAL: 'successful-ok'; | state-reasons" attribute | |||
| to- Later, when the IPP Printer | 'processing' 'stopped' 'paused' REQUIRED: 'successful-ok'; | |||
| paused' has finished sending IPP jobs | the IPP Printer wasn't in the | |||
| to an Output Device, the | middle of sending an IPP job | |||
| "printer-state" becomes | to an Output Device | |||
| 'stopped', and the 'paused' | 'stopped' 'stopped' 'paused' REQUIRED: 'successful-ok' | |||
| value replaces the 'moving-to- | ||||
| paused' value in the "printer- | ||||
| state-reasons" attribute | ||||
| 'processing' 'stopped' 'paused' REQUIRED: 'successful-ok'; | ||||
| the IPP Printer wasn't in the | ||||
| middle of sending an IPP job | ||||
| to an Output Device | ||||
| 'stopped' 'stopped' 'paused' REQUIRED: 'successful-ok' | ||||
| Access Rights: The authenticated user (see [RFC2911] section 8.3) | Access Rights: The authenticated user (see [RFC2911] section 8.3) | |||
| performing this operation must be an operator or administrator of the | performing this operation must be an operator or administrator of the | |||
| Printer object (see [RFC2911] Sections 1 and 8.5). | Printer object (see [RFC2911] Sections 1 and 8.5). | |||
| The Pause-Printer-After-Current-Job Request and Pause-Printer-After- | The Pause-Printer-After-Current-Job Request and Pause-Printer-After- | |||
| Current-Job Response have the same attribute groups and attributes as | Current-Job Response have the same attribute groups and attributes as | |||
| the Pause-Printer operation (see [RFC2911] sections 3.2.7.1 and | the Pause-Printer operation (see [RFC2911] sections 3.2.7.1 and | |||
| 3.2.7.2), including the new "printer-message-from-operator" operation | 3.2.7.2), including the new "printer-message-from-operator" operation | |||
| attribute (see section 6). | attribute (see section 6). | |||
| skipping to change at page 21, line 5 ¶ | skipping to change at page 18, line 5 ¶ | |||
| All Job operations are directed at Job objects. A client MUST always | All Job operations are directed at Job objects. A client MUST always | |||
| supply some means of identifying the Job object in order to identify | supply some means of identifying the Job object in order to identify | |||
| the correct target of the operation. That job identification MAY | the correct target of the operation. That job identification MAY | |||
| either be a single Job URI or a combination of a Printer URI with a | either be a single Job URI or a combination of a Printer URI with a | |||
| Job ID. The IPP object implementation MUST support both forms of | Job ID. The IPP object implementation MUST support both forms of | |||
| identification for every job. | identification for every job. | |||
| The Job Operations defined in this document are summarized in Table | The Job Operations defined in this document are summarized in Table | |||
| 4: | 4: | |||
| Table 4 - Job operation Operation-Id assignments | Table 4 - Job operation Operation-Id assignments | |||
| Operation Name Operation- Brief description | ||||
| Operation Name Operation- Brief description | Id | |||
| Id | ||||
| Reprocess-Job 0x2C Creates a copy of a completed target | ||||
| job with a new Job ID and processes it | ||||
| Cancel-Current- 0x2D Cancels the current job on the target | ||||
| Job Printer or the specified job if it is | ||||
| the current job | ||||
| Suspend- 0x2E Suspends the current processing job on | ||||
| Current-Job the target Printer or the specified | ||||
| job if it is the current job, allowing | ||||
| other jobs to be processed instead | ||||
| Resume-Job 0x2F Resume the suspended target job | ||||
| Promote-Job 0x30 Promote the pending target job to be | ||||
| next after the current job(s) complete | ||||
| Schedule-Job- 0x31 Schedule the target job immediately | Reprocess-Job 0x2C Creates a copy of a completed target | |||
| After after the specified job, all other | job with a new Job ID and processes it | |||
| scheduling factors being equal. | Cancel-Current- 0x2D Cancels the current job on the target | |||
| Job Printer or the specified job if it is | ||||
| the current job | ||||
| Suspend- 0x2E Suspends the current processing job on | ||||
| Current-Job the target Printer or the specified | ||||
| job if it is the current job, allowing | ||||
| other jobs to be processed instead | ||||
| Resume-Job 0x2F Resume the suspended target job | ||||
| Promote-Job 0x30 Promote the pending target job to be | ||||
| next after the current job(s) complete | ||||
| Schedule-Job- 0x31 Schedule the target job immediately | ||||
| After after the specified job, all other | ||||
| scheduling factors being equal. | ||||
| 4.1 Reprocess-Job Operation | 4.1 Reprocess-Job Operation | |||
| This OPTIONAL operation is a create job operation that allows a | This OPTIONAL operation is a create job operation that allows a | |||
| client to re-process a copy of a job that had been retained in the | client to re-process a copy of a job that had been retained in the | |||
| queue after processing completed, was canceled, or was aborted (see | queue after processing completed, was canceled, or was aborted (see | |||
| [RFC2911] section 4.3.7.2). This operation is the same as the | [RFC2911] section 4.3.7.2). This operation is the same as the | |||
| Restart-Job operation (see [RFC2911] section 3.3.7), except that the | Restart-Job operation (see [RFC2911] section 3.3.7), except that the | |||
| Printer creates a new job that is a copy of the target job and the | Printer creates a new job that is a copy of the target job and the | |||
| target job is unchanged. The new job is assigned new values to the | target job is unchanged. The new job is assigned new values to the | |||
| 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 REQ REQ REQ REQ REQ | ||||
| attributes-natural-language REQ REQ REQ REQ REQ REQ REQ | ||||
| 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 | attributes-charset REQ REQ | |||
| operator | attributes-natural-language REQ REQ | |||
| printer-uri REQ REQ | ||||
| requesting-user-name REQ REQ | ||||
| printer-message-from-operator Note OPT | ||||
| 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 | ||||
| Attribute | ||||
| attributes- REQ REQ REQ REQ REQ REQ REQ REQ REQ REQ | ||||
| charset | ||||
| attributes- REQ REQ REQ REQ REQ REQ REQ REQ REQ REQ | ||||
| natural- | ||||
| language | ||||
| 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 | ||||
| * ** | ||||
| attributes-charset REQ REQ REQ REQ | ||||
| attributes-natural-language REQ REQ REQ REQ | ||||
| printer-uri REQ REQ REQ REQ | ||||
| job-uri REQ REQ REQ | ||||
| job-id REQ REQ REQ REQ | ||||
| requesting-user-name REQ REQ REQ REQ | ||||
| job-message-from-operator OPT OPT OPT Note | ||||
| message*** OPT OPT OPT n/a | ||||
| job-hold-until n/a n/a OPT* n/a | ||||
| 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 38, line 23 ¶ | skipping to change at page 34, line 23 ¶ | |||
| connect, including IPP | connect, including IPP | |||
| Output Device | Output Device | |||
| +---------------+ | +---------------+ | |||
| | ########### | | | ########### | | |||
| O +--------+ | # (Leaf) # | | O +--------+ | # (Leaf) # | | |||
| /|\ | client |------------IPP-----------------># Printer # | | /|\ | client |------------IPP-----------------># Printer # | | |||
| / \ +--------+ | # Object # | | / \ +--------+ | # Object # | | |||
| | ########### | | | ########### | | |||
| +---------------+ | +---------------+ | |||
| Figure 1 - Embedded Printer object | Figure 1 - Embedded Printer object | |||
| ########### Output Device | ########### Output Device | |||
| O +--------+ # (Leaf) # +---------------+ | O +--------+ # (Leaf) # +---------------+ | |||
| /|\ | client |---IPP----># Printer #---any->| | | /|\ | client |---IPP----># Printer #---any->| | | |||
| / \ +--------+ # object # | | | / \ +--------+ # object # | | | |||
| ########### +---------------+ | ########### +---------------+ | |||
| Figure 2 - Hosted Printer object | Figure 2 - Hosted Printer object | |||
| +---------------+ | +---------------+ | |||
| | | | | | | |||
| +->| Output Device | | +->| Output Device | | |||
| ########### any/ | | | ########### any/ | | | |||
| O +--------+ # (Leaf) # / +---------------+ | O +--------+ # (Leaf) # / +---------------+ | |||
| /|\ | client |---IPP----># Printer #--* | /|\ | client |---IPP----># Printer #--* | |||
| / \ +--------+ # Object # \ +---------------+ | / \ +--------+ # Object # \ +---------------+ | |||
| ########### any\ | | | ########### any\ | | | |||
| +->| Output Device | | +->| Output Device | | |||
| | | | | | | |||
| +---------------+ | +---------------+ | |||
| Figure 3 - Output Device Fan-Out | Figure 3 - Output Device Fan-Out | |||
| ########### ########### | ########### ########### | |||
| O +--------+ # Non-Leaf# # subord. # | O +--------+ # Non-Leaf# # subord. # | |||
| /|\ | client |---IPP----># Printer #---IPP----># Printer # | /|\ | client |---IPP----># Printer #---IPP----># Printer # | |||
| / \ +--------+ # object # # object # | / \ +--------+ # object # # 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 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: | |||
| Enable-Printer MUST NOT forward to any of its Subordinate | ||||
| Printer Operations: | Printers | |||
| Disable-Printer MUST NOT forward to any of its Subordinate | ||||
| Enable-Printer MUST NOT forward to any of its Subordinate | Printers | |||
| Printers | Hold-New-Jobs MUST NOT forward to any of its Subordinate | |||
| Printers | ||||
| Disable-Printer MUST NOT forward to any of its Subordinate | Release-Held-New- MUST NOT forward to any of its Subordinate | |||
| Printers | Jobs Printers | |||
| Deactivate-Printer MUST NOT forward to any of its Subordinate | ||||
| Hold-New-Jobs MUST NOT forward to any of its Subordinate | Printers | |||
| Printers | Activate-Printer MUST NOT forward to any of its Subordinate | |||
| Printers | ||||
| Release-Held-New- MUST NOT forward to any of its Subordinate | Restart-Printer MUST NOT forward to any of its Subordinate | |||
| Jobs Printers | Printers | |||
| Shutdown-Printer MUST NOT forward to any of its Subordinate | ||||
| Deactivate-Printer MUST NOT forward to any of its Subordinate | Printers | |||
| Printers | Startup-Printer MUST NOT forward to any of its Subordinate | |||
| Printers | ||||
| Activate-Printer MUST NOT forward to any of its Subordinate | IPP/1.1 Printer See [RFC2911] | |||
| Printers | Operations: | |||
| Get-Printer- MUST NOT forward to any of its Subordinate | ||||
| Restart-Printer MUST NOT forward to any of its Subordinate | Attributes Printers | |||
| Printers | Pause-Printer MUST NOT forward to any of its Subordinate | |||
| Printers | ||||
| Shutdown-Printer MUST NOT forward to any of its Subordinate | Resume-Printer MUST NOT forward to any of its Subordinate | |||
| Printers | Printers | |||
| Set operations: See [RFC3380] | ||||
| Startup-Printer MUST NOT forward to any of its Subordinate | Set-Printer- MUST NOT forward to any of its Subordinate | |||
| Printers | Attributes Printers | |||
| IPP/1.1 Printer See [RFC2911] | ||||
| Operations: | ||||
| Get-Printer- MUST NOT forward to any of its Subordinate | ||||
| Attributes Printers | ||||
| Pause-Printer MUST NOT forward to any of its Subordinate | ||||
| Printers | ||||
| Resume-Printer MUST NOT forward to any of its Subordinate | ||||
| Printers | ||||
| Printer Operation Non-Leaf Printer action | ||||
| Set operations: See [ipp-set-ops] | ||||
| Set-Printer- MUST NOT forward to any of its Subordinate | ||||
| 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 5 ¶ | skipping to change at page 39, line 5 ¶ | |||
| that it assigned to those assigned by its Subordinate Printer object | that it assigned to those assigned by its Subordinate Printer object | |||
| 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: | ||||
| Reprocess-Job MUST forward to the appropriate Job in one of | ||||
| its Subordinate Printers | ||||
| Cancel-Current- | ||||
| Job MUST NOT forward | ||||
| Resume-Job MUST forward to the appropriate Job in one of | ||||
| its Subordinate Printers | ||||
| Promote-Job MUST forward to the appropriate Job in one of | ||||
| its Subordinate Printers | ||||
| IPP/1.1 Printer | ||||
| Operations: | ||||
| Print-Job MUST forward immediately or queue to the | ||||
| appropriate Subordinate Printer | ||||
| Print-URI MUST forward immediately or queue to the | ||||
| appropriate Subordinate Printer | ||||
| Validate-Job MUST forward to the appropriate Subordinate | ||||
| Printer | ||||
| Create-Job MUST forward immediately or queue to the | ||||
| appropriate Subordinate Printer | ||||
| Get-Jobs MUST forward to all its Subordinate Printers | ||||
| Purge-Jobs MUST forward to all its Subordinate Printers | ||||
| IPP/1.1 Job | ||||
| operations: | ||||
| Send-Document MUST forward immediately or queue to the | ||||
| appropriate Job in one of its Subordinate | ||||
| Printers | ||||
| Send-URI MUST forward immediately or queue to the | ||||
| appropriate Job in one of its Subordinate | ||||
| 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 | ||||
| its Subordinate Printers | ||||
| Get-Job- MUST forward to the appropriate Job in one of | ||||
| Attributes its Subordinate Printers, if the Non-Leaf | ||||
| Printer doesn't know the complete status of the | ||||
| Job object | ||||
| Hold-Job MUST forward to the appropriate Job in one of | ||||
| its Subordinate Printers | ||||
| Release-Job MUST forward to the appropriate Job in one of | ||||
| its Subordinate Printers | ||||
| Restart-Job MUST forward to the appropriate Job in one of | ||||
| its Subordinate Printers | ||||
| IPP Set operations: See [ipp-set-ops] | ||||
| Set-Job- MUST forward to the appropriate Job in one of | Job operations: | |||
| Attributes its Subordinate Printers | Reprocess-Job MUST forward to the appropriate Job in one of | |||
| its Subordinate Printers | ||||
| Cancel-Current- MUST NOT forward | ||||
| Job | ||||
| Resume-Job MUST forward to the appropriate Job in one of | ||||
| its Subordinate Printers | ||||
| Promote-Job MUST forward to the appropriate Job in one of | ||||
| its Subordinate Printers | ||||
| IPP/1.1 Printer | ||||
| Operations: | ||||
| Print-Job MUST forward immediately or queue to the | ||||
| appropriate Subordinate Printer | ||||
| Print-URI MUST forward immediately or queue to the | ||||
| appropriate Subordinate Printer | ||||
| Validate-Job MUST forward to the appropriate Subordinate | ||||
| Printer | ||||
| Create-Job MUST forward immediately or queue to the | ||||
| appropriate Subordinate Printer | ||||
| Get-Jobs MUST forward to all its Subordinate Printers | ||||
| Purge-Jobs MUST forward to all its Subordinate Printers | ||||
| IPP/1.1 Job | ||||
| operations: | ||||
| Send-Document MUST forward immediately or queue to the | ||||
| appropriate Job in one of its Subordinate | ||||
| Printers | ||||
| Send-URI MUST forward immediately or queue to the | ||||
| appropriate Job in one of its Subordinate | ||||
| Printers | ||||
| Cancel-Job MUST forward to the appropriate Job in one of | ||||
| its Subordinate Printers | ||||
| Get-Job- MUST forward to the appropriate Job in one of | ||||
| Attributes its Subordinate Printers, if the Non-Leaf | ||||
| Printer doesn't know the complete status of the | ||||
| Job object | ||||
| Hold-Job MUST forward to the appropriate Job in one of | ||||
| its Subordinate Printers | ||||
| Release-Job MUST forward to the appropriate Job in one of | ||||
| its Subordinate Printers | ||||
| Restart-Job MUST forward to the appropriate Job in one of | ||||
| its Subordinate Printers | ||||
| IPP Set operations: See [RFC3380] | ||||
| Set-Job- MUST forward to the appropriate Job in one of | ||||
| 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 | ||||
| The Job and Printer Administrative operations defined in this | ||||
| document are OPTIONAL operations. However, some operations MUST be | ||||
| implemented if others are implemented as shown in Table 9. | ||||
| Table 9 - Conformance Requirement Dependencies for Operations | ||||
| Operations REQUIRED If any of these operations are supported: | ||||
| Enable-Printer Disable-Printer | ||||
| Disable-Printer Enable-Printer | ||||
| Pause-Printer Resume-Printer | ||||
| Resume-Printer Pause-Printer, Pause-Printer-After-Current- | ||||
| Job | ||||
| Hold-New-Jobs Release-Held-New-Jobs | ||||
| Release-Held-New-Jobs Hold-New-Jobs | ||||
| Activate-Printer, Deactivate-Printer | ||||
| Disable-Printer, | ||||
| Pause-Printer-After- | ||||
| Current-Job | ||||
| Deactivate-Printer, Activate-Printer | ||||
| Enable-Printer, | ||||
| Resume-Printer | ||||
| Restart-Printer none | 10.8.3 requesting-user-name (name(MAX)) operation attribute - additional | |||
| semantics | ||||
| Shutdown-Printer none | 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. | ||||
| Startup-Printer none | 10.8.4 job-originating-user-name (name(MAX)) Job Description attribute - | |||
| additional semantics | ||||
| Reprocess-Job none | 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. | ||||
| Cancel-Current-Job none | 11 Conformance Requirements | |||
| Resume-Job Suspend-Current-Job | The Job and Printer Administrative operations defined in this | |||
| document are OPTIONAL operations. However, some operations MUST be | ||||
| implemented if others are implemented as shown in Table 9. | ||||
| Suspend-Current-Job Resume-Job | Table 9 - Conformance Requirement Dependencies for Operations | |||
| Operations REQUIRED If any of these operations are | ||||
| supported: | ||||
| Promote-Job none | Enable-Printer Disable-Printer | |||
| Disable-Printer Enable-Printer | ||||
| Pause-Printer Resume-Printer | ||||
| Resume-Printer Pause-Printer, | ||||
| Pause-Printer-After-Current-Job | ||||
| Hold-New-Jobs Release-Held-New-Jobs | ||||
| Release-Held-New-Jobs Hold-New-Jobs | ||||
| Activate-Printer, Deactivate-Printer | ||||
| Disable-Printer, | ||||
| Pause-Printer-After-Current-Job | ||||
| Deactivate-Printer, Activate-Printer | ||||
| Enable-Printer, | ||||
| Resume-Printer | ||||
| Restart-Printer none | ||||
| Shutdown-Printer none | ||||
| Startup-Printer none | ||||
| Reprocess-Job none | ||||
| Cancel-Current-Job none | ||||
| Resume-Job Suspend-Current-Job | ||||
| Suspend-Current-Job Resume-Job | ||||
| 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 | ||||
| reasons" values: Requirement Operations are supported: | ||||
| "printer-state- Conformance If any of the following Printer | 'paused' REQUIRED Pause-Printer, | |||
| reasons" values: Requirement Operations are supported: | Pause-Printer-After-Current-Job, | |||
| or Deactivate-Printer | ||||
| 'paused' REQUIRED Pause-Printer, Pause-Printer- | 'hold-new-jobs' REQUIRED Hold-New-Jobs | |||
| After-Current-Job, or | 'moving-to-paused' OPTIONAL Pause-Printer, | |||
| Deactivate-Printer | Pause-Printer-After-Current-Job, | |||
| Deactivate-Printer | ||||
| 'hold-new-jobs' REQUIRED Hold-New-Jobs | 'deactivated' REQUIRED Deactivate-Printer | |||
| 'moving-to-paused' OPTIONAL Pause-Printer, Pause-Printer- | ||||
| After-Current-Job, 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 | ||||
| values: Requirement operations are supported: | ||||
| "job-state-reasons" Conformance If any of the following Job | 'job-suspended' REQUIRED Suspend-Current-Job | |||
| values: Requirement operations are supported: | 'printer-stopped' REQUIRED always REQUIRED | |||
| 'job-suspended' REQUIRED Suspend-Current-Job | ||||
| '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. 162 change blocks. | ||||
| 758 lines changed or deleted | 654 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||