Subject: Re: Sun 3/50 Ham Radio.
To: David Kelly <dkelly@hiwaay.net>
From: =?ISO-8859-1?Q?H=E5kan Th=F6rngren?= <hth@katla.lentus.se>
List: port-sun3
Date: 02/06/2001 23:20:35
>>>>> "David" == David Kelly <dkelly@hiwaay.net> writes:
David> How much does it hurt for pppd(8) or ppp(8) to be outside the kernel?
David> I see ax.25 as a link-level layer where it is advantageous to be able to 
David> run completely without the kernel's networking, or for TCP/IP then by 
David> all means provide a SL/IP, PPP, or BPF connection back into the kernel.

Sounds good to me, I have not investigated how SLIP does it, but if it
is outside the kernel, then it sounds like a good idea to consider
having AX25 there too.

David> A major problem with using kernel TCP/IP stacks is the very long delays 
David> which are typical of AX.25 RF links.

Tell me about it..  When I did version 2 of my AX25 protocol stack for
AmigaOS I used the (at that time) new network link level interface
standard (cannot remember the name of it).  Anyway, it allowed me use
a freeware TCP/IP stack for the Amiga and feed IP through my
connectionless AX25 link layer.  Boy did it fail!  :-) 
The poor 1200 baud modem could not keep up with the retransmit rate of
TCP and the result was that my radio was transmitting continously for
well over a minute... :-)   I tried it against a NOS, but could not
get any useful trafic through due to this.

I used a TNC in KISS mode.  The big problem with it was that there
were no feedback of when a packet was sent.  I guess the only way
around it would be to have some kind of measuring of the amount of
data sent down to the TNC and brutally throw excess packets away
without trying to send them..  TCP should be able to adopt to it, I
think (and hope).. 

David> IMHO what is needed is a Unix-like ability to build unique applications
David> on a solid base. Am not referring to *BSD but to the Unix Way where you
David> build a good solid engine where fairings and trailer hitches can be
David> added by others without breaking everything. Such as the way a Unix
David> shell integrates all the other utilities.

You mean doing it the opposite of the PC world.  I remeber once when a
guy talked about bsome specific backup software for PC (DOS) that was
to connect to a SCSI tape, but the backup software "unfortunately did
not include the proper driver for the SCSI card he had".  
I was puzzled (being a non-PC person) and asked him why the driver was
not included with the SCSI card.  Well after some explanation I
realized the MS-DOS should be outlawed forever and that I would never
want to touch it, ever...
After having tried NOS my conclusion was throw it away and do it the
right way, which I did for the AX25 part on the Amiga.

David> Were I to do it, and start from a clean sheet, the first thing I'd do is
David> built a daemon to attach to a serial port and communicate with a TNC in
David> its most brain dead mode, KISS. The daemon will have to implement AX.25
David> itself. But having control over the TNC it could also provide the raw
David> pipe onto the radio for TCP/IP. Or tunnel TCP/IP over AX.25. Would think
David> of this daemon as being much like inetd in that on incoming connect it
David> could consult its configuration and launch a BBS. Most "destinations"
David> for an incoming packet would be external to this daemon, a very few
David> would be served by simple internal "servers". For incoming TCP/IP
David> packets it could direct them to the kernel.

Sounds like a very sound way of doing it.  It suits my world view
perfectly.  Implementing it could be very interesting, but I have no
time at the moment.  Maybe after the summer.  It would certainly force
me to learn a lot more about low level UNIX development, which I would
like very much to do.