11. 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 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 Tables 10 and 11 list the "printer-state-reasons" and "job-state- reasons" values that are REQUIRED if the indicated operations are supported. Table 10. Conformance Requirement Dependencies for "printer-state-reasons" Values "printer-state- Conformance If any of the following Printer reasons" values: Requirement Operations are supported: -------------------------------------------------------------------- 'paused' REQUIRED Pause-Printer, Pause-Printer-After-Current-Job, or Deactivate-Printer 'hold-new-jobs' REQUIRED Hold-New-Jobs '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- reasons" Values "job-state-reasons" Conformance If any of the following Job values: Requirement operations are supported: 'job-suspended' REQUIRED Suspend-Current-Job 'printer-stopped' REQUIRED Always REQUIRED12. Normative References
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997. [RFC2246] Dierks, T. and C. Allen, "The TLS Protocol Version 1.0", RFC 2246, January 1999. [RFC2616] Fielding, R., Gettys, J., Mogul, J., Frystyk, H., Masinter, L., Leach, P., and T. Berners-Lee, "Hypertext Transfer Protocol -- HTTP/1.1", RFC 2616, June 1999. [RFC2910] Herriot, R., Butler, S., Moore, P., Turner, R., and J. Wenn, "Internet Printing Protocol/1.1: Encoding and Transport", RFC 2910, September 2000.
[RFC2911] Hastings, T., Herriot, R., deBry, R., Isaacson, S., and P. Powell, "Internet Printing Protocol/1.1: Model and Semantics", RFC 2911, September 2000. [RFC3380] Hastings, T., Herriot, R., Kugler, C., and H. Lewis, "Internet Printing Protocol (IPP): Job and Printer Set Operations", RFC 3380, September 2002.13. Informative References
[RFC2567] Wright, F., "Design Goals for an Internet Printing Protocol", RFC 2567, April 1999. [RFC2568] Zilles, S., "Rationale for the Structure of the Model and Protocol for the Internet Printing Protocol", RFC 2568, April 1999. [RFC2569] Herriot, R., Hastings, T., Jacobs, N., and J. Martin, "Mapping between LPD and IPP Protocols", RFC 2569, April 1999. [RFC3196] Hastings, T., Manros, C., Zehler, P., Kugler, C., and H. Holst, "Internet Printing Protocol/1.1: Implementor's Guide", RFC 3196, November 2001. [RFC3239] Kugler, C., Lewis, H., and T. Hastings, "Internet Printing Protocol (IPP): Requirements for Job, Printer, and Device Administrative Operations", RFC 3239, February 2002. [RFC3995] Herriot, R. and T. Hastings, "Internet Printing Protocol (IPP): Event Notifications and Subscriptions", RFC 3995, February 2005.14. IANA Considerations
This section contains the registration information that IANA added to the IPP Registry according to the procedures defined in [RFC2911], section 6, to cover the definitions in this document. The resulting registrations have been published as additions to the http://www.iana.org/assignments/ipp-registrations file.
14.1. Attribute Registrations
The following table lists all the attributes defined in this document. These have been registered according to the procedures in [RFC2911], section 6.2. Name Reference Section -------------------------------------- --------- ------- Job Description attributes: original-requesting-user-name (name(MAX)) [RFC3998] 10.8.2 Printer Description attributes: subordinate-printers-supported (1setOf uri) [RFC3998] 7.1 parent-printers-supported (1setOf uri) [RFC3998] 7.2 Operation attributes: original-requesting-user-name (name(MAX)) [RFC3998] 10.8.214.2. Attribute Value Registrations
This section lists the additional values defined in this document for existing attributes. Attribute Value Reference Section --------------------- --------- ------- job-state-reasons (1setOf type2 keyword) job-suspended [RFC3998] 9.1 printer-state-reasons (1setOf type2 keyword) hold-new-jobs [RFC3998] 8.1 deactivated [RFC3998] 8.214.3. Additional Enum Attribute Value Registrations
The following table lists all the new enum attribute values defined in this document. These have been registered according to the procedures in [RFC2911], section 6.1.
Attribute (attribute syntax) Value Name Reference Section ------- -------------------- --------- ------- operations-supported (1setOf type2 enum) [RFC2911] 4.4.1 0x0022 Enable-Printer [RFC3998] 3 0x0023 Disable-Printer [RFC3998] 3 0x0024 Pause-Printer-After-Current-Job [RFC3998] 3 0x0025 Hold-New-Jobs [RFC3998] 3 0x0026 Release-Held-New-Jobs [RFC3998] 3 0x0027 Deactivate-Printer [RFC3998] 3 0x0028 Activate-Printer [RFC3998] 3 0x0029 Restart-Printer [RFC3998] 3 0x002A Shutdown-Printer [RFC3998] 3 0x002B Startup-Printer [RFC3998] 3 0x002C Reprocess-Job [RFC3998] 4 0x002D Cancel-Current-Job [RFC3998] 4 0x002E Suspend-Current-Job [RFC3998] 4 0x002F Resume-Job [RFC3998] 4 0x0030 Promote-Job [RFC3998] 4 0x0031 Schedule-Job-After [RFC3998] 414.4. Operation Registrations
The following table lists all the operations defined in this document. These have been registered according to the procedures in [RFC2911], section 6.4. Name Reference Section ----------------------------- --------- ------- Activate-Printer [RFC3998] 3.4.2 Cancel-Current-Job [RFC3998] 4.2 Deactivate-Printer [RFC3998] 3.4.1 Disable-Printer [RFC3998] 3.1.1 Enable-Printer [RFC3998] 3.1.2 Hold-New-Jobs [RFC3998] 3.3.1 Pause-Printer-After-Current-Job [RFC3998] 3.2.1 Promote-Job [RFC3998] 4.4.1 Release-Held-New-Jobs [RFC3998] 3.3.2 Reprocess-Job [RFC3998] 4.1 Restart-Printer [RFC3998] 3.5.1 Resume-Job [RFC3998] 4.3.2 Schedule-Job-After [RFC3998] 4.4.2 Shutdown-Printer [RFC3998] 3.5.2 Startup-Printer [RFC3998] 3.5.3 Suspend-Current-Job [RFC3998] 4.3.1
14.5. Status Code Registrations
The following table lists the status code defined in this document. This has been registered according to the procedures in [RFC2911], section 6.6. Value Name Reference Section ------ ------------------------ --------- ------- 0x0000:0x00FF - "successful" none at this time 0x0100:0x01FF - "informational" none at this time 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 [RFC3998] 5.115. Internationalization Considerations
This document has the same localization considerations as [RFC2911].16. Security Considerations
The IPP Model and Semantics document [RFC2911] discusses high level security requirements (Client Authentication, Server Authentication, and Operation Privacy). Client Authentication is the mechanism by which the client proves its identity to the server in a secure manner. Server Authentication is the mechanism by which the server proves its identity to the client in a secure manner. Operation Privacy is defined as a mechanism for protecting operations from eavesdropping. Printer operations defined in this specification (see section 3), as well as 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, and Release-Job (defined in [RFC2911]) are intended for use by the job owner, operator, or administrator of the Printer object. These operator and administrator operations affect service for all users.
Inappropriate use of an administrative operation by an unauthenticated end user can affect the quality of service for all users. Therefore, IPP Printer implementations MUST support both successful certificate-based TLS [RFC2246] client authentication and successful operator/administrator authorization (see [RFC2911], sections 5.2.7 and 8, and [RFC2910]) to perform the administrative operations defined in this document. [RFC2910] requires the IPP Printer to support the minimum cipher suite specified for TLS/1.0. The means for authorizing an operator or administrator of the Printer object are outside the scope of this specification, RFC 2910, and RFC 2911. The use of TLS and Client Authentication solves the Denial of Service, Man in the Middle, and Masquerading security threats.17. Summary of Base IPP Documents
The base set of IPP documents includes the following: Design Goals for an Internet Printing Protocol [RFC2567] Rationale for the Structure and Model and Protocol for the Internet Printing Protocol [RFC2568] Internet Printing Protocol/1.1: Model and Semantics [RFC2911] Internet Printing Protocol/1.1: Encoding and Transport [RFC2910] Internet Printing Protocol/1.1: Implementer's Guide [RFC3196] Mapping between LPD and IPP Protocols [RFC2569] "Design Goals for an Internet Printing Protocol" takes a broad look at distributed printing functionality, and it enumerates real-life scenarios that help clarify the features that have to be included in a printing protocol for the Internet. It identifies requirements for three types of users: end users, operators, and administrators. It calls out a subset of end user requirements that are satisfied in IPP/1.0. A few OPTIONAL operator operations have been added to IPP/1.1. "Rationale for the Structure and Model and Protocol for the Internet Printing Protocol" describes IPP from a high level view, defines a roadmap for the various documents that form the suite of IPP specification documents, and gives background and rationale for the IETF working group's major decisions. "Internet Printing Protocol/1.1: Model and Semantics" describes a simplified model with abstract objects, their attributes, and their operations that are independent of encoding and transport. It introduces a Printer and a Job object. The Job object optionally supports multiple documents per Job. It also addresses security, internationalization, and directory issues.
"Internet Printing Protocol/1.1: Encoding and Transport" is a formal mapping of the abstract operations and attributes defined in the model document onto HTTP/1.1 [RFC2616]. It defines the encoding rules for a new Internet MIME media type called "application/ipp". This document also defines the rules for transporting over HTTP a message body whose Content-Type is "application/ipp". This document defines the 'ippget' scheme for identifying IPP printers and jobs. "Internet Printing Protocol/1.1: Implementer's Guide" gives insight and advice to implementers of IPP clients and IPP objects. It is intended to help them understand IPP/1.1 and some of the considerations that may assist them in the design of their client and/or IPP object implementations. For example, a typical order of processing requests is given, including error checking. Motivation for some of the specification decisions is also included. "Mapping between LPD and IPP Protocols" gives some advice to implementers of gateways between IPP and LPD (Line Printer Daemon) implementations.Authors' Addresses
Carl Kugler IBM Corporation, 003G 6300 Diagonal Hwy Boulder, CO 80301 Phone: (303) 924-5060 EMail: kugler@us.ibm.com Tom Hastings, editor Xerox Corporation 701 S Aviation Blvd. ESAE 242 El Segundo, CA 90245 Phone: 310-333-6413 Fax: 310-333-6342 EMail: hastings@cp10.es.xerox.com Harry Lewis IBM Corporation 6300 Diagonal Hwy Boulder, CO 80301 Phone: (303) 924-5337 EMail: harryl@us.ibm.com
Full Copyright Statement Copyright (C) The Internet Society (2005). This document is subject to the rights, licenses and restrictions contained in BCP 78, and except as set forth therein, the authors retain all their rights. This document and the information contained herein are provided on an "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Intellectual Property The IETF takes no position regarding the validity or scope of any Intellectual Property Rights or other rights that might be claimed to 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. Copies of IPR disclosures made to the IETF Secretariat and any assurances of licenses to be made available, or the result of an attempt made to obtain a general license or permission for the use of 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. The IETF invites any interested party to bring to its attention any copyrights, patents or patent applications, or other proprietary 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. Acknowledgement Funding for the RFC Editor function is currently provided by the Internet Society.