idnits 2.17.1 draft-ietf-ipp-install-01.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- ** Looks like you're using RFC 2026 boilerplate. This must be updated to follow RFC 3978/3979, as updated by RFC 4748. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- ** Missing expiration date. The document expiration date should appear on the first and last page. ** The document seems to lack a 1id_guidelines paragraph about Internet-Drafts being working documents. ** The document seems to lack a 1id_guidelines paragraph about the list of Shadow Directories -- however, there's a paragraph with a matching beginning. Boilerplate error? ** The document is more than 15 pages and seems to lack a Table of Contents. == No 'Intended status' indicated for this document; assuming Proposed Standard == The page length should not exceed 58 lines per page, but there was 17 longer pages, the longest (page 8) being 66 lines Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- ** The document seems to lack separate sections for Informative/Normative References. All references will be assumed normative when checking for downward references. ** There are 4 instances of too long lines in the document, the longest one being 1 character in excess of 72. ** The abstract seems to contain references ([RFC2568], [RFC2616], [RFC2569], [RFC2910], [RFC2911], [RFC2567]), which it shouldn't. Please replace those with straight textual mentions of the documents in question. == There are 1 instance of lines with non-RFC6890-compliant IPv4 addresses in the document. If these are example addresses, they should be changed. ** The document seems to lack a both a reference to RFC 2119 and the recommended RFC 2119 boilerplate, even if it appears to use RFC 2119 keywords. RFC 2119 keyword, line 74: '... IPP/1.0. A few OPTIONAL operator ope...' RFC 2119 keyword, line 167: '...d terms, such as MUST, MUST NOT, REQUI...' RFC 2119 keyword, line 168: '...Y, NEED NOT, and OPTIONAL, have specia...' RFC 2119 keyword, line 176: '...his document, it MUST support a REQUIR...' RFC 2119 keyword, line 178: '...his document, it MAY support an OPTION...' (64 more instances...) Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the RFC 3978 Section 5.4 Copyright Line does not match the current year -- The document seems to lack a disclaimer for pre-RFC5378 work, but may have content which was first submitted before 10 November 2008. If you have contacted all the original authors and they are all willing to grant the BCP78 rights to the IETF Trust, then this is fine, and you can ignore this comment. If not, you may need to add the pre-RFC5378 disclaimer. (See the Legal Provisions document at https://trustee.ietf.org/license-info for more information.) -- The document date (November 7, 2000) is 8571 days in the past. Is this intentional? Checking references for intended status: Proposed Standard ---------------------------------------------------------------------------- (See RFCs 3967 and 4897 for information about using normative references to lower-maturity documents in RFCs) == Missing Reference: 'RFC2567' is mentioned on line 60, but not defined == Missing Reference: 'RFC2568' is mentioned on line 62, but not defined == Missing Reference: 'RFC2569' is mentioned on line 66, but not defined == Missing Reference: 'RFC2119' is mentioned on line 170, but not defined == Missing Reference: 'RFC2396' is mentioned on line 224, but not defined ** Obsolete undefined reference: RFC 2396 (Obsoleted by RFC 3986) ** Obsolete normative reference: RFC 2518 (Obsoleted by RFC 4918) ** Obsolete normative reference: RFC 2616 (Obsoleted by RFC 7230, RFC 7231, RFC 7232, RFC 7233, RFC 7234, RFC 7235) ** Obsolete normative reference: RFC 2911 (Obsoleted by RFC 8011) == Outdated reference: A later version (-06) exists of draft-ietf-ipp-protocol-v11-05 Summary: 13 errors (**), 0 flaws (~~), 10 warnings (==), 2 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 INTERNET-DRAFT 3 4 Hugo Parra 5 Novell, Inc. 6 Ted Tronson 7 Novell, Inc. 8 Tom Hastings 9 Xerox Corp. 10 November 7, 2000 12 Internet Printing Protocol (IPP): 14 Printer Installation Extension 16 Copyright (C) The Internet Society (2000). All Rights Reserved. 18 Status of this Memo 20 This document is an Internet-Draft and is in full conformance with all 21 provisions of Section 10 of [RFC2026]. Internet-Drafts are working 22 documents of the Internet Engineering Task Force (IETF), its areas, and 23 its working groups. Note that other groups may also distribute working 24 documents as Internet-Drafts. 26 Internet-Drafts are draft documents valid for a maximum of six months 27 and may be updated, replaced, or obsoleted by other documents at any 28 time. It is inappropriate to use Internet-Drafts as reference material 29 or to cite them other than as "work in progress". 31 The list of current Internet-Drafts can be accessed at 32 http://www.ietf.org/ietf/1id-abstracts.txt 34 The list of Internet-Draft Shadow Directories can be accessed as 35 http://www.ietf.org/shadow.html. 37 Abstract 39 Various client platforms require that some setting up take place at the 40 workstation before the client can properly submit jobs to a specific 41 printer. This setup process is sometimes referred to as printer 42 installation. Most clients need some information about the printer 43 being installed as well as support files to complete the printer 44 installation. The nature of the support files varies depending on the 45 specific client platform, from simple configuration files to highly 46 sophisticated printer drivers. This document refers to these support 47 files as "Client Print Support Files". Traditionally, the selection and 48 installation of the correct Client Print Support Files has been error 49 prone. The selection and installation process can be simplified and 50 even automated if the workstation can learn some key information about 51 the printer and which sets of Client Print Support Files are available. 52 Such key information includes: operating system type, CPU type, 53 document-format (PDL), natural language, etc. This document describes 54 the IPP extensions that enable workstations to obtain the information 55 needed to perform a proper printer driver installation using IPP. 57 Expires May 7, 2001 58 The full set of IPP documents includes: 60 Design Goals for an Internet Printing Protocol [RFC2567] 61 Rationale for the Structure and Model and Protocol for the Internet 62 Printing Protocol [RFC2568] 63 Internet Printing Protocol/1.1: Model and Semantics [RFC2911] 64 Internet Printing Protocol/1.1: Encoding and Transport [RFC2910] 65 Internet Printing Protocol/1.1: Implementer's Guide [ipp-iig] 66 Mapping between LPD and IPP Protocols [RFC2569] 68 The "Design Goals for an Internet Printing Protocol" document takes a 69 broad look at distributed printing functionality, and it enumerates 70 real-life scenarios that help to clarify the features that need to be 71 included in a printing protocol for the Internet. It identifies 72 requirements for three types of users: end users, operators, and 73 administrators. It calls out a subset of end user requirements that are 74 satisfied in IPP/1.0. A few OPTIONAL operator operations have been 75 added to IPP/1.1. 77 The "Rationale for the Structure and Model and Protocol for the Internet 78 Printing Protocol" document describes IPP from a high level view, 79 defines a roadmap for the various documents that form the suite of IPP 80 specification documents, and gives background and rationale for the IETF 81 working group's major decisions. 83 The "Internet Printing Protocol/1.1: Encoding and Transport" document is 84 a formal mapping of the abstract operations and attributes defined in 85 the model document onto HTTP/1.1 [RFC2616]. It defines the encoding 86 rules for a new Internet MIME media type called "application/ipp". This 87 document also defines the rules for transporting a message body over 88 HTTP whose Content-Type is "application/ipp". This document defines a 89 new scheme named 'ipp' for identifying IPP printers and jobs. 91 The "Internet Printing Protocol/1.1: Implementer's Guide" document gives 92 insight and advice to implementers of IPP clients and IPP objects. It 93 is intended to help them understand IPP/1.1 and some of the 94 considerations that may assist them in the design of their client and/or 95 IPP object implementations. For example, a typical order of processing 96 requests is given, including error checking. Motivation for some of the 97 specification decisions is also included. 99 The "Mapping between LPD and IPP Protocols" document gives some advice 100 to implementers of gateways between IPP and LPD (Line Printer Daemon) 101 implementations. 103 Expires May 7, 2001 104 Table of Contents 106 1 Introduction......................................................4 107 2 Terminology.......................................................4 108 3 Model Extensions..................................................4 109 3.1 client-print-support-files-supported (1setOf octetString(MAX)).5 110 3.2 Get-Printer-Attributes Operation Extension.....................9 111 3.2.1 Get-Printer-Attributes Request..............................9 112 3.2.1.1 client-print-support-files-filter (octetString(MAX)) 113 operation attribute..............................................9 114 3.2.2 Get-Printer-Attributes Response............................11 115 3.3 Get-Client-Print-Support-Files................................12 116 3.3.1 Get-Client-Print-Support-Files Request.....................12 117 3.3.2 Get-Client-Print-Support-Files Response....................13 118 4 Conformance......................................................14 119 5 Encoding of the Operation Layer..................................14 120 6 Encoding of Transport Layer......................................14 121 7 IANA Considerations..............................................15 122 8 Internationalization Considerations..............................15 123 9 Security Considerations..........................................15 124 10 References......................................................15 125 11 Author's Addresses..............................................16 126 12 Full Copyright Statement........................................17 128 Tables 130 Table 1 - "client-print-support-files-supported" attribute fields.....7 132 Table 2 - "client-print-support-files-filter" attribute fields.......10 134 Expires May 7, 2001 135 1 Introduction 137 A common configuration for printing from a workstation requires that 138 some Client Print Support Files (e.g., PPD, printer driver files) 139 specific to the target printer be installed on that workstation. 140 Selection and configuration of the appropriate Client Print Support 141 Files can be simplified and even automated if the workstation can obtain 142 some key information about the printer and which sets of Client Print 143 Support Files are available. Such key information includes: operating 144 system type, CPU type, document-format (PDL), natural language, etc. 145 With a few extensions, IPP provides a simple and reliable vehicle for 146 printers to convey this information to interested workstations. The IPP 147 extensions described in this document enable a flexible solution for 148 installing Client Print Support Files on workstations running different 149 operating systems and for printers of all makes and models. It allows 150 Client Print Support Files to be downloaded from repositories of 151 different sorts. A possible repository for the files is the printer 152 itself. The extensions necessary for getting Client Print Support Files 153 from the printer are included in this document. 155 2 Terminology 157 Client Print Support Files - a set of files, such as a printer driver, 158 font metric file, printer configuration file (PPD, GPD, etc.) that 159 support a client printing to a particular Printer. A Printer can have 160 multiple sets of Client Print Support Files that work for different 161 operating systems, document formats, natural languages, CPUs, etc. 163 This document uses terms such as "attributes", "keywords", and 164 "support". These terms have special meaning and are defined in the 165 model terminology [RFC2911] section 12.2. 167 Capitalized terms, such as MUST, MUST NOT, REQUIRED, SHOULD, SHOULD NOT, 168 MAY, NEED NOT, and OPTIONAL, have special meaning relating to 169 conformance. These terms are defined in [RFC2911] section 12.1 on 170 conformance terminology, most of which is taken from RFC 2119 [RFC2119]. 172 This section defines the following additional terms that are used 173 throughout this document: 175 REQUIRED: if an implementation supports the extensions described in 176 this document, it MUST support a REQUIRED feature. 177 OPTIONAL: if an implementation supports the extensions described in 178 this document, it MAY support an OPTIONAL feature. 180 3 Model Extensions 182 To assist workstations in the printer installation process, an IPP 183 printer needs to provide the workstation with information about the 184 Client Print Support Files, such as the their name and location/s. This 185 information needs to match the workstation's specific environment, such 186 as its operating system, preferred natural language, and preferred 187 document format. 189 Expires May 7, 2001 190 The following extensions to the IPP model enable assisted or automated 191 printer installation. This section describes each extension in detail. 193 - A new REQUIRED Printer Description attribute: "client-print- 194 support-files-supported" (1setOf octetString(MAX)). 196 - A new REQUIRED Get-Printer-Attributes operation attribute: 197 "client-print-support-files-filter" (octetString(MAX)). 199 - A new RECOMMENDED printer operation: Get-Client-Print-Support- 200 Files. 202 3.1 client-print-support-files-supported (1setOf octetString(MAX)) 204 An IPP Printer uses the REQUIRED Printer Description attribute "client- 205 print-support-files-supported" to represent relevant information about 206 all of the Client Print Support Files it supports. Each value is a 207 composite UTF-8 string with well-defined fields (see Table 1). Each 208 value string MUST be formatted as follows: 210 "uri=val < field-name =val ,.,val < . < field-name =val ,.,val <" 211 1 2 21 2p n n1 nq 213 The first field MUST be the "uri" field. The remaining fields MAY be in 214 any order. 216 The string MUST NOT include any control characters (hex 00 to 1F), even 217 the so-called white space control characters (TAB, CR, and LF) anywhere. 218 Only zero or more UTF-8 SPACE characters (hex 20) can be included and 219 they can be included only IMMEDIATELY AFTER the punctuation character: 220 "<", but NOT anywhere else, including after "=" and ",". However, if 221 the UTF-8 SPACE character is needed in a file name value, then each 222 occurrence is included directly, without escaping (see example). On the 223 other hand, if the UTF-8 SPACE character is needed in a URL value, then 224 each occurrence is escaped as: "\x20" (URI conventions - see [RFC2396]). 226 Table 1 lists the REQUIRED fields that a Printer MUST support and the 227 OPTIONAL fields that a Printer MAY support in the "client-print-support- 228 files-supported" (1setOf octetString(MAX)) Printer Description 229 attribute. A Printer implementation MAY support additional fields using 230 the same syntax. Values are defined to be either CASE-SENSITIVE or ALL- 231 LOWER-CASE according to the definitions for the attribute syntaxes from 232 [RFC2911] (set off by single quotes in the table). The CASE-SENSITIVE 233 values MAY have upper and lower case letters as for the corresponding 234 attribute syntaxes in [RFC2911]. The LOWER-CASE values MUST have all 235 lower case alphabetic letters. Additional characters, such as digits, 236 hyphen-minus (-), period (.), and slash (/) are according to the 237 corresponding attribute syntaxes in [RFC2911]. 239 Expires May 7, 2001 240 Clients SHOULD ignore fields they don't recognize in a given value. 241 This allows for future extensions to the format of the string without 242 breaking compatibility with earlier clients. 244 Expires May 7, 2001 245 Table 1 - "client-print-support-files-supported" attribute fields 247 Field name Field value 249 "uri" One REQUIRED CASE-SENSITIVE 'uri' string identifying the 250 uri where to obtain the support files for each OS 251 platform, document format, and natural language the 252 printer supports. This MUST be the first field in each 253 value. Examples of uri schemes that MAY be found here 254 are ftp, http, and ipp. The ftp and http schemed URIs 255 identify the archive file that contains all the 256 necessary client support files. The ipp schemed URIs 257 also identify the archive file which may be obtained 258 from the Printer using the Get-Client-Print-Support- 259 Files operation (see section 3.3). In order to 260 distinguish between multiple Client Print Support Files, 261 the ipp URL is used to distinguish between them in an 262 implementation dependent manner, such as using a file 263 URL parameter (' file=xxx). A Printer SHOULD support 264 the ipp scheme. 266 "os-type" One or more REQUIRED comma-separated LOWER-CASE strings 267 identifying the operating system types supported by this 268 set of Client Print Support Files. Valid values include 269 the operating system names defined in the IANA document 270 [os-names]. Although the IANA registry requires that the 271 names be all upper-case, the values MUST be all lower 272 case in this field (plus hyphen-minus (-), period (.), 273 and slash (/)). Examples: linux, linux-2.2, os/2, sun- 274 os-4.0, unix, unix-bsd, win32, windows-95, windows-98, 275 windows-ce, windows-nt, windows-nt-4, windows-nt-5. 277 "cpu-type" One or more REQUIRED comma-separated LOWER-CASE strings 278 identifying the CPU types supported by this set of 279 Client Print Support Files. Values (or compatible): 280 'unknown', 'x86-16', 'x86-32', 'x86-64', 'dec-vax', 281 'alpha', 'power-pc', 'm-6800', 'sparc', 'itantium', 282 'mips', 'arm'. 284 "document- One or more REQUIRED comma-separated CASE-SENSITIVE 285 format" 'document-format' strings identifying the document 286 formats supported by this set of Client Print Support 287 Files. Valid values are the string representation of 288 the IPP mimeMediaType syntax (see [RFC2911]). 'unknown' 289 is a valid value. 291 "natural- One or more REQUIRED comma-separated LOWER-CASE 292 language" 'naturalLanguage' strings identifying the natural 293 language used by this set of Client Print Support Files. 294 Valid values are the string representation of the IPP 295 naturalLanguage syntax. 'unknown' is a valid value. 297 "compression" One REQUIRED LOWER-CASE 'keyword' string identifying the 298 mechanism used to compress this set of Client Print 299 Support Files. All files needed for the installation of 301 Expires May 7, 2001 303 Field name Field value 305 a printer driver MUST be compressed into a single file. 306 Valid values are: 'deflate', 'gzip', 'compress'. The 307 'none' value is allowed but limits the uncompressed 308 Client Print Support File to a single file. 310 "file-type" One or more REQUIRED comma-separated LOWER-CASE 311 'keyword' strings identifying the type of the Client 312 Print Support Files. Valid values are: 'printer- 313 driver', 'ppd', 'updf', 'gpd'. 315 "file-name" One REQUIRED CASE-SENSITIVE string identifying the name 316 by which the Client Print Support Files will be 317 installed on the workstation. For Client Print Support 318 Files of type 'printer-driver', this is also the name 319 that identifies this printer driver in an .inf file. 321 "policy" One REQUIRED LOWER-CASE 'keyword' string indicating the 322 policy for automatic loading. Values: 'unknown', 323 'manufacturer-recommended', 'administrator-recommended', 324 'manufacturer-experimental, and 'administrator- 325 experimental'. The experimental values are for beta 326 test. 328 "file-size" One OPTIONAL file size in octets represented as ASCII 329 decimal digits. 331 "file- One OPTIONAL LOWER-CASE version number. Recommended to 332 version" be of the form "Major.minor[.revision]" "Major" is the 333 major version number, "minor" is the minor version 334 number and "revision" is an optional revision number. 336 "file-date- One OPTIONAL File CASE-SENSITIVE creation date and time 337 time" according to ISO 8601 where all fields are fixed length 338 with leading zeroes (see [RFC2518] Appendix 2). 339 Examples: 2000-01-01T23:09:05Z and 2000-01-01T02:59:59- 340 04.00 342 Each value MUST refer to one and only one set of Client Print Support 343 Files, even if the files are downloadable from various repositories 344 (i.e., even if they are associated with multiple URIs). 346 The following illustrates what two valid values of the "client-print- 347 support-files-supported" (1setOf octetString(MAX)) Printer Description 348 attribute might look like: 350 uri=ipp://mycompany.com/myprinter< 351 os-type=windows-95< cpu-type=x86-32< 352 document-format=application/postscript< 353 natural-language=en< compression=gzip< 354 install-file-type=printer-driver< 355 install-file-name=CompanyX-ModelY-driver.gz< 356 policy=manufacturer-recommended< 358 Expires May 7, 2001 359 uri=ftp://mycompany.com/root/drivers/win95/CompanyX/ModelY.g 360 z< 361 os-type=windows-95< cpu-type=x86-32< 362 document-format=application/postscript,application/vnd.hp- 363 PCL< 364 natural-language=en,fr< compression=gzip< 365 install-file-type=printer-driver< 366 install-file-name=Company T Model Z driver.gz< 367 policy=manufacturer-recommended< 369 The above examples have been broken onto separate lines for readability 370 in this document. However, there MUST NOT be any line breaks in the 371 actual values. 373 The "client-print-support-files-supported" Printer Description attribute 374 MAY be preset at manufacturing time or set via the IPP Set-Printer- 375 Attribute operation or through administrative means outside the scope of 376 IPP. 378 3.2 Get-Printer-Attributes Operation Extension 380 The "client-print-support-files-supported" Printer Description attribute 381 defined in section 3.1 contains information, such as operating system, 382 natural language, and document format, about all of the sets of Client 383 Print Support Files. This section defines an extension to the Get- 384 Printer-Attributes operation that allows a workstation to filter out all 385 but the Client Print Support Files of interest. 387 3.2.1Get-Printer-Attributes Request 389 A Printer MAY contain information about multiple sets of Client Print 390 Support Files to match the different operating systems, natural 391 languages and document formats it supports. A workstation may query 392 this information by including the 'client-print-support-files-supported' 393 keyword as a value of the "requested-attributes" operation attribute of 394 the Get-Printer-Attributes operation. 396 3.2.1.1 client-print-support-files-filter (octetString(MAX)) operation 397 attribute 399 The client can request a subset of the values of the "client-print- 400 support-files-supported" Printer attribute by supplying the "client- 401 print-support-files-filter" (octetString(MAX)) operation attribute in 402 the request as a filter. The filter value indicates in which Client 403 Print Support Files the client is interested. The client MAY supply this 404 attribute. The Printer MUST support this attribute. 406 The filter value of the "client-print-support-files-filter" attribute is 407 a composite string with the same format as that of "client-print- 408 support-files-supported" (see Table 1 - "client-print-support-files- 410 Expires May 7, 2001 411 supported" attribute fields in section 3.1) with the following 412 exceptions: 414 Table 2 - "client-print-support-files-filter" attribute fields 416 Field Field Value in the "client-print-support-files-filter" 417 Name attribute 419 uri- One or more REQUIRED comma-separated LOWER-CASE 420 scheme 'uriScheme' string values identifying the uri scheme to be 421 filtered on. Example URI schemes are: ftp, http, and ipp. 422 The Printer SHOULD support the ipp scheme. If supplied by 423 the client, this field NEED NOT be first. If this field 424 is omitted by the client, the Printer returns all schemes. 426 xxx All of the fields in "Table 1 - "client-print-support- 427 files-supported" attribute fields, with the single 428 exception of the "uri" field which a client MUST NOT 429 supply and a Printer MUST NOT support. 431 Any field can have more than one value separated by a 432 COMMA (,), including the fields that Table 1 indicates 433 MUST BE single valued. 435 Clients MAY supply additional fields and/or additional values of defined 436 fields. 438 The Printer returns only the values of the "client-print-support-files- 439 supported" Printer Description attribute that match the filter in the 440 "client-print-support-files-filter" operation attribute. A match occurs 441 if at least one value of each field supplied in the filter matches a 442 Client Print Support File value. A match for a CASE-INSENSITIVE field 443 occurs independent of the case of the letters supplied by the client and 444 those stored by the Printer, while a match for a LOWER-CASE field is a 445 strict character for character match. 447 The following are two examples of a "client-print-support-files-filter" 448 filter value: 450 os-type=windows-95< cpu-type=x86-32< 451 document-format=application-postscript< natural-language=en,de< 453 uri-scheme=ipp< os-type=windows-95< cpu-type=x86-32< 454 document-format=application-postscript< natural-language=en,de< 456 See section 3.2.2 for example matching in the response. 458 Expires May 7, 2001 459 The IPP Printer is REQUIRED to support this operation attribute and the 460 following member fields in a "client-print-support-files-filter" 461 operation attribute filter in the Get-Printer-Attributes request: 463 1. uri-scheme 464 2. os-type 465 3. cpu-type 466 4. document-format 467 5. natural-language 469 Printer implementations MAY support additional fields and additional 470 values of defined fields. Printers MUST ignore fields they do not 471 support. 473 If the "client-print-support-files-filter" operation attribute filter is 474 not supplied by the client, the printer should behave as if the 475 attribute had been provided with all fields left empty (i.e., return an 476 unfiltered list). 478 It is RECOMMENDED that workstations first use the Get-Printer-Attributes 479 operation in combination with "client-print-support-files-filter" 480 operation attribute filter to get a list of the potential Client Print 481 Support Files that meet the workstation's requirements. The workstation 482 can then choose from the returned list which Client Print Support Files 483 to use and where to get them. If one of the URIs returned is an IPP 484 uri, the workstation can retrieve the Client Print Support Files from an 485 IPP printer via the Get-Client-Print-Support-Files operation (see 486 section 3.3). 488 3.2.2Get-Printer-Attributes Response 490 A Printer MUST return the "client-print-support-files-supported" (1setOf 491 octetString(MAX)) attribute in the Printer Object Attributes group 492 (group 3) when requested by a client. Each returned attribute value 493 must satisfy the criteria specified by the client in the request. 495 For example, if the request contains the following "client-print- 496 support-files-filter" filter: 498 os-type=windows-95< cpu-type=x86-32< document-format=application- 499 postscript< 500 natural-language=en,de< 502 A conforming response is the following two octet String values: 504 uri=ipp://mycompany.com/myprinter< 505 os-type=windows-95< cpu-type=x86-32< 506 document-format=application/postscript< 507 natural-language=en< compression=gzip< 508 install-file-type=printer-driver< 509 install-file-name=CompanyX-ModelY-driver.gz< 511 Expires May 7, 2001 512 policy=manufacturer-recommended< 514 uri=ftp://mycompany.com/root/drivers/win95/CompanyX/ModelY.g 515 z< 516 os-type=windows-95< cpu-type=x86-32< 517 document-format=application/postscript,application/vnd.hp- 518 PCL< 519 natural-language=en,fr< compression=gzip< 520 install-file-type=printer-driver< 521 install-file-name=CompanyX-ModelY-driver.gz< 522 policy=manufacturer-recommended< 524 These examples have been broken onto separate lines for readability in 525 this document. However, there MUST NOT be any line breaks in the actual 526 values. 528 As an other example, if the above request had also contained the "uri- 529 scheme" field in the following "client-print-support-files-filter" 530 filter: 532 uri-scheme=ipp< os-type=windows-95< cpu-type=x86-32< 533 document-format=application-postscript< 534 natural-language=en,de< 536 Then only the first value would have been returned as a single 537 octetString value: 539 uri=ipp://mycompany.com/myprinter< 540 os-type=windows-95< cpu-type=x86-32< 541 document-format=application/postscript< 542 natural-language=en< compression=gzip< 543 install-file-type=printer-driver< 544 install-file-name=CompanyX-ModelY-driver.gz< 545 policy=manufacturer-recommended< 547 3.3 Get-Client-Print-Support-Files 549 This RECOMMENDED operation allows a client to download Client Print 550 Support Files from an IPP Printer. 552 3.3.1Get-Client-Print-Support-Files Request 554 The following sets of attributes are part of the Get-Client-Print- 555 Support-Files request: 557 Group 1: Operation Attributes 559 Natural Language and Character Set: 560 The "attributes-charset" and "attributes-natural-language" 561 attributes as described in [RFC2911], section 3.1.4.1. 563 Expires May 7, 2001 565 Target: 566 The "printer-uri" (uri) operation attribute which is the target 567 for this operation as described in [RFC2911], section 3.1.5. 569 Requesting User Name: 570 The "requesting-user-name" (name(MAX)) attribute SHOULD be 571 supplied by the client as described in [RFC2911], section 8.3. 573 "client-print-support-files-uri" (uri): 574 The client MUST supply this attribute specifying the uri for the 575 desired Client Print Support Files, i.e., the value of the "uri" 576 field returned by the Get-Printer-Attributes in one of the 577 values of the "client-print-support-files-supported" (1setOf 578 octetString(MAX)) Printer attribute. The URI scheme must be 579 ipp. 581 Note: This uri is neither the Printer.s target "printer-uri" 582 nor the URI in the HTTP header. 584 3.3.2Get-Client-Print-Support-Files Response 586 The Printer object returns the following sets of attributes as part of 587 the Get-Client-Print-Support-Files Response: 589 Group 1: Operation Attributes 591 Status Message: 592 In addition to the REQUIRED status code returned in every 593 response, the response OPTIONALLY includes a "status-message" 594 (text(255)) operation attribute as described in [RFC2911], 595 sections 13 and 3.1.6. 597 Natural Language and Character Set: 598 The "attributes-charset" and "attributes-natural-language" 599 attributes as described in [RFC2911], section 3.1.4.2. 601 Group 2: Unsupported Attributes 602 See [RFC2911], section 3.1.7 for details on returning Unsupported 603 Attributes. 605 Group 3: Printer Object Attributes 606 "client-print-support-files-supported" (octetString(MAX)). 607 This attribute identifies the properties of the returned Client 608 Print Support Files. The Printer object MUST return this 609 attribute if the response includes Group 4 (i.e., if a set of 610 Client Print Support Files identified by the supplied "client- 611 support-files-uri" was found). The Printer MUST return the 612 format shown in section 3.1. 614 Group 4: Client Print Support Files 616 Expires May 7, 2001 617 The printer MUST supply the Client Print Support Files that match 618 the client's criteria following the "end-of-attributes" tag. All 619 necessary files must be compressed into a single file. 621 4 Conformance 623 A Printer conforming to this specification: 625 1. MUST support the "client-print-support-files-supported" Printer 626 Description attribute as defined in section 3.1, including all of 627 the REQUIRED fields defined in Table 1 and MAY support the OPTIONAL 628 fields defined in Table 1. 630 2. MUST support the "client-print-support-files-filter" operation 631 attribute in the Get-Printer-Attributes request as defined in 632 section 3.2, including all of the fields defined in Table 2 and 633 ignoring any fields not recognized. 635 3. MUST support at least one of the following URI schemes that 636 identify the support files: ftp, http, or ipp, of which the ipp 637 scheme is the RECOMMENDED one. 639 4. SHOULD support the Get-Client-Print-Support-Files operation as 640 described in section 3.3. If this operation is supported, then one 641 of the supported schemes MUST be ipp. 643 A client conforming to this specification: 645 1. MUST ignore any fields returned by the Printer in the "client- 646 print-support-files-supported" Printer Description attribute that 647 the client does not recognize or support. 649 2. SHOULD be able to retrieve Client Print Support Files by either ftp 650 Get or http Get operations. 652 3. MUST be able to retrieve Client Print Support Files using the Get- 653 Client-Print-Support-Files operation, i.e., support the ipp scheme. 655 5 Encoding of the Operation Layer 657 This extension uses the operation layer encoding described in [RFC2910]. 659 6 Encoding of Transport Layer 661 This specification uses the transport layer encoding described in 662 [RFC2910] with the following extensions. 664 New Error codes: 666 0x0417 client-error-client-print-support-file-not-found 668 New Operation code 670 Expires May 7, 2001 671 0x0021 Get-Client-Print-Support-Files 673 7 IANA Considerations 675 The IANA-registered operating system names that IANA has registered [os- 676 names] are required by this spec. 678 The "cpu-type" is not a current IANA registry. The current IANA machine 679 registration [cpu-names] is really a machine model number, not a CPU 680 type. Also whether a CPU is 16-bit, 32-bit, or 64-bit needs to be 681 indicated in the CPU name which is not currently reflected in the IANA 682 CPU registry. Therefore, the os-type will be a new type of registration 683 with initial values assigned in Table 1 under "os-type", as with other 684 elements in IPP [see RFC2911 section 6 and 11]. 686 All other IANA considerations are already addressed by IPP. 688 8 Internationalization Considerations 690 All text representations introduced by this specification adhere to the 691 internationalization-friendly representation supported by IPP. This 692 work is also accommodates the use of Client Print Support Files of 693 different languages. 695 9 Security Considerations 697 The IPP Model and Semantics document [RFC2911] discusses high-level 698 security requirements (Client Authentication, Server Authentication and 699 Operation Privacy). Client Authentication is the mechanism by which the 700 client proves its identity to the server in a secure manner. Server 701 Authentication is the mechanism by which the server proves its identity 702 to the client in a secure manner. Operation Privacy is defined as a 703 mechanism for protecting operations from eavesdropping. 705 Only operators of a printer should be allowed to set the "printer- 706 driver-supported" attribute and only users of the printer should be 707 allowed to query that information. 709 Printers that support the Get-Client-Print-Support-Files operation are 710 REQUIRED to implement TLS to enable users to reliably authenticate the 711 source of the Client Print Support Files. 713 10 References 715 [cpu-names] 716 IANA Registry of CPU Names at ftp://ftp.isi.edu/in- 717 notes/iana/assignments/XXX. 719 [os-names] 720 IANA Registry of Operating System Names at ftp://ftp.isi.edu/in- 721 notes/iana/assignments/operating-system-names. 723 Expires May 7, 2001 725 [RFC2026] 726 S. Bradner, "The Internet Standards Process -- Revision 3", RFC 727 2026, October 1996. 729 [RFC2518] 730 Goland, Y., et al, "HTTP Extensions for Distributed Authoring -- 731 WEBDAV", RFC 2518, February 1999. 733 [RFC2616] 734 R. Fielding, J. Gettys, J. Mogul, H. Frystyk, L. Masinter, P. 735 Leach, T. Berners-Lee, "Hypertext Transfer Protocol - HTTP/1.1", 736 RFC 2616, June 1999. 738 [RFC2911] 739 R. deBry, T. Hastings, R. Herriot, S. Isaacson, P. Powell, 740 "Internet Printing Protocol/1.0: Model and Semantics", , March 1, 2000. 743 [RFC2910] 744 Herriot, R., Butler, S., Moore, P., Tuner, R., "Internet Printing 745 Protocol/1.1: Encoding and Transport", draft-ietf-ipp-protocol-v11- 746 05.txt, March 1, 2000. 748 11 Author's Addresses 750 Hugo Parra 751 Novell, Inc. 752 1800 South Novell Place 753 Provo, UT 84606 755 Phone: 801-861-3307 756 Fax: 801-861-4025 757 e-mail: hparra@novell.com 759 Ted Tronson 760 Novell, Inc. 761 1800 South Novell Place 762 Provo, UT 84606 764 Phone: 801-861-3338 765 Fax: 801-861-4025 766 e-mail: ttronson@novell.com 768 Thomas N. Hastings 769 Xerox Corp. 770 737 Hawaii St. ESAE 231 771 El Segundo, CA 90245 773 Phone: 310-333-6413 774 Fax: 310-333-5514 775 e-mail: hastings@cp10.es.xerox.com 777 Expires May 7, 2001 779 12 Full Copyright Statement 781 Copyright (C) The Internet Society (2000). All Rights Reserved. 783 This document and translations of it may be copied and furnished to 784 others, and derivative works that comment on or otherwise explain it or 785 assist in its implementation may be prepared, copied, published and 786 distributed, in whole or in part, without restriction of any kind, 787 provided that the above copyright notice and this paragraph are included 788 on all such copies and derivative works. However, this document itself 789 may not be modified in any way, such as by removing the copyright notice 790 or references to the Internet Society or other Internet organizations, 791 except as needed for the purpose of developing Internet standards in 792 which case the procedures for copyrights defined in the Internet 793 Standards process must be followed, or as required to translate it into 794 languages other than English. 796 The limited permissions granted above are perpetual and will not be 797 revoked by the Internet Society or its successors or assigns. 799 This document and the information contained herein is provided on an "AS 800 IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK 801 FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT 802 LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT 803 INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR 804 FITNESS FOR A PARTICULAR PURPOSE. 806 Expires May 7, 2001