[comp.dcom.modems] Flow control with Telebit modems

mishkin@apollo.HP.COM (Nathaniel Mishkin) (01/30/91)

Probably if I understood modems and RS-232 as well as I should, I would
know the answer to this, but...

Suppose I have 2 Telebit modems connected in PEP mode.  Suppose further
that both modems have correctly established flow control in both directions
to their respective DTEs.  My question is this:  If one of the DTEs says
"stop" (i.e., sends an XOFF to the modem or drops RTS, depending on which
kind of flow control is set), will the modem attached to that DTE send
any sort of "stop" signal to the remote modem and induce that remote
modem to say "stop" to its attached DTE (e.g., send an XOFF to the DTE
or drop CTS)?  I'm guessing/hoping that the magic of PEP mode (which,
after all, includes stuff like letting one modem read its peer's
registers!) includes a modem-to-modem flow control.

Or am I hopeless naive about how all this works? 

--
                    -- Nat Mishkin
                       Cooperative Object Computing Division / East
                       Hewlett-Packard Company
                       mishkin@apollo.hp.com

tnixon@hayes.uucp (01/30/91)

In article <1991Jan29.142326@apollo.HP.COM>, mishkin@apollo.HP.COM
(Nathaniel Mishkin) writes: 

> Suppose I have 2 Telebit modems connected in PEP mode.  Suppose further
> that both modems have correctly established flow control in both directions
> to their respective DTEs.  My question is this:  If one of the DTEs says
> "stop" (i.e., sends an XOFF to the modem or drops RTS, depending on which
> kind of flow control is set), will the modem attached to that DTE send
> any sort of "stop" signal to the remote modem and induce that remote
> modem to say "stop" to its attached DTE (e.g., send an XOFF to the DTE
> or drop CTS)?  ...

I don't know exactly how Telebit does it in PEP, but I assume it is 
something like the way CCITT V.42 does it.  I _do_ know a few things 
about V.42.

In V.42, when a DTE XOFF's a modem (or drops RTS), this stops the 
flow of data from DCE to DTE.  The DCE has several options in this 
case.  It could choose to immediately send an RNR (Receive Not 
Ready) frame to the remote modem, to immediately stop incoming data. 
It could let data back up in the DTE output buffer, and eventually 
force the transmission of an RNR when the buffers fill up.  In 
either case, assuming the flow-off condition persists long enough, 
the remote modem will eventually be told by the local modem not to 
send any more data.  The remote modem might immediately flow-off 
its DTE, or it could also allow its DTE input buffer to fill up, 
eventually causing a flow-off due to the buffer threshold being 
exceeded.  

So, the answer to your question is, yes, modem error control 
protocols in general do have a way to flow off between modems, 
although this mechanism might not be directly invoked by a flow-off 
condition on the DTE-DCE interface.

-- 
Toby Nixon, Principal Engineer    | Voice   +1-404-449-8791  Telex 151243420
Hayes Microcomputer Products Inc. | Fax     +1-404-447-0178  CIS   70271,404
P.O. Box 105203                   | UUCP uunet!hayes!tnixon  AT&T    !tnixon
Atlanta, Georgia  30348  USA      | Internet       hayes!tnixon@uunet.uu.net

jeh@dcs.simpact.com (02/01/91)

In article <1512@public.BTR.COM>, cec@public.BTR.COM 
(Cerafin E. Castillo  cec@btr.com) writes:
> In article <1991Jan29.142326@apollo.HP.COM> mishkin@apollo.HP.COM 
> (Nathaniel Mishkin) writes:
>>
>>Suppose I have 2 Telebit modems connected in PEP mode.  Suppose further
>>that both modems have correctly established flow control in both directions
>>to their respective DTEs.  My question is this:  If one of the DTEs says
>>"stop" (i.e., sends an XOFF to the modem or drops RTS, depending on which
>>kind of flow control is set), will the modem attached to that DTE send
>>any sort of "stop" signal to the remote modem and induce that remote
>>modem to say "stop" to its attached DTE (e.g., send an XOFF to the DTE
>>or drop CTS)?
>> [deleted]
> 
> If using XON/XOFF flow control (S58=3/S68=[255/3]) you may use S69 to
> allow XON to be sent to the remote modem and its DTE (aka pass-through)
> or process it only in the local modem.  There isn't a similar register
> for XOFF handling, that I know of, so I wouldn't know how to do the
> same with XOFF.
> 
> As for RTS/CTS (hardware flow control), it is only done to the local modem
> and can not be passed through to the remote modem.
> 
> Both of the above cases hold true for PEP and non-PEP modulation in TELEBIT
> modems.

er.... not quite.  Or:  you're right, but I'm not sure that you're answering
the question he asked.   

Suppose that System S (for sender) is connected to Modem S, which has a phone
connection to Modem R (for receiver), which is connected to System R... the
modems are Telebits in PEP mode, and they and their respective systems are
configured for either xon/xoff or rts/cts flow control. 

Suppose that System R is busy and stops reading data for long enough that its
own typeahead buffer (or local equivalent) fills up.  It will, assuming all is
configured properly, tell Modem R to stop handing it data (either by sending it
an XOFF or by dropping RTS, depending on configuration). 

What happens next?  Data is still coming over the phone line, so Modem R's
buffer will fill up.  When the buffer reaches a certain level, Modem R will
tell Modem S to stop sending data. 

	(Under PEP, I don't know whether this is done via an explicit "I'm
	full, don't send any more until I tell you otherwise", or via a
	"credit" system, or by simply ceasing to send acknowledgements.  But
	one way or another, Modem S *is* told that Modem R is no longer 
	receiving.  Remember that PEP mode involves not just a modulation
	scheme but a data link protocol that includes modem-to-modem 
	reliability and flow control.)

Now, System S hasn't seen the XOFF (or the drop of CTS), so it is still handing
data to Modem S.  Since Modem S can't send the data to Modem R, Modem S's
buffer will now begin to accumulate data.  When this buffer is nearly full,
Modem S will tell system S (via XOFF or dropping CTS, according to
configuration) to stop sending data. 

In short:  cec, you're right in that XOFFs and dropping-of-RTS are not sent
directly through the data link *at the time they happen*.  However, they are
indeed propagated back to the sending system, *if necessary to avoid loss of
data* (that is, if the receiving system stops receiving for long enough for its
buffer and both modems' buffers to fill up).  Or, as mishkin put it:

> > I'm guessing/hoping that the magic of PEP mode (which,
> > after all, includes stuff like letting one modem read its peer's
> > registers!) includes a modem-to-modem flow control.

Yes, it most certainly does.  

Note that the two ends need not use the same flow control scheme:  One end 
can use xon/xoff and the other rts/cts.  

(before someone says "it ain't so", please note that the above is based on
empirical evidence -- many hours with a pair of VAXen, test software that can
detect lost data, a pair of Telebit Trailblazer Plus's, and an HP 4954A serial
line protocol analyzer.)

	--- Jamie Hanrahan, Simpact Associates, San Diego CA
uucp protocol guru, VMSnet [DECUS uucp] Working Group, DECUS VAX Systems SIG 
Internet:  jeh@dcs.simpact.com, or if that fails, jeh@crash.cts.com
Uucp:  ...{crash,scubed,decwrl}!simpact!jeh