tech-invite   World Map     

3GPP     Specs     Glossaries     Architecture     IMS     UICC       IETF     RFCs     Groups     SIP     ABNFs       Search

RFC 3998

 Errata 
Proposed STD
Pages: 46
Top     in Index     Prev     Next
in Group Index     Prev in Group     No Next: Highest Number in Group     Group: IPP

Internet Printing Protocol (IPP): Job and Printer Administrative Operations

Part 1 of 3, p. 1 to 16
None       Next RFC Part

 


Top       ToC       Page 1 
Network Working Group                                          C. Kugler
Request for Comments: 3998                                      H. Lewis
Category: Standards Track                                IBM Corporation
                                                        T. Hastings, Ed.
                                                       Xerox Corporation
                                                              March 2005


                   Internet Printing Protocol (IPP):
               Job and Printer Administrative Operations

Status of This Memo

   This document specifies an Internet standards track protocol for the
   Internet community, and requests discussion and suggestions for
   improvements.  Please refer to the current edition of the "Internet
   Official Protocol Standards" (STD 1) for the standardization state
   and status of this protocol.  Distribution of this memo is unlimited.

Copyright Notice

   Copyright (C) The Internet Society (2005).

Abstract

   This document specifies the following 16 additional OPTIONAL system
   administration operations for use with the Internet Printing
   Protocol/1.1 (IPP), plus a few associated attributes, values, and
   status codes, and using the IPP Printer object to manage printer
   fan-out and fan-in.

      Printer operations:                       Job operations:
      Enable-Printer and Disable-Printer        Reprocess-Job
      Pause-Printer-After-Current-Job           Cancel-Current-Job
      Hold-New-Jobs and Release-Held-New-Jobs   Suspend-Current-Job
      Deactivate-Printer and Activate-Printer   Resume-Job
      Restart-Printer                           Promote-Job
      Shutdown-Printer and Startup-Printer      Schedule-Job-After

Top       Page 2 
Table of Contents

   1.  Introduction..................................................  4
   2.  Terminology...................................................  4
       2.1.  Conformance Terminology.................................  4
       2.2.  Other Terminology.......................................  5
   3.  Definition of the Printer Operations..........................  6
       3.1.  The Disable and Enable Printer Operations...............  7
             3.1.1.  Disable-Printer Operation.......................  7
             3.1.2.  Enable-Printer Operation........................  8
       3.2.  The Pause and Resume Printer Operations.................  8
             3.2.1.  Pause-Printer-After-Current-Job Operation.......  9
       3.3.  Hold and Release New Jobs Operations.................... 11
             3.3.1.  Hold-New-Jobs Operation......................... 11
             3.3.2.  Release-Held-New-Jobs Operation................. 12
       3.4.  Deactivate and Activate Printer Operations.............. 12
             3.4.1.  Deactivate-Printer Operation.................... 13
             3.4.2.  Activate-Printer Operation...................... 13
       3.5.  Restart-Printer, Shutdown-Printer,
             and Startup-Printer Operations.......................... 14
             3.5.1.  Restart-Printer Operation....................... 14
             3.5.2.  Shutdown-Printer Operation...................... 14
             3.5.3.  Startup-Printer Operation....................... 15
   4.  Definition of the Job Operations.............................. 16
       4.1.  Reprocess-Job Operation................................. 17
       4.2.  Cancel-Current-Job Operation............................ 17
       4.3.  Suspend and Resume Job Operations....................... 18
             4.3.1.  Suspend-Current-Job Operation................... 19
             4.3.2.  Resume-Job Operation............................ 20
       4.4.  Job Scheduling Operations............................... 20
             4.4.1.  Promote-Job Operation........................... 20
             4.4.2.  Schedule-Job-After Operation.................... 21
   5.  Additional Status Codes....................................... 23
       5.1.  'server-error-printer-is-deactivated' (0x050A).......... 23
   6.  Use of Operation Attributes
       That Are Messages from the Operator........................... 23
   7.  New Printer Description Attributes............................ 26
       7.1.  subordinate-printers-supported (1setOf uri)............. 26
       7.2.  parent-printers-supported (1setOf uri).................. 26
   8.  Additional Values for
       the "printer-state-reasons" Printer Description Attribute..... 26
       8.1.  'hold-new-jobs' Value................................... 27
       8.2.  'deactivated' Value..................................... 27
   9.  Additional Values for
       the "job-state-reasons" Job Description attribute............. 27
       9.1.  'job-suspended' Value................................... 27
   10. Use of the Printer Object to Represent
       IPP Printer Fan-Out and IPP Printer Fan-In.................... 27

