Subject: Re: poor man's demand-dial
To: None <roland@frob.com>
From: Terry Moore <tmm@databook.com>
List: current-users
Date: 03/21/1995 12:18:39
> I applied those patches to my -current sources and installed the new
> pppd and chat. It did not seem to help. It is still reliably the
> case that when the modem drops, pppd fails to notice and die as it should.
>
> Perhaps the problem is hardware-specific. I am using the i386 ast/com driver.
> Has anyone else but me seen lossage like this with any serial port?
>
> I tried to investigate by setting a breakpoint on ttymodem in ddb, but
> using ddb locked my keyboard so I could not really pursue it. (That
> problem is definitely hardware-specific, and I will whine about it on
> port-i386, not here.)
I saw a very problem. I was using the "proxyarp" option in my ppp "options"
file. I turned that off; the problem went away.
Pppd is structured as a background thread, with a bunch of things that
are driven asynchronously based on signal delivery. The flaw in pppd is
that if asked to do "proxyarp", the background thread hangs in a loop
trying to honor it. Meanwhile, the events that cause net traffic are
being processed; so pppd (apart from consuming lots of useless cycles)
operates correctly. The HUP event is also processed in the foreground;
a flag is set that would cause the background thread to exit. However,
the background thread is not looking at that flag; instead it's looping
doing IOCTLs on net interfaces.
I didn't further diagnosing why it was failing; perhaps it has
to do with the only working ethernet interface on my machine being "ed2". I
rather suspect that it might work if "ed0" was active, as it appears to
be looping through the interfaces in turn. I was more interested
in stopping the behavior, and I don't really need "proxyarp", so....
Best regards,
Terry Moore
Databook Inc.