GENWiki

Premier IT Outsourcing and Support Services within the UK

User Tools

Site Tools


rfc:rfc1372

Network Working Group C. Hedrick Request for Comments: 1372 Rutgers University Obsoletes: RFC 1080 D. Borman

                                                   Cray Research, Inc.
                                                          October 1992
                 Telnet Remote Flow Control Option

Status of This Memo

 This RFC specifies an IAB standards track protocol for the Internet
 community, and requests discussion and suggestions for improvements.
 Please refer to the current edition of the "IAB Official Protocol
 Standards" for the standardization state and status of this protocol.
 Distribution of this memo is unlimited.

Introduction

 This document specifies an extended version of the Telnet Remote Flow
 Control Option, RFC 1080, with the addition of the RESTART-ANY and
 RESTART-XON suboptions.

1. Command Names and Codes

 TOGGLE-FLOW-CONTROL   33
     OFF                    0
     ON                     1
     RESTART-ANY            2
     RESTART-XON            3

2. Command Meanings

 IAC WILL TOGGLE-FLOW-CONTROL
    Sender is willing to enable and disable flow control upon command.
 IAC WONT TOGGLE-FLOW-CONTROL
    Sender refuses to enable and disable flow control.  Nothing is
    implied about whether sender does or does not use flow control.
    It is simply unwilling to enable and disable it using this
    protocol.
 IAC DO TOGGLE-FLOW-CONTROL
    Sender is willing to send commands to enable and disable flow
    control.

Hedrick & Borman [Page 1] RFC 1372 Telnet Remote Flow Control Option October 1992

 IAC DONT TOGGLE-FLOW-CONTROL
    Sender refuses to send command to enable and disable flow control.
 IAC SB TOGGLE-FLOW-CONTROL OFF IAC SE
    Sender requests receiver to disable flow control.
 IAC SB TOGGLE-FLOW-CONTROL ON IAC SE
    Sender requests receiver to enable flow control.
 IAC SB TOGGLE-FLOW-CONTROL RESTART-ANY IAC SE
    Sender requests that when flow control is enabled, the receiver
    allow any character (except another XOFF) to restart output.
 IAC SB TOGGLE-FLOW-CONTROL RESTART-XON IAC SE
    Sender requests that when flow control is enabled, the receiver
    allows only the XON character to restart output.

3. Default Specification

 The default specification for this option is
    WONT TOGGLE-FLOW-CONTROL DONT TOGGLE-FLOW-CONTROL
 meaning flow control information will not be exchanged in either
 direction.

4. Motivation

 This memo describes a method of remotely toggling flow control
 between a user telnet process and the attached terminal.  Only flow
 control of data being transmitted from the telnet process to the
 terminal is considered.  Many systems will also allow flow control of
 data from the terminal to the telnet process, however there is seldom
 need to change this behavior repeatedly during the session.
 There are two common ways of doing flow control: hardware and
 software.  Hardware flow control uses signals on wires dedicated for
 this purpose.  Software flow control uses one or two specific
 characters sent along the same path as normal input data.  Most
 commonly, XOFF (control-S) and XON (control-Q) are used to stop and
 start output, respectively.  The option described herein is useful
 primarily where software flow control is being used.  (Since hardware
 flow control does not preempt any characters, there is normally no

Hedrick & Borman [Page 2] RFC 1372 Telnet Remote Flow Control Option October 1992

 need to disable it.)  It should also be noted that flow control can
 either be generated automatically by the terminal when its buffers
 are close to overflowing, or manually by the user, when he/she cannot
 read the information as fast as it is being displayed, and unread
 information will start scrolling off the screen.
 The primary difficulty with software flow control is that it preempts
 one or two characters.  Host software often requires the user to be
 able to input every possible ASCII character.  (Certain editors are
 notorious for having XOFF and XON as commonly-used commands.)  For
 this reason, operating systems often allow programs to disable flow
 control.  While it is disabled, the characters that normally signal
 flow control may be read as normal input.  In a telnet environment,
 flow control is normally done by the user telnet process, not by the
 host computer.  In addition, many operating systems, when flow
 control is enabled, the user may specify whether the XOFF character
 is the only character that is allowed to re-enable the output of
 data, or whether any typed character should re-enable the flow of
 data.  Thus this RFC defines a way to propagate flow control status
 from the host computer to the user telnet process.