Top      ToC       Page 3 
       10.1. IPP Printer Fan-Out..................................... 28
       10.2. IPP Printer Fan-In...................................... 28
       10.3. Printer Object Attributes Used
             to Represent Printer Fan-Out and Printer Fan-In......... 29
       10.4. Subordinate Printer URI................................. 29
       10.5. Printer Object Attributes Used
             to Represent Output Device Fan-Out...................... 30
       10.6. Figures to Show All Possible Configurations............. 30
       10.7. Forwarding Requests..................................... 33
             10.7.1. Forwarding Requests
                     that Affect Printer Objects..................... 33
             10.7.2. Forwarding Requests that Affect Jobs............ 35
       10.8. Additional Attributes to Help with Fan-Out.............. 37
             10.8.1. output-device-assigned (name(127))
                     Job Description Attribute - from [RFC2911]...... 37
             10.8.2. original-requesting-user-name (name(MAX))
                     Operation and Job Description Attribute......... 37
             10.8.3. requesting-user-name (name(MAX))
                     Operation Attribute - Additional Semantics...... 38
             10.8.4. job-originating-user-name (name(MAX))
                     Job Description Attribute -
                     Additional Semantics............................ 38
   11. Conformance Requirements...................................... 38
   12. Normative References.......................................... 39
   13. Informative References........................................ 40
   14. IANA Considerations........................................... 40
       14.1. Attribute Registrations................................. 41
       14.2. Attribute Value Registrations........................... 41
       14.3. Additional Enum Attribute Value Registrations........... 41
       14.4. Operation Registrations................................. 42
       14.5. Status Code Registrations............................... 43
   15. Internationalization Considerations........................... 43
   16. Security Considerations....................................... 43
   17. Summary of Base IPP Documents................................. 44
   Authors' Addresses................................................ 45
   Full Copyright Statement.......................................... 46

List of Tables

   Table 1.  Printer Operation Operation-Id Assignments..............  6
   Table 2.  Pause and Resume Printer Operations.....................  9
   Table 3.  State Transition Table for
             Pause-Printer-After-Current-Job Operation............... 10
   Table 4.  Job Operation Operation-Id Assignments.................. 16
   Table 5.  Operation Attribute Support for Printer Operations...... 24
   Table 6.  Operation Attribute Support for Job Operations.......... 25
   Table 7.  Forwarding Operations that Affect Printer Objects....... 34
   Table 8.  Forwarding Operations that Affect Jobs Objects.......... 36

Top      ToC       Page 4 
   Table 9.  Conformance Requirement Dependencies for Operations..... 38
   Table 10. Conformance Requirement Dependencies
             for "printer-state-reasons" Values...................... 39
   Table 11. Conformance Requirement Dependencies
             for "job-state-reasons" Values.......................... 39

List of Figures

   Figure 1.  Embedded Printer Object................................ 31
   Figure 2.  Hosted Printer Object.................................. 31
   Figure 3.  Output Device Fan-Out.................................. 31
   Figure 4.  Chained IPP Printer Objects............................ 32
   Figure 5.  IPP Printer Object Fan-Out............................. 32
   Figure 6.  IPP Printer Object Fan-In.............................. 33

