From aa112083f850e1b6c5c6ed9c9e59a568ff66a000 Mon Sep 17 00:00:00 2001 From: Ralf Baechle Date: Thu, 8 Jul 1999 06:46:27 +0200 Subject: Import ax25-apps 0.0.2 from tarball --- ax25ipd/COPYING.ax25ipd | 39 +++ ax25ipd/HISTORY.ax25ipd | 49 ++++ ax25ipd/Makefile.am | 21 +- ax25ipd/Makefile.in | 71 +++-- ax25ipd/README.ax25ipd | 695 ++++++++++++++++++++++++++++++++++++++++++++++++ ax25ipd/ax25ipd.conf | 71 +++++ 6 files changed, 926 insertions(+), 20 deletions(-) create mode 100644 ax25ipd/COPYING.ax25ipd create mode 100644 ax25ipd/HISTORY.ax25ipd create mode 100644 ax25ipd/README.ax25ipd create mode 100644 ax25ipd/ax25ipd.conf (limited to 'ax25ipd') 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 " + * 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 ). + + +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 [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 +# +# -- cgit v1.2.3