On Thu, 10 Feb 2000, Daniel Stenberg wrote:

> This started out as what I thought is a problem in my code, but it has
> turned out that it looks as if this could be a problem in the Linux pppd
> code.
[snip]
> When the Linux client sends its PAP authentication package (with
> name+password), the server-side doesn't decode it properly and thus
> discards it and waits for another packet. The client side waits 3 seconds
> and resends the package that ends up arriving correctly in the server. I

When I read this earlier I couldn't see what the problem was.  Rereading
it as I was going back over my email backlog, it suddenly dawned on me
what was going on.

What's happening is that the client is sending an LCP config-ack, and then
LCP is up because the client has both sent and received an LCP config-ack.
The client sends its next frame immediately, without escaping the control
characters, because now that LCP is up we can use the negotiated asyncmap.

The kernel driver on the server side receives the LCP config-ack and passes
it to pppd.  It then starts processing the next frame but because pppd
hasn't got around to telling the kernel driver to start using the
negotiated asyncmap yet, it discards the control characters (the 01 01 00
15 08 in the second frame).  The decoded frame ends up with an FCS error
and the kernel driver drops it.

This is fixed in the new PPP kernel driver in 2.3.99.  There is code in the
kernel driver to notice the LCP config-ack as it flies past and start
using the negotiated asyncmap straight away.

With the old driver in 2.2.x, you could use the `receive-all' option to
pppd as a workaround.  That tells pppd to set the kernel driver to not
discard received control characters during the LCP negotiation.  (This is
not strictly according to the RFC but it works better that way under some
circumstances.)

Paul.

--
Paul Mackerras, Senior Open Source Researcher, Linuxcare, Inc.
+61 2 6262 8990 tel, +61 2 6262 8991 fax
[EMAIL PROTECTED], http://www.linuxcare.com.au/
Linuxcare.  Support for the revolution.

-
To unsubscribe from this list: send the line "unsubscribe linux-ppp" in
the body of a message to [EMAIL PROTECTED]

Reply via email to