1.  Introduction

   The Internet Printing Protocol (IPP) is an application level protocol
   that can be used for distributed printing using Internet tools and
   technologies.  IPP version 1.1 ([RFC2911, RFC2910]) focuses on end-
   user functionality, with a few administrative operations included.
   This document defines additional OPTIONAL end user, operator, and
   administrator operations used to control Jobs and Printers.  In
   addition, this document extends the semantic model of the Printer
   object by allowing them to be configured into trees and/or inverted
   trees that represent Printer object Fan-Out and Printer object Fan-
   In, respectively.  The special case of a tree with only a single
   Subordinate node represents Chained Printers.  This document is a
   registration proposal for an extension to IPP/1.0 and IPP/1.1
   following the registration procedures in those documents.

   The requirements and use cases for this document are defined in
   [RFC3239].

2.  Terminology

   This section defines the terminology used throughout this document.

2.1.  Conformance Terminology

   Capitalized terms such as MUST, MUST NOT, REQUIRED, SHOULD, SHOULD
   NOT, MAY, NEED NOT, and OPTIONAL have special meaning relating to
   conformance as defined in RFC 2119 [RFC2119] and [RFC2911], section
   12.1.  If an implementation supports the extension defined in this
   document, then these terms apply; otherwise, they do not.  These
   terms define conformance to this document only; they do not affect
   conformance to other documents, unless explicitly stated otherwise.

Top      ToC       Page 5 
2.2.  Other Terminology

   This document uses terms such as "client", "Printer", "Job",
   "attributes", "keywords", "operation", and "support".  These terms
   have special meaning and are defined in the model terminology
   ([RFC2911], section 12.2).

   In addition, the following capitalized terms are defined:

   IPP Printer object (or Printer for short) - A software abstraction
   defined by [RFC2911].

   Printer Operation - An operation whose target is an IPP Printer
   object and whose effect is on the Printer object.

   Output Device - The physical imaging mechanism that an IPP Printer
   controls.  Note: although this term is capitalized in this
   specification (but not in [RFC2911]), there is no formal object
   called an Output Device defined in this document (or in [RFC2911]).

   Output Device Fan-Out - A configuration in which an IPP Printer
   controls more than one Output Device.

   Printer Fan-Out - A configuration in which an IPP Printer object
   controls more than one Subordinate IPP Printer object.

   Printer Fan-In - A configuration in which an IPP Printer object is
   controlled by more than one IPP Printer object.

   Subordinate Printer - An IPP Printer object that is controlled by
   another IPP Printer object.  Such a Subordinate Printer MAY have zero
   or more Subordinate Printers.

   Leaf Printer - An IPP Printer object that has no Subordinate
   Printers.

   Non-Leaf Printer - An IPP Printer object that has one or more
   Subordinate Printers.  A Non-Leaf Printer is also called a Parent
   Printer.

   Chained Printer - a Non-Leaf Printer that has exactly one Subordinate
   Printer.

   Job Creation operations - IPP operations that create a Job object:
   Print-Job, Print-URI, and Create-Job.

Top      ToC       Page 6 
3.  Definition of the Printer Operations

   All Printer Operations are directed at Printer objects.  A client
   MUST always supply the "printer-uri" operation attribute in order to
   identify the correct target of the operation.  These descriptions
   assume all of the common semantics of the IPP/1.1 Model and Semantics
   document ([RFC2911], section 3.1).

   The Printer Operations defined in this document are summarized in
   Table 1.

   Table 1.  Printer Operation Operation-Id Assignments

   Operation Name  Operation-Id  Brief Description
   --------------------------------------------------------------------
   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-      0x24      Pauses 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      Releases 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
                                 so that it no longer holds 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.

Top      ToC       Page 7 
   Startup-Printer     0x2B      Starts up the instance of the Printer
                                 object.

   All of the operations in this document are OPTIONAL for an IPP object
   to support.  Unless the specification of an OPTIONAL operation
   requires support of another OPTIONAL operation, conforming
   implementations may support any combination of these operations.
   Many of the operations come in pairs, so both are REQUIRED if either
   one is implemented.

3.1.  The Disable and Enable Printer Operations

   This section defines the OPTIONAL Disable-Printer and Enable-Printer
   operations that stop and start the IPP Printer object from accepting
   new IPP jobs.  If either of these operations are supported, both MUST
   be supported.

   These operations allow the operator to control whether the Printer
   will accept new Job Creation (Print-Job, Print-URI, and Create-Job)
   operations.  These operations have no other effect on the Printer, so
   the Printer continues to accept all other operations and continues to
   schedule and process jobs normally.  In other words, these operations
   control the "input of new jobs" to the IPP Printer, and the Pause and
   Resume operations (see section 3.2) independently control the "output
   of new jobs" from the IPP Printer to the Output Device.

3.1.1.  Disable-Printer Operation

   This OPTIONAL operation allows a client to stop the Printer object
   from accepting new jobs; i.e., it causes the Printer to reject
   subsequent Job Creation operations and return the 'server-error-not-
   accepting-jobs' status code.  The Printer still accepts all other
   operations, including Validate-Job, Send-Document, and Send-URI
   operations.  Thus a Disable-Printer operation allows a client to
   continue submitting multiple documents of a multiple document job if
   the Create-Job operation had already been accepted.  All previously
   created or submitted Jobs and all Jobs currently processing continue
   unaffected.

   The IPP Printer MUST accept the request in any state.  The Printer
   sets the value of its "printer-is-accepting-jobs" READ-ONLY Printer
   Description attribute to 'false' (see [RFC2911], section 4.4.20), no
   matter what the previous value was.  This operation has no immediate
   or direct effect on the Printer's "printer-state" and "printer-
   state-reasons" attributes.

Top      ToC       Page 8 
   Access Rights: The authenticated user (see [RFC2911], section 8.3)
   performing this operation must be an operator or administrator of the
   Printer object (see [RFC2911] sections 1 and 8.5).

   The Disable-Printer Request and Disable-Printer Response have the
   same attribute groups and attributes as do the Pause-Printer
   operation (see [RFC2911], sections 3.2.7.1 and 3.2.7.2), including
   the new "printer-message-from-operator" operation attribute (see
   section 6).

3.1.2.  Enable-Printer Operation

   This OPTIONAL operation allows a client to start the Printer object
   accepting jobs; i.e., it causes the Printer to accept subsequent Job
   Creation operations.  The Printer still accepts all other operations.
   All previously submitted and currently processing Jobs continue
   unaffected.

   The IPP Printer MUST accept the request in any state.  The Printer
   sets the value of its "printer-is-accepting-jobs" READ-ONLY Printer
   Description attribute to 'true' (see [RFC2911], section 4.4.20), no
   matter what the previous value was.  This operation has no immediate
   or direct effect on the Printer's "printer-state" and "printer-
   state-reasons" attributes.

   Access Rights: The authenticated user (see [RFC2911], section 8.3)
   performing this operation must be an operator or administrator of the
   Printer object (see [RFC2911] sections 1 and 8.5).

   The Enable-Printer Request and Enable-Printer Response have the same
   attribute groups and attributes as does the Pause-Printer operation
   (see [RFC2911], sections 3.2.8.1 and 3.2.8.2), including the new
   "printer-message-from-operator" operation attribute (see section 6).

3.2.  The Pause and Resume Printer Operations

   This section leaves the OPTIONAL IPP/1.1 Pause-Printer (see
   [RFC2911], sections 3.2.7) ambiguous as to whether it stops the
   Printer immediately or after the current job.  It also defines the
   OPTIONAL Pause-Printer-After-Current-Job operation as following the
   current job.  These operations affect the scheduling of IPP jobs.  If
   either of these Pause Printer operations are supported, then the
   Resume-Printer operation MUST be supported.

   These operations allow the operator to control whether the Printer
   will send new IPP jobs to the associated Output Device(s) that the
   IPP Printer object represents.  These operations have no other effect
   on the Printer, so the Printer continues to accept all operations.

Top      ToC       Page 9 
   In other words, these operations control the "output of new jobs" to
   the Output Device(s), and the Disable and Enable Printer Operations
   (see section 3.1) independently control the "input of new jobs" to
   the IPP Printer.

   Table 2.  Pause and Resume Printer Operations

   Pause and Resume Printers  Description
   --------------------------------------------------------------------
   IPP/1.1 Pause Printer      Stops the IPP Printer from sending
                              new IPP Jobs to the Output Device(s)
                              either immediately or after the
                              current job completes, depending on
                              implementation, as defined in
                              [RFC2911].

   Pause-Printer-After-       Stops the IPP Printer from sending
   Current-Job                new IPP Jobs to the Output Device(s)
                              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

   This OPTIONAL operation allows a client to stop the Printer object
   from sending IPP jobs to any of its Output Devices or Subordinate
   Printers.  If the IPP Printer is in the middle of sending an IPP job
   to an Output Device or Subordinate Printer, the IPP Printer MUST
   complete sending that Job.  However, after receiving this operation,
   the IPP Printer MUST NOT send any additional IPP jobs to any of its
   Output Devices or Subordinate Printers.  In addition, after having
   received this operation, the IPP Printer MUST NOT start processing
   any more jobs, so additional jobs MUST NOT enter the 'processing'
   state.

   If the IPP Printer is not sending an IPP Job to the Output Device or
   Subordinate Printer (whether or not the Output Device or Subordinate
   Printer is busy processing any jobs), the IPP Printer object
   transitions immediately to the 'stopped' state by setting its
   "printer-state" attribute to 'stopped', removing the 'moving-to-
   paused' value, if present, from its "printer-state-reasons"
   attribute, and adding the 'paused' value to its "printer-state-
   reasons" attribute.

   If the implementation will take appreciable time to complete sending
   an IPP job that it has started sending to an Output Device or
   Subordinate Printer, the IPP Printer adds the 'moving-to-paused'

Top      ToC       Page 10 
   value to the Printer object's "printer-state-reasons" attribute (see
   section [RFC2911], 4.4.12).  When the IPP Printer has completed
   sending IPP jobs that it was in the process of sending, the Printer
   object transitions to the 'stopped' state by setting its "printer-
   state" attribute to 'stopped', removing the 'moving-to-paused' value,
   if present, from its "printer-state-reasons" attribute, and adding
   the 'paused' value to its "printer-state-reasons" attribute.

   This operation MUST NOT affect the acceptance of Job Creation
   requests (see Disable-Printer Operation, section 3.1.1).

   For any jobs that are 'pending' or 'pending-held', the 'printer-
   stopped' values of the jobs' "job-state-reasons" attribute also
   apply.  However, the IPP Printer NEED NOT update those jobs' "job-
   state-reasons" attributes and only have to return the 'printer-
   stopped' value when those jobs are queried by using the Get-Job-
   Attributes or Get-Jobs operations (so-called "lazy evaluation").

   The IPP Printer MUST accept the request in any state and transition
   the Printer to the indicated new "printer-state", and it MUST add the
   indicated value to "printer-state-reasons" attribute before returning
   as follows:

   Table 3.  State Transition Table for Pause-Printer-After-Current-Job
             Operation

   Current      New          "printer  IPP Printer's response status
   "printer-    "printer-    -state-   code and action (REQUIRED/
   state"       state"       reasons"  OPTIONAL state transition for
                                       a Printer to support):
  --------------------------------------------------------------------
   'idle'       'stopped'    'paused'  REQUIRED:  'successful-ok'

   'processing' 'processing' 'moving-  OPTIONAL:  'successful-ok';
                              to-      Later, when the IPP Printer
                              paused'  has finished sending IPP jobs
                                       to an Output Device, the
                                       "printer-state" becomes
                                       'stopped', and the 'paused'
                                       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

Top      ToC       Page 11 
   'stopped'    'stopped'    'paused'  REQUIRED:  'successful-ok'

   Access Rights: The authenticated user (see [RFC2911], section 8.3)
   performing this operation must be an operator or administrator of the
   Printer object (see [RFC2911], sections 1 and 8.5).

   The Pause-Printer-After-Current-Job Request and Pause-Printer-After-
   Current-Job Response have the same attribute groups and attributes as
   does the Pause-Printer operation (see [RFC2911], sections 3.2.7.1 and
   3.2.7.2), including the new "printer-message-from-operator" operation
   attribute (see section 6).

3.3.  Hold and Release New Jobs Operations

   This section defines operations to condition the Printer to hold any
   new jobs and to release them.

3.3.1.  Hold-New-Jobs Operation

   This OPTIONAL operation allows a client to condition the Printer to
   complete the current 'pending' and 'processing' IPP Jobs but not to
   start processing any subsequently created IPP Jobs.  If the IPP
   Printer is in the middle of sending an IPP job to an Output Device or
   Subordinate Printer, the IPP Printer MUST complete sending that Job.
   Furthermore, the IPP Printer MUST send all of the current 'pending'
   IPP Jobs to the Output Device(s) or Subordinate IPP Printer
   object(s).  Any subsequently received Job Creation operations will
   cause the IPP Printer to put the Job into the 'pending-held' state,
   with the 'job-held-on-create' value being added to the job's "job-
   state-reasons" attribute.  Thus all newly accepted jobs will be
   automatically held by the Printer.

   When the Printer completes all the 'pending' and 'processing' jobs,
   it enters the 'idle' state as usual.  An operator monitoring Printer
   state changes will know when the Printer has completed all current
   jobs because the Printer enters the 'idle' state.

   This operation MUST NOT affect the acceptance of Job Creation
   requests (see Disable-Printer Operation, section 3.1.1), except to
   put the Jobs into the 'pending-held' state, instead of the 'pending'
   or 'processing' state.

   The IPP Printer MUST accept the request in any state, MUST NOT
   transition the Printer to any other "printer-state", and MUST add the
   'hold-new-jobs' value to the Printer's "printer-state-reasons"
   attribute (whether the value was present or not).

Top      ToC       Page 12 
   Access Rights: The authenticated user (see [RFC2911], section 8.3)
   performing this operation must be an operator or administrator of the
   Printer object (see [RFC2911], sections 1 and 8.5).

   The Hold-New-Jobs Request and Hold-New-Jobs Response have the same
   attribute groups and attributes as does the Pause-Printer operation
   (see [RFC2911], sections 3.2.7.1 and 3.2.7.2), including the new
   "printer-message-from-operator" operation attribute (see section 6).

3.3.2.  Release-Held-New-Jobs Operation

   This OPTIONAL operation allows a client to undo the effect of a
   previous Hold-New-Jobs operation.  In particular, the Printer
   releases all the jobs that it held as a consequence of a Hold-New-
   Jobs operations; i.e., while the 'hold-new-jobs' value was present in
   the Printer's "printer-state-reasons" attribute.  In addition, the
   Printer MUST accept this request in any state, MUST NOT transition
   the Printer to any other "printer-state", and MUST remove the 'hold-
   new-jobs' value from its "printer-state-reasons" attribute (whether
   the value was present or not) so that the Printer no longer holds
   newly created jobs.

   Access Rights: The authenticated user (see [RFC2911], section 8.3)
   performing this operation must be an operator or administrator of the
   Printer object (see [RFC2911], sections 1 and 8.5).

   The Release-Held-New-Jobs Request and Release-Held-New-Jobs Response
   have the same attribute groups and attributes as the Pause-Printer
   operation (see [RFC2911], sections 3.2.7.1 and 3.2.7.2), including
   the new "printer-message-from-operator" operation attribute (see
   section 6).

3.4.  Deactivate and Activate Printer Operations

   This section defines the OPTIONAL Deactivate-Printer and Activate-
   Printer operations that stop and start the IPP Printer object from
   accepting all requests except queries and performing work.  If either
   of these operations are supported, both MUST be supported.

   These operations allow the operator to put the Printer into a dormant
   read-only condition and to take it out of this condition.

Top      ToC       Page 13 
3.4.1.  Deactivate-Printer Operation

   This OPTIONAL operation allows a client to stop the Printer object
   from sending IPP jobs to any of its Output Devices or Subordinate
   Printers (Pause-Printer-After-Current-Job) and to stop the Printer
   object from accepting any requests but query requests.  The Printer
   performs a Disable-Printer and a Pause-Printer-After-Current-Job
   operation immediately.  If these two operations cannot be completed
   immediately, it includes use of all of the "printer-state-reasons".
   In addition, the Printer MUST immediately reject all requests, except
   for Activate-Printer, queries (Get-Printer-Attributes, Get-Job-
   Attributes, Get-Jobs, etc.), Send-Document, and Send-URI (so that
   partial job submission can be completed, see section 3.1.1).  The
   Printer MUST then return the 'server-error-service-unavailable'
   status code.

   The IPP Printer MUST accept the request in any state.  Immediately,
   the Printer MUST set the 'deactivated' value in its "printer-state-
   reasons" attribute.  Note: neither the Disable-Printer nor the
   Pause-Printer-After-Current-Job set the 'deactivated' value.

   Access Rights: The authenticated user (see [RFC2911], section 8.3)
   performing this operation must be an operator or administrator of the
   Printer object (see [RFC2911], sections 1 and 8.5).

   The Deactivate-Printer Request and Deactivate-Printer Response have
   the same attribute groups and attributes as does the Pause-Printer
   operation (see [RFC2911], sections 3.2.7.1 and 3.2.7.2), including
   the new "printer-message-from-operator" operation attribute (see
   section 6).

3.4.2.  Activate-Printer Operation

   This OPTIONAL operation allows a client to undo the effects of the
   Deactivate-Printer; i.e., it allows the Printer object to start
   sending IPP jobs to any of its Output Devices or Subordinate Printers
   (Pause-Printer-After-Current-Job) and starts the Printer object from
   accepting any requests.  The Printer performs an Enable-Printer and a
   Resume-Printer operation immediately.  In addition, the Printer MUST
   immediately start accepting all requests.

   The IPP Printer MUST accept the request in any state.  The Printer
   MUST immediately remove the 'deactivated' value from its "printer-
   state-reasons" attribute (whether it is present or not).

   Access Rights: The authenticated user (see [RFC2911], section 8.3)
   performing this operation must be an operator or administrator of the
   Printer object (see [RFC2911], sections 1 and 8.5).

Top      ToC       Page 14 
   The Activate-Printer Request and Activate-Printer Response have the
   same attribute groups and attributes as the Pause-Printer operation
   (see [RFC2911], sections 3.2.7.1 and 3.2.7.2), including the new
   "printer-message-from-operator" operation attribute (see section 6).

3.5.  Restart-Printer, Shutdown-Printer, and Startup-Printer Operations

   This section defines the OPTIONAL Restart-Printer, Shutdown-Printer,
   and Startup-Printer operations that initialize, shutdown, and start
   up the Printer object, respectively.  Each of these operations is
   OPTIONAL, and any combination MAY be supported.

3.5.1.  Restart-Printer Operation

   This OPTIONAL operation allows a client to restart a Printer object
   whose operation is in need of initialization because of incorrect or
   erratic behavior; i.e., perform the effect of a software re-boot.
   The implementation MUST attempt to save any information about Jobs
   and the Printer object before re-initializing.  However, this
   operation MAY have drastic consequences on the running system, so the
   client SHOULD first try the Deactivate-Printer operation to minimize
   the effect on the current state of the system.  The effects of
   previous Disable-Printer, Pause Printer, and Deactivate-Printer
   operations are lost.

   The IPP Printer MUST accept the request in any state.  The Printer
   object MUST initialize its Printer's "printer-state" to 'idle',
   remove the state reasons from its "printer-state-reasons" attribute,
   and change its "printer-is-accepting-jobs" attribute to 'true'.

   Access Rights: The authenticated user (see [RFC2911], section 8.3)
   performing this operation must be an operator or administrator of the
   Printer object (see [RFC2911], sections 1 and 8.5).

   The Restart-Printer Request and Restart-Printer Response have the
   same attribute groups and attributes as does the Pause-Printer
   operation (see [RFC2911], sections 3.2.8.1 and 3.2.8.2), including
   the new "printer-message-from-operator" operation attribute (see
   section 6).

3.5.2.  Shutdown-Printer Operation

   This OPTIONAL operation allows a client to shutdown a Printer; i.e.,
   to stop processing jobs without losing any jobs and to make the
   Printer object unavailable for any operations using the IPP protocol.
   There is no way to bring the instance of the Printer object back to
   being used, except for the Startup-Printer (see section 3.5.3), which
   starts up a new instance of the Printer object for hosted

Top      ToC       Page 15 
   implementations.  The purpose of Shutdown-Printer is to shutdown the
   Printer for an extended period, not to reset the device(s) or modify
   a Printer attribute.  See Restart-Printer (section 3.5.1) and
   Startup-Printer (section 3.5.3) for the way to initialize the
   software.  See the Disable-Printer operation (section 3.1) for a way
   for the client to stop the Printer from accepting Job Creation
   requests without stopping processing or shutting down.

   The Printer MUST add the 'shutdown' value (see [RFC2911], section
   4.4.11) immediately to its "printer-state-reasons" Printer
   Description attribute.  It then performs a Deactivate-Printer
   operation (see section 3.4.1), which in turn performs Disable-Printer
   and Pause-Printer-After-Current-Job operations).

   Note:  To shutdown the Printer after all the currently submitted jobs
   have completed, the operator issues a Disable-Printer operation (see
   section 3.1.1) and then waits until all the jobs have completed.  The
   Printer goes into the 'idle' state before issuing the Shutdown-
   Printer operation.

   The Printer object MUST accept this operation in any state and
   transition the Printer object through the "printer-states" and
   "printer-state-reasons" defined for the Pause-Printer-After-Current-
   Job operation until the activity is completed and the Printer object
   disappears.

   Access Rights: The authenticated user (see [RFC2911], section 8.3)
   performing this operation must be an operator or administrator of the
   Printer object (see [RFC2911], sections 1 and 8.5).

   The Shutdown-Printer Request and Shutdown-Printer Response have the
   same attribute groups and attributes as does the Pause-Printer
   operation (see [RFC2911], sections 3.2.7.1 and 3.2.7.2), including
   the new "printer-message-from-operator" operation attribute (see
   section 6).

3.5.3.  Startup-Printer operation

   This OPTIONAL operation allows a client to start up an instance of a
   Printer object, provided that there isn't one already initiated.  The
   purpose of Startup-Printer is to allow a hosted implementation of the
   IPP Printer object (i.e., a Server that implements an IPP Printer on
   behalf of a networked or local Output Device) to be started after the
   host is available (by means outside this document).  See section
   3.5.1 for the way to initialize the software or reset the Output
   Device(s) when the IPP Printer object has already been initiated.

Top      ToC       Page 16 
   The host MUST accept this operation only when the Printer object has
   not been initiated.  If the Printer object already exists, the host
   must return the 'client-error-not-possible' status code.

   The result of this operation MUST be with the Printer object's
   "printer-state" set to 'idle', the state reasons removed from its
   "printer-state-reasons" attribute, and its "printer-is-accepting-
   jobs" attribute set to 'false'.  Then the operator can reconfigure
   the Printer before performing an Enable-Printer operation.  However,
   when a Printer is first powered up, it is RECOMMENDED that its
   "printer-is-accepting-jobs" attribute be set to 'true' in order to
   achieve easy "out of the box" operation.

   Access Rights: The authenticated user (see [RFC2911], section 8.3)
   performing this operation must be an operator or administrator of the
   Printer object (see [RFC2911], sections 1 and 8.5).

   The Shutdown-Printer Request and Shutdown-Printer Response have the
   same attribute groups and attributes as does the Pause-Printer
   operation (see [RFC2911] sections 3.2.7.1 and 3.2.7.2), including the
   new "printer-message-from-operator" operation attribute (see section
   6).



(page 16 continued on part 2)

Next RFC Part