INTERNET-DRAFT      There remains 2 unresolved ISSUES
<draft-ietf-ipp-install-00.txt>
                                                              Hugo Parra
                                                            Novell, Inc.
                                                             Ted Tronson
                                                            Novell, Inc.
                                                           July 13, 2000

                   Internet Printing Protocol (IPP):

                     Printer Installation Extension


    Copyright (C) The Internet Society (2000). All Rights Reserved.


Status of this Memo

This document is an Internet-Draft and is in full conformance with all
provisions of Section 10 of [rfc2026].  Internet-Drafts are working
documents of the Internet Engineering Task Force (IETF), its areas, and
its working groups.  Note that other groups may also distribute working
documents as Internet-Drafts.

Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any
time.  It is inappropriate to use Internet-Drafts as reference material
or to cite them other than as "work in progress".

The list of current Internet-Drafts can be accessed at
http://www.ietf.org/ietf/1id-abstracts.txt

The list of Internet-Draft Shadow Directories can be accessed as
http://www.ietf.org/shadow.html.


Abstract

Various client platforms require that some setting up take place at the
workstation before the client can properly submit jobs to a specific
printer.   This setup process is sometimes referred to as printer
installation.  Most clients need some information about the printer
being installed as well as support files to complete the printer
installation.  The nature of the support files varies depending on the
specific client platform, from simple configuration files to highly
sophisticated printer drivers.  This document refers to these support
files as "client print support files".  Traditionally, the selection and
installation of the correct client print support files has been error
prone.  The selection and installation process can be simplified and
even automated if the workstation can learn some key information about
the printer.  This document describes the IPP extensions that enable
workstations to obtain the information needed to perform a proper
printer driver installation using IPP.






Parra, Tronson                                                 [page 1]


                       Expires January 13, 2001



INTERNET-DRAFT      IPP: Printer Installation Extension   July 13, 2000


The full set of IPP documents includes:

  Design Goals for an Internet Printing Protocol [RFC2567]
  Rationale for the Structure and Model and Protocol for the Internet
     Printing Protocol [RFC2568]
  Internet Printing Protocol/1.1: Model and Semantics [ipp-mod]
  Internet Printing Protocol/1.1: Encoding and Transport [ipp-pro]
  Internet Printing Protocol/1.1: Implementer's Guide [ipp-iig]
  Mapping between LPD and IPP Protocols [RFC2569]

The "Design Goals for an Internet Printing Protocol" document takes a
broad look at distributed printing functionality, and it enumerates
real-life scenarios that help to clarify the features that need to be
included in a printing protocol for the Internet.  It identifies
requirements for three types of users: end users, operators, and
administrators.  It calls out a subset of end user requirements that are
satisfied in IPP/1.0.  A few OPTIONAL operator operations have been
added to IPP/1.1.

The "Rationale for the Structure and Model and Protocol for the Internet
Printing Protocol" document describes IPP from a high level view,
defines a roadmap for the various documents that form the suite of IPP
specification documents, and gives background and rationale for the IETF
working group's major decisions.

The "Internet Printing Protocol/1.1: Encoding and Transport" document is
a formal mapping of the abstract operations and attributes defined in
the model document onto HTTP/1.1 [RFC2616].  It defines the encoding
rules for a new Internet MIME media type called "application/ipp".  This
document also defines the rules for transporting a message body over
HTTP whose Content-Type is "application/ipp".  This document defines a
new scheme named 'ipp' for identifying IPP printers and jobs.

The "Internet Printing Protocol/1.1: Implementer's Guide" document gives
insight and advice to implementers of IPP clients and IPP objects.  It
is intended to help them understand IPP/1.1 and some of the
considerations that may assist them in the design of their client and/or
IPP object implementations.  For example, a typical order of processing
requests is given, including error checking.  Motivation for some of the
specification decisions is also included.

The "Mapping between LPD and IPP Protocols" document gives some advice
to implementers of gateways between IPP and LPD (Line Printer Daemon)
implementations.












Parra, Tronson                                                 [page 2]


                       Expires January 13, 2001



INTERNET-DRAFT      IPP: Printer Installation Extension   July 13, 2000




                           Table of Contents

1  Introduction......................................................4
2  Terminology.......................................................4
3  Model Extensions..................................................4
 3.1 "CLIENT-PRINT-SUPPORT-FILES-SUPPORTED" (1SETOF OCTETSTRING(MAX)).5
 3.2 GET-PRINTER-ATTRIBUTES EXTENSION.................................7
   3.2.1 Get-Printer-Attributes Request..............................7
   3.2.2 Get-Printer-Attributes Response.............................9
 3.3GET-CLIENT-PRINT-SUPPORT-FILES...................................9
   3.3.1 Get-Client-Print-Support-Files Request.....................10
   3.3.2 Get-Client-Print-Support-Files Response....................10
4  Encoding of the Operation Layer..................................11
5  Encoding of Transport Layer......................................11
6  IANA Considerations..............................................11
7  Internationalization Considerations..............................11
8  Security Considerations..........................................11
9  References.......................................................12
10 Author's Addresses...............................................13
11 Full Copyright Statement.........................................13

































Parra, Tronson                                                 [page 3]


                       Expires January 13, 2001



INTERNET-DRAFT      IPP: Printer Installation Extension   July 13, 2000


1  Introduction

A common configuration for printing from a workstation requires that
some client print support files (e.g., PPD, printer driver files)
specific to the target printer be installed on that workstation.
Selection and configuration of the appropriate client print support
files can be simplified and even automated if the workstation can obtain
some key information about the printer.  With a few extensions, IPP
provides a simple and reliable vehicle for printers to convey this
information to interested workstations.  The IPP extensions described in
this document enable a flexible solution for installing client print
support files on workstations running different operating systems and
for printers of all makes and models.  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.


2  Terminology

This document uses terms such as "attributes", "keywords", and
"support".  These terms have special meaning and are defined in the
model terminology [ipp-mod] section 12.2.

Capitalized terms, such as MUST, MUST NOT, REQUIRED, SHOULD, SHOULD NOT,
MAY, NEED NOT, and OPTIONAL, have special meaning relating to
conformance.  These terms are defined in [ipp-mod] section 12.1 on
conformance terminology, most of which is taken from RFC 2119 [RFC2119].

This section defines the following additional terms that are used
throughout this document:

  REQUIRED: if an implementation supports the extensions described in
     this document, it MUST support a REQUIRED feature.
  OPTIONAL: if an implementation supports the extensions described in
     this document, it MAY support an OPTIONAL feature.

3  Model Extensions

To assist workstations in the printer installation process, an IPP
printer needs to provide the workstation with information about the
client print support files, such as the their name and location/s.  This
information needs to match the workstation's specific environment, such
as its operating system, preferred natural language, and preferred
document format.

The following extensions to the IPP model enable assisted or automated
printer installation.  This section describes each extension in detail.

     - A new REQUIRED printer-description attribute: "client-print-
       support-files-supported".

     - A new REQUIRED Get-Printer-Attributes operational attribute:
       "client-print-support-files-request".


Parra, Tronson                                                 [page 4]


                       Expires January 13, 2001



INTERNET-DRAFT      IPP: Printer Installation Extension   July 13, 2000


     - A new OPTIONAL printer operation: Get-Client-Print-Support-
       Files.


3.1 "client-print-support-files-supported" (1setOf octetString(MAX))


An IPP Printer uses the REQUIRED printer-description attribute "client-
print-support-files-supported" to represent relevant information about
the client print support files it supports.  Each value is a composite
ASCII string with well-defined fields (see Table 1).  Each value string
must be formatted as follows:

 "uri=val < field-name =val  ,.,val  < . < field-name =val  ,.,val  <".
         1            2    21      2p                n    n1      nq









































Parra, Tronson                                                 [page 5]


                       Expires January 13, 2001



INTERNET-DRAFT      IPP: Printer Installation Extension   July 13, 2000


Field name     Field value

"uri"          One REQUIRED string identifying the uri where to obtain
               the support files for each OS platform, document format,
               and natural language the printer supports.  This MUST be
               the first field in each value.  Examples of uri types
               that may be found here are FTP, HTTP, and IPP.  FTP and
               HTTP uri's identify the archive file that contains all
               the necessary client support files.  IPP uri's identify
               the printer object from which the archive file may be
               obtained (see section 3.3).

"os-type"      One or more REQUIRED comma-separated strings identifying
               the operating system types supported by this set of
               client print support files.  Valid values include the
               operating system names defined in the IANA document [os-
               names].

"cpu-type"     One or more REQUIRED comma-separated strings identifying
               the CPU types supported by this set of client print
               support files. Valid values include the operating system
               names defined in the IANA document [cpu-names].
               "unknown" is a valid value.

"document-     One or more REQUIRED comma-separated strings identifying
format"        the document formats supported by this set of client
               print support files.  Valid values are the string
               representation of the IPP mimeMediaType syntax.
               "unknown" is a valid value.

"natural-      One or more REQUIRED comma-separated strings identifying
language"      the natural language used by this set of client print
               support files.  Valid values are the string
               representation of the IPP naturalLanguage syntax.
               "unknown" is a valid value.

"compression"  One REQUIRED string identifying the mechanism used to
               compress this set of client print support files.  All
               files needed for the installation of a printer driver
               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
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
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





Parra, Tronson                                                 [page 6]


                       Expires January 13, 2001



INTERNET-DRAFT      IPP: Printer Installation Extension   July 13, 2000


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 uir's).

