Native-mode ATM Protocol Stack

Joint work with Prof. Huzur Saran, R.P. Rustagi and R.N. Moorthy (IIT Delhi), Ritesh Ahuja and Ankur Jain (now at Stanford), and Rosen Sharma (now at Cornell).


Most current ATM networks use TCP as the transport layer, with IP-over-ATM providing the network layer. This approach, though necessary in the short-term, is likely to soon prove inadequate for three reasons.

We believe there is a need for a protocol stack that

We have designed, implemented, and measured the performance of such a protocol stack, that is targeted specifically for Asynchronous Transfer Mode (ATM) networks i.e.\ a native-mode ATM transport layer. The layer embodies much of our past work in flow and congestion control. (The transport layer was originally designed and implemented as part of the IDLInet project at the Indian Institute of Technology , Delhi The current implementation, though similar in spirit to the original, is almost totally rewritten, reflecting substantial improvements in the design.}

Perhaps the main insight from our work is that it is hard to achieve per-virtual circuit quality of service guarantees with current operating systems and host-adaptor cards. Most Unix-like operating systems have no support for real-time processes, hard process priorities, or fine-grained timers. In the absence of these facilities, it is impossible to guarantee strict performance bounds to real-time applications. Second, we did not have access to the microcode on the host-adaptor card. Thus, we had to work around its deficiencies, such as supporting only a single receive queue shared by all VCs, which allows low-priority connections to adversely affect higher-priority connections. Third, to achieve high performance, we had to tune  every aspect of the protocol stack. Even small changes in the implementation can dramatically affect performance. Other workers in this field have also come to the same disheartening conclusion. Fourth, it is hard to implement locking in the kernel. Choosing how large a section to lock and when to release a lock are often matters of good taste rather than hard science. Unfortunately, poor choices can lead to degraded performance, or worse, deadlock. Finally, we found that Personal Computers are not as low-end a platform as one might imagine. With careful design and implementation, it is possible to extract workstation-quality performance from a platform that is cheap, easily available, and costs a fifth as much!

Free Distribution

We are happy to announce the university release of the native-mode ATM protocol stack for x86 PCs running FreeBSD 2.1. The stack provides:

To get a copy of the code, please send mail to skeshav@cs.cornell.edu.


Available from IIT Delhi: