Subject: Re: ppp from alpha to i386
To: Chris Rupnik <chrisr@geeknet.montreal.qc.ca>
From: Eric Fox <eric@fox.phoenix.az.us>
List: port-i386
Date: 06/29/1999 20:13:33
On Tue, 29 Jun 1999, Chris Rupnik wrote:
> Jun 29 11:53:37 mallow pppd[350]: Serial link is not 8-bit clean:
> Jun 29 11:53:37 mallow pppd[350]: All received characters had bit 7 set to
> 0

From the ppp-HOWTO:

  18.3.  The syslog says "serial line is not 8 bit clean..."
  
  There are variations on this too - such as serial line looped back
  etc., and the cause can be one (or a sequence) of a number of things.
  
  To understand what is going on here, it is necessary to grasp a bit of
  what is going on behind the scenes in pppd itself.
  
  When pppd starts up, it sends LCP (link control protocol) packets to
  the remote machine. If it receives a valid response it then goes on to
  the next stage (using IPCP - IP control protocol packets) and only
  when this negotiation completes is the actual IP layer started so that
  you can use the PPP link.

  If there is no ppp server operating at the remote end when your PC
  sends lcp packets, these get reflected by the login process at the far
  end. As these packets use 8 bits, reflecting them strips the 8th bit
  (remember, ASCII is a 7 bit code). PPP sees this and complains
  accordingly.
  
  There are several reasons this reflection can occur. 
  
  18.3.1.  You are not correctly logging into the server
  
  When your chat script completes, pppd starts on your PC. However, if
  you have not completed the log in process to the server (including
  sending any command required to start PPP  on the server), PPP will
  not start.
  
  So, the lcp packets are reflected and you receive this error.
  
  You need to carefully check and correct (if necessary) your chat
  script (see above).
  
  18.3.2.  You are not starting PPP on the server
  
  Some PPP servers require you to enter a command and/or a RETURN after
  completing the log in process before the remote end starts ppp.
  
  Check your chat script (see above).
  
  If you log in manually and find you need to send a RETURN after this  
  to start PPP, simply add a blank expect/send pair to the end of your  
  chat script (an empty send string actually sends a RETURN).
  
  18.3.3.  The remote PPP process is slow to start
  
  This one is a bit tricksy!
  
  By default, your Linux pppd is compiled to send a maximum of 10 lcp
  configuration requests. If the server is a bit slow to start up, all
  10 such requests can be sent before the remote PPP is ready to receive
  them.
  
  On your machine, pppd sees all 10 requests reflected back (with the  
  8th bit stripped) and exits.
  
  There are two ways round this:-
  
  Add lcp-max-configure 30 to your ppp options. This increases the
  maximum number of lcp configure packets pppd sends before giving up.  
  For really slow server, you may need even more than this. 
  
  Alternatively, you can get a bit tricksy in return. You may have
  noticed that when you logged in by hand to the PPP server and PPP
  started there, the first character of the ppp garbage that appears was
  always the tilde character (~).
  
  Using this knowledge we can add a new expect/send pair to the end of
  the chat script which expects a tilde and sends nothing. This would
  look like:-
  
  ______________________________________________________________________
  \~      ''
  ______________________________________________________________________
  
  Note: as the tilde character has a special meaning in the shell, it
  must be escaped (and hence the leading backslash).


Let me know if this helps or just muddys the water more.

  /\---/\  Eric J Fox
 /  o o  \ http://fox.phoenix.az.us
 \.\   /./ ---------------------------
    \@/    "Of course it runs NetBSD."