Internet DRAFT - draft-ietf-tn3270e-implementation

draft-ietf-tn3270e-implementation



 


TN3270 Enhancements Working Group                           Jon Penner
Internet Draft                                             August 1993

                        TN3270 Current Practices


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.  Internet Drafts may be updated, replaced, or obsoleted by
   other documents at any time.  It is not appropriate to use Internet
   Drafts as reference material or to cite them other than as a
   "working draft" or "work in progress."

   Please check the 1id-abstracts.txt listing contained in the
   internet-drafts Shadow Directories on ds.internic.net,
   nic.nordu.net, ftp.nisc.sri.com, or munnari.oz.au to learn the
   current status of any Internet Draft.

Abstract

   This document describes the existing implementation of transferring
   3270 display terminal data using currently available telnet
   capabilities.   The name traditionally associated with this
   implementation is TN3270.

   Information is provided to aid in the implementation of TN3270
   servers as well as client terminal emulators.

   The following areas pertaining to TN3270 implementations are
   covered in this document:

   1. the telnet options negotiated to transition from a NVT ASCII
   state to a TN3270 state ready to process incoming 3270 data stream
   commands

   2. the method for sending and receiving 3270 data

   3. the method of handling some special keys known as SYSREQ and
   ATTN using current available telnet commands.

   4. the events that will transition a TN3270 session back to an NVT
   session


Motivation

   3270 display terminal data differs from traditional display terminal
   data in that it is block mode and uses EBCDIC instead of ASCII
   character representation. These two differences are the primary

J. Penner                Expires February 1994                [Page 1]

TN3270 Enhancements Working Group                           Jon Penner
Internet Draft                                             August 1993

   reason for the differentiation of TN3270 from standard Telnet in
   this document.


Background

   Existing proprietary IBM networks are not easily integrated with
   the increasing number of multi-platform networking environments,
   specifically TCP/IP. These proprietary IBM networks are referred to
   as SNA (Systems Network Architecture) in this document. To address
   this issue, several vendors have introduced telnet servers that
   provide a TCP/IP users a connection to existing IBM mainframes by
   supporting display terminal emulation using a subset of the existing
   telnet protocol. IBM now also offers host based tn3270 support over
   TCP/IP.

   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.

   3270 terminals in the IBM SNA network environment have 2 parallel
   sessions with the host computer. One is used for communicating with
   the host application, the other is used for communicating with the
   network control program that links the terminal with the
   appropriate host computer.  For the purposes of TN3270, this
   distinction is not apparent or relevant since there is actually
   only a single telnet session with the host computer or server.  On
   an IBM SNA network, the 3270 terminal has a special key that toggles
   between the two sessions (SYSREQ).  A brief discussion on how
   some telnet servers deal with this is included.

   In an SNA environment, a client session is identified by a Logical
   Unit (LU) name.  In a non-SNA environment, there is not a LU name
   associated with a client session.  The closest thing to a LU name
   in the TN3270 environment is the client's IP address.  Although some
   telnet servers are connected to the host using SNA, tn3270 clients
   using these servers have no defined way to determine the LU name
   associated with the session.

   Currently, support for 3270 terminal emulation over Telnet is
   accomplished by the de facto standard of negotiating three separate
   Telnet Options - Terminal-Type [2], Binary Transmission [3], and
   End of Record [4].  This negotiation and the resulting data flow will
   be described below.

   RFC 1041 [1] attempted to standardize the method of negotiating
   3270 terminal support by defining the 3270 Regime Telnet Option.
   Historically, very few developers and vendors ever implemented
   RFC 1041.

   All references in this document to the 3270 datastream, SNA versus
   non-SNA operation, 3270 datastream commands, orders, structured

J. Penner                Expires February 1994                [Page 2]

