summaryrefslogtreecommitdiffstats
path: root/ax25ipd
diff options
context:
space:
mode:
authorRalf Baechle <ralf@linux-mips.org>1999-07-08 06:46:27 +0200
committerRalf Baechle <ralf@linux-mips.org>1999-07-08 06:46:27 +0200
commitaa112083f850e1b6c5c6ed9c9e59a568ff66a000 (patch)
tree502aef09a8016112f1e094a07d68d545ac65b80f /ax25ipd
parent0fceb64d25ff3d9586549bb43d971c5eef904330 (diff)
Import ax25-apps 0.0.2 from tarballax25-apps-0.0.2
Diffstat (limited to 'ax25ipd')
-rw-r--r--ax25ipd/COPYING.ax25ipd39
-rw-r--r--ax25ipd/HISTORY.ax25ipd49
-rw-r--r--ax25ipd/Makefile.am21
-rw-r--r--ax25ipd/Makefile.in71
-rw-r--r--ax25ipd/README.ax25ipd695
-rw-r--r--ax25ipd/ax25ipd.conf71
6 files changed, 926 insertions, 20 deletions
diff --git a/ax25ipd/COPYING.ax25ipd b/ax25ipd/COPYING.ax25ipd
new file mode 100644
index 0000000..ed29b23
--- /dev/null
+++ b/ax25ipd/COPYING.ax25ipd
@@ -0,0 +1,39 @@
+
+AX25IPD
++++++++
+
+ax25ipd is a derivative work of ax25ip written by Michael Westerhof, and
+as such copyright is governed by Mike's original copyright notice.
+
+> /* ax25ipd.c main entrypoint
+> *
+> * Copyright 1991, Michael Westerhof, Sun Microsystems, Inc.
+> * This software may be freely used, distributed, or modified, providing
+> * this header is not removed.
+> *
+> */
+
+And an extract from the original README file.
+
+> Comments, Criticism, Enhancements, Problems, Bugs
+> -------------------------------------------------
+>
+> You can reach the person responsible for ax25ip at any of the following
+> addresses:
+>
+> Mike.Westerhof@Central.Sun.COM
+>
+> KA9WSB@WB9YAE
+>
+> Mike Westerhof, 17 N Main St, Mt Prospect, IL 60056
+>
+> -------------------------------------------------------------------------
+> Copyright 1991, Michael Westerhof, Sun Microsystems, Inc.
+> This software may be freely used, distributed, or modified, providing
+> this footer is not removed.
+> -------------------------------------------------------------------------
+
+This release of ax25ipd was cleaned up slightly, and prototyped, man page
+written, and had a few other's enhancements included along the way, by
+Rob Mayfield VK5XXX, mayfieldrob@mail.dec.com.
+
diff --git a/ax25ipd/HISTORY.ax25ipd b/ax25ipd/HISTORY.ax25ipd
new file mode 100644
index 0000000..f4a28cd
--- /dev/null
+++ b/ax25ipd/HISTORY.ax25ipd
@@ -0,0 +1,49 @@
+/*
+ * HISTORY:
+ *
+ * 0.2.1 First distribution.
+ *
+ * 0.2.2 Comments, documentation, increased routing table to 128.
+ *
+ * 0.3.0 Added the "myalias" stuff, and began work on a beacon
+ * mechanism.
+ * Added support for the SIGHUP signal. Now a "kill -1 <pid>"
+ * will make ax25ip re-read the config file and restart.
+ *
+ * 0.3.1 Now can specify the internet host by internet number as
+ * well as host name.
+ *
+ * 0.4.0 Removed "autoadd" references
+ * Added support for sending and listening on UDP sockets.
+ * Added "SIGUSR" handler for dumping statistics on demand.
+ * The Beacon frame is computed only once.
+ * Any I/O errors will result in an exit()... This should be
+ * fixed, specially for the UDP socket, but for the moment
+ * this prevents errors from going wild and consuming vast
+ * amounts of system and user time.
+ * Fixed a bug in the KISSEMIT macro (thanks Jim Durham)
+ * Added support for both termio and termios (thanks Jim Durham)
+ *
+ * 0.4.1 added a generic "io_error" routine to handle errors in the
+ * main processing loop. This is in hopes of building a mech-
+ * anism that can deal with temporary network failures in a
+ * more robust fashion.
+ *
+ * 0.4.2 added support for the BSD sgtty method for setting and
+ * controlling the serial port.
+ *
+ * 1.0.0 modifications to bring ax25ip into line with the standard
+ * linux ax25 tools distribution. (vk5xxx)
+ *
+ * 1.0.1 various cleanups and changes ... now called ax25ipd
+ * added prototypes, fork's itself ... (vk5xxx)
+ *
+ * 1.0.2 Incorporated patch allowing wildcarding of ax.25 callsigns.
+ * The old method required a route for every call/ssid
+ * combination. (thanks to John Woolner. Wildcarding to be
+ * enhanced later ...
+ *
+ * July97 Added support for broadcast addresses and routes.
+ * Converted route array to a linked list and removed the
+ * maximum route limitations. (vk2ktj)
+ */
diff --git a/ax25ipd/Makefile.am b/ax25ipd/Makefile.am
index 1572b25..93f90af 100644
--- a/ax25ipd/Makefile.am
+++ b/ax25ipd/Makefile.am
@@ -3,7 +3,10 @@ sbin_PROGRAMS = ax25ipd
man_MANS = ax25ipd.8 ax25ipd.conf.5
-EXTRA_DIST = $(man_MANS)
+EXTRA_DIST = $(man_MANS) $(etcfiles) $(doc_DATA)
+
+docdir = /usr/doc/ax25-apps
+doc_DATA = README.ax25ipd HISTORY.ax25ipd COPYING.ax25ipd
CFLAGS = -DUSE_TERMIO
ax25ipd_LDADD = $(AX25_LIB)
@@ -17,3 +20,19 @@ ax25ipd_SOURCES = \
ax25ipd.h \
process.c \
routing.c
+
+# Needed so that install is optional
+etcfiles = ax25ipd.conf
+installconf:
+ $(mkinstalldirs) $(DESTDIR)$(AX25_SYSCONFDIR)
+ @list='$(etcfiles)'; for p in $$list; do \
+ echo " $(INSTALL_DATA) $$p $(DESTDIR)$(AX25_SYSCONFDIR)/$$p"; \
+ $(INSTALL_DATA) $$p $(DESTDIR)$(AX25_SYSCONFDIR)/$$p; \
+ done
+
+AX25_SYSCONFDIR=$(sysconfdir)/ax25/
+AX25_LOCALSTATEDIR=$(localstatedir)/ax25/
+
+INCLUDES = -DAX25_SYSCONFDIR=\""$(AX25_SYSCONFDIR)"\" \
+ -DAX25_LOCALSTATEDIR=\""$(AX25_LOCALSTATEDIR)"\"
+
diff --git a/ax25ipd/Makefile.in b/ax25ipd/Makefile.in
index 2876a26..31ea95c 100644
--- a/ax25ipd/Makefile.in
+++ b/ax25ipd/Makefile.in
@@ -79,13 +79,25 @@ sbin_PROGRAMS = ax25ipd
man_MANS = ax25ipd.8 ax25ipd.conf.5
-EXTRA_DIST = $(man_MANS)
+EXTRA_DIST = $(man_MANS) $(etcfiles) $(doc_DATA)
+
+docdir = /usr/doc/ax25-apps
+doc_DATA = README.ax25ipd HISTORY.ax25ipd COPYING.ax25ipd
CFLAGS = -DUSE_TERMIO
ax25ipd_LDADD = $(AX25_LIB)
ax25ipd_SOURCES = config.c crc.c io.c kiss.c ax25ipd.c ax25ipd.h process.c routing.c
+
+# Needed so that install is optional
+etcfiles = ax25ipd.conf
+
+AX25_SYSCONFDIR = $(sysconfdir)/ax25/
+AX25_LOCALSTATEDIR = $(localstatedir)/ax25/
+
+INCLUDES = -DAX25_SYSCONFDIR=\""$(AX25_SYSCONFDIR)"\" -DAX25_LOCALSTATEDIR=\""$(AX25_LOCALSTATEDIR)"\"
+
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
CONFIG_HEADER = ../config.h
CONFIG_CLEAN_FILES =
@@ -109,6 +121,8 @@ man8dir = $(mandir)/man8
MANS = $(man_MANS)
NROFF = nroff
+DATA = $(doc_DATA)
+
DIST_COMMON = Makefile.am Makefile.in
@@ -269,6 +283,25 @@ uninstall-man:
@$(NORMAL_UNINSTALL)
$(MAKE) $(AM_MAKEFLAGS) uninstall-man5 uninstall-man8
+install-docDATA: $(doc_DATA)
+ @$(NORMAL_INSTALL)
+ $(mkinstalldirs) $(DESTDIR)$(docdir)
+ @list='$(doc_DATA)'; for p in $$list; do \
+ if test -f $(srcdir)/$$p; then \
+ echo " $(INSTALL_DATA) $(srcdir)/$$p $(DESTDIR)$(docdir)/$$p"; \
+ $(INSTALL_DATA) $(srcdir)/$$p $(DESTDIR)$(docdir)/$$p; \
+ else if test -f $$p; then \
+ echo " $(INSTALL_DATA) $$p $(DESTDIR)$(docdir)/$$p"; \
+ $(INSTALL_DATA) $$p $(DESTDIR)$(docdir)/$$p; \
+ fi; fi; \
+ done
+
+uninstall-docDATA:
+ @$(NORMAL_UNINSTALL)
+ list='$(doc_DATA)'; for p in $$list; do \
+ rm -f $(DESTDIR)$(docdir)/$$p; \
+ done
+
tags: TAGS
ID: $(HEADERS) $(SOURCES) $(LISP)
@@ -313,13 +346,6 @@ distdir: $(DISTFILES)
|| cp -p $$d/$$file $(distdir)/$$file || :; \
fi; \
done
-ax25ipd.o: ax25ipd.c ../config.h ../pathnames.h ax25ipd.h
-config.o: config.c ax25ipd.h ../pathnames.h
-crc.o: crc.c ax25ipd.h ../pathnames.h
-io.o: io.c ax25ipd.h ../pathnames.h
-kiss.o: kiss.c ax25ipd.h ../pathnames.h
-process.o: process.c ax25ipd.h ../pathnames.h
-routing.o: routing.c ax25ipd.h ../pathnames.h
info-am:
info: info-am
@@ -332,21 +358,21 @@ installcheck: installcheck-am
install-exec-am: install-sbinPROGRAMS
install-exec: install-exec-am
-install-data-am: install-man
+install-data-am: install-man install-docDATA
install-data: install-data-am
install-am: all-am
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
install: install-am
-uninstall-am: uninstall-sbinPROGRAMS uninstall-man
+uninstall-am: uninstall-sbinPROGRAMS uninstall-man uninstall-docDATA
uninstall: uninstall-am
-all-am: Makefile $(PROGRAMS) $(MANS)
+all-am: Makefile $(PROGRAMS) $(MANS) $(DATA)
all-redirect: all-am
install-strip:
$(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
installdirs:
$(mkinstalldirs) $(DESTDIR)$(sbindir) $(DESTDIR)$(mandir)/man5 \
- $(DESTDIR)$(mandir)/man8
+ $(DESTDIR)$(mandir)/man8 $(DESTDIR)$(docdir)
mostlyclean-generic:
@@ -391,13 +417,20 @@ install-sbinPROGRAMS mostlyclean-compile distclean-compile \
clean-compile maintainer-clean-compile mostlyclean-libtool \
distclean-libtool clean-libtool maintainer-clean-libtool install-man5 \
uninstall-man5 install-man8 uninstall-man8 install-man uninstall-man \
-tags mostlyclean-tags distclean-tags clean-tags maintainer-clean-tags \
-distdir info-am info dvi-am dvi check check-am installcheck-am \
-installcheck install-exec-am install-exec install-data-am install-data \
-install-am install uninstall-am uninstall all-redirect all-am all \
-installdirs mostlyclean-generic distclean-generic clean-generic \
-maintainer-clean-generic clean mostlyclean distclean maintainer-clean
-
+uninstall-docDATA install-docDATA tags mostlyclean-tags distclean-tags \
+clean-tags maintainer-clean-tags distdir info-am info dvi-am dvi check \
+check-am installcheck-am installcheck install-exec-am install-exec \
+install-data-am install-data install-am install uninstall-am uninstall \
+all-redirect all-am all installdirs mostlyclean-generic \
+distclean-generic clean-generic maintainer-clean-generic clean \
+mostlyclean distclean maintainer-clean
+
+installconf:
+ $(mkinstalldirs) $(DESTDIR)$(AX25_SYSCONFDIR)
+ @list='$(etcfiles)'; for p in $$list; do \
+ echo " $(INSTALL_DATA) $$p $(DESTDIR)$(AX25_SYSCONFDIR)/$$p"; \
+ $(INSTALL_DATA) $$p $(DESTDIR)$(AX25_SYSCONFDIR)/$$p; \
+ done
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/ax25ipd/README.ax25ipd b/ax25ipd/README.ax25ipd
new file mode 100644
index 0000000..99e2c54
--- /dev/null
+++ b/ax25ipd/README.ax25ipd
@@ -0,0 +1,695 @@
+
+**
+** This file is a cobbling together of the various notes on ax25ipd.
+**
+
+ ax25ipd
+ =======
+
+This README files pertains to version 1.0.2 of ax25ipd.
+(this document is still incomplete -- the UDP features lack examples)
+
+Overview
+--------
+
+ RFC1226 describes a method of using TCP/IP based networks to transport
+AX.25 frames. The ax25ipd utility uses this technique to transfer AX.25
+frames in and out of TCP/IP environments.
+
+ The interface to the AX.25 world is via KISS, with ax25ipd emulating
+either a standard KISS TNC or operating as a digipeater. AX.25 frames
+arriving on the KISS interface are routed to the IP interface and sent
+to the appropriate IP host system. Incoming frames from the IP interface
+are filtered and sent out the KISS interface. The operator controls the
+mode (tnc or digipeater), the routing (callsign to ip host mapping), and
+a few sundry controls via a configuration file, read at startup.
+
+ ax25ipd is the Linux incarnation of ax25ip by Mike Westerhof, and is
+not intended to support any OS other than Linux. Although getting it to
+run on BSD should not present too many issues, there has been no attempt
+to retain BSD(Sun) operability since it was updated in an environment
+where there was no access to BSD.
+
+ ax25ipd requires a serial port, and uses a raw socket to gain access
+to the IP layer of the host's TCP/IP implementation (this requires that
+ax25ipd be started by root). ax25ipd also supports using a standard UDP
+socket in place of the raw socket, although this does not adhere to
+RFC1226.
+
+
+Modes and Routing
+-----------------
+
+ There are two interfaces into and out of ax25ipd. The KISS interface
+is a standard serial port, running speeds up to 38400 baud. The IP
+interface reads and writes packets to an IP network in accordance with
+the specifications in RFC1226. Several factors determine how AX.25
+frames route within ax25ipd and through the IP network, although some
+basic rules always apply:
+
+ A frame will never leave ax25ipd on the same interface it came in on.
+This fundamental rule eliminates much complexity and much confusion on
+how to set up ax25ipd.
+
+ A frame will never be sent to more than one IP host. Using an IP
+network as a broadcast media is probably not a good idea, especially
+across the Internet!
+
+ Most other routing factors involve user configuration, and depend
+heavily on the mode of operation.
+
+ In tnc mode, ax25ipd emulates a KISS tnc, and behaves as one would
+expect. The next destination callsign (either the destination or the
+next digipeater in line) is extracted from frames arriving on the KISS
+interface, and looked up in a routing table (built by the operator in the
+configuration file). The routing table provides the IP address to which
+this frame should be sent. The standard CRC is computed, tacked onto the
+frame, and the result is sent off to the target system. Frames arriving
+from the IP interface have the CRC checked and removed, and are forwarded
+to the KISS interface.
+
+ Digi mode is a little more complicated. In this mode, ax25ipd is
+assigned a callsign, and acts as a digipeater. If a frame arriving on
+the KISS interface has ax25ipd's callsign specified as the next digipeater,
+ax25ipd will mark the frame as digipeated by it, look up the next callsign
+in the routing table, compute and append the CRC, and send the frame to
+the specified IP host. Frames arriving on the IP interface will be
+handled in a similar fashion, but note that in no cases will the frame be
+sent out the same port it arrived in on.
+
+
+Configuration
+-------------
+
+ A single configuration file is used to tailor ax25ipd. The file is
+usually named "ax25ipd.cfg" and should be located in the same directory
+ax25ipd is executed from. An example is probably the best way to become
+familiar with configuring ax25ipd.
+
+# Sample Configuration file for ax25ipd
+mode digi
+socket ip
+device /dev/ttya
+speed 9600
+mycall KA9WSB-7
+myalias ILSUN
+beacon every 540
+btext ax25ipd -- digi ka9wsb-7 -- Experimental IP encapsulator
+loglevel 2
+route W1AW-13 handbook.arrl.com
+route WZ9ZZZ last.one.edu
+param 1 20
+
+The mode command selects the behavior of ax25ipd. The device line specifies
+the tty device to use, and the speed line selects the baud rate. Baud
+rates up to 34800 can be used, but 9600 is probably the fastest safe
+speed for serial cables of any distance (remember, KISS has no error
+detection). The mycall command is required only if you are in digi mode.
+The loglevel command selects the amount of verbosity you want, ranging from
+0 (no output) to 4 (streams of data). The route command adds entries to
+a static routing table, currently 128 entries deep. In the example, AX.25
+frames destined for W1AW-13 are forwarded to handbook.arrl.com, frames for
+WZ9ZZZ are sent to last.one.edu, and all others go nowhere. Specifying the
+word "default" in place of a callsign sets up a default route, used when
+the destination callsign cannot be found in the routing table. Finally,
+in digi mode, the device on the other end of the KISS interface is probably
+a TNC. The param command allows you to set the KISS parameters (txdelay,
+slottime, etc). As many param commands as required can be specified.
+
+The myalias command allows you to specify an alias for this digipeater.
+If you do this, you should probably use the beacon command to ensure
+that you ID regularly. The beacon every 540 command forces an ID message
+to be sent out the KISS interface every 9 minutes. Specifying beacon
+after 540 will send the ID packet only if the channel has been idle for
+9 minutes.
+
+Sending a hang-up signal to the ax25ipd process will cause it to reread
+the configuration file and re-initialize itself (kill -HUP <ax25ipd-pid>).
+
+
+Sample Configuration - NOS-to-NOS
+---------------------------------
+
+ This example shows how to connect a pair of NOS-based PCs together
+using ax25ipd to carry AX.25 traffic.
+
+
+ KA9WSB-3 one.two.com
+ .----------. .----------.
+ | | | |
+ | | KISS | UNIX | |
+ | NOS |------| host |---|
+ | on | | | | TCP/IP network
+ | PC | | | |
+ `----------' `----------' |
+ |
+ (vast distance)
+ |
+ | fish.sea.com W1AW-5
+ | .----------. .----------.
+ | | | | |
+ | | UNIX | KISS | |
+ |---| host |------| NOS |
+ | | | 1200 | on |
+ | | baud | PC |
+ `----------' `----------'
+
+
+ Config file: Config file:
+ mode tnc mode tnc
+ device /dev/ttya device /dev/ttya
+ speed 9600 speed 1200
+ route W1AW-5 fish.sea.com route KA9WSB-3 one.two.com
+
+Using this setup, a user could run AX.25 connections between the two PCs.
+Note that while NOS can digipeat, NOS will not automatically allow users
+near W1AW-5 to digipeat through it to reach KA9WSB-3 (i.e. the command
+"C KA9WSB-3 V W1AW-5" will not have the desired result). This may or may
+not be a problem.
+
+
+Sample Configuration - digi-to-digi
+-----------------------------------
+
+ This example shows how to configure ax25ipd as a pair of digipeaters.
+
+
+ (KA9WSB-3)
+ one.two.com
+ .----------. .----------.
+ | | | |
+ | Standard | KISS | UNIX | |
+ | KISS |------| host |---|
+ | TNC | | | | TCP/IP network
+ | & radio | | | |
+ `----------' `----------' |
+ |
+ (vast distance)
+ |
+ | (W1AW-5)
+ | fish.sea.com W1AW-5
+ | .----------. .----------.
+ | | | | |
+ | | UNIX | KISS | Standard |
+ |---| host |------| KISS |
+ | | | 9600 | TNC |
+ | | baud | & radio |
+ `----------' `----------'
+
+
+ Config file: Config file:
+ mode digi mode digi
+ mycall KA9WSB-3 mycall W1AW-5
+ device /dev/ttya device /dev/ttya
+ speed 9600 speed 9600
+ route W1AW-5 fish.sea.com route KA9WSB-3 one.two.com
+ param 1 20 param 1 33
+
+In this setup, the UNIX hosts are "on the air". No PCs or additional
+hardware are required. A user near W1AW-5 could read a user near KA9WSB-3
+simply by providing the digipeater path: "c KA9WSB V W1AW-5 KA9WSB-3"
+would work just fine.
+
+
+---------
+
+We have added dual port capibility in DIGI MODE ONLY to allow us to use it
+with a Dataengine. Very little needed changing, but we did not document the
+changes. If you really need to know, diff the package against the original,
+which was/is at sunsite.unc.edu. To specify the second port, do something
+like this...
+
+#to use the second port, we need to be in digi mode
+mode digi
+#
+#port 0 on my tnc goes to vhf
+mycall ve3djf-12
+myalias vhfdjf
+#
+#port 1 on my tnc goes to uhf.
+#The callsign and alias must be different for this to work right...
+mycall2 ve3djf-13
+myalias2 uhfdjf
+#
+
+Everything else is the same. Note that if you leave out the mycall2 and
+myalias2 defines, it works just like the original in single port mode. For
+recieving on the KISS (dual) port, packets are checked against both callsigns
+and aliases. Whoever is on the other end of the AXIP link can find out what
+port it came from by looking at the who it got digi'd through, although
+I can't think of any reason to do that... For transmiting, you go out the
+port with the callsign matching the digi address. For example, to go out
+port 0 in the above example, digi through ve3djf-12 or vhfdjf.
+To go out port 1, digi through ve3djf-13 or uhfdjf.
+
+Deficencies: If you specify the same callsign on both
+ports, no error is generated, but the way the logic in the code works you
+always go out the upper port (port 1), not port 0. In TNC mode, there is
+really no way to specify which port to transmit on that I can think of, so
+there is no multiplexing there. Everything goes out port 0 in TNC mode
+still. Lastly, none of the dump routines know anything about ports on the
+KISS interface, so they look the same, with both ports lumped into one.
+
+Let us know if you like this hack, BTW. In retrospect, we should have
+written a KISSPlexor (tm:-) HIHI. I think we will do that next.
+
+
+73! de Jeff / VE3DJF
+Jeff@lnx_rpi.ee.ryerson.ca
+VE3DJF@bbs.VE3RPI.ampr.org
+
+
+AXIP (IP encapsulation of AX.25 frames) daemon by Michael Westerhof.
+
+
+
+
+
+
+
+
+Network Working Group B. Kantor
+Request for Comments: 1226 Univ. of Calif San Diego
+ May 1991
+
+
+ Internet Protocol Encapsulation of AX.25 Frames
+
+Status of this Memo
+
+ This memo describes a method for the encapsulation of AX.25 (the
+ Amateur Packet-Radio Link-Layer Protocol) frames within IP packets.
+ This technique is an Experimental Protocol for the Internet
+ community. Discussion and suggestions for improvement are requested.
+ Please refer to the current edition of the "IAB Official Protocol
+ Standards" for the standardization state and status of this protocol.
+ Distribution of this memo is unlimited.
+
+The AX.25 Amateur Packet-Radio Link-Layer Protocol
+
+ The AX.25 Amateur Packet-Radio Link-Layer Protocol is described in
+ the publication by that name [1], incorporated here by reference.
+
+ Each AX.25 packet ("frame") is encapsulated in one IP datagram.
+ Normally no AX.25 frame will exceed 330 octets, so fragmentation at
+ the IP layer should not be necessary. However, experiments with
+ larger AX.25 frame sizes may require the use of standard IP
+ fragmentation and reassembly procedures.
+
+ When an AX.25 frame is encapsulated within an IP packet, HDLC framing
+ elements (flags and zero-stuffing) are omitted, as the IP datagram
+ adequately delimits the beginning and end of each AX.25 frame. The
+ 16-bit CRC-CCITT frame check sequence (normally generated by the HDLC
+ transmission hardware) is included. In all other respects, AX.25
+ frames are encapsulated unaltered.
+
+ Each such IP datagram shall have a protocol number of 93.
+
+Reference
+
+ [1] AX.25 Amateur Packet-Radio Link-Layer Protocol Version 2.0
+ October 1984. Available from the American Radio Relay League,
+ Newington CT USA 06111, and other sources.
+
+Security Considerations
+
+ Security issues are not discussed in this memo.
+
+
+
+
+
+Kantor [Page 1]
+
+RFC 1226 IP Encapsulation of AX.25 Frames May 1991
+
+
+Author's Address
+
+ Brian Kantor
+ University of California at San Diego
+ Network Operations C-024
+ La Jolla, CA 92093-0214
+
+ Phone: (619) 534-6865
+
+ EMail: brian@UCSD.EDU
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Kantor [Page 2]
+
+
+
+
+/etc/ax25/ax25ipd.conf for vk5xxx
+
+
+#
+# ax25ipd configuration file for station floyd.vk5xxx.ampr.org
+#
+# Select axip transport. 'ip' is what you want for compatibility
+# with most other gates ...
+#
+socket ip
+#
+# Set ax25ipd mode of operation. (digi or tnc)
+#
+mode tnc
+#
+# If you selected digi, you must define a callsign. If you selected
+# tnc mode, the callsign is currently optional, but this may change
+# in the future! (2 calls if using dual port kiss)
+#
+#mycall vk5xxx-4
+#mycall2 vk5xxx-5
+#
+# In digi mode, you may use an alias. (2 for dual port)
+#
+#myalias svwdns
+#myalias2 svwdn2
+#
+# Send an ident every 540 seconds ...
+#
+beacon after 540
+btext ax25ip -- tncmode rob/vk5xxx -- Experimental AXIP gateway
+#
+# Serial port, or pipe connected to a kissattach in my case
+#
+device /dev/ttyqd
+#
+# Set the device speed
+#
+speed 9600
+#
+# loglevel 0 - no output
+# loglevel 1 - config info only
+# loglevel 2 - major events and errors
+# loglevel 3 - major events, errors, and AX25 frame trace
+# loglevel 4 - all events
+# log 0 for the moment, syslog not working yet ...
+#
+loglevel 0
+#
+# If we are in digi mode, we might have a real tnc here, so use param to
+# set the tnc parameters ...
+#
+#param 1 20
+#
+# ax.25 route definition, define as many as you need (< 128?)
+# format is route (call/wildcard) (ip host at destination)
+#
+route vk5zeu* 44.136.202.3
+route vk5wsr-1 44.136.202.241
+route vk5wsr-0 44.136.202.241
+route vk5dj-15 44.136.202.241
+route vk5ham* 44.136.202.241
+#
+# a default route. Carefull here, all undefined traffic end's up here.
+#
+route default 44.136.202.241
+#
+
+
+another ax25ipd.cfg
+
+
+# Sample ax25ipd configuration file
+#
+# First select the mode of operation. (digi or tnc)
+#
+socket ip
+#
+mode tnc
+#
+# If you selected digi, you must define a callsign. If you selected
+# tnc mode, the callsign is currently optional, but this may change
+# in the future!
+#
+mycall ve3rpi-14
+mycall2 ve3rpi-15
+#
+# In digi mode, you may use an alias.
+#
+myalias ryeha1
+myalias2 ryeha2
+#
+# ID every 10 minutes...
+#
+beacon after 540
+btext ax25ipd -- digi jeff -- Experimental IP gateway
+#
+# The tnc or host system must be connected to a serial port.
+#
+device /dev/ttyS1
+#
+# The line speed is set here
+#
+speed 9600
+#
+# loglevel 0 - no output
+# loglevel 1 - config info only
+# loglevel 2 - major events and errors
+# loglevel 3 - major events, errors, and AX25 frame trace
+# loglevel 4 - all events
+#
+loglevel 4
+#
+# If digi mode, we probably have a tnc on the other end of the serial
+# port. Use the param command to set the KISS parameters (like txdelay!)
+# You can specify as many as you need.
+#
+param 1 20
+#
+# Define some routes. This example routes all traffic for callsign ka9wsb-7
+# to a host named waveguide.central.sun.com. You can define as many as
+# required.
+#
+route ve3rpi bbs.ve3rpi.ampr.org
+route ve3rpi-2 ryeham.ee.ryerson.ca
+route qst ryeham.ee.ryerson.ca
+#
+# A catch-all is provided: this line sends all calls not specifically
+# noted in the routing tables to sunbird.central.sun.com. Use this feature
+# with great care -- the host on the other end may not appreciate all the
+# traffic!
+#
+#route default sunbird.central.sun.com
+#
+
+
+
+ax25ipd.cfg.n8qlb
+
+
+# Sample ax25ipd configuration file (0.4.2 version)
+#
+# First select the mode of operation. (digi or tnc)
+#
+mode tnc
+#
+# The normal mode of operation is using IP datagrams:
+#
+socket ip
+#
+# But you can also use UDP datagrams. If you don't specify a port number
+# to use, the default will be chosen (usually a Good Idea).
+#
+socket udp
+#
+# If you selected digi, you must define a callsign. If you selected
+# tnc mode, the callsign is currently optional, but this may change
+# in the future!
+#
+mycall N8QLB-1
+#
+# In digi mode, you may use an alias.
+#
+myalias LINUXX
+#
+# Note that if you use an alias, in order to guarantee you will properly
+# ID every 10 minutes, you MUST specify "beacon every 540" (or so --
+# don't beacon too often, but setting it to 600 might end up squeaking
+# past the 10 minute time if the channel is busy)
+# A possible future enhancement may allow an ID only if necessary (i.e.
+# a packet has been digipeated using the "myalias" id)...
+#
+beacon every 540
+btext ax25ipd -- digi n8qlb -- Experimental IP gateway
+#
+# The tnc or host system must be connected to a serial port.
+#
+device /dev/tnc
+#
+# The line speed is set here
+#
+speed 9600
+#
+# loglevel 0 - no output
+# loglevel 1 - config info only
+# loglevel 2 - major events and errors
+# loglevel 3 - major events, errors, and AX25 frame trace
+# loglevel 4 - all events
+#
+loglevel 0
+#
+# If digi mode, we probably have a tnc on the other end of the serial
+# port. Use the param command to set the KISS parameters (like txdelay!)
+# You can specify as many as you need.
+#
+param 1 20
+#
+# Define some routes. This example routes all traffic for callsign ka9wsb-6
+# to a host named sales.central.sun.com, using udp instead of raw ip. The
+# next line sends all traffic for e3abc-5 to a host at ip address 11.22.33.44,
+# sending the datagrams to udp port 12345. The last example sends frames
+# addressed to y4xyz-9 and sends them to flim.flam.com, using the ip
+# encapsulation. You can define as many as required.
+#
+#route n8qlb linux.n8qlb
+#route e3abc-5 11.22.33.44 udp 12345
+#route y4xyz-9 flim.flam.com
+#
+# A catch-all is provided: this line sends all calls not specifically
+# noted in the routing tables to fred.central.sun.com. Use this feature
+# with great care -- the host on the other end may not appreciate all the
+# traffic!
+#
+route default linux.n8qlb
+#
+ax25ipd.cfg.stock
+# Sample ax25ipd configuration file
+#
+# First select the mode of operation. (digi or tnc)
+#
+mode digi
+#
+# If you selected digi, you must define a callsign. If you selected
+# tnc mode, the callsign is currently optional, but this may change
+# in the future!
+#
+mycall ka9wsb-7
+#
+# In digi mode, you may use an alias.
+#
+myalias sunord
+#
+# ID every 10 minutes...
+#
+beacon after 540
+btext ax25ipd -- digi ka9wsb-7 -- Experimental IP gateway
+#
+# The tnc or host system must be connected to a serial port.
+#
+device /dev/ttyb
+#
+# The line speed is set here
+#
+speed 9600
+#
+# loglevel 0 - no output
+# loglevel 1 - config info only
+# loglevel 2 - major events and errors
+# loglevel 3 - major events, errors, and AX25 frame trace
+# loglevel 4 - all events
+#
+loglevel 3
+#
+# If digi mode, we probably have a tnc on the other end of the serial
+# port. Use the param command to set the KISS parameters (like txdelay!)
+# You can specify as many as you need.
+#
+param 1 20
+#
+# Define some routes. This example routes all traffic for callsign ka9wsb-7
+# to a host named waveguide.central.sun.com. You can define as many as
+# required.
+#
+route ka9wsb-6 salespuke.central.sun.com
+#
+# A catch-all is provided: this line sends all calls not specifically
+# noted in the routing tables to sunbird.central.sun.com. Use this feature
+# with great care -- the host on the other end may not appreciate all the
+# traffic!
+#
+#route default sunbird.central.sun.com
+#
+
+
+
+
+Outstanding Issues
+------------------
+
+ There are many outstanding issues with this software. A partial list,
+in no particular order, appears below.
+
+- Portability! io.c currently uses BSD-style select but sys5-style termios!
+
+- ICMP messages relating to ax25ipd are ignored.
+
+- Performance of the routing lookups is probably horrid. Also, a static
+ table is a crock. Feedback from evaluations and test sites may help
+ determine how this should work.
+
+- Statistics should be added.
+
+- A few more comments in the code would be nice.
+
+
+Comments, Criticism, Enhancements, Problems, Bugs
+-------------------------------------------------
+
+ You can reach the person responsible for ax25ipd at any of the following
+ addresses:
+
+ Mike.Westerhof@Central.Sun.COM
+
+ KA9WSB@WB9YAE
+
+ Mike Westerhof, 17 N Main St, Mt Prospect, IL 60056
+
+-------------------------------------------------------------------------
+Copyright 1991, Michael Westerhof, Sun Microsystems, Inc.
+This software may be freely used, distributed, or modified, providing
+this footer is not removed.
+-------------------------------------------------------------------------
+
diff --git a/ax25ipd/ax25ipd.conf b/ax25ipd/ax25ipd.conf
new file mode 100644
index 0000000..391494f
--- /dev/null
+++ b/ax25ipd/ax25ipd.conf
@@ -0,0 +1,71 @@
+#
+# ax25ipd configuration file for station floyd.vk5xxx.ampr.org
+#
+# Select axip transport. 'ip' is what you want for compatibility
+# with most other gates ...
+#
+socket ip
+#
+# Set ax25ipd mode of operation. (digi or tnc)
+#
+mode tnc
+#
+# If you selected digi, you must define a callsign. If you selected
+# tnc mode, the callsign is currently optional, but this may change
+# in the future! (2 calls if using dual port kiss)
+#
+#mycall vk5xxx-4
+#mycall2 vk5xxx-5
+#
+# In digi mode, you may use an alias. (2 for dual port)
+#
+#myalias svwdns
+#myalias2 svwdn2
+#
+# Send an ident every 540 seconds ...
+#
+#beacon after 540
+#btext ax25ip -- tncmode rob/vk5xxx -- Experimental AXIP gateway
+#
+# Serial port, or pipe connected to a kissattach in my case
+#
+device /dev/ttyp0
+#
+# Set the device speed
+#
+speed 9600
+#
+# loglevel 0 - no output
+# loglevel 1 - config info only
+# loglevel 2 - major events and errors
+# loglevel 3 - major events, errors, and AX25 frame trace
+# loglevel 4 - all events
+# log 0 for the moment, syslog not working yet ...
+#
+loglevel 0
+#
+# If we are in digi mode, we might have a real tnc here, so use param to
+# set the tnc parameters ...
+#
+#param 1 20
+#
+# Broadcast Address definition. Any of the addresses listed will be forwarded
+# to any of the routes flagged as broadcast capable routes.
+#
+broadcast QST-0 NODES-0
+#
+# ax.25 route definition, define as many as you need.
+# format is route (call/wildcard) (ip host at destination)
+# ssid of 0 routes all ssid's
+#
+# route <destcall> <destaddr> [flags]
+#
+# Valid flags are:
+# b - allow broadcasts to be transmitted via this route
+# d - this route is the default route
+#
+#route vk2sut-0 44.136.8.68 b
+#route vk5xxx 44.136.188.221 b
+#route vk2abc 44.1.1.1
+#
+#