Overview
Host Channel Adapters (HCA's), are present in processor and IO nodes that produce and consume packets. InfiniBand™ Architecture Volume 1, calls the interface to the HCA as the Channel Interface (CI). CI represents the combination of the HCA hardware and associated drivers that provides access to the fabric. InfiniBand Architecture calls this CI interface as verbs. Verbs define the permitted operations on the adapter. Verbs are not an API spec, and does not address the OS specific mappings. This section provides the required information for a HCA vendor to develop drivers to interface the hardware with the software infrastructure supported by this open implementation.
High Level Architecture
High level architecture of the InfiniBand software stack is shown below. HCA DDK provides the necessary infrastructure to enable a HCA vendor to interface with the InfiniBand framework provided by this Open Source effort. The HCA DDK project specifically addresses the following pieces.
Kernel mode HCA driver providing Verbs functionality to the InfiniBand Access Layer
HCA library which extends vendor capabilities to facilitate user mode direct access to the channel interface for normal data transfer operations.
Project Definition
The HCA Driver DDK project defines both the User-mode and Kernel-Mode interfaces as shown in the architecture diagram above. This project is targeted at IHVs developing support for their HCA products as an open source implementation. Vendors supporting open source implementations of their driver modules could contact the project administrator to add code and drivers under the HCA Drivers sections.
Goals
The primary goals of this project is to provide a vendor neutral, robust, efficient and maintainable interface definition that drives a mature, enterprise ready InfiniBand solution for Linux.
The software architecture is designed to address the following major requirements.
Multiple HCA vendor support
Ability for HCA vendor to enhance and extend functionality to support user mode access
Robust interface definition that avoids multiple vendors duplicating code by providing common methods and functionality managed in the IB Access Layer
A complete list of detailed requirements can be obtained from the Software Architecture Specification, particularly in the "HCA Verbs Provider Driver" section.
Licensing Details
This software is being made available under a choice of one of two licenses. You may choose to be licensed under either the GNU General Public License (GPL) Version 2, June 1991, available at http://www.fsf.org/copyleft/gpl.html, or the Intel BSD + Patent License, further described here.
Project Deliverables
The deliverables of this project are:
Requirements Document, White Papers containing architecture and design necessary to work with this interface definition.
Kernel and User Mode interface definitions that a HCA vendor would need to provide.
Reference Source as stub API's that could be utilized by an IHV as a boiler plate template.
Timeline
Actual sub-project timelines are not yet determined and will be formulated by the participants of the sub-project.
How to Get Involved
The best way to contribute to this effort is to get in touch with the contact for the area you are interested in. New participants are welcomed and encouraged to join in this effort to bring InfiniBand support to the Linux operating system.
Project News
The project news is included on the SourceForge site. Click the "News" link at the left under "SourceForge Services".
Last Updated: 08/02/2002 04:40 PM