draft-ietf-ipp-indp-method-04.txt   draft-ietf-ipp-indp-method-05.txt 
INTERNET-DRAFT Hugo Parra INTERNET-DRAFT Hugo Parra
<draft-ietf-ipp-indp-method-04.txt> Novell, Inc. <draft-ietf-ipp-indp-method-05.txt> Novell, Inc.
[Target Category: standards track] Tom Hastings [Target Category: standards track] Tom Hastings
Xerox Corp. Xerox Corp.
February 28, 2001 April 5, 2001
Internet Printing Protocol (IPP): Internet Printing Protocol (IPP):
The 'indp' Delivery Method for Event Notifications and Protocol/1.0 The 'indp' Delivery Method for Event Notifications and Protocol/1.0
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
skipping to change at page 1, line 35 skipping to change at page 1, line 35
material or to cite them other than as "work in progress". material 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
The IPP notification extension document [ipp-ntfy] defines operations This document describes an extension to the Internet Printing
that a client can perform in order to create Subscription Objects in Protocol/1.0 (IPP) [RFC2566, RFC2565] and IPP/1.1 [RFC2911, RFC2910].
a Printer and carry out other operations on them. The Subscription This document specifies the 'indp' Delivery Method and Protocol/1.0
Object specifies that when one of the specified Events occurs, the for use with the IPP Event Notification Specification [ipp-ntfy].
Printer sends an asynchronous Event Notification to the specified This Delivery Method is a simple protocol consisting of a single
Notification Recipient via the specified Delivery Method (i.e., operation: the Send-Notifications operation which uses the same
protocol). encoding and transport as IPP [RFC2565, RFC2910].
The notification extension document [ipp-ntfy] specifies that each
Delivery Method is defined in another document. This document is one
such document, and it specifies the 'indp' Delivery Method and
Protocol. This Delivery Method is a simple protocol consisting of a
single operation: the Send-Notifications operation which uses the
same encoding and transport as IPP. This document defines version
'1.0' of the protocol.
For this Delivery Method, when an Event occurs, the Printer For this Delivery Method, when an Event occurs, the Printer
immediately sends (pushes) an Event Notification via the Send- immediately sends (pushes) an Event Notification via the Send-
Notifications operation to the Notification Recipient specified in Notifications operation to the Notification Recipient specified in
the Subscription Object. The Event Notification content consists of the Subscription Object. The Event Notification content consists of
Machine Consumable attributes and a Human Consumable "notify-text" Machine Consumable attributes and a Human Consumable "notify-text"
attribute. The Notification Recipient returns a response to the attribute. The Notification Recipient returns a response to the
Printer. Printer.
The full 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]
Internet Printing Protocol (IPP): IPP Event Notification
Specification [ipp-ntfy]
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. A few OPTIONAL operator operations have
been added to IPP/1.1.
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 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 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.
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 defines the
encoding rules for a new Internet MIME media type called
"application/ipp". This document also defines the rules for
transporting a message body over HTTP whose Content-Type is
"application/ipp". This document defines a new scheme named 'ipp'
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.
The "Internet Printing Protocol (IPP): IPP Event Notification
Specification" document defines the semantics for Subscription
Creation Operations and the requirements for other Delivery Method
documents to define a Delivery Method to carry an Event Notifications
to a Notification Recipient.
Table of Contents Table of Contents
1 Introduction....................................................7 1 Introduction....................................................4
2 Terminology.....................................................7 2 Terminology.....................................................4
3 Model and Operation.............................................8 3 Model and Operation.............................................5
4 General Information.............................................9 4 General Information.............................................6
5 Subscription object attributes.................................12 5 Subscription object attributes..................................9
5.1 Subscription Template Attribute Conformance.................12 5.1 Subscription Template Attribute Conformance..................9
5.2 Additional Information about Subscription Template Attributes12 5.2 Additional Information about Subscription Template Attributes9
5.2.1 notify-recipient-uri (uri)................................12 5.2.1 notify-recipient-uri (uri).................................9
5.3 Subscription Description Attribute Conformance..............12 5.3 Subscription Description Attribute Conformance...............9
6 Printer Description Attributes.................................12 6 Printer Description Attributes..................................9
6.1 Printer Description Attribute Conformance...................13 6.1 Printer Description Attribute Conformance...................10
6.2 New Values for Existing Printer Description Attributes......13 6.2 New Values for Existing Printer Description Attributes......10
6.2.1 notify-schemes-supported (1setOf uriScheme)...............13 6.2.1 notify-schemes-supported (1setOf uriScheme)...............10
6.2.2 operations-supported (1setOf type2 enum)..................13 6.2.2 operations-supported (1setOf type2 enum)..................10
7 Attributes Only in Event Notifications.........................13 7 Attributes Only in Event Notifications.........................10
8 Operations for Notification....................................14 8 Operations for Notification....................................11
8.1 Send-Notifications operation................................14 8.1 Send-Notifications operation................................11
8.1.1 Send-Notifications Request................................14 8.1.1 Send-Notifications Request................................11
8.1.2 Send-Notifications Response...............................18 8.1.2 Send-Notifications Response...............................15
9 Status Codes...................................................19 9 Status Codes...................................................16
9.1 Additional Status Codes.....................................19 9.1 Additional Status Codes.....................................16
9.1.1 successful-ok-ignored-notifications (0x0004)..............20 9.1.1 successful-ok-ignored-notifications (0x0004)..............17
9.1.2 client-error-ignored-all-notifications (0x0416)...........20 9.1.2 client-error-ignored-all-notifications (0x0416)...........17
9.2 Status Codes returned in Event Notification Attributes Groups20 9.2 Status Codes returned in Event Notification Attributes Groups17
9.2.1 client-error-not-found (0x0406)...........................20 9.2.1 client-error-not-found (0x0406)...........................17
9.2.2 successful-ok-but-cancel-subscription (0x0006)............20 9.2.2 successful-ok-but-cancel-subscription (0x0006)............18
10 Encoding and Transport.........................................21 10 Encoding and Transport.........................................18
10.1 Encoding of the Operation Layer.............................21 10.1 Encoding of the Operation Layer.............................18
10.2 Encoding of Transport Layer.................................21 10.2 Encoding of Transport Layer.................................18
11 Conformance Requirements.......................................21 11 Conformance Requirements.......................................18
11.1 Conformance Requirements for Printers.......................21 11.1 Conformance Requirements for Printers.......................19
11.2 Conformance Requirements for INDP Notification Recipients...22 11.2 Conformance Requirements for INDP Notification Recipients...19
12 INDP URL Scheme................................................23 12 INDP URL Scheme................................................20
12.1 INDP URL Scheme Applicability and Intended Usage............23 12.1 INDP URL Scheme Applicability and Intended Usage............20
12.2 INDP URL Scheme Associated INDP Port........................23 12.2 INDP URL Scheme Associated INDP Port........................20
12.3 INDP URL Scheme Associated MIME Type........................23 12.3 INDP URL Scheme Associated MIME Type........................20
12.4 INDP URL Scheme Character Encoding..........................23 12.4 INDP URL Scheme Character Encoding..........................20
12.5 INDP URL Scheme Syntax in ABNF..............................23 12.5 INDP URL Scheme Syntax in ABNF..............................21
12.5.1 INDP URL Examples.........................................24 12.5.1 INDP URL Examples.........................................22
12.5.2 INDP URL Comparisons......................................25 12.5.2 INDP URL Comparisons......................................22
13 IANA Considerations............................................26 13 IANA Considerations............................................22
13.1 Operation Registrations.....................................26 13.1 Operation Registrations.....................................23
13.2 Additional values of existing attributes....................26 13.2 Additional values of existing attributes....................23
13.2.1 Additional values for the "notify-schemes-supported" Printer 13.2.1 Additional values for the "notify-schemes-supported" Printer
attribute..............................................26 attribute..............................................23
13.2.2 Additional values for the "operations-supported" Printer 13.2.2 Additional values for the "operations-supported" Printer
attribute..............................................27 attribute..............................................24
13.3 Status code Registrations...................................27 13.3 Status code Registrations...................................24
14 Internationalization Considerations............................27 14 Internationalization Considerations............................24
15 Security Considerations........................................28 15 Security Considerations........................................24
15.1 Security Conformance........................................28 15.1 Security Conformance........................................25
16 References.....................................................28 16 References.....................................................25
17 Author's Addresses.............................................30 17 Author's Addresses.............................................27
18 Full Copyright Statement.......................................30 18 Summary of Base IPP documents..................................27
19 Full Copyright Statement.......................................29
Tables Tables
Table 1 - Information about the Delivery Method...................10 Table 1 - Information about the Delivery Method....................7
Table 2 - Operation-id assignments................................13 Table 2 - Operation-id assignments................................10
Table 3 - Attributes in Event Notification Content................16 Table 3 - Attributes in Event Notification Content................13
Table 4 - Additional Attributes in Event Notification Content for Job Table 4 - Additional Attributes in Event Notification Content for Job
Events ........................................................17 Events ........................................................14
Table 5 - Combinations of Events and Subscribed Events for "job- Table 5 - Combinations of Events and Subscribed Events for "job-
impressions-completed" ........................................17 impressions-completed" ........................................14
Table 6 - Additional Attributes in Event Notification Content for Table 6 - Additional Attributes in Event Notification Content for
Printer Events ................................................18 Printer Events ................................................15
Table 7 - The "event-notification-attributes-tag" value...........21 Table 7 - The "event-notification-attributes-tag" value...........18
1 Introduction 1 Introduction
The notification extension document [ipp-ntfy] defines operations The "IPP Event Notification Specification" document [ipp-ntfy]
that a client can perform in order to create Subscription Objects in defines an extension to Internet Printing Protocol/1.0 (IPP)
a Printer and carry out other operations on them. A Subscription [RFC2566, RFC2565] and IPP/1.1 [RFC2911, RFC2910]. This extension
Object represents a Subscription abstraction. The Subscription Object defines operations that a client can perform in order to create
Subscription Objects in a Printer and carry out other operations on
them. A Subscription Object represents a Subscription abstraction.
A client associates Subscription Objects with a particular Job by
performing the Create-Job-Subscriptions operation or by submitting a
Job with subscription information. A client associates Subscription
Objects with the Printer by performing a Create-Printer-Subscriptions
operation. Four other operations are defined for Subscription
Objects: Get-Subscriptions-Attributes, Get-Subscriptions, Renew-
Subscription, and Cancel-Subscription. The Subscription Object
specifies that when one of the specified Events occurs, the Printer specifies that when one of the specified Events occurs, the Printer
sends an asynchronous Event Notification to the specified sends an asynchronous Event Notification to the specified
Notification Recipient via the specified Delivery Method (i.e., Notification Recipient via the specified Delivery Method (i.e.,
protocol). protocol).
The notification extension document [ipp-ntfy] specifies that each The "IPP Event Notification Specification" document [ipp-ntfy]
Delivery Method is defined in another document. This document is one specifies that each Delivery Method is defined in another document.
such document, and it specifies the 'indp' Delivery Method. This This document is one such document, and it specifies the 'indp'
Delivery Method is a simple protocol consisting of a single Delivery Method. This Delivery Method is a simple protocol
operation: the Send-Notifications operation which uses the same consisting of a single operation: the Send-Notifications operation
encoding and transport as IPP. This document defines version '1.0' which uses the same encoding and transport as IPP. This document
of the protocol. defines version '1.0' of the protocol.
For the 'indp' Delivery Method, an IPP Printer sends (pushes) a Send- For the 'indp' Delivery Method, an IPP Printer sends (pushes) a Send-
Notifications operation request containing one or more Event Notifications operation request containing one or more Event
Notifications to the Notification Recipient specified in the Notifications to the Notification Recipient specified in the
Subscription Object. The Event Notification content consists of Subscription Object. The Event Notification content consists of
Machine Consumable attributes and a Human Consumable "notify-text" Machine Consumable attributes and a Human Consumable "notify-text"
attribute. attribute.
The Notification Recipient receives the Event Notification as a Send- The Notification Recipient receives the Event Notification as a Send-
Notifications operation, in the same way as an IPP Printer receives Notifications operation, in the same way as an IPP Printer receives
skipping to change at page 12, line 35 skipping to change at page 9, line 35
the 'indp' Delivery Method. The syntax for values of this attribute the 'indp' Delivery Method. The syntax for values of this attribute
for other Delivery Method is defined in other Delivery Method for other Delivery Method is defined in other Delivery Method
Documents. Documents.
In order to support the 'indp' Delivery Method and Protocol, the In order to support the 'indp' Delivery Method and Protocol, the
Printer MUST support the following syntax: Printer MUST support the following syntax:
The 'indp://' URI scheme. The remainder of the URI indicates The 'indp://' URI scheme. The remainder of the URI indicates
the host name or host address (and optional path) of the the host name or host address (and optional path) of the
Notification Recipient that is to receive the Send- Notification Recipient that is to receive the Send-
Notification operation. Notification operation. See section 12 for a complete
definition of the syntax of the INDP URL.
5.3 Subscription Description Attribute Conformance 5.3 Subscription Description Attribute Conformance
The 'indp' Delivery Method has the same conformance requirements for The 'indp' Delivery Method has the same conformance requirements for
Subscription Description attributes as defined in [ipp-ntfy]. The Subscription Description attributes as defined in [ipp-ntfy]. The
'indp' Delivery Method does not define any addition Subscription 'indp' Delivery Method does not define any addition Subscription
Description attributes. Description attributes.
6 Printer Description Attributes 6 Printer Description Attributes
skipping to change at page 14, line 23 skipping to change at page 11, line 23
8.1 Send-Notifications operation 8.1 Send-Notifications operation
This REQUIRED operation allows a Printer to send one or more Event This REQUIRED operation allows a Printer to send one or more Event
Notifications to a Notification Recipient using HTTP. Notifications to a Notification Recipient using HTTP.
The Printer composes the information defined for an IPP Notification The Printer composes the information defined for an IPP Notification
[ipp-ntfy] and sends it using the Sent-Notifications operation to the [ipp-ntfy] and sends it using the Sent-Notifications operation to the
Notification Recipient supplied in the Subscription object. Notification Recipient supplied in the Subscription object.
The Send-Notifications operations uses the operations model defined The Send-Notifications operation uses the operations model defined by
by IPP [RFC2566]. This includes, the use of a URI as the identifier IPP [RFC2566]. This includes, the use of a URI as the identifier for
for the target of each operation, the inclusion of a version number, the target of each operation, the inclusion of a version number,
operation-id, and request-id in each request, and the definition of operation-id, and request-id in each request, and the definition of
attribute groups. The Send-Notifications operation uses the Operation attribute groups. The Send-Notifications operation uses the Operation
Attributes group, but currently has no need for the Unsupported Attributes group, but currently has no need for the Unsupported
Attributes, Printer Object Attributes, and Job-Object Attributes Attributes, Printer Object Attributes, and Job-Object Attributes
groups. However, it uses a new attribute group, the Event groups. However, it uses a new attribute group, the Event
Notification Attributes group. Notification Attributes group.
The Notification Recipient MUST accept the request in any state. The Notification Recipient MUST accept the request in any state.
There is no state defined for the Notification Recipient for this There is no state defined for the Notification Recipient for this
Delivery Method. Delivery Method.
skipping to change at page 16, line 18 skipping to change at page 13, line 18
notify-subscription-id (integer(1:MAX)) MUST Subscription notify-subscription-id (integer(1:MAX)) MUST Subscription
notify-printer-uri (uri) MUST Subscription notify-printer-uri (uri) MUST Subscription
notify-subscribed-event (type2 keyword) MUST Event notify-subscribed-event (type2 keyword) MUST Event
Notification Notification
printer-up-time (integer(MIN:MAX)) MUST Printer printer-up-time (integer(MIN:MAX)) MUST Printer
printer-current-time (dateTime) * MUST Printer printer-current-time (dateTime) MUST * Printer
notify-sequence-number (integer (0:MAX)) MUST Subscription notify-sequence-number (integer (0:MAX)) MUST Subscription
notify-charset (charset) MUST Subscription notify-charset (charset) MUST Subscription
notify-natural-language (naturalLanguage) MUST Subscription notify-natural-language (naturalLanguage) MUST Subscription
notify-user-data (octetString(63)) ** MUST Subscription notify-user-data (octetString(63)) MUST ** Subscription
notify-text (text (MAX)) MUST Event notify-text (text (MAX)) MUST Event
Notification Notification
attributes from the "notify-attributes" MUST *** Printer attributes from the "notify-attributes" MUST *** Printer
attribute, if any *** attribute, if any
attributes from the "notify-attributes" MUST *** Job attributes from the "notify-attributes" MUST *** Job
attribute, if any *** attribute, if any
attributes from the "notify-attributes" MUST *** Subscription attributes from the "notify-attributes" MUST *** Subscription
attribute, if any *** attribute, if any
* The Printer MUST send "printer-current-time" if and only if * The Printer MUST send "printer-current-time" if and only if
it supports the "printer-current-time" attribute on the Printer it supports the "printer-current-time" attribute on the Printer
object. object.
** If the associated Subscription Object does not contain a ** If the associated Subscription Object does not contain a
"notify-user-data" attribute, the Printer MUST send an octet- "notify-user-data" attribute, the Printer MUST send an octet-
string of length 0. string of length 0.
*** If the "notify-attributes" attribute is present on the *** If the "notify-attributes" attribute is present on the
skipping to change at page 17, line 21 skipping to change at page 14, line 21
Job Events Job Events
Source Value Sends Source Object Source Value Sends Source Object
job-id (integer(1:MAX)) MUST Job job-id (integer(1:MAX)) MUST Job
job-state (type1 enum) MUST Job job-state (type1 enum) MUST Job
job-state-reasons (1setOf type2 keyword) MUST Job job-state-reasons (1setOf type2 keyword) MUST Job
job-impressions-completed MUST Job job-impressions-completed MUST * Job
(integer(0:MAX)) * (integer(0:MAX))
* The Printer MUST send the "job-impressions-completed" * The Printer MUST send the "job-impressions-completed"
attribute in an Event Notification only for the combinations of attribute in an Event Notification only for the combinations of
Events and Subscribed Events shown in Table 5. Events and Subscribed Events shown in Table 5.
Table 5 - Combinations of Events and Subscribed Events for "job- Table 5 - Combinations of Events and Subscribed Events for "job-
impressions-completed" impressions-completed"
Job Event Subscribed Job Event Job Event Subscribed Job Event
skipping to change at page 20, line 18 skipping to change at page 17, line 18
The Notification Recipient was able to consume some, but not all, of The Notification Recipient was able to consume some, but not all, of
the Event Notifications Attributes Groups sent by the Printer in the the Event Notifications Attributes Groups sent by the Printer in the
Send-Notifications request. See section 8.1.2 for further details. Send-Notifications request. See section 8.1.2 for further details.
9.1.2 client-error-ignored-all-notifications (0x0416) 9.1.2 client-error-ignored-all-notifications (0x0416)
The Notification Recipient was unable to consume any of the Event The Notification Recipient was unable to consume any of the Event
Notification Attributes Groups sent by the Printer. The Event Notification Attributes Groups sent by the Printer. The Event
Notification Attributes Groups with a "notify-status-code" attribute Notification Attributes Groups with a "notify-status-code" attribute
are the ones that were ignored or are to be canceled. are the ones that were ignored or are to be canceled. The Printer
MAY remove subscriptions for future events which this client was
unable to consume.
9.2 Status Codes returned in Event Notification Attributes Groups 9.2 Status Codes returned in Event Notification Attributes Groups
This section contains values of the "notify-status-code" attribute This section contains values of the "notify-status-code" attribute
that the Notification Recipient returns in a Event Notification that the Notification Recipient returns in a Event Notification
Attributes Group in a response when the corresponding Event Attributes Group in a response when the corresponding Event
Notification Attributes Group in the request: Notification Attributes Group in the request:
1.was not consumed OR 1.was not consumed OR
skipping to change at page 22, line 22 skipping to change at page 19, line 28
3.MUST support the conformance requirements for Printer Description 3.MUST support the conformance requirements for Printer Description
object attributes defined in section 6. object attributes defined in section 6.
4.MUST support the 'indp' protocol by sending Event Notifications 4.MUST support the 'indp' protocol by sending Event Notifications
using the Send-Notifications operation defined in section 8.1. using the Send-Notifications operation defined in section 8.1.
5.MUST send INDP URLs (e.g., in the "notify-recipient-uri" attribute 5.MUST send INDP URLs (e.g., in the "notify-recipient-uri" attribute
in 'Send-Notifications') that conform to the ABNF specified in in 'Send-Notifications') that conform to the ABNF specified in
section 12.5 of this document; section 12.5 of this document;
6.MUST send INDP operations via the port specified in the INDP URL 6.MUST send the Send-Notifications operation via the port specified
(if present) or otherwise via IANA assigned well-known port [TBD]; in the INDP URL (if present) or otherwise via IANA assigned well-
known port [TBD];
7.MUST convert INDP URLs to their corresponding HTTP URL forms by 7.MUST convert INDP URLs for use in the Send-Notifications operation
to their corresponding HTTP URL forms for use in the HTTP layer by
the same rules used to convert IPP URLs to their corresponding the same rules used to convert IPP URLs to their corresponding
HTTP URL forms (see section 5 'IPP URL Scheme' in [RFC2910]). HTTP URL forms (see section 5 'IPP URL Scheme' in [RFC2910]).
11.2 Conformance Requirements for INDP Notification Recipients 11.2 Conformance Requirements for INDP Notification Recipients
INDP Notification Recipients that conform to this specification: INDP Notification Recipients that conform to this specification:
1.MUST accept Send-Notifications requests and return Send- 1.MUST accept Send-Notifications requests and return Send-
Notifications responses as defined in sections 8 and 9. Notifications responses as defined in sections 8 and 9.
skipping to change at page 23, line 40 skipping to change at page 20, line 42
objects which support this "application/ipp" MIME media type. objects which support this "application/ipp" MIME media type.
See: IANA MIME Media Types Registry [IANA-MIMEREG]. See: IANA MIME Media Types Registry [IANA-MIMEREG].
12.4 INDP URL Scheme Character Encoding 12.4 INDP URL Scheme Character Encoding
The INDP URL scheme defined in this document is based on the ABNF for The INDP URL scheme defined in this document is based on the ABNF for
the HTTP URL scheme defined in HTTP/1.1 [RFC2616], which is derived the HTTP URL scheme defined in HTTP/1.1 [RFC2616], which is derived
from the URI Generic Syntax [RFC2396] and further updated by from the URI Generic Syntax [RFC2396] and further updated by
[RFC2732] and [RFC2373] (for IPv6 addresses in URLs). The INDP URL [RFC2732] and [RFC2373] (for IPv6 addresses in URLs). The INDP URL
scheme is case-insensitive in the host name or host address part; scheme is case-insensitive in the 'scheme' and 'host' (host name or
however the path part is case-sensitive, as in [RFC2396]. Code host address) part; however the 'abs_path' part is case-sensitive, as
points outside [US-ASCII] MUST be hex escaped by the mechanism in [RFC2396]. Code points outside [US-ASCII] MUST be hex escaped by
specified in [RFC2396]. the mechanism specified in [RFC2396].
12.5 INDP URL Scheme Syntax in ABNF 12.5 INDP URL Scheme Syntax in ABNF
This section is intended for use in registering the "indp" URL scheme This section is intended for use in registering the "indp" URL scheme
with IANA and fully conforms to the requirements in [RFC2717]. This with IANA and fully conforms to the requirements in [RFC2717]. This
document defines the "indp" URL (Uniform Resource Locator) scheme for document defines the "indp" URL (Uniform Resource Locator) scheme for
specifying the location of an INDP Notification Recipient object specifying the location of an INDP Notification Recipient object
which implements IPP Notification Delivery Protocol (INDP) specified which implements IPP Notification Delivery Protocol (INDP) specified
in this document. in this document.
skipping to change at page 25, line 35 skipping to change at page 22, line 40
2010:836B:4179::836B:4179 ; IPv6 address per RFC 2373 2010:836B:4179::836B:4179 ; IPv6 address per RFC 2373
are represented in the following example INDP URLs: are represented in the following example INDP URLs:
indp://[::192.9.5.5]/listener indp://[::192.9.5.5]/listener
indp://[::FFFF:129.144.52.38]/listener indp://[::FFFF:129.144.52.38]/listener
indp://[2010:836B:4179::836B:4179]/listeners/tom indp://[2010:836B:4179::836B:4179]/listeners/tom
12.5.2 INDP URL Comparisons 12.5.2 INDP URL Comparisons
When comparing two INDP URLs to decide if they match or not, an INDP When comparing two INDP URLs to decide if they match or not, the
Client SHOULD use a case-sensitive octet-by-octet comparison of the comparer MUST use the same rules as those defined for HTTP URI
entire URLs, with these exceptions: comparisons in [RFC2616], with the sole following exception:
. A port that is empty or not given is equivalent to the well-
known port for that INDP URL (port [TBD]);
. Comparisons of host names MUST be case-insensitive;
. Comparisons of scheme names MUST be case-insensitive;
. An empty 'abs_path' is equivalent to an 'abs_path' of "/".
Characters other than those in the "reserved" and "unsafe" sets (see
[RFC2396] and [RFC2732]) are equivalent to their ""%" HEX HEX"
encoding.
For example, the following three URIs are equivalent:
indp://abc.com/~smith/listener . A port that is empty or not given MUST be treated as equivalent
indp://ABC.com/%7Esmith/listener to the well-known port for that INDP URL (port [TBD]);
indp://ABC.com:/%7esmith/listener
13 IANA Considerations 13 IANA Considerations
IANA is requested to register the indp URL scheme as defined in IANA is requested to register the indp URL scheme as defined in
section 12. section 12.
IANA is requested to assign a default system port (less than 1024) IANA is requested to assign a default system port (less than 1024)
for use with the indp URL as defined in section 12. for use with the indp URL as defined in section 12.
The rest of this section contains the exact information for IANA to The rest of this section contains the exact information for IANA to
skipping to change at page 29, line 36 skipping to change at page 26, line 25
2026, October 1996. 2026, October 1996.
[RFC2373] [RFC2373]
R. Hinden, S. Deering. IP Version 6 Addressing Architecture, RFC R. Hinden, S. Deering. IP Version 6 Addressing Architecture, RFC
2373, July 1998. 2373, July 1998.
[RFC2396] [RFC2396]
Berners-Lee, T. et al. Uniform Resource Identifiers (URI): Generic Berners-Lee, T. et al. Uniform Resource Identifiers (URI): Generic
Syntax, RFC 2396, August 1998 Syntax, RFC 2396, August 1998
[RFC2565]
Herriot, R., Butler, S., Moore, P., and R. Turner, "Internet
Printing Protocol/1.0: Encoding and Transport", RFC 2565, April
1999.
[RFC2566]
R. deBry, T. Hastings, R. Herriot, S. Isaacson, and P. Powell,
"Internet Printing Protocol/1.0: Model and Semantics", RFC 2566,
April 1999.
[RFC2567]
Wright, D., "Design Goals for an Internet Printing Protocol", RFC
2567, April 1999.
[RFC2568]
Zilles, S., "Rationale for the Structure and Model and Protocol for
the Internet Printing Protocol", RFC 2568, April 1999.
[RFC2569]
Herriot, R., Hastings, T., Jacobs, N., Martin, J., "Mapping between
LPD and IPP Protocols", RFC 2569, April 1999.
[RFC2616] [RFC2616]
R. Fielding, J. Gettys, J. Mogul, H. Frystyk, L. Masinter, P. R. Fielding, J. Gettys, J. Mogul, H. Frystyk, L. Masinter, P.
Leach, T. Berners-Lee, "Hypertext Transfer Protocol - HTTP/1.1", Leach, T. Berners-Lee, "Hypertext Transfer Protocol - HTTP/1.1",
RFC 2616, June 1999. RFC 2616, June 1999.
[RFC2617] [RFC2617]
J. Franks, P. Hallam-Baker, J. Hostetler, S. Lawrence, P. Leach, A. J. Franks, P. Hallam-Baker, J. Hostetler, S. Lawrence, P. Leach, A.
Luotonen, L. Stewart, "HTTP Authentication: Basic and Digest Access Luotonen, L. Stewart, "HTTP Authentication: Basic and Digest Access
Authentication", RFC 2617, June 1999. Authentication", RFC 2617, June 1999.
skipping to change at page 30, line 39 skipping to change at page 27, line 48
Tom Hastings Tom Hastings
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
18 Full Copyright Statement 18 Summary of Base IPP documents
The base 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]
Internet Printing Protocol (IPP): IPP Event Notification
Specification [ipp-ntfy]
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 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 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.
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 defines the
encoding rules for a new Internet MIME media type called
"application/ipp". This document also defines the rules for
transporting a message body over HTTP 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.
The "Internet Printing Protocol (IPP): IPP Event Notification
Specification" document defines an extension to IPP/1.0 [RFC2566,
RFC2565] and IPP/1.1 [RFC2911, RFC2910]. This extension allows a
client to subscribe to printing related Events by creating a
Subscription Object and defines the semantics for delivering
asynchronous Event Notifications to the specified Notification
Recipient via a specified Delivery Method (i.e., protocols) defined
in (separate) Delivery Method documents.
19 Full Copyright Statement
Copyright (C) The Internet Society (2001). All Rights Reserved. Copyright (C) The Internet Society (2001). All Rights 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
document itself may not be modified in any way, such as by removing document itself may not be modified in any way, such as by removing
 End of changes. 

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