[comp.sys.sun] Help with xmodem over Ethernet Terminal Server/SunOS 4.0

wgd@rti.rti.org (03/06/89)

Blah!  Here's the setup.  Sun 3/160, running SunOS 4.0.1 with yapt5.4
patch.  Terminal (actually a Mac or a PC) connected to a Bridge CS100
Ethernet Terminal Server, through which we log in to the Sun.

Problem:  Xmodem transfer attempts fail on any file that requires more
than 12 blocks (of any size, on this case either 128 bytes or 1024 bytes).
Does fine until block 13, which results in transmission errors reported at
the micro.  Happens for both IBMish PC and Macintosh.  

Note that file transfers ARE successful if done using the serial port.  I
transferred about 250K of stuff via modem at 1200 baud with NO problems at
all using xmodem and my Mac.

Has anyone experienced similar problems?  If so, what's the resolution?

Thanks.
Wally Dixon
Broadband Technologies, Inc.

wgd@bbt
{...}!mcnc!rti!bbt!wgd

hedrick@geneva.rutgers.edu (Charles Hedrick) (03/15/89)

Ah yes, xmodem fails on block 13.  13 == '\r'.  The block number appears
in the xmodem header.  What is happening is that your combination of
terminal server and telnetd are turning CR into something else.  Maybe
CRLF.  Maybe LF.  Here's what is supposed to happen.

  terminal server may send CR as CR NUL or CR LF (vendor's choice --
	I prefer CR LF).
  telnetd turns both CR NUL and CR LF back into CR
  telnetd sends CR LF as CR LF, any other CR gets a NUL added after it
  terminal server removed NUL after CR

Sorry for the wierd rules, but that's what the protocol requires, at least
as currently interpreted.  As far as I can tell from looking at the
source, 4.0 telnetd does the right thing. (We run a telnetd based on
Berkeley's code, but that part of the code seems to be the same as Sun's.)
Probably the problem is with the CS/100.  However you might want to do a
test with telnet on your Sun, turning on "toggle netdata" to see whether
in fact this mapping is being done correctly by your telnetd.  Note that
xmodem requires a transparent 8-bit path.  It is quite legitimate for
telnet implementations to truncate to 7 bits.  I don't know whether the
CS/100 does or not.  Unix does not.

There is a "binary mode" of telnet that is supposed to guarantee 8 bits
transparent.  See if you can find a way for the CS/100 to set binary mode.
You might also see whether there are any configuration options that affect
how CR is processed.

We do xmodem and UUCP via telnet to Suns, but we use cisco terminal
servers.  However I had to beat cisco up a year or so ago to get them to
make this stuff work right.  If you have software support from Bridge, you
may have to do the same with them.

You might consider using kermit.  With big packets it is almost as fast as
xmodem.  And it isn't sensitive to the CR problem.

grandi@noao.edu (Steve Grandi) (03/16/89)

> Problem:  Xmodem transfer attempts fail on any file that requires more
> than 12 blocks (of any size, on this case either 128 bytes or 1024 bytes).
> Does fine until block 13, which results in transmission errors reported at
> the micro.  Happens for both IBMish PC and Macintosh.  

Sounds like the terminal server is doing something "magic" when it sees a
Ctrl-M character (decimal 13).  Xmodem encodes a sequential block number
in the data block, so it requires a TOTALLY transparent 8-bit path.  See
if you can tell the terminal server to give you a totally transparent
connection. 

I have the exact problem with a CMC Transerver telnet server (also resold
to the Sun market by Artecon); Ctrl-E is the "escape" character to talk to
the box, hence all Xmodem transfers fail on the fifth block.  As far as I
can tell, one can configure the escape character on the CMC box to be
anything one likes, but can't turn it off completely.   Hence, Xmodem
transfers are impossible.

Steve
(author of a dandy -- if I do say so myself -- version of Xmodem running on
4.3BSD and SunOS systems)

Steve Grandi, National Optical Astronomy Observatories, Tucson AZ, 602-325-9228
UUCP: {arizona,decvax,ncar}!noao!grandi  or  uunet!noao.edu!grandi
Internet: grandi@noao.edu             SPAN/HEPNET: 5355::GRANDI or NOAO::GRANDI