required to be solved with any of the upcoming
leading edge technologies for Linux.
An example of leading edge technology, for
which multiple conflicting implementations were
being pursued in the industry for Linux, was
iWARP support using RNICs (RDMA enabled
Ethernet adapters). Before describing the solution
approach we pursued for this problem, we will
briefly introduce the concepts of this technology.
We will then describe in subsequent sections the
various steps we took to: form a community for
developing the code, obtain requirements for the
Linux iWARP implementation, define the process
for creating the iWARP implementation, execute
that process, and ultimately merge the efforts on the
iWARP stack with the IB stack. We’ll also describe
how we ensured the agreed requirements are being
carried over in each of these steps.
2 RDMA AND IWARP
OVERVIEW
RDMA is a data transfer model that enables out of
user space operations to a previously registered user
space memory buffer without involvement from
either the source or destination’s operating system
(OS). The RDMA model is dependent on
registrations that are stored in memory translation
and protection tables (MTPT), which reside in
system or adapter memory. These registrations can
be used to translate and validate data that is being
transmitted from or placed into the registered buffer.
The RDMA model provides three basic data transfer
mechanisms: Sends, RDMA Writes and RDMA
Reads. These data transfer mechanisms are provided
to an RDMA-capable adapter through the Send
Queue associated with one of many Queue Pairs.
InfiniBand is an example of a protocol stack that
supports the RDMA model. Unfortunately, most
data center communications use the IP/Ethernet
networks stack. Adaptec, Dell, Intel, Broadcom,
EMC, Microsoft, Cisco, Hewlett-Packard, NetApp,
and IBM founded the RDMA Consortium to create
an initial set of specifications for supporting RDMA
over existing IP/Ethernet networks. The intention
was twofold: to allow vendors to support these
initial specifications as is and to seed the IETF’s
Transport Area’s Remote Direct Data Placement
Working Group with Internet Drafts that could form
the basis for iWARP protocol Request for
Comments. The RDMAC specifications are
available at the RDMAC Website
(http://www.rdmaconsortium.org/home) and the
IETF RFCs are available at the IETF Website
(http://www.ietf.org/html.charters/rddp-
charter.html).
Unlike the IB version of RDMA, iWARP
requires integration with the host OS’s TCP/IP
stack. For example, it requires the handoff of a
TCP/IP connection from the host OS to an iWARP
QP at the start of an RDMA Stream. An RDMA
based stack with defined interfaces to the host OS’s
TCP/IP stack was required. This stack included
defining the required: APIs, interfaces between
internal OS components, and interfaces between the
OS and the RNIC. The following section will
describe the methodology used to create this stack.
3 LAUNCHING AN OPEN
SOURCE PROJECT
IBM uses a System I/O Networking team that is
responsible for generating the strategic mission and
roadmap of IBM servers and storage. The goal of
the work is to generate a roadmap that, for the most
part, proves to be accurately in line with the
unfolding of I/O networking technology
improvements and advances. The process used by
this team requires input from a diverse set of thought
leaders from several disciplines. The input includes:
application environment and workload
requirements; basic and derivative technology
trends; system platform requirements; competitor
directions; business model innovations; applicable
new and substitute technologies/products;
technology/product risk analysis; and the team’s
capabilities. Additional input is obtained from the
larger I/O networking technical community within
IBM and outside of IBM. The strategy created by
this team is used to drive architecture work,
standards work, create plan line items and/or
provide input to plan line items. The plan line items
are used in the IBM System’s Integrated Product
Development Process (Grzinich et al., 1997) to drive
technologies and products from conception through
launch and marker support.
The Systems I/O Networking team discussed
the need for an Open Source stack that would
support RDMA-enabled NICs (RNICs). A small
sub-team was created to define how to enable an
Open Source iWARP stack. The team evaluated
several alternatives, including having RNIC vendors
create their own stacks, leveraging the IB stack, and
launching an Open Source project.
A SUCCESS STORY: COLLABORATIVE EFFORT WITH THE INDUSTRY IN ADDRESSING REQUIREMENTS
CHALLENGES FOR EARLY ADOPTION OF IWARP IN LINUX
641