Linux AX.25 Kernel

The Story

Right from the beginning of the Linux project radio amateurs developed a network protocol implementation for AX.25. However, all of these aproaches, their concepts in particular were not created very thoughtfully and thus did not meet the user's requirements very well. Most were also very dirty. If you don't understand what this is about, take a look at this.

Matthias, DG2FEF designed a new, clean concept some semesters ago and re-implemented most of the AX.25 protocol stack and the driver interface. However, this implementation did not spread much wider than our local region Rhein/Main, Germany. Meanwhile he is pretty busy and - as it seems - has not much time to maintain this stuff. Because I thought it's a pity to see all this and the work involved getting lost, I have set up this page to (unofficially) maintain his patch and distribute current versions.

Sorry for the fact that there is not much documentation. If you have trouble setting AX.25 devices or TCP/IP up, please take a look at the setpciscc(8) manual page. Although you may have never seen such a card it may answer some of your general questions on how to use things as the TCP/IP coupler ipax0 and stuff.

Effective immediately (11/04/01) I am giving up maintainership of Linux-AX25. If you are interested in the reasoning behind it and in a list about what still needs to be done, take a look at this mail I sent to linux-hams to announce my retirement.

Note that I still feel responsible for providing a PCISCC-4 driver, and if only as a reference driver for future Linux AX.25 efforts or porting. You can download updated driver source code on the PCISCC-4 page.


Current - 2.2.20pre11-10

The Kernel Patch
Patch agains Alan's 2.2.20pre11 release of the Linux source tree. Maintainance and finalizing release. Fixes severe bug in LAPB state 3 state machine. Contains current release of PCISCC-4 driver. No lib/tools update necessary but in case you need them you can download them below.
Here is a patch that reportedly fixes a timer race condition. It should be applied immediately since the problem can jeopardize system stability and integrity. The patch was contributed by Tom Mazouch but unfortunately I do not have enough time to integrate it and release a new patchset.
Here is a patch that fixes an OOPS that occurs in the autobind routine under certain circumstances, especially with the 1001st convers daemon variant now coming to a theatre near you. Contributed by DL8AAU and DG2FEF.
Utilities AX25-Tools AX25-Library AX25-Applications

Old - 2.2.19-9 plus PCISCC-4 update

The Kernel Patch
Patch agains official 2.2.19 release of the Linux source tree. Some fixes in AX.25/IP coupler and VJ compression module. Should also fix problem where system crashes right after setting up interfaces. Moreover EPP-Flex driver was updated (interface name now eppfX). Some more minor fixes and Documentation update. A 6pack driver update was provided by its Author, Andreas and Rob DL1NC took care of updating the subsystem to 2.2.19 .
Here is already an additional patch that modifies the behaviour of the TX-Delay/TX-Tail timers in full duplex mode with the PCISCC-4 driver. You can now have TX-Delay and TX-Tail in full duplex mode as well. Moreover the documentation was improved and the transmitter code was optimized. The patch contains changes for the kernel tree as well as for the setpciscc utility in the ax25-tools package.
Utilities AX25-Tools AX25-Library AX25-Applications
The utils were fixed to also compile against new GLIBC-2.2 .

Old - 2.2.18-8

The Kernel Patch
This is the kernel patch agains the official 2.2.18 release of the Linux source tree. The changes comprise an updated PCISCC-4 driver (cosmetic fixes), an ARP fix, UDP frames will no longer be forced to use datagram encapsulatiuon mode, the call program will no longer complain about in about a missing route and other things.
Utilities AX25-Tools AX25-Library AX25-Applications
Please use the current tools otherwise the PCISCC-4 configuration tool will not work, probably not even compile.

Old - 2.2.17-7

The Kernel Patch
This is the kernel patch agains the official 2.2.17 release of the Linux source tree. There were not many changes to the protocol stack, except for the fact that Modulo-128 should be operational now, even with the frame resequencing code (Framesammler). The PCISCC-4 driver was subject of major modification. It should also work with the old DSCC-4 Rev. 2.0 now. Please download the old lib/tools/apps below. If you have them, you need not recompile them.
Utilities AX25-Tools AX25-Library AX25-Applications
Please use the current tools otherwise the PCISCC-4 configuration tool will not work, probably not even compile.

Old - 2.2.16-6

The Kernel Patch
This is the kernel patch agains the official 2.2.16 release of the Linux source tree. This patch is just a port to 2.2.16. Not many changes except some contributed ROSE/NETROM fixes and a little optimization on "delayed acks". Use the old lib/tools/apps.

Old - 2.2.14-5

The Kernel Patch
This is the kernel patch agains the official 2.2.14 release of the Linux source tree. This patch includes Everthing from the 2.2.14-4-release below, another DAMA bugfix and some optimizations. In addition to that I fixed a race condition which made the first IP packet send cause an endless oops loop with certain drivers. There were also some fixes in the utility packages. The ax25rtd is back working now, but not yet rewritten. The new ax25-tools package now contains the smdiag utility again.
Utilities AX25-Tools AX25-Library AX25-Applications
These are patched versions of Craig Small's neat packages. They are drop-in replacement for the old ax25-utils.

Old - 2.2.14-4

The Kernel Patch
This is the kernel patch agains the official 2.2.14 release of the Linux source tree. This patch includes Everthing from the 2.2.14-3-release below, DAMA bugfixes and -optimizations, high speed optimizations. I did some benchmarks on FTP via AX.25 links (over BPQ-Ethernet) in VC and VJ encap modes and reached about 240 KB/sec between my old PPro200 and my 486DX4-133. Note that AX.25 LAPB performance is not the limiting factor here since plain IP-via-ethernet FTP transfers give me about 280 KB/sec on this configuration.
Utilities AX25-Tools AX25-Library AX25-Applications
These are patched versions of Craig Small's neat packages. They are drop-in replacement for the old ax25-utils.

Old - 2.2.14-3

The Kernel Patch
This is the kernel patch agains the official 2.2.14 release of the Linux source tree. This patch includes Everthing from the 2.2.14-2-release below and major bug fixes. This is the Darmstadt-release.
Utilities AX25-Tools AX25-Library AX25-Applications
These are patched versions of Craig Small's neat packages. They are drop-in replacement for the old ax25-utils.

Old - 2.2.14-2

The Kernel Patch
This is the kernel patch agains the official 2.2.14 release of the Linux source tree. This patch includes:
  • Everthing from the 2.2.14-1-release below.
  • DAMA slave code
  • New /proc/sys/media_* interface
  • All available drivers should work now
  • Media access cleanups in hdlcdrv et al
  • Framesammler should work now
  • State machine tweaks
  • Driver interface cleanups - AX.25 module can now be removed and re-inserted while interfaces are up.
Utilities AX25-Tools AX25-Library AX25-Applications
These are patched versions of Craig Small's neat packages. They are drop-in replacement for the old ax25-utils. Only the ax25-tools package changed from the 2.2.14-1 release.

Old Stuff - 2.2.14-1

The Kernel Patch
This is the kernel patch agains the official 2.2.14 release of the Linux source tree. This patch includes:
  • Everthing from the 2.2.13-release below.
  • Some fixes and improvements, take a look at the release notes.
Release notes
These are some (non-sorted, incomplete) notes on the above patch.
Converted AX25-Library AX25-Tools AX25-Applikations
These are patched versions of Craig Small's neat packages. They are drop-in replacement for the old ax25-utils. You need all three of them. These can be used with the old and the new protocol stack. However, they need to be reconfigured and recompiled. The binaries work only with the kernel-AX.25 stack they were compiled for. I submitted the changes to Craig so maybe they will be merged into the official packages in future. As far as installation is concerned it is pretty much plug and play: First get the kernel stuff running, then the library, tools, applications in that order. See the release notes for additional information. The setpciscc and the smfilter utility are part of the AX25 tools package now.

Old Stuff - 2.2.13

The Kernel Patch
This is the kernel patch agains the official 2.2.13 release of the Linux source tree. This patch includes:
  • Mat's latest AX.25 kernel patch (against 2.2.10, ported)
  • Some bugfixes for the above
  • Soundmodem fixes and new FSK implementation as introduced during the 15th Packet Radio Symposium (see this).
  • PCISCC-4 driver V1.57
AX.25-utils
The ax25-utils neccessary to use the kernel patch. It includes a new utility to get/set the modulator/demodulator filters on the soundmodem driver. The old utils or Craig's tools won't work with this patch release. You might have some problems getting this to compile, however. I really need somebody to clean this mess up or - even better - include the changes into Craig's tools and sumit it to him.
Release notes
These are some (non-sorted, incomplete) notes on the above patch.
PCISCC-4 setup utility and man page
This is the setup utility for the pciscc4-driver. It is not distributed as part of ax25utils. This archive includes a manual page describing how to use it and how to set up such a beast.


by Jens David, DG1KJD last update 2002-07-26