The following illustrates what two valid values of "client-print-
support-files-supported" might look like, ISSUE 1: What strings should
be used for CPU types in the examples?

     "uri=ipp://mycompany.com/myprinter< os-type=windows-95<
     cpu-type=Intell-P5< document-
     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.
     zip<
     os-type=windows-95< cpu-type=Intell-P5<
     document-format=application/postscript,application/vnd.hp-
     PCL<
     natural-language=en,fr< compresion=gzip< install-file-
     type=printer-driver<
     install-file-name=ManufacturerName<"

The "client-print-support-files-supported" printer description attribute
may be preset at manufacturing time or set via the IPP set-printer-
attribute operation or through administrative means outside the scope of
IPP.


Clients SHOULD ignore fields they don't recognize in a given value.
This allows for feature extensions to the format of the string without
breaking compatibility with earlier clients.


3.2 Get-Printer-Attributes Extension


The following extensions allow a workstation to retrieve information on
the client print support files a printer supports using the existing
Get-Printer-Attributes operation.


3.2.1 Get-Printer-Attributes Request

A printer may contain information on multiple client print support files
to match the different operating systems, natural languages and document
formats it supports.  A workstation may query this information by
including "client-print-support-files-supported " in the "requested-
attributes" operational attribute of the Get-Printer-Attributes
operation.  The workstation can control what information a printer
returns by including the "client-print-support-files-request"
operational attribute.




Parra, Tronson                                                 [page 7]


                       Expires January 13, 2001



INTERNET-DRAFT      IPP: Printer Installation Extension   July 13, 2000


"client-print-support-files-request" (octetString(MAX)) is used as
follows.


The IPP Printer is REQUIRED to support this operational attribute and
all its member fields.  An IPP Client MAY supply the attribute if it
wishes to restrict the printer driver information it receives from the
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,
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
combination with "client-print-support-files-request" 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 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).































Parra, Tronson                                                 [page 8]


                       Expires January 13, 2001



INTERNET-DRAFT      IPP: Printer Installation Extension   July 13, 2000


Field name      Field value

"uri-scheme"    One or more OPTIONAL strings instructing the printer
                to only return information on client print support
                files that can be located at uri's of the specified
                uri schemes.  If not present, the printer does not
                filter the information it returns based on uri-scheme.

"os-type"       One or more OPTIONAL strings instructing the printer
                to only return information on client print support
                files that support the specified operating systems.
                If not present, the printer does not filter the
                information it returns based on os-type.

"cpu-type"      One or more OPTIONAL strings instructing the printer
                to only return information on client print support
                files that support the specified CPU types.  If not
                present, the printer does not filter the information
                it returns based on cpu-type.

"document-      One or more OPTIONAL strings instructing the printer
format"         to only return information on client print support
                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
language"       to only return information on client print support
                files that support the specified natural languages.
                If not present, the printer does not filter the
                information it returns based on natural language.

"compression"   One or more OPTIONAL strings instructing the printer
                to only return information on client print support
                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


3.2.2 Get-Printer-Attributes Response


A printer MUST return the "client-print-support-files-supported"
attribute in the "printer-object" attribute group when a requested by a
client.  Each returned attribute value must satisfy the criteria
specified by the client in the request.


3.3 Get-Client-Print-Support-Files


This OPTIONAL operation allows a client to download client print support
files from an IPP Printer.






Parra, Tronson                                                 [page 9]


                       Expires January 13, 2001



INTERNET-DRAFT      IPP: Printer Installation Extension   July 13, 2000


3.3.1 Get-Client-Print-Support-Files Request


The following sets of attributes are part of the Get-Client-Print-
Support-Files request:


Group 1: Operation Attributes

     Natural Language and Character Set:
        The "attributes-charset" and "attributes-natural-language"
        attributes as described in [ipp-mod], section 3.1.4.1.

     Target:
        The "printer-uri" (uri) operation attribute which is the target
        for this operation as described in [ipp-mod], section 3.1.5.

     Requesting User Name:
        The "requesting-user-name" (name(MAX)) attribute SHOULD be
        supplied by the client as described in [ipp-mod], section 8.3.

     "client-print-support-files-request" (octetString(MAX)) :
        The client MUST supply this attribute specifying the criteria
        the returned client print support files should meet.  If more
        than one set of client print support files meet the specified
        criteria, the printer returns the first one it encounters.  The
        format and semantics of this attribute's value are identical to
        those of the Get-Printer-Attributes operational attribute of the
        same name described in section 3.2.1.


3.3.2 Get-Client-Print-Support-Files Response


The Printer object returns the following sets of attributes as part of
the Get-Client-Print-Support-Files Response:


Group 1: Operation Attributes

     Status Message:
        In addition to the REQUIRED status code returned in every
        response, the response OPTIONALLY includes a "status-message"
        (text(255)) operation attribute as described in [ipp-mod],
        sections 13 and 3.1.6.

     Natural Language and Character Set:
        The "attributes-charset" and "attributes-natural-language"
        attributes as described in [ipp-mod], section 3.1.4.2.

Group 2: Unsupported Attributes
     See [ipp-mod], section 3.1.7 for details on returning Unsupported
     Attributes.

Group 3: Printer Object Attributes


Parra, Tronson                                                [page 10]


                       Expires January 13, 2001



INTERNET-DRAFT      IPP: Printer Installation Extension   July 13, 2000


     "client-print-support-files-supported" (octetString(MAX)).
        The Printer object MUST return this attribute if the response
        includes Group 4 (i.e., if a set of client print support files
        that meets the client's criteria was found and is included in
        the response).  The provided text string MUST use the format
        shown in section 3.1.  This attribute identifies the properties
        of the returned client print support files.

Group 4: Client Print Support Files
     The printer MUST supply the client print support files that match
     the client's criteria following the "end-of-attributes" tag.  All
     necessary files must be compressed into a single file.


4  Encoding of the Operation Layer

This extension uses the operation layer encoding described in [ipp-pro].


5  Encoding of Transport Layer

This specification uses the transport layer encoding described in [ipp-
pro] with the following extensions.

New Error codes:

     0x0417    clnt-err-client-print-support-file-not-found

New Operation code

     0x0021    Get-Client-Print-Support-Files


6  IANA Considerations

IANA-registered operating system names are required by this spec.  All
other IANA considerations are already addressed by IPP.  ISSUE 2: Should
mention IANA's future support for CPU types?


7  Internationalization Considerations

All text representations introduced by this specification adhere to the
internationalization-friendly representation supported by IPP.  This
work is also accommodates the use of client print support files of
different languages.


8  Security Considerations

The IPP Model and Semantics document [ipp-mod] discusses high-level
security requirements (Client Authentication, Server Authentication and
Operation Privacy). Client Authentication is the mechanism by which the
client proves its identity to the server in a secure manner. Server
Authentication is the mechanism by which the server proves its identity



Parra, Tronson                                                [page 11]


                       Expires January 13, 2001



INTERNET-DRAFT      IPP: Printer Installation Extension   July 13, 2000


to the client in a secure manner. Operation Privacy is defined as a
mechanism for protecting operations from eavesdropping.

Only operators of a printer should be allowed to set the "printer-
driver-supported" attribute and only users of the printer should be
allowed to query that information.

Printers that support the Get-Client-Print-Support-Files operation are
REQUIRED to implement TLS to enable users to reliably authenticate the
source of the client print support files.


9  References


[cpu-names]
     IANA Registry of CPU Names at ftp://ftp.isi.edu/in-
     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]
     IANA Registry of Operating System Names at ftp://ftp.isi.edu/in-
     notes/iana/assignments/operating-system-names.

[rfc2026]
     S. Bradner, "The Internet Standards Process -- Revision 3", RFC
     2026, October 1996.

[rfc2616]
     R. Fielding, J. Gettys, J. Mogul, H. Frystyk, L. Masinter, P.
     Leach, T. Berners-Lee, "Hypertext Transfer Protocol - HTTP/1.1",
     RFC 2616, June 1999.















Parra, Tronson                                                [page 12]


                       Expires January 13, 2001



INTERNET-DRAFT      IPP: Printer Installation Extension   July 13, 2000


10 Author's Addresses

     Hugo Parra
     Novell, Inc.
     1800 South Novell Place
     Provo, UT   84606
     Phone: 801-861-3307
     Fax:   801-861-4025
     e-mail: hparra@novell.com

     Ted Tronson
     Novell, Inc.
     1800 South Novell Place
     Provo, UT   84606
     Phone: 801-861-3338
     Fax:   801-861-4025
     e-mail: ttronson@novell.com


11 Full Copyright Statement

Copyright (C) The Internet Society (2000). All Rights Reserved.

This document and translations of it may be copied and furnished to
others, and derivative works that comment on or otherwise explain it or
assist in its implementation may be prepared, copied, published and
distributed, in whole or in part, without restriction of any kind,
provided that the above copyright notice and this paragraph are included
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
or references to the Internet Society or other Internet organizations,
except as needed for the purpose of developing Internet standards in
which case the procedures for copyrights defined in the Internet
Standards process must be followed, or as required to translate it into
languages other than English.

The limited permissions granted above are perpetual and will not be
revoked by the Internet Society or its successors or assigns.

This document and the information contained herein is provided on an "AS
IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK
FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT
LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT
INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR
FITNESS FOR A PARTICULAR PURPOSE.












Parra, Tronson                                                [page 13]

                       Expires January 13, 2001