1 .. SPDX-License-Identifier: GPL-2.0 2 3 ============== 4 6pack Protocol 5 ============== 6 7 This is the 6pack-mini-HOWTO, written by 8 9 Andreas Könsgen DG3KQ 10 11 :Internet: ajk@comnets.uni-bremen.de 12 :AMPR-net: dg3kq@db0pra.ampr.org 13 :AX.25: dg3kq@db0ach.#nrw.deu.eu 14 15 Last update: April 7, 1998 16 17 1. What is 6pack, and what are the advantages to KISS? 18 ====================================================== 19 20 6pack is a transmission protocol for data exchange between the PC and 21 the TNC over a serial line. It can be used as an alternative to KISS. 22 23 6pack has two major advantages: 24 25 - The PC is given full control over the radio 26 channel. Special control data is exchanged between the PC and the TNC so 27 that the PC knows at any time if the TNC is receiving data, if a TNC 28 buffer underrun or overrun has occurred, if the PTT is 29 set and so on. This control data is processed at a higher priority than 30 normal data, so a data stream can be interrupted at any time to issue an 31 important event. This helps to improve the channel access and timing 32 algorithms as everything is computed in the PC. It would even be possible 33 to experiment with something completely different from the known CSMA and 34 DAMA channel access methods. 35 This kind of real-time control is especially important to supply several 36 TNCs that are connected between each other and the PC by a daisy chain 37 (however, this feature is not supported yet by the Linux 6pack driver). 38 39 - Each packet transferred over the serial line is supplied with a checksum, 40 so it is easy to detect errors due to problems on the serial line. 41 Received packets that are corrupt are not passed on to the AX.25 layer. 42 Damaged packets that the TNC has received from the PC are not transmitted. 43 44 More details about 6pack are described in the file 6pack.ps that is located 45 in the doc directory of the AX.25 utilities package. 46 47 2. Who has developed the 6pack protocol? 48 ======================================== 49 50 The 6pack protocol has been developed by Ekki Plicht DF4OR, Henning Rech 51 DF9IC and Gunter Jost DK7WJ. A driver for 6pack, written by Gunter Jost and 52 Matthias Welwarsky DG2FEF, comes along with the PC version of FlexNet. 53 They have also written a firmware for TNCs to perform the 6pack 54 protocol (see section 4 below). 55 56 3. Where can I get the latest version of 6pack for LinuX? 57 ========================================================= 58 59 At the moment, the 6pack stuff can obtained via anonymous ftp from 60 db0bm.automation.fh-aachen.de. In the directory /incoming/dg3kq, 61 there is a file named 6pack.tgz. 62 63 4. Preparing the TNC for 6pack operation 64 ======================================== 65 66 To be able to use 6pack, a special firmware for the TNC is needed. The EPROM 67 of a newly bought TNC does not contain 6pack, so you will have to 68 program an EPROM yourself. The image file for 6pack EPROMs should be 69 available on any packet radio box where PC/FlexNet can be found. The name of 70 the file is 6pack.bin. This file is copyrighted and maintained by the FlexNet 71 team. It can be used under the terms of the license that comes along 72 with PC/FlexNet. Please do not ask me about the internals of this file as I 73 don't know anything about it. I used a textual description of the 6pack 74 protocol to program the Linux driver. 75 76 TNCs contain a 64kByte EPROM, the lower half of which is used for 77 the firmware/KISS. The upper half is either empty or is sometimes 78 programmed with software called TAPR. In the latter case, the TNC 79 is supplied with a DIP switch so you can easily change between the 80 two systems. When programming a new EPROM, one of the systems is replaced 81 by 6pack. It is useful to replace TAPR, as this software is rarely used 82 nowadays. If your TNC is not equipped with the switch mentioned above, you 83 can build in one yourself that switches over the highest address pin 84 of the EPROM between HIGH and LOW level. After having inserted the new EPROM 85 and switched to 6pack, apply power to the TNC for a first test. The connect 86 and the status LED are lit for about a second if the firmware initialises 87 the TNC correctly. 88 89 5. Building and installing the 6pack driver 90 =========================================== 91 92 The driver has been tested with kernel version 2.1.90. Use with older 93 kernels may lead to a compilation error because the interface to a kernel 94 function has been changed in the 2.1.8x kernels. 95 96 How to turn on 6pack support: 97 ============================= 98 99 - In the linux kernel configuration program, select the code maturity level 100 options menu and turn on the prompting for development drivers. 101 102 - Select the amateur radio support menu and turn on the serial port 6pack 103 driver. 104 105 - Compile and install the kernel and the modules. 106 107 To use the driver, the kissattach program delivered with the AX.25 utilities 108 has to be modified. 109 110 - Do a cd to the directory that holds the kissattach sources. Edit the 111 kissattach.c file. At the top, insert the following lines:: 112 113 #ifndef N_6PACK 114 #define N_6PACK (N_AX25+1) 115 #endif 116 117 Then find the line: 118 119 int disc = N_AX25; 120 121 and replace N_AX25 by N_6PACK. 122 123 - Recompile kissattach. Rename it to spattach to avoid confusions. 124 125 Installing the driver: 126 ---------------------- 127 128 - Do an insmod 6pack. Look at your /var/log/messages file to check if the 129 module has printed its initialization message. 130 131 - Do a spattach as you would launch kissattach when starting a KISS port. 132 Check if the kernel prints the message '6pack: TNC found'. 133 134 - From here, everything should work as if you were setting up a KISS port. 135 The only difference is that the network device that represents 136 the 6pack port is called sp instead of sl or ax. So, sp0 would be the 137 first 6pack port. 138 139 Although the driver has been tested on various platforms, I still declare it 140 ALPHA. BE CAREFUL! Sync your disks before insmoding the 6pack module 141 and spattaching. Watch out if your computer behaves strangely. Read section 142 6 of this file about known problems. 143 144 Note that the connect and status LEDs of the TNC are controlled in a 145 different way than they are when the TNC is used with PC/FlexNet. When using 146 FlexNet, the connect LED is on if there is a connection; the status LED is 147 on if there is data in the buffer of the PC's AX.25 engine that has to be 148 transmitted. Under Linux, the 6pack layer is beyond the AX.25 layer, 149 so the 6pack driver doesn't know anything about connects or data that 150 has not yet been transmitted. Therefore the LEDs are controlled 151 as they are in KISS mode: The connect LED is turned on if data is transferred 152 from the PC to the TNC over the serial line, the status LED if data is 153 sent to the PC. 154 155 6. Known problems 156 ================= 157 158 When testing the driver with 2.0.3x kernels and 159 operating with data rates on the radio channel of 9600 Baud or higher, 160 the driver may, on certain systems, sometimes print the message '6pack: 161 bad checksum', which is due to data loss if the other station sends two 162 or more subsequent packets. I have been told that this is due to a problem 163 with the serial driver of 2.0.3x kernels. I don't know yet if the problem 164 still exists with 2.1.x kernels, as I have heard that the serial driver 165 code has been changed with 2.1.x. 166 167 When shutting down the sp interface with ifconfig, the kernel crashes if 168 there is still an AX.25 connection left over which an IP connection was 169 running, even if that IP connection is already closed. The problem does not 170 occur when there is a bare AX.25 connection still running. I don't know if 171 this is a problem of the 6pack driver or something else in the kernel. 172 173 The driver has been tested as a module, not yet as a kernel-builtin driver. 174 175 The 6pack protocol supports daisy-chaining of TNCs in a token ring, which is 176 connected to one serial port of the PC. This feature is not implemented 177 and at least at the moment I won't be able to do it because I do not have 178 the opportunity to build a TNC daisy-chain and test it. 179 180 Some of the comments in the source code are inaccurate. They are left from 181 the SLIP/KISS driver, from which the 6pack driver has been derived. 182 I haven't modified or removed them yet -- sorry! The code itself needs 183 some cleaning and optimizing. This will be done in a later release. 184 185 If you encounter a bug or if you have a question or suggestion concerning the 186 driver, feel free to mail me, using the addresses given at the beginning of 187 this file. 188 189 Have fun! 190 191 Andreas
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.