Subject: Negotiation of Environment Options First

From: Jeffrey Stevens <[email-masked]>
Date: Fri, 19 Jun 1998 09:22:35 -0500

At the TN3270e/TN5250e Interoperability Event, 6/1-6/3 held in IBM Raleigh,
Wall Data representatives told IBM the there were some questions about how
our Draft TN5250E RFC discusses "deferring certain negotiations" and that
Telnet does not really follow the draft RFC.  In particular, the
negotiation of NEW-ENVIRON and TERMTYPE options is not adhered to.

We need to clarify that the NEW-ENVIRON option must be fully negotiated
before the end of BINARY/EOR options are complete (the order between
NEW-ENVIRON and TERMTYPE is not significant, and can be done in any
sequence). In other words, BINARY/EOR should be negotiated last, since once
these values are set to support transparent (5250) mode of operation, it is
no longer possible to re-negotiate the NEW-ENVIRON options.

The reason NEW-ENVIRON option is locked out at this point is because the
device has now been selected (and possibly modified or auto-created).  It
is no longer possible to change the device attributes at this point, any
further negotiations of the NEW-ENVIRON will still proceed, but they will
not be reflected in the device attributes.

The following shows a real trace example.  It is not a good example for you
because it does not show TERMTYPE and NEW-ENVIRON out of sequence (I can't
find a client that does this yet).  I thought I would post it anyway to
show that EOR and BINARY options are negotiated by BOTH sides and occur
after NEW-ENVIRON.  This particular client rejected our NEW-ENVIRON
solicitation.

Telnet Server                 Telnet Client
-------------                 -------------
IAC DO NEW-ENVIRON      ->
FFFD27
IAC DO TERMTYPE         ->
FFFD18
                        <- IAC WONT NEW-ENVIRON
                        <- IAC WILL TERMTYPE
                           FFFC27
                           FFFB18
IAC SB TERMTYPE SEND
IAC SE                  ->
FFFA1801FFF0
                        <- IAC SB TERMTYPE IS IBM-3477-FC IAC SE
                           FFFA180049424D2D 333437372D4643FF  F0
IAC DO EOR              ->
FFFD19
IAC WILL EOR            ->
FFFB19
                        <- IAC WILL EOR
                        <- IAC DO EOR
                           FFFB19
                           FFFD19
IAC DO BINARY           ->
FFFD00
IAC WILL BINARY         ->
FFFB00
                        <- IAC WILL BINARY
                           FFFB00
                        <- IAC DO BINARY
                           FFFD00
                        <- RFC 1205 Data Stream
                           001112A000000400 00030903F1110903  F2FFEF
--
J.S. (Jeffrey) Stevens      AS/400 TCP/IP          (Telnet/WSG/LPD)
Work:  [email-masked]        Personal:  [email-masked]