ATM isn't perfect. It's still relatively new technology, and it hasn't been
accepted in the way the vendors of ATM switches might have originally hoped.
The original vision was "ATM to the desktop," whereas in reality today it's
not really common to see "ATM on the campus." ATM technology is still
relatively expensive to acquire and deploy. Some standards have been slow
coming and in some instances are still nonexistent. To compound these
problems, there is a growing perception that the ATM protocol overhead is
prohibitive and consumes as much bandwidth as the allocation efficiencies
were supposed to save.

All that being said, ATM is here, and you will see more of it. It suits the
requirements of telecommunications carriers, and they will deploy large scale
ATM networks. A growing provider market will generate a decrease in cost, and
people not using it now will begin to use it. The ATM vision might yet come
to fruition. If it's going to happen then we'll want Linux there right along
with it, and that's what the "ATM on Linux" project is all about.

What features are supported?

The Linux support for ATM is now quite usable and offers Linux users the
opportunity to deploy a Linux-based machine as either an ATM-connected host
or as an edge device on an ATM network, providing transparent protocol
encapsulation and gateway features.

Summary of Supported Hardware

 Efficient Networks ENI155P-based adapters

 FORE Systems 200E-series adapters

 IDT 77105-based adapters

 IDT 77201/77211-based adapters "NICStAR"

 Interphase ATM PCI adapters

 Madge Ambassador and Horizon ATM adapters

 NEC uPD98402-based adapters

 PMC PM5346 SUNI adapters

 ZeitNet ZN122x adapters

The basic Linux support provides two new socket types to support switched
and permanent virtual circuits, AF_ATMSVC and AF_ATMPVC respectively. While
these could be used to directly support network applications, you'll probably
be more interested in carrying TCP/IP, at least until useful native ATM
applications begin to appear.

There are at least three common ways of carrying TCP/IP over ATM networks,
and Linux supports each of them. The first is called "Classic IP over ATM"
or CLIP for short and is described by RFC-1577. The second is to have the
ATM network pretend to be a Local Area Network using a technique called LAN
Emulation or LANE. Finally, a third technique exists called Multi-Protocol
Over ATM (MPOA) that is more generic and more flexible. MPOA allows you to
specify policy that allows for all sorts of tricks to be performed between
pairs of hosts or networks to optimize performance. The Linux MPOA support
currently provides only for an MPOA client, but that is what most of you
will be wanting in any case. You can configure and use any of these with the
Linux support available today.

To make life easier, there are a couple of other features implemented. The
first, the Interim Local Management Interface (ILMI), is used
primarily as a means of automated address configuration. The second, a nameserver, is as
useful to ATM as it is to IP. If you think a dotted decimal IP
address is hard to remember, try keeping a collection of numbers that look
like 47.0005.80FFE1000000F21A26D8.0020D4102A80.00 in your head! The ATM Name
Service (ANS) is based on the BIND name server popularly used for Internet
naming and is included in the toolkit for Linux on ATM.

Finally there is a suite of test and diagnostic tools including a modified
version of the tcpdump utility to provide tracing of ATM circuits.

Other experimental features are in development.

Supported ATM hardware

A growing range of ATM adapter hardware is supported. All of the supported
cards are PCI cards, and more drivers are being developed. The hardware
drivers are kernel based just as for any other hardware, and some may be
configured as loadable kernel modules.

Using and contributing to the software

If you want to try the latest ATM code today you'll need a copy of the
2.3.99-pre5 kernel source and the ATM tools package atm-0.76.tar.gz
available from the ATM on Linux home page. At this site you'll also find
documentation about the project and related software and information.

If you've been waiting to try ATM on Linux, now is the time to quit waiting
and try it out. As for any free software project, participation, feedback,
and contribution are welcomed by the development team. Join the mailing list
by sending a message containing "subscribe linux-atm" to
majordomo@lrc.di.epfl.ch and join in the fun.

Terry Dawson
is the author of a number of network-related HOWTO documents for the Linux Documentation Project, a co-author of the 2nd edition of O'Reilly's Linux Network Administrators Guide, and is an active participant in a number of other Linux projects.