Subject: Re: pppd on wallstreet?
To: Charlie Allom <charlie@rubberduck.com>
From: Donald Lee <donlee@icompute.com>
List: port-macppc
Date: 07/26/2001 14:26:52
>On Fri, Jul 20, 2001 at 09:01:34AM -0500, Donald Lee wrote:
>> I don't think you'll get far, although I have not tried this on 1.5.1
>> yet.
>>
>> I have yet to hear anyone say that he has serial working on MacPPC
>> for anything besides a console. (besides me)
>>
>> I've done it, but I had to patch the kernel (in extintr.c) pppd (I
>> forget where) and use a third party serial card (Cyclades Y) for
>> which I had to patch the driver (lost interrupts).
>
>What an extreme shame.
>
>Where can I get this Cyclades Y board? If you were willing to
>share your patches with me, that is.

No problem.

The Cyclades board can be had from Cyclades, Inc, as I recall.

	http://www.cyclades.com

A patched and unpatched version of extintr.c is on
	ftp://ftp.icompute.com/pub/donlee/cy.c.prod (patched)
	ftp://ftp.icompute.com/pub/donlee/extintr.c.prod (patched)
and
	ftp://ftp.icompute.com/pub/donlee/cy.c.nogo (1.5 base)
	ftp://ftp.icompute.com/pub/donlee/extintr.c.nogo (1.5 base)

This is what I have been running in production since January for both the
Cyclades driver, and the extintr problem.  The extintr problem
causes some nasty latency problems that show up simply as very poor
performance.  The Cyclades changes are much more extensive and this is
because I had to dig in and do some debugging, and I didn't want to
rip out my debug stuff, since there is at least one remaining problem
that I'd like to fix.

The pppd patches are in two places, as detailed below.  The first was
a problem where I could not do dialin.  It looks to me like a bug
in pppd where if the options are in the "wrong" order, it
can't find the local IP addrs.  I don't remember the details.
The second patch is no longer necessary in NetBSD 1.5.1.  It works
around a problem where pppd was unable to set up routes if
an arp entry had been created (or was left over) from another
attempt to use the address to be used.  This caused random and
maddening failures.  Like I said, it's no longer necessary in 1.5.1.


Jul 26 11:27 2001 diff of ./options.c in /usr/src1.5/usr.sbin/pppd/pppd and
/usr
/src/usr.sbin/pppd/pppd Page 1
1351,1352c1351,1352
<     if (no_override && inspeed != 0)
<       return 1;
---
> //    if (no_override && inspeed != 0) ============ DGL - Looks wrong!
> //    return 1;


Jul 26 11:27 2001 diff of ./sys-bsd.c in /usr/src1.5/usr.sbin/pppd/pppd and
/usr
/src/usr.sbin/pppd/pppd Page 1
1320,1321c1320,1321
<     int u;
<     u_int32_t o, h, m;
---
>     int u;            /* unit - pppx */
>     u_int32_t o, h, m;        /* ours, his, mask */
1324a1325,1332
> /* DGL KLUDGE */
> /* arp -d remote to work around troubles */
> /* ioctl SIOCAIFADDR below fails, but returns 0! */
>     char string[256];
>
>     sprintf(string, "/usr/sbin/arp -d %s", ip_ntoa(h));
>     system(string);
> /* DGL END KLUDGE */
1347a1356
>       return(0);


There should be open send_prs on each of these problems.  I don't have the
numbers handy, though.

Enjoy,

-dgl-