summaryrefslogtreecommitdiff
path: root/doc/rfc/rfc1646.txt
diff options
context:
space:
mode:
authorThomas Voss <mail@thomasvoss.com> 2024-11-27 20:54:24 +0100
committerThomas Voss <mail@thomasvoss.com> 2024-11-27 20:54:24 +0100
commit4bfd864f10b68b71482b35c818559068ef8d5797 (patch)
treee3989f47a7994642eb325063d46e8f08ffa681dc /doc/rfc/rfc1646.txt
parentea76e11061bda059ae9f9ad130a9895cc85607db (diff)
doc: Add RFC documents
Diffstat (limited to 'doc/rfc/rfc1646.txt')
-rw-r--r--doc/rfc/rfc1646.txt731
1 files changed, 731 insertions, 0 deletions
diff --git a/doc/rfc/rfc1646.txt b/doc/rfc/rfc1646.txt
new file mode 100644
index 0000000..353e1ff
--- /dev/null
+++ b/doc/rfc/rfc1646.txt
@@ -0,0 +1,731 @@
+
+
+
+
+
+
+Network Working Group C. Graves
+Request for Comments: 1646 T. Butts
+Category: Informational M. Angel
+ Open Connect Systems
+ July 1994
+
+
+ TN3270 Extensions for LUname and Printer Selection
+
+Status of this Memo
+
+ This memo provides information for the Internet community. This memo
+ does not specify an Internet standard of any kind. Distribution of
+ this memo is unlimited.
+
+Abstract
+
+ This document describes protocol extensions to TN3270. There are two
+ extensions outlined in this document. The first defines a way by
+ which a TN3270 client can request a specific device (LUname) from a
+ TN3270 server. The second extension specifies how a TN3270 printer
+ device can be requested by a TN3270 client and the manner in which
+ the 3270 printer status information can be sent to the TN3270 server.
+ Discussions and suggestions for improvements to these enhancements
+ should be sent to the TN3270E Working Group mailing list
+ TN3270E@list.nih.gov . These extensions will be called TN3287 in this
+ document. This information is being provided to members of the
+ Internet community that want to support the 3287 data stream within
+ the TELNET protocol.
+
+1. INTRODUCTION
+
+ The need to communicate with IBM mainframe systems has a number of
+ unique requirements associated with it. This document addresses
+ those needs in a TCP/IP communications network.
+
+ IBM terminals are generically referred to as 3270's which includes a
+ broad range of terminals and devices,not all of which actually begin
+ with the numbers 327x.
+
+ The 3270 family of terminals and the IBM mainframe applications
+ systems are VERY closely coupled and it is the nature of the way the
+ 3270s and the applications interact which require that this document
+ be available to provide a consistent way for the TCP/IP environment
+ to interact effectively with the 3270 applications of the IBM
+ mainframe world.
+
+
+
+
+
+Graves, Butts & Angel [Page 1]
+
+RFC 1646 TN3270 Extensions July 1994
+
+
+ IBM mainframe applications systems have existed for almost two
+ decades now and are used to serve tens of thousands of users daily.
+ For this reason it is usually the need of a mainframe environment to
+ add TCP/IP network support WITHOUT writing new applications to run
+ with the TCP network. The TN3270 series of documents addresses how
+ this can be done and maintain compatibility with those mainframe
+ application systems.
+
+ One of the unique characteristics of the 3270 terminals is their
+ ability to communicate status information in an out-of-band data
+ flow. These status's are in turn used by the applications systems to
+ support error recovery, and conflict resolutions, examples of these
+ are printer out of paper, and terminal powered up. The terminals are
+ also half duplex and block mode in their operations, which results in
+ the need to communicate when blocks are being sent, when they end,
+ and when they cannot be sent. This document describes these
+ characteristics in IBM VTAM/SNA terms. Some VM mainframe application
+ systems do not use VTAM, so for those systems these terms don't
+ apply. For any systems which use VTAM these terms apply and are
+ dealt with in some way by the TCP/IP to VTAM interface.
+
+ VTAM/SNA is a hierarchical network and some of that hierarchy needs
+ to be addressed by the TCP network attaching to it if the
+ applications systems are to continue to provide the same applications
+ support that they have provided to the 3270 terminals.
+
+ The 3270 terminal environment consists of a terminal controller with
+ terminals attached to that controller. In VTAM/SNA this controller
+ is called a PU (Physical Unit) and the terminals called LUs (Logical
+ Units). The PU is used to communicate management information to the
+ VTAM/SNA system, and the LU is used by the application to communicate
+ with the terminal. VTAM/SNA identifies each LU and PU in a network
+ by a unique name. These names are referred to as LUnames and
+ PUnames, and is how the network is managed and the applications
+ identify what terminals are being communicated with in the network.
+ The actual connection between a terminal and the applications is
+ referred to as a session, and it is this session which has both in-
+ band and out-of-band information flows sent between the applications
+ and the terminals.
+
+ VTAM/SNA 3270 terminals actually have two sessions when communicating
+ with the applications. One session is directly connected with the
+ application and the other session is connected directly to VTAM. It
+ is the session with VTAM, also called the SSCP, that is used to
+ communicate the out-of-band information flows. This session is
+ called the SSCP-LU session, and the session with the application is
+ called the LU-LU session (in VTAM an applications is just another
+ Logical Unit).
+
+
+
+Graves, Butts & Angel [Page 2]
+
+RFC 1646 TN3270 Extensions July 1994
+
+
+ One such out-of-band flow is the LUSTAT message which tells the
+ application that the status of the terminal has changed, and is how a
+ printer or screen tells the application that it is ready, or is not
+ ready to receive data.
+
+ There are also flows which must be able to flow in the LU-LU session
+ to help control the use of the terminal by applications. The block
+ of information sent in a session is called an RU (Request Unit) and
+ it tells what type of data this block contains, how long it is and if
+ more data (RUs) is coming along. This is a gross over simplification
+ of what RUs are and do, but it should help understand their use in
+ the TN3270 documents. Some of the VTAM/SNA terms used to describe
+ what an RU is requesting are: Chains/chaining which tell a session
+ partner that another RU is being sent or not being sent in this
+ transmission. Brackets which are used to indicate that a unit of
+ work is complete, such as when a printout of a file is complete.
+
+ The determination of what part of the VTAM/SNA protocols such as
+ brackets and chaining are to be used are managed by VTAM tables
+ called LOGMODE tables. These tables are selected when an LU-LU
+ session is started and set up such things as bracket, and/or chaining
+ protocols; and the type of terminal data contained in the RUs, such
+ as printer data without screen formatting data (LU type 1), 3270
+ screen formatted data (LU type 2) and 3270 screen formatted data for
+ a printer (LU type 3). The LOGMODE tables also contain the size of
+ the RU to be sent and received. These tables also communicate the
+ screen size of 3270 terminals such as 24X80 (Model 2), 27X132 (Model
+ 5), etc. Each LU has a LOGMODE table entry hard assigned to it as
+ part of the VTAM configuration (often called a GEN). The selection
+ of these table entries can't be controlled by the terminal LU or PU.
+ They can only be selected by the user at connection/logon time or by
+ the application when the connection is established. The actual
+ LOGMODE entries to be used during a session are sent at session logon
+ time, in a special type of RU called a BIND. Once the bind has been
+ sent then the rules for the use of the session have been set, can't
+ be changed, and must be followed.
+
+ The purpose of the TN3287 protocol is to provide a general IBM 3270
+ host printer communications facility. Its primary goal is to allow a
+ method of connecting printer devices and printer-oriented processes
+ to each other. This protocol will allow a TN3270 Client to process
+ 3287 print data streams.
+
+ This memo supplements and extends the STD 8, RFC 854, TELNET Protocol
+ Specification. This memo also presents an example of the correct
+ implementation.
+
+
+
+
+
+Graves, Butts & Angel [Page 3]
+
+RFC 1646 TN3270 Extensions July 1994
+
+
+2. GENERAL CONSIDERATIONS
+
+ A TELNET connection is a Transmission Control Protocol (TCP)
+ connection used to transmit data with interspersed TELNET control
+ information.
+
+ The companion document, STD 8, RFC 854 -- "TELNET Protocol
+ Specification" should be consulted for further information about the
+ TELNET command, codes and code sequences referenced in this
+ specification.
+
+3. CLIENT-SERVER NEGOTIATION
+
+ The TN3270 Client and Server require a specific negotiation protocol.
+ After the negotiation is complete, all transmission between the
+ Client and Server is in TELNET Binary format with a TELNET "End-Of-
+ Record(EOR)" sequence at the end of each data stream.
+
+ Support for the TN3287 data stream requires that both sides:
+
+ A. Are able to exchange binary data.
+
+ B. Can establish the agreement between client and server on the
+ terminal type that will be used.
+
+ C. Agree to use the TELNET IAC EOR as a delimiter for inbound
+ and outbound TN3287 data streams
+
+ This implementation requires the options: TERMINAL-TYPE and BINARY be
+ successfully negotiated between the Client and Server before
+ processing of any print data streams.
+
+ This implementation supports host applications that can mix LU 1 and
+ LU 3 type data in the data stream.
+
+3.1 TN3287 SERVER
+
+ The maximum Request Unit (RU) size is server specific, but should not
+ exceed 4 kilobytes.
+
+ The LU type is determined by the bind from the mainframe application.
+ The server, when bound, must remember LU 1 or LU 3 type.
+
+ The server will automatically unbind the session upon receipt of a
+ TELNET CLOSE command. The printer will be reported to VTAM as
+ powered down until a new TELNET connection is established.
+
+
+
+
+
+Graves, Butts & Angel [Page 4]
+
+RFC 1646 TN3270 Extensions July 1994
+
+
+3.2 TN3287 CLIENT
+
+ The TN3287 Client is a TN3270 client created specifically to print
+ mainframe 3270 print data. The client emulates the IBM device type
+ that it identifies itself to the TN3270 server as, in this case, an
+ IBM 3287 model 1 type printer. The design of this printer protocol
+ is aligned with the way printing occurs in the IBM host and how 3270
+ printers function. These printer extensions DO NOT support a 3270
+ printer client that cannot accept both types LU 1 and LU 3 printer
+ streams. No IBM printer operates in this fashion, and as a result,
+ no TN3270 server could function properly with mainframe applications
+ if it didn't allow for a mixing of LU 1 and LU 3 data streams. The
+ common way in which this can occur is printer sharing between
+ multiple IBM host applications, such as CICS and JES. Since there is
+ no restriction, the JES can be configured to output LU 1 data
+ streams, and the CICS can be configured for LU 3 data streams.
+ Therefore, the server will identify what LU type the current
+ application connected to the server is using. If that type is LU 1,
+ ALL message records sent to the Client will be preceded by one byte
+ of binary zeros (0x00). If the first byte is not zeros, then that
+ byte will be a valid LU type 3 Write-Command-Code(WCC), which can
+ NEVER be zeros. Thus, the client can tell the LU type of data as
+ each record is received.
+
+ This protocol does allow for the client to shutdown if the client
+ does not wish to support both LU types. This is accomplished by
+ detecting an invalid data type from the received record, and
+ notifying the user that the mainframe application has sent LU type x
+ print data and should be configured for LU type y printing.
+
+4. COMMAND STRUCTURE
+
+ 1. All TELNET commands consist of at least a two-byte sequence:
+ the "Interpret-as-Command(IAC)" escape character followed by
+ the code for the command.
+
+ NOTE: Since the TELNET IAC character (255 decimal) is used as a
+ delimiter (together with EOR) in the inbound and outbound data
+ streams, a data byte within the data stream itself that has the same
+ value as the IAC command is sent as two bytes (255, 255) and one byte
+ is discarded.
+
+4.1 TELNET COMMANDS
+
+ Command meaning - WILL and DO commands are used to obtain and grant
+ permission for the subsequent subnegotiation. Both sides must
+ exchange WILL TERM-TYPE and DO TERM-TYPE before subnegotiation.
+
+
+
+
+Graves, Butts & Angel [Page 5]
+
+RFC 1646 TN3270 Extensions July 1994
+
+
+ The actual exchange of information is done within the option
+ subcommand.
+
+ <IAC DO TERMINAL-TYPE> Sender requests that the other party begin
+ terminal-type sub-negotiation.
+
+ <IAC WILL TERMINAL-TYPE> Sender is willing to send terminal-type
+ information in a subsequent sub-negotiation.
+
+ <IAC SB TERMINAL-TYPE SEND IAC SE> Sender requests the receiver to
+ transmit his terminal-type.
+
+ <IAC SB TERM TYPE IS IBM-3287-1 IAC SE> Sender is stating the name
+ of his terminal-type. The code for <IS> is 0. Optionally, a
+ specific Logical Unit (LU) can be requested by using the TERMINAL-
+ TYPE string below. If no LUname is specified, the first available
+ 3287 LU is selected.
+
+ IAC SB TERM-TYPE IS IBM-3287-1 @ LUNAME IAC SE
+
+ <IAC DO BINARY> Sender requests that sender of the data starts
+ transmitting or confirms that the sender of data is expected to
+ transmit characters that are to be interpreted as 8 bits of binary
+ data by the receiver.
+
+ <IAC WILL BINARY> Sender requests permission to begin transmitting,
+ or confirms it will now begin transmitting binary data.
+
+ An <EOR> is sent at the end of each SNA Request Unit (RU) end of
+ chain, in either direction. The first byte following the <EOR> is a
+ Write-Command-Code(WCC) for LU 3 data streams.
+
+ An <AO> is sent at the end of the SNA RU and end of bracket. This
+ signifies the end of the print output or file by the IBM host
+ application and possibly a change of LU type.
+
+4.2 COMMAND VALUES
+
+
+ TELNET COMMAND CODE
+ IAC Interpret as Command 255
+ DO 253
+ WILL 251
+ SB SuBnegotiation option 250
+ SE Subnegotiation End 240
+ TERMINAL-TYPE 24
+ SEND 1
+ IS 0
+
+
+
+Graves, Butts & Angel [Page 6]
+
+RFC 1646 TN3270 Extensions July 1994
+
+
+ EOR End-Of-Record 25
+ BINARY 0
+ AO Abort Output 245
+ IP Interrupt Process 244
+ AYT Are You There 246
+ BREAK 243
+
+ NOTE: The above codes and code sequences have the indicated meaning
+ only when immediately preceded by an "Interpret as Command (IAC)".
+
+5. TN3270 Printer Status Message
+
+ The status message can be sent at any time. It must be sent every
+ time the TN3270 Server sends an End-of-Record(EOR) indicator to the
+ TN3270 Client, or when a printing error occurs at the Client. The
+ Printer Status Message is only sent by the TN3270 Client. Once the
+ End-Of-Record IAC is processed, the TN3270 Client sends the status
+ message to the server when it is ready to receive more print data.
+
+ MESSAGE DESCRIPTION: SOH % R S1 S2 IAC EOR
+
+
+ SOH = 0X01
+ % = 0X6C
+ R = 0XD9
+ S1 = Status/Sense Byte 0
+ S2 = Status/Sense Byte 1
+ IAC = Telnet IAC Character
+ EOR = Telnet EOR Character
+
+5.1 Status/Sense Byte description
+
+5.1.1. S/S Byte 0:
+
+ High Order Low Order
+
+
+ _____________________________________________________________
+ | |
+ | 0 1 2 3 4 5 6 7 |
+ |___________________________________________________________|
+
+
+ Bit Number: Bit Definition:
+
+ 0 Always Zero
+
+ 1 Always Zero
+
+
+
+Graves, Butts & Angel [Page 7]
+
+RFC 1646 TN3270 Extensions July 1994
+
+
+ 2 Always Zero
+
+ 3 Always Zero
+
+ 4 Always Zero
+
+ 5 Unit Specify - is set due to an error
+ condition. The reason for the error
+ condition will be indicated in S/S Byte 1.
+ See Note 1*.
+
+ 6 Device End - when this bit sent in response
+ to a data message it indicates the client
+ has successfully processed the data message
+ from the server and notifies the server to
+ send a new data message to the client when
+ available. See Note 2*.
+
+ 7 Always Zero
+
+
+ Note 1*: A negative response to the Server's data message would be
+ S/S Byte 0 Bit 5 "Unit Specify condition". The possible Unit Specify
+ conditions are listed below. (See Section 3.2 for bit settings for
+ the Unit Specify conditions listed below.)
+
+ Unit Specify Condition: SNA Sense Code sent to host:
+
+ Command Rejected 0X10030000
+ Intervention Required 0X08020000
+ Data Check 0X10010000
+ Operation Check 0X10050000
+ Component Disconnected (LU) 0X08020000
+
+ Note 2*: Device End - A positive response to the Server's data
+ message would be the "Device End" bit (S/S Byte 0 Bit 6) to indicate
+ a ready to receive data from the host condition. This will also be
+ sent after clearing a previous Unit Specify condition of
+ "Intervention Required".
+
+
+
+
+
+
+
+
+
+
+
+
+Graves, Butts & Angel [Page 8]
+
+RFC 1646 TN3270 Extensions July 1994
+
+
+5.1.2. S/S Byte 1:
+
+ High Order Low Order
+
+ ______________________________________________________________
+ | |
+ | 0 1 2 3 4 5 6 7 |
+ |____________________________________________________________|
+
+
+ Bit Number: Bit Definition:
+
+
+ 0 Always Zero
+
+ 1 Always Zero
+
+ 2 Command Rejected (CR) -- This bit
+ indicates an invalid 3270 command
+ generated.
+
+ 3 Intervention Required - Printer Not Ready.
+ See Note 3*.
+
+ 4 Component Disconnected - Printer is powered
+ off or printer cable not connected. See
+ Note 4*.
+
+ 5 Data Check - Invalid print data
+
+ 6 Always Zero
+
+ 7 Operation Check - An illegal buffer address
+ or incomplete order sequence
+
+ Note 3*: The Intervention Required is cleared by sending an S/S
+ message with the "Device End" bit (Bit 6 of S/S byte 0). The LUSTAT
+ sent to the host is 0X00010000. The IBM host interprets this as a
+ "printer now ready" condition.
+
+ Note 4*: The Component disconnected is cleared by sending an S/S
+ message with the "Device End" bit (Bit 6 of S/S byte 0). The LUSTAT
+ sent to the host is 0X082B0000. The IBM host interprets this as a
+ "printer now ready -- presentation space integrity may be lost"
+ condition.
+
+
+
+
+
+
+Graves, Butts & Angel [Page 9]
+
+RFC 1646 TN3270 Extensions July 1994
+
+
+6. The following is an example of the Client-Server negotiation
+ process.
+
+ Server: IAC DO TERMINAL-TYPE
+ Client: IAC WILL TERMINAL-TYPE
+ Server: IAC SB TERMINAL-TYPE SEND IAC SE
+ Client: IAC SB TERMINAL-TYPE IS IBM-3287-1 IAC SE
+
+ Note: To request a specific LU the TERMINAL-TYPE string would be:
+ IAC SB TERMINAL-TYPE IS IBM-3287-1 @ LUNAME IAC SE
+ (The client has specified its terminal type is an IBM-3287-1)
+
+
+ Server: IAC DO END-OF-RECORD
+ Client: IAC WILL END-OF-RECORD
+ Server: IAC WILL END-OF-RECORD
+ Client: IAC DO END-OF-RECORD
+
+ (The Server and Client have both agreed to transmit End-Of-Record
+ (EOR)).
+
+
+ Server: IAC DO TRANSMIT-BINARY
+ Client: IAC WILL TRANSMIT-BINARY
+ Server: IAC WILL TRANSMIT-BINARY
+ Client: IAC DO TRANSMIT-BINARY
+ (The Server and Client have both agreed to use binary
+ transmission)
+
+
+ Server: 0x00 (3270 PRINT DATA)
+ Client: (S/S with DEV END) IAC EOR
+ Server: 0x00 (3270 PRINT DATA) IAC EOR
+
+ NOTE: LU 1 type data is prefaced with a 0x00 character. LU 3
+ type data is not prefaced with a special character. This
+ character will precede print data in each chain, and should be
+ discarded before the print data is processed. An <IAC EOR> must
+ be received before changing to LU 1 or LU 3 type data.
+
+ Client: (S/S with IR) IAC EOR (This indicates a paper jam
+ at printer.)
+ Client: (S/S with DE) IAC EOR (This indicates the clearing
+ of above condition.)
+ Server: 0x00 (3270 PRINT DATA) (This indicates start of LU 1
+ data)
+
+ Server: (3270 PRINT DATA)
+
+
+
+Graves, Butts & Angel [Page 10]
+
+RFC 1646 TN3270 Extensions July 1994
+
+
+ Server: (3270 PRINT DATA)
+ Server: (3270 PRINT DATA) IAC EOR
+ Client: (S/S with DE) IAC EOR
+ Server: 0x00 (LAST 3270 PRINT DATA) IAC EOR
+
+
+ Client: (S/S with DE) IAC EOR
+ Server: IAC AO
+ (The Abort Output <AO> signifies the end-of-bracket -- end of
+ print job)
+
+7. SECURITY CONSIDERATIONS
+
+ This document does not specify a security methodology to insure that
+ the client requesting a printer LU name is authorized to access that
+ LU. Currently, this is left up to individual server implementations.
+ The design of the protocols described in this document allow for the
+ future incorporation of the RFCs regarding encryptions and
+ authentication protocols and services. However, before this may
+ occur, certain extensions may be required to the protocols defined in
+ this document or to the encryptions and authentication services and
+ protocols.
+
+8. ERROR CONDITIONS
+
+ After a client and server have successfully completed negotiation, a
+ number of potential error conditions may be detected by the server
+ which require notifying the client and aborting the connection.
+
+ When an error condition is detected by the server, the client must be
+ negotiated back into NVT mode by the server sending a "WONT/DONT
+ BINARY" TELNET sequence and the client responding with the
+ appropriate "DONT/WONT BINARY" TELNET sequence.
+
+ The server should immediately send the appropriate error message to
+ the client as an ASCII string and then close the connection. The
+ error message should be prefixed by a numeric identifier to precisely
+ notify the client of the specific error condition. The error message
+ sent to the client should be routed to the proper console or log for
+ corrective action.
+
+ Below is a list of error conditions identified by numeric value,
+ error text, meaning of the error and recovery procedure.
+
+ Message: "01 No LU's of the type configured"
+
+ Meaning: The configuration definition on the server
+ does not include the LU type requested.
+
+
+
+Graves, Butts & Angel [Page 11]
+
+RFC 1646 TN3270 Extensions July 1994
+
+
+ Recovery: Notify your Systems Administrator as this
+ is a permanent error condition.
+
+ Message: "02 Requested LU unavailable"
+
+ Meaning: The requested LU is not available at
+ this time.
+
+ Recovery: This may be a temporary error and may
+ be retried periodically. If the condition
+ persists contact your Systems Administrator.
+
+ Message: "03 Requested LU type is inconsistent with configuration"
+
+ Meaning: The LU requested does not match the terminal
+ type in the server configuration.
+
+ Recovery: Notify your Systems Administrator as this
+ is a permanent error condition.
+
+ Message: "04 Requested LU is not configured"
+
+ Meaning: The LU is not defined in server configuration.
+
+ Recovery: Notify your Systems Administrator as this
+ is a permanent error condition.
+
+ When a client receives a message not defined in the above list, the
+ message should be displayed to a console or log and the connection to
+ the server should be closed. No other recovery should be attempted
+ as this is most likely a fatal error condition. (Notify your Systems
+ Administrator.)
+
+9. REFERENCES
+
+ [1] Postel, J., and J. Reynolds, "TELNET Protocol Specification", STD
+ 8, RFC 854, USC/Information Services Institute, May 1983.
+
+ [2] VanBokkeln, J., "TELNET Terminal-Type Option" RFC 1091, FTP
+ Software Inc., February 1989.
+
+ [3] Postel, J., and J. Reynolds, "TELNET Binary Transmission", STD
+ 27, RFC 856, USC/Information Services Institute, May 1983.
+
+
+
+
+
+
+
+
+Graves, Butts & Angel [Page 12]
+
+RFC 1646 TN3270 Extensions July 1994
+
+
+Authors' Addresses
+
+ Cleve Graves
+ 2711 LBJ Freeway
+ Dallas, Texas 75234
+
+ Phone: (214) 484-5200
+ EMail: cvg@oc.com
+
+
+ Thomas Butts
+ 2711 LBJ Freeway
+ Dallas, Texas 75234
+
+ Phone: (214) 484-5200
+ EMail: tom@oc.com
+
+
+ Michelle Angel
+ 2711 LBJ Freeway
+ Dallas, Texas 75234
+
+ Phone: (214) 484-5200
+ EMail: angel@oc.com
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Graves, Butts & Angel [Page 13]
+