Experimental and Developmental modules.

# 12 Experimental and Developmental modules.

Contents of this section

There are a number of people developing new features and modules for the Linux networking code. Some of these are in quite an advanced state (read working), and it is these that I intend to include in this section until they are standard release code, when they will be moved forward.

## 12.1 AX.25 - A protocol used by Amateur Radio Operators.

The AX.25 protocol is used by Amateur Radio Operators worldwide. It offers both connected and connectionless modes of operation, and is used either by itself for point-point links, or to carry other protocols such as tcp/ip and netrom.

It is similar to X.25 level 2 in structure, with some extensions to make it more useful in the amateur radio environment.

Alan Cox has developed some kernel based AX.25 software support for Linux and these are available in ALPHA form for you to try. Alan's code supports both KISS based TNC's (Terminal Node Controllers), and the Z8530 SCC driver.

The User programs contain a P.M.S. (Personal Message System), a beacon facility, a line mode connect program, and `listen' an example of how to capture all AX.25 frames at RAW interface level.

Be sure to read `/usr/local/ax25/README` as it contains more complete information regarding this software.

### Where to obtain the AX.25 software.

The AX.25 software is available from:

sunacm.swan.ac.uk

> `

>     /pub/misc/Linux/Radio/*

> `

You will find a number of directories, each containing different versions of the code. Since it is closely linked with the kernel code, you will need to ensure that you choose the version appropriate for the kernel version you are running. The following table shows the mapping between the two:

> `

>     AX25007                 Prehistoric
>     AX25010                 Obsolete
>     AX25012                 for release 1.0.* kernels and higher
>     AX25016                 for release 1.1.5 kernels
>     AX25017                 for release 1.1.6 kernels
>     AX25018
>     AX25021
>     AX25022                 for release 1.1.28 kernels

> `

In each directory you will find at least two files, one called something like `krnl022.tgz`, and the other called something like `user022.tgz`. These are the kernel software, and the user programs respectively.

### Installing the AX.25 software.

The software comes in two parts, the kernel drivers, and the user programs.

### The kernel drivers.

To install the kernel drivers, do the following:

> `

>     # cd /usr/src
>     # gzip -dc krnl022.tgz | tar xvf -

> `

you will need to uncomment the `CONFIG_AX25` define in the `/usr/src/linux/config.in` file.

You should then:

> `

>     # cd /usr/src/linux
>     # make config
>     # make dep;make

> `

Be sure to answer `yes' when you are asked if you should include the AX.25 support in the make config step. You will also need to answer `yes' to inluding SLIP if you want the AX.25 code to support a KISS TNC.

### The user programs.

To install the user programs you should try:

> `

>     # cd /
>     # gzip -dc user022.tgz | tar xvvof -

> `

You should then:

> `

>     # cd /usr/local/ax25/src
>     # make install

> `

### Configuring and using the AX.25 software.

Configuring an AX.25 port is very similar to configuring a slip device. The AX.25 software has been designed to work with a TNC in kiss mode. You will need to have the TNC preconfigured and connected.

You use the axattach program in much the same way as you would use the slattach program. For example:

> `

>     # /usr/local/ax25/bin/axattach -s 4800 /dev/cua1 VK2KTJ &

> `

would configure your `/dev/cua1` serial device to be a kiss interface at 4800 bps, with the hardware address `VK2KTJ`.

You would then use the ifconfig program to configure the ip address and netmask as for an ethernet device:

> `

>     # /sbin/ifconfig sl0 44.136.8.5
>     # /sbin/ifconfig sl0 netmask 255.255.255.0
>     # /sbin/ifconfig sl0 broadcast 44.136.8.255
>     # /sbin/ifconfig sl0 arp mtu 257 up

> `

To test it out, try the following:

> `

>     /usr/local/ax25/bin/call VK2DAY via VK2RVT

> `

The call program is a linemode terminal program for making ax.25 calls. It recognises lines that start with `~' as command lines. The `~.' command will close the connection.

You also need to configure some items such as the window to use. This necessitates editing only one file. Edit the `/usr/local/ax25/etc/ports` file. This is an ascii file containing one line for each AX.25 port. You must have the entries in this file in the same order as you configure your AX.25 interfaces.

The format is as follows:

> `

>     callsign baudrate window frequency

> `

At this stage not much of this information is used, it will be picked up and used in later developments.

I haven't had a chance to try this code out yet. Please refer to the man pages in `/usr/local/ax25/man` and the `README` file in `/usr/local/ax25` for more information.

## 12.2 Z8530 SCC driver.

The Zilog Z8530 SCC provides Synchronous/Asynchronous, HDLC, NRZI encoding and other capabilities. There are a number of peripheral cards that use the Z850 as the basis of their design. A driver has been written by `Joerg Reuter, <dl1bke@melaten.ihf.rwth-aachen.de>`, and is available on:

ftp.ucsd.edu

> `

>     /hamradio/packet/tcpip/incoming/sccdrv-1.4a.dl1bke.tar.gz

> `

Please read the README file that accompanies the driver for more details.

## 12.3 Ottawa PI/PI2 card driver.

The Ottawa PI card is a Z8530 SCC based card for IBM PC type machines that is in common usage by Amateur Radio operators worldwide. While it is most commonly used by Amateur Radio Operators, it could be pressed into service in other fields where it is desirable to have the features of a Z8530. It supports a high speed half duplex (single DMA channel) port, and a low speed (<19.2kbps interrupt driven) full duplex port. The PI2 is a new version of the card that supports an on board radio modem, and improved hardware design.

A driver for this card has been written by `David Perry, <dp@hydra.carleton.edu>`, and is available from:

hydra.carleton.ca

> `

>     /pub/hamradio/packet/tcpip/linux/pi2-0.5ALPHA.tgz

> `

Please read the README file that accompanes the driver for more details.

## 12.4 NIS - Sun Network Information System.

There are in fact two NIS implementations being distributed. Firstly there is a rudimentary implementation in the standard libc ditribution which however requires binding to servers via ypbind before use. A more clean implementation tending towards the NIS+ implementation is called NYS, is written by `Peter Eriksson, <pen@lysator.liu.se>` and is available from:

ftp.funet.fi

> `

>     /pub/OS/Linux/BETA/NYS/nys-0.26.tar.gz

> `

An NIS style server can be retrieved from:

ftp.funet.fi

> `

>     /pub/OS/Linux/BETA/NYS/ypserv-0.5.tar.gz

> `

Check there are no newer versions, as this information might now be slightly dated.

Both of these are fully functional and they have been used extensively with no troubles to query Sun servers for NIS information like passwd/hosts/group etc. and don't require binding to arbitrary servers. In fact they allow you to specify servers for services and have the ability to select a yp/dns/file option for name/passwd/etc. resolution of specific services. They are extremely easy to set up, and recommended for client machines integrating into larger networks.

Clearly your network daemons and clients need to be recompiled to link with the shared library libnsl.so to make use of the YP facilities. This is fairly trivial and an NYS package of all network clients and daemons is currently being compiled.

If you have more detailed information on NIS, please email me.

## 12.5 snmp agent.

There is an experimental snmp agent for linux, ported by `Erik Schoenfelder, <schoenfr@ibr.cs.tu-bs.de>`.

It is available from:

ftp.ibr.cs.tu-bs.de

> `

>     /pub/local/cmu-snmp2.1.2l2.tar.gz

> `

Please read the file called `cmu-snmp2.1.2l2.README`, as it contains information that you will need to know about the package.

This package provides a nearly complete MIB-II variable set. At this stage though, you can only read variables, not set them.

`nstat.tar.gz` contains a formatter of the output from `/proc/net/snmp` called nstat.

You will need to be running either a new version kernel, or apply patches to your kernel source. Details are in the `README` file.

## 12.6 Experimental ARCNet driver

There have been a number of people looking for a driver for ARCNet cards. ARCNet cards provide only rates of about 2Mbps, but are capable of being supported via longer length cables than for 10base2 (thinnet) type lans. ARCNet cards are also likely to be fairly cheap, as many businesses are gradually replacing their ARCNet networks with other lan types.

`Avery Pennarun <apenwarr@tourism.807-city.on.ca>` has produced an experimental ARCNet driver for Linux. It is ALPHA which means you should try it knowing that it probably still contains many errors and might even cause you other problems like kernel hangs.

The source code and kernel patch for the driver are available at:

sunsite.unc.edu

> `

>     /pub/Linux/system/Network/drivers/arcnet-0.12.tar.gz

> `

Note: For ease of patching you will require kernel version 1.1.51 as this is what the patch was made against, though it might also work either 1.1.45 and up.

There are some known bugs, you can obtain details of these by reading the top of the `arcnet.c` file.

Avery is now at the stage where he needs people to try the driver to discover any bugs or problems that he hasn't been able to find, and to guage how well it works in other environments. Avery will happily accept any reports via the NET channel, or by email to home at either <apenwarr@tourism.807-city.on.ca>, or <Avery.Pennarun@NorLinK.Com>. Avery has problems with News, so bug reports via any of the Linux newsgroups might not make it to him. Avery wants to know not only if you have problems, but also if you have success.

## 12.7 Experimental Token Ring driver

An experimental Token Ring driver is being developed by `Peter De Schrijver <stud11@cc4.kuleuven.ac.be>`. His latest version, at the time of writing was available at:

sunsite.unc.edu

> `

>     /pub/Linux/Incoming/linux-1.1.44-TR.tar.gz

> `

## 12.8 V.35 interface board

V.35 is a C.C.I.T.T. standard interface that provides a high speed balanced serial interface suitable for speeds up to about 2 Mbps. The use of differential pair balanced transmission allows the V.35 interface to support longer cables than can the more familiar V.24/RS232C type interface and higher data rates.

`Pete Kruckenberg <kruckenb@sal.cs.utah.edu>` located a company that supplies V.35 interface hardware for ISA bus machines. The company is also developing a Linux driver for this card that is nearing Beta testing stage. This would allow you to directly connect your Linux machine to a 48/56kbps synchronous leased line. The card supports multiple protocols and allows for interface speeds of up to 12 Mbps.

More information is available from:

ftp.std.com

> `

>     pub/sdl/n2

> `

or you can email `Dale Dhillon <sdl@world.std.com>`

## 12.9 Slip Management Suite

Matthew Dillon, `dillon@apollo.west.oic.com` has assembled a suite of programs for managing slip connections, both incoming and outgoing. Some of the software's features are automatic dialling out, automatic redial on failure, and shifting between slip connections on a single serial port.

Matt has tested the code with version 1.1.x kernels, but says it should also compile and run ok with version 1.0.x kernels.

You can obtain the software from: ftp.west.oic.com or from: sunsite.unc.edu

## 12.10 tcpdump utility

Adam Caldwell <acaldwel@103mort2.cs.ohiou.edu> has ported the tcpdump to linux. tcpdump allows you to take traces of network activity by intercepting the datagrams on their way in and out of your machine. This is useful for diagnosing difficult to identify network problems.

Both binary and sources are available, and version 3.0 has been tested on kernel versions 0.99.15, 1.0.8 and 1.1.28.

You can find the source and binaries at: 103mor2.cs.ohiou.edu or from: sunsite.unc.edu

Next Chapter, Previous Chapter

Table of contents of this chapter, General table of contents

Top of the document, Beginning of this Chapter