draft-ietf-ipp-install-00.txt   draft-ietf-ipp-install-01.txt 
INTERNET-DRAFT There remains 2 unresolved ISSUES INTERNET-DRAFT
<draft-ietf-ipp-install-00.txt> <draft-ietf-ipp-install-01.txt>
Hugo Parra Hugo Parra
Novell, Inc. Novell, Inc.
Ted Tronson Ted Tronson
Novell, Inc. Novell, Inc.
July 13, 2000 Tom Hastings
Xerox Corp.
November 7, 2000
Internet Printing Protocol (IPP): Internet Printing Protocol (IPP):
Printer Installation Extension Printer Installation Extension
Copyright (C) The Internet Society (2000). 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
skipping to change at page 1, line 46 skipping to change at page 1, line 48
Abstract Abstract
Various client platforms require that some setting up take place at the Various client platforms require that some setting up take place at the
workstation before the client can properly submit jobs to a specific workstation before the client can properly submit jobs to a specific
printer. This setup process is sometimes referred to as printer printer. This setup process is sometimes referred to as printer
installation. Most clients need some information about the printer installation. Most clients need some information about the printer
being installed as well as support files to complete the printer being installed as well as support files to complete the printer
installation. The nature of the support files varies depending on the installation. The nature of the support files varies depending on the
specific client platform, from simple configuration files to highly specific client platform, from simple configuration files to highly
sophisticated printer drivers. This document refers to these support sophisticated printer drivers. This document refers to these support
files as "client print support files". Traditionally, the selection and files as "Client Print Support Files". Traditionally, the selection and
installation of the correct client print support files has been error installation of the correct Client Print Support Files has been error
prone. The selection and installation process can be simplified and prone. The selection and installation process can be simplified and
even automated if the workstation can learn some key information about even automated if the workstation can learn some key information about
the printer. This document describes the IPP extensions that enable the printer and which sets of Client Print Support Files are available.
workstations to obtain the information needed to perform a proper Such key information includes: operating system type, CPU type,
printer driver installation using IPP. document-format (PDL), natural language, etc. This document describes
the IPP extensions that enable workstations to obtain the information
needed to perform a proper printer driver installation using IPP.
Expires January 13, 2001 Expires May 7, 2001
The full set of IPP documents includes: The full set of IPP documents includes:
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.1: Model and Semantics [ipp-mod] Internet Printing Protocol/1.1: Model and Semantics [RFC2911]
Internet Printing Protocol/1.1: Encoding and Transport [ipp-pro] Internet Printing Protocol/1.1: Encoding and Transport [RFC2910]
Internet Printing Protocol/1.1: Implementer's Guide [ipp-iig] 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. A few OPTIONAL operator operations have been satisfied in IPP/1.0. A few OPTIONAL operator operations have been
skipping to change at page 3, line 5 skipping to change at page 3, line 5
is intended to help them understand IPP/1.1 and some of the 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 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.
Expires January 13, 2001 Expires May 7, 2001
Table of Contents Table of Contents
1 Introduction......................................................4 1 Introduction......................................................4
2 Terminology.......................................................4 2 Terminology.......................................................4
3 Model Extensions..................................................4 3 Model Extensions..................................................4
3.1 "CLIENT-PRINT-SUPPORT-FILES-SUPPORTED" (1SETOF OCTETSTRING(MAX)).5 3.1 client-print-support-files-supported (1setOf octetString(MAX)).5
3.2 GET-PRINTER-ATTRIBUTES EXTENSION.................................7 3.2 Get-Printer-Attributes Operation Extension.....................9
3.2.1 Get-Printer-Attributes Request..............................7 3.2.1 Get-Printer-Attributes Request..............................9
3.2.2 Get-Printer-Attributes Response.............................9 3.2.1.1 client-print-support-files-filter (octetString(MAX))
3.3GET-CLIENT-PRINT-SUPPORT-FILES...................................9 operation attribute..............................................9
3.3.1 Get-Client-Print-Support-Files Request.....................10 3.2.2 Get-Printer-Attributes Response............................11
3.3.2 Get-Client-Print-Support-Files Response....................10 3.3 Get-Client-Print-Support-Files................................12
4 Encoding of the Operation Layer..................................11 3.3.1 Get-Client-Print-Support-Files Request.....................12
5 Encoding of Transport Layer......................................11 3.3.2 Get-Client-Print-Support-Files Response....................13
6 IANA Considerations..............................................11 4 Conformance......................................................14
7 Internationalization Considerations..............................11 5 Encoding of the Operation Layer..................................14
8 Security Considerations..........................................11 6 Encoding of Transport Layer......................................14
9 References.......................................................12 7 IANA Considerations..............................................15
10 Author's Addresses...............................................13 8 Internationalization Considerations..............................15
11 Full Copyright Statement.........................................13 9 Security Considerations..........................................15
10 References......................................................15
11 Author's Addresses..............................................16
12 Full Copyright Statement........................................17
Expires January 13, 2001 Tables
Table 1 - "client-print-support-files-supported" attribute fields.....7
Table 2 - "client-print-support-files-filter" attribute fields.......10
Expires May 7, 2001
1 Introduction 1 Introduction
A common configuration for printing from a workstation requires that A common configuration for printing from a workstation requires that
some client print support files (e.g., PPD, printer driver files) some Client Print Support Files (e.g., PPD, printer driver files)
specific to the target printer be installed on that workstation. specific to the target printer be installed on that workstation.
Selection and configuration of the appropriate client print support Selection and configuration of the appropriate Client Print Support
files can be simplified and even automated if the workstation can obtain Files can be simplified and even automated if the workstation can obtain
some key information about the printer. With a few extensions, IPP some key information about the printer and which sets of Client Print
provides a simple and reliable vehicle for printers to convey this Support Files are available. Such key information includes: operating
information to interested workstations. The IPP extensions described in system type, CPU type, document-format (PDL), natural language, etc.
this document enable a flexible solution for installing client print With a few extensions, IPP provides a simple and reliable vehicle for
support files on workstations running different operating systems and printers to convey this information to interested workstations. The IPP
for printers of all makes and models. It allows client print support extensions described in this document enable a flexible solution for
files to be downloaded from repositories of different sorts. A possible installing Client Print Support Files on workstations running different
repository for the files is the printer itself. The extensions operating systems and for printers of all makes and models. It allows
necessary for getting client print support files from the printer are Client Print Support Files to be downloaded from repositories of
included in this document. different sorts. A possible repository for the files is the printer
itself. The extensions necessary for getting Client Print Support Files
from the printer are included in this document.
2 Terminology 2 Terminology
Client Print Support Files - a set of files, such as a printer driver,
font metric file, printer configuration file (PPD, GPD, etc.) that
support a client printing to a particular Printer. A Printer can have
multiple sets of Client Print Support Files that work for different
operating systems, document formats, natural languages, CPUs, etc.
This document uses terms such as "attributes", "keywords", and This document uses terms such as "attributes", "keywords", and
"support". These terms have special meaning and are defined in the "support". These terms have special meaning and are defined in the
model terminology [ipp-mod] section 12.2. model terminology [RFC2911] section 12.2.
Capitalized terms, such as MUST, MUST NOT, REQUIRED, SHOULD, SHOULD NOT, Capitalized terms, such as MUST, MUST NOT, REQUIRED, SHOULD, SHOULD NOT,
MAY, NEED NOT, and OPTIONAL, have special meaning relating to MAY, NEED NOT, and OPTIONAL, have special meaning relating to
conformance. These terms are defined in [ipp-mod] section 12.1 on conformance. These terms are defined in [RFC2911] section 12.1 on
conformance terminology, most of which is taken from RFC 2119 [RFC2119]. conformance terminology, most of which is taken from RFC 2119 [RFC2119].
This section defines the following additional terms that are used This section defines the following additional terms that are used
throughout this document: throughout this document:
REQUIRED: if an implementation supports the extensions described in REQUIRED: if an implementation supports the extensions described in
this document, it MUST support a REQUIRED feature. this document, it MUST support a REQUIRED feature.
OPTIONAL: if an implementation supports the extensions described in OPTIONAL: if an implementation supports the extensions described in
this document, it MAY support an OPTIONAL feature. this document, it MAY support an OPTIONAL feature.
3 Model Extensions 3 Model Extensions
To assist workstations in the printer installation process, an IPP To assist workstations in the printer installation process, an IPP
printer needs to provide the workstation with information about the printer needs to provide the workstation with information about the
client print support files, such as the their name and location/s. This Client Print Support Files, such as the their name and location/s. This
information needs to match the workstation's specific environment, such information needs to match the workstation's specific environment, such
as its operating system, preferred natural language, and preferred as its operating system, preferred natural language, and preferred
document format. document format.
Expires May 7, 2001
The following extensions to the IPP model enable assisted or automated The following extensions to the IPP model enable assisted or automated
printer installation. This section describes each extension in detail. printer installation. This section describes each extension in detail.
- A new REQUIRED printer-description attribute: "client-print- - A new REQUIRED Printer Description attribute: "client-print-
support-files-supported". support-files-supported" (1setOf octetString(MAX)).
- A new REQUIRED Get-Printer-Attributes operational attribute: - A new REQUIRED Get-Printer-Attributes operation attribute:
"client-print-support-files-request". "client-print-support-files-filter" (octetString(MAX)).
Expires January 13, 2001 - A new RECOMMENDED printer operation: Get-Client-Print-Support-
- A new OPTIONAL printer operation: Get-Client-Print-Support-
Files. Files.
3.1 "client-print-support-files-supported" (1setOf octetString(MAX)) 3.1 client-print-support-files-supported (1setOf octetString(MAX))
An IPP Printer uses the REQUIRED printer-description attribute "client- An IPP Printer uses the REQUIRED Printer Description attribute "client-
print-support-files-supported" to represent relevant information about print-support-files-supported" to represent relevant information about
the client print support files it supports. Each value is a composite all of the Client Print Support Files it supports. Each value is a
ASCII string with well-defined fields (see Table 1). Each value string composite UTF-8 string with well-defined fields (see Table 1). Each
must be formatted as follows: value string MUST be formatted as follows:
"uri=val < field-name =val ,.,val < . < field-name =val ,.,val <". "uri=val < field-name =val ,.,val < . < field-name =val ,.,val <"
1 2 21 2p n n1 nq 1 2 21 2p n n1 nq
Expires January 13, 2001 The first field MUST be the "uri" field. The remaining fields MAY be in
any order.
The string MUST NOT include any control characters (hex 00 to 1F), even
the so-called white space control characters (TAB, CR, and LF) anywhere.
Only zero or more UTF-8 SPACE characters (hex 20) can be included and
they can be included only IMMEDIATELY AFTER the punctuation character:
"<", but NOT anywhere else, including after "=" and ",". However, if
the UTF-8 SPACE character is needed in a file name value, then each
occurrence is included directly, without escaping (see example). On the
other hand, if the UTF-8 SPACE character is needed in a URL value, then
each occurrence is escaped as: "\x20" (URI conventions - see [RFC2396]).
Table 1 lists the REQUIRED fields that a Printer MUST support and the
OPTIONAL fields that a Printer MAY support in the "client-print-support-
files-supported" (1setOf octetString(MAX)) Printer Description
attribute. A Printer implementation MAY support additional fields using
the same syntax. Values are defined to be either CASE-SENSITIVE or ALL-
LOWER-CASE according to the definitions for the attribute syntaxes from
[RFC2911] (set off by single quotes in the table). The CASE-SENSITIVE
values MAY have upper and lower case letters as for the corresponding
attribute syntaxes in [RFC2911]. The LOWER-CASE values MUST have all
lower case alphabetic letters. Additional characters, such as digits,
hyphen-minus (-), period (.), and slash (/) are according to the
corresponding attribute syntaxes in [RFC2911].
Expires May 7, 2001
Clients SHOULD ignore fields they don't recognize in a given value.
This allows for future extensions to the format of the string without
breaking compatibility with earlier clients.
Expires May 7, 2001
Table 1 - "client-print-support-files-supported" attribute fields
Field name Field value Field name Field value
"uri" One REQUIRED string identifying the uri where to obtain "uri" One REQUIRED CASE-SENSITIVE 'uri' string identifying the
the support files for each OS platform, document format, uri where to obtain the support files for each OS
and natural language the printer supports. This MUST be platform, document format, and natural language the
the first field in each value. Examples of uri types printer supports. This MUST be the first field in each
that may be found here are FTP, HTTP, and IPP. FTP and value. Examples of uri schemes that MAY be found here
HTTP uri's identify the archive file that contains all are ftp, http, and ipp. The ftp and http schemed URIs
the necessary client support files. IPP uri's identify identify the archive file that contains all the
the printer object from which the archive file may be necessary client support files. The ipp schemed URIs
obtained (see section 3.3). also identify the archive file which may be obtained
from the Printer using the Get-Client-Print-Support-
Files operation (see section 3.3). In order to
distinguish between multiple Client Print Support Files,
the ipp URL is used to distinguish between them in an
implementation dependent manner, such as using a file
URL parameter (' file=xxx). A Printer SHOULD support
the ipp scheme.
"os-type" One or more REQUIRED comma-separated strings identifying "os-type" One or more REQUIRED comma-separated LOWER-CASE strings
the operating system types supported by this set of identifying the operating system types supported by this
client print support files. Valid values include the set of Client Print Support Files. Valid values include
operating system names defined in the IANA document [os- the operating system names defined in the IANA document
names]. [os-names]. Although the IANA registry requires that the
names be all upper-case, the values MUST be all lower
case in this field (plus hyphen-minus (-), period (.),
and slash (/)). Examples: linux, linux-2.2, os/2, sun-
os-4.0, unix, unix-bsd, win32, windows-95, windows-98,
windows-ce, windows-nt, windows-nt-4, windows-nt-5.
"cpu-type" One or more REQUIRED comma-separated strings identifying "cpu-type" One or more REQUIRED comma-separated LOWER-CASE strings
the CPU types supported by this set of client print identifying the CPU types supported by this set of
support files. Valid values include the operating system Client Print Support Files. Values (or compatible):
names defined in the IANA document [cpu-names]. 'unknown', 'x86-16', 'x86-32', 'x86-64', 'dec-vax',
"unknown" is a valid value. 'alpha', 'power-pc', 'm-6800', 'sparc', 'itantium',
'mips', 'arm'.
"document- One or more REQUIRED comma-separated strings identifying "document- One or more REQUIRED comma-separated CASE-SENSITIVE
format" the document formats supported by this set of client format" 'document-format' strings identifying the document
print support files. Valid values are the string formats supported by this set of Client Print Support
representation of the IPP mimeMediaType syntax. Files. Valid values are the string representation of
"unknown" is a valid value. the IPP mimeMediaType syntax (see [RFC2911]). 'unknown'
is a valid value.
"natural- One or more REQUIRED comma-separated strings identifying "natural- One or more REQUIRED comma-separated LOWER-CASE
language" the natural language used by this set of client print language" 'naturalLanguage' strings identifying the natural
support files. Valid values are the string language used by this set of Client Print Support Files.
representation of the IPP naturalLanguage syntax. Valid values are the string representation of the IPP
"unknown" is a valid value. naturalLanguage syntax. 'unknown' is a valid value.
"compression" One REQUIRED string identifying the mechanism used to "compression" One REQUIRED LOWER-CASE 'keyword' string identifying the
compress this set of client print support files. All mechanism used to compress this set of Client Print
files needed for the installation of a printer driver Support Files. All files needed for the installation of
MUST be compressed into a single file. Valid values
are: "deflate", "gzip", "compress". "none" is allowed
but limits the uncompressed client print support file to
a single file.
"install- One or more REQUIRED comma-separated strings identifying Expires May 7, 2001
file-type" the type of the client print support files. Valid
values are: "printer-driver", "ppd", "updf", "gpd".
"install- One REQUIRED string identifying the name by which the Field name Field value
file-name" client print support files will be installed on the
workstation. For client print support files of type
"printer-driver", this is also the name that identifies
this printer driver in an .inf file.
Table 1. client-print-support-files-supported fields a printer driver MUST be compressed into a single file.
Valid values are: 'deflate', 'gzip', 'compress'. The
'none' value is allowed but limits the uncompressed
Client Print Support File to a single file.
Expires January 13, 2001 "file-type" One or more REQUIRED comma-separated LOWER-CASE
'keyword' strings identifying the type of the Client
Print Support Files. Valid values are: 'printer-
driver', 'ppd', 'updf', 'gpd'.
Each value MUST refer to one and only one set of client print support "file-name" One REQUIRED CASE-SENSITIVE string identifying the name
files, even if the files are downloadable from various repositories by which the Client Print Support Files will be
(i.e., even if they are associated with multiple uir's). installed on the workstation. For Client Print Support
Files of type 'printer-driver', this is also the name
that identifies this printer driver in an .inf file.
The following illustrates what two valid values of "client-print- "policy" One REQUIRED LOWER-CASE 'keyword' string indicating the
support-files-supported" might look like, ISSUE 1: What strings should policy for automatic loading. Values: 'unknown',
be used for CPU types in the examples? 'manufacturer-recommended', 'administrator-recommended',
'manufacturer-experimental, and 'administrator-
experimental'. The experimental values are for beta
test.
"uri=ipp://mycompany.com/myprinter< os-type=windows-95< "file-size" One OPTIONAL file size in octets represented as ASCII
cpu-type=Intell-P5< document- decimal digits.
format=application/postscript<
natural-language=en< compresion=gzip< install-file-
type=printer-driver<
install-file-name=ManufacturerName<"
"uri=ftp://mycompany.com/root/drivers/win95/CompanyX/ModelY. "file- One OPTIONAL LOWER-CASE version number. Recommended to
zip< version" be of the form "Major.minor[.revision]" "Major" is the
os-type=windows-95< cpu-type=Intell-P5< major version number, "minor" is the minor version
number and "revision" is an optional revision number.
"file-date- One OPTIONAL File CASE-SENSITIVE creation date and time
time" according to ISO 8601 where all fields are fixed length
with leading zeroes (see [RFC2518] Appendix 2).
Examples: 2000-01-01T23:09:05Z and 2000-01-01T02:59:59-
04.00
Each value MUST refer to one and only one set of Client Print Support
Files, even if the files are downloadable from various repositories
(i.e., even if they are associated with multiple URIs).
The following illustrates what two valid values of the "client-print-
support-files-supported" (1setOf octetString(MAX)) Printer Description
attribute might look like:
uri=ipp://mycompany.com/myprinter<
os-type=windows-95< cpu-type=x86-32<
document-format=application/postscript<
natural-language=en< compression=gzip<
install-file-type=printer-driver<
install-file-name=CompanyX-ModelY-driver.gz<
policy=manufacturer-recommended<
Expires May 7, 2001
uri=ftp://mycompany.com/root/drivers/win95/CompanyX/ModelY.g
z<
os-type=windows-95< cpu-type=x86-32<
document-format=application/postscript,application/vnd.hp- document-format=application/postscript,application/vnd.hp-
PCL< PCL<
natural-language=en,fr< compresion=gzip< install-file- natural-language=en,fr< compression=gzip<
type=printer-driver< install-file-type=printer-driver<
install-file-name=ManufacturerName<" install-file-name=Company T Model Z driver.gz<
policy=manufacturer-recommended<
The "client-print-support-files-supported" printer description attribute The above examples have been broken onto separate lines for readability
may be preset at manufacturing time or set via the IPP set-printer- in this document. However, there MUST NOT be any line breaks in the
attribute operation or through administrative means outside the scope of actual values.
IPP.
Clients SHOULD ignore fields they don't recognize in a given value. The "client-print-support-files-supported" Printer Description attribute
This allows for feature extensions to the format of the string without MAY be preset at manufacturing time or set via the IPP Set-Printer-
breaking compatibility with earlier clients. Attribute operation or through administrative means outside the scope of
IPP.
3.2 Get-Printer-Attributes Extension 3.2 Get-Printer-Attributes Operation Extension
The following extensions allow a workstation to retrieve information on The "client-print-support-files-supported" Printer Description attribute
the client print support files a printer supports using the existing defined in section 3.1 contains information, such as operating system,
Get-Printer-Attributes operation. natural language, and document format, about all of the sets of Client
Print Support Files. This section defines an extension to the Get-
Printer-Attributes operation that allows a workstation to filter out all
but the Client Print Support Files of interest.
3.2.1 Get-Printer-Attributes Request 3.2.1 Get-Printer-Attributes Request
A printer may contain information on multiple client print support files A Printer MAY contain information about multiple sets of Client Print
to match the different operating systems, natural languages and document Support Files to match the different operating systems, natural
formats it supports. A workstation may query this information by languages and document formats it supports. A workstation may query
including "client-print-support-files-supported " in the "requested- this information by including the 'client-print-support-files-supported'
attributes" operational attribute of the Get-Printer-Attributes keyword as a value of the "requested-attributes" operation attribute of
operation. The workstation can control what information a printer the Get-Printer-Attributes operation.
returns by including the "client-print-support-files-request"
operational attribute.
Expires January 13, 2001 3.2.1.1 client-print-support-files-filter (octetString(MAX)) operation
attribute
"client-print-support-files-request" (octetString(MAX)) is used as The client can request a subset of the values of the "client-print-
follows. support-files-supported" Printer attribute by supplying the "client-
print-support-files-filter" (octetString(MAX)) operation attribute in
the request as a filter. The filter value indicates in which Client
Print Support Files the client is interested. The client MAY supply this
attribute. The Printer MUST support this attribute.
The IPP Printer is REQUIRED to support this operational attribute and The filter value of the "client-print-support-files-filter" attribute is
all its member fields. An IPP Client MAY supply the attribute if it a composite string with the same format as that of "client-print-
wishes to restrict the printer driver information it receives from the support-files-supported" (see Table 1 - "client-print-support-files-
printer. Its text value is a composite string with the same format as
that of "client-print-support-files-supported" (see section 3.1). Table
2 describes the fields that may be included in this string.
If "client-print-support-files-request" is not specified by the client, Expires May 7, 2001
the printer should behave as if the attribute had been provided with all
fields left empty (i.e., return an unfiltered list).
It is recommended that workstations first use Get-Printer-Attributes in supported" attribute fields in section 3.1) with the following
combination with "client-print-support-files-request" to get a list of exceptions:
the potential client print support files that meet the workstation's
requirements. The workstation can then choose from the returned list
which client print support files to use and where to get them. If one
of the uri's returned is an IPP uri, the workstation can retrieve the
client print support files from an IPP printer via the Get-Client-Print-
Support-Files operation (see section 3.3).
Expires January 13, 2001 Table 2 - "client-print-support-files-filter" attribute fields
Field name Field value Field Field Value in the "client-print-support-files-filter"
Name attribute
"uri-scheme" One or more OPTIONAL strings instructing the printer uri- One or more REQUIRED comma-separated LOWER-CASE
to only return information on client print support scheme 'uriScheme' string values identifying the uri scheme to be
files that can be located at uri's of the specified filtered on. Example URI schemes are: ftp, http, and ipp.
uri schemes. If not present, the printer does not The Printer SHOULD support the ipp scheme. If supplied by
filter the information it returns based on uri-scheme. the client, this field NEED NOT be first. If this field
is omitted by the client, the Printer returns all schemes.
"os-type" One or more OPTIONAL strings instructing the printer xxx All of the fields in "Table 1 - "client-print-support-
to only return information on client print support files-supported" attribute fields, with the single
files that support the specified operating systems. exception of the "uri" field which a client MUST NOT
If not present, the printer does not filter the supply and a Printer MUST NOT support.
information it returns based on os-type.
"cpu-type" One or more OPTIONAL strings instructing the printer Any field can have more than one value separated by a
to only return information on client print support COMMA (,), including the fields that Table 1 indicates
files that support the specified CPU types. If not MUST BE single valued.
present, the printer does not filter the information
it returns based on cpu-type.
"document- One or more OPTIONAL strings instructing the printer Clients MAY supply additional fields and/or additional values of defined
format" to only return information on client print support fields.
files that support the specified document formats. If
not present, the printer does not filter the
information it returns based on document format.
"natural- One or more OPTIONAL strings instructing the printer The Printer returns only the values of the "client-print-support-files-
language" to only return information on client print support supported" Printer Description attribute that match the filter in the
files that support the specified natural languages. "client-print-support-files-filter" operation attribute. A match occurs
If not present, the printer does not filter the if at least one value of each field supplied in the filter matches a
information it returns based on natural language. Client Print Support File value. A match for a CASE-INSENSITIVE field
occurs independent of the case of the letters supplied by the client and
those stored by the Printer, while a match for a LOWER-CASE field is a
strict character for character match.
"compression" One or more OPTIONAL strings instructing the printer The following are two examples of a "client-print-support-files-filter"
to only return information on client print support filter value:
files that use the specified compressions. If not
present, the printer does not filter the information
it returns based on compression.
Table 2. client-print-support-files-request fields os-type=windows-95< cpu-type=x86-32<
document-format=application-postscript< natural-language=en,de<
uri-scheme=ipp< os-type=windows-95< cpu-type=x86-32<
document-format=application-postscript< natural-language=en,de<
See section 3.2.2 for example matching in the response.
Expires May 7, 2001
The IPP Printer is REQUIRED to support this operation attribute and the
following member fields in a "client-print-support-files-filter"
operation attribute filter in the Get-Printer-Attributes request:
1. uri-scheme
2. os-type
3. cpu-type
4. document-format
5. natural-language
Printer implementations MAY support additional fields and additional
values of defined fields. Printers MUST ignore fields they do not
support.
If the "client-print-support-files-filter" operation attribute filter is
not supplied by the client, the printer should behave as if the
attribute had been provided with all fields left empty (i.e., return an
unfiltered list).
It is RECOMMENDED that workstations first use the Get-Printer-Attributes
operation in combination with "client-print-support-files-filter"
operation attribute filter to get a list of the potential Client Print
Support Files that meet the workstation's requirements. The workstation
can then choose from the returned list which Client Print Support Files
to use and where to get them. If one of the URIs returned is an IPP
uri, the workstation can retrieve the Client Print Support Files from an
IPP printer via the Get-Client-Print-Support-Files operation (see
section 3.3).
3.2.2 Get-Printer-Attributes Response 3.2.2 Get-Printer-Attributes Response
A printer MUST return the "client-print-support-files-supported" A Printer MUST return the "client-print-support-files-supported" (1setOf
attribute in the "printer-object" attribute group when a requested by a octetString(MAX)) attribute in the Printer Object Attributes group
client. Each returned attribute value must satisfy the criteria (group 3) when requested by a client. Each returned attribute value
specified by the client in the request. must satisfy the criteria specified by the client in the request.
3.3 Get-Client-Print-Support-Files For example, if the request contains the following "client-print-
support-files-filter" filter:
This OPTIONAL operation allows a client to download client print support os-type=windows-95< cpu-type=x86-32< document-format=application-
files from an IPP Printer. postscript<
natural-language=en,de<
Expires January 13, 2001 A conforming response is the following two octet String values:
uri=ipp://mycompany.com/myprinter<
os-type=windows-95< cpu-type=x86-32<
document-format=application/postscript<
natural-language=en< compression=gzip<
install-file-type=printer-driver<
install-file-name=CompanyX-ModelY-driver.gz<
Expires May 7, 2001
policy=manufacturer-recommended<
uri=ftp://mycompany.com/root/drivers/win95/CompanyX/ModelY.g
z<
os-type=windows-95< cpu-type=x86-32<
document-format=application/postscript,application/vnd.hp-
PCL<
natural-language=en,fr< compression=gzip<
install-file-type=printer-driver<
install-file-name=CompanyX-ModelY-driver.gz<
policy=manufacturer-recommended<
These examples have been broken onto separate lines for readability in
this document. However, there MUST NOT be any line breaks in the actual
values.
As an other example, if the above request had also contained the "uri-
scheme" field in the following "client-print-support-files-filter"
filter:
uri-scheme=ipp< os-type=windows-95< cpu-type=x86-32<
document-format=application-postscript<
natural-language=en,de<
Then only the first value would have been returned as a single
octetString value:
uri=ipp://mycompany.com/myprinter<
os-type=windows-95< cpu-type=x86-32<
document-format=application/postscript<
natural-language=en< compression=gzip<
install-file-type=printer-driver<
install-file-name=CompanyX-ModelY-driver.gz<
policy=manufacturer-recommended<
3.3 Get-Client-Print-Support-Files
This RECOMMENDED operation allows a client to download Client Print
Support Files from an IPP Printer.
3.3.1 Get-Client-Print-Support-Files Request 3.3.1 Get-Client-Print-Support-Files Request
The following sets of attributes are part of the Get-Client-Print- The following sets of attributes are part of the Get-Client-Print-
Support-Files request: Support-Files request:
Group 1: Operation Attributes Group 1: Operation Attributes
Natural Language and Character Set: Natural Language and Character Set:
The "attributes-charset" and "attributes-natural-language" The "attributes-charset" and "attributes-natural-language"
attributes as described in [ipp-mod], section 3.1.4.1. attributes as described in [RFC2911], section 3.1.4.1.
Expires May 7, 2001
Target: Target:
The "printer-uri" (uri) operation attribute which is the target The "printer-uri" (uri) operation attribute which is the target
for this operation as described in [ipp-mod], section 3.1.5. for this operation as described in [RFC2911], section 3.1.5.
Requesting User Name: Requesting User Name:
The "requesting-user-name" (name(MAX)) attribute SHOULD be The "requesting-user-name" (name(MAX)) attribute SHOULD be
supplied by the client as described in [ipp-mod], section 8.3. supplied by the client as described in [RFC2911], section 8.3.
"client-print-support-files-request" (octetString(MAX)) : "client-print-support-files-uri" (uri):
The client MUST supply this attribute specifying the criteria The client MUST supply this attribute specifying the uri for the
the returned client print support files should meet. If more desired Client Print Support Files, i.e., the value of the "uri"
than one set of client print support files meet the specified field returned by the Get-Printer-Attributes in one of the
criteria, the printer returns the first one it encounters. The values of the "client-print-support-files-supported" (1setOf
format and semantics of this attribute's value are identical to octetString(MAX)) Printer attribute. The URI scheme must be
those of the Get-Printer-Attributes operational attribute of the ipp.
same name described in section 3.2.1.
Note: This uri is neither the Printer.s target "printer-uri"
nor the URI in the HTTP header.
3.3.2 Get-Client-Print-Support-Files Response 3.3.2 Get-Client-Print-Support-Files Response
The Printer object returns the following sets of attributes as part of The Printer object returns the following sets of attributes as part of
the Get-Client-Print-Support-Files Response: the Get-Client-Print-Support-Files Response:
Group 1: Operation Attributes Group 1: Operation Attributes
Status Message: Status Message:
In addition to the REQUIRED status code returned in every In addition to the REQUIRED status code returned in every
response, the response OPTIONALLY includes a "status-message" response, the response OPTIONALLY includes a "status-message"
(text(255)) operation attribute as described in [ipp-mod], (text(255)) operation attribute as described in [RFC2911],
sections 13 and 3.1.6. sections 13 and 3.1.6.
Natural Language and Character Set: Natural Language and Character Set:
The "attributes-charset" and "attributes-natural-language" The "attributes-charset" and "attributes-natural-language"
attributes as described in [ipp-mod], section 3.1.4.2. attributes as described in [RFC2911], section 3.1.4.2.
Group 2: Unsupported Attributes Group 2: Unsupported Attributes
See [ipp-mod], section 3.1.7 for details on returning Unsupported See [RFC2911], section 3.1.7 for details on returning Unsupported
Attributes. Attributes.
Group 3: Printer Object Attributes Group 3: Printer Object Attributes
Expires January 13, 2001
"client-print-support-files-supported" (octetString(MAX)). "client-print-support-files-supported" (octetString(MAX)).
The Printer object MUST return this attribute if the response This attribute identifies the properties of the returned Client
includes Group 4 (i.e., if a set of client print support files Print Support Files. The Printer object MUST return this
that meets the client's criteria was found and is included in attribute if the response includes Group 4 (i.e., if a set of
the response). The provided text string MUST use the format Client Print Support Files identified by the supplied "client-
shown in section 3.1. This attribute identifies the properties support-files-uri" was found). The Printer MUST return the
of the returned client print support files. format shown in section 3.1.
Group 4: Client Print Support Files Group 4: Client Print Support Files
The printer MUST supply the client print support files that match
Expires May 7, 2001
The printer MUST supply the Client Print Support Files that match
the client's criteria following the "end-of-attributes" tag. All the client's criteria following the "end-of-attributes" tag. All
necessary files must be compressed into a single file. necessary files must be compressed into a single file.
4 Encoding of the Operation Layer 4 Conformance
This extension uses the operation layer encoding described in [ipp-pro]. A Printer conforming to this specification:
5 Encoding of Transport Layer 1. MUST support the "client-print-support-files-supported" Printer
Description attribute as defined in section 3.1, including all of
the REQUIRED fields defined in Table 1 and MAY support the OPTIONAL
fields defined in Table 1.
This specification uses the transport layer encoding described in [ipp- 2. MUST support the "client-print-support-files-filter" operation
pro] with the following extensions. attribute in the Get-Printer-Attributes request as defined in
section 3.2, including all of the fields defined in Table 2 and
ignoring any fields not recognized.
3. MUST support at least one of the following URI schemes that
identify the support files: ftp, http, or ipp, of which the ipp
scheme is the RECOMMENDED one.
4. SHOULD support the Get-Client-Print-Support-Files operation as
described in section 3.3. If this operation is supported, then one
of the supported schemes MUST be ipp.
A client conforming to this specification:
1. MUST ignore any fields returned by the Printer in the "client-
print-support-files-supported" Printer Description attribute that
the client does not recognize or support.
2. SHOULD be able to retrieve Client Print Support Files by either ftp
Get or http Get operations.
3. MUST be able to retrieve Client Print Support Files using the Get-
Client-Print-Support-Files operation, i.e., support the ipp scheme.
5 Encoding of the Operation Layer
This extension uses the operation layer encoding described in [RFC2910].
6 Encoding of Transport Layer
This specification uses the transport layer encoding described in
[RFC2910] with the following extensions.
New Error codes: New Error codes:
0x0417 clnt-err-client-print-support-file-not-found 0x0417 client-error-client-print-support-file-not-found
New Operation code New Operation code
Expires May 7, 2001
0x0021 Get-Client-Print-Support-Files 0x0021 Get-Client-Print-Support-Files
6 IANA Considerations 7 IANA Considerations
IANA-registered operating system names are required by this spec. All The IANA-registered operating system names that IANA has registered [os-
other IANA considerations are already addressed by IPP. ISSUE 2: Should names] are required by this spec.
mention IANA's future support for CPU types?
7 Internationalization Considerations The "cpu-type" is not a current IANA registry. The current IANA machine
registration [cpu-names] is really a machine model number, not a CPU
type. Also whether a CPU is 16-bit, 32-bit, or 64-bit needs to be
indicated in the CPU name which is not currently reflected in the IANA
CPU registry. Therefore, the os-type will be a new type of registration
with initial values assigned in Table 1 under "os-type", as with other
elements in IPP [see RFC2911 section 6 and 11].
All other IANA considerations are already addressed by IPP.
8 Internationalization Considerations
All text representations introduced by this specification adhere to the All text representations introduced by this specification adhere to the
internationalization-friendly representation supported by IPP. This internationalization-friendly representation supported by IPP. This
work is also accommodates the use of client print support files of work is also accommodates the use of Client Print Support Files of
different languages. different languages.
8 Security Considerations 9 Security Considerations
The IPP Model and Semantics document [ipp-mod] discusses high-level The IPP Model and Semantics document [RFC2911] discusses high-level
security requirements (Client Authentication, Server Authentication and security requirements (Client Authentication, Server Authentication and
Operation Privacy). Client Authentication is the mechanism by which the Operation Privacy). Client Authentication is the mechanism by which the
client proves its identity to the server in a secure manner. Server client proves its identity to the server in a secure manner. Server
Authentication is the mechanism by which the server proves its identity Authentication is the mechanism by which the server proves its identity
Expires January 13, 2001
to the client in a secure manner. Operation Privacy is defined as a to the client in a secure manner. Operation Privacy is defined as a
mechanism for protecting operations from eavesdropping. mechanism for protecting operations from eavesdropping.
Only operators of a printer should be allowed to set the "printer- Only operators of a printer should be allowed to set the "printer-
driver-supported" attribute and only users of the printer should be driver-supported" attribute and only users of the printer should be
allowed to query that information. allowed to query that information.
Printers that support the Get-Client-Print-Support-Files operation are Printers that support the Get-Client-Print-Support-Files operation are
REQUIRED to implement TLS to enable users to reliably authenticate the REQUIRED to implement TLS to enable users to reliably authenticate the
source of the client print support files. source of the Client Print Support Files.
9 References 10 References
[cpu-names] [cpu-names]
IANA Registry of CPU Names at ftp://ftp.isi.edu/in- IANA Registry of CPU Names at ftp://ftp.isi.edu/in-
notes/iana/assignments/XXX. notes/iana/assignments/XXX.
[ipp-mod]
R. deBry, T. Hastings, R. Herriot, S. Isaacson, P. Powell,
"Internet Printing Protocol/1.0: Model and Semantics", <draft-ietf-
ipp-model-v11-06.txt>, March 1, 2000.
[ipp-pro]
Herriot, R., Butler, S., Moore, P., Tuner, R., "Internet Printing
Protocol/1.1: Encoding and Transport", draft-ietf-ipp-protocol-v11-
05.txt, March 1, 2000.
[os-names] [os-names]
IANA Registry of Operating System Names at ftp://ftp.isi.edu/in- IANA Registry of Operating System Names at ftp://ftp.isi.edu/in-
notes/iana/assignments/operating-system-names. notes/iana/assignments/operating-system-names.
[rfc2026] Expires May 7, 2001
[RFC2026]
S. Bradner, "The Internet Standards Process -- Revision 3", RFC S. Bradner, "The Internet Standards Process -- Revision 3", RFC
2026, October 1996. 2026, October 1996.
[rfc2616] [RFC2518]
Goland, Y., et al, "HTTP Extensions for Distributed Authoring --
WEBDAV", RFC 2518, February 1999.
[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.
Expires January 13, 2001 [RFC2911]
R. deBry, T. Hastings, R. Herriot, S. Isaacson, P. Powell,
"Internet Printing Protocol/1.0: Model and Semantics", <draft-ietf-
ipp-model-v11-06.txt>, March 1, 2000.
10 Author's Addresses [RFC2910]
Herriot, R., Butler, S., Moore, P., Tuner, R., "Internet Printing
Protocol/1.1: Encoding and Transport", draft-ietf-ipp-protocol-v11-
05.txt, March 1, 2000.
11 Author's Addresses
Hugo Parra Hugo Parra
Novell, Inc. Novell, Inc.
1800 South Novell Place 1800 South Novell Place
Provo, UT 84606 Provo, UT 84606
Phone: 801-861-3307 Phone: 801-861-3307
Fax: 801-861-4025 Fax: 801-861-4025
e-mail: hparra@novell.com e-mail: hparra@novell.com
Ted Tronson Ted Tronson
Novell, Inc. Novell, Inc.
1800 South Novell Place 1800 South Novell Place
Provo, UT 84606 Provo, UT 84606
Phone: 801-861-3338 Phone: 801-861-3338
Fax: 801-861-4025 Fax: 801-861-4025
e-mail: ttronson@novell.com e-mail: ttronson@novell.com
11 Full Copyright Statement Thomas N. Hastings
Xerox Corp.
737 Hawaii St. ESAE 231
El Segundo, CA 90245
Phone: 310-333-6413
Fax: 310-333-5514
e-mail: hastings@cp10.es.xerox.com
Expires May 7, 2001
12 Full Copyright Statement
Copyright (C) The Internet Society (2000). All Rights Reserved. Copyright (C) The Internet Society (2000). 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 or others, and derivative works that comment on or otherwise explain it or
assist in its implementation may be prepared, copied, published and assist in its implementation may be prepared, copied, published and
distributed, in whole or in part, without restriction of any kind, distributed, in whole or in part, without restriction of any kind,
provided that the above copyright notice and this paragraph are included provided that the above copyright notice and this paragraph are included
on all such copies and derivative works. However, this document itself on all such copies and derivative works. However, this document itself
may not be modified in any way, such as by removing the copyright notice may not be modified in any way, such as by removing the copyright notice
skipping to change at line 577 skipping to change at line 811
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 "AS This document and the information contained herein is provided on an "AS
IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK
FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT
LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT
INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR
FITNESS FOR A PARTICULAR PURPOSE. FITNESS FOR A PARTICULAR PURPOSE.
Expires January 13, 2001 Expires May 7, 2001
 End of changes. 

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