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