draft-ietf-ipp-not-03.txt   draft-ietf-ipp-not-04.txt 
INTERNET DRAFT Roger K deBry INTERNET DRAFT Roger K deBry
<draft-ietf-ipp-not-03.txt> Utah Valley State College <draft-ietf-ipp-not-04.txt> Utah Valley State College
Harry Lewis Harry Lewis
IBM Corporation IBM Corporation
Tom Hastings (editor) Tom Hastings (editor)
Xerox Corporation Xerox Corporation
August 11, 1999 July 6, 2000
Internet Printing Protocol/1.1: Requirements for IPP Notifications Internet Printing Protocol: Requirements for IPP Notifications
Copyright (C) The Internet Society (1999). All Rights Reserved. Copyright (C) The Internet Society (2000). All Rights Reserved.
STATUS OF THIS MEMO STATUS OF THIS MEMO
This document is an Internet-Draft and is in full conformance with all This document is an Internet-Draft and is in full conformance with all
provisions of Section 10 of [RFC2026]. Internet-Drafts are working provisions of Section 10 of [RFC2026]. Internet-Drafts are working
documents of the Internet Engineering Task Force (IETF), its areas, and documents of the Internet Engineering Task Force (IETF), its areas, and
its working groups. Note that other groups may also distribute working its working groups. Note that other groups may also distribute working
documents as Internet-Drafts. 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 material time. It is inappropriate to use Internet-Drafts as reference material
or to cite them other than as ''work in progress.'' 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 ABSTRACT
This document is one of a set of documents which together describe all This document is one of a set of documents, which together describe all
aspects of a new Internet Printing Protocol (IPP). IPP is an application aspects of a new Internet Printing Protocol (IPP). IPP is an application
level protocol that can be used for distributed printing on the level protocol that can be used for distributed printing on the
Internet. There are multiple parts to IPP, but the primary architectural Internet. There are multiple parts to IPP, but the primary architectural
components are the Model, the Protocol and an interface to Directory components are the Model and Semantics, and the Encoding and Transport
Services. This document provides a statement of the requirements for documents. This document provides a statement of the requirements for
notifications as part of an IPP Service. Some ISSUES are indicated in notifications as part of an IPP Service.
the text.
The full set of IPP documents include: The full set of IPP documents include:
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.0: Model and Semantics [RFC2566] Internet Printing Protocol/1.1: Model and Semantics [ipp-mod]
Internet Printing Protocol/1.0: Encoding and Transport [RFC2565] Internet Printing Protocol/1.1: Encoding and Transport [ipp-pro]
Internet Printing Protocol/1.0: Implementer's Guide [RFC 2639] Internet Printing Protocol/1.1: Implementer's Guide [ipp-iig]
Mapping between LPD and IPP Protocols [RFC2569] Mapping between LPD and IPP Protocols [RFC2569]
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 are administrators. It calls out a subset of end user requirements that are
satisfied in IPP/1.0. Operator and administrator requirements are out satisfied in IPP/1.1. Operator and administrator requirements are out
of scope for version 1.0. of scope for the basic documents of version 1.1.
The 'Rationale for the Structure and Model and Protocol for the Internet The 'Rationale for the Structure and Model and Protocol for the Internet
Printing Protocol' document describes IPP from a high level view, Printing Protocol' document describes IPP from a high level view,
defines a roadmap for the various documents that form the suite of IPP defines a roadmap for the various documents that form the suite of IPP
specifications, and gives background and rationale for the IETF working specifications, and gives background and rationale for the IETF working
group's major decisions. group's major decisions.
The 'Internet Printing Protocol/1.0: Encoding and Transport' document is The 'Internet Printing Protocol/1.1: Encoding and Transport' document is
a formal mapping of the abstract operations and attributes defined in a formal mapping of the abstract operations and attributes defined in
the model document onto HTTP/1.1. It defines the encoding rules for a the model document onto HTTP/1.1. It defines the encoding rules for a
new Internet media type called 'application/ipp'. new Internet media type called 'application/ipp'.
The 'Internet Printing Protocol/1.0: Implementer's Guide' document gives The 'Internet Printing Protocol/1.1: Implementer's Guide' document gives
insight and advice to implementers of IPP clients and IPP objects. It insight and advice to implementers of IPP clients and IPP objects. It
is intended to help them understand IPP/1.0 and some of the is intended to help them understand IPP/1.0 and some of the
considerations that may assist them in the design of their client and/or considerations that may assist them in the design of their client and/or
IPP object implementations. For example, a typical order of processing IPP object implementations. For example, a typical order of processing
requests is given, including error checking. Motivation for some of the requests is given, including error checking. Motivation for some of the
specification decisions is also included. specification decisions is also included.
The 'Mapping between LPD and IPP Protocols' document gives some advice The 'Mapping between LPD and IPP Protocols' document gives some advice
to implementers of gateways between IPP and LPD (Line Printer Daemon) to implementers of gateways between IPP and LPD (Line Printer Daemon)
implementations. implementations.
Table of Contents Table of Contents
1 Scope..............................................................3 1 Scope..............................................................4
2 Terminology........................................................3 2 Terminology........................................................4
3 Scenarios..........................................................6 3 Scenarios..........................................................7
4 Requirements.......................................................9 4 Requirements......................................................10
5 Security considerations for IPP Notifications requirements........11 5 Security considerations for IPP Notifications requirements........12
6 Internationalization Considerations...............................12 6 Internationalization Considerations...............................13
7 IANA Considerations...............................................12 7 IANA Considerations...............................................13
8 References........................................................12 8 References........................................................13
9 Author's Address..................................................13 9 Author's Address..................................................15
1 Scope 1 Scope
The scope of this requirements document covers functionality used by the The scope of this requirements document covers functionality used by the
following kinds of IPP Users: End Users, Print Administrators and following kinds of IPP Users: End Users, Print Administrators and
Operators. Operators.
2 Terminology 2 Terminology
It is necessary to define a set of terms in order to be able to clearly It is necessary to define a set of terms in order to be able to clearly
skipping to change at page 6, line 56 skipping to change at page 7, line 56
3 Scenarios 3 Scenarios
1.I am sitting in my office and submit a print job to the printer down 1.I am sitting in my office and submit a print job to the printer down
the hall. I am in the same security domain as the printer and of the hall. I am in the same security domain as the printer and of
course, geographically near. I want to know immediately when my course, geographically near. I want to know immediately when my
print job will be completed (or if there is a problem) because the print job will be completed (or if there is a problem) because the
document I am working on is urgent. I submit the print job with the document I am working on is urgent. I submit the print job with the
following attributes: following attributes:
@ Notification Recipient - me - Notification Recipient - me
@ Notification Events - all - Notification Events - all
@ Notification Attributes - job-state-reason - Notification Attributes - job-state-reason
@ Notification Type - immediate - Notification Type - immediate
2.I am working from home and submit a print job to the same printer as 2.I am working from home and submit a print job to the same printer as
in the previous example. However, since I am not at work, I cannot in the previous example. However, since I am not at work, I cannot
physically get the print file or do anything with it. It can wait physically get the print file or do anything with it. It can wait
until I get to work this afternoon. However, I'd like my secretary to until I get to work this afternoon. However, I'd like my secretary to
pick up the output and put it on my desk so it doesn't get lost or pick up the output and put it on my desk so it doesn't get lost or
miss-filed. I'd also like a store and forward notification sent to my miss-filed. I'd also like a store and forward notification sent to my
email so that when I get to work I can tell if there was a problem email so that when I get to work I can tell if there was a problem
with the print job. I submit a print job with the following with the print job. I submit a print job with the following
attributes: attributes:
@ Notification Recipient - my secretary - Notification Recipient - my secretary
@ Notification Events - print complete - Notification Events - print complete
@ Notification Type - immediate - Notification Type - immediate
@ Notification Recipient - me - Notification Recipient - me
@ Notification Events - print complete - Notification Events - print complete
@ Notification Attributes - impressions completed - Notification Attributes - impressions completed
@ Notification Type - store and forward - Notification Type - store and forward
3.I am sitting in my office and submit a print job to a client at an 3.I am sitting in my office and submit a print job to a client at an
engineering firm we work with on a daily basis. The engineering firm engineering firm we work with on a daily basis. The engineering firm
is in Belgium. I would like my client to know when the print job is is in Belgium. I would like my client to know when the print job is
complete, so that she can pick it up from the printer in her complete, so that she can pick it up from the printer in her
building. It is important that she review it right away and get her building. It is important that she review it right away and get her
comments back to me. I submit the print job with the following comments back to me. I submit the print job with the following
attributes: attributes:
@ Notification Recipient - client at engineering firm - Notification Recipient - client at engineering firm
@ Notification Events - print complete - Notification Events - print complete
@ Notification Type - immediate - Notification Type - immediate
@ Notification Language - French - Notification Language - French
4.I am in a hotel room and send a print job to a Kinko's store in the 4.I am in a hotel room and send a print job to a Kinko's store in the
town I am working in, in order to get a printed report for the town I am working in, in order to get a printed report for the
meeting I am attending in the morning. Since I'm going out to dinner meeting I am attending in the morning. Since I'm going out to dinner
after I get this job submitted, an immediate notification won't do me after I get this job submitted, an immediate notification won't do me
much good. However, I'd like to check in the morning before I drive much good. However, I'd like to check in the morning before I drive
to the Kinko's store to see if the file has been printed. An email to the Kinko's store to see if the file has been printed. An email
notification is sufficient for this purpose. I submit the print job notification is sufficient for this purpose. I submit the print job
with the following attributes: with the following attributes:
@ Notification Recipient - me - Notification Recipient - me
@ Notification Events - print complete - Notification Events - print complete
@ Notification Type - store and forward - Notification Type - store and forward
5.I am printing a large, complex print file. I want to have some 5.I am printing a large, complex print file. I want to have some
immediate feedback on the progress of the print job as it prints. I immediate feedback on the progress of the print job as it prints. I
submit the print job with the following attributes: submit the print job with the following attributes:
@ Notification Recipient - me - Notification Recipient - me
@ Notification Type - immediate - Notification Type - immediate
@ Notification Events - all state transitions - Notification Events - all state transitions
@ Notification Attributes - impression completed - Notification Attributes - impression completed
6.I am an operator and my duties is to keep the printer running. I 6.I am an operator and my duties is to keep the printer running. I
subscribe independently from a job submission so that my subscription subscribe independently from a job submission so that my subscription
outlasts any particular job. I subscribe with the following outlasts any particular job. I subscribe with the following
attributes: attributes:
@ Notification Recipient - me - Notification Recipient - me
@ Notification Type - immediate - Notification Type - immediate
@ Notification Events - all Printer state transitions - Notification Events - all Printer state transitions
@ Notification Attributes - Printer state, printer state reasons, - Notification Attributes - Printer state, printer state reasons,
device powering up, device powering down. device powering up, device powering down.
7.I am a usage statistics gathering application. I subscribe 7.I am a usage statistics gathering application. I subscribe
independently from a job submission so that my subscription outlasts independently from a job submission so that my subscription outlasts
any particular job. My subscription may persists across power any particular job. My subscription may persists across power
cycles. I subscribe with the following attributes: cycles. I subscribe with the following attributes:
@ Notification Recipient - me - Notification Recipient - me
@ Notification Type - immediate - Notification Type - immediate
@ Notification Events - job completion - Notification Events - job completion
@ Notification Attributes - impression completed, sheets completed, - Notification Attributes - impression completed, sheets completed,
time submitted, time started, time completed, job owner, job size time submitted, time started, time completed, job owner, job size
in octets, etc. in octets, etc.
8.I am a client application program that displays a list of jobs 8.I am a client application program that displays a list of jobs
currently queued for printing on a printer. I display the "job- currently queued for printing on a printer. I display the "job-
name", "job-state", "job-state-reasons", "page-count", and name", "job-state", "job-state-reasons", "page-count", and
"intervening-jobs" either for the user's jobs or for all jobs. The "intervening-jobs" either for the user's jobs or for all jobs. The
window displaying the job list remains open for an independent amount window displaying the job list remains open for an independent amount
of time, and it is desired that it represent the current state of the of time, and it is desired that it represent the current state of the
queue. It is desired that the application only need to perform a queue. It is desired that the application only need to perform a
skipping to change at page 10, line 16 skipping to change at page 11, line 14
more Notification Recipients when submitting a print job. A Submitter more Notification Recipients when submitting a print job. A Submitter
will not be able to prevent out of band subscriptions from authorized will not be able to prevent out of band subscriptions from authorized
persons, such as Operators. persons, such as Operators.
4.must define means when specifying a Notification Recipient, for a 4.must define means when specifying a Notification Recipient, for a
Notification Subscriber to be able to specify one or more Notification Subscriber to be able to specify one or more
notification events for that Notification Recipient, subject to notification events for that Notification Recipient, subject to
administrative and security policy restrictions. Any of the administrative and security policy restrictions. Any of the
following constitute Job or Printer Events that a Job Submitting End following constitute Job or Printer Events that a Job Submitting End
User can specify notifications be sent for: User can specify notifications be sent for:
@ Any standard Printer MIB alert (i.e. device alerts) (critical - Any standard Printer MIB alert (i.e. device alerts) (critical
and warning?) (state change notifications)? and warning?) (state change notifications)?
@ Job Received (transition from Unknown to Pending) - Job Received (transition from Unknown to Pending)
@ Job Started (Transition from Pending to Processing) - Job Started (Transition from Pending to Processing)
@ Page Complete (Page is stacked) - Page Complete (Page is stacked)
@ Collated Copy Complete (last sheet of collated copy is stacked) - Collated Copy Complete (last sheet of collated copy is stacked)
@ Job Complete (transition from Processing or Processing-stopped - Job Complete (transition from Processing or Processing-stopped
to Completed) to Completed)
@ Job aborted (transition from Pending, Pending-held, Processing, - Job aborted (transition from Pending, Pending-held, Processing,
or Processing-stopped to Aborted) or Processing-stopped to Aborted)
@ Job canceled (transition from Pending, Pending-held, Processing, - Job canceled (transition from Pending, Pending-held, Processing,
or Processing-held to Canceled) or Processing-held to Canceled)
@ Other job state changes like 'paused', purged? - Other job state changes like 'paused', purged?
@ Device problems for which the job is destined - Device problems for which the job is destined
@ Job (interpreter) issues - Job (interpreter) issues
5.must define how an End User or Operator subscribes for: 5.must define how an End User or Operator subscribes for:
@ Any set of Job Events for a specific job. - Any set of Job Events for a specific job.
@ Any set of Printer Events while a specific job is not complete. - Any set of Printer Events while a specific job is not complete.
6.must define how an End User or Operator subscribes for the following 6.must define how an End User or Operator subscribes for the following
without having to submit a Job: without having to submit a Job:
@ Any set of Printer Events for a defined period. - Any set of Printer Events for a defined period.
@ Any set of Job Events for all jobs with no control over which - Any set of Job Events for all jobs with no control over which
jobs. jobs.
ISSUE - Ok if there isn't a way for an End-User to submit an empty Per-
Printer Subscription, in case such a Subscription slot is a scarce
commodity, and then enable the Per-Printer Subscription when the data
arrives and disable later without deleting the subscription?
7.must define how the Notification Subscriber is able to specify either 7.must define how the Notification Subscriber is able to specify either
immediate or store and forward notification independently for each immediate or store and forward notification independently for each
Notification Recipient. The means may be explicit, or implied by the Notification Recipient. The means may be explicit, or implied by the
method of delivery chosen by the Job Submitting End User. method of delivery chosen by the Job Submitting End User.
8.must define common delivery methods, e.g. email, must be defined. 8.must define common delivery methods, e.g. email, must be defined.
9.must define how an IPP Printer validates its ability to deliver an 9.must define how an IPP Printer validates its ability to deliver an
Event using the specified delivery scheme. If it does not support Event using the specified delivery scheme. If it does not support
skipping to change at page 11, line 23 skipping to change at page 12, line 19
client when the delivery of an event notification to a specified client when the delivery of an event notification to a specified
Notification Recipient fails. Fall back means of subscribers Notification Recipient fails. Fall back means of subscribers
determining if notifications have failed, i.e. polling, may be determining if notifications have failed, i.e. polling, may be
provided. provided.
12. must define a mechanism for localizing Human Consumable 12. must define a mechanism for localizing Human Consumable
notifications by the Notification Source. notifications by the Notification Source.
13. may define a way to specify whether or not event delivery requires 13. may define a way to specify whether or not event delivery requires
acknowledgement back to the Notification Source. acknowledgement back to the Notification Source.
ISSUE - Ok if spec doesn't have means for a Notification Recipient
acknowledging receipt of a notification to the Notification Source?
14. There must be a mechanism defined so that job independent 14. There must be a mechanism defined so that job independent
subscriptions do not become stale and do not require human subscriptions do not become stale and do not require human
intervention to remove stale subscriptions. However, stale must not intervention to remove stale subscriptions. However, stale must not
be the inability to deliver an Event Notification , since temporary be the inability to deliver an Event Notification , since temporary
Notification delivery problems must be tolerated. Notification delivery problems must be tolerated.
15. A mechanism must be defined so that an Event Subscriber is able to 15. A mechanism must be defined so that an Event Subscriber is able to
add an Event Subscription to a Job after the Job has been submitted. add an Event Subscription to a Job after the Job has been submitted.
skipping to change at page 11, line 51 skipping to change at page 12, line 45
5 Security considerations for IPP Notifications requirements 5 Security considerations for IPP Notifications requirements
By far the biggest security concern is the abuse of notification: By far the biggest security concern is the abuse of notification:
sending unwanted notifications to third parties (i.e., spam). The sending unwanted notifications to third parties (i.e., spam). The
problem is made worse by notification addresses that may be problem is made worse by notification addresses that may be
redistributed to multiple parties (e.g. mailing lists). There exist redistributed to multiple parties (e.g. mailing lists). There exist
scenarios where third party notification is required (see Scenario #2 scenarios where third party notification is required (see Scenario #2
and #3). The fully secure solution would require active agreement of and #3). The fully secure solution would require active agreement of
all recipients before sending out anything. However, requirement #9 all recipients before sending out anything. However, requirement #9
(.There is no requirement for IPP Printer receiving the print request to (There is no requirement for IPP Printer receiving the print request to
validate the identity of an event recipient.) argues against this. validate the identity of an event recipient) argues against this.
Certain systems may decide to disallow third party notifications (a Certain systems may decide to disallow third party notifications (a
traditional fax model). traditional fax model).
Clients submitting notification requests to the IPP Printer has the same Clients submitting notification requests to the IPP Printer has the same
security issues as submitting an IPP/1.1 print job request. The same security issues as submitting an IPP/1.1 print job request.
The same mechanisms used by IPP/1.1 can therefore be used by the client
mechanisms used by IPP/1.1 can therefore be used by the client
notification submission. Operations that require authentication can use notification submission. Operations that require authentication can use
the HTTP authentication. Operations that require privacy can use the the HTTP authentication. Operations that require privacy can use the
HTTP/TLS privacy. HTTP/TLS privacy.
The notification access control model should be similar to the IPP The notification access control model should be similar to the IPP
access control model. Creating a notification subscription is access control model. Creating a notification subscription is
associated with a user. Only the creator or an operator can cancel the associated with a user. Only the creator or an operator can cancel the
subscription. The system may limit the listing of items to only those subscription. The system may limit the listing of items to only those
items owned by the user. Some subscriptions (e.g. those that have a items owned by the user. Some subscriptions (e.g. those that have a
lifetime longer than a job) can be done only by privileged users lifetime longer than a job) can be done only by privileged users
(operators and/or administrators), if that is the authorization policy. (operators and/or administrators), if that is the authorization policy.
The standard security concerns (delivery to the right user, privacy of The standard security concerns (delivery to the right user, privacy of
content, tamper proof content) apply to the notification delivery. IPP content, tamper proof content) apply to the notification delivery. IPP
should use the security mechanism of the delivery method used. Some should use the security mechanism of the delivery method used. Some
skipping to change at page 12, line 47 skipping to change at page 13, line 41
7 IANA Considerations 7 IANA Considerations
There will be some notification delivery methods registered with IANA There will be some notification delivery methods registered with IANA
for use in URLs. for use in URLs.
8 References 8 References
[ipp-mod] [ipp-mod]
deBry, R., , Hastings, T., Herriot, R., Isaacson, S., Powell, P., deBry, R., , Hastings, T., Herriot, R., Isaacson, S., Powell, P.,
"Internet Printing Protocol/1.1: Model and Semantics", < draft- "Internet Printing Protocol/1.1: Model and Semantics", < draft-
ietf-ipp-model-v11-04.txt>, work in progress, June 23, 1999. ietf-ipp-model-v11-07.txt>, work in progress, May 2000.
[RFC2565] [ipp-pro]
Herriot, R., Butler, S., Moore, P., Tuner, R., "Internet Printing Herriot, R., Butler, S., Moore, P., Tuner, R., "Internet Printing
Protocol/1.0: Encoding and Transport", RFC 2565, April 1999. Protocol/1.1: Encoding and Transport",
<draft-ietf-ipp-protocol-v11-06.txt>, May 2000.
[RFC2566]
R. deBry, T. Hastings, R. Herriot, S. Isaacson, P. Powell,
"Internet Printing Protocol/1.0: Model and Semantics", RFC 2566,
April 1999.
[RFC2567] [RFC2567]
Wright, D., "Design Goals for an Internet Printing Protocol", Wright, D., "Design Goals for an Internet Printing Protocol",
draft-ietf-ipp-req-03.txt, November, 1998. RFC 2567, April 1999.
[RFC2568] [RFC2568]
Zilles, S., "Rationale for the Structure and Model and Protocol for Zilles, S., "Rationale for the Structure and Model and Protocol for
the Internet Printing Protocol", draft-ietf-ipp-rat-04.txt, the Internet Printing Protocol", RFC 2568, April 1999.
November, 1998.
[RFC2569] [RFC2569]
Herriot, R., Hastings, T., Jacobs, N., Martin, J., "Mapping between Herriot, R., Hastings, T., Jacobs, N., Martin, J., "Mapping between
LPD and IPP Protocols", draft-ietf-ipp-lpd-ipp-map-05.txt, November LPD and IPP Protocols", RFC 2569, April 1999.
1998.
[RFC2639] [ipp-iig]
T. Hastings, C. Manros. "Internet Printing Protocol/1.0: T. Hastings, C. Manros. "Internet Printing Protocol/1.1:
Implementer's Guide", RFC 2639, July 1999. Implementer's Guide", <draft-ietf-ipp-implementers-guide-v11-
01.txt>
May 2000.
9 Author's Address 9 Author's Addresses
Harry Lewis Harry Lewis
HUC/003G HUC/003G
IBM Corporation IBM Corporation
P.O. Box 1900 P.O. Box 1900
Boulder, CO 80301-9191 Boulder, CO 80301-9191
Phone: (303) 924-5337 Phone: (303) 924-5337
Fax: (303) 924-9889 Fax: (303) 924-9889
e-mail: harryl@us.ibm.com e-mail: harryl@us.ibm.com
 End of changes. 

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