Differences between version 3 and predecessor to the previous major change of HowToATMLinuxHOWTO.
Other diffs: Previous Revision, Previous Author, or view the Annotated Edit History
Newer page: | version 3 | Last edited on Thursday, October 21, 2004 5:04:37 pm | by AristotlePagaltzis | Revert |
Older page: | version 2 | Last edited on Friday, June 7, 2002 1:05:26 am | by perry | Revert |
@@ -1,1966 +1 @@
-ATM on Linux HOWTO
-!!!ATM on Linux HOWTO
-!Paul B SchroederIBM Corporation
-
-paulsch@us.ibm.com
-
-ATM support for Linux is currently in pre-alpha stage. There is an experimental release, which supports raw ATM connections (PVCs and SVCs),
-IP over ATM, LAN emulation, MPOA, Arequipa, and some other goodies.
-
-
-2001-10-18
-
-
-__Revision History__Revision 2.4.02001-10-18Revised by: PBSConverted from LaTeX to !DocBook along with some
-other additions and changes.
-
-
-
-
-
-This document describes how to install, setup, and configure the necessary
-drivers and tools to support ATM networking under Linux.
-
-
-
-For the latest information, please check the
-''ATM on Linux''
-home page.
-
-
-
-
-
-----; __Table of Contents__; 1. Introduction: ; 1.1. Acknowledgements and Thanks; 1.2. Copyright; 1.3. Mailing List; 1.4. CVS Access; 2. Installation: ; 2.1. The Binary RPMs; 2.2. The Source Tree; 2.3. Kernel Configuration; 2.4. Driver Messages; 2.5. Memory Debugging; 2.6. ATM Tools; 2.7. Extra Packages; 3. Device Setup: ; 3.1. ATM Over TCP Setup; 3.2. ZN1221/ZN1225 Tuning; 3.3. Files in /proc/net/atm/; 3.4. ATM Diagnostics; 3.5. SONET Diagnostics; 4. Native ATM PVCs: ; 4.1. Traffic Tools; 4.2. Direct Cell Access; 5. Signaling: ; 5.1. ATM Hosts File; 5.2. ANS; 5.3. Signaling Demon; 5.4. ILMI Demon; 5.5. Manual Address Configuration; 5.6. Running Two ATM NICs Back-to-Back; 5.7. Q.2931 Message Dumper; 6. IP Over ATM: ; 6.1. CLIP; 6.2. LAN Emulation; 6.3. MPOA; Bibliography----
-!!!1. Introduction
-!!1.1. Acknowledgements and Thanks
-
-This document is largely derived from the
-''Usage Instructions'' document that was included with the
-''ATM on Linux'' distribution up until version .79. That
-previous document was written by Werner Almesberger
-`wa@almsesberger.netb while he was at the
-Institute for computer Communications and Applications (ICA).
-
-
-
-The section
-''Running Two ATM NICs Back-to-Back''
-was primarily written by Richard Jones `rjones@imcl.comb.
-
-----
-!!1.2. Copyright
-
-Copyright 2001 IBM Corporation
-
-
-
-Permission is granted to copy, distribute and/or modify this document under the
-terms of the
-GNU Free Documentation License, Version 1.1 or any later
-version published by the Free Software Foundation; with no Invariant Sections, with no Front-Cover Texts, and with no Back-Cover Texts.
-A copy of the license can be found at
-http://www.gnu.org/copyleft/fdl.html.
-
-
-
-A large portion of this document is derived from the
-''Usage Instructions'' included with the
-''ATM on Linux'' distribution up to version .79
-which was released under the
-BSD License, GNU General Public License (GPL), and GNU Lesser General
-Public License (LGPL).
-
-----
-!!1.3. Mailing List
-
-There is also a mailing list on which to discuss ATM on Linux. If you have any
-comments, questions, suggestions, or would just like to get involved, please
-join the list. You can ''subscribe'' and
-''unsubscribe'' to it at
-http://lists.sourceforge.net/lists/listinfo/linux-atm-general.
-
-
-
-The mailing list is archived at
-http://www.geocrawler.com/lists/3/!SourceForge/6487//.
-
-----
-!!1.4. CVS Access
-
-Users are encouraged to continue to use the releases instead of automatically
-assuming they should grab the latest version out of CVS. However,
-if you like living on the edge, here is how to do it.
-
-
-
-First, log in anonymously:
-
-
-
-
-
-% cvs -d:pserver:anonymous@cvs.linux-atm.sourceforge.net.:/cvsroot/linux-atm login
-
-
-
-
-Just hit return when prompted for a password. Then, checkout the repository:
-
-
-
-
-
-% cvs -z6 -d:pserver:anonymous@cvs.linux-atm.sourceforge.net.:/cvsroot/linux-atm co -P linux-atm
-
-
-
-
-You may also specify a branch to check out specifically:
-
-
-
-
-
-% cvs -z6 -d:pserver:anonymous@cvs.linux-atm.sourceforge.net.:/cvsroot/linux-atm co -r V2_5_0 linux-atm
-
-
-
-
-In either case, this will create a directory called "linux-atm" with the latest sources in it. When working inside this directory you will not need to
-specify the '-d' option to CVS. For instance, you could just do
-
-
-
-
-
-% cvs -z6 up -d
-
-
-
-
-To grab any changes that have been put in the repository (the '-d' option in
-the above example is to the "up" sub-command and is different than the
-'-d' used to specify the CVS root directory)
-
-
-
-After you have checked out the source tree, you will need to run the
-autotools script in the top level directory before
-you can configure, build, and install from that source tree:
-
-
-
-
-
-# ./autotools
-Running aclocal...
-Running autoconf...
-Running autoheader...
-Running automake...
-automake: configure.in: installing `./install-sh'
-automake: configure.in: installing `./mkinstalldirs'
-automake: configure.in: installing `./missing'
-configure.in: 26: required file `./ltconfig' not found
-automake: Makefile.am: installing `./INSTALL'
-automake: configure.in: installing `src/lane/ylwrap'
-Finished... Now run './configure' and 'make'...
-
-
-
-
-
-
-
-If you wish to
-create a tarred, gzipped distribution file or a RPM distribution file, run
-__make dist__ or __make rpm__
-respectively. The tarred, gzipped file will be placed in the top level of
-the source tree and the RPM file will be placed in the
-src/extra/RPMS directory.
-
-
-
-The CVS archive may also be browsed on the web at:
-http://cvs.linux-atm.sourceforge.net/cgi-bin/viewcvs.cgi/linux-atm/linux-atm/.
-
-
-
-Finally, if you would like to receive email including every diff that is committed to the repository as they go in, there is a mailing list called
-"linux-atm-commits":
-http://lists.sourceforge.net/lists/listinfo/linux-atm-commits.
-
-
-
-This mailing list should be treated as receive-only. NO discussion or questions are allowed (even of patches which are sent through that list). All
-discussion should be kept on the linux-atm-general mailing list.
-
-----
-!!!2. Installation
-
-In order to install this package, you'll need
-
-
-
-
-
-*
-
-the package itself from http://linux-atm.sourceforge.net/dist.php
-
-
-*
-*
-
-the Linux kernel, version 2.4.x, e.g. from ftp://ftp.kernel.org/pub/linux/kernel/v2.4/
-
-
-*
-*
-
-Perl, version 4 or 5
-
-
-*
-*
-
-if you want memory debugging: MPR, e.g. from ftp://ibiblio.org/pub/Linux/devel/lang/c/
-
-
-*
-
-----
-!!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., 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
-
-
-
-
-
-
-__NOTE__
-
-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 ): rev.,base=0xff400000,irq=10,mem=512kB (00-20-EA-00-07-56)
-eni(itf ): FPGA,MMF
-
-
-
-
-
-
-
-If you've configured the ZN1221/ZN1225 driver, you will get something like:
-
-
-
-
-
-zatm(itf ): rev.3,base=0xf800,irq=11,mem=128kB,MMF (00-20-D4-10-2A-80)
-zatm(itf ): uPD98401 .5 at 30.024 MHz
-zatm(itf ): 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., or if it has certain bugs.
-The configuration options selected by passing the appropriate options to
-the __./configure__ script in the linux-atm distribution.
-
-
-
-
-
-__NOTE__
-
-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.
-
-----
-!!!3. Device Setup
-
-This section describes device-specific configuration operations, and general
-diagnostic procedures at the ATM or SONET level. Please see the adapter
-documentation for details on hardware installation and diagnosis.
-
-----
-!!3.1. ATM Over TCP Setup
-
-If you have no real ATM hardware, you can still exercise the API by using
-the ATM over TCP ``driver''. It emulates ATM devices which are directly
-wired to remote devices (i.e. there is no VPI/VCI swapping).
-
-
-
-To establish one (bidirectional) ``wire'', become root on both systems
-(or run both sides on the same system to create two connected ``interfaces'')
-and run the following command on one of them (let's call it ``a''):
-
-
-
-
-
-# atmtcp virtual listen
-
-
-
-
-Then, on the other system (``b''), run
-
-
-
-
-
-# atmtcp virtual connect ''address_of_a''
-
-
-
-
-
-
-
-Both __atmtcp__s will report on their progress and the kernel
-should display messages like:
-
-
-
-
-
-Link : virtual interface 2
-Link 1: incoming ATMTCP connection from 127...1
-
-
-
-
-and
-
-
-
-
-
-Link : virtual interface 3
-Link 1: ATMTCP connection to localhost
-
-
-
-
-on the two systems. Note that __atmtcp__ keeps running and that interrupting
-it breaks the virtual wire.
-
-
-
-Multiple ``wires'' can be attached to the same machine by specifying a
-port number (default is 2812). Note that no AAL processing is performed.
-It is therefore not possible to receive data using a different AAL (e.g.
-AAL0) than the one with which the data was sent.
-
-----
-!!3.2. ZN1221/ZN1225 Tuning
-
-The !ZeitNet ZN1221 and ZN1225 adapters use pre-allocated pools of free
-memory buffers
-for receiving. Whenever a VC with a certain maximum SDU size is opened for
-receiving, the corresponding pool is filled with free buffers by the device
-driver. The adapter removes buffers while it receives data. When the number
-of remaining buffers falls below a certain threshold, the device driver
-replenishes the pool again.
-
-
-
-The lower and the upper limits for the number of free buffers, and the
-threshold for adapting to a new data offset (see below for details), can
-be set using the zntune program. Usage:
-
-
-__zntune__ [[-l ''low_water''] [[-h ''high_water''] [[-t ''threshold''] ''itf'' [[''pool'']
-
-
-The changes are applied to all pools if no pool number is specified.
-Pool 2 stores 64 bytes packets, pool 3 stores 128 bytes packets, etc.
-Pools 0 and 1 are currently unused.
-
-
-
-The current settings and some usage statistics can be obtained by invoking
-__zntune__ without specifying new parameters:
-
-
-__zntune__ [[-z] ''itf'' [[''pool'']
-
-
-
-
-
-The ``Size'' column shows the buffer size in Bytes.
-The ``Ref'' column shows the number of open VCs using that pool. The ``Alarm''
-column shows how many times the number of free buffers has fallen below the
-low-water mark since the counters were reset. Similarly, the ``Under'' column
-shows how many times an incoming PDU had to be discarded because the
-corresponding pool was empty.
-
-
-
-The columns ``Offs'', ``!NxOf'', ``Count'' and ``Thres'' show the alignment
-adaption status. ``Offs'' is the offset of user data the driver currently
-expects in incoming PDUs. For single-copy, receive buffers are aligned
-accordingly so that data is received at page boundaries. ``!NxOf'' is the
-user data offset of the most recently received PDU, where the offset differs
-from the currently assumed offset. ``Count'' is the number of PDUs that have
-been received in sequence with an offset of ``!NxOf''. Finally, ``Thres'' is
-the threshold value ``Count'' has to reach for ``!NxOf'' to become the new
-current offset.
-
-
-
-Use the ''-z'' option to reset the ``Alarm''
-and ``Under'' counters.
-
-----
-!!3.3. Files in /proc/net/atm/
-
-Some status information about the ATM subsystem can be obtained through files
-in /proc/net/atm/.
-The file /proc/net/atm/arp contains information
-specific to Classical IP over ATM, see section
-''CLIP''.
-
-
-
-All active ATM devices are listed in /proc/net/atm/devices.
-For each device,
-the interface number, the type label, the end system identifier (ESI), and
-statistics are shown. The statistics correspond to the ones available via
-atmdiag.
-
-
-
-Individual ATM devices may register entries of the form
-''type:number''
-(e.g. eni:) which contain
-device-specific information.
-
-
-
-The files /proc/net/atm/pvc and
-/proc/net/atm/svc list all PVC and SVC
-sockets.
-For both types of sockets, the interface, VPI and VCI numbers are shown. For
-PVCs, this is followed by the AAL and the traffic class and the selected
-PCR for the receive and the transmit direction. For SVCs, the SVC state
-and the address of the remote party are shown. SVCs with the interface
-number 999 are used for special control purposes as indicated in the ``State''
-column.
-
-
-
-Furthermore, /proc/net/atm/vc shows buffer sizes and
-additional internal information for all ATM sockets.
-
-----
-!!3.4. ATM Diagnostics
-
-Various counters of the ATM device drivers can be queried with the
-atmdiag program. See the corresponding man page
-for details.
-
-----
-!!3.5. SONET Diagnostics
-
-The SONET diagnostics tool can be used to monitor link performance
-and to simulate errors. In order to get current SONET statistics,
-run it with the ATM interface number as the argument, e.g.
-
-
-
-
-
-% sonetdiag
-
-
-
-
-
-
-
-The counters can be reset with the ''-z''
-option:
-
-
-
-
-
-# sonetdiag -z
-
-
-
-
-
-
-
-The following network failures can be simulated:[[1]
-
-
-
-
-; sbip:
-
-insert section errors (B1)
-
-; lbip:
-
-insert line errors (B2)
-
-; pbip:
-
-insert path errors (B3)
-
-; frame:
-
-force (RX) frame loss
-
-; los:
-
-insert loss of signal
-
-; lais:
-
-insert line alarm indication signal
-
-; pais:
-
-insert path alarm indication signal
-
-; hcs:
-
-insert header checksum errors
-
-
-
-
-
-A failure is enabled by adding the corresponding keyword on the
-command line. The failure is cleared by prefixing the keyword with
-a minus sign, e.g.
-
-
-
-
-
-a# sonetdiag -z 0 b/dev/null
-b# sonetdiag -z 0 b/dev/null
-a# sonetdiag 0 los
-a# sonetdiag 0 -los
-b# sonetdiag 0 | grep BIP
-Section BIP errors: 56200
-Line BIP errors: 342
-Path BIP errors: 152
-a# sonetdiag 0 | grep FEBE
-Line FEBE: 342
-Path FEBE: 152
-
-
-
-
-
-
-
-If any diagnostic error insertions are active, their keywords are
-shown when sonetdiag is used to obtain statistics.
-Note that some error insertions may be automatically switched off by the
-hardware.
-
-----
-!!!4. Native ATM PVCs
-
-PVCs can be used for machines that are either connected back to back or
-via a switch. In the latter case, the cell forwarding has to be manually
-set up at the switch.
-
-----
-!!4.1. Traffic Tools
-
-aread/awrite and
-br/bw are simple programs
-to access the ATM API. awrite sends the text string
-passed as its second argument in an AAL5 PDU. aread
-receives one AAL5 PDU and
-displays it in hex. Both programs also display the return values of the
-corresponding system calls and the current values of
-errno.
-
-
-
-bw either sends its standard input or a stream of
-blocks containing
-arbitrary data (if a number is passed as its fourth argument) in 8 kB
-AAL5 PDUs. br receives AAL5 PDUs and writes them
-to standard output.
-
-
-
-The first argument of aread,
-awrite, br and
-bw is always the PVC address,
-i.e. the ATM interface number, the VPI and the VCI number, with a dot
-between elements. The interface number can be omitted if it is zero.
-Example:
-
-
-
-
-
-% awrite 1..42 hi
-
-
-
-
-
-
-
-Note that some adapters only support VPI == . Also, the VCI range may be
-limited, e.g 0 to 1023.
-The interface number can be obtained from the initialization
-message the driver printed during startup. atm0
-is interface , atm1 is interface 1, etc. If the
-system is equipped with a real
-ATM adapter (e.g. not only atmtcp),
-that adapter is normally at atm0.
-
-
-
-aping receives and sends small AAL5 PDUs on a PVC.
-It expects that
-messages it sends are either echoed back or that a similar program on the
-other side generates a stream of messages. aping
-reports an error if no messages are received for too long.
-aping is invoked by
-specifying the PVC, like aread.
-
-
-
-For "real" tests, you should use the modified version of
-ttcp that
-comes with this package. The original is available at
-ftp://ftp.sgi.com/sgi/src/ttcp/.
-The following options have been added:
-
-
-
-
-; ''-a'':
-
-use native ATM instead of UDP/TCP. The address must be in
-the format
-''[[''itf.'']vpi.vci''
-for PVCs, or a
-valid ATM end system address for SVCs.
-
-; ''-P'' ''num'':
-
-use a CBR connection with a peak cell rate of
-''num'' cells per second. Default is to use UBR.
-
-; ''-C'':
-
-disable (UDP) checksums
-
-
-Example:
-
-
-
-
-
-%a ttcp_atm -r -a -s .90
-%b ttcp_atm -t -a -s .90
-
-
-
-
-
-----
-!!4.2. Direct Cell Access
-
-On adapters where the device driver supports access to raw cells (``AAL0''),
-individual cells can be composed and received with the
-atmdump program.
-Here is an example:
-
-
-
-
-
-a% sleep 10; date | ./atmdump -t 1 -c .51
-b% ./atmdump .51
-825079645.192480: VPI=0 VCI=51, GFC=0x0, CLP=1, Data SDU 1 (PTI 1)
-46 72 69 20 46 65 62 20 32 33 20 31 32 3a 34 37
-3a 32 35 20 47 4d 54 20 31 39 39 36 0a 00 00 00
-00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
-
-
-
-
-
-----
-!!!5. Signaling
-!!5.1. ATM Hosts File
-
-Because ATM addresses are inconvenient to use, most ATM tools also
-accept names instead of numeric addresses. The mapping between names and
-numbers is defined in the file /etc/hosts.atm.
-The structure of
-this file is similar to the /etc/hosts file:
-
-
-
-
-
-''numeric_address'' ''name(s)''
-
-
-
-
-e.g.
-
-
-
-
-
-47.0005.80FFE1000000F21A26D8.0020EA000EE0.00 pc2-a.fqdn pc2-a
-47.0005.80FFE1000000F21A26D8.0020D4102A80.00 pc3-a.fqdn pc3-a
-
-
-
-
-
-
-
-The numeric address can be specified in any of the formats described
-in [[api].
-The numeric address(es) of a Linux system can be
-determined with the command __atmaddr -n__
-(see also section
-''Manual Address Configuration'').
-
-
-
-Many ATM tools also attempt to find the corresponding name when displaying
-an address. When translating from the numeric form to a name, the first
-applicable name in the file is used.
-
-
-
-In addition to ATM addresses for SVCs, also PVC addresses can be stored in
-/etc/hosts.atm.
-If different address types are stored under the
-same name, the first suitable one will be chosen, i.e. if an application
-explicitly requests only SVC addresses, any PVC addresses will be ignored.
-
-----
-!!5.2. ANS
-
-If you have access to the ATM Name Service (ANS, e.g because you've installed
-the ANS extension), you can use it instead of or in addition to the hosts
-file by specifying the host that runs ANS in the
-/etc/resolv.conf file.
-
-
-
-For performing reverse lookups of E.164 addresses, the list of telephony
-country codes needs to be known. That list can be obtained from the
-International Telecommunications Union.
-The
-''List of ITU-T Recommendation E.164 Assigned Country Codes''
-is currently available in PDF and Word document formats.
-
-
-
-
-
-__NOTE__
-
-Should the URL become out of date, the document should easily be found by
-searching for the document's title at the ITU web site.
-
-
-
-
-
-The script
-__src/lib/pdf2e164_cc.pl__ in the atm-linux distribution can
-be used to create the E.164 county codes table with the PDF version
-of the country code list, e.g.
-
-
-
-
-
-perl pdf2e164_cc.pl ''e164_xxx.pdf'' b/etc/e164_cc
-
-
-
-
-It should be noted that pdftotext needs to be
-available in order to run the script above. It can be obtained with
-xpdf.
-
-----
-!!5.3. Signaling Demon
-
-Man pages:
-atmsigd(8)
-atmsigd.conf(4)
-
-
-
-Note that atmsigd's support for point-to-multipoint
-is very limited:
-only operation as a single leaf of a point-to-multipoint tree works.
-
-
-
-By default, atmsigd is configured to conform to
-dynamically configure the UNI version. It can be
-compiled for UNI 3., 3.1, or 4.0 specifically by passing the
-''--with-uni=VERSION'' to the
-__./configure__ script in the top-level directory of the
-linux-atm source distribution.
-
-
-
-Note that atmsigd is configured to be paranoid.
-If it detects unusual
-problems, it frequently terminates. This will (obviously) change in the
-future.
-
-
-
-atmsigd also looks for a configuration file at the
-location specified
-with the ''-c'' option.
-The default location is /usr/local/etc/atmsigd.conf.
-
-----
-!!5.4. ILMI Demon
-
-ILMI provides a mechanism for automatic address configuration. If there is
-no switch or if the switch doesn't support ILMI, the ATM addresses must
-be configured manually (see section
-''Manual Address Configuration'').
-Note that the ILMI
-demon should not be used on interfaces where addresses are manually
-configured.
-
-
-
-The ILMI demon is started as follows:
-
-
-__ilmid__ [[-b] [[-d] [[-i ''local_ip''] [[-l ''log_file''] [[-q ''qos''] [[-u ''uni_version''] [[-v] [[-x] [[''itf'']
-
-
-
-
-
-
-; ''-b'':
-
-background. Run in a forked child process after initializing.
-
-; ''-d'':
-
-enables debugging output. By default, ilmid is very quiet.
-
-; ''-i'' ''local_ip'':
-
-IP address to tell switch when asked for one.
-Can be in either dotted decimal or textual format.
-By default, ilmid
-uses some heuristics to select a local IP address.
-
-; ''-l'' ''logfile'':
-
-write diagnostic messages to the specified
-file instead of to standard error.
-The special name ''syslog'' is
-used to send diagnostics to the system logger.
-
-; ''-q'' ''qos'':
-
-configures the ILMI VC to use the specified
-quality of service. By default, UBR at link speed is used on the ILMI VC.
-
-; ''-u'' ''uni_version'':
-
-set UNI version. Possible values are
-''3.'',
-''3.1'', and
-''4.''. The dot can be omitted. The default
-value depends on how ilmid was compiled.
-Typically, it is ''3.''.
-
-; ''-v'':
-
-enables extensive debugging output.
-
-; ''-x'':
-
-disable inclusion of variable bindings in the
-!ColdstartTrap. Some switches (e.g. the LS100) only work if this option is set.
-
-
-
-
-
-If no interface number is specified, ilmid
-serves interface .
-You can check whether address registration was successful with the
-__atmaddr__ command (see below).
-
-
-
-The agent supports only the address registration procedures specified
-in section 5.8 of the ATM Forum's UNI 3.1 specification. These
-procedures involve the switch registering the network prefix on the
-host and the host registering the final ATM address back on the
-switch. The host accomplishes this by appending an ESI (End System
-Identifier) and a null selector byte to the network prefix registered
-by the switch. The ESI is the physical or MAC address of the ATM
-interface.
-
-----
-!!5.5. Manual Address Configuration
-
-If your switch doesn't support ILMI, you have to set the ATM address
-manually on the switch and on the PC(s). On the Linux side, make sure that
-ilmid doesn't interfere, then use the
-__atmaddr__ command to set
-the address(es).
-
-
-
-Man pages:
-atmaddr(8)
-
-
-
-Manual configuration of ATM addresses on the switch depends on the brand.
-On a Fore ASX-200, it can be done with the following command:
-
-
-
-
-
-conf nsap route new ''nsap_addr'' 152 ''port'' ''vpi''
-
-
-
-
-e.g.
-
-
-
-
-
-conf nsap route new 47000580ffe1000000f21510650020ea000ee000 152 1a2
-|`---- NSAP prefix -----b||`--ESI---b|^^
-SEL
-
-
-
-
-
-
-
-The entire NSAP address always has to have a length of 40 digits.
-Note that you can also use addresses with a different prefix and an ESI
-that doesn't correspond to any ESI your adapters have. The value of the
-selector byte (SEL) is ignored.
-
-----
-!!5.6. Running Two ATM NICs Back-to-Back
-
-It is also possible to run with two ATM NICs connected back-to-back,
-and no switch in between.
-This is great for simple test environments.
-
-
-
-First, if you're using UTP or STP-5, you need a suitable cable. Our
-experience with standard 100Base-T back-to-back cables was not
-good. It appears that the pin-out they use is different. After some
-false starts, we found that the following cable works:
-
-
-
-
-
-RJ45 RJ45
-1 ------------ 7
-2 ------------ 8
-7 ------------ 1
-8 ------------ 2
-Pins 3, 4, 5, 6 unconnected.
-
-
-
-
-A better way to illustrate this may be to show the proper color
-schemes for the RJ45 connectors at each end of the back-to-back cable.
-The first connector should use the following scheme:
-
-
-
-
-
-RJ45-1
-1 - Brown
-2 - White/Brown
-3 - Unconnected
-4 - Unconnected
-5 - Unconnected
-6 - Unconnected
-7 - Orange
-8 - White/Orange
-
-
-
-
-And the second connector should use this scheme:
-
-
-
-
-
-RJ45-2
-1 - Orange
-2 - White/Orange
-3 - Unconnected
-4 - Unconnected
-5 - Unconnected
-6 - Unconnected
-7 - Brown
-8 - White/Brown
-
-
-
-
-
-
-
-You can also make up a loopback cable with 1 -- 7 and 2 -- 8 connected for
-ultra-cheap setups.
-
-
-
-Here we have two machines called ``virgil'' and ``nestor''.
-Substitute your own names as necessary.
-
-
-
-One side of the ATM connection needs to use the network version of
-atmsigd and the other side should use the
-normal user version.
-So
here on nestor we start atmsigd with:
-
-
-
-
-
-atmsigd -b -m network
-
-
-
-
-and on virgil with:
-
-
-
-
-
-atmsigd -b
-
-
-
-
-
-
-
-Without a switch, you won't be able to use ILMI. Instead, create a
-/etc/hosts.atm file containing two dummy addresses.
-Our ATM hosts file contains:
-
-
-
-
-
-47.0005.80FFE1000000F21A26D8.0020EA000EE0.00 nestor-atm
-47.0005.80FFE1000000F21A26D8.0020D4102A80.00 virgil-atm
-
-
-
-
-
-
-
-These are completely spurious addresses, of course, but as long as you're
-not connected to a public or private ATM network, I don't think it matters.
-To set the address correctly in the driver, we use:
-
-
-
-
-
-atmaddr -a virgil-atm
-
-
-
-
-on virgil, and:
-
-
-
-
-
-atmaddr -a nestor-atm
-
-
-
-
-on nestor. Now start atmarpd on both machines
-in the normal way. Now you (should) have a working ATM set-up. To get
-IP over ATM working, just follow the instructions in
-section ''IP Over ATM''.
-
-----
-!!5.7. Q.2931 Message Dumper
-
-The Q.2931 message compiler also generates a pretty-printer for Q.2931
-messages. The executable is called q.dump
-is stored in the
-src/qgen directory. Note that it is not copied elsewhere
-by __make install__.
-
-
-
-q.dump expects a sequence of whitespace-separated
-hex bytes at standard
-input and outputs the message structure if the message can be parsed.
-Example:
-
-
-
-
-
-% echo 09 03 80 00 05 5A 80 00 06 08 80 00 02 81 83 00 48 \
-00 00 08 | ./q.dump
-_pdsc = 9 "Q.2931 user-network call/connection control message"
-_cr_len = 3
-call_ref = 8388613 (0x800005)
-msg_type = 0x5a "RELEASE COMPLETE"
-_ext = 1
-_flag = 0 "instruction field not significant"
-_action_ind = 0 "clear call"
-msg_len = 6 (0x6)
-_ie_id = 0x08 "Cause"
-_ext = 1
-cause_cs = 0 "ITU-T standardized"
-_flag = 0 "instruction field not significant"
-_action_ind = 0 "clear call"
-_ie_len = 2 (0x2)
-_ext = 1
-location = 1 "private network serving the local user"
-_ext = 1
-cause = 3 "no route to destination"
-
-
-
-
-
-----
-!!!6. IP Over ATM
-
-IP over ATM is supported with Classical IP over ATM (CLIP, defined in
-RFC1577 [[RFC1577], LAN Emulation (LANE, defined in
-[[lanev1] and [[lanev2])
-and Multi-Protocol Over ATM (MPOA, client only, defined in
-[[mpoav1]).
-
-----
-!!6.1. CLIP
-
-A demon process is used to generate and answer ARP queries.
-The actual kernel part maintains a small lookup table only containing partial
-information.
-
-
-
-Man pages:
-atmarpd(8),
-atmarp(8)
-
-
-
-atmsigd and ilmid
-must already be running when atmarpd is
-started. Use the ''-b''
-option to make sure they're properly synchronized,
-e.g.
-
-
-
-
-
-#!/bin/sh
-atmsigd -b
-ilmid -b
-atmarpd -b
-...
-
-
-
-
-works, but
-
-
-
-
-
-#!/bin/sh
-atmsigd 8
-ilmid 8
-atmarpd 8
-...
-
-
-
-
-frequently doesn't (yet).
-
-
-
-The atmarp program is used to configure ATMARP.
-First, you have to
-start atmsigd, ilmid, and
-atmarpd, then create an IP
-interface and configure it:
-
-
-
-
-
-# atmarp -c ''interface_name''
-# ifconfig atm0 ''local_address'' ''possibly_more_options'' up
-
-
-
-
-e.g.
-
-
-
-
-
-# atmarp -c atm0
-# ifconfig atm0 10...3 up
-
-
-
-
-
-
-
-If only PVCs will be used, they can now be created with a command like
-
-
-
-
-
-# atmarp -s 10...4 ..70
-
-
-
-
-
-
-
-NULL encapsulation is used if the ''null''
-keyword is specified.
-Note that ARP requires LLC/SNAP encapsulation. NULL encapsulation can
-therefore only be used for PVCs.
-
-
-
-When using SVCs, some additional configuration work may be necessary. If the
-machine is acting as the ATMARP server on that LIS, no additional
-configuration is required. Otherwise, the ATM address of the ATMARP
-server has to be configured. This is done by creating an entry for the
-network address with the option ''arpsrv''
-set, e.g.
-
-
-
-
-
-# atmarp -s \
-10...0 47.0005.80.ffe100.0000.f215.1065.0020EA000756.00 \
-arpsrv
-
-
-
-
-
-
-
-Note that the ATMARP server currently has to be started and configured
-before any clients are configured.
-
-
-
-The kernel ATMARP table can be read via \path{/proc/net/atm/arp}. The table
-used by atmarpd
-is regularly printed on standard error if atmarpd
-is started with the ''-d'' option.
-If atmarpd is invoked without
-''-d'', the table is written to the file
-atmarpd.table in the dump
-directory (by default /var/run; can be
-changed with ''-D''), and
-it can be read with __atmarp -a__.
-
-----
-!!6.2. LAN Emulation
-
-Besides Classical IP over ATM, LAN Emulation (LANE) can be used to
-carry IP over ATM. LANE emulates the characteristics of legacy LAN
-technology, such as support for broadcasts. LANE server support is
-described in the src/lane/USAGE file in the linux-atm
-distribution.
-
-
-
-Man pages:
-bus(8),
-lecs(8),
-les(8), and
-zeppelin(8)
-
-
-
-If you plan to run more than one LANE clients, LANE service or LANE
-clients and LANE service, you need to specify different local ATM
-addresses for each demon. Since all the LANE demons use similar
-service access points (SAPs) they need different ATM addresses to
-differentiate between connections.
-
-
-
-Just as with CLIP, the LANE client consists of two parts: a demon
-process called zeppelin
-which takes care of the LANE protocol
-and kernel part which contains LANE ARP cache.
-
-
-
-atmsigd and ilmid
-must already be running when
-zeppelin is started. When
-zeppelin starts, the kernel
-creates a new interface which can then be configured:
-
-
-
-
-
-# zeppelin ''possibly_more_options'' 8
-# ifconfig lec0 ''local_address'' ''possibly_more_options'' up
-
-
-
-
-
-
-
-In the example below, two LANE clients are started. The first client
-uses default interface lec0,
-default listen address and tries to
-join the default ELAN. The other LANE client gets interface
-lec2
-assigned to it, binds to local address
-''mybox3'', tries to join
-ELAN called ''myelan''
-and will bridge packets between ELAN and
-Ethernet segments. Address ''mybox3''
-is defined in
-/etc/hosts.atm. Rest of the bridging can be configured
-by reading the Bridging mini-HOWTO. [[bridge-howto]
-
-
-
-
-
-# zeppelin 8
-# ifconfig lec0 10.1.1.42 netmask 255.255.255.0 \
-broadcast 10.1.1.255 up
-#
-# zeppelin -i 2 -l mybox3 -n myelan -p 8
-# ifconfig lec2 10.1.2.42 netmask 255.255.255.0 \
-broadcast 10.1.2.255 up
-
-
-
-
-
-
-
-By default, zeppelin uses interface
-lec0, binds to local
-ATM address using selector byte value , tries to contact LECS using
-Well-Known LECS address, joins the default ELAN as defined by the
-LECS, accepts the MTU size as defined by the LES and will not act as
-an proxy LEC. These parameters can be tailored with command line
-options which are defined in
-zeppelin(8).
-
-
-
-zeppelin will automatically join any ELANs
-which use higher
-MTU than the default MTU of 1516 bytes. The MTU of the LANE
-interface will adjust itself according to the MTU of the current
-ELAN.
-
-
-
-The state of the LANE ARP cache entries can be monitored through
-/proc/net/atm/lec.
-For each entry the MAC and ATM addresses and status
-is listed. If the entry has an active connection, the connection
-identifiers are also listed.
-
-
-
-The LANE service (
-lecs(8),
-les(8), and
-bus(8))
-is
-configured using configuration files. The configuration file syntax is
-listed on the respective manual pages.
-
-
-
-A more detailed description of Linux LANE services is discussed in
-Marko Kiiskilä's Master's Thesis
-[[kiis].
-
-
-----
-!!6.3. MPOA
-
-The Linux MPOA client continues the tradition of user space -- kernel
-divided ATM services. The demon process called
-mpcd processes
-MPOA control packets while the kernel holds MPOA ingress and egress
-caches and does the packet forwarding.
-
-
-
-Man page:
-mpcd(8)
-
-
-
-atmsigd and ilmid
-must already be running when
-mpcd is started.
-Since MPOA detects IP layer flows from LANE
-traffic, you need to have zeppelin
-running before MPOA can
-function. However, the order in which zeppelin
-and mpcd
-is started is not fixed. You can kill any of the demons at your will
-and restart it later without need to restart the other demon. The
-easiest way to disable MPOA is to kill the running
-mpcd.
-
-
-
-Below is the example from Section
-''LAN Emulation''
-which starts two LANE
-clients. The configuration has been augmented with two MPOA clients
-which the LANE clients will serve.
-
-
-
-
-
-# zeppelin 8
-# ifconfig lec0 10.1.1.42 netmask 255.255.255.0 \
-broadcast 10.1.1.255 up
-# mpcd -s mybox1 -l mybox2 8
-#
-# zeppelin -i 2 -l mybox3 -n myelan -p 8
-# ifconfig lec2 10.1.2.42 netmask 255.255.255.0 \
-broadcast 10.1.2.255 up
-# mpcd -i 2 -s mybox4 -l mybox5 8
-
-
-
-
-
-
-
-The MPOA demon needs two different local ATM addresses which it uses
-when initiating and receiving data and control connections. The
-addresses can be the same as with e.g.
-zeppelin but must be
-different among other mpcd demons. By default,
-mpcd does
-not retrieve configuration information from the LECS. The necessary
-command line options and an example of using LECS are shown on the
-mpcd manual page.
-The manual page also lists the rest of the available options.
-
-
-
-The contents of MPOA ingress and egress caches can be monitored
-through the /proc/net/atm/mpc file.
-
-
-
-The Linux MPOA client also supports CBR traffic class for shortcuts
-SVCs instead of default UBR. The QoS specifications for future
-shortcuts can be set and modified using
-/proc/net/atm/mpc.
-
-
-
-
-
-# echo add 130.230.54.146 tx=80000,1600 rx=tx b /proc/net/atm/mpc
-# # generate enough traffic to trigger a shortcut
-# cat /proc/net/atm/mpc
-QoS entries for shortcuts:
-IP address
-TX:max_pcr pcr min_pcr max_cdv max_sdu
-RX:max_pcr pcr min_pcr max_cdv max_sdu
-130.230.54.146
-80000 0 0 0 1600
-80000 0 0 0 1600
-Interface 2:
-Ingress Entries:
-IP address State Holding time Packets fwded VPI VCI
-130.230.4.3 invalid 1160
-130.230.54.146 resolved 542 151 0 109
-...
-
-
-
-
-The shortcut to IP address ''130.230.54.146''
-was established with
-the parameters shown above. There also exist patches which extend the
-flow detection to fully support layer 4 flows. The layer 4 flows are
-expressed as a 5 tuple (proto, local addr, local port, remote addr,
-remote port) and they identify application to application flows. If
-you are interested, see
-ftp://sunsite.tut.fi/pub/Local/linux-atm/mpoa/
-for the latest
-patch.
-
-----
-!!!Bibliography
-!!!References
-
-[[api] ''Linux ATM API'', Werner Almesberger, http://linux-atm.sourceforge.net/API/
-, July 1996.
-
-
-
-[[RFC1577] ''Classical IP and ARP over ATM (RFC1577)'', Mark Laubach, January 1994.
-
-
-
-[[lanev1] ''LAN Emulation Over ATM -- Version 1.'', ATM Forum, February 1996.
-
-
-
-[[lanev2] ''LAN Emulation Over ATM -- Version 2 -- LUNI Specification'', ATM Forum, July 1997.
-
-
-
-[[mpoav1] ''Multi-Protocol Over ATM -- Version 1.'', ATM Forum, July 1997.
-
-
-
-[[bridge-howto] ''Bridging mini-Howto'', Christopher Cole, http://www.linuxdoc.org/HOWTO/mini/Bridge.html
-, March, 2001.
-
-
-
-[[kiis] ''Implementation of LAN Emulation Over ATM in Linux'', Marko Kiiskilä, ftp://sunsite.tut.fi/pub/Local/linux-atm/misc/
-, October 1996.
-
-
-!Notes
-[[1]
-
-Some adapters may only support a subset of this
.
+Describe
[HowToATMLinuxHOWTO
] here.