DAT Collaborative makes available an open source implementation of uDAPL and kDAPL. This implementation has been developed by NetApp (formerly Network Appliance) with significant contributions from JNI, IBM, Mellanox, Sun, Voltaire, and a number of other DAT Collaborative member companies.
The uDAPL and kDAPL source code is available on Source Forge under the DAPL foundry, see http://sourceforge.net/projects/dapl.
Both kDAPL and uDAPL exist in this source tree for Linux and Windows.
Source Forge is the world's largest Open Source development Web site and provides a number of services to developers and the Open Source community.
The DAPL source code is being provided free to all interested parties. The license provisions for this project is designed to encourage commercial development and products based upon this source code. There are no known intellectual property claims attached to this code. See the project Web page above for hyperlinks pointing to the license.
Obtain the Code
To obtain the tree for your local machine you can check it out of the source repository using CVS tools. CVS is common on UNIX systems and available as freeware on Windows machines. The command to anonymously obtain the source code from Source Forge (with no password) is:
cvs -d:pserver:firstname.lastname@example.org:/cvsroot/dapl login
When prompted for a password, simply press the Enter key.
cvs -z3 -d:pserver:email@example.com:/cvsroot/dapl co
Source Forge also contains explicit directions on how to become a developer, as well as how to use different CVS commands. You may also browse the source code using the URL:
The DAPL Reference Implementation is avialable for variety of Linux as well as Window 2000. The structure of the code is designed to allow other operating systems to easily be adapted.
The DAPL Reference Implementation has been demonstrated and tested on InfiniBand HCAs from IBM, Infinicon, JNI, Mellanox, TopSpin, Voltaire and others, as well as Ammasso, Siliquent, NetEffect and other iWARP vendors. The structure of the DAPL source allows other provider API sets to be easily integrated.
The development team uses any one of three topologies: a single HCA with a wrap plug (loopback) device; two HCAs in a single machine; a single HCA in each of two machines as well as switch topologies with various different IB switches.
Explicit machine configurations are available upon request.
In the Tree
The DAPL tree contains source code for the uDAPL and kDAPL implementation, and also includes tests and documentation. Also included are a growing number of DAPL design documents which lead the reader through specific DAPL subsystems.
A small number of test applications and a unit test framework are also included. dapltest is the primary testing application used by the DAPL team, it is capable of simulating a variety of loads and exercises a large number of interfaces. Full documentation is included for each of the tests. The uDAPL conformance test for uDAPL 1.1 is also part of the source tree.
There are a number #ifdef's in the code that were necessary during early development. They are disappearing as we have time to take advantage of features and work available from newer releases of provider software. You may notice an #ifdef <something>_BUSTED, which indicates a particular feature was not working at the time the code was written and the DAPL team developed a work-around.
As is common to Source Forge projects, there are a small number of developers directly associated with the source tree and having privileges to change the tree. Requested updates, changes, bug fixes, enhancements, or contributions should be submitted following the guidelines specified in http://dapl.sourceforge.net/dapl_patch.txt for review. We welcome your contributions and expect the quality of the project will improve thanks to your help.
Maintenance and Development
Linux and Windows uDAPL maintenance and development is now being discussed and conducted on the firstname.lastname@example.org and email@example.com reflectors, respectively.
Not all of the DAPL spec is implemented at this time. The DAPL team continues to develop and test the tree with the intent of completing the specification.
The DAPL Team