| |
DB9ER > APPLE 29.04.96 11:57l 175 Lines 9923 Bytes #-11141 (0) @ EU
BID : 294604DB0IZ
Read: DH9MEC GUEST DK3EL
Subj: MAC-TCP/IP-AX25
Path: DB0AAB<DB0KCP<DB0CZ<HB9EAS<F6KDL<DB0HOM<DB0ZDF<DB0AIS<DB0IZ
Sent: 960429/0755z @:DB0IZ.#NRW.DEU.EU [Solingen, JO31NE, DL] $:294604DB0IZ
de DB9ER @ DB0IZ.#NRW.DEU.EU (Dieter)
to APPLE @ EU
MacAX25
An AX.25 code library and Driver for MacTCP
(I'm looking for good job- are you hiring by any chance? Here is my resume.)
MacAX25: A driver for MacTCP
This project's goal is to produce a compleate library for the MacOS that fully impliments AX.25 Level 2 Version
2. A further goal is to use this library to create a driver for MacTCP to allow any Macintosh to run native IP
applications over amateur AX.25 channels.
For more detailed information click here.
The Mac AX.25 library
The Mac AX.25 library will be a compleate library for programmers who wish to create amateur packet
programs. This library give programmers access to any level of interface to packet radio that they wish. The
library will be made available in both PPC and 68K verions for both Think-C and CodeWarrior formats.
For more detailed information click here.
(Various names are TM and (R) by various companies)
Copyright (C) 1995 by Tim Hayes N2KBG
$Id: ax25.html,v 1.3 1995/11/29 21:12:19 thayes Exp $
thayes@noc.rutgers.edu
MacAX25
An AX.25 Driver for MacTCP
Purpose:
I'm a big fan of TCP/IP- I think it is the only resonable choice for networking computers together these days.The
rest of the world is using TCP/IP for this purpose, so amateur radio should be using it too.
Unfortunately this is less than easy for most users to accomplish.There is very little software available and the
best package, NOS, is difficult to set up and has a only a very limited number of applications built into it.
Wouldn't it be nice if you could just have your computer's native IP driver talk over AX.25? If this were the
case then you could run almost ANY network application written for TCP/IP on your system; you would no
longer be restricted to running only those applications provided by your version of NOS.
Description:
MacAX25 is a driver for MacTCP just like the system extensions MacPPP,, InterSLIP, and Apple's Ethernet.
When you install MacAX25 on your system you will instantly be capable of talking TCP/IP over an amateur
radio AX.25 packet station.
MacAX25 will talk to a KISS TNC connected to one of your system's serial ports.
You can run any modulation scheme you wish- from 300 baud HF packet to several mega-bits per second on a
UHF or higher frequency channel. As long as you are using a KISS tnc it will work (On slower Macs speeds may
be limited to 38k or less due to the overhead of handling serial ports.)
To see the specifications for this driver click here.
Implimentation:
Most of the code for MacAX25 is written by me. The basis for the code was stolen from the AX.25 driver for
SunOS4.1.1 (written by William Grahm VE6UUG and Theo de Raadt), but almost all of it was re-written by me.
Their code was not capable of handling digipeaters and I found it easier to start over rather than hack their code
to do this.
The initial implementation will be quite simple. It will not support digipeaters, and will only talk through a
specific router (IP switch). All hosts will be assumed to be off the local network and therefore will be routed
through the gateway. This is to make my life simple as I want to get something released as soon as possible.
In the "finished" form the driver will allow the use of digipeaters in the path. IP configuration will take place in
the MacTCP control pannel and MacAX25 will have its own control pannel for packet settings such as your call
sign and any static AX.25 route and ARP entries the user might wish to make.
Very soon Apple will be releasing the final version of OpenTransport which is to replace MacTCP. MacAX25
will be modified to work with OpenTransport as well. This has some added benefits in that OpenTransport will
let a system be multi-homed and thus can be used as a router. With the addition of software to route IP traffic
with a Mac there will be nothing NOS is capable of that a Mac won't also be able to do.
Status:
So far not all that much has been compleated on the grand scheme of things. Here is what has been done:
KISS Decode, written and debugged
AX25 Decode, written and debugged
KISS Encode, written and debugged
AX25 Encode, written mostly debugged Here are things I still need to do:
Debug Encode stuff
AX.25 < - > ethernet address mapping
MacTCP interface and glue (this part is by KB2ICI)
Licensing:
MacAX25 will probably be free for use by students and student clubs.Other non-comercial users will probably
have to pay a minor shareware fee.
I don't beleive in "cripple-ware" so everything will work even if you don't want to contribute. I may keep it
from saving the preferences unless you register though. (It will still *work* , it will just be a bit annoying to type
your callsign in each time you start things up.)
Commercial use (? Well someone may find one I guess) will be licensed on a case by case basis.
(Various names are TM and (R) by various companies)
Copyright (C) 1995 by Tim Hayes N2KBG
$Id: overview.html,v 1.7 1995/09/06 20:01:32 thayes Exp $
thayes@noc.rutgers.edu
The AX.25 Library
Description:
This libary provides an interface in C to most of the functionality that a programmer might need in order to
integrate AX.25 communications into a program. The API to this library of code is described here . The
programmer must provide his own code to talk to the physical device (serial port, softkiss, TNC card, etc...)
Using the provided interfaces a programmer will be able to setup, maintain, and break-down AX.25 connections
and pass any form of data they wish over them. Un-numbered information frames can also be used.
Monitoring of data on a AX.25 network is also possible.
The programmer has indirect access to the packets, including all parts of the header. A simple interface to create
and maintain multiple connections will allow programmers to create advanced client programs.
Licensing:
The non-commercial licensing terms are here.
Commercial licensing fees will be decided on a case by case basis.
(Various names are TM and (R) by various companies)
Copyright (C) 1995 by Tim Hayes N2KBG
$Id: ax25lib.html,v 1.7 1995/11/01 04:56:11 thayes Exp $
thayes@noc.rutgers.edu
MacAX25 Design Speficications
SCOPE:
This document describes an AX.25 driver for IP stacks
All AX.25 procedures conform to the ARRL's AX.25 V2.0 specifications
DESIGN SPECS:
Uses Generic C Code
For easy porting across platforms. In its final form this driver should be cross-platform
compatible. Except for routines to pass data back and forth between the IP stack and this drive
no code should be OS-specific.
AX.25 Transport Method
AX.25V2 UI frames will be used to send datagrams
IP encapsulation
IP datagrams will be directly inserted into the data field of the AX.25 packet.
The PID of the AX.25 packet will be set to "0xcc"
ARP encapsulation
ARP datagrams will be directly inserted into the data field of the AX.25 packet.
The PID of the AX.25 packet will be set to "0xcd"
ARP handling on the client system
This driver should use the native IP stack of the client system for handling ARP information.
This means it is necessary to encode AX.25 addresses in a manner that the system can store in
its ARP tables.
This encoding should be direct if possible- the AX.25 address field to be stored should have it's
C and R bits cleared (if set) and all 56 bits stored in the ARP table.
In the event that the IP stack's ARP table can not be used to store AX.25 addreses directly they
should be encoded and stored as an ethernet MAC address. In this case the 56-bit AX.25
addresses should be encoded into the 48 bit MAC address as follows:
rrrrrrr p cccccc cccccc cccccc cccccc cccccc cccccc ssss
MSB LSB
ĄThe most-significant 7 bits are reserved and should be set to ones.
ĄThe "p" bit should should be set if an AX.25L2 path is in use for the address. In all other
cases it should be cleared.
ĄThe next 6 sets of 6 "c" bits each (36 bits total) contain the letters of the uppercased
callsign translated to the offset of the character from an ASCII space. Empty positions
should contain an translated ASCII space (ie: 0x00).
ĄThe least significant 4 bits contain the SSID of the address which are not translated in
an way.
Any published ARP entries must be published in the encapsulated form.
It is not permissable to publish ARP entries for addresses which have AX.25L2 paths.
IP should handle datagram delivery and routing not this driver
AX.25 Routing
Simple and complex mechanisms for doing dynamic AX.25L2 routing of AX.25
encapsulated IP datagrams have been developed. None of these should be
implimented or used by this driver. All routing should be handled by IP.
A mechanism should be implimented to allow user-defined point-to-point paths at
the AX.25 level for links beyond the reach of the local transmitter. This may be
especially usefull when the "local gateway" is a hidden transmitter.
This is not routing- a path defines a single static link much as a telephone
number defines a dialup PPP link.
The AX.25 driver will be responsible for manageing the paths.
Any AX.25 path mechanism should be capable of being used by both ARP and
IP.
AX.25 connections should not be use as virtual circuits in this version of the driver.
Plain AX.25 L2 Support
There will be no support for vanilla AX.25 connections
As connections are not implimented the driver will not be able to accept AX.25 SAMB
requests. SABM requests from other stations should be handled in accourdence with the
AX.25L2V2 spec. (All incoming SAMB requests should be immediately replied to with a DM
frame in which the Poll/Final bit is set)
Incoming I frames will be dropped with no response.
Incoming S frames other than those of type SABM will be dropped.
Incoming UI frames with PID's other than those for IP and ARP will be dropped.
Copyright (C) 1995 by Tim Hayes N2KBG
$Id: MacAX25spec.html,v 1.4 1995/04/17 17:13:42 thayes Exp $
thayes@noc.rutgers.edu
Ok .... wait .... 73 Dieter DB9ER@db0iz.deu.eu
Read previous mail | Read next mail
| |