TN3270 Enhancements Working Group                           Jon Penner
Internet Draft                                             August 1993

   fields and the like rely on [6].

   References to SNA Request and Response Units rely on [7].

   TN3270 does not support typical SNA responses and is classified as a
   non-SNA protocol.  A TN3270 emulator is not aware or concerned about
   how the telnet server is connected to a 3270 host application.
   Current telnet server implementations are either 3270 host based or
   connected to the host using the SNA protocol.

   NOTE: Except where otherwise stated, this document does not
   distinguish between telnet servers that represent SNA devices and
   those that represent non-SNA 3270 devices.

   Some typical "SNA" functions such as the SYSREQ
   and ATTN keys have been mapped to existing telnet function codes
   and are supported by some telnet server implementations.

   There are several shortcomings in current tn3270 implementations;
   among them are the following:

    - It provides no capability for Telnet clients to emulate the 328x
      class of printers.

    - There is no mechanism by which a Telnet client can request that
      a connection be associated with a given 3270 device-name.  This
      can be of importance when a terminal session is being
      established, since many host applications behave differently
      depending on the network name of the terminal.  In the case of
      printer emulation, this capability is an absolute necessity
      because a large number of host applications have some method of
      pre-defining printer destinations.

    - The 3270 ATTN and SYSREQ keys are not universally supported.

    - There is no support for the SNA positive/negative response
      process. All data that is sent is assumed to either be handled
      or ignored.
      A negative response indicates some sort of error at the client
      while processing the previously received data; this could be
      caused by the host application building a 3270 datastream that
      contains an invalid command, or by a mechanical error at the
      client side, among other things.
      Positive responses indicate processing of the previously received
      data has completed.

    - There is no mechanism by which the client can access the SNA
      BIND information.  The BIND image in a SNA environment
      contains a detailed description of the session between the
      telnet server and the host application.

    - The connection negotiation does not make it clear whether clients

J. Penner                Expires February 1994                [Page 3]

TN3270 Enhancements Working Group                           Jon Penner
Internet Draft                                             August 1993

      should support 3270 structured fields.

   These and other issues are addressed by the Internet-Draft [?]
   written by Bill Kelly


Command Names and Codes

   TN3270 makes use of existing Telnet commands and codes and does
   not define any new commands.

       BINARY            0
       TERMINAL-TYPE    24
       EOR              25

   Additional commands may be used during a TN3270 session and are
   interpreted as per their respective RFCs. Examples of this are
   3270-REGIME, SUPPRESS-GO-AHEAD, and TM.



Command Meanings

   See respective RFCs.


Connection Negotiation

   The following example shows a TN3270-capable server and a
   tn3270 client establishing a connection:


   The TCP/IP port generally used to connect with is 23 (Telnet).

   At any place before and during the tn3270 connection negotiation
   process, other telnet commands and data may be transferred and
   will be interpreted under the existing telnet state. Some existing
   tn3270 servers start a client connection using an NVT telnet
   dialog to establish parameters needed to complete the tn3270
   connection to the desired host.

   The order of negotiating terminal type, EOR and BINARY is not
   significant, this example shows a typical tn3270 connection.

      Server:  IAC DO TERMINAL-TYPE

      Client:  IAC WILL TERMINAL-TYPE

      Server:  IAC SB TERMINAL-TYPE SEND IAC SE

      Client:  IAC SB TERMINAL-TYPE IS <terminal type>IAC SE


J. Penner                Expires February 1994                [Page 4]

