ATM Networking in 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. 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 .ps format.    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 13 March 2001) of the Turboways 25 device driver is version it25-0.78a. It is for kernel versions 2.4.x and protocol version 0.78.    This version contains some QoS additions that are intended to support signaling in a more robust way under extreme workloads.   All mutex functions now use the spin_lock primitives and the driver has been successfully tested on an SMP system.  Transmit logic has been modified to include software fair queuing on a per VCC basis. To request a copy of the Turboways 25 device driver send an e-mail request to me at westall@cs.clemson.edu.


A 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.  Development is ongoing as of mid-October 2000 but a beta test version that is stable in our environment is available now.
As of March 2001 this  driver has now survived 4 months of  reasonably hard use with zero modifications.  To request a copy of the Interphase 5515 device driver send an e-mail request to me at westall@cs.clemson.edu.



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.


Acknowledgments:
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. IBM data sheets for their ATM adapters may be found here. IBM and Turboways are registered trademarks of the IBM Corporation.
The development of the Linux ATM protocol stack is coordinated by Werner Almesberger of the ICA in Lausanne, Switzerland.  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.