Subject: Re: Please publish attached draft-ietf-secsh-break-01

From: Markus Friedl <[email-masked]>
Date: Wed, 13 Aug 2003 12:44:59 +0200

On Sat, Mar 29, 2003 at 09:48:21AM -0700, Joseph Galbraith wrote:
>            uint32             break-length in milliseconds

what's the reason for including this in the protocol?

shouldn't the server decide what break-length is reasonable?  e.g.
depending on what kind of devices is attached?

---

From: Jeffrey Altman <[email-masked]>
Date: Wed, 13 Aug 2003 11:52:02 -0400

I would assume in most cases the break-length would be ignored. 
However, if the device is a serial port the application will need to 
determine the break length

Jeffrey Altman

---

From: Chris Lonvick <[email-masked]>
Date: Wed, 13 Aug 2003 11:08:02 -0700 (PDT)

Hi,

I've been told that some chipsets may be assigned a timelength for sending
a BREAK.  And, as the draft says, if they are not assigned a value then
they use their default value.  Over the years, that value has moved around
with a low end of 100ms and a high end of 1 second.  Pairing up a server
that sends a 100ms BREAK to a console (or whatever) that expects a break
to last 1000ms will probably not achieve the expectations.  Setting a
default to 500ms at least gives everyone a point to shoot at.  Allowing
the value to be sent in the protocol gives SSH terminal server
manufacturors a chance to meet the requirements of their customers with
specific needs.

{Speaking for myself and not my company.  ..as in; I don't even _know_ the
people in my company who do serial port chips or programming of them but
I think it's a good feature to have.  :-}

Thanks,
Chris

---

From: Bill Sommerfeld <[email-masked]>
Date: Wed, 13 Aug 2003 16:44:16 -0400

> depending on what kind of devices is attached?

[wg chair hat off; i also have no no strong opinion on this .. I'm
just attempting to inject data into the discussion]

Telnet has had BREAK since the dawn of time, and it doesn't have a
break-length parameter.

I just looked at rfc2217 (telnet COM port control) which has a few
more extensive features.  I can't seem to find a timed-break feature,
but it has a slightly different approach, which is to have separate
"assert break"/"release break"; but it seems that using this to get a
timed break would be tricky given unpredictable network and server-side crypto
latencies..

Oh, and if I remember I'll ask the guy down the hall from me who used
to work on terminal servers in a past job for an opinion..

						- Bill

---

From: "Joel N. Weber II" <[email-masked]>
Date: Wed, 13 Aug 2003 17:19:43 -0400

It seems like setting the break length in the same place you set the
baud rate, number of data and stop bits, parity, etc would probably be
appropriate.  Is there a draft for setting all these other timing
parameters on a serial port in the ssh protocol that I'm not aware of?

---

From: Jeffrey Altman <[email-masked]>
Date: Wed, 13 Aug 2003 21:56:25 -0400

> Telnet has had BREAK since the dawn of time, and it doesn't have a

Telnet BREAK is not in any way associated with serial port break signals.

> timed break would be tricky given unpredictable network and server-side crypto

Yes, this is a major flaw in RFC2217.  There is no way to get the 
desired behavior due to the variability of network communications and 
the inability to force a packet to be sent on the network.

> to work on terminal servers in a past job for an opinion..

Kermit software has supported since the early 80s both a Short Break and 
Long Break.  A break less than 300ms is short; a break greater than 
700ms is long.  These due have meanings for some modems and some 
terminal servers.

Jeffrey Altman

---

From: Jeffrey Altman <[email-masked]>
Date: Wed, 13 Aug 2003 21:57:54 -0400

The receiver of the break signal may behavior differently depending on 
the length of the break.  That is the reason for allowing the value to 
be set.

Jeffrey Altman

---

From: Bill Sommerfeld <[email-masked]>
Date: Wed, 13 Aug 2003 22:04:02 -0400

> Telnet BREAK is not in any way associated with serial port break

It is common for terminal servers used for console access to emit a
serial BREAK upon receiving a telnet BREAK.  It's definitely
associated in many implementations.

> 700ms is long.  These due have meanings for some modems and some 

I assume there's also a minimal length for "short break".

---

From: "Joel N. Weber II" <[email-masked]>
Date: Thu, 14 Aug 2003 14:53:06 -0400

> 700ms is long.  These due have meanings for some modems and some 

Would it be reasonable to define a ``short break'' and a ``long
break'' command in the ssh protocol, and not worry about sending the
exact lengths of time?

If the client sends an exact number of miliseconds, and some devices
are pickier than others about the length of a break that they get, and
you end up with different clients that have different defaults,
keeping track of things and wondering why some people's clients send
breaks that work and other people's clients send breaks that don't
work is likely to get confusing.

---

From: "Jon Bright" <[email-masked]>
Date: Thu, 14 Aug 2003 23:47:13 +0200 (CEST)

> break'' command in the ssh protocol, and not worry about sending the

One could alternatively define 0 = server-chosen short break, 0xFFFFFFFF =
server-chosen long break, other values = client-chosen break. I imagine
most clients would then just implement the short/long options, leaving
only those who really know what they're doing to specify an explicit
length...

-- 
Jon Bright
Lead Programmer, Silicon Circus Ltd.
http://www.siliconcircus.com

---

From: "Phillip Remaker" <[email-masked]>
Date: Fri, 15 Aug 2003 14:08:18 -0700

> depending on what kind of devices is attached?

 Historically, there are some devices which will react differently to a
short break or a long break (KERMIT has two different break lengths, for
example: 250ms and 1500ms).  In order that the varied break length has a
means to be transmitted, the break-length field is added.  Conceivabely, it
could be a long break or short break boolean, but for maximum flexibility,
the length field was added.

 For Cisco devices, the break length is hard coded at 500ms, so Cisco
servers will ignore the field when present.  SSH servers providing RS-232
port access can deal with the field as they feel appropriate.

---

From: Ivan Passos <[email-masked]>
Date: Fri, 15 Aug 2003 17:01:29 -0700

> I assume there's also a minimal length for "short break".

A serial break is defined as the assertion of the TxD signal to 
'0' (Space) for a period longer than a character time. 

So, for 9600 bps, the minimal break length would be:

	1 / 9600 x (8 data + 1 start + 1 stop) = 1ms

For 115200bps, the minimal break lentgh would then be 87us (!!!).

So, to guarantee the serial break works in _any_ baud rate, 
communication programs usually define the break length as larger 
than any baud rate possibly used. Since in the old, old, old days 
people actually used 50bps as a valid baud rate, then the minimal 
"universal" break would have to be larger than 200ms.

That's where the 300ms definition in Kermit came from.

And yes, some UARTs are capable of detecting the break length 
(not just the break condition) and differentiate between 
short breaks and long breaks. There is no standard as to what 
exact length makes a break short or long.

Sorry if this has been just boring, useless information, but 
I thought I should mention it. :o)

Later,
-- 
Ivan Passos			Phone: 510-771-6202
Product Marketing Manager	Cell:  510-468-3515
Cyclades Corporation		Fax:   510-771-6200
[email-masked]
http://www.cyclades.com		"Everywhere with Linux"