5. Description of the Option

 Use of the option requires two phases.  In the first phase, the
 telnet processes agree that one of them will TOGGLE-FLOW-CONTROL.
 WILL and DO are used only in this first phase.  In general there will
 be only one exchange of WILL and DO for a session.  Subnegotiations
 must not be issued until DO and WILL have been exchanged.  It is
 permissible for either side to turn off the option by sending a WONT
 or DONT.  Should this happen, no more subnegotiations may be sent,
 unless the option is re-enabled by another exchange of DO and WILL.
 Once the hosts have exchanged a WILL and a DO, the sender of the DO
 TOGGLE-FLOW-CONTROL is free to send subnegotiations to enable and
 disable flow control in the other process, and to send
 subnegotiations for recommendations on when to restart output.
 Normally, the sender of the DO will be a host, and the other end will
 be a user telnet process, which is connected to a terminal.  Thus the
 protocol is normally asymmetric, however it may be used in both
 directions without confusion should need for this arise.
 As soon as the DO and WILL have been exchanged, the sender of the
 WILL must enable flow control.  This allows flow control to begin in
 a known state.  The decision of whether to restart output only when
 the XON character is received, or when any character received, starts
 in a system dependent state.  (This is to make it consistent with
 older implementations of the TOGGLE-FLOW-CONTROL option that do not
 understand the RESTART-ANY and RESTART-XON suboptions.)  The sender

Hedrick & Borman [Page 3] RFC 1372 Telnet Remote Flow Control Option October 1992

 of the DO should send either a RESTART-ANY or RESTART-XON suboption
 to put the restart characteristics to a know state.  Some clients
 might not be able to support both of the RESTART-ANY and RESTART-XON
 modes due to system limitations, and would then choose to ignore
 these commands.  There is no way for the server to be notified of
 this condition, but a client should make every attempt to honor the
 state requested by the RESTART-ANY and RESTART-XON modes.  Should the
 option be disabled by exchange of DONT and WONT, flow control may
 revert to an implementation-defined default state.  It is not safe to
 assume that flow control will remain in the state requested by the
 most recent subnegotiation.
 In most implementations of software flow control, when enabled, the
 XOFF and XON characters are never propagated to the server; they are
 typically eaten by the terminal driver between the telnet client and
 the attached terminal.  In most implementations that support the
 RESTART-ANY functionality, the typed character that re-enables the
 output is not eaten by the terminal driver, unless it is the XON
 character.
 Currently, only four command codes are defined for the
 subnegotiations: flow control off (code 0), flow control on (code 1),
 restart output on any character (code 2) and restart output only on
 XON (code 3).  None of these codes requires any additional data,
 however it is possible that additional commands may be added.  Thus
 subnegotiations having command codes other than those defined in this
 document should be silently ignored.
 This option does not deal with the issue of allowing the DO side of
 the connection to inform the WILL side which characters should be
 used for XON and XOFF.  That functionality is already supplied by the
 LINEMODE [1] option.

Hedrick & Borman [Page 4] RFC 1372 Telnet Remote Flow Control Option October 1992

6. Example

 Here is an example of the use of this option:
     Client                           Server
                                      IAC DO TOGGLE-FLOW-CONTROL
     IAC WILL TOGGLE-FLOW-CONTROL
     [ The server is now free to send commands to change flow control.
       Note that the client must now have enabled flow control, but
       that whether it is restart on XON only or on any character is
       client specific.  ]
                                      IAC SB TOGGLE-FLOW-CONTROL
                                      RESTART-ANY IAC SE
     [ The client should now switch to allowing output to restart when
       the user types any character, if the client is able to support
       that functionality.  ]
                                      IAC SB TOGGLE-FLOW-CONTROL OFF
                                      IAC SE
                                      IAC SB TOGGLE-FLOW-CONTROL ON
                                      IAC SE

References

 [1] Internet Engineering Task Force, Telnet Working Group,
     D. Borman, Editor, "Telnet Linemode Option", RFC 1184,
     Cray Research, Inc., October 1990.

Acknowledgments

 The original specification for this option was written by Charles
 Hedrick, and published as RFC 1080.  The RESTART-ANY and RESTART-XON
 suboptions were defined and added to this version of the document by
 David Borman.

Security Considerations

 Security issues are not discussed in this memo.

Hedrick & Borman [Page 5] RFC 1372 Telnet Remote Flow Control Option October 1992

Authors' Addresses

 David Borman
 Cray Research, Inc.
 655F Lone Oak Drive
 Eagan, MN 55121
 Phone: (612) 452-6650
 Email: dab@CRAY.COM
 Charles Hedrick
 Director, LCSR Computing Facility
 Rutgers University
 227 CORE Building
 P.O. Box 879
 Piscataway, NJ  08855-0879
 Phone: (908) 932-3088
 Email: hedrick@cs.rutgers.edu
 Mailing List: telnet-ietf@CRAY.COM

Hedrick & Borman [Page 6]

/home/gen.uk/domains/wiki.gen.uk/public_html/data/pages/rfc/rfc1372.txt · Last modified: 1992/10/23 18:49 by 127.0.0.1

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki