ATM Networking with Linux

The IBM Turboways 25 Mbps NIC driver for ATM in Linux was developed by faculty and graduate students in the Department of Computer Science at Clemson University.   A description of the ATM network operated by the Department can be found here. The architecture of this driver was described in a 1998 Linux Expo paper. The conference presentation may be found here. The full text of the paper is also available in .pdf format and in .psformat.    Another presentation that may be of use to device driver developers and others interested in the internal bindings that glue the socket, protocol, and driver together is also available in .pdf and .ps formats.  The data structures  shown in this presentation are kernel 2.0.27 and protocol 0.31 level.

The current release (as of 24 October 2001) of the Turboways 25 device driver is version it25-0.78e. It is for kernel version 2.4.x and protocol version 0.78 or 0.79.   Version 0.78e is a maintenance release which repairs some fairly serious transmit side bugs in 0.78d and addresses some queue handling problems dating back to 0.78a.  Version 0.78d introduced a fairly significant rework of the Logical Channel assignment logic,  making it possible to support large vci address spaces. Version 0.78c is a small update to 0.78b which repairs a bug in the receive side logic that could cause driver failure under extreme workloads.  The transmit side logic of version 0.78b   Version 0.78b provides for coexistence with other ATM NICs via interface specification at insmod/modprobe time.   (It still doesn't support multiple TW25's in the same machine.)  The per-VCC software fair-queueing  algorithm developed for the 5515
was introduced in 0.78a.

To request a copy of the Turboways 25 device driver send an e-mail request to

A Linux driver for the  Interphase 5515 NIC has also been developed by our research group.  This driver is based upon components of the Turboways 25 driver and Solaris driver source released by Interphase in September 2000.  Interphase documentation and code was posted here.    This driver supports both 2.2.x and 2.4.x kernels.   This driver has been in heavy use with its code stable since mid November 2000.  The present distribution version is ia5515-0.78d.tgz .

A Linux driver for the  Interphase 5575 NIC was written in June 2001.  This driver is based upon components of the 5515 driver and Interphase's Solaris driver for the 5575.   It shares no code with the Linux driver presently distributed by Interphase.   In its present state it supports only UBR and VPI = 0 (as does the 5515 driver.)  The present distribution version is ia5575-0.78a.tgz .

To request a copy of the Interphase 5515 or 5575 device drivers send an e-mail request to me at

Graduate student papers associated with the Turboways 25 development include the following:
Sripriya Bhikeshesvaran: Implementation and Performance Testing of a Single Copy Device Driver for the IBM APE25 (pdf or ps).   This paper demonstrates that what appears at first glance to be a big performance improver may actually harm performance.   A version of the driver was constructed which eliminated all frame copying by the kernel.  The only copying of the AAL5 frames was done via DMA transfer directly from user space to the NIC.   In most cases worse performance was obtained than when the each frame was copied by the kernel between user space and kernel buffers!!

Alice Flower: Integration and Performance Testing of IP over ATM (pdf or ps). This paper provides an overview of the integration of TCP/IP with ATM.  Three approaches are considered: Classical IP over PVCs; Classical IP over SVCs and LANE Emulation.  This work was done using kernel 2.0.27 and protocol 0.31 and some aspects may be now be dated.   It contains a fairly thorough descriptions of the protocol bindings and dataflow through the IP and ATM stacks.

Sridatta Viswanath: TCP Performance Evaluation Using the TIGER Network Testbed  (pdf or ps).  This paper describes the use of a Linux PC  equipped with both Ethernet and ATM interfaces in studying TCP performance.    The  PC was used as a router, and the Turboways 25 driver was modified so that any level of congestion could be induced and various packet drop strategies investigated.   The author discovered a nasty performance anomaly that can occur when a PC is used as a gateway between a sender on an Ethernet segment and a receiver on a CLIP segment.

Linux support for the IBM Turboways 155 Mbps NIC is also being developed. At present this driver is not integrated with the Linux ATM protocol, works only in standalone mode, and the driver is not yet available for distribution.

Graduate student papers associated with the Turboways 155 development include the following:

Ishraq Ahmed: Linux Device Driver for the IBM Charm-Lite Asynchronous Transfer Mode Adapter (pdf or psThis paper provides a good overview of the architecture of IBM's high-end ATM offering and describes the present state of the 155Mbps device driver.

Financial support for the development of the Turboways 25 driver was provided by the Network Products Division of the IBM Corporation.   Hardware support was provided for the Turboways 155 project.
The development of the Linux ATM protocol stack was led by Werner Almesberger of the ICA in Lausanne, Switzerland.  The project is presently hosted by Sourceforge. More information on this project can be found here.

Development of the Interphase 5515 driver was made possible through the generous release of datasheets and source code by the Interphase Corporation.

Back to Mike Westall's home page.