cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

6pack.rst (8342B)


      1.. SPDX-License-Identifier: GPL-2.0
      2
      3==============
      46pack Protocol
      5==============
      6
      7This is the 6pack-mini-HOWTO, written by
      8
      9Andreas 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
     15Last update: April 7, 1998
     16
     171. What is 6pack, and what are the advantages to KISS?
     18======================================================
     19
     206pack is a transmission protocol for data exchange between the PC and
     21the TNC over a serial line. It can be used as an alternative to KISS.
     22
     236pack 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
     44More details about 6pack are described in the file 6pack.ps that is located
     45in the doc directory of the AX.25 utilities package.
     46
     472. Who has developed the 6pack protocol?
     48========================================
     49
     50The 6pack protocol has been developed by Ekki Plicht DF4OR, Henning Rech
     51DF9IC and Gunter Jost DK7WJ. A driver for 6pack, written by Gunter Jost and
     52Matthias Welwarsky DG2FEF, comes along with the PC version of FlexNet.
     53They have also written a firmware for TNCs to perform the 6pack
     54protocol (see section 4 below).
     55
     563. Where can I get the latest version of 6pack for LinuX?
     57=========================================================
     58
     59At the moment, the 6pack stuff can obtained via anonymous ftp from
     60db0bm.automation.fh-aachen.de. In the directory /incoming/dg3kq,
     61there is a file named 6pack.tgz.
     62
     634. Preparing the TNC for 6pack operation
     64========================================
     65
     66To be able to use 6pack, a special firmware for the TNC is needed. The EPROM
     67of a newly bought TNC does not contain 6pack, so you will have to
     68program an EPROM yourself. The image file for 6pack EPROMs should be
     69available on any packet radio box where PC/FlexNet can be found. The name of
     70the file is 6pack.bin. This file is copyrighted and maintained by the FlexNet
     71team. It can be used under the terms of the license that comes along
     72with PC/FlexNet. Please do not ask me about the internals of this file as I
     73don't know anything about it. I used a textual description of the 6pack
     74protocol to program the Linux driver.
     75
     76TNCs contain a 64kByte EPROM, the lower half of which is used for
     77the firmware/KISS. The upper half is either empty or is sometimes
     78programmed with software called TAPR. In the latter case, the TNC
     79is supplied with a DIP switch so you can easily change between the
     80two systems. When programming a new EPROM, one of the systems is replaced
     81by 6pack. It is useful to replace TAPR, as this software is rarely used
     82nowadays. If your TNC is not equipped with the switch mentioned above, you
     83can build in one yourself that switches over the highest address pin
     84of the EPROM between HIGH and LOW level. After having inserted the new EPROM
     85and switched to 6pack, apply power to the TNC for a first test. The connect
     86and the status LED are lit for about a second if the firmware initialises
     87the TNC correctly.
     88
     895. Building and installing the 6pack driver
     90===========================================
     91
     92The driver has been tested with kernel version 2.1.90. Use with older
     93kernels may lead to a compilation error because the interface to a kernel
     94function has been changed in the 2.1.8x kernels.
     95
     96How 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
    107To use the driver, the kissattach program delivered with the AX.25 utilities
    108has 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
    125Installing 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
    139Although the driver has been tested on various platforms, I still declare it
    140ALPHA. BE CAREFUL! Sync your disks before insmoding the 6pack module
    141and spattaching. Watch out if your computer behaves strangely. Read section
    1426 of this file about known problems.
    143
    144Note that the connect and status LEDs of the TNC are controlled in a
    145different way than they are when the TNC is used with PC/FlexNet. When using
    146FlexNet, the connect LED is on if there is a connection; the status LED is
    147on if there is data in the buffer of the PC's AX.25 engine that has to be
    148transmitted. Under Linux, the 6pack layer is beyond the AX.25 layer,
    149so the 6pack driver doesn't know anything about connects or data that
    150has not yet been transmitted. Therefore the LEDs are controlled
    151as they are in KISS mode: The connect LED is turned on if data is transferred
    152from the PC to the TNC over the serial line, the status LED if data is
    153sent to the PC.
    154
    1556. Known problems
    156=================
    157
    158When testing the driver with 2.0.3x kernels and
    159operating with data rates on the radio channel of 9600 Baud or higher,
    160the driver may, on certain systems, sometimes print the message '6pack:
    161bad checksum', which is due to data loss if the other station sends two
    162or more subsequent packets. I have been told that this is due to a problem
    163with the serial driver of 2.0.3x kernels. I don't know yet if the problem
    164still exists with 2.1.x kernels, as I have heard that the serial driver
    165code has been changed with 2.1.x.
    166
    167When shutting down the sp interface with ifconfig, the kernel crashes if
    168there is still an AX.25 connection left over which an IP connection was
    169running, even if that IP connection is already closed. The problem does not
    170occur when there is a bare AX.25 connection still running. I don't know if
    171this is a problem of the 6pack driver or something else in the kernel.
    172
    173The driver has been tested as a module, not yet as a kernel-builtin driver.
    174
    175The 6pack protocol supports daisy-chaining of TNCs in a token ring, which is
    176connected to one serial port of the PC. This feature is not implemented
    177and at least at the moment I won't be able to do it because I do not have
    178the opportunity to build a TNC daisy-chain and test it.
    179
    180Some of the comments in the source code are inaccurate. They are left from
    181the SLIP/KISS driver, from which the 6pack driver has been derived.
    182I haven't modified or removed them yet -- sorry! The code itself needs
    183some cleaning and optimizing. This will be done in a later release.
    184
    185If you encounter a bug or if you have a question or suggestion concerning the
    186driver, feel free to mail me, using the addresses given at the beginning of
    187this file.
    188
    189Have fun!
    190
    191Andreas