2. Installation

In order to install this package, you'll need

2.1. The Binary RPMs

If you do not wish to futz with extracting and building the source yourself, the ATM tools are also distributed in RPM format. The RPM can be installed as follows:

rpm -ivh linux-atm-x.x.x-x.rpm

2.2. The Source Tree

First, extract the ATM on Linux distribution:

tar xzvf linux-atm-x.x.x.tar.gz

When extracted the distribution will create the linux-atm-x.x.x/ directory with several sub-directories. The following sub-directories are of note:

doc/

Documentation (including this HOWTO) in SGML DocBook format

src/sigd/

UNI 3.0, UNI 3.1, and UNI 4.0 signaling demon: atmsigd

src/saal/

Signaling AAL library (SSCOP, SSCF, and SAAL)

src/qgen/

Q.2931-style message handling

src/ilmid/

ILMI address registration demon: ilmid

src/maint/

ATM maintenance programs: atmaddr, atmdiag, atmdump, atmloop, atmtcp, enitune, esi, sonetdiag, saaldump, and zntune

src/test/

Test programs: align, aping, aread, awrite, br, bw, isp, ttcp_atm, window

src/arpd/

ATMARP tools and demon: atmarp, atmarpd

src/led/

LAN Emulation demon: zeppelin

src/lane/

LAN Emulation servers: bus, lecs, les

src/mpoad/

Multi-Protocol Over ATM demon: mpcd

src/debug/

Debugging tools: delay, ed, encopy, endump, svctor, zndump, and znth

src/lib/

Libraries for applications and demons

src/man/

Miscellaneous man pages

src/extra/

Extra packages and RPM spec files.

src/config/

Configuration and rc file examples

src/switch/

Switch fabric control (under construction)

2.3. Kernel Configuration

NoteNOTE
 

If you are not familiar with building and installing a new kernel, please see the The Linux Kernel HOWTO

After unpacking the kernel distribution, do the usual make config, make menuconfig, or make xconfig in the top-level of your Linux kernel source tree. First, enable
Prompt for development and/or incomplete code/drivers
  (CONFIG_EXPERIMENTAL)
You should then be able to find the following options:
Asynchronous Transfer Mode (ATM, EXPERIMENTAL) (CONFIG_ATM)
  Use "new" skb structure (CONFIG_ATM_SKB)
  Classical IP over ATM (CONFIG_ATM_CLIP)
    Do NOT send ICMP if no neighbour (CONFIG_ATM_CLIP_NO_ICMP)
  LAN Emulation (LANE) support (CONFIG_ATM_LANE)
    Multi-Protocol Over ATM (MPOA) support (CONFIG_ATM_MPOA)
ATM over TCP (CONFIG_ATM_TCP)
Efficient Networks ENI155P (CONFIG_ATM_ENI)
  Enable extended debugging (CONFIG_ATM_ENI_DEBUG)
  Fine-tune burst settings (CONFIG_ATM_ENI_TUNE_BURST)
    Enable 16W TX bursts (discouraged) (CONFIG_ATM_ENI_BURST_TX_16W)
    Enable 8W TX bursts (recommended) (CONFIG_ATM_ENI_BURST_TX_8W)
    Enable 4W TX bursts (optional) (CONFIG_ATM_ENI_BURST_TX_4W)
    Enable 2W TX bursts (optional) (CONFIG_ATM_ENI_BURST_TX_2W)
    Enable 16W RX bursts (discouraged) (CONFIG_ATM_ENI_BURST_RX_16W)
    Enable 8W RX bursts (discouraged) (CONFIG_ATM_ENI_BURST_RX_8W)
    Enable 4W RX bursts (recommended) (CONFIG_ATM_ENI_BURST_RX_4W)
    Enable 2W RX bursts (optional) (CONFIG_ATM_ENI_BURST_RX_2W)
ZeitNet ZN1221/ZN1225 (CONFIG_ATM_ZATM)
  Enable extended debugging (CONFIG_ATM_ZATM_DEBUG)
  Enable usec resolution timestamps (CONFIG_ATM_ZATM_EXACT_TS)
IDT 77201 (NICStAR) (CONFIG_ATM_NICSTAR)
  Use suni PHY driver (155Mbps) (CONFIG_ATM_NICSTAR_USE_SUNI)
  Use IDT77015 PHY driver (25Mbps) (CONFIG_ATM_NICSTAR_USE_IDT77105)
Madge Ambassador (Collage PCI 155 Server) (CONFIG_ATM_AMBASSADOR)
  Enable debugging messages (CONFIG_ATM_AMBASSADOR_DEBUG)
Madge Horizon [Ultra] (Collage PCI 25 and Collage PCI 155 Client)
  Enable debugging messages (CONFIG_ATM_HORIZON_DEBUG)
Interphase ATM PCI x575/x525/x531 (CONFIG_ATM_IA)
  Enable debugging messages (CONFIG_ATM_IA_DEBUG)

The burst settings of the ENI driver can be fine-tuned. This may be necessary if the default settings lead to buffer overruns in the PCI chipset. See the on-line help on "CONFIG_ATM_ENI_TUNE_BURST" for a detailed discussion of the implications of changing the burst settings.

Note that the file drivers/atm/nicstar.h contains a few configurable settings for the IDT 77201 driver.

Some drivers can also be used with certain compatible cards. The latest information about compatible cards can be found at ATM on Linux information page.

Then build your kernel and reboot.

2.4. Driver Messages

If you've configured the ENI155p-MF driver, you should see two lines like these (512kB for the -C version, 2048kB for the -S version.):

eni(itf 0): rev.0,base=0xff400000,irq=10,mem=512kB (00-20-EA-00-07-56)
eni(itf 0): FPGA,MMF

If you've configured the ZN1221/ZN1225 driver, you will get something like:

zatm(itf 0): rev.3,base=0xf800,irq=11,mem=128kB,MMF (00-20-D4-10-2A-80)
zatm(itf 0): uPD98401 0.5 at 30.024 MHz
zatm(itf 0): 16 shapers, 32 pools, 2048 RX, 3958 VCs

Note that your board needs to be at least at revision level 3 if you want to use it in a Triton-based system.

Note that if you've configured only the ATM over TCP driver, there are no messages at startup, because ATM over TCP devices are created later using the atmtcp command.

2.5. Memory Debugging

If you want to enable debugging for options for memory allocations, you need to install MPR before compiling the ATM tools.

If you chose to download the binary RPM package, you can install MPR like so:

rpm -ivh mpr-x.x-x.rpm

If you chose to download the source, extract mpr-x.x.tar.gz like so:

tar xzvf mpr-x.x.tar.gz

Then do:

cd mpr-x.x
./configure x86-linux
make
make install

Detection of some general mis-use of malloc and free is automatically performed if the program was compiled with MPR present. Tracing of allocations is enabled by setting MPRPC and MPRFI. See doc/mpr.html or doc/mpr.ps in the MPR distribution for details.

Only little run-time overhead is incurred if memory debugging is included, but those environment variables are not set.

2.6. ATM Tools

Now, as the final step, configure and build the ATM tools. Configuration is only necessary if your switch uses UNI 3.1 or 4.0, or if it has certain bugs. The configuration options selected by passing the appropriate options to the ./configure script in the linux-atm distribution.

NoteNOTE
 

Issue ./configure --help from the top-level directory of the linux-atm distribution to view all possible options.

The ATM tools are built with the following commands:

cd linux-atm-x.x.x
./configure
make
make install

Unless otherwise specified when invoking ./configure, make install will install executables in the directory /usr/local/bin and /usr/local/sbin, respectively. Configuration files (except for hosts.atm which is installed in /etc) are installed in /usr/local/etc. Libraries and header files are installed in /usr/local/lib and /usr/local/include, respectively. Man pages are installed in /usr/local/man.

2.7. Extra Packages

Some programs are based on large packages that are already distributed outside of the ATM context. For some packages, patches are contained in the ATM on Linux distribution. They are contained in the src/extra directory of the ATM on Linux distribution.

Currently, the following extra packages are available:

tcpdump

dumps network traffic (enhanced for ATM)

ANS

ATM name server (based on named 4.9.5)

Note that text2atm automatically uses ANS if available, so ans only needs to be installed on systems providing name server functionality or if ATM-aware maintenance tools nslookup, etc.) are needed.

A script hosts2ans.pl to convert a /etc/hosts.atm file to ANS zone files are provided in the src/extra/ANS/ directory. Its use is described at the beginning of the file.