draft-ietf-ipp-not-05.txt   draft-ietf-ipp-not-06.txt 
INTERNET DRAFT Roger K deBry Internet Printing Protocol WG Tom Hastings (editor)
<draft-ietf-ipp-not-05.txt> Utah Valley State College INTERNET DRAFT Xerox Corporation
[Target Category: Informational] Harry Lewis <draft-ietf-ipp-not-06.txt> Roger K deBry
[Target Category: Informational] Utah Valley State College
Expires: January 17, 2002 Harry Lewis
IBM Corporation IBM Corporation
Tom Hastings (editor) July 17, 2001
Xerox Corporation
January 23, 2001
Internet Printing Protocol (IPP): Requirements for IPP Notifications Internet Printing Protocol (IPP): Requirements for IPP Notifications
Copyright (C) The Internet Society (2001). All Rights Reserved. Copyright (C) The Internet Society (2001). All Rights Reserved.
STATUS OF THIS MEMO STATUS OF THIS MEMO
This document is an Internet-Draft and is in full conformance with This document is an Internet-Draft and is in full conformance with
all provisions of Section 10 of [RFC2026]. Internet-Drafts are all provisions of Section 10 of [RFC2026]. Internet-Drafts are
working documents of the Internet Engineering Task Force (IETF), its working documents of the Internet Engineering Task Force (IETF), its
areas, and its working groups. Note that other groups may also areas, and its working groups. Note that other groups may also
skipping to change at page 1, line 41 skipping to change at page 1, line 41
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 This document is one of a set of documents which together describe
all aspects of a new Internet Printing Protocol (IPP). IPP is an all aspects of a new Internet Printing Protocol (IPP). IPP is an
application level protocol that can be used for distributed printing application level protocol that can be used for distributed printing
on the Internet. There are multiple parts to IPP, but the primary on the Internet. There are multiple parts to IPP, but the primary
architectural components are the Model, the Protocol and an interface architectural components are the Model, the Protocol and an interface
to Directory Services. This document provides a statement of the to Directory Services. This document provides a statement of the
requirements for notifications as part of an IPP Service. requirements for notifications as an optional part of an IPP Service.
The full set of IPP documents include:
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.0: Model and Semantics [RFC2566]
Internet Printing Protocol/1.0: Encoding and Transport [RFC2565]
Internet Printing Protocol/1.0: Implementer's Guide [RFC 2639]
Mapping between LPD and IPP Protocols [RFC2569]
The 'Design Goals for an Internet Printing Protocol' document takes a
broad look at distributed printing functionality, and it enumerates
real-life scenarios that help to clarify the features that need 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. Operator and administrator requirements
are out of scope for version 1.0.
The 'Rationale for the Structure and Model and Protocol for the
Internet Printing Protocol' document describes IPP from a high level
view, defines a roadmap for the various documents that form the suite
of IPP specifications, and gives background and rationale for the
IETF working group's major decisions.
The 'Internet Printing Protocol/1.0: Encoding and Transport' document
is 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 new Internet media type called 'application/ipp'.
The 'Internet Printing Protocol/1.0: Implementer's Guide' document Table of Contents
gives 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 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.
The 'Mapping between LPD and IPP Protocols' document gives some 1 Scope............................................................3
advice to implementers of gateways between IPP and LPD (Line Printer
Daemon) implementations.
Table of Contents 2 Terminology......................................................3
1 Scope ...........................................................4 3 Scenarios........................................................7
2 Terminology .....................................................4 4 Requirements....................................................11
3 Scenarios .......................................................8 5 Security considerations for IPP Notifications requirements......13
4 Requirements ...................................................11
5 Security considerations for IPP Notifications requirements .....13 6 Internationalization Considerations.............................14
6 Internationalization Considerations ............................14 7 IANA Considerations.............................................14
7 IANA Considerations ............................................14 8 References......................................................14
8 References .....................................................14 9 Author's Address................................................15
9 Author's Address ...............................................15 10 Appendix A: Description of the Base IPP Documents..............16
10 Appendix A: Full Copyright Statement...........................16 11 Appendix B: Full Copyright Statement...........................17
1 Scope 1 Scope
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 level protocol that can be used for distributed printing
on the Internet. There are multiple parts to IPP, but the primary
architectural components are the Model, the Protocol and an interface
to Directory Services. This document provides a statement of the
requirements for notifications as an optional part of an IPP Service.
See section 10 for a description of the base IPP documents.
The scope of this requirements document covers functionality used by The scope of this requirements document covers functionality used by
the following kinds of IPP Users: End Users, Print Administrators and the following kinds of IPP Users: End Users, Print Administrators and
Operators. Operators. See [ipp-ntfy] for the extensions to the Internet
Printing Protocol/1.0 (IPP) [RFC2565, RFC2566], IPP/1.1 [RFC2911,
RFC2910], and future versions.
2 Terminology 2 Terminology
It is necessary to define a set of terms in order to be able to It is necessary to define a set of terms in order to be able to
clearly express the requirements for notification services in an IPP clearly express the requirements for notification services in an IPP
System. System.
2.1 Job Submitting End User 2.1 Job Submitting End User
A human end user who submits a print job to an IPP Printer. This A human end user who submits a print job to an IPP Printer. This
skipping to change at page 8, line 25 skipping to change at page 7, line 44
3 Scenarios 3 Scenarios
1.I am sitting in my office and submit a print job to the printer 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 down the hall. I am in the same security domain as the printer and
of course, geographically near. I want to know immediately when of course, geographically near. I want to know immediately when
my print job will be completed (or if there is a problem) because my 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 the document I am working on is urgent. I submit the print job
with the following attributes: with the 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 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 as in the previous example. However, since I am not at work, I
cannot physically get the print file or do anything with it. It cannot 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 can wait 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 secretary to 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 doesn't get lost or miss-filed. I'd also like a store and forward
notification sent to my email so that when I get to work I can notification sent to my email so that when I get to work I can
tell if there was a problem with the print job. I submit a print tell if there was a problem with the print job. I submit a print
job with the following attributes: job with the following 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 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 firm 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 job is complete, so that she can pick it up from the printer in
her building. It is important that she review it right away and 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 get her comments back to me. I submit the print job with the
following attributes: following 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 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 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 meeting I am attending in the morning. Since I'm going out to
dinner after I get this job submitted, an immediate notification dinner after I get this job submitted, an immediate notification
won't do me much good. However, I'd like to check in the morning won't do me 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 before I drive to the Kinko's store to see if the file has been
printed. An email notification is sufficient for this purpose. I printed. An email notification is sufficient for this purpose. I
submit the print job with the following attributes: submit the print job 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. immediate feedback on the progress of the print job as it prints.
I submit the print job with the following attributes: I 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 subscribe independently from a job submission so that my
subscription outlasts any particular job. I subscribe with the subscription outlasts any particular job. I subscribe with the
following attributes: following 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 independently from a job submission so that my subscription
outlasts any particular job. My subscription may persists across outlasts any particular job. My subscription may persists across
power cycles. I subscribe with the following attributes: power 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 ? Notification Attributes - impression completed, sheets
completed, time submitted, time started, time completed, job completed, time submitted, time started, time completed, job
owner, job size in octets, etc. owner, job size 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. "intervening-jobs" either for the user's jobs or for all jobs.
The window displaying the job list remains open for an independent The window displaying the job list remains open for an independent
amount of time, and it is desired that it represent the current amount of time, and it is desired that it represent the current
state of the queue. It is desired that the application only need state of the queue. It is desired that the application only need
skipping to change at page 12, line 7 skipping to change at page 11, line 34
more Notification Recipients when submitting a print job. A more Notification Recipients when submitting a print job. A
Submitter will not be able to prevent out of band subscriptions Submitter will not be able to prevent out of band subscriptions
from authorized persons, such as Operators. from authorized 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 following constitute Job or Printer Events that a Job Submitting
End User can specify notifications be sent for: End 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 ? Collated Copy Complete (last sheet of collated copy is
stacked) stacked)
. Job Complete (transition from Processing or Processing- ? Job Complete (transition from Processing or Processing-
stopped to Completed) stopped to Completed)
. Job aborted (transition from Pending, Pending-held, ? Job aborted (transition from Pending, Pending-held,
Processing, or Processing-stopped to Aborted) Processing, or Processing-stopped to Aborted)
. Job canceled (transition from Pending, Pending-held, ? Job canceled (transition from Pending, Pending-held,
Processing, or Processing-held to Canceled) Processing, 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 ? Any set of Printer Events while a specific job is not
complete. complete.
6.must define how an End User or Operator subscribes for the 6.must define how an End User or Operator subscribes for the
following without having to submit a Job: following 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.
7.must define how the Notification Subscriber is able to specify 7.must define how the Notification Subscriber is able to specify
either immediate or store and forward notification independently either immediate or store and forward notification independently
for each Notification Recipient. The means may be explicit, or for each Notification Recipient. The means may be explicit, or
implied by the method of delivery chosen by the Job Submitting End implied by the method of delivery chosen by the Job Submitting End
User. 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.
skipping to change at page 14, line 45 skipping to change at page 14, line 29
Notification Subscriber specifies within the choice of natural Notification Subscriber specifies within the choice of natural
languages and charsets that the IPP Printer supports. See [RFC2566]. languages and charsets that the IPP Printer supports. See [RFC2566].
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. These will be defined in other documents. for use in URLs. These will be defined in other documents.
8 References 8 References
[ipp-ntfy]
Isaacson, S., Martin, J., deBry, R., Hastings, T., Shepherd, M.,
Bergman, R., " IPP Event Notification Specification", <draft-ietf-
ipp-not-spec-07.txt>, work in progress, July 17, 2001.
[RFC2565] [RFC2565]
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.0: Encoding and Transport", RFC 2565, April 1999.
[RFC2566] [RFC2566]
R. deBry, T. Hastings, R. Herriot, S. Isaacson, P. Powell, R. deBry, T. Hastings, R. Herriot, S. Isaacson, P. Powell,
"Internet Printing Protocol/1.0: Model and Semantics", RFC 2566, "Internet Printing Protocol/1.0: Model and Semantics", RFC 2566,
April 1999. April 1999.
[RFC2567] [RFC2567]
Wright, D., "Design Goals for an Internet Printing Protocol", Wright, D., "Design Goals for an Internet Printing Protocol", RFC
draft-ietf-ipp-req-03.txt, November, 1998. 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] [RFC2639]
T. Hastings, C. Manros. "Internet Printing Protocol/1.0: T. Hastings, C. Manros. "Internet Printing Protocol/1.0:
Implementer's Guide", RFC 2639, July 1999. Implementer's Guide", RFC 2639, July 1999.
[RFC2910]
Herriot, R., Butler, S., Moore, P., Turner, R., "Internet Printing
Protocol/1.1: Encoding and Transport", RFC 2910, September 2000.
[RFC2911] [RFC2911]
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", RFC 2911, "Internet Printing Protocol/1.1: Model and Semantics", RFC 2911,
September 2000. September 2000.
9 Author's Address 9 Author's Address
Harry Lewis Harry Lewis
HUC/003G HUC/003G
IBM Corporation IBM Corporation
skipping to change at page 16, line 4 skipping to change at page 15, line 49
e-mail: debryro@uvsc.edu e-mail: debryro@uvsc.edu
Tom Hastings (editor) Tom Hastings (editor)
Xerox Corporation Xerox Corporation
737 Hawaii St. ESAE 231 737 Hawaii St. ESAE 231
El Segundo, CA 90245 El Segundo, CA 90245
Phone: 310-333-6413 Phone: 310-333-6413
Fax: 310-333-5514 Fax: 310-333-5514
e-mail: hastings@cp10.es.xerox.com e-mail: hastings@cp10.es.xerox.com
IPP Mailing List: ipp@pwg.org
IPP Mailing List Subscription: ipp-request@pwg.org
IPP Web Page: http://www.pwg.org/ipp/ IPP Web Page: http://www.pwg.org/ipp/
IPP Mailing List: ipp@pwg.org
To subscribe to the ipp mailing list, send the following email:
1) send it to majordomo@pwg.org
2) leave the subject line blank
3) put the following two lines in the message body:
subscribe ipp
end
10 Appendix A: Full Copyright Statement Implementers of this specification document are encouraged to join
the IPP Mailing List in order to participate in any discussions of
clarification issues and review of registration proposals for
additional attributes and values. In order to reduce spam the
mailing list rejects mail from non-subscribers, so you must subscribe
to the mailing list in order to send a question or comment to the
mailing list.
10 Appendix A: Description of the Base IPP Documents
The base set of IPP documents includes:
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 [IPP-IIG]
Mapping between LPD and IPP Protocols [RFC2569]
The "Design Goals for an Internet Printing Protocol" document takes a
broad look at distributed printing functionality, and it enumerates
real-life scenarios that help to clarify the features that need 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 [RFC2566, RFC2565]. A few OPTIONAL operator
operations have been added to IPP/1.1 [RFC2911, RFC2910].
The "Rationale for the Structure and Model and Protocol for the
Internet Printing Protocol" document 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 IPP working group's major decisions.
The "Internet Printing Protocol/1.1: Model and Semantics" document
describes a simplified model with abstract objects, their attributes,
and their operations. The model introduces a Printer and a Job. The
Job supports multiple documents per Job. The model document also
addresses how security, internationalization, and directory issues
are addressed.
The "Internet Printing Protocol/1.1: Encoding and Transport" document
is a formal mapping of the abstract operations and attributes defined
in the model document onto HTTP/1.1 [RFC2616]. It also 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 'ipp' scheme for
identifying IPP printers and jobs.
The "Internet Printing Protocol/1.1: Implementer's Guide" document
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.
The "Mapping between LPD and IPP Protocols" document gives some
advice to implementers of gateways between IPP and LPD (Line Printer
Daemon) implementations.
11 Appendix B: Full Copyright Statement
Copyright (C) The Internet Society (1998,1999,2000,2001). All Rights Copyright (C) The Internet Society (1998,1999,2000,2001). All Rights
Reserved Reserved
This document and translations of it may be copied and furnished to This document and translations of it may be copied and furnished to
others, and derivative works that comment on or otherwise explain it others, and derivative works that comment on or otherwise explain it
or assist in its implementation may be prepared, copied, published or assist in its implementation may be prepared, copied, published
and distributed, in whole or in part, without restriction of any and distributed, in whole or in part, without restriction of any
kind, provided that the above copyright notice and this paragraph are kind, provided that the above copyright notice and this paragraph are
included on all such copies and derivative works. However, this included on all such copies and derivative works. However, this
skipping to change at line 732 skipping to change at page 18, line 14
The limited permissions granted above are perpetual and will not be The limited permissions granted above are perpetual and will not be
revoked by the Internet Society or its successors or assigns. revoked by the Internet Society or its successors or assigns.
This document and the information contained herein is provided on an This document and the information contained herein is provided on an
"AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
Acknowledgement
Funding for the RFC Editor function is currently provided by the
Internet Society.
 End of changes. 

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