*BSD News Article 61493


Return to BSD News archive

Newsgroups: comp.unix.bsd.freebsd.misc,comp.mail.uucp
Path: euryale.cc.adfa.oz.au!newshost.anu.edu.au!harbinger.cc.monash.edu.au!nntp.coast.net!howland.reston.ans.net!newsfeed.internetmci.com!news.sprintlink.net!dfw.nkn.net!rowdy.lonestar.org!nemesis!uhclem
From: uhclem@nemesis.lonestar.org (Frank Durda IV)
Subject: Re: Taylor-UUCP not running with 16550 SIO (UMC Custom Chip)
X-Newsreader: Tin 1.1 PL5
Organization: The Big Blue Box
Message-ID: <DMquCt.H65@nemesis.lonestar.org>
References: <DMonLF.Ctq@citylink.dinoex.sub.org>
Date: Wed, 14 Feb 1996 02:17:17 GMT
Lines: 85
Xref: euryale.cc.adfa.oz.au comp.unix.bsd.freebsd.misc:13841 comp.mail.uucp:15784

[0]System Administration (peter@citylink.dinoex.sub.org) wrote:
[0]  there was great trouble getting UUCP to work with with these new control-
[0]ler-embedded 16550-FIFO-SIOs. It did work as usual until the line "handshake
[0]successful", and then was not able to receive one single block of data with-
[0]out error, until after about 10 Minutes it reports: 0 bytes transferred, 0
[0]bps. This is baudrate-independent, it happens with 300 baud as with 57600
[0]baud. With g-proto, uucico can send, but won't receive anything.

Here is the patch I apply every time I upgrade FreeBSD.  It fixes
Taylor UUCP to actually use hardware flow control for incoming and
outgoing calls.  Without it, I get terrible UUCP results.  With the fix
I see >2Kbyte/sec transfers (gzipped files) on Telebit Worldblazer modems.
I use both g and i protocols.

This file is located in /usr/src/gnu/libexec/uucp/libunix/serial.c

*** serial.c.00	Mon May  1 22:43:31 1995
--- serial.c	Mon May  1 23:01:54 1995
***************
*** 205,211 ****
  		      | OFILL | OFDEL | NLDLY | CRDLY | TABDLY | BSDLY \
  		      | VTDLY | FFDLY)
  #define ICLEAR_CFLAG (CBAUD | CSIZE | PARENB | PARODD)
! #define ISET_CFLAG (CS8 | CREAD | HUPCL)
  #define ICLEAR_LFLAG (ISIG | ICANON | XCASE | ECHO | ECHOE | ECHOK \
  		      | ECHONL | NOFLSH | PENDIN)
  #endif
--- 205,212 ----
  		      | OFILL | OFDEL | NLDLY | CRDLY | TABDLY | BSDLY \
  		      | VTDLY | FFDLY)
  #define ICLEAR_CFLAG (CBAUD | CSIZE | PARENB | PARODD)
! #define ISET_CFLAG (CS8 | CREAD | HUPCL | CRTS_IFLOW | CCTS_OFLOW)
! /*<1>#define ISET_CFLAG (CS8 | CREAD | HUPCL)*/
  #define ICLEAR_LFLAG (ISIG | ICANON | XCASE | ECHO | ECHOE | ECHOK \
  		      | ECHONL | NOFLSH | PENDIN)
  #endif
***************
*** 215,221 ****
  		      | PARMRK | IMAXBEL)
  #define ICLEAR_OFLAG (OPOST)
  #define ICLEAR_CFLAG (CSIZE | PARENB | PARODD)
! #define ISET_CFLAG (CS8 | CREAD | HUPCL)
  #define ICLEAR_LFLAG (ECHO | ECHOE | ECHOK | ECHONL | ICANON | IEXTEN \
  		      | ISIG | NOFLSH | TOSTOP | PENDIN)
  #endif
--- 216,223 ----
  		      | PARMRK | IMAXBEL)
  #define ICLEAR_OFLAG (OPOST)
  #define ICLEAR_CFLAG (CSIZE | PARENB | PARODD)
! #define ISET_CFLAG (CS8 | CREAD | HUPCL | CRTS_IFLOW | CCTS_OFLOW)
! /*<1>#define ISET_CFLAG (CS8 | CREAD | HUPCL)*/
  #define ICLEAR_LFLAG (ECHO | ECHOE | ECHOK | ECHONL | ICANON | IEXTEN \
  		      | ISIG | NOFLSH | TOSTOP | PENDIN)
  #endif
***************
*** 3057,3064 ****
  	 don't send XON/XOFF characters but we do recognize them.  */
        if ((q->snew.c_cflag & CRTSCTS) != 0)
  	{
! 	  iset = IXON;
! 	  iclear = IXOFF;
  	  fdo = TRUE;
  	  break;
  	}
--- 3059,3068 ----
  	 don't send XON/XOFF characters but we do recognize them.  */
        if ((q->snew.c_cflag & CRTSCTS) != 0)
  	{
! /*<1>	  iset = IXON;*/
! 	  iset = 0;		/*<1>I don't want XON (DC1) eaten!*/
! /*<1>	  iclear = IXOFF;*/
! 	  iclear = IXON | IXOFF;	/*<1>*/
  	  fdo = TRUE;
  	  break;
  	}


The above patch forces hardware full-duplex RTS/CTS flow control on during
inbound and outbound UUCP sessions.

Frank Durda IV <uhclem@nemesis.lonestar.org>|"The Knights who say "LETNi"
or uhclem%nemesis@rwsystr.nkn.net           | demand...  A SEGMENT REGISTER!!!"
	  ^------(this is the fastest route)|"A what?"
or ...letni!rwsys!nemesis!uhclem	    |"LETNi! LETNi! LETNi!"  - 1983