6. Document Type Support The set of FTAM document types supported by the FTP-FTAM gateway is a subset of the document types identified in the Stable Implementation Agreements for Open Systems Interconnection Protocols: Part 9 - FTAM Phase 2, produced by the March 1992 Open Systems Environment Implementors' Workshop [NIST92]. This subset was chosen for its equivalence to those document types supported by FTP. The set includes: FTAM-1 "ISO FTAM Unstructured text file FTAM-3 "ISO FTAM Unstructured binary file NBS-9 "NBS-9 FTAM File directory file" FTAM document types map to FTP document types as follows: FTAM <-> FTP ---------------------------------- FTAM-1 <-> ASCII FTAM-3 <-> 8 bit binary NBS-9 <-> Directory Gateway support for FTAM-1 and FTAM-2 is required, whereas support for NBS-9 is recommended. 6.1. Notes on NBS-9 NBS-9 is optional in GOSIP versions 1 and 2 [NIST91]. NBS-9 will be superseded by its replacement when ISO/IEC ISP 10607-2 and ISO/IEC ISP 10607-2/Amendment 1 are published [NIST92]. For conformance to NBS-9, an FTAM Responder is only required to return the <Filename> file attribute, subject to local security and access control. All other requested attributes need not be returned. Systems supporting the NBS-9 document type shall make available an NBS-9 document called 'DIRLIS'. This document can be used to obtain a listing of files and their associated attributes from a remote Filestore.
7. Functional Comparison of FTP and FTAM A comprehensive comparison of the services offered by FTP and FTAM is beyond the scope of this specification. What follows is an analysis of several key points. Refer to [NIST 86a] and [ROSE90] for a more complete discourse on this topic. FTAM is not a superset of FTP; each protocol has functions that only it performs. The set of FTAM functions is, however, larger than the set of FTP functions. FTP combines file management and file transfer into one protocol engine, whereas FTAM separates management and transfer as they relate to files. The file transfer services of both FTP and FTAM expect a reliable underlying end-to-end service. At a minimum, this service includes the capability to transfer entire files between remote hosts and to display remote filenames. In addition to this basic file transfer service, FTAM supports the capability to: access a few records from a file server, create a network file system (similar to Sun's Network File System), handle printing and spooling, and access remote database records. FTP does not support these additional capabilities. FTP uses TELNET services to set up a connection between the FTP Client and FTP Server. A three-digit reply code followed by explanatory text indicates the status of the preceding request and provides diagnostic information explaining each transaction. FTAM relies on the Association Control Service Element (ACSE) to start and stop the network for network file interaction. Generally, the ASCE establishes the application association and related application context needed to support the FTAM protocol. The FTAM protocol is modularized so as to keep the allowable number of actions in any particular state relatively small. There are many more possible sequences of FTP operations than possible sequences of FTAM operations [NIST86]. Because FTAM is more robust than FTP, FTAM allows greater flexibility for conveying information about files. FTAM deals only with aspects of application processes, and leaves data representation and data management facilities to other OSI service elements. In contrast to the Client/Server model present in the FTP scheme, FTAM is based on the Initiator/Responder model. The key distinction
is that once the FTAM Initiator has established a connection with a remote host, either the Initiator or Responder can request services of the other. In the FTP realm, the Client both initiates a connection and requests all services. The FTP Client knows the real properties of the remote host filesystem. FTAM, in contrast, embraces a conceptual model of a filesystem, labeled a virtual filestore model. The virtual filestore is a collection of files, each of which has a name that uniquely identifies it. Each file has a set of attributes, such as ownership information and contents, which is the data associated with the file. One file attribute is the <Contents Type> of the file, typically of value "FTAM-1", "FTAM-3", or "NBS-9". The FTAM Initiator only knows the properties of the corresponding Responder and virtual filestore, not the real properties of the filesystem on the remote host. 7.1. Loss of Functionality As happens whenever two dissimilar protocols, or languages for that matter, are translated, some loss of functionality is inevitable. With reference to the FTP-FTAM gateway, several of the most blatant losses of functionality are: 1. Diagnostics passed between protocols may not be precisely translated. 2. The FTAM partial file (record) transfer may not be supported. 3. Some FTAM attributes are not supported by FTP. The primary goal of the gateway protocol mappings are to minimize this loss of functionality. As this gateway specification and subsequent implementations evolve, means to partially overcome loss of functionality may become more obvious. For example, the gateway may be able to emulate file record transfers between FTAM Initiators and FTP Servers. 8. Mapping of Protocol Functions and Representations The mappings presented are based upon the FTAM protocol implementation as defined in Stable Implementation Agreements for Open Systems Interconnection Protocols: Part 9 - FTAM Phase 2, produced by the March 1992 Open Systems Environment Implementors' Workshop [NIST92], and in [ISO8571-1], [ISO8571-2],[ISO8571- 3],[ISO8571-4], and [ISO8571-5]. The FTP protocol as defined in Request for Comments [RFC959]. The mappings are strongly influenced by the work of M. A. Wallace et. al. at NIST [NIST86] and John Scott
at MITRE [MITRE87]. A key goal of the mappings presented in this document is to minimize the loss of functionality between the two protocols. The specific approach taken to implement the mappings is left to the discretion of the gateway implementor. The focus of the protocol function and representation mappings is on non-error encumbered processing. The mapping of diagnostic and error messages is treated separately in section 9. At a minimum, the FTAM implementation in the FTP-FTAM gateway support for Implementation Profiles T1 (Simple File Transfer) and M1 (Management), as defined in [NIST92], is required. These Implementation Profiles correspond to the A/111 and A/13 Profiles of Standards Promotion and Application Group in Europe, respectively [NIST92]. At a minimum, the gateway support for the following is required: ASCII and 8 bit binary file types. It should also support FTP File Stream Mode. The following FTAM document types: FTAM-1 (unstructured text file), FTAM-3 (unstructured binary file), and NBS-9 (set of directory entries). POSIX file naming and organization conventions are assumed in these mappings; i.e., files in the systems are assumed to be organized in a hierarchical structure in which all of the non-terminal nodes are directories and all of the terminal nodes are any other type of file. The following terminology is used in the mapping specifications: argument .......FTP Service Command argument, as used in [RFC959]. parameter ......FTAM Service Primitive parameters and attributes, as enumerated in Tables 6, 50, and 51 of [ISO8571- 3]. The following notation is used in the mapping specifications: Arguments and parameters are enclosed in angle brackets; e.g., <Action Result> Values of arguments and parameters are enclosed in quotation marks; e.g., "Success"
FTP Service Commands and FTAM Primitives are in uppercase; e.g., F- INITIALIZE 8.1. FTP-Initiated Gateway Service The protocol mapping between FTP and FTAM may be one-to-zero (i.e., not mappable), one-to-one, or one-to-many. The general steps taken by the FTP-FTAM gateway to provide the FTP- Initiated service are: 1. Accept an FTP Client request at the FTP Server side of the gateway service. 2. Map the request to the (set of) corresponding FTAM Initiator function(s). 3. Acting as an FTAM Initiator, send the FTAM Initiator function(s) to the FTAM Responder. 4. Accept information returned to the FTAM Initiator side of the gateway. This information originated at the FTAM Responder. 5. Map this returned information to the protocol form understood by the FTP Server side of the gateway. 6. Send this returned information from the FTP Server side of the gateway to the FTP Client. For each FTP protocol function, the FTAM protocol functions required to map it are identified: FTP FTAM ------------------------------------------------------------------ ABOR F-BEGIN-GROUP, F-CANCEL, F-CLOSE, F-DESELECT, F-END-GROUP ACCT F-INITIALIZE, ALLO none APPE F-BEGIN-GROUP, F-CLOSE, F-CREATE, F-DATA, F-DATA-END, F- DESELECT, F-END-GROUP, F-OPEN, F-READ-ATTRIBUTES, F-SELECT, F-TRANSFER-END, F-WRITE CDUP F-BEGIN-GROUP, F-DESELECT, F-END-GROUP, F-SELECT
CWD F-BEGIN-GROUP, F-END-GROUP, F-DESELECT, F-SELECT DELE F-BEGIN-GROUP, F-DELETE, F-END-GROUP, F-SELECT HELP none LIST F-BEGIN-GROUP, F-CLOSE, F-DATA, F-DATA-END, F-DESELECT, F- END-GROUP, F-OPEN, F-READ, F-READ-ATTRIBUTES, F-SELECT, F- TRANSFER-END MKD none MODE none NLST F-BEGIN-GROUP, F-CLOSE, F-DATA, F-DATA-END, F-DESELECT, F- END-GROUP, F-OPEN, F-READ, F-SELECT, F-TRANSFER-END NOOP none PASS F-INITIALIZE PASV none PORT none PWD F-BEGIN-GROUP, F-DESELECT, F-END-GROUP, F-READ-ATTRIBUTES, F-SELECT QUIT F-P-ABORT or F-U-ABORT, F-TERMINATE REIN F-BEGIN-GROUP, F-CANCEL, F-CLOSE, F-DESELECT, F-END-GROUP REST F-CHECK, F-RESTART RETR F-BEGIN-GROUP, F-CLOSE, F-DATA, F-DATA-END, F-DESELECT, F- END-GROUP, F-OPEN, F-READ, F-SELECT, F-TRANSFER-END RMD none RNFR F-BEGIN-GROUP, F-DESELECT, F-END-GROUP, F-SELECT RNTO F-BEGIN-GROUP, F-CHANGE-ATTRIBUTES, F-DESELECT, F-END- GROUP, F-SELECT SITE F-INITIALIZE SMNT none
STAT none STOR F-BEGIN-GROUP,F-CLOSE, F-CREATE, F-DATA, F-DATA-END, F- DESELECT, F-END-GROUP, F-OPEN, F-READ-ATTRIBUTES, F-SELECT, F-TRANSFER-END, F-WRITE STOU F-BEGIN-GROUP, F-CLOSE, F-CREATE, F-DATA, F-DATA-END, F- DESELECT, F-END-GROUP, F-OPEN, F-READ-ATTRIBUTES, F-SELECT, F-TRANSFER-END, F-WRITE STRU none TYPE none USER F-INITIALIZE The remainder of this section presents detailed mapping procedures for each of the FTP protocol functions. Gateway support for these mappings is required. 8.1.1. ABOR 1. Send F-CANCEL to FTAM Responder. 2. Send the following grouped request to the FTAM Responder. F-BEGIN-GROUP F-CLOSE F-DESELECT F-END-GROUP 3. Translate FTAM Responder <Action Result> and <Diagnostic> parameters to equivalent FTP reply code(s) and send reply codes to FTP Client. 4. Translate FTP Client reply codes to equivalent FTAM <Action Result> and <Diagnostic> parameters and send parameters to FTAM Responder. 8.1.2. ACCT 1. Set <Account> parameter value for issuing F-INITIALIZE to FTAM Responder. 2. If <Called Presentation Address>, <Initiator Identity>, and <Filestore Password> parameters are available, attempt connection with FTAM Responder; Otherwise wait for additional ACCT commands. 3. Translate FTAM Responder <Action Result> and <Diagnostic> parameters to equivalent FTP reply code(s) and send reply codes to FTP Client. 4. Translate FTP Client reply codes to equivalent FTAM <Action Result> and <Diagnostic> parameters and send parameters to
FTAM Responder. Note: a. The ACCT command will be effective with the next PASS command. 8.1.3. ALLO 1. Return a 200 reply code to FTP Client. 8.1.4. APPE 1. Save current pathname by appending saved CWD string with <pathname> argument. If no saved CWD string, proceed to step 12. 2. Send the following grouped request to FTAM Responder. F-BEGIN-GROUP F-SELECT F-READ-ATTRIBUTES Save <Contents Type> parameter value F-DESELECT F-END-GROUP 3. If the <Contents Type> parameter value returned with the F-READ-ATTRIBUTES has a value of "NBS-9", proceed to step 12. 4. Send the following grouped request to the FTAM responder. F-BEGIN-GROUP F-CREATE Set the <Override> parameter in the F-CREATE to "Select Old File". F-OPEN F-END-GROUP 5. If the file existed, set the <Contents Type> parameter in the F-CREATE to match that returned by the F-READ-ATTRIBUTES. 6. If the file did not exist and no previous FTP TYPE "Image" command was issued, then set the <Contents Type> parameter to "FTAM-1"; Otherwise, set the <Contents Type> parameter to "FTAM-3". 7. Send F-WRITE, with <Bulk Data Transfer Specification, FADU Operation> parameter set to "File Extend", to FTAM Responder. 8. Loop reading data from FTP data connection, sending the data in F-DATA PDUs until end-of-file on the FTP connection. 9. Send F-DATA-END to FTAM Responder. 10. Send F-TRANSFER-END to FTAM Responder. 11. Send the following grouped request to the FTAM Responder.
F-BEGIN-GROUP F-CLOSE F-DESELECT F-END-GROUP 12. Translate FTAM Responder <Action Result> and <Diagnostic> parameters to equivalent FTP reply code(s) and send reply code(s) to FTP Client. 13. Translate FTP Client reply codes to equivalent FTAM <Action Result> and <Diagnostic> parameters and send parameters to FTAM Responder. Note: a. <pathname> argument is assumed to be a filename, relative to the currently saved CWD. b. CWD of the FTAM system must be defined prior to issuance of APPE. 8.1.5. CDUP 1. Determine parent directory from saved CWD string. If no saved CWD string, proceed to step 4. 2. Set <Contents Type> parameter to "NBS-9". 3. Send the following grouped request to FTAM Responder. F-BEGIN-GROUP F-SELECT F-DESELECT F-END-GROUP 4. Translate FTAM Responder <Action Result> and <Diagnostic> parameters to equivalent FTP reply code(s) and send reply code(s) to FTP Client. 5. Translate FTP Client reply codes to equivalent FTAM <Action Result> and <Diagnostic> parameters and send parameters to FTAM Responder. Note: a. A POSIX file organization is assumed; i.e., files in the systems are organized in a hierarchical structure in which all of the non-terminal nodes are directories and all of the terminal nodes are any other type of file. b. If the parent directory does not exist, the current working directory remains unchanged. c. CWD of the FTAM system must be defined prior to issuance of CDUP. 8.1.6. CWD 1. Save <pathname> argument as CWD string. 2. Set <Contents Type> parameter to "NBS-9".
3. Send the following grouped request to FTAM Responder. F-BEGIN-GROUP F-SELECT F-DESELECT F-END-GROUP 4. Translate FTAM Responder <Action Result> and <Diagnostic> parameters to equivalent FTP reply code(s) and send reply code(s) to FTP Client. 5. Translate FTP Client reply codes to equivalent FTAM <Action Result> and <Diagnostic> parameters and send parameters to FTAM Responder. Note: a. The <pathname> argument is assumed to be an absolute directory specification. b. If the specified directory does not exist, the current working directory remains unchanged. c. Saved CWD string is used in other FTP-to-FTAM mappings, such as APPE. 8.1.7. DELE 1. Save current pathname by appending saved CWD string with <pathname> argument. If no saved CWD string, proceed to step 3. 2. Send the following grouped request to FTAM Responder. F-BEGIN-GROUP F-SELECT F-DELETE F-END-GROUP 3. Translate FTAM Responder <Action Result> and <Diagnostic> parameters to equivalent FTP reply code(s) and send reply code(s) to FTP Client. 4. Translate FTP Client reply codes to equivalent FTAM parameters and send parameters to FTAM Responder. Note: a. <pathname> argument is assumed to be a filename, relative to the currently saved CWD. b. CWD of the FTAM system must be defined prior to issuance of DELE. 8.1.8. HELP 1. If no <string> argument is provided, send helpful information about the implementation of the gateway to the FTP Client. If an argument is provided, send more specific information.
2. Return the FTP reply code 214 to the FTP Client. 8.1.9. LIST 1. If <pathname> argument is provided, proceed to step 3. 2. Save current pathname by appending saved CWD string with <pathname> argument; If no saved CWD string, proceed to step 11. 3. Send the following grouped request to the FTAM Responder. F-BEGIN-GROUP F-SELECT F-READ-ATTRIBUTES Save <Filename>, <Contents Type>, <Data/Time of Last Modification>, and <Filesize> parameters F-DESELECT F-END-GROUP 4. If the <Contents Type> parameter of the F-READ-ATTRIBUTES is not "NBS-9", then return the <Filename>, <Contents Type>, <Date/Time of Last Modification>, and <Filesize> parameter values, obtained with the previous F-READ-ATTRIBUTES, to the FTP data connection; and proceed to step 8. 5. Send the following grouped request to the FTAM Responder. F-BEGIN-GROUP F-SELECT F-OPEN F-END-GROUP 6. Send F-READ to FTAM Responder. 7. Loop reading F-DATA until F-DATA-END. As data is received, write the <Filename>, <Permitted Actions>, <Contents Type>, and <Date/Time of Last Modification> parameter values from the PDU to the FTP data connection. 8. Send F-TRANSFER-END to FTAM Responder. 9. Send the following grouped request to the FTAM responder. F-BEGIN-GROUP F-CLOSE F-DESELECT F-END-GROUP 10. Translate FTAM Responder <Action Result> and <Diagnostic> parameters to equivalent FTP reply code(s) and send reply code(s) to FTP Client. 11. Translate FTP Client reply codes to equivalent FTAM <Action Result> and <Diagnostic> parameters and send parameters to FTAM Responder. Note: a. Assume the <pathname> argument is relative to the saved CWD, whether filename or directory specification.
b. CWD of the FTAM system must be defined prior to issuance of LIST. c. Transfers over data connection should be in ASCII. e. If list of files with full directory/file specification is received from FTAM Responder, then gateway should parse list to strip off directory portion. 8.1.10. MKD 1. Return a 502 reply code (Command not implemented) to the FTP Client. Note: a. As indicated in the NIST Stable Implementation Agreements for FTAM [NIST92], creation or deletion of NBS-9 files is outside the scope of the agreements. 8.1.11. MODE 1. If <argument> is "Stream", return 200 reply code to FTP Client; Otherwise return a 504 reply code (Command not implemented for that parameter). 8.1.12. NLST 1. If <pathname> argument is provided, use <pathname> argument as <Filename> parameter value in F-SELECT issued in step 3. 2. If no argument is provided, use saved CWD value as <Filename> parameter value in F-SELECT issued in step 3; If no CWD string is saved and no argument is provided, proceed to step 9. 3. Set <Contents Type> parameter to "NBS-9". 4. Send the following grouped request to the FTAM Responder. F-BEGIN-GROUP F-SELECT F-OPEN F-END-GROUP 5. Send F-READ to FTAM Responder. 6. Loop reading F-DATA until F-DATA-END. As data is received, write the filenames and other useful information from the PDU to the FTP data connection. 7. Send F-TRANSFER-END to FTAM Responder. 8. Send the following grouped request to the FTAM responder. F-BEGIN-GROUP F-CLOSE F-DESELECT F-END-GROUP 9. Translate FTAM Responder <Action Result> and <Diagnostic>
parameters to equivalent FTP reply code(s) and send reply code(s) to FTP Client. 10. Translate FTP Client reply codes to equivalent FTAM <Action Result> and <Diagnostic> parameters and send parameters to FTAM Responder. Note: a. As per RFC 959 (FTP), the NLST <pathname> argument is a directory. b. Assume the argument is relative to the saved CWD, whether filename or directory specification. c. CWD of the FTAM system must be defined prior to issuance of NLST. d. Transfers over data connection should be in ASCII. e. Gateway should parse full directory/file specifications received from FTAM Responder to strip off directory portion. This is required to support the "FTP multiple get" function that pipes NLST output to the STOR command. 8.1.13. NOOP 1. Return a 200 reply code to FTP Client. 8.1.14. PASS 1. Set <Filestore Password> parameter for F-INITIALIZE. 2. If <Called Presentation Address>, <User Identity>, and <Filestore Password> are available, issue F- INITIALIZE to FTAM Responder. 3. Translate FTAM Responder <Action Result> and <Diagnostic> parameters to equivalent FTP reply code(s) and send reply code(s) to FTP Client. 4. Translate FTP Client reply codes to equivalent FTAM <Action Result> and <Diagnostic> parameters and send parameters to FTAM Responder. 8.1.15. PASV 1. Wait for data transfer on default data port or data port specified by PORT command. 2. Return a 200 reply code to FTP Client. 8.1.16. PORT 1. Return a 200 reply code to FTP Client.
8.1.17. PWD 1. If there is a saved CWD string, return it to the FTP client and proceed to step 4. 2. Set <Contents Type> attribute to "NBS-9". 3. Send the following grouped request to FTAM Responder. F-BEGIN-GROUP F-SELECT F-READ-ATTRIBUTES F-DESELECT F-END-GROUP 4. Return the current directory name to the FTP client. 5. Translate FTAM Responder <Action Result> and <Diagnostic> parameters to equivalent FTP reply code(s) and send reply code(s) to FTP Client. 6. Translate FTP Client reply codes to equivalent FTAM <Action Result> and <Diagnostic> parameters and send parameters to FTAM Responder. 8.1.18. QUIT 1. If user is not logged in, proceed to step 5. 2. If file transfer is in progress, send F-P-ABORT or F-U-ABORT to FTAM Responder. 3. If file transfer is not in progress, send and F-TERMINATE to FTAM Responder. 4. Return charge information to FTP Client. 5. Translate FTAM Responder <Action Result> and <Diagnostic> parameters to equivalent FTP reply code(s) and send reply code(s) to FTP Client. 6. Translate FTP Client reply codes to equivalent FTAM <Action Result> and <Diagnostic> parameters and send parameters to FTAM Responder. 8.1.19. REIN 1. Flush all I/O and account information. 2. Allow all transfers in progress to be completed. 3. Set all parameters to default values. 4. Send F-CANCEL to FTAM Responder. 5. Send the following grouped request to FTAM Responder. F-BEGIN-GROUP F-CLOSE F-DESELECT F-END-GROUP 6. Leave the control connection open. 7. Translate FTAM Responder <Action Result> and <Diagnostic> parameters to equivalent FTP reply code(s) and send reply
code(s) to FTP Client. 8. Translate FTP Client reply codes to equivalent FTAM <Action Result> and <Diagnostic> parameters and send parameters to FTAM Responder. Note: a. Typically followed by a USER command. 8.1.20. REST 1. Send F-CHECK to FTAM Responder. 2. Send F-RESTART to FTAM Responder. 3. Translate FTAM Responder <Action Result> and <Diagnostic> parameters to equivalent FTP reply code(s) and send reply code(s) to FTP Client. 4. Translate FTP Client reply codes to equivalent FTAM <Action Result> and <Diagnostic> parameters and send parameters to FTAM Responder. Notes: a. Will only have affect on FTAM Responder if the restart functional unit is negotiated on F-INITIALIZE. b. Refer to ISO 8571-3 for additional subtleties of FTAM checkpoint and restart. 8.1.21. RETR 1. Save current pathname by appending saved CWD string with <pathname> argument. If no saved CWD string, proceed to step 9. 2. Set <Contents Type> parameter to appropriate type of file. 3. Send the following grouped request to the FTAM Responder. F-BEGIN-GROUP F-SELECT F-OPEN F-END-GROUP 4. If file does not exist, proceed to step 9. 5. Send F-READ to FTAM Responder. 6. Loop reading F-DATA until F-DATA-END. As data is received, write it to the FTP data connection. 7. Send F-TRANSFER-END to FTAM Responder. 8. Send the following grouped request to the FTAM Responder. F-BEGIN-GROUP F-CLOSE F-DESELECT F-END-GROUP 9. Translate FTAM Responder <Action Result> and <Diagnostic> parameters to equivalent FTP reply code(s) and send reply
code(s) to FTP Client. 10. Translate FTP Client reply codes to equivalent FTAM <Action Result> and <Diagnostic> parameters and send parameters to FTAM Responder. Note: a. <pathname> argument is assumed to be a filename, relative to the currently saved CWD. b. CWD of the FTAM system must be defined prior to issuance of RETR. 8.1.22. RMD 1. Return a 502 reply code (Command not implemented) to the FTP Client. Note: a. As indicated in the NIST Stable Implementation Agreements for FTAM [NIST92], creation or deletion of NBS-9 files is outside the scope of the agreements. 8.1.23. RNFR 1. Save current pathname by appending saved CWD string with <pathname> argument. If no saved CWD string, proceed to step 3. 2. Send the following grouped request to the FTAM Responder. F-BEGIN-GROUP F-SELECT Get <Filename> parameter value from RNFR <pathname> argument. F-DESELECT F-END-GROUP 3. Translate FTAM Responder <Action Result> and <Diagnostic> parameters to equivalent FTP reply code(s) and send reply code(s) to FTP Client. 4. Translate FTP Client reply codes to equivalent FTAM <Action Result> and <Diagnostic> parameters and send parameters to FTAM Responder. Note: a. <pathname> argument is assumed to be a filename, relative to the currently saved CWD. b. Together with RNTO, this command causes a file to be renamed. c. CWD of the FTAM system must be defined prior to issuance of RNFR.
8.1.24. RNTO 1. Save current pathname by appending saved CWD string with <pathname> argument. If no saved CWD string, proceed to step 3. 2. Send the following grouped request to the FTAM Responder. F-BEGIN-GROUP F-SELECT F-CHANGE-ATTRIBUTES Get <Filename> parameter from arguments provided by RNTO and previous RNFR. F-DESELECT F-END-GROUP 3. Translate FTAM Responder <Action Result> and <Diagnostic> parameters to equivalent FTP reply code(s) and send reply code(s) to FTP Client. 4. Translate FTP Client reply codes to equivalent FTAM <Action Result> and <Diagnostic> parameters and send parameters to FTAM Responder. Note: a. <pathname> argument is assumed to be a filename, relative to the currently saved CWD. b. Together with RNFR, this command causes a file to be renamed. c. CWD of the FTAM system must be defined prior to issuance of RNTO. 8.1.25. SITE 1. Save the specified destination address information. 2. Set the <Called Presentation Address> parameter value equal to the <string> argument. This parameter will be used when the F-INITIALIZE is sent to the FTAM Responder. 3. Translate FTAM Responder <Action Result> and <Diagnostic> parameters to equivalent FTP reply code(s) and send reply code(s) to FTP Client. 4. Translate FTP Client reply codes to equivalent FTAM <Action Result> and <Diagnostic> parameters and send parameters to FTAM Responder. Note: a. The <string> argument to the SITE command may include a Distinguished Name or a User Friendly Name.
8.1.26. SMNT 1. Return a 502 reply code to FTP Client. Note: a. Argument is ignored. 8.1.27. STAT 1. Provide the gateway session status to the FTP Client. 2. Return a 211 reply code to FTP Client. Note: a. Argument is ignored. 8.1.28. STOR 1. Save current pathname by appending saved CWD string with <pathname> argument. If no saved CWD string, proceed to step 11. 2. Send the following grouped request to FTAM Responder. F-BEGIN-GROUP F-SELECT F-READ-ATTRIBUTES Save <Contents Type> parameter value F-DESELECT F-END-GROUP 3. If the <Contents Type> parameter returned with the F-READ- ATTRIBUTES indicates a directory, proceed to step 11. 4. Send the following grouped request to the FTAM responder. F-BEGIN-GROUP F-CREATE Set the <Override> parameter in the F-CREATE to "Delete and create with new attributes.". F-OPEN F-END-GROUP 5. If the file existed, set the <Contents Type> parameter in the F-CREATE to match the F-READ-ATTRIBUTES. If the file did not exist, set the <Contents Type> parameter to "FTAM-1". If TYPE "Image" was previously requested, set the <Contents Type> parameter to "FTAM-3". 6. Send F-WRITE, with <Bulk Data Transfer Specification, FADU Operation> parameter set to "File Extend", to FTAM Responder. 7. Loop reading data from FTP data connection, sending the data in F-DATA PDUs until end-of-file on the FTP connection. 8. Send F-DATA-END to FTAM Responder. 9. Send F-TRANSFER-END to FTAM Responder.
10. Send the following grouped request to the FTAM Responder. F-BEGIN-GROUP F-CLOSE F-DESELECT F-END-GROUP 11. Translate FTAM Responder <Action Result> and <Diagnostic> parameters to equivalent FTP reply code(s) and send reply code(s) to FTP Client. 12. Translate FTP Client reply codes to equivalent FTAM <Action Result> and <Diagnostic> parameters and send parameters to FTAM Responder. Note: a. <pathname> argument is assumed to be a filename, relative to the currently saved CWD. b. CWD of the FTAM system must be defined prior to issuance of STOR. 8.1.29. STOU 1. Save current pathname by appending saved CWD string with <pathname> argument. If no saved CWD string, proceed to step 11. 2. Send the following grouped request to FTAM Responder. F-BEGIN-GROUP F-SELECT F-READ-ATTRIBUTES Save <Contents Type> parameter value F-DESELECT F-END-GROUP 3. If the file already exists, proceed to step 12. 4. If the <Contents Type> parameter returned with the F-READ- ATTRIBUTES indicates a directory, proceed to step 11. 5. Send the following grouped request to the FTAM responder. F-BEGIN-GROUP F-CREATE Set the <Override> parameter in the F-CREATE to "Delete and create with new attributes.". F-OPEN F-END-GROUP 6. If the file existed, set the <Contents Type> parameter in the F-CREATE to match the F-READ-ATTRIBUTES. If the file did not exist, set the <Contents Type> parameter to "FTAM-1". If TYPE "Image" was previously requested, set the <Contents Type> parameter to "FTAM-3". 7. Send F-WRITE, with <Bulk Data Transfer Specification, FADU Operation> parameter set to "File Extend", to FTAM Responder. 8. Loop reading data from FTP data connection, sending the
data in F-DATA PDUs until end-of-file on the FTP connection. 9. Send F-DATA-END to FTAM Responder. 10. Send F-TRANSFER-END to FTAM Responder. 11. Send the following grouped request to the FTAM Responder. F-BEGIN-GROUP F-CLOSE F-DESELECT F-END-GROUP 12. Translate FTAM Responder <Action Result> and <Diagnostic> parameters to equivalent FTP reply code(s) and send reply code(s) to FTP Client. 13. Translate FTP Client reply codes to equivalent FTAM <Action Result> and <Diagnostic> parameters and send parameters to FTAM Responder. Note: a. <pathname> argument is assumed to be a filename, relative to the currently saved CWD. b. Same as STOR, except the name of the created file must be unique in that directory. c. CWD of the FTAM system must be defined prior to issuance of STOU. 8.1.30. STRU 1. If <structure code> argument is not "File", return 504 reply code to FTP Client; Otherwise return 200 reply code to FTP Client. 8.1.31. SYST 1. Return 502 reply code to FTP client. 8.1.32. TYPE 1. If no <type code> argument is provided, set <Contents Type> parameter equal to "FTAM-1". 2. If argument is provided, and equal to "ASCII", set <Contents Type> parameter to "FTAM-1". 3. If argument is provided, and equal to "Image", set <Contents Type> parameter to "FTAM-3". 4. Translate FTAM Responder <Action Result> and <Diagnostic> parameters to equivalent FTP reply code(s) and send reply code(s) to FTP Client. 5. Translate FTP Client reply codes to equivalent FTAM <Action Result> and <Diagnostic> parameters and send parameters to FTAM Responder.
Note: a. Default to ASCII if no <type code> argument is provided. 8.1.33. USER 1. Set <Initiator Identity> parameter for issuing F-INITIALIZE to FTAM Responder. 2. If the destination address was specified in the Domain Name used to attach to the gateway, use it to set the value of the <Called Presentation Address> parameter of the to-be-issued F-INITIALIZE command. 3. If the destination address is not known, check if it was specified in a previously issued SITE command. If available, set <Called Presentation Address> parameter for issuing F-INITIALIZE to FTAM Responder. 4. If the destination address is still not available, check if it is encoded in the user identity (e.g., user@host). If encoded, set <Called Presentation Address> parameter for issuing F-INITIALIZE to FTAM Responder using the "host" portion. 5. If no destination address is available, proceed to step 7. 6. Prompt user for password. 7. Translate FTAM Responder <Action Result> and <Diagnostic> parameters to equivalent FTP reply code(s) and send reply code(s) to FTP Client. 8. Translate FTP Client reply codes to equivalent FTAM <Action Result> and <Diagnostic> parameters and send parameters to FTAM Responder. Note: a. A USER command should be acceptable in any state. b. Multiple mechanisms are available for specifying the destination address: 1) Domain Name used in connecting to gateway (see section 4, Use of Gateway Services); 2) SITE command argument; and 3) user@host format.