7 Network Working Group C. Kugler
8 Request for Comments: 3239 H. Lewis
9 Category: Informational IBM Corporation
15 Internet Printing Protocol (IPP):
16 Requirements for Job, Printer, and Device Administrative Operations
21 This memo provides information for the Internet community. It does
22 not specify an Internet standard of any kind. Distribution of this
27 Copyright (C) The Internet Society (2002). All Rights Reserved.
31 This document specifies the requirements and uses cases for some
32 optional administrative operations for use with the Internet Printing
33 Protocol (IPP) version 1.0 and version 1.1. Some of these
34 administrative operations operate on the IPP Job and Printer objects.
35 The remaining operations operate on a new Device object that more
36 closely models a single output device.
40 1 Introduction.....................................................2
41 2 Terminology......................................................2
42 3 Requirements and Use Cases.......................................3
43 4 IANA Considerations.............................................10
44 5 Internationalization Considerations.............................10
45 6 Security Considerations.........................................10
46 7 References......................................................11
47 Appendix A: Description of base IPP documents......................12
48 Authors' Addresses.................................................14
49 Full Copyright Statement...........................................15
53 Table 1 - List of Printer Operations and corresponding Device
54 Operations ..................................................... 9
58 Kugler, Lewis & Hastings Informational [Page 1]
60 RFC 3239 IPP: Req. for Job and Printer Admin Ops February 2002
65 The Internet Printing Protocol (IPP) is an application level protocol
66 that can be used for distributed printing using Internet tools and
67 technologies. IPP version 1.1 ([RFC2911, RFC2910]) focuses on end
68 user functionality with a few administrative operations included (for
69 a description of the base IPP documents, see Appendix A). This
70 document defines the requirements and use cases for additional
71 optional end user, operator, and administrator operations used to
72 control Job objects, Printer objects (see [RFC2911]) and a new Device
73 object. The new Device object more closely models a single output
74 device and has no notion of a job, while the Printer object models a
75 print service which understands jobs and may represent one or more
78 The scope of IPP is characterized in RFC 2567 [RFC2567] "Design Goals
79 for an Internet Printing Protocol". It is not the intent of this
80 document to revise or clarify this scope or conjecture as to the
81 degree of industry adoption or trends related to IPP within printing
82 systems. It is the intent of this document to extend the original
83 set of operations - in a similar fashion to the Set1 extensions which
84 referred to IPP/1.0 and were later incorporated into IPP/1.1.
88 This section defines terminology used throughout this document and
89 the corresponding documents that define the Administrative operations
90 on Job, Printer, and Device objects.
92 This document uses terms such as "client", "Printer", "Job",
93 "attributes", "keywords", and "support". These terms have special
94 meaning and are defined in the model terminology [RFC2911] section
97 In addition, the following capitalized terms are defined:
99 IPP Printer object (or Printer for short) - a software abstraction
100 defined by [RFC2911].
102 Printer Operation - an operation whose target is an IPP Printer
103 object and whose effect is on the Printer object.
105 Output Device - the physical imaging mechanism that an IPP Printer
106 controls. Note: while this term is capitalized in this
107 specification (but not in [RFC2911]), there is no formal object
108 called an Output Device.
114 Kugler, Lewis & Hastings Informational [Page 2]
116 RFC 3239 IPP: Req. for Job and Printer Admin Ops February 2002
119 Device Operation - an operation whose target is an IPP Printer
120 object and whose defined effect is on an Output Device.
122 Output Device Fan-Out - a configuration in which an IPP Printer
123 controls more that one output-device.
125 Printer fan-out - a configuration in which an IPP Printer object
126 controls more than one Subordinate IPP Printer object.
128 Printer fan-in - a configuration in which an IPP Printer object is
129 controlled by more than one IPP Printer object.
131 Subordinate Printer - an IPP Printer object that is controlled by
132 another IPP Printer object. Such a Subordinate Printer may
133 have one or more Subordinate Printers.
135 Leaf Printer - a Subordinate Printer that has no Subordinate
138 Non-Leaf Printer - an IPP Printer object that has one or more
139 Subordinate Printers.
141 Chained Printer - a Non-Leaf Printer that has exactly one
144 Job Creation operations - IPP operations that create a Job object:
145 Print-Job, Print-URI, and Create-Job.
147 3 Requirements and Use Cases
149 The Administrative operations for Job and Printer objects will be
150 defined in one document [ipp-ops-set2]. The Administrative
151 operations for Device objects will be defined in a separate document.
152 The requirements are presented here together to show the parallelism.
154 1. Have separate operations for affecting the IPP Printer
155 versus affecting the Output Device, so its clear what the
156 intent of each is, and implementers can implement one or the
159 2. Support fan-out of Printer objects.
161 3. Support fan-out of Output Devices.
163 4. Support fan-in of Printer objects, as long as it doesn't
164 make the semantics more complicated when not supporting
170 Kugler, Lewis & Hastings Informational [Page 3]
172 RFC 3239 IPP: Req. for Job and Printer Admin Ops February 2002
175 5. Support fan-in of output objects, as long as it doesn't make
176 the semantics more complicated when not supporting fan-in.
178 6. Instead of having operation attributes that alter the
179 behavior of the operation significantly, have separate
180 operations, so that it is simple and clear to a client which
181 semantics the Printer is supporting (by querying the
182 "operations-supported" attribute) and it is simple to
183 describe the capabilities of a Printer implementation in
184 written documentation (just list the optional operations
187 7. Need a Printer Operation to prevent a Printer object from
188 accepting new IPP jobs, but currently accepted jobs continue
189 unaffected to be scheduled and processed. Need a companion
190 one to restore the Printer object to accept new IPP jobs.
192 Usage: Operator is preparing to take the IPP Printer out of
193 service or to change the configuration of the IPP Printer.
195 Suggested name and operations: Disable-Printer and Enable-
198 8. Need a Device Operation to prevent an Output Device from
199 accepting any new jobs from any job submission protocol and
200 a companion one to restore the Output Device to accepting
203 Usage: Operator is preparing to take the Output Device out
206 Suggested name and operations: Disable-Device and Enable
209 9. Need a Printer Operation to stop the processing after the
210 current IPP job completes and not start processing any
211 additional IPP jobs (either by scheduling the jobs or
212 sending them to the Output Device), but continue to accept
213 new IPP jobs. Need a companion operation to start
214 processing/sending IPP jobs again.
216 Usage: Operator wants to gracefully stop the IPP Printer at
217 the next job boundary. The Pause-Printer-After-Current-Job
218 operation is also invoked implicitly by the Deactivate-
219 Printer and the Shutdown-Printer Operations.
221 Suggested name and operations: Pause-Printer-After-
222 Current-Job, (IPP/1.1) Resume-Printer
226 Kugler, Lewis & Hastings Informational [Page 4]
228 RFC 3239 IPP: Req. for Job and Printer Admin Ops February 2002
231 10. Need a Device Operation to stop the processing the current
232 job "immediately", no matter what protocol. Its like the
233 Pause button on the Output Device. This operation is for
234 emergencies. The stop point depends on implementation, but
235 can be mid page, end of page, end of sheet, or after a few
236 sheets for Output Devices that can't stop that quickly. The
237 paper path isn't run out. Need a companion operation to
238 start processing the current any-protocol job without losing
241 Usage: Operator sees something bad about to happen, such as
242 the paper is about to jam, or the toner is running out, or
243 the device is overheating or wants to add more paper.
245 Suggested name and operations: Pause-Device-Now, Resume-
248 11. Need a Printer Operation to stop the processing of IPP jobs
249 after all of the currently accepted jobs have been
250 processed, but any newly accepted jobs go into the
251 'processing-held' state.
253 Usage: This allows an operator to reconfigure the Output
254 Device in order to let jobs that are held waiting for
255 resources, such as special media, get a chance. Then the
256 operator uses another operation after reconfiguring. He
257 repeats the two operations to restore the Output Device to
260 Suggested name and operations: Hold-New-Jobs, Release-
263 12. Need a Device Operation to stop processing the current any-
264 protocol job at a convenient point, such as after the
265 current copy (or end of job if last or only copy). Need a
266 companion operation to start processing the current any-
267 protocol job or next job without losing any thing.
269 Usage: The operator wants to empty the output bin that is
270 near full. The paper path is run out.
272 Suggested name and operations: Pause-Device-After-Current-
282 Kugler, Lewis & Hastings Informational [Page 5]
284 RFC 3239 IPP: Req. for Job and Printer Admin Ops February 2002
287 13. Need a Device Operation that always pauses on a device-
288 defined boundary, no matter how many copies, in order to not
289 break up a job. Need a companion operation to start
290 processing the current any-protocol job or next job without
293 Usage: The operator wants to empty the output bin that is
294 near full, but he doesn't want to break up a job in case it
295 has multiple copies. The paper path is run out.
297 Suggested name and operations: Pause-Device-After-Current-
300 14. Need a Printer Operation that combines Disable-Printer,
301 Pause-Printer-After-Current-Job, and rejects all other Job,
302 Printer, and Device Operations, except Job and Printer
303 queries, System Administrator Set-Printer-Attributes, and
304 the companion operation to resume activity. In other words,
305 this operation makes the Printer a read-only object in a
306 graceful manner for end-users and the operator.
308 Usage: The administrator wants to reconfigure the Printer
309 object using the Set-Printer-Attributes operation without
310 disturbing the current in process work, but wants to make
311 sure that the operator isn't also trying to change the
312 Printer object as part of running the Printer.
314 Suggested name and operation: Deactivate-Printer,
317 15. Need a Device Operation that combines Disable-Device,
318 Pause-Device-After-Current-Job, and rejects all other Device
319 Operations, except Job and Printer queries and the companion
320 operation to resume activity. In other words, this
321 operation makes the Output Device a read-only object in a
324 Usage: The field service person wants to open up the device
325 without disturbing the current in process work, perhaps to
326 replace staples, or replace the toner cartridge.
328 Suggested name and operation: Deactivate-Device, Activate-
338 Kugler, Lewis & Hastings Informational [Page 6]
340 RFC 3239 IPP: Req. for Job and Printer Admin Ops February 2002
343 16. Need a Printer Operation to recover from the IPP Printer
344 software that has gotten confused (run out of heap memory or
345 gotten into a state that it doesn't seem to be able to get
346 out of). This is a condition that shouldn't happen, but
347 does in real life. Any volatile information is saved if
348 possible before the software is re-initialized. No
349 companion operation is needed to undo this. We don't want
350 to go back to the "confused" state :-).
352 Usage: The IPP Printer software has gotten confused or
353 isn't responding properly.
355 Suggested name and operation: Restart-Printer
357 17. Need a Device Operation to recover from the Output Device
358 hardware and software that has gotten confused (gotten into
359 a state that it doesn't seem to be able to get out of, run
360 out of heap memory, etc.). This is a condition that
361 shouldn't happen, but does in real life. This is the same
362 and has the same options as the Printer MIB reset. No
363 companion operation is needed to undo this. We don't want
364 to go back to the "confused" state :-).
366 Usage: The Output Device has gotten confused or need
367 resetting to some initial conditions.
369 Suggested name and operation: Reset-Device
371 18. Need a Printer Operation to put the IPP Printer object out
372 of business with no way in the protocol to bring that
373 instantiation back to life (but see Startup-Printer which
374 brings up exactly one new instantiation to life with the
375 same URL). Any volatile information is saved if possible.
377 Usage: The Printer is being moved or the building's power
380 Suggested name and operation: Shutdown-Printer
382 19. Need a Printer Operation to bring an IPP Printer to life
383 when there is an already running host.
385 Usage: After the host is started (by means outside the IPP
386 protocol), the operator is able to ask the host to bring up
387 any number of Printer objects (that the host has been
388 configured in some way) each with distinct URLs.
390 Suggested name and operation: Startup-Printer
394 Kugler, Lewis & Hastings Informational [Page 7]
396 RFC 3239 IPP: Req. for Job and Printer Admin Ops February 2002
399 20. Need a Device Operation to power off the Output Device after
400 writing out any software state. It is assumed that other
401 operations have more gracefully prepared the Output Device
402 for this drastic and immediate. There is no companion
403 Device Operation to bring the power back on.
405 Usage: The Output Device is going to be moved, the power in
406 the building is going to be shutoff, the repair man has
407 arrived and needs to take the Output Device apart.
409 Suggested name and operation: Power-Off-Device
411 21. Need a Device Operation to startup a powered-off device.
413 Usage: After a Power-Off-Device, if the device can be
414 powered back up (possibly by an intervening host that
415 supports the Device Operation).
417 Suggest name and operation: Power-On-Device
450 Kugler, Lewis & Hastings Informational [Page 8]
452 RFC 3239 IPP: Req. for Job and Printer Admin Ops February 2002
455 The tentative list of Printer and the corresponding Device Operations
458 Table 1 - List of Printer Operations and corresponding Device
461 Printer Operation Corresponding Device Operation
464 Disable-Printer Disable-Device
466 Enable-Printer Enable-Device
468 Pause-Printer (IPP/1.1 - [RFC2911] Pause-Device-Now
469 - one interpretation)
471 no Pause-Device-After-Current-Copy
473 Pause-Printer-After-Current-Job Pause-Device-After-Current-Job
475 Resume-Printer (IPP/1.1 - Resume-Device
480 Release-Held-New-Jobs no
482 Deactivate-Printer Deactivate-Device
484 Activate-Printer Activate-Device
486 Purge-Jobs (IPP/1.1 - [RFC2911]) Purge-Device
488 Restart-Printer Reset-Device
490 Shutdown-Printer Power-Off-Device
492 Startup-Printer Power-On-Device
494 There are no conformance dependencies between Printer Operations and
495 Device Operations. Either may be supported without supporting the
496 corresponding operations.
506 Kugler, Lewis & Hastings Informational [Page 9]
508 RFC 3239 IPP: Req. for Job and Printer Admin Ops February 2002
511 4 IANA Considerations
513 This document does not define anything to be registered. When a
514 document is produced that defines operations that meet the
515 requirements in this document, those operations will be registered
516 according to the procedures in [RFC2911] section 6.4.
518 5 Internationalization Considerations
520 This document has the same localization considerations as the
523 6 Security Considerations
525 This document defines the requirements for operations that are
526 intended to be used by an operator or system administrator. These
527 operations, when defined, would affect how the Printer behaves and
528 establish policy and/or operating behavior that ordinary users
529 shouldn't be able to perform. Printer implementations that support
530 such operations should authenticate users and authorized them as
531 being an operator or a system administrator for the system.
532 Otherwise, unprivileged users could affect the policy and behavior of
533 IPP Printers, thereby affecting other users. Similarly clients that
534 supports such operations should be prepared to provide the necessary
535 authentication information. See the security provisions in [RFC2911]
536 for authentication, such as TLS.
562 Kugler, Lewis & Hastings Informational [Page 10]
564 RFC 3239 IPP: Req. for Job and Printer Admin Ops February 2002
569 [ipp-ntfy] Herriot, R., Hastings, T., Isaacson, S., Martin, J.,
570 deBry, R., Shepherd, M. and R. Bergman, "Internet
571 Printing Protocol/1.1: IPP Event Notifications and
572 Subscriptions", Work in Progress.
574 [ipp-ops-set2] Kugler, C., Hastings, T. and H. Lewis, "Internet
575 Printing Protocol (IPP): Job and Printer
576 Administrative Operations", Work in Progress.
578 [RFC2565] Herriot, R., Butler, S., Moore, P. and R. Tuner,
579 "Internet Printing Protocol/1.0: Encoding and
580 Transport", RFC 2565, April 1999.
582 [RFC2566] deBry, R., Hastings, T., Herriot, R. and S. Isaacson,
583 P. Powell, "Internet Printing Protocol/1.0: Model and
584 Semantics", RFC 2566, April 1999.
586 [RFC2567] Wright, D., "Design Goals for an Internet Printing
587 Protocol", RFC 2567, April 1999.
589 [RFC2568] Zilles, S., "Rationale for the Structure and Model and
590 Protocol for the Internet Printing Protocol", RFC
593 [RFC2569] Herriot, R., Hastings, T., Jacobs, N. and J. Martin,
594 "Mapping between LPD and IPP Protocols", RFC 2569,
597 [RFC2616] Fielding, R., Gettys, J., Mogul, J., Frystyk, H.,
598 Masinter, L., Leach, P. and T. Berners-Lee, "Hypertext
599 Transfer Protocol - HTTP/1.1", RFC 2616, June 1999.
601 [RFC2910] Herriot, R., Butler, S., Moore, P. and R. Tuner,
602 "Internet Printing Protocol/1.1: Encoding and
603 Transport", RFC 2910, September 2000.
605 [RFC2911] deBry, R., Hastings, T., Herriot, R., Isaacson, S. and
606 P. Powell, "Internet Printing Protocol/1.0: Model and
607 Semantics", RFC 2911, September 2000.
609 [RFC3196] Hastings, T., Manros, C., Zehler, P., Kuger, C. and H.
610 Holst, "Internet Printing Protocol/1.1: Implementer's
611 Guide", RFC 3196, November 2001.
618 Kugler, Lewis & Hastings Informational [Page 11]
620 RFC 3239 IPP: Req. for Job and Printer Admin Ops February 2002
623 Appendix A: Description of base IPP documents
625 The base set of IPP documents includes:
627 Design Goals for an Internet Printing Protocol [RFC2567]
628 Rationale for the Structure and Model and Protocol for the
629 Internet Printing Protocol [RFC2568]
630 Internet Printing Protocol/1.1: Model and Semantics [RFC2911]
631 Internet Printing Protocol/1.1: Encoding and Transport [RFC2910]
632 Internet Printing Protocol/1.1: Implementer's Guide [RFC3196]
633 Mapping between LPD and IPP Protocols [RFC2569]
634 Internet Printing Protocol (IPP): IPP Event Notifications and
635 Subscriptions [ipp-ntfy]
637 The "Design Goals for an Internet Printing Protocol" document takes a
638 broad look at distributed printing functionality, and it enumerates
639 real-life scenarios that help to clarify the features that need to be
640 included in a printing protocol for the Internet. It identifies
641 requirements for three types of users: end users, operators, and
642 administrators. It calls out a subset of end user requirements that
643 are satisfied in IPP/1.0. A few optional operator operations have
644 been added to IPP/1.1.
646 The "Rationale for the Structure and Model and Protocol for the
647 Internet Printing Protocol" document describes IPP from a high level
648 view, defines a roadmap for the various documents that form the suite
649 of IPP specification documents, and gives background and rationale
650 for the IETF working group's major decisions.
652 The "Internet Printing Protocol/1.1: Model and Semantics" document
653 describes a simplified model with abstract objects, their attributes,
654 and their operations that are independent of encoding and transport.
655 It introduces a Printer and a Job object. The Job object optionally
656 supports multiple documents per Job. It also addresses security,
657 internationalization, and directory issues.
659 The "Internet Printing Protocol/1.1: Encoding and Transport" document
660 is a formal mapping of the abstract operations and attributes defined
661 in the model document onto HTTP/1.1 [RFC2616]. It defines the
662 encoding rules for a new Internet MIME media type called
663 "application/ipp". This document also defines the rules for
664 transporting over HTTP a message body whose Content-Type is
665 "application/ipp". This document defines the 'ippget' scheme for
666 identifying IPP printers and jobs.
674 Kugler, Lewis & Hastings Informational [Page 12]
676 RFC 3239 IPP: Req. for Job and Printer Admin Ops February 2002
679 The "Internet Printing Protocol/1.1: Implementer's Guide" document
680 gives insight and advice to implementers of IPP clients and IPP
681 objects. It is intended to help them understand IPP/1.1 and some of
682 the considerations that may assist them in the design of their client
683 and/or IPP object implementations. For example, a typical order of
684 processing requests is given, including error checking. Motivation
685 for some of the specification decisions is also included.
687 The "Mapping between LPD and IPP Protocols" document gives some
688 advice to implementers of gateways between IPP and LPD (Line Printer
689 Daemon) implementations.
691 The "IPP Event Notifications and Subscriptions" document defines an
692 extension to IPP/1.0 [RFC2566, RFC2565] and IPP/1.1 [RFC2911,
693 RFC2910]. This extension allows a client to subscribe to printing
694 related Events and defines the semantics for delivering asynchronous
696 Event Notifications to the specified Notification Recipient via a
697 specified Delivery Method (i.e., protocols) defined in (separate)
698 Delivery Method documents.
730 Kugler, Lewis & Hastings Informational [Page 13]
732 RFC 3239 IPP: Req. for Job and Printer Admin Ops February 2002
741 Phone: (303) 924-5060
742 EMail: kugler@us.ibm.com
747 737 Hawaii St. ESAE 231
752 EMail: hastings@cp10.es.xerox.com
759 Phone: (303) 924-5337
760 EMail: harryl@us.ibm.com
762 IPP Web Page: http://www.pwg.org/ipp/
763 IPP Mailing List: ipp@pwg.org
765 To subscribe to the ipp mailing list, send the following email:
767 1) send it to majordomo@pwg.org
768 2) leave the subject line blank
769 3) put the following two lines in the message body:
773 Implementers of this specification document are encouraged to join
774 the IPP Mailing List in order to participate in any discussions of
775 clarification issues and review of registration proposals for
776 additional attributes and values. In order to reduce spam the
777 mailing list rejects mail from non-subscribers, so you must subscribe
778 to the mailing list in order to send a question or comment to the
786 Kugler, Lewis & Hastings Informational [Page 14]
788 RFC 3239 IPP: Req. for Job and Printer Admin Ops February 2002
791 Full Copyright Statement
793 Copyright (C) The Internet Society (2002). All Rights Reserved.
795 This document and translations of it may be copied and furnished to
796 others, and derivative works that comment on or otherwise explain it
797 or assist in its implementation may be prepared, copied, published
798 and distributed, in whole or in part, without restriction of any
799 kind, provided that the above copyright notice and this paragraph are
800 included on all such copies and derivative works. However, this
801 document itself may not be modified in any way, such as by removing
802 the copyright notice or references to the Internet Society or other
803 Internet organizations, except as needed for the purpose of
804 developing Internet standards in which case the procedures for
805 copyrights defined in the Internet Standards process must be
806 followed, or as required to translate it into languages other than
809 The limited permissions granted above are perpetual and will not be
810 revoked by the Internet Society or its successors or assigns.
812 This document and the information contained herein is provided on an
813 "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
814 TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
815 BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
816 HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
817 MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
821 Funding for the RFC Editor function is currently provided by the
842 Kugler, Lewis & Hastings Informational [Page 15]