draft-ietf-ipp-install-01.txt   draft-ietf-ipp-install-02.txt 
INTERNET-DRAFT INTERNET-DRAFT
<draft-ietf-ipp-install-01.txt> <draft-ietf-ipp-install-02.txt>
Hugo Parra [Target category: standards track] Hugo Parra
Novell, Inc. Novell, Inc.
Ted Tronson Ted Tronson
Novell, Inc. Novell, Inc.
Tom Hastings Tom Hastings
Xerox Corp. Xerox Corp.
November 7, 2000 February 28, 2001
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 (2001). 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
provisions of Section 10 of [RFC2026]. Internet-Drafts are working all provisions of Section 10 of [RFC2026]. Internet-Drafts are
documents of the Internet Engineering Task Force (IETF), its areas, and working documents of the Internet Engineering Task Force (IETF), its
its working groups. Note that other groups may also distribute working areas, and its working groups. Note that other groups may also
documents as Internet-Drafts. distribute working 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
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
Various client platforms require that some setting up take place at the Various client platforms require that some setting up take place at
workstation before the client can properly submit jobs to a specific the workstation before the client can properly submit jobs to a
printer. This setup process is sometimes referred to as printer specific printer. This setup process is sometimes referred to as
installation. Most clients need some information about the printer printer installation. Most clients need some information about the
being installed as well as support files to complete the printer printer being installed as well as support files to complete the
installation. The nature of the support files varies depending on the printer installation. The nature of the support files varies
specific client platform, from simple configuration files to highly depending on the specific client platform, from simple configuration
sophisticated printer drivers. This document refers to these support files to highly sophisticated printer drivers. This document refers
files as "Client Print Support Files". Traditionally, the selection and to these support files as "Client Print Support Files".
installation of the correct Client Print Support Files has been error Traditionally, the selection and installation of the correct Client
prone. The selection and installation process can be simplified and Print Support Files has been error prone. The selection and
even automated if the workstation can learn some key information about installation process can be simplified and even automated if the
the printer and which sets of Client Print Support Files are available. workstation can learn some key information about the printer and
Such key information includes: operating system type, CPU type, which sets of Client Print Support Files are available. Such key
document-format (PDL), natural language, etc. This document describes information includes: operating system type, CPU type, document-
the IPP extensions that enable workstations to obtain the information format (PDL), natural language, compression mechanism, file type,
needed to perform a proper printer driver installation using IPP. client file name, policy for automatic loading, file size, file
version, file date and time, file information description, and
Expires May 7, 2001 digital signature. This document describes the IPP extensions that
enable workstations to obtain the information needed to perform a
proper printer driver installation using IPP, including security for
downloading executable code and data.
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
Printing Protocol [RFC2568] Internet Printing Protocol [RFC2568]
Internet Printing Protocol/1.1: Model and Semantics [RFC2911] Internet Printing Protocol/1.1: Model and Semantics [RFC2911]
Internet Printing Protocol/1.1: Encoding and Transport [RFC2910] 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
satisfied in IPP/1.0. A few OPTIONAL operator operations have been are satisfied in IPP/1.0. A few OPTIONAL operator operations have
added to IPP/1.1. been added to IPP/1.1.
The "Rationale for the Structure and Model and Protocol for the Internet The "Rationale for the Structure and Model and Protocol for the
Printing Protocol" document describes IPP from a high level view, Internet Printing Protocol" document describes IPP from a high level
defines a roadmap for the various documents that form the suite of IPP view, defines a roadmap for the various documents that form the suite
specification documents, and gives background and rationale for the IETF of IPP specification documents, and gives background and rationale
working group's major decisions. for the IETF working group's major decisions.
The "Internet Printing Protocol/1.1: Encoding and Transport" document is The "Internet Printing Protocol/1.1: Encoding and Transport" document
a formal mapping of the abstract operations and attributes defined in is a formal mapping of the abstract operations and attributes defined
the model document onto HTTP/1.1 [RFC2616]. It defines the encoding in the model document onto HTTP/1.1 [RFC2616]. It defines the
rules for a new Internet MIME media type called "application/ipp". This encoding rules for a new Internet MIME media type called
document also defines the rules for transporting a message body over "application/ipp". This document also defines the rules for
HTTP whose Content-Type is "application/ipp". This document defines a transporting a message body over HTTP whose Content-Type is
new scheme named 'ipp' for identifying IPP printers and jobs. "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 The "Internet Printing Protocol/1.1: Implementer's Guide" document
insight and advice to implementers of IPP clients and IPP objects. It gives insight and advice to implementers of IPP clients and IPP
is intended to help them understand IPP/1.1 and some of the objects. It is intended to help them understand IPP/1.1 and some of
considerations that may assist them in the design of their client and/or the considerations that may assist them in the design of their client
IPP object implementations. For example, a typical order of processing and/or IPP object implementations. For example, a typical order of
requests is given, including error checking. Motivation for some of the processing requests is given, including error checking. Motivation
specification decisions is also included. for some of the 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
to implementers of gateways between IPP and LPD (Line Printer Daemon) advice to implementers of gateways between IPP and LPD (Line Printer
implementations. Daemon) implementations.
Expires May 7, 2001
Table of Contents Table of Contents
1 Introduction......................................................4 1 Introduction....................................................6
2 Terminology.......................................................4
3 Model Extensions..................................................4 2 Terminology.....................................................6
3.1 client-print-support-files-supported (1setOf octetString(MAX)).5
3.2 Get-Printer-Attributes Operation Extension.....................9 3 Model Extensions................................................7
3.2.1 Get-Printer-Attributes Request..............................9
3.1 client-print-support-files-supported (1setOf octetString(MAX))
..........................................................7
3.1.1 Use of Keyword Values in fields.............................12
3.1.2 Use of the Special Keyword Value: 'unknown'.................12
3.1.3 Examples of "client-print-support-files-supported" attribute
values.................................................12
3.2 Get-Printer-Attributes Operation Extension..................13
3.2.1 Get-Printer-Attributes Request..............................13
3.2.1.1 client-print-support-files-filter (octetString(MAX)) 3.2.1.1 client-print-support-files-filter (octetString(MAX))
operation attribute..............................................9
3.2.2 Get-Printer-Attributes Response............................11 operation attribute..................................13
3.3 Get-Client-Print-Support-Files................................12
3.3.1 Get-Client-Print-Support-Files Request.....................12 3.2.1.1.1 Filter matching rules.................................15
3.3.2 Get-Client-Print-Support-Files Response....................13
4 Conformance......................................................14 3.2.2 Get-Printer-Attributes Response.............................16
5 Encoding of the Operation Layer..................................14
6 Encoding of Transport Layer......................................14 3.3 Get-Client-Print-Support-Files..............................17
7 IANA Considerations..............................................15
8 Internationalization Considerations..............................15 3.3.1 Get-Client-Print-Support-Files Request......................17
9 Security Considerations..........................................15
10 References......................................................15 3.3.2 Get-Client-Print-Support-Files Response.....................18
11 Author's Addresses..............................................16
12 Full Copyright Statement........................................17 4 Conformance....................................................19
5 Encoding of the Operation Layer................................20
6 Encoding of Transport Layer....................................20
7 IANA Considerations............................................20
7.1 Attribute Registrations.....................................21
7.2 Operation Registrations.....................................22
8 Internationalization Considerations............................22
9 Security Considerations........................................22
10 References.....................................................23
11 Author's Addresses.............................................24
12 Full Copyright Statement.......................................25
Tables Tables
Table 1 - "client-print-support-files-supported" attribute fields.....7 Table 1 - "client-print-support-files-supported" attribute fields..9
Table 2 - "client-print-support-files-filter" attribute fields.......10 Table 2 - "client-print-support-files-filter" attribute fields....14
Expires May 7, 2001 Table 3 - REQUIRED "client-print-support-files-filter" fields.....14
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
some key information about the printer and which sets of Client Print obtain some key information about the printer and which sets of
Support Files are available. Such key information includes: operating Client Print Support Files are available. Such key information
system type, CPU type, document-format (PDL), natural language, etc. includes: operating system type, CPU type, document-format (PDL),
With a few extensions, IPP provides a simple and reliable vehicle for natural language, compression mechanism, file type, client file name,
printers to convey this information to interested workstations. The IPP policy for automatic loading, file size, file version, file date and
extensions described in this document enable a flexible solution for time, file information description, and digital signature. With a
installing Client Print Support Files on workstations running different few extensions, IPP provides a simple and reliable vehicle for
operating systems and for printers of all makes and models. It allows printers to convey this information to interested workstations. The
Client Print Support Files to be downloaded from repositories of IPP extensions described in this document enable a flexible solution
different sorts. A possible repository for the files is the printer for installing Client Print Support Files on workstations running
itself. The extensions necessary for getting Client Print Support Files different operating systems and for printers of all makes and models.
from the printer are included in this document. It allows Client Print Support Files to be downloaded from
repositories of 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,
including security for downloading executable code and data.
2 Terminology 2 Terminology
Client Print Support Files - a set of files, such as a printer driver, Client Print Support Files - a set of files, such as a printer
font metric file, printer configuration file (PPD, GPD, etc.) that driver, font metric file, printer configuration file (PPD, GPD, etc.)
support a client printing to a particular Printer. A Printer can have that support a client printing to a particular Printer. A Printer
multiple sets of Client Print Support Files that work for different MAY have multiple sets of Client Print Support Files that work for
operating systems, document formats, natural languages, CPUs, etc. 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 [RFC2911] section 12.2. model terminology [RFC2911] section 12.2. This document also uses
the terms "IPP Printer", "Printer" and "Printer object"
interchangeably as in [RFC2911] to mean the software entity that
accepts IPP operation requests and returns IPP operation responses
(see [RFC2911] section 2).
Capitalized terms, such as MUST, MUST NOT, REQUIRED, SHOULD, SHOULD NOT, Capitalized terms, such as MUST, MUST NOT, REQUIRED, SHOULD, SHOULD
MAY, NEED NOT, and OPTIONAL, have special meaning relating to NOT, MAY, NEED NOT, and OPTIONAL, have special meaning relating to
conformance. These terms are defined in [RFC2911] 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
this document, it MUST support a REQUIRED feature. in 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
this document, it MAY support an OPTIONAL feature. in 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.
information needs to match the workstation's specific environment, such This information needs to match the workstation's specific
as its operating system, preferred natural language, and preferred environment, such as its operating system, preferred natural
document format. language, and preferred 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
printer installation. This section describes each extension in detail. automated 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" (1setOf octetString(MAX)). support-files-supported" (1setOf octetString(MAX)).
- A new REQUIRED Get-Printer-Attributes operation attribute: - A new REQUIRED Get-Printer-Attributes operation attribute:
"client-print-support-files-filter" (octetString(MAX)). "client-print-support-files-filter" (octetString(MAX)).
- A new RECOMMENDED printer operation: Get-Client-Print-Support- - A new RECOMMENDED 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
print-support-files-supported" to represent relevant information about "client-print-support-files-supported" to represent relevant
all of the Client Print Support Files it supports. Each value is a information about all of the Client Print Support Files it supports.
composite UTF-8 string with well-defined fields (see Table 1). Each Each value is a composite UTF-8 string with well-defined fields (see
value string MUST be formatted as follows: Table 1). Each value string MUST be formatted as follows:
"uri=val < field-name =val ,.,val < . < field-name =val ,.,val <" "uri=val1< field-name2=val21,_,val2p< _ < field-namen=valn1,_,valnq<"
1 2 21 2p n n1 nq
The first field MUST be the "uri" field. The remaining fields MAY be in The first field MUST be the "uri" field. The remaining fields MAY be
any order. in any order.
The string MUST NOT include any control characters (hex 00 to 1F), even The string MUST NOT include any control characters (hex 00 to 1F),
the so-called white space control characters (TAB, CR, and LF) anywhere. even the so-called white space control characters (TAB, CR, and LF)
Only zero or more UTF-8 SPACE characters (hex 20) can be included and anywhere. Only zero or more UTF-8 SPACE characters (hex 20) can be
they can be included only IMMEDIATELY AFTER the punctuation character: included and they can be included only IMMEDIATELY AFTER the
"<", but NOT anywhere else, including after "=" and ",". However, if delimiter character: "<", but NOT anywhere else, including after "="
the UTF-8 SPACE character is needed in a file name value, then each and ",". However, if the UTF-8 SPACE character is needed in a
occurrence is included directly, without escaping (see example). On the client-file-name value, then each occurrence is included directly,
other hand, if the UTF-8 SPACE character is needed in a URL value, then without escaping (see example). On the other hand, if the UTF-8
each occurrence is escaped as: "\x20" (URI conventions - see [RFC2396]). SPACE character is needed in a URL value, then each occurrence is
escaped as: "%20" (URI conventions - see [RFC2396]).
Table 1 lists the REQUIRED fields that a Printer MUST support and the 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- OPTIONAL fields that a Printer MAY support in the "client-print-
files-supported" (1setOf octetString(MAX)) Printer Description support-files-supported" (1setOf octetString(MAX)) Printer
attribute. A Printer implementation MAY support additional fields using Description attribute. A Printer implementation MAY support
the same syntax. Values are defined to be either CASE-SENSITIVE or ALL- additional fields using the same syntax. Values are defined to be
LOWER-CASE according to the definitions for the attribute syntaxes from either CASE-SENSITIVE or ALL-LOWER-CASE according to the definitions
[RFC2911] (set off by single quotes in the table). The CASE-SENSITIVE for the attribute syntaxes from [RFC2911] (set off by single quotes
values MAY have upper and lower case letters as for the corresponding in the table). The CASE-SENSITIVE values MAY have upper and lower
attribute syntaxes in [RFC2911]. The LOWER-CASE values MUST have all case letters as for the corresponding attribute syntaxes in
lower case alphabetic letters. Additional characters, such as digits, [RFC2911]. The LOWER-CASE values MUST have all lower case alphabetic
hyphen-minus (-), period (.), and slash (/) are according to the letters. Additional characters, such as digits, hyphen-minus (-),
corresponding attribute syntaxes in [RFC2911]. 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. Clients SHOULD ignore fields they don't recognize in a given value.
This allows for future extensions to the format of the string without This allows for future extensions to the format of the string without
breaking compatibility with earlier clients. breaking compatibility with earlier clients.
Expires May 7, 2001
Table 1 - "client-print-support-files-supported" attribute fields Table 1 - "client-print-support-files-supported" attribute fields
Field name Field value Field Field value
name
"uri" One REQUIRED CASE-SENSITIVE 'uri' string identifying the "uri" One REQUIRED CASE-SENSITIVE 'uri' string identifying the
uri where to obtain the support files for each OS uri where to obtain the support files for each OS
platform, document format, and natural language the platform, document format, and natural language the
printer supports. This MUST be the first field in each printer supports. This MUST be the first field in each
value. Examples of uri schemes that MAY be found here value. Examples of uri schemes that MAY be found here
are ftp, http, and ipp. The ftp and http schemed URIs are 'ftp', 'http', and 'ipp'. The 'ftp' and 'http'
identify the archive file that contains all the schemed URIs identify the archive file that contains all
necessary client support files. The ipp schemed URIs the necessary client support files.
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 LOWER-CASE strings The 'ipp' schemed URIs identify the archive file that
identifying the operating system types supported by this clients MAY obtain from the Printer using the Get-
set of Client Print Support Files. Valid values include Client-Print-Support-Files operation (see section 3.3).
the operating system names defined in the IANA document The URI MUST be a valid URI to the same Printer object,
[os-names]. Although the IANA registry requires that the i.e., one of the values of the Printer's "printer-uri-
names be all upper-case, the values MUST be all lower supported" attribute. The 'ipp' URI is used to
case in this field (plus hyphen-minus (-), period (.), distinguish between multiple Client Print Support Files
and slash (/)). Examples: linux, linux-2.2, os/2, sun- in an implementation dependent manner using the URL
os-4.0, unix, unix-bsd, win32, windows-95, windows-98, query syntax (e.g., "?drv-id=xxx") [RFC2396]. The
windows-ce, windows-nt, windows-nt-4, windows-nt-5. query part MUST NOT exceed 127 octets, not counting the
"?" character that begins the query part. A Printer
SHOULD support the 'ipp' scheme.
"cpu-type" One or more REQUIRED comma-separated LOWER-CASE strings "os-type" One or more REQUIRED comma-separated LOWER-CASE
identifying the CPU types supported by this set of 'keyword' strings identifying the operating system types
Client Print Support Files. Values (or compatible): supported by this set of Client Print Support Files.
'unknown', 'x86-16', 'x86-32', 'x86-64', 'dec-vax', Valid values are the operating system names defined in
'alpha', 'power-pc', 'm-6800', 'sparc', 'itantium', the IANA document [os-names] and the special keyword
'mips', 'arm'. value: 'unknown'. 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', 'unknown'.
"document- One or more REQUIRED comma-separated CASE-SENSITIVE "cpu- One or more REQUIRED comma-separated LOWER-CASE
format" 'document-format' strings identifying the document type" 'keyword' strings identifying the CPU types supported by
formats supported by this set of Client Print Support this set of Client Print Support Files. The values
Files. Valid values are the string representation of indicate the CPU family independent of the CPU
the IPP mimeMediaType syntax (see [RFC2911]). 'unknown' manufacturer. Valid keyword values are: 'x86-16',
is a valid value. 'x86-32', 'x86-64', 'dec-vax', 'alpha', 'power-pc', 'm-
68000, 'sparc', 'itantium', 'mips', 'arm' and will be
Field Field value
name
used as the initial value for the "cpu-type" IANA
registry. In addition, the special keyword value:
'unknown' is valid.
"document One or more REQUIRED comma-separated CASE-SENSITIVE
-format" 'mimeMediaType' strings identifying the document formats
supported by this set of Client Print Support Files.
Valid values are the string representation of the IPP
mimeMediaType attribute syntax (see [RFC2911] section
4.1.9), for example 'application/postscript'. In
addition, the special keyword value: 'unknown' is valid.
"natural- One or more REQUIRED comma-separated LOWER-CASE "natural- One or more REQUIRED comma-separated LOWER-CASE
language" 'naturalLanguage' strings identifying the natural language" 'naturalLanguage' strings identifying the natural
language used by this set of Client Print Support Files. language used by this set of Client Print Support Files.
Valid values are the string representation of the IPP Valid values are the string representation of the IPP
naturalLanguage syntax. 'unknown' is a valid value. 'naturalLanguage' attribute syntax (see [RFC2911]
section 4.1.8), for example 'en' and 'en-us'. In
addition, the special keyword value: 'unknown' is valid.
"compression" One REQUIRED LOWER-CASE 'keyword' string identifying the "compress One REQUIRED LOWER-CASE 'keyword' string identifying the
mechanism used to compress this set of Client Print ion" mechanism used to compress this set of Client Print
Support Files. All files needed for the installation of Support Files. All files needed for the installation of
Expires May 7, 2001
Field name Field value
a printer driver MUST be compressed into a single file. a printer driver MUST be compressed into a single file.
Valid values are: 'deflate', 'gzip', 'compress'. The Valid keyword values are the keywords defined by
'none' value is allowed but limits the uncompressed [RFC2911] or registered with IANA for use in the IPP
Client Print Support File to a single file. "compression" and "compression-supported" attributes.
See [RFC2911] section 4.4.32), for example 'gzip'. The
'none' value limits the uncompressed Client Print
Support File to a single file. The values for the
"compression" field that a Printer supports NEED NOT be
the same values that the Printer is configured to
support in Job Creation operations as indicated in the
Printer's "compressions-supported" attribute.
"file-type" One or more REQUIRED comma-separated LOWER-CASE "file- One or more REQUIRED comma-separated LOWER-CASE
'keyword' strings identifying the type of the Client type" 'keyword' strings identifying the type of the Client
Print Support Files. Valid values are: 'printer- Print Support Files. Valid keyword values are:
driver', 'ppd', 'updf', 'gpd'. 'printer-driver', 'ppd', 'updf', 'gpd'.
"file-name" One REQUIRED CASE-SENSITIVE string identifying the name "client- One REQUIRED CASE-SENSITIVE string identifying the name
by which the Client Print Support Files will be file- by which the Client Print Support Files will be
installed on the workstation. For Client Print Support name" installed on the workstation. For Client Print Support
Files of type 'printer-driver', this is also the name Files of type 'printer-driver', this is also the name
Field Field value
name
that identifies this printer driver in an .inf file. that identifies this printer driver in an .inf file.
"policy" One REQUIRED LOWER-CASE 'keyword' string indicating the "policy" One OPTIONAL LOWER-CASE 'keyword' string indicating the
policy for automatic loading. Values: 'unknown', policy for automatic loading. Valid keyword values are:
'manufacturer-recommended', 'administrator-recommended', 'manufacturer-recommended', 'administrator-recommended',
'manufacturer-experimental, and 'administrator- 'manufacturer-experimental, 'administrator-
experimental'. The experimental values are for beta experimental'. The experimental values are for beta
test. test.
"file-size" One OPTIONAL file size in octets represented as ASCII "file- One OPTIONAL file size in octets represented as ASCII
decimal digits. size" decimal digits.
"file- One OPTIONAL LOWER-CASE version number. Recommended to "file- One OPTIONAL LOWER-CASE version number. Recommended to
version" be of the form "Major.minor[.revision]" "Major" is the version" be of the form "Major.minor[.revision]" where "Major" is
major version number, "minor" is the minor version the major version number, "minor" is the minor version
number and "revision" is an optional revision number. number and "revision" is an optional revision number.
"file-date- One OPTIONAL File CASE-SENSITIVE creation date and time "file- One OPTIONAL File CASE-SENSITIVE creation date and time
time" according to ISO 8601 where all fields are fixed length date- according to ISO 8601 where all fields are fixed length
with leading zeroes (see [RFC2518] Appendix 2). time" with leading zeroes (see [RFC2518] Appendix 2).
Examples: 2000-01-01T23:09:05Z and 2000-01-01T02:59:59- Examples: 2000-01-01T23:09:05Z and 2000-01-01T02:59:59-
04.00 04.00
"file- One OPTIONAL CASE-SENSITIVE human readable 'text' string
info" describing this set of Client Print Support Files. The
natural language for this value MUST be the natural
language indicated by the Printer's "natural-language-
configured" attribute. To avoid exceeding the maximum
limit imposed on IPP attributes and to increase
interoperability with other systems, the length of this
field value MUST not exceed 127 characters.
"digital- One REQUIRED LOWER-CASE 'keyword' string identifying the
signature mechanism used to ensure the integrity and authenticity
" of this set of Client Print Support Files. Valid values
are: 'smime', 'pgp', 'dss', and 'xmldsig' which are
defined in [RFC2634], [RFC1991], [dss], and [xmldsig],
respectively. In addition, the special keyword value:
'none' is valid.
Each value MUST refer to one and only one set of Client Print Support Each value MUST refer to one and only one set of Client Print Support
Files, even if the files are downloadable from various repositories Files, even if the files are downloadable from various repositories
(i.e., even if they are associated with multiple URIs). (i.e., even if they are associated with multiple URIs).
3.1.1 Use of Keyword Values in fields
A number of the fields in Table 1 use keyword strings as values. The
syntax of these keywords is the same as in [RFC2911], including the
use of private keywords. See [RFC2911] sections 4.1.3 and 6.1.
Printer implementers are strongly RECOMMENDED to submit additional
keyword values for registration with IANA according to the procedures
for registering attributes. See section 7 and [RFC2911] section 6.1.
3.1.2 Use of the Special Keyword Value: 'unknown'
A number of REQUIRED 'keyword' value fields have a special keyword
value: 'unknown' defined. This value is intended for use when the
actual value is not known, such as by an administrator automatic
software configuring the IPP Printer object. However, it is strongly
RECOMMENDED that other more meaningful values be used, instead of the
'unknown' value whenever possible.
3.1.3 Examples of "client-print-support-files-supported" attribute
values
The following illustrates what two valid values of the "client-print- The following illustrates what two valid values of the "client-print-
support-files-supported" (1setOf octetString(MAX)) Printer Description support-files-supported" (1setOf octetString(MAX)) Printer
attribute might look like: Description attribute might look like:
uri=ipp://mycompany.com/myprinter< uri=ipp://mycompany.com/myprinter?drv-id=ModelY.gz<
os-type=windows-95< cpu-type=x86-32< os-type=windows-95< cpu-type=x86-32<
document-format=application/postscript< document-format=application/postscript<
natural-language=en< compression=gzip< natural-language=en< compression=gzip<
install-file-type=printer-driver< file-type=printer-driver<
install-file-name=CompanyX-ModelY-driver.gz< client-file-name=CompanyX-ModelY-driver.gz<
policy=manufacturer-recommended< policy=manufacturer-recommended<
Expires May 7, 2001 uri=ftp://mycompany.com/root/drivers/win95/CompanyX/ModelY.gz<
uri=ftp://mycompany.com/root/drivers/win95/CompanyX/ModelY.g
z<
os-type=windows-95< cpu-type=x86-32< 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< compression=gzip< natural-language=en,fr< compression=gzip<
install-file-type=printer-driver< file-type=printer-driver<
install-file-name=Company T Model Z driver.gz< client-file-name=Company T Model Z driver.gz<
policy=manufacturer-recommended< policy=manufacturer-recommended<
The above examples have been broken onto separate lines for readability The above examples have been broken onto separate lines for
in this document. However, there MUST NOT be any line breaks in the readability in this document. However, there MUST NOT be any line
actual values. breaks in the actual values.
The "client-print-support-files-supported" Printer Description attribute The "client-print-support-files-supported" Printer Description
MAY be preset at manufacturing time or set via the IPP Set-Printer- attribute MAY be preset at manufacturing time or through
Attribute operation or through administrative means outside the scope of administrative means outside the scope of this document.
IPP.
3.2 Get-Printer-Attributes Operation Extension 3.2 Get-Printer-Attributes Operation Extension
The "client-print-support-files-supported" Printer Description attribute The "client-print-support-files-supported" Printer Description
defined in section 3.1 contains information, such as operating system, attribute defined in section 3.1 contains information, such as
natural language, and document format, about all of the sets of Client operating system, natural language, and document format, about all of
Print Support Files. This section defines an extension to the Get- the sets of Client Print Support Files. This section defines an
Printer-Attributes operation that allows a workstation to filter out all extension to the Get-Printer-Attributes operation that allows a
but the Client Print Support Files of interest. workstation to filter out all but the Client Print Support Files of
interest.
3.2.1Get-Printer-Attributes Request 3.2.1Get-Printer-Attributes Request
A Printer MAY contain information about multiple sets of Client Print A Printer MAY contain information about multiple sets of Client Print
Support Files to match the different operating systems, natural Support Files to match the different operating systems, natural
languages and document formats it supports. A workstation may query languages and document formats it supports. A workstation MAY query
this information by including the 'client-print-support-files-supported' this information by including the 'client-print-support-files-
keyword as a value of the "requested-attributes" operation attribute of supported' keyword as a value of the "requested-attributes" operation
the Get-Printer-Attributes operation. attribute of the Get-Printer-Attributes operation.
3.2.1.1 client-print-support-files-filter (octetString(MAX)) operation 3.2.1.1 client-print-support-files-filter (octetString(MAX)) operation
attribute attribute
The client can request a subset of the values of the "client-print- The client can request a subset of the values of the "client-print-
support-files-supported" Printer attribute by supplying the "client- support-files-supported" Printer attribute by supplying the "client-
print-support-files-filter" (octetString(MAX)) operation attribute in print-support-files-filter" (octetString(MAX)) operation attribute in
the request as a filter. The filter value indicates in which Client the request as a filter. The filter value indicates in which Client
Print Support Files the client is interested. The client MAY supply this Print Support Files the client is interested. The client MAY supply
attribute. The Printer MUST support this attribute. this attribute. The Printer MUST support this attribute.
The filter value of the "client-print-support-files-filter" attribute is The filter value of the "client-print-support-files-filter" attribute
a composite string with the same format as that of "client-print- is a composite string with the same format as that of "client-print-
support-files-supported" (see Table 1 - "client-print-support-files- support-files-supported" (see Table 1 - "client-print-support-files-
Expires May 7, 2001
supported" attribute fields in section 3.1) with the following supported" attribute fields in section 3.1) with the following
exceptions: exceptions:
Table 2 - "client-print-support-files-filter" attribute fields Table 2 - "client-print-support-files-filter" attribute fields
Field Field Value in the "client-print-support-files-filter" Field Field Value in the "client-print-support-files-filter"
Name attribute Name attribute
uri- One or more REQUIRED comma-separated LOWER-CASE uri- One or more comma-separated LOWER-CASE 'uriScheme'
scheme 'uriScheme' string values identifying the uri scheme to be scheme string values identifying the uri scheme to be
filtered on. Example URI schemes are: ftp, http, and ipp. filtered on. Valid values are the string
The Printer SHOULD support the ipp scheme. If supplied by representation of the IPP 'uriScheme' attribute syntax
the client, this field NEED NOT be first. If this field (see [RFC2911] section 4.1.6). Example URI schemes
is omitted by the client, the Printer returns all schemes. are: 'ftp', 'http', and 'ipp'. The Printer SHOULD
support the 'ipp' scheme. If supplied by the client,
this field NEED NOT be first. If this field is
omitted by the client, the Printer returns all
schemes.
xxx All of the fields in "Table 1 - "client-print-support- xxx One or more comma-separated values for any of the
files-supported" attribute fields, with the single fields defined in Table 1, with the single exception
exception of the "uri" field which a client MUST NOT of the "uri" field which a client MUST NOT supply and
supply and a Printer MUST NOT support. a Printer MUST NOT support.
The Printer MUST support any filter field having more
than one value separated by a COMMA (,), including the
fields that Table 1 indicates MUST BE single valued.
Any field can have more than one value separated by a Printer implementations MUST support the "client-print-support-files-
COMMA (,), including the fields that Table 1 indicates filter" operation attribute in a Get-Printer-Attributes request with
MUST BE single valued. the member fields listed Table 3. Printers MAY support any
additional filter fields listed in Table 2.
Clients MAY supply additional fields and/or additional values of defined Client implementations MAY supply any filter fields listed in Table 2
fields. in the "client-print-support-files-filter" operation attribute of a
Get-Printer-Attributes request.
The Printer returns only the values of the "client-print-support-files- Table 3 - REQUIRED "client-print-support-files-filter" fields
supported" Printer Description attribute that match the filter in the
"client-print-support-files-filter" operation attribute. A match occurs
if at least one value of each field supplied in the filter matches a
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.
The following are two examples of a "client-print-support-files-filter" uri-scheme
filter value:
os-type=windows-95< cpu-type=x86-32< os-type
document-format=application-postscript< natural-language=en,de<
uri-scheme=ipp< os-type=windows-95< cpu-type=x86-32< cpu-type
document-format=application-postscript< natural-language=en,de<
See section 3.2.2 for example matching in the response. document-format
Expires May 7, 2001 natural-language
The IPP Printer is REQUIRED to support this operation attribute and the 3.2.1.1.1 Filter matching rules
following member fields in a "client-print-support-files-filter"
operation attribute filter in the Get-Printer-Attributes request:
1. uri-scheme The Printer returns only the values of the "client-print-support-
2. os-type files-supported" Printer Description attribute that match the filter
3. cpu-type in the "client-print-support-files-filter" operation attribute. The
4. document-format following filter matching rules are defined:
5. natural-language
Printer implementations MAY support additional fields and additional 1. A match occurs if at least one value of each field supplied by
values of defined fields. Printers MUST ignore fields they do not the client in the filter matches a Client Print Support File
support. value. Printers MUST ignore a filter field supplied by a client
that the Printer does not support and return a match if all
supported fields do match, no matter what value the client
supplied for that unsupported field. Similarly, Printers MUST
ignore a filter field supplied by a client that the Printer does
support, but which the field has not been populated for a Client
Print Support Files and return a match if all supported and
populated fields do match, no matter what value the client
supplied for that unpopulated field.
If the "client-print-support-files-filter" operation attribute filter is 2. A match for a CASE-INSENSITIVE field occurs independent of the
not supplied by the client, the printer should behave as if the case of the letters supplied by the client and those stored by
attribute had been provided with all fields left empty (i.e., return an the Printer, while a match for a LOWER-CASE field is a strict
unfiltered list). character for character match.
It is RECOMMENDED that workstations first use the Get-Printer-Attributes 3. A match for a 'keyword' Printer field that is populated with the
operation in combination with "client-print-support-files-filter" 'unknown' special keyword value occurs for any value supplied by
operation attribute filter to get a list of the potential Client Print the client for that field.
Support Files that meet the workstation's requirements. The workstation
can then choose from the returned list which Client Print Support Files 4. If the "client-print-support-files-filter" operation attribute
to use and where to get them. If one of the URIs returned is an IPP filter is not supplied by the client, the printer SHOULD behave
uri, the workstation can retrieve the Client Print Support Files from an as if the attribute had been provided with all fields left empty
IPP printer via the Get-Client-Print-Support-Files operation (see (i.e., return an unfiltered list).
section 3.3).
The following are two examples of a "client-print-support-files-
filter" filter value:
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 responses.
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.2Get-Printer-Attributes Response 3.2.2Get-Printer-Attributes Response
A Printer MUST return the "client-print-support-files-supported" (1setOf A Printer MUST return the "client-print-support-files-supported"
octetString(MAX)) attribute in the Printer Object Attributes group (1setOf octetString(MAX)) attribute in the Printer Object Attributes
(group 3) when requested by a client. Each returned attribute value group (group 3) when requested by a client. Each returned attribute
must satisfy the criteria specified by the client in the request. value MUST satisfy the criteria specified by the client in the
request.
For example, if the request contains the following "client-print- For example, if the request contains the following "client-print-
support-files-filter" filter: support-files-filter" filter:
os-type=windows-95< cpu-type=x86-32< document-format=application- os-type=windows-95< cpu-type=x86-32<
postscript< document-format=application-postscript<
natural-language=en,de< natural-language=en,de<
A conforming response is the following two octet String values: A conforming response is the following two octet String values:
uri=ipp://mycompany.com/myprinter< uri=ipp://mycompany.com/myprinter?drv-id=ModelY.gz<
os-type=windows-95< cpu-type=x86-32< os-type=windows-95< cpu-type=x86-32<
document-format=application/postscript< document-format=application/postscript<
natural-language=en< compression=gzip< natural-language=en< compression=gzip<
install-file-type=printer-driver< file-type=printer-driver<
install-file-name=CompanyX-ModelY-driver.gz< client-file-name=CompanyX-ModelY-driver.gz<
Expires May 7, 2001
policy=manufacturer-recommended< policy=manufacturer-recommended<
digital-signature=smime<
uri=ftp://mycompany.com/root/drivers/win95/CompanyX/ModelY.g uri=ftp://mycompany.com/root/drivers/win95/CompanyX/ModelY.gz<
z<
os-type=windows-95< cpu-type=x86-32< 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< compression=gzip< natural-language=en,fr< compression=gzip<
install-file-type=printer-driver< file-type=printer-driver<
install-file-name=CompanyX-ModelY-driver.gz< client-file-name=CompanyX-ModelY-driver.gz<
policy=manufacturer-recommended< policy=manufacturer-recommended<
digital-signature=smime<
These examples have been broken onto separate lines for readability in These examples have been broken onto separate lines for readability
this document. However, there MUST NOT be any line breaks in the actual in this document. However, there MUST NOT be any line breaks in the
values. actual values.
As an other example, if the above request had also contained the "uri- As an other example, if the above request had also contained the "uri-
scheme" field in the following "client-print-support-files-filter" scheme" field in the following "client-print-support-files-filter"
filter: filter:
uri-scheme=ipp< os-type=windows-95< cpu-type=x86-32< uri-scheme=ipp< os-type=windows-95< cpu-type=x86-32<
document-format=application-postscript< document-format=application-postscript<
natural-language=en,de< natural-language=en,de<
Then only the first value would have been returned as a single Then only the first value would have been returned as a single
octetString value: octetString value:
uri=ipp://mycompany.com/myprinter< uri=ipp://mycompany.com/myprinter?drv-id=ModelY.gz<
os-type=windows-95< cpu-type=x86-32< os-type=windows-95< cpu-type=x86-32<
document-format=application/postscript< document-format=application/postscript<
natural-language=en< compression=gzip< natural-language=en< compression=gzip<
install-file-type=printer-driver< file-type=printer-driver<
install-file-name=CompanyX-ModelY-driver.gz< client-file-name=CompanyX-ModelY-driver.gz<
policy=manufacturer-recommended< policy=manufacturer-recommended<
digital-signature=smime<
3.3 Get-Client-Print-Support-Files 3.3 Get-Client-Print-Support-Files
This RECOMMENDED operation allows a client to download Client Print This RECOMMENDED operation allows a client to download Client Print
Support Files from an IPP Printer. Support Files from an IPP Printer.
3.3.1Get-Client-Print-Support-Files Request 3.3.1Get-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 [RFC2911], 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 [RFC2911], section 3.1.5. for this operation as described in [RFC2911], section 3.1.5.
The client MUST use the URI value as the target of this
operation that the Printer returns in the "uri" field (see Table
1) in the Get-Printer-Attributes response. Furthermore, the
client MUST use the appropriate authorization and security
regime for this URI as indicated by the Printer's "printer-uri-
supported", "uri-authentication-supported" and "uri-security-
supported" attributes (see [RFC2911] sections 4.4.1, 4.4.2, and
4.4.3). Only if the URI returned in the "uri" field matches the
URI that the client used for the Get-Printer-Attributes request
MAY the client use the same HTTP connection. The 'ipp' URL
matching rules are defined in [ipp-url] and do not include the
query part.
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 [RFC2911], section 8.3. supplied by the client as described in [RFC2911], section 8.3.
"client-print-support-files-uri" (uri): "client-print-support-files-query" (text(127)):
The client MUST supply this attribute specifying the uri for the The client MUST supply this attribute specifying the query part
desired Client Print Support Files, i.e., the value of the "uri" [RFC2396] of the ipp uri for the desired Client Print Support
field returned by the Get-Printer-Attributes in one of the Files not including the "?" character that starts the query
part, i.e., the value of the "uri" field following the "?"
character returned by the Get-Printer-Attributes in one of the
values of the "client-print-support-files-supported" (1setOf values of the "client-print-support-files-supported" (1setOf
octetString(MAX)) Printer attribute. The URI scheme must be octetString(MAX)) Printer attribute (see Table 1) that had an
ipp. 'ipp' scheme.
Note: This uri is neither the Printer.s target "printer-uri"
nor the URI in the HTTP header.
3.3.2Get-Client-Print-Support-Files Response 3.3.2Get-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
the Get-Client-Print-Support-Files Response: of 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 [RFC2911], (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:
skipping to change at page 13, line 52 skipping to change at page 19, line 4
Group 2: Unsupported Attributes Group 2: Unsupported Attributes
See [RFC2911], 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
"client-print-support-files-supported" (octetString(MAX)). "client-print-support-files-supported" (octetString(MAX)).
This attribute identifies the properties of the returned Client This attribute identifies the properties of the returned Client
Print Support Files. The Printer object MUST return this Print Support Files. The Printer object MUST return this
attribute if the response includes Group 4 (i.e., if a set of attribute if the response includes Group 4 (i.e., if a set of
Client Print Support Files identified by the supplied "client- Client Print Support Files identified by the supplied "client-
support-files-uri" was found). The Printer MUST return the print-support-files-query" operation attribute was found). The
format shown in section 3.1. Printer MUST return all configured fields for the selected
Client Print Support Files in the format shown in section 3.1.
Group 4: Client Print Support Files Group 4: Client Print Support Files
Expires May 7, 2001
The printer MUST supply the Client Print Support Files that match 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 transferred file.
4 Conformance 4 Conformance
A Printer conforming to this specification: A Printer conforming to this specification:
1. MUST support the "client-print-support-files-supported" Printer 1. MUST support the "client-print-support-files-supported" Printer
Description attribute as defined in section 3.1, including all of Description attribute as defined in section 3.1, including all
the REQUIRED fields defined in Table 1 and MAY support the OPTIONAL of the REQUIRED fields defined in Table 1 and MAY support the
fields defined in Table 1. OPTIONAL fields defined in Table 1.
2. MUST support the "client-print-support-files-filter" operation 2. MUST support the "client-print-support-files-filter" operation
attribute in the Get-Printer-Attributes request as defined in attribute in the Get-Printer-Attributes request as defined in
section 3.2, including all of the fields defined in Table 2 and section 3.2, including all of the fields listed in Table 3 and
ignoring any fields not recognized. ignoring any fields not recognized.
3. MUST support at least one of the following URI schemes that 3. MUST support at least one of the following URI schemes that
identify the support files: ftp, http, or ipp, of which the ipp identify the support files: 'ftp', 'http', or 'ipp', of which
scheme is the RECOMMENDED one. the 'ipp' scheme is the RECOMMENDED one.
4. SHOULD support the Get-Client-Print-Support-Files operation as 4. SHOULD support the Get-Client-Print-Support-Files operation as
described in section 3.3. If this operation is supported, then one described in section 3.3. If this operation is supported, then
of the supported schemes MUST be ipp. one of the supported schemes MUST be 'ipp'.
5.SHOULD support TLS as described in section 9.
6.SHOULD support the downloading of Client Print Support Files
that have been digitally signed as described in section 9.
A client conforming to this specification: A client conforming to this specification:
1. MUST ignore any fields returned by the Printer in the "client- 1. MUST ignore any fields returned by the Printer in the "client-
print-support-files-supported" Printer Description attribute that print-support-files-supported" Printer Description attribute
the client does not recognize or support. that the client does not recognize or support.
2. SHOULD be able to retrieve Client Print Support Files by either ftp 2.SHOULD be able to retrieve Client Print Support Files by either
Get or http Get operations. FTP Get or HTTP Get operations.
3. MUST be able to retrieve Client Print Support Files using the Get- 3.MUST be able to retrieve Client Print Support Files using the
Client-Print-Support-Files operation, i.e., support the ipp scheme. Get-Client-Print-Support-Files operation, i.e., support the
'ipp' scheme.
4.MUST supply the proper URI value for the "printer-uri" operation
attribute as specified in section 3.3.1 under Target:.
5.MUST validate that files that are supposed to be digitally
signed are done with the indicated mechanism as described in
section 9.
6.SHOULD support TLS as described in section 9.
5 Encoding of the Operation Layer 5 Encoding of the Operation Layer
This extension uses the operation layer encoding described in [RFC2910]. This extension uses the operation layer encoding described in
[RFC2910].
6 Encoding of Transport Layer 6 Encoding of Transport Layer
This specification uses the transport layer encoding described in This specification uses the transport layer encoding described in
[RFC2910] with the following extensions. [RFC2910] with the following extensions.
New Error codes: New Error codes:
0x0417 client-error-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
7 IANA Considerations 7 IANA Considerations
The IANA-registered operating system names that IANA has registered [os- The IANA-registered operating system names that IANA has registered
names] are required by this spec. [os-names] are required by this spec for use in the "os-type" field
(see Table 1).
The "cpu-type" is not a current IANA registry. The current IANA machine Table 1 of this document defines possible 'keyword' values for the
registration [cpu-names] is really a machine model number, not a CPU "cpu-type" field. However, the existing IANA machine registration
type. Also whether a CPU is 16-bit, 32-bit, or 64-bit needs to be [cpu-names] is inadequate for two reasons: a) it is really a machine
indicated in the CPU name which is not currently reflected in the IANA model number, not a CPU type, and b) it doesn't express whether a
CPU registry. Therefore, the os-type will be a new type of registration CPU is 16-bit, 32-bit, or 64-bit which needs to be indicated in the
with initial values assigned in Table 1 under "os-type", as with other keyword value. Therefore, the "os-type" field will be a new
elements in IPP [see RFC2911 section 6 and 11]. registration with initial values assigned.
All other IANA considerations are already addressed by IPP. The rest of this section contains the exact information for IANA to
add to the IPP Registries according to the procedures defined in RFC
2911 [RFC2911] section 6.
Note to RFC Editors: Replace RFC NNNN below with the RFC number
for this document, so that it accurately reflects the content of
the information for the IANA Registry.
7.1 Attribute Registrations
The attributes and fields defined in this document will be published
by IANA according to the procedures in RFC 2911 [RFC2911] section 6.2
with the following path:
ftp.isi.edu/iana/assignments/ipp/attributes/
The registry entry will contain the following information:
Printer Description Attributes: Ref: Section:
client-print-support-files-supported (1setOf octetString(MAX))
RFC NNNN 3.1
For purposes of IANA attribute registration, the following fields of
the "client-print-support-files-supported" and the "client-print-
support-files-filter" attributes are registered following the
procedures for IPP attribute registration:
Ref: Section:
uri (uri) RFC NNNN 3.1
os-type (type2 keyword) RFC NNNN 3.1
cpu-type (type2 keyword) RFC NNNN 3.1
document-format (mimeMediaType) RFC NNNN 3.1
natural-language (naturalLanguage) RFC NNNN 3.1
compression (type2 keyword) RFC NNNN 3.1
file-type (type2 keyword) RFC NNNN 3.1
client-file-name (name(MAX)) RFC NNNN 3.1
policy (type2 keyword) RFC NNNN 3.1
file-size (integer(0:MAX)) RFC NNNN 3.1
file-version (name(MAX)) RFC NNNN 3.1
file-date-time (text(25)) RFC NNNN 3.1
file-info (text(127)) RFC NNNN 3.1
digital-signature (type2 keyword) RFC NNNN 3.1
uri-scheme (uriScheme) RFC NNNN 3.2
Operation Attributes: Ref: Section:
client-print-support-files-filter (octetString(MAX))RFC NNNN 3.2
7.2 Operation Registrations
The operations defined in this document will be published by IANA
according to the procedures in RFC 2911 [RFC2911] section 6.4 with
the following path:
ftp.isi.edu/iana/assignments/ipp/operations/
The registry entry will contain the following information:
Operations: Ref. Section:
Get-Client-Print-Support-Files RFC NNNN 3.3
8 Internationalization Considerations 8 Internationalization Considerations
All text representations introduced by this specification adhere to the All text representations introduced by this specification adhere to
internationalization-friendly representation supported by IPP. This the internationalization-friendly representation supported by IPP.
work is also accommodates the use of Client Print Support Files of This work is also accommodates the use of Client Print Support Files
different languages. of different languages.
9 Security Considerations 9 Security Considerations
The IPP Model and Semantics document [RFC2911] 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
Operation Privacy). Client Authentication is the mechanism by which the and Operation Privacy). Client Authentication is the mechanism by
client proves its identity to the server in a secure manner. Server which the client proves its identity to the server in a secure
Authentication is the mechanism by which the server proves its identity manner. Server Authentication is the mechanism by which the server
to the client in a secure manner. Operation Privacy is defined as a proves its identity to the client in a secure manner. Operation
mechanism for protecting operations from eavesdropping. Privacy is defined as a 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 "client-
driver-supported" attribute and only users of the printer should be print-support-files-supported" attribute and only users of the
allowed to query that information. printer SHOULD be allowed to query that information.
Printers that support the Get-Client-Print-Support-Files operation are The IPP extension described in this document introduces the potential
REQUIRED to implement TLS to enable users to reliably authenticate the for a security threat previously not encountered by IPP. As Client
source of the Client Print Support Files. Print Support Files might exist in the form of executable objects (as
is the case with printer drivers, for example), additional provisions
are needed to prevent the distribution of malicious code through this
mechanism. Digital signatures provide the message level security
commonly used to help consumers of network resources verify the
authenticity and integrity of those resources. Specifically, digital
signatures help defend against security threats such as message
insertion, message deletion, and message modification, and their
combined use into man-in-the-middle attacks.
This document identifies some commonly used signing mechanisms (SMIME
[RFC2634], PGP [RFC1991], DSS [dss], and XML Digital Signatures
[xmldsig]), though any others MAY be used. Of course, it is assumed
that once end-users know the identity of the provider of Client Print
Support Files, they can make the correct determination as to whether
it is safe to use those files.
Printers that support the Get-Client-Print-Support-Files operation
SHOULD support the downloading of Client Print Support Files that
have been digitally signed. Clients that invoke the Get-Client-
Print-Support-Files operation MUST make sure that Client Print
Support Files that are supposed to be signed (i.e., whose client-
print-support-files-supported attribute value includes the "digital-
signature" field) are indeed signed via the specified mechanism when
downloaded from the printer.
Furthermore, printers that support the Get-Client-Print-Support-Files
operation SHOULD implement TLS to provide application level channel
security and enable users to reliably authenticate the source of the
Client Print Support Files.
10 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.
[dss]
U.S. Department of Commerce, "Digital Signature Standard (DDS)",
Federal Information Processing Standards Publication 186-1 (FIPS
PUB 186-1), December 15, 1998.
[ipp-url]
Herriot, R., McDonald, I., "Internet Printing Protocol (IPP): IPP
URL Scheme." <draft-ietf-ipp-url-scheme-02.txt>, February 14,
2001.
[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.
Expires May 7, 2001 [RFC1991]
D. Atkins, W. Stallings, P. Zimmermann, "PGP Message Exchange
Formats", RFC 1991, August, 1996.
[RFC2026] [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.
[RFC2396]
Berners-Lee, T., Fielding, R., Masinter, L., "Uniform Resource
Identifiers (URI): Generic Syntax", RFC 2396, August 1998.
[RFC2518] [RFC2518]
Goland, Y., et al, "HTTP Extensions for Distributed Authoring -- Goland, Y., et al, "HTTP Extensions for Distributed Authoring --
WEBDAV", RFC 2518, February 1999. WEBDAV", RFC 2518, February 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.
[RFC2911] [RFC2634]
R. deBry, T. Hastings, R. Herriot, S. Isaacson, P. Powell, P. Hoffman, "Enhanced Security Services for S/MIME", RFC 2634, June
"Internet Printing Protocol/1.0: Model and Semantics", <draft-ietf- 1999.
ipp-model-v11-06.txt>, March 1, 2000.
[RFC2910] [RFC2910]
Herriot, R., Butler, S., Moore, P., Tuner, R., "Internet Printing Herriot, R., Butler, S., Moore, P., Tuner, R., "Internet Printing
Protocol/1.1: Encoding and Transport", draft-ietf-ipp-protocol-v11- Protocol/1.1: Encoding and Transport", RFC 2910, September 2000.
05.txt, March 1, 2000.
[RFC2911]
R. deBry, T. Hastings, R. Herriot, S. Isaacson, P. Powell,
"Internet Printing Protocol/1.0: Model and Semantics", RFC 2911,
September 2000.
[xmldsig]
D. Eastlake, J. Reagle, D. Solo "XML-Signature Syntax and
Processing", <draft-ietf-xmldsig-core-11.txt>, October 31, 2000.
11 Author's Addresses 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
skipping to change at page 16, line 49 skipping to change at page 25, line 4
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
Thomas N. Hastings Thomas N. Hastings
Xerox Corp. Xerox Corp.
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
Expires May 7, 2001
12 Full Copyright Statement 12 Full Copyright Statement
Copyright (C) The Internet Society (2000). 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 or others, and derivative works that comment on or otherwise explain it
assist in its implementation may be prepared, copied, published and or assist in its implementation may be prepared, copied, published
distributed, in whole or in part, without restriction of any kind, and distributed, in whole or in part, without restriction of any
provided that the above copyright notice and this paragraph are included kind, provided that the above copyright notice and this paragraph are
on all such copies and derivative works. However, this document itself included on all such copies and derivative works. However, this
may not be modified in any way, such as by removing the copyright notice document itself may not be modified in any way, such as by removing
or references to the Internet Society or other Internet organizations, the copyright notice or references to the Internet Society or other
except as needed for the purpose of developing Internet standards in Internet organizations, except as needed for the purpose of
which case the procedures for copyrights defined in the Internet developing Internet standards in which case the procedures for
Standards process must be followed, or as required to translate it into copyrights defined in the Internet Standards process must be
languages other than English. followed, or as required to translate it into languages other than
English.
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
IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
FITNESS FOR A PARTICULAR PURPOSE. MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
Expires May 7, 2001 Acknowledgement
Funding for the RFC Editor function is currently provided by the
Internet Society.
 End of changes. 

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