draft-ietf-ipp-lpd-ipp-map-02.txt   draft-ietf-ipp-lpd-ipp-map-03.txt 
INTERNET-DRAFT INTERNET-DRAFT Robert Herriot (editor)
Robert Herriot (editor)
Sun Microsystems, Inc. Sun Microsystems, Inc.
Tom Hastings draft-ietf-ipp-lpd-ipp-map-03.txt Tom Hastings
Xerox Corporation Xerox Corporation
Norm Jacobs Norm Jacobs
Sun Microsystems, Inc. Sun Microsystems, Inc.
Jay Martin Jay Martin
Underscore, Inc. Underscore, Inc.
November 20, 1997 December 19, 1997
Mapping between LPD and IPP Protocols Mapping between LPD and IPP Protocols
draft-ietf-ipp-lpd-ipp-map-02.txt
Copyright c The Internet Society (date). All Rights Reserved.
Status of this Memo Status of this Memo
This document is an Internet-Draft. Internet-Drafts are working This document is an Internet-Draft. Internet-Drafts are working
documents of the Internet Engineering Task Force (IETF), its areas, and documents of the Internet Engineering Task Force (IETF), its areas, and
its working groups. Note that other groups may also distribute working its working groups. Note that other groups may also distribute working
documents as Internet-Drafts. documents as Internet-Drafts.
Internet-Drafts are draft documents valid for a maximum of six Internet-Drafts are draft documents valid for a maximum of six months
months and may be updated, replaced, or obsoleted by other and may be updated, replaced, or obsoleted by other documents at any
documents at any time. It is inappropriate to use Internet-Drafts time. It is inappropriate to use Internet-Drafts as reference material
as reference material or to cite them other than as "work in or to cite them other than as "work in progress."
progress."
To learn the current status of any Internet-Draft, please check the To learn the current status of any Internet-Draft, please check the
"1id-abstracts.txt" listing contained in the Internet-Drafts Shadow "1id-abstracts.txt" listing contained in the Internet-Drafts Shadow
Directories on ftp.is.co.za (Africa), nic.nordu.net (Europe), Directories on ftp.is.co.za (Africa), nic.nordu.net (Europe),
munnari.oz.au (Pacific Rim), ds.internic.net (US East Coast), or munnari.oz.au (Pacific Rim), ds.internic.net (US East Coast), or
ftp.isi.edu (US West Coast). ftp.isi.edu (US West Coast).
Copyright Notice
Copyright (C)The Internet Society (1997). All Rights Reserved.
Abstract Abstract
This Internet-Draft specifies the mapping between (1) the commands This Internet-Draft specifies the mapping between (1) the commands and
and operands of the ''Line Printer Daemon (LPD) Protocol'' specified operands of the ''Line Printer Daemon (LPD) Protocol'' specified in RFC
in RFC 1179 and (2) the operations and parameters of the Internet 1179 and (2) the operations and parameters of the Internet Printing
Printing Protocol (IPP). One of the purposes of this document is Protocol (IPP). One of the purposes of this document is to compare the
to compare the functionality of the two protocols. Another purpose functionality of the two protocols. Another purpose is to facilitate
is to facilitate implementation of gateways between LPD and IPP. implementation of gateways between LPD and IPP.
This document is an informational document that is not on the This document is an informational document that is not on the standards
standards track. It is intended to help implementors of gateways track. It is intended to help implementors of gateways between IPP and
between IPP and LPD. It also provides an example, which gives LPD. It also provides an example, which gives additional insight into
additional insight into IPP. IPP.
WARNING: RFC 1179 was not on standards track. While RFC 1179 was WARNING: RFC 1179 was not on standards track. While RFC 1179 was
intended to record existing practice, it fell short in some areas. intended to record existing practice, it fell short in some areas.
However, this specification maps between (1) the actual current However, this specification maps between (1) the actual current practice
practice of RFC 1179 and (2) IPP. This document does not attempt of RFC 1179 and (2) IPP. This document does not attempt to map the
to map the numerous divergent extensions to the LPD protocol that
have been made by many implementers. Jacobs, Martin Expires June 19, 1998
Jacobs, Martin Expires May 20, 1998
numerous divergent extensions to the LPD protocol that have been made by
many implementers.
Jacobs, Martin Expires June 19, 1998
TABLE OF CONTENTS TABLE OF CONTENTS
1. Introduction........................................................3 1. Introduction........................................................3
2. Terminology.........................................................3 2. Terminology.........................................................3
3. Mapping from LPD Commands to IPP Operations.........................4 3. Mapping from LPD Commands to IPP Operations.........................4
3.1 Print any waiting jobs ...........................................4 3.1 Print any waiting jobs ...........................................4
3.2 Receive a printer job ............................................4 3.2 Receive a printer job ............................................4
3.2.1 Abort job ....................................................5 3.2.1 Abort job ....................................................5
3.2.2 Receive control file .........................................5 3.2.2 Receive control file .........................................5
3.2.3 Receive data file ............................................5 3.2.3 Receive data file ............................................5
skipping to change at page 2, line 31 skipping to change at page 3, line 32
4.3 Required Document Functions .....................................10 4.3 Required Document Functions .....................................10
4.4 Recommended Document Functions ..................................11 4.4 Recommended Document Functions ..................................11
5. Mapping from IPP operations to LPD commands........................11 5. Mapping from IPP operations to LPD commands........................11
5.1 Print-Job .......................................................11 5.1 Print-Job .......................................................11
5.2 Print-URI .......................................................12 5.2 Print-URI .......................................................12
5.3 Validate-Job ....................................................12 5.3 Validate-Job ....................................................12
5.4 Create-Job ......................................................12 5.4 Create-Job ......................................................12
5.5 Send-Document ...................................................13 5.5 Send-Document ...................................................13
5.6 Send-URI ........................................................13 5.6 Send-URI ........................................................13
5.7 Cancel-Job ......................................................13 5.7 Cancel-Job ......................................................13
5.8 Get-Attributes ..................................................13 5.8 Get-Printer-Attributes ..........................................13
5.9 Get-Jobs ........................................................14 5.9 Get-Job-Attributes ..............................................13
5.10 Get-Jobs .......................................................14
6. Mapping of IPP Parameters to LPD Control File Lines................14 6. Mapping of IPP Parameters to LPD Control File Lines................14
6.1 Required Job Functions ..........................................14 6.1 Required Job Functions ..........................................15
6.2 Optional Job Functions ..........................................15 6.2 Optional Job Functions ..........................................15
6.3 Required Document Functions .....................................15 6.3 Required Document Functions .....................................15
7. Copyright Notice...................................................16 7. Security...........................................................16
8. References.........................................................16 8. References.........................................................16
9. Author's Addresses.................................................17 9. Author's Addresses.................................................16
10. Appendix A: ABNF Syntax for response of Send-queue-state (short)..17 10. Appendix A: ABNF Syntax for response of Send-queue-state (short)..17
11. Appendix B: ABNF Syntax for response of Send-queue-state (long)...17 11. Appendix B: ABNF Syntax for response of Send-queue-state (long)...17
12. Appendix C: Unsupported LPD functions.............................18 12. Appendix C: Unsupported LPD functions.............................18
13. Appendix D: Full Copyright Statement..............................18
Jacobs, Martin Expires May 20, 1998 Jacobs, Martin Expires June 19, 1998
Mapping between the LPD and IPP Protocols Mapping between the LPD and IPP Protocols
1. Introduction 1. Introduction
The reader of this specification is expected to be familiar with the IPP The reader of this specification is expected to be familiar with the IPP
Model and Semantics specification [ipp-mod], the IPP Protocol Model and Semantics specification [ipp-mod], the IPP Protocol
specification [ipp-pro], and the Line Printer Daemon (LPD) protocol specification [ipp-pro], and the Line Printer Daemon (LPD) protocol
specification [rfc1179] as described in RFC 1179. specification [rfc1179] as described in RFC 1179.
RFC 1179 was written in 1990 in an attempt to document existing LPD RFC 1179 was written in 1990 in an attempt to document existing LPD
skipping to change at page 4, line 4 skipping to change at page 5, line 4
IPP. IPP.
2. Terminology 2. Terminology
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in RFC 2119 [abnf]. document are to be interpreted as described in RFC 2119 [abnf].
RFC 1179 uses the word "command" in two contexts: for over-the-wire RFC 1179 uses the word "command" in two contexts: for over-the-wire
operations and for command file functions. This document SHALL use the operations and for command file functions. This document SHALL use the
Jacobs, Martin Expires May 20, 1998 Jacobs, Martin Expires June 19, 1998
word "command" for the former and the phrase "functions" for the latter. word "command" for the former and the phrase "functions" for the latter.
The syntax of the LPD commands is given using ABNF [abnf]. The syntax of the LPD commands is given using ABNF [abnf].
The following tokens are used in order to make the syntax more readable: The following tokens are used in order to make the syntax more readable:
LF stands for %x0A (linefeed) LF stands for %x0A (linefeed)
SP stands for %x20. (space) SP stands for %x20. (space)
DIGIT stands for %x30-39 ("0" to "9") DIGIT stands for %x30-39 ("0" to "9")
skipping to change at page 4, line 28 skipping to change at page 5, line 28
Each of the following sub-sections appear as sub-sections of section 5 Each of the following sub-sections appear as sub-sections of section 5
of RFC 1179. of RFC 1179.
The following table summarizes the IPP operation that the mapper uses The following table summarizes the IPP operation that the mapper uses
when it receives an LPD command. Each section below gives more detail. when it receives an LPD command. Each section below gives more detail.
LPD command IPP operation LPD command IPP operation
print-any-waiting-jobs ignore print-any-waiting-jobs ignore
receive-a-printer-job Print-Job or Create-Job/Send-Document receive-a-printer-job Print-Job or Create-Job/Send-Document
send queue state (short Get-Attributes (printer) and Get-Jobs send queue state (short Get-Printer-Attributesand Get-Jobs
or long) or long)
remove-jobs Cancel-Job remove-jobs Cancel-Job
3.1 Print any waiting jobs 3.1 Print any waiting jobs
Command syntax: Command syntax:
print-waiting-jobs = %x01 printer-name LF print-waiting-jobs = %x01 printer-name LF
This command causes the LPD daemon check its queue and print any waiting This command causes the LPD daemon check its queue and print any waiting
skipping to change at page 5, line 5 skipping to change at page 6, line 5
The control file and data files mentioned in the following paragraphs The control file and data files mentioned in the following paragraphs
are received via LPD sub-commands that follow this command. Their are received via LPD sub-commands that follow this command. Their
mapping to IPP commands and attributes is described later in this mapping to IPP commands and attributes is described later in this
section. section.
The mapper maps the 'Receive a printer job' command to either: The mapper maps the 'Receive a printer job' command to either:
. the Print-Job operation which includes a single data file or . the Print-Job operation which includes a single data file or
Jacobs, Martin Expires May 20, 1998 Jacobs, Martin Expires June 19, 1998
. the Create-Job operation followed by one Send-Document . the Create-Job operation followed by one Send-Document
operation for each data file. operation for each data file.
If the IPP printer supports both Create-Job and Send-Document, and if a If the IPP printer supports both Create-Job and Send-Document, and if a
job consists of: job consists of:
. a single data file, the mapper SHOULD use the Print-Job . a single data file, the mapper SHOULD use the Print-Job
operation, but MAY use the Create-Job and Send-Document operation, but MAY use the Create-Job and Send-Document
operations. operations.
. more than one data file, the mapper SHALL use Create-Job . more than one data file, the mapper SHALL use Create-Job
skipping to change at page 6, line 4 skipping to change at page 7, line 4
is in the process of transmitting. is in the process of transmitting.
If the mapper is in the process of sending a Print-Job or Create-Job If the mapper is in the process of sending a Print-Job or Create-Job
operation, it terminates the job either by closing the connection, or operation, it terminates the job either by closing the connection, or
performing the Cancel-Job operation with the job-uri that it received performing the Cancel-Job operation with the job-uri that it received
from the Print-Job or Create-Job operation. from the Print-Job or Create-Job operation.
NOTE: This sub-command is implied if at any time the connection between NOTE: This sub-command is implied if at any time the connection between
the LPD client and server is terminated before an entire print job has the LPD client and server is terminated before an entire print job has
been transferred via an LPD Receive-a-printer-job request. been transferred via an LPD Receive-a-printer-job request.
Jacobs, Martin Expires May 20, 1998 Jacobs, Martin Expires June 19, 1998
3.2.2 Receive control file 3.2.2 Receive control file
Sub-command syntax: Sub-command syntax:
receive-control-file = %x2 number-of-bytes SP name-of-control-file LF receive-control-file = %x2 number-of-bytes SP name-of-control-file LF
number-of-bytes = 1*DIGIT number-of-bytes = 1*DIGIT
name-of-control-file = "cfA" job-number client-host-name name-of-control-file = "cfA" job-number client-host-name
; e.g. "cfA123woden" ; e.g. "cfA123woden"
job-number = 3DIGIT job-number = 3DIGIT
skipping to change at page 7, line 4 skipping to change at page 8, line 4
3.3 Send queue state (short) 3.3 Send queue state (short)
Command syntax: Command syntax:
send-queue-short = %x03 printer-name *(SP(user-name / job-number)) LF send-queue-short = %x03 printer-name *(SP(user-name / job-number)) LF
The mapper's response to this command includes information about the The mapper's response to this command includes information about the
printer and its jobs. RFC 1179 specifies neither the information nor the printer and its jobs. RFC 1179 specifies neither the information nor the
format of its response. This document requires the mapper to follow format of its response. This document requires the mapper to follow
existing practice as specified in this document. existing practice as specified in this document.
Jacobs, Martin Expires May 20, 1998 Jacobs, Martin Expires June 19, 1998
The mapper SHALL produce a response in the following format which The mapper SHALL produce a response in the following format which
consists of a printer-status line optionally followed by a heading line, consists of a printer-status line optionally followed by a heading line,
and a list of jobs. This format is defined by examples below. Appendix A and a list of jobs. This format is defined by examples below. Appendix A
contains the ABNF syntax. contains the ABNF syntax.
For an printer with no jobs, the response starts in column 1 and is: For an printer with no jobs, the response starts in column 1 and is:
no entries no entries
skipping to change at page 8, line 4 skipping to change at page 9, line 4
separated list of the document- separated list of the document-
names and then truncate this list names and then truncate this list
to the first 24 characters to the first 24 characters
total- job-k- the mapper shall multiple the total- job-k- the mapper shall multiple the
size octets*copies*1024 value of job-k-octets by 1024 and size octets*copies*1024 value of job-k-octets by 1024 and
by the value of the "copies" by the value of the "copies"
attribute. attribute.
A mapper SHOULD use the job attribute number-of-intervening-jobs rather A mapper SHOULD use the job attribute number-of-intervening-jobs rather
than the job's position in a list of jobs to determine `rank' because a than the job's position in a list of jobs to determine `rank' because a
Jacobs, Martin Expires May 20, 1998 Jacobs, Martin Expires June 19, 1998
Printer may omit jobs that it wants to keep secret. If a printer doesn't Printer may omit jobs that it wants to keep secret. If a printer doesn't
support the job attribute number-of-intervening-jobs, a mapper MAY use support the job attribute number-of-intervening-jobs, a mapper MAY use
the job's position. the job's position.
ISSUE: the value of job-originating-user-name is still somewhat murky in Note: a Printer may set the value of job-originating-user-name to the
IPP especially where the IPP client is a proxy for some user coming from authenticated user or to the value of "requesting-user-name", depending
elsewhere.In order to obtain the information specified above, The LPD- on the implementation and configuration. For a gateway, the
to-IPP mapper SHALL use the Get-Attributes operation of the printer to authenticated user is the user-id of the gateway, but the "requesting-
get printer-status and SHOULD use the Get-Jobs operation to get user-name" may contain the name of the user who is the gateway's client.
information about all of the jobs. If the LPD command contains job-
numbers or user-names, the mapper MAY handle the filtering of the In order to obtain the information specified above, The LPD-to-IPP
response. If the LPD command contains job-numbers but no user-names, the mapper SHALL use the Get-Printer-Attributes operation to get printer-
mapper MAY use Get-Attributes on each converted job-number rather than status and SHOULD use the Get-Jobs operation to get information about
Get-Jobs. If the LPD command contains a single user-name but no job- all of the jobs. If the LPD command contains job-numbers or user-names,
numbers, the mapper MAY use Get-Attributes with the my-jobs option if the mapper MAY handle the filtering of the response. If the LPD command
the server supports this option and if the server allows the client to contains job-numbers but no user-names, the mapper MAY use Get-Job-
be a proxy for the LPD user. Attributes on each converted job-number rather than Get-Jobs. If the LPD
command contains a single user-name but no job-numbers, the mapper MAY
use Get-Jobs with the my-jobs option if the server supports this option
and if the server allows the client to be a proxy for the LPD user.
NOTE: This specification does not define how the mapper maps the LPD NOTE: This specification does not define how the mapper maps the LPD
Printer-name operand to the IPP "printer-uri" parameter. Printer-name operand to the IPP "printer-uri" parameter.
3.4 Send queue state (long) 3.4 Send queue state (long)
Command syntax: Command syntax:
send-queue-long = %x04 printer-name *(SP(user-name / job-number)) LF send-queue-long = %x04 printer-name *(SP(user-name / job-number)) LF
skipping to change at page 8, line 56 skipping to change at page 10, line 5
no entries no entries
For a printer with jobs, an example of the response is: For a printer with jobs, an example of the response is:
killtree is ready and printing killtree is ready and printing
fred: active [job 123 tiger] fred: active [job 123 tiger]
2 copies of stuff 602 bytes 2 copies of stuff 602 bytes
Jacobs, Martin Expires June 19, 1998
smith: 1st [job 124 snail] smith: 1st [job 124 snail]
Jacobs, Martin Expires May 20, 1998
2 copies of resume 7088 bytes 2 copies of resume 7088 bytes
2 copies of foo 10200 bytes 2 copies of foo 10200 bytes
fred: 2nd [job 125 tiger] fred: 2nd [job 125 tiger]
more 99 bytes more 99 bytes
The column numbers of above headings and job entries are: The column numbers of above headings and job entries are:
| | | | | |
01 09 41 01 09 41
skipping to change at page 10, line 4 skipping to change at page 11, line 4
jobs command. The special user-name 'root' indicates a privileged user jobs command. The special user-name 'root' indicates a privileged user
who can remove jobs whose user-name differs from the agent.. who can remove jobs whose user-name differs from the agent..
The mapper SHALL issue one Cancel-Job operation for each job referenced The mapper SHALL issue one Cancel-Job operation for each job referenced
by the remove-jobs command. Each job-number in the remove-jobs command by the remove-jobs command. Each job-number in the remove-jobs command
references a single job. Each user-name in the remove-jobs command references a single job. Each user-name in the remove-jobs command
implicitly references all jobs owned by the specified user. The active implicitly references all jobs owned by the specified user. The active
job is implicitly referenced when the remove-jobs command contains job is implicitly referenced when the remove-jobs command contains
neither job-numbers nor user-names. The mapper MAY use Get-Jobs to neither job-numbers nor user-names. The mapper MAY use Get-Jobs to
determine the job-uri of implicitly referenced jobs. determine the job-uri of implicitly referenced jobs.
Jacobs, Martin Expires June 19, 1998
Jacobs, Martin Expires May 20, 1998
The mapper SHALL not use the agent name of `root' when end-users cancel The mapper SHALL not use the agent name of `root' when end-users cancel
their own jobs. Violation of this rule creates a potential security their own jobs. Violation of this rule creates a potential security
violation, and it may cause the printer to issue a notification that violation, and it may cause the printer to issue a notification that
misleads a user into thinking that some other person canceled the job. misleads a user into thinking that some other person canceled the job.
If the agent of a remove-jobs command for a job J is the same as the If the agent of a remove-jobs command for a job J is the same as the
user name specified with the `P' function in the control file for job J, user name specified with the `P' function in the control file for job J,
then the mapper SHALL ensure that the caller of the Cancel-Job command then the mapper SHALL ensure that the caller of the Cancel-Job command
for job J is the same as job-originating-user for job J. for job J is the same as job-originating-user for job J.
skipping to change at page 11, line 5 skipping to change at page 12, line 5
. required with a job, . required with a job,
. optional with a job . optional with a job
. required with each document. . required with each document.
In the tables below, each LPD value is given a name, such as `h'. If an In the tables below, each LPD value is given a name, such as `h'. If an
IPP value uses the LPD value, then the IPP value column contains the LPD IPP value uses the LPD value, then the IPP value column contains the LPD
name, such as `h' to denote this. Otherwise, the IPP value column name, such as `h' to denote this. Otherwise, the IPP value column
specifies the literal value. specifies the literal value.
Jacobs, Martin Expires May 20, 1998 Jacobs, Martin Expires June 19, 1998
4.1 Required Job Functions 4.1 Required Job Functions
The following LPD functions MUST be in a received LPD job. The mapper The following LPD functions MUST be in a received LPD job. The mapper
SHALL receive each of the following LPD functions and SHALL include the SHALL receive each of the following LPD functions and SHALL include the
information as a parameter with each IPP job. The functions SHOULD be in information as a parameter with each IPP job. The functions SHOULD be in
the order `H', `P' and they SHOULD be the first two functions in the the order `H', `P' and they SHOULD be the first two functions in the
control file, but they MAY be anywhere in the control file and in any control file, but they MAY be anywhere in the control file and in any
order. order.
LPD function IPP LPD function IPP
name value description name value name value description name value
H h Originating Host h (in security layer) H h Originating Host h (in security layer)
P u User identification u (in security layer P u User identification requesting- u (and in security
and operation user-name layer)
attribute) none ipp- `true'
none best-effort `true' attribute-
fidelity
A mapper MAY sends its own host rather than the client's host, and a A mapper MAY sends its own host rather than the client's host, and a
mapper MAY send its own user-name as user identification rather than the mapper MAY send its own user-name as user identification rather than the
client user. But in any case, the values sent SHALL be compatible with client user. But in any case, the values sent SHALL be compatible with
the Cancel-Job operation. The IPP operation MAY have no way to specify the Cancel-Job operation. The IPP operation MAY have no way to specify
an originating host-name. an originating host-name.
ISSUE: what do we do about job-orginating-host? The mapper SHALL include ipp-attribute-fidelity =true so that it doesn't
have to determine which attributes a printer supports.
The mapper SHALL include best-effort=true so that it doesn't have to
determine which attributes a printer supports.
4.2 Optional Job Functions 4.2 Optional Job Functions
The following LPD functions MAY be in a received job. These function The following LPD functions MAY be in a received job. These function
SHOULD follow the required job functions and precede the document SHOULD follow the required job functions and precede the document
functions, but they MAY be anywhere in the control file. functions, but they MAY be anywhere in the control file.
If the mapper receives such an LPD function, the mapper SHALL include If the mapper receives such an LPD function, the mapper SHALL include
the corresponding IPP attribute with the value converted as specified in the corresponding IPP attribute with the value converted as specified in
the table below. If the mapper does not receive such an LPD attribute, the table below. If the mapper does not receive such an LPD attribute,
skipping to change at page 12, line 4 skipping to change at page 12, line 59
name value description name value name value description name value
J j Job name for job-name j J j Job name for job-name j
banner page banner page
L l Print banner page job-sheets `standard' if `L' is L l Print banner page job-sheets `standard' if `L' is
present present
`none' if `L' is present `none' if `L' is present
M m Mail When Printed IPP has no notification M m Mail When Printed IPP has no notification
mechanism. To support mechanism. To support
this LPD feature, the this LPD feature, the
Jacobs, Martin Expires May 20, 1998
gateway must poll gateway must poll
Jacobs, Martin Expires June 19, 1998
. .
4.3 Required Document Functions 4.3 Required Document Functions
The mapper SHALL receive one set of the required document functions with The mapper SHALL receive one set of the required document functions with
each copy of a document, and SHALL include the converted information as each copy of a document, and SHALL include the converted information as
parameters with each IPP document parameters with each IPP document
If the control file contains required and recommended document If the control file contains required and recommended document
functions, the required functions SHOULD precede the recommended ones functions, the required functions SHOULD precede the recommended ones
skipping to change at page 13, line 5 skipping to change at page 14, line 5
reject the job because the document contains a format that the mapper reject the job because the document contains a format that the mapper
does not support. does not support.
The mapper determines the number of copies by counting the number of The mapper determines the number of copies by counting the number of
occurrences of each `fff' file with one of the lower-case functions occurrences of each `fff' file with one of the lower-case functions
above. For example, if `f dfA123woden' occurs 4 times, then copies has a above. For example, if `f dfA123woden' occurs 4 times, then copies has a
value of 4. Although the LPD protocol allows the value of copies to be value of 4. Although the LPD protocol allows the value of copies to be
different for each document, the commands and the receiving print different for each document, the commands and the receiving print
systems don't support this. systems don't support this.
Jacobs, Martin Expires May 20, 1998 Jacobs, Martin Expires June 19, 1998
4.4 Recommended Document Functions 4.4 Recommended Document Functions
The mapper SHOULD receive one set of the recommended document functions The mapper SHOULD receive one set of the recommended document functions
with each document, and SHOULD include the converted information as with each document, and SHOULD include the converted information as
parameters with each IPP document. The functions SHOULD be received in parameters with each IPP document. The functions SHOULD be received in
the order `U' and `N', but they MAY arrive in any order. the order `U' and `N', but they MAY arrive in any order.
LPD function IPP LPD function IPP
name value description name value name value description name value
skipping to change at page 13, line 37 skipping to change at page 14, line 37
detail. Each of the following sub-sections appear as sub-sections of detail. Each of the following sub-sections appear as sub-sections of
section 3 in the document "Internet Printing Protocol/1.0: Model and section 3 in the document "Internet Printing Protocol/1.0: Model and
Semantics" [ipp-mod]. Semantics" [ipp-mod].
IPP operation LPD command IPP operation LPD command
Print-Job or Print-URI or receive-a-printer-job Print-Job or Print-URI or receive-a-printer-job
Create-Job/Send-Document/Send-URI and then print-any-waiting-jobs Create-Job/Send-Document/Send-URI and then print-any-waiting-jobs
Validate-Job implemented by the mapper Validate-Job implemented by the mapper
Cancel-Job remove-jobs Cancel-Job remove-jobs
Get-Attributes (printer or job) send queue state (short or long) Get-Printer-Attributes, Get-Job- send queue state (short or long)
or Get-Jobs Attributes or Get-Jobs
5.1 Print-Job 5.1 Print-Job
The mapper SHALL send the following commands in the order listed below: The mapper SHALL send the following commands in the order listed below:
. receive-a-printer-job command . receive-a-printer-job command
. both receive-control-file sub-command and receive-data-file . both receive-control-file sub-command and receive-data-file
sub-command sub-command
(unspecified order, see Note below) (unspecified order, see Note below)
. print-any-waiting-jobs command, . print-any-waiting-jobs command,
except that if the mapper is sending a sequence of receive-a- except that if the mapper is sending a sequence of receive-a-
printer-job commands, it MAY omit sending print-any-waiting- printer-job commands, it MAY omit sending print-any-waiting-
jobs after any receive-a printer-job command that is neither jobs after any receive-a printer-job command that is neither
the first nor last command in this sequence the first nor last command in this sequence
Note: it is recommended that the order of the receive-control-file sub- Note: it is recommended that the order of the receive-control-file sub-
command and the receive-data-file sub-command be configurable because command and the receive-data-file sub-command be configurable because
either order fails for some print systems. Some print systems assume either order fails for some print systems. Some print systems assume
that the control file follows all data files and start printing that the control file follows all data files and start printing
Jacobs, Martin Expires May 20, 1998
immediately on receipt of the control file. When such a print system immediately on receipt of the control file. When such a print system
tries to print a data file that has not arrived, it produces an error. tries to print a data file that has not arrived, it produces an error.
Jacobs, Martin Expires June 19, 1998
Other print systems assume that the control file arrives before the data Other print systems assume that the control file arrives before the data
files and start printing when the first data file arrives. Such a system files and start printing when the first data file arrives. Such a system
ignores the control information, such as banner page or copies. ignores the control information, such as banner page or copies.
NOTE: This specification does not define the mapping between the IPP NOTE: This specification does not define the mapping between the IPP
printer-uri and the LPD printer-name. printer-uri and the LPD printer-name.
The mapper SHALL send the IPP parameters and attributes received from The mapper SHALL send the IPP parameters and attributes received from
the operation to the LPD printer by using the LPD receive-control-file the operation to the LPD printer by using the LPD receive-control-file
sub-command. The mapper SHALL create the LPD job-number for use in the sub-command. The mapper SHALL create the LPD job-number for use in the
skipping to change at page 15, line 5 skipping to change at page 15, line 53
The mapper SHALL handle this operation in the same way as a Print-Job The mapper SHALL handle this operation in the same way as a Print-Job
operation except that it SHALL obtain data referenced by the "document- operation except that it SHALL obtain data referenced by the "document-
uri" parameter and SHALL then treat that data as if it had been received uri" parameter and SHALL then treat that data as if it had been received
via a Print-Job operation. via a Print-Job operation.
5.3 Validate-Job 5.3 Validate-Job
The mapper SHALL perform this operation directly. Because LPD supports The mapper SHALL perform this operation directly. Because LPD supports
very few attributes, this operation doesn't have much to check. very few attributes, this operation doesn't have much to check.
Jacobs, Martin Expires May 20, 1998
5.4 Create-Job 5.4 Create-Job
The mapper SHALL handle this operation like Print-Job, except The mapper SHALL handle this operation like Print-Job, except
Jacobs, Martin Expires June 19, 1998
. the mapper SHALL send the control file after it has received . the mapper SHALL send the control file after it has received
the last Send-Document or Send-URI operation because the the last Send-Document or Send-URI operation because the
control file contains all the document-name and document- control file contains all the document-name and document-
format values specified in the Send-Document and Send-URI format values specified in the Send-Document and Send-URI
operations. operations.
. the mapper SHALL perform one receive-data-file sub-command for . the mapper SHALL perform one receive-data-file sub-command for
each Send-Document or Send-URI operation received and in the each Send-Document or Send-URI operation received and in the
same order received. same order received.
. the mapper SHALL send the control file either before all data . the mapper SHALL send the control file either before all data
files or after all data files. files or after all data files.
skipping to change at page 15, line 50 skipping to change at page 16, line 45
parameters: parameters:
. the printer is the one to which the job was submitted, that is . the printer is the one to which the job was submitted, that is
the IPP printer-uri is mapped to an LPD printer-name by the the IPP printer-uri is mapped to an LPD printer-name by the
same mechanism as for all commands. , same mechanism as for all commands. ,
. the agent is the authenticated user-name of the IPP client, . the agent is the authenticated user-name of the IPP client,
. the job-number is the job-id returned by the Print-Job . the job-number is the job-id returned by the Print-Job
command, that is, the LPD job-number has the same value as the command, that is, the LPD job-number has the same value as the
IPP job-id for likely implementations. . IPP job-id for likely implementations. .
5.8 Get-Attributes 5.8 Get-Printer-Attributes
LPD severely limits the set of attributes that the mapper is able to LPD severely limits the set of attributes that the mapper is able to
return in its response for this operation. return in its response for this operation. The mapper SHALL support, at
most, the following printer attributes:
When the mapper receives a Get-Attributes operation for a printer
object, it SHALL support, at most, the following printer attributes:
Jacobs, Martin Expires May 20, 1998
. printer-state . printer-state
. printer-state-reasons . printer-state-reasons
When the mapper receives a Get-Attributes operation for a job object, it The mapper uses either the long or short form of the "send queue state"
SHALL support, at most, the following job attributes: command.
Jacobs, Martin Expires June 19, 1998
The mapper SHALL assume that the LPD response that it receives has the
format and information specified in section 3.3 "Send queue state
(short)" and section 3.4 "Send queue state (long)". The mapper SHALL
determine the value of each requested attribute by using the inverse of
the mapping specified in the two aforementioned sections.
Note: the mapper can determine the response from the printer-status line
without examining the rest of the LPD response.
5.9 Get-Job-Attributes
LPD severely limits the set of attributes that the mapper is able to
return in its response for this operation. The mapper SHALL support, at
most, the following job attributes:
. number-of-intervening-jobs . number-of-intervening-jobs
. job-originating-user-name . job-originating-user-name
. job-id . job-id
. document-name . document-name
. job-k-octets . job-k-octets
. copies . copies
The mapper uses either the long or short form of the "send queue state" The mapper uses either the long or short form of the "send queue state"
command. If it receives a request for the "job-k-octets" or "copies" command. If it receives a request for the "job-k-octets" or "copies"
skipping to change at page 16, line 35 skipping to change at page 17, line 45
by the number of "copies" which is on the long form only. Its value can by the number of "copies" which is on the long form only. Its value can
also be determined by adding the "size" field values for each document also be determined by adding the "size" field values for each document
in the job in the long form. in the job in the long form.
The mapper SHALL assume that the LPD response that it receives has the The mapper SHALL assume that the LPD response that it receives has the
format and information specified in section 3.3 "Send queue state format and information specified in section 3.3 "Send queue state
(short)" and section 3.4 "Send queue state (long)". The mapper SHALL (short)" and section 3.4 "Send queue state (long)". The mapper SHALL
determine the value of each requested attribute by using the inverse of determine the value of each requested attribute by using the inverse of
the mapping specified in the two aforementioned sections. the mapping specified in the two aforementioned sections.
Note: when the mapper receives the Get-Attributes operation for a Note: when the mapper uses the LPD short form, it can determine the
printer, it can determine the response from the printer-status line response from the single LPD line that pertains to the job specified by
without examining the rest of the LPD response. When the mapper receives the Get-Job-Attributes operation.
the Get-Attributes operation for a job and uses the LPD short form, it
can determine the response from the single line that pertains to the job
specified by the Get-Attributes operation.
NOTE: for Get-Attributes of a job, the mapper can use its correspondence NOTE: the mapper can use its correspondence between the IPP job-id, job-
between the IPP job-id, job-uri and the LPD job-number. uri and the LPD job-number.
5.9 Get-Jobs 5.10 Get-Jobs
The mapper SHALL perform this operation in the same way as Get- The mapper SHALL perform this operation in the same way as Get-Job-
Attributes of a printer except that the mapper converts the job-lines, Attributes except that the mapper converts all the LPD job-lines, and
and the IPP response contains one job object for each job in the LPD the IPP response contains one job object for each job-line in the LPD
response.. response..
Jacobs, Martin Expires June 19, 1998
6. Mapping of IPP Parameters to LPD Control File Lines 6. Mapping of IPP Parameters to LPD Control File Lines
This section describes the mapping from IPP operation input parameters This section describes the mapping from IPP operation input parameters
to LPD control file lines (called `functions'). The mapper receives the to LPD control file lines (called `functions'). The mapper receives the
Jacobs, Martin Expires May 20, 1998
IPP operation input parameters via the IPP operation. Each of the IPP IPP operation input parameters via the IPP operation. Each of the IPP
operation input parameters appear as sub-sections of section 3 and 4.2 operation input parameters appear as sub-sections of section 3 and 4.2
in the IPP model document [ipp-mod]. in the IPP model document [ipp-mod].
In the context of LPD control file lines, the text operands have a In the context of LPD control file lines, the text operands have a
maximum length of 31 or 99 while IPP input parameters have a maximum of maximum length of 31 or 99 while IPP input parameters have a maximum of
255 characters. Therefore, there may be some data loss if the IPP 255 characters. Therefore, there may be some data loss if the IPP
parameters exceed the maximum length of the LPD equivalent operands. parameters exceed the maximum length of the LPD equivalent operands.
The mapper converts each supported IPP parameter to its corresponding The mapper converts each supported IPP parameter to its corresponding
skipping to change at page 17, line 39 skipping to change at page 18, line 44
The mapper SHALL include the following LPD functions with each job, and The mapper SHALL include the following LPD functions with each job, and
they SHALL have the specified value. They SHALL be the first functions they SHALL have the specified value. They SHALL be the first functions
in the control file and they SHALL be in the order "H" and then "P". in the control file and they SHALL be in the order "H" and then "P".
IPP LPD function IPP LPD function
name value name value description name value name value description
(perhaps in security h H gateway host Originating Host (perhaps in security h H gateway host Originating Host
layer) layer)
(in security layer) u P u User identification requesting-user-name u P u User identification
and in the security
layer
A mapper SHALL sends its own host rather than the client's host, because A mapper SHALL sends its own host rather than the client's host, because
some LPD systems require that it be the same as the host from which the some LPD systems require that it be the same as the host from which the
remove-jobs command comes. A mapper MAY send its own user name as user remove-jobs command comes. A mapper MAY send its own user name as user
identification rather than the client user. But in any case, the values identification rather than the client user. But in any case, the values
sent SHALL be compatible with the LPD remove-jobs operation. sent SHALL be compatible with the LPD remove-jobs operation.
6.2 Optional Job Functions 6.2 Optional Job Functions
The mapper MAY include the following LPD functions with each job. They The mapper MAY include the following LPD functions with each job. They
SHALL have the specified value if they are sent. These functions, if SHALL have the specified value if they are sent. These functions, if
Jacobs, Martin Expires June 19, 1998
present, SHALL follow the require job functions, and they SHALL precede present, SHALL follow the require job functions, and they SHALL precede
the required document functions. the required document functions.
IPP attribute LPD function IPP attribute LPD function
Jacobs, Martin Expires May 20, 1998
name value nam value description name value nam value description
e e
job-name j J j Job name for banner job-name j J j Job name for banner
page page
job-sheets `standard' L u Print banner page job-sheets `standard' L u Print banner page
job-sheets `none' omit `L' function job-sheets `none' omit `L' function
Note: `L' has special meaning when it is omitted. If `J' is omitted, Note: `L' has special meaning when it is omitted. If `J' is omitted,
some undefined behavior occurs with respect to the banner page. some undefined behavior occurs with respect to the banner page.
skipping to change at page 18, line 43 skipping to change at page 19, line 47
none U fff Unlink data file none U fff Unlink data file
document- n N n Name of source file document- n N n Name of source file
name name
Note: the value `fff' of the `f' and `U' functions is the name of the Note: the value `fff' of the `f' and `U' functions is the name of the
data file as transferred, e.g. "dfA123woden". data file as transferred, e.g. "dfA123woden".
Note: the mapper SHALL not send the `o' function Note: the mapper SHALL not send the `o' function
ISSUE: should we register DVI, troff or ditroff? ISSUE: should we register DVI, troff or ditroff?
If the mapper receives no "best-effort" or it has a value of false, then If the mapper receives no "ipp-attribute-fidelitybest-effort" or it has
the mapper SHALL reject the job if it specifies attributes or attribute a value of false, then the mapper SHALL reject the job if it specifies
values that are not among those supported in the above tables. attributes or attribute values that are not among those supported in the
above tables.
Below is an example of the minimal control file for a job with three Below is an example of the minimal control file for a job with three
copies of two files `foo' and `bar': copies of two files `foo' and `bar':
H tiger H tiger
P jones P jones
f dfA123woden f dfA123woden
Jacobs, Martin Expires June 19, 1998
f dfA123woden f dfA123woden
f dfA123woden f dfA123woden
U dfA123woden U dfA123woden
N foo N foo
f dfB123woden f dfB123woden
Jacobs, Martin Expires May 20, 1998
f dfB123woden f dfB123woden
f dfB123woden f dfB123woden
U dfB123woden U dfB123woden
N bar N bar
7. Copyright Notice 7. Security
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 There are no security issues beyond those covered in the IPP protocol
IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK document [ipp-pro], the IPP model document [ipp-mod] and the LPD
FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT document [rfc1179].
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.
8. References 8. References
[ipp-mod] R. deBry, T. Hastings, R. Herriot, S. Isaacson, P. Powell, [ipp-mod] R. deBry, T. Hastings, R. Herriot, S. Isaacson, P. Powell,
"Internet Printing Protocol/1.0: Model and Semantics", <draft- "Internet Printing Protocol/1.0: Model and Semantics", <draft-
ietf-ipp-model-07.txt>, November 1997. ietf-ipp-model-07.txt>, November 1997.
[ipp-pro] R. Herriot, S. Butler, P. Moore, R. Turner, "Internet [ipp-pro] R. Herriot, S. Butler, P. Moore, R. Turner, "Internet
Printing Protocol/1.0: Protocol specification", <draft-ietf-ipp- Printing Protocol/1.0: Protocol specification", <draft-ietf-ipp-
protocol-03.txt>, November 1997. protocol-03.txt>, November 1997.
skipping to change at page 20, line 5 skipping to change at page 20, line 43
[rfc1759] Smith, R., Wright, F., Hastings, T., Zilles, S., and [rfc1759] Smith, R., Wright, F., Hastings, T., Zilles, S., and
Gyllenskog, J., "Printer MIB", RFC 1759, March 1995. Gyllenskog, J., "Printer MIB", RFC 1759, March 1995.
[rfc2119] S. Bradner, "Key words for use in RFCs to Indicate [rfc2119] S. Bradner, "Key words for use in RFCs to Indicate
Requirement Levels", RFC 2119 , March 1997 Requirement Levels", RFC 2119 , March 1997
[abnf] D. Crocker et al., "Augmented BNF for Syntax Specifications: [abnf] D. Crocker et al., "Augmented BNF for Syntax Specifications:
ABNF", draft-ietf-drums-abnf-05.txt. ABNF", draft-ietf-drums-abnf-05.txt.
Jacobs, Martin Expires May 20, 1998
9. Author's Addresses 9. Author's Addresses
Robert Herriot (editor) Norm Jacobs Robert Herriot (editor) Norm Jacobs
Sun Microsystems Inc. Sun Microsystems Inc. Sun Microsystems Inc. Sun Microsystems Inc.
901 San Antonio.Road., MPK-17 1430 Owl Ridge Rd. 901 San Antonio.Road., MPK-17 1430 Owl Ridge Rd.
Mountain View, CA 94043 Colorado Springs, CO 80919 Mountain View, CA 94043 Colorado Springs, CO 80919
Phone: 650-786-8995 Phone: 719-532-9927 Phone: 650-786-8995 Phone: 719-532-9927
Fax: 650-786-7077 Fax: 719-535-0956 Fax: 650-786-7077 Fax: 719-535-0956
Email: robert.herriot@eng.sun.com Email: Email: robert.herriot@eng.sun.com Email:
Norm.Jacobs@Central.sun.com Norm.Jacobs@Central.sun.com
Thomas N. Hastings Jay Martin Thomas N. Hastings Jay Martin
Xerox Corporation Underscore, Inc. Xerox Corporation Underscore, Inc.
Jacobs, Martin Expires June 19, 1998
701 S. Aviation Blvd., ESAE-231 41-C Sagamore Park Road 701 S. Aviation Blvd., ESAE-231 41-C Sagamore Park Road
El Segundo, CA 90245 Hudson, NH 03051-4915 El Segundo, CA 90245 Hudson, NH 03051-4915
Phone: 310-333-6413 Phone: 603-889-7000 Phone: 310-333-6413 Phone: 603-889-7000
Fax: 310-333-5514 Fax: 603-889-2699 Fax: 310-333-5514 Fax: 603-889-2699
EMail: hastings@cp10.es.xerox.com Email: jkm@underscore.com EMail: hastings@cp10.es.xerox.com Email: jkm@underscore.com
10. Appendix A: ABNF Syntax for response of Send-queue-state (short) 10. Appendix A: ABNF Syntax for response of Send-queue-state (short)
The syntax in ABNF for the response to the LPD command `send-queue-state The syntax in ABNF for the response to the LPD command `send-queue-state
(long)' is: (long)' is:
status-response = empty-queue / nonempty-queue status-response = empty-queue / nonempty-queue
empty-queue = "no-entries" LF empty-queue = "no-entries" LF
nonempty-queue = printer-status LF heading LF *(job LF) nonempty-queue = printer-status LF heading LF *(job LF)
printer-status = OK-status / error-status printer-status = OK-status / error-status
OK-status = printer-name SP "ready and printing" LF OK-status = printer-name SP "ready and printing" LF
error-status = < implementation dependent status information > error-status = < implementation dependent status information >
heading = "Rank" 3SP "Owner" 6SP "Job" 13SP "Files" heading = "Rank" 3SP Owner " " 6SP "Job" 13SP "Files"
23SP "Total Size" LF 23SP "Total Size" LF
; the column headings and their values below begin ; the column headings and their values below begin
at the columns at the columns
; 1, 8, 19, 35 and 63 ; 1, 8, 19, 35 and 63
job = rank *SP owner *SP job *SP files *SP total-size "bytes" job = rank *SP owner *SP job *SP files *SP total-size "bytes"
; jobs are in order of oldest to newest ; jobs are in order of oldest to newest
rank = "active" / "1st" / "2nd" / "3rd" / integer "th" rank = "active" / "1st" / "2nd" / "3rd" / integer "th"
; job that is printing is "active" ; job that is printing is "active"
; other values show position in the queue ; other values show position in the queue
owner = <user name of person who submitted the job> owner = <user name of person who submitted the job>
job = 1*3DIGIT ; job-number job = 1*3DIGIT ; job-number
files = <file name> *( "," <file name>) ; truncated to 24 characters files = <file name> *( "," <file name>) ; truncated to 24 characters
total-size = 1*DIGIT ; combined size in bytes of all documents total-size = 1*DIGIT ; combined size in bytes of all documents
11. Appendix B: ABNF Syntax for response of Send-queue-state (long) 11. Appendix B: ABNF Syntax for response of Send-queue-state (long)
The syntax in ABNF for the response to the LPD command `send-queue-state The syntax in ABNF for the response to the LPD command `send-queue-state
(long)' is: (long)' is:
Jacobs, Martin Expires May 20, 1998
status-response = empty-queue / nonempty-queue status-response = empty-queue / nonempty-queue
empty-queue = "no-entries" LF empty-queue = "no-entries" LF
nonempty-queue = printer-status LF *job nonempty-queue = printer-status LF *job
printer-status = OK-status / error-status printer-status = OK-status / error-status
OK-status = printer-name SP "ready and printing" LF OK-status = printer-name SP "ready and printing" LF
error-status = < implementation dependent status information > error-status = < implementation dependent status information >
job = LF line-1 LF line-2 LF job = LF line-1 LF line-2 LF
line-1 = owner ":" SP rank 1*SP "[job" job SP host "]" line-1 = owner ":" SP rank 1*SP "[job" job SP host "]"
line-2 = file-name 1*SP document-size "bytes" line-2 = file-name 1*SP document-size "bytes"
; jobs are in order of oldest to newest ; jobs are in order of oldest to newest
rank = "active" / "1st" / "2nd" / "3rd" / integer "th" rank = "active" / "1st" / "2nd" / "3rd" / integer "th"
; job that is printing is "active" ; job that is printing is "active"
; other values show position in the queue ; other values show position in the queue
owner = <user name of person who submitted the job> owner = <user name of person who submitted the job>
job = 1*3DIGIT job = 1*3DIGIT
Jacobs, Martin Expires June 19, 1998
file-name = [ 1*DIGIT "copies of" SP ] <file name> file-name = [ 1*DIGIT "copies of" SP ] <file name>
; truncated to 24 characters ; truncated to 24 characters
document-size = 1*DIGIT ;size of single copy of the document. document-size = 1*DIGIT ;size of single copy of the document.
12. Appendix C: Unsupported LPD functions 12. Appendix C: Unsupported LPD functions
The follow LPD functions have no IPP equivalent. The LPD-to-IPP mapper The follow LPD functions have no IPP equivalent. The LPD-to-IPP mapper
ignores them and the IPP-to-LPD mapper does not send them. ignores them and the IPP-to-LPD mapper does not send them.
LPD command LPD command
skipping to change at page 22, line 4 skipping to change at page 22, line 44
LPD command LPD command
name description name description
c Plot CIF file c Plot CIF file
d Print DVI file d Print DVI file
g Plot file g Plot file
k reserved for Kerberized clients and servers k reserved for Kerberized clients and servers
n Print ditroff output file n Print ditroff output file
p Print file with 'pr' format p Print file with 'pr' format
r File to print with FORTRAN carriage control r File to print with FORTRAN carriage control
Jacobs, Martin Expires May 20, 1998
t Print troff output file t Print troff output file
v Print raster file v Print raster file
z reserved for future use with the Palladium z reserved for future use with the Palladium
print system print system
ISSUE: we may move some of these to the supported list. 13. Appendix D: Full Copyright Statement
Jacobs, Martin Expires May 20, 1998 Copyright (C)The Internet Society (1997). 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
Jacobs, Martin Expires June 19, 1998
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.
Jacobs, Martin Expires June 19, 1998
 End of changes. 

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