TN3270 Enhancements Working Group                           Jon Penner
Internet Draft                                             August 1993

       where <terminal type> is a string consisting of terminal model,
     type and support of enhanced attribute bytes; and example is
     IBM-3278-2.  The acceptable values are listed in RFC 1340,
     Assigned Numbers [5].  Other values are in use that do not exist
     in [5].
   
     The -2 following 3278 designates the alternate screen size.
     3270 terminals have the ablity to switch between the
     standard (24x80) screen size and an alternate screen size.
     Model -2 is 24x80 which is the same as the standard size.
     Model -3 is 32x80, model -4 is 43x80 and model -5 is 27x132.

     Appending the two character string "-E" to the end of the
     terminal type signifies that the terminal is capable of handling
     3270 extended data stream. This is interpreted to mean that the
     terminal is able to handle structured fields, which are
     described below.  Some telnet server implementations also
     interpret this to mean that the terminal is capable of handling
     extended attributes (highlighting, field validation, character
     set, outlining, etc.) [6].

     The 3279 series of terminals is capable of extended attributes
     while the 3278 series is not.

      Server:  IAC DO EOR IAC WILL EOR
      Client:  IAC WILL EOR IAC DO EOR
      Server:  IAC DO BINARY IAC WILL BINARY
      Client:  IAC WILL BINARY IAC DO BINARY
      Server:  <3270 data stream>
      Client:  <3270 data stream>
           .            .
           .            .

   To terminate the connection the socket is closed by one of
   the session partners. Typically, when the user logs off of the
   host, the telnet server closes the connection.

   If the telnet server wishes to go back to NVT mode, it may issue
   the following commands:

       Server:  IAC WONT BINARY
       Client:  IAC DONT BINARY

           or

       Server:  IAC WONT EOR
       Client:  IAC DONT EOR

   Either one of the above two cases causes the connection to not
   satisfy the requirements for a valid TN3270 session. The telnet
   client should then process data from the server as though it
   were NVT ASCII data.

J. Penner                Expires February 1994                [Page 5]

TN3270 Enhancements Working Group                           Jon Penner
Internet Draft                                             August 1993


Handling 3270 data

   The 3270 data stream consists of a command and its associated data.
   Commands include but are not limited to erase screen, erase and write
   to screen and read current screen; see [6] for a complete description
   of 3270 commands and parameters.

   The reason for negotiating the EOR telnet option [4] is to provide a
   method for separating these commands since no length information is
   specified. 3270 commands are interpreted by the telnet client in
   their entirety.  Each 3270 command and possible data is terminated
   with the IAC EOR sequence.

   The Binary option [3] is also required since 3270 data may contain
   the FF (hexadecimal) or IAC character. When this character is
   encountered during a tn3270 connection it is handled as per the
   Binary RFC [3].

3270 Structured Fields

   3270 structured fields provide a much wider range of features than
   "old-style" 3270 data, such as support for graphics, partitions and
   IPDS printer datastreams. A structured field is a 3270 data type
   that allows non 3270 data to be embedded within 3270 data. Briefly,
   a structured field consists of the structured field command followed
   by one or more data blocks. Each data block has a length and a
   structured field identifier, followed optionally by additional data.

   Not every TN3270 client can be expected to support all structured
   field functions.   There must be a  mechanism by which those clients
   that are capable of supporting some or all structured field
   functions can indicate their wishes. This is typically done by
   adding "-E" to the end of the terminal type string. That is, when the
   terminal identifies itself as being able to handle extended
   attributes, it also is capable of being able to send and receive
   structured fields.

   The design of 3270 structured fields provides a convenient means to
   convey the level of support (including no support) for the various
   structured field functions.  This mechanism is the Read Partition
   Query command, which is sent from the host application to the
   client.  The client responds with a Query Reply, listing which,
   if any, structured field functions it supports.

   A TN3270 client that supports structured fields will
   respond to a Read Partition Query command with the appropriate reply.
   The sequence of events of when a client receives a Read Partition
   Query and it does not support structured fields is left up to the
   client implementation.  Typically clients can identify at least this
   structured field and reply with a null set.


J. Penner                Expires February 1994                [Page 6]

TN3270 Enhancements Working Group                           Jon Penner
Internet Draft                                             August 1993


Implementation Rules

   All commands and parameters are governed by their respective RFCs


The 3270 ATTN (Attention) Key

   The 3270 ATTN key is interpreted by many host applications in an
   SNA environment as an indication that the user wishes to interrupt
   the execution of the current process.  A majority of the telnet
   servers currently accept the telnet IAC BREAK (code 243) sequence to
   signal this event.

   Use of this key requires two things:

    - TN3270 clients should provide as part of their keyboard
      mapping a single key or a combination of keys that map to
      the 3270 ATTN key.  When the user presses this key(s), the
      client should transmit a Telnet BREAK command to the server.

    - TN3270 servers should translate the BREAK command received from
      a TN3270 client into the appropriate form and pass it along
      to the host application as an ATTN key.  In other words, the
      server representing an SLU in an SNA session should send
      a SIGNAL RU to the host application.

   The ATTN key is not supported in a non-SNA environment; therefore,
   a TN3270 server representing non-SNA 3270 devices should ignore
   any Telnet BREAK commands it receives from a client.

The 3270 SYSREQ Key

   The 3270 SYSREQ key is useful in an environment where the
   telnet server is attached to the host using SNA. The SYSREQ key
   is useful in this environment when the host application becomes
   locked and the user wishes to terminate the session without
   closing the Telnet connection.

   The Telnet Interrupt Process (IP) command is interpreted by some
   telnet servers as a SYSREQ key. Other servers recognize the 3270
   Test Request key as a SYSREQ key.  In an SNA environment, pressing
   this key toggles the terminal between the host application session
   and the network control program session.  Usually the user
   will enter LOGOFF once this key has been pressed to terminate
   the application session and then select a new host to connect to.
   Sometimes, if SYSREQ is pressed again, the host application will
   become unlocked and normal activities may then proceed.

   It is entirely up to the telnet server to interpret this command and
   send the appropriate commands to the host as well as format the
   resulting host data for display on the telnet client. The data

J. Penner                Expires February 1994                [Page 7]

TN3270 Enhancements Working Group                           Jon Penner
Internet Draft                                             August 1993

   format during the network control program session is in a slightly
   different format than normal 3270 data. Since the telnet server
   has no way to pass this data directly to the telnet client, it must
   either handle it entirely and ignore SYSREQ events or convert it to
   3270  data to present to the client.  There is no restriction that
   prevents the server from negotiating out of the TN3270 state to
   NVT to present this data.

   In order to implement SYSREQ key support, TN3270
   clients should  provide a key (or combination of keys) that is
   identified as mapping to the 3270 SYSREQ key.  When the user presses
   this key(s), the client should either transmit a Telnet IP command
   or Test Request key to the server, depending on the server
   implementation.

   TN3270 servers representing non-SNA 3270 terminals may ignore any
   Telnet IP commands or Test Request keys they receive from a client.


References

[1] Rekhter, J., "Telnet 3270 Regime Option", RFC 1041, IBM
    Corporation, January 1988.

[2] VanBokkelen, J., "Telnet Terminal-Type Option", RFC 1091,
    FTP Software, Inc., February 1989.

[3] Postel, J., and J. Reynolds, "Telnet Binary Transmission",
    RFC 856, USC/Information Sciences Institute, May 1983.

[4] Postel, J., "Telnet End of Record Option", RFC 885, USC/
    Information Sciences Institute, December 1983.

[5] Reynolds, J., and J. Postel, "Assigned Numbers", RFC 1340,
    USC/Information Sciences Institute, July 1992.

[6] "3270 Information Display System - Data Stream Programmer's
    Reference", publication number GA23-0059, IBM Corporation.

[7] "Systems Network Architecture - Formats",
    publication number GA27-3136, IBM Corporation.


Author's Note

   Portions of this document were drawn from the following sources:

    - A White Paper written by Owen Reddecliffe, WRQ Corporation,
      October 1991.

    - Experimental work on the part of Cleve Graves and Michelle
      Angel, OpenConnect Systems, 1992 - 1993.

J. Penner                Expires February 1994                [Page 8]

TN3270 Enhancements Working Group                           Jon Penner
Internet Draft                                             August 1993


    - Discussions at the March 1993 IETF meeting.

    - Discussions on the "TN3270E" list, Spring 1993.

    - An Internet-draft written by Bill Kelly, Auburn University,
      July, 1993


Author's Address

   Jon Penner
   DCA, Inc.
   2800 Oakmont Drive
   Austin, TX 78664

   Phone: (512) 244-3871

   Email: jjp@bscs.uucp


































J. Penner                Expires February 1994                [Page 9]