draft-ietf-tftpexts-option-ext-02.txt   rfc1782.txt 
draft-ietf-tftpexts-option-ext-02.txt G. Malkin / Xylogics, Inc. Network Working Group G. Malkin
TFTP Option Extension A. Harkin / Hewlett-Packard Co. Request for Comments: 1782 Xylogics, Inc.
Updates: RFC 1350 (STD 33) December 1994 Updates: 1350 A. Harkin
Category: Standards Track Hewlett Packard Co.
March 1995
TFTP Option Extension TFTP Option Extension
Status of this Memo
This document specifies an Internet standards track protocol for the
Internet community, and requests discussion and suggestions for
improvements. Please refer to the current edition of the "Internet
Official Protocol Standards" (STD 1) for the standardization state
and status of this protocol. Distribution of this memo is unlimited.
Abstract Abstract
The Trivial File Transfer Protocol [1] is a simple, lock-step, file The Trivial File Transfer Protocol [1] is a simple, lock-step, file
transfer protocol which allows a client to get or put a file onto a transfer protocol which allows a client to get or put a file onto a
remote host. This document describes a simple extension to TFTP to remote host. This document describes a simple extension to TFTP to
allow option negotiation prior to the file transfer. allow option negotiation prior to the file transfer.
Status of this Memo
This document is an Internet-Draft. Internet-Drafts are working
documents of the Internet Engineering Task Force (IETF), its areas,
and its working groups. Note that other groups may also distribute
working documents as Internet-Drafts.
Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress."
To learn the current status of any Internet-Draft, please check the
"1id-abstracts.txt" listing contained in the Internet-Drafts Shadow
Directories on ds.internic.net (US East Coast), nic.nordu.net
(Europe), ftp.isi.edu (US West Coast), or munnari.oz.au (Pacific
Rim).
Introduction Introduction
The option negotiation mechanism proposed in this document is a The option negotiation mechanism proposed in this document is a
backward-compatible extension to the TFTP protocol. It allows file backward-compatible extension to the TFTP protocol. It allows file
transfer options to be negotiated prior to the transfer using a transfer options to be negotiated prior to the transfer using a
mechanism which is consistent with TFTPs Request Packet format. The mechanism which is consistent with TFTPs Request Packet format. The
mechanism is kept simple by enforcing a request-respond-acknowledge mechanism is kept simple by enforcing a request-respond-acknowledge
sequence, similar to the lock-step approach taken by TFTP itself. sequence, similar to the lock-step approach taken by TFTP itself.
While the option negotiation mechanism is general purpose, in that While the option negotiation mechanism is general purpose, in that
many types of options may be negotiated, it was created to support many types of options may be negotiated, it was created to support
the Blocksize option defined in [2]. Additional options are defined the Blocksize option defined in [2]. Additional options are defined
in [3]. in [3].
This document assumes reader familiarity with the TFTP specification
[1] and its terminology.
Packet Formats Packet Formats
TFTP options are appended to the Read Request and Write Request TFTP options are appended to the Read Request and Write Request
packets. A new type of TFTP packet, the Option Acknowledgment packets. A new type of TFTP packet, the Option Acknowledgment
(OACK), is used to acknowledge a client's option negotiation request. (OACK), is used to acknowledge a client's option negotiation request.
A new error code, 8, is hereby defined to indicate that a transfer A new error code, 8, is hereby defined to indicate that a transfer
should be terminated due to option negotiation. should be terminated due to option negotiation.
Options are appended to a TFTP Read Request or Write Request packet Options are appended to a TFTP Read Request or Write Request packet
as follows: as follows:
+-------+---~~---+---+---~~---+---+---~~---+---+---~~---+---+--> +-------+---~~---+---+---~~---+---+---~~---+---+---~~---+---+-->
| opc |filename| 0 | mode | 0 | opt1 | 0 | value1 | 0 | < | opc |filename| 0 | mode | 0 | opt1 | 0 | value1 | 0 | <
+-------+---~~---+---+---~~---+---+---~~---+---+---~~---+---+--> +-------+---~~---+---+---~~---+---+---~~---+---+---~~---+---+-->
>-------+---+---~~---+---+ >-------+---+---~~---+---+
< optN | 0 | valueN | 0 | < optN | 0 | valueN | 0 |
>-------+---+---~~---+---+ >-------+---+---~~---+---+
The "0"s shown in these illustrations and the ones below are all
all zero octets, i.e., NULL terminators for the preceeding
fields.
opc opc
The opcode field contains either a 1, for Read Requests, or 2, The opcode field contains either a 1, for Read Requests, or 2,
for Write Requests, as defined in [1]. for Write Requests, as defined in [1].
filename filename
The name of the file to be read or written, as defined in [1]. The name of the file to be read or written, as defined in [1].
This is a NULL-terminated field. This is a NULL-terminated field.
mode mode
The mode of the file transfer: "netascii", "octet", or "mail", The mode of the file transfer: "netascii", "octet", or "mail",
as defined in [1]. This is a NULL-terminated field. as defined in [1]. This is a NULL-terminated field.
opt1 opt1
The first option, in case-insensitive ASCII (e.g., blksize). The first option, in case-insensitive ASCII (e.g., "blksize").
This is a NULL-terminated field. This is a NULL-terminated ASCII field.
value1 value1
The value associated with the first option, in case-insensitive The value associated with the first option, in case-insensitive
ASCII. This is a NULL-terminated field. ASCII. This is a NULL-terminated field.
optN, valueN optN, valueN
The final option/value pair. Each NULL-terminated field is The final option/value pair. Each NULL-terminated field is
specified in case-insensitive ASCII. specified in case-insensitive ASCII.
The options and values are all NULL-terminated, in keeping with the The options and values are all NULL-terminated, in keeping with the
skipping to change at page 3, line 42 skipping to change at page 3, line 42
If the server supports option negotiation, and it recognizes one or If the server supports option negotiation, and it recognizes one or
more of the options specified in the request packet, the server may more of the options specified in the request packet, the server may
respond with an Options Acknowledgment (OACK). Each option the respond with an Options Acknowledgment (OACK). Each option the
server recognizes, and accepts the value for, is included in the server recognizes, and accepts the value for, is included in the
OACK. Some options may allow alternate values to be proposed, but OACK. Some options may allow alternate values to be proposed, but
this is an option specific feature. The server must not include in this is an option specific feature. The server must not include in
the OACK any option which had not been specifically requested by the the OACK any option which had not been specifically requested by the
client; that is, only the client may initiate option negotiation. client; that is, only the client may initiate option negotiation.
Options which the server does not support should be omitted from the Options which the server does not support should be omitted from the
OACK; they should not cause an ERROR packet to be generated. If the OACK; they must not cause an ERROR packet to be generated. If the
value of a supported option is invalid, the specification for that value of a supported option is invalid, the specification for that
option will indicate whether the server should simply omit the option option will indicate whether the server should simply omit the option
from the OACK, respond with an alternate value, or send an ERROR from the OACK, respond with an alternate value, or send an ERROR
packet, with error code 8, to terminate the transfer. packet, with error code 8, to terminate the transfer.
An option not acknowledged by the server must be ignored by the An option not acknowledged by the server must be ignored by the
client and server as if it were never requested. If multiple options client and server as if it were never requested. If multiple options
were requested, the client must use those options which were were requested, the client must use those options which were
acknowledged by the server and must not use those options which were acknowledged by the server and must not use those options which were
not acknowledged by the server. not acknowledged by the server.
skipping to change at page 5, line 40 skipping to change at page 5, line 40
<-- |4|2| ACK <-- |4|2| ACK
|3|3|<2048 octets of data | --> DATA |3|3|<2048 octets of data | --> DATA
<-- |4|3| ACK <-- |4|3| ACK
Security Considerations Security Considerations
Security issues are not discussed in this memo. Security issues are not discussed in this memo.
References References
[1] Sollins, K., "The TFTP Protocol (Revision 2)", Request for [1] Sollins, K., "The TFTP Protocol (Revision 2)", STD 33, RFC 1350,
Comments 1350 (STD 33), October 1992. MIT, July 1992.
[2] Malkin, G., Harkin, A., "TFTP Blocksize Option", Internet Draft, [2] Malkin, G., and A. Harkin, "TFTP Blocksize Option", RFC 1783,
draft-ietf-tftpexts-blksize-opt-01.txt, September 1994. Xylogics, Inc., Hewlett Packard Co., March 1995.
[3] Malkin, G., Harkin, A., "TFTP Timeout Interval and Transfer Size [3] Malkin, G., and A. Harkin, A., "TFTP Timeout Interval and
Options", Internet Draft, draft-ietf-tftpexts-options-00.txt, Transfer Size Options", RFC 1784, Xylogics, Inc., Hewlett Packard
December 1994. Co., March 1995.
Authors' Addresses Authors' Addresses
Gary Scott Malkin Gary Scott Malkin
Xylogics, Inc. Xylogics, Inc.
53 Third Avenue 53 Third Avenue
Burlington, MA 01803 Burlington, MA 01803
Phone: (617) 272-8140 Phone: (617) 272-8140
EMail: gmalkin@xylogics.com EMail: gmalkin@xylogics.com
Art Harkin Art Harkin
Internet Services Project Internet Services Project
Information Networks Division Information Networks Division
19420 Homestead Road MS 43LN 19420 Homestead Road MS 43LN
Cupertino, CA 95014 Cupertino, CA 95014
Phone: (408) 447-3755 Phone: (408) 447-3755
EMail: ash@cup.hp.com EMail: ash@cup.hp.com
 End of changes. 14 change blocks. 
42 lines changed or deleted 41 lines changed or added

This html diff was produced by rfcdiff 1.41. The latest version is available from http://tools.ietf.org/tools/rfcdiff/