Linux/ATM - State of Play
Pages: 1, 2
Summary of Functional Features
Raw ATM sockets
SVC (Switched Virtual Circuits)
PVC (Permanent Virtual Circuits)
CLIP (Classic IP over ATM) (RFC 1577)
LANE (LAN Emulation)
MPOA (Multi-Protocol Over ATM) Client
ILMI (Interim Local Management Interface) (automatic address configuration)
ATM Name Service (and /etc/hosts.atm)
Test and diagnostic tools
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
ATM on Linux home page
ATM documentation is available at the web site of the ATM forum
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 email@example.com 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.
Read more Linux Network Administration columns.
Discuss this article in the O'Reilly Network Linux Forum.
Return to the Linux DevCenter.