/kisstun

KISS/AX.25 implementation with TUN interface, based on slipTUN

Primary LanguageC

kissTUN


Description

a simple KISS/AX.25 implementation with TAP interface

the detail of KISS protocol: see https://www.ax25.net/kiss.aspx

Usage

# kisstun
usage: kisstun -s [serial speed] -l [serial device] -t [tun device] -xs[callsign]
#

Note: no space required between -xs and callsign.

Example

set up KISS/AX.25 port on OpenBSD

# ifconfig tap0 create
# ifconfig tap0 inet 192.168.200.1/24
# ifconfig tap0 mtu 255 up
# kisstun -s 9600 -l /dev/tty00 -t /dev/tap0 -xsN0CALL-2 &

You can use kisstun -p 8001 -l 192.168.100.1 -t /dev/tap0 -xsN0CALL-2 & to use with Dire Wolf instead of TNC.

set up KISS/AX.25 port on Linux with kisstun

# ip tuntap add mode tap dev tap0
# ip addr add 192.168.200.2/24 dev tap0
# ip link set up mtu 255 dev tap0
# kisstun -s 9600 -l /dev/ttyS1 -t tap0 -xsN0CALL-8 &

set up KISS/AX.25 port on Linux with kissattach (standard tool)

Prepare /etc/ax25/axports, use "1" for port name in this example.

# /sbin/kissattach /dev/ttyS1 1
# /sbin/kissparms -c 1 -p 1
# ip addr add 192.168.200.2/24 dev ax0

Options

Note: -x options do not require space between options and their argument.

-s <speed>
Work with serial port, <speed> bps. Suitable for hardware TNC.
-p <port> or -P <port>
Work with TCP/IP, suitable for software TNC (e.g. Dire Wolf). -p works as a client, port number to connect. -P works as a server, port number for accept (be careful for security).
-l <serial device> or -l <IP address>
Target serial device (i.e. /dev/ttyS1) when use with -s option. Accept/connect IP address (i.e. 0.0.0.0) when use with -p or -P option.
-t <TAP device>
TAP device name, i.e. /dev/tap0 for *BSD users. Linux uses the name declared at ip tuntap add mode tap dev.
-f
(serial port only) Enable RTS/CTS hardware handshaking, default disable.
-xs<mycall>
Operator callsign, mandatory.
-xb<broadcastcall>
Callsign for broadcast packet, default -xbQST.
-xo<octet>
Emulated unicast MAC address for 0th octet, default -xo0xfe.
-xn
Accept source>source packet (it is observed when ARP is disabled on Linux), default reject.
-xq<loglevel>
Set log level (0 is quiet), default -xq255.
-xma
Enable multicast packet, default disable.
-xmx
Enable multicast address encoder, use with -xma. Default disable. If the encoder is enabled, destination 33:33:xx:xx:xx:xx packets will be converted to callsign started with ,P to ,_ and vice versa. Destination 01:00:5e:xx:xx:xx packets will be `%X to `%[. Other multicast packets or the encoder is disabled, multicast packets are sent as broadcast.
-xmi
Enable all multicast IP address transaction. Default disable; multicast IP addresses (224.0.0.0/4 and FF00::/8) except FF02:0:0:0:0:1:FF00/104 (Solicited-Node Address) are blocked.
-x6
Enable IPv6 transaction, default disable. Due to NDP (Neighbor Discovery Protocol) uses IPv6 multicast, using -xma option is recommended.

Limitation

No plan to support digipeater.

License

MIT License

References

AX.25 Transport Layer Drivers for TCP/IP (KB2ICI, N2KBG 1995)

Acknowledgement

Thanks to SAGAMI-NET members that bring me to AX.25 network world.