The KISS TNC – too simple, too stupid?

An important element of early AX.25 networks was the Terminal Node Controller (TNC). Essentially, a TNC was a packet assembler / disassembler (PAD) pretty much equivalent to the PAD of X.25 networks but adapted to AX.25, and commonly, an embedded modem.

The TNC-2 was a hardware configuration which became a de-facto standard, and various firmware packages became available each with their own advantages and disadvantages. and a range of protocols for the host connection.

One of the inventions was the KISS protocol (KISS for keep it simple stupid) from Mike Chepponis (K3MC) & Phil Karn (KA9Q), and an implementation for TNC-2.

A KISS TNC is a very simple TNC, it does not do packet assembly and dissassembly, it only performs HDLC bit stuffing and CRC processing. The KISS protocol frames the AX.25 packet (without HDLC frame codes, bit stuffing and CRC) between KISS frame codes, and does its own escapes to be binary transparent to packet payload… but it does not do any error checking.

The KISS protocol does include a small set of commands for configuring the channel access parameters.

Problems

Reliable link

KISS does not provide error protection of the KISS host link. There have been some variations that offer protection (eg SMACK), but they are not widely supported by applications which indicates that hams are quite accepting of low grade implementations, that whilst the radio segment detects errors, errors such as data overruns on the KISS serial link go undetected (at the link level).

Status

The host cannot ascertain the TNC status, there are no KISS commands that have a response, much less any that provide any known information.

Equally, the TNC cannot ascertain host status.

Modem diagnostic

Because of the encoding used, the modem cannot be directly controlled by data content, so it is not possible to cause the modem to send a continuous or even long duration high or low tone with a KISS packet.

The KISS protocol lacks commands to cause the transmitter to send a high and low tone of longish duration to allow alignment of the tx audio level.

It is possible to construct a KISS frame that sends an isochronous test signal (Duffy 2014), but that signal does not suit setup with a conventional deviation meter.

Latency

There is an arbitrary delay between receipt of a KISS frame from the host and its transmission. Instances of delays of hours can occur when the modem indicates received data carrier as many would do for example if the radio squelch drifted open. There is not means for a host to detect this situation, and they just keep piling packets into the TNC to the limit of its buffer.

In the APRS network, this is commonplace and one of the greatest cause of corrupted position reports and the APRS-IS infrastrucure assigns a timestamp to a position when it receives it, even ignoring any timestamp that may be in the position report, This is just one of the many failings of APRS and APRS-IS, they are exposed to poor network infrastructure, and KISS TNCs are just that when they store up position reports for more than a few seconds.

Partial implementation

Not really the fault of the developers of the KISS protocol, but many modern implementation do not implement the full KISS protocol (short as it is), particularly the channel access parameters and even standard AX.25 channel access algorithms.

It seems tha half-baked implementations of what is already a half-baked protocol have become the norm as hams strive for mediocrity.

Violation of HDLC standards

Some KISS TNC developers decided to depart from standards for reasons not alway published, much less agreed. For example, one developer sends isochronous signals between frames in a multi frame burst, a clear violation of the standard and which causes interoperability problems with another modern KISS TNC that doesn’t properly deal with the frame of zeros as a properly bounded AX.25 frame that fails frame check.

Conclusions

  • KISS is short of features that would permit more intelligent node operation and proper level lineups.
  • Partial implementations dumb KISS down even further.
  • AX.25 has stagnated to the point that KISS is the most common protocol for communicating with TNC/modems.
  • KISS is unlikely to ever be improved or replaced.

References / links

  • Duffy, O. Oct 2014. Adjusting KISS TNC AFSK tx level using an isochronous test packet. http://owenduffy.net/blog/?p=2675.
  • Karn, Phil KA9Q, and Mike Chepponis K3MC 1990. The KISS TNC: A simple Host-to-TNC communications protocol.