Steve Wise [Fri, 15 Dec 2006 22:56:06 +0000 (16:56 -0600)]
librdmacm Pass back the status or errno in RDMA CM events.
The librdmacm code isn't passing back the errno in all events.
For example, if a connection request times out the kernel CMA will pass
up event RDMA_CM_EVENT_UNREACHABLE with the status set to -ETIMEDOUT.
This errno isn't currently passed back to the librdmacm user in the event.
Signed-off-by: Steve Wise <swise@opengridcomputing.com> Signed-off-by: Sean Hefty <sean.hefty@intel.com>
Sean Hefty [Tue, 5 Dec 2006 03:17:44 +0000 (19:17 -0800)]
Update librdmacm to support ABI version 3
rdma_ucm ABI 3 adds support for reporting connection information with
connect events and UDP port space support. Update the librdmacm to
take advantage of these features, and update test programs as well.
Sean Hefty [Tue, 5 Sep 2006 19:32:38 +0000 (19:32 +0000)]
r9272: Update documentation for rdma_destroy_id to call out that it will cancel
any oustanding asynchronous operation on the id. Suggested clarification
by Or.
Sean Hefty [Tue, 29 Aug 2006 22:03:47 +0000 (22:03 +0000)]
r9183: Need to poll both send and receive completions from the CQ on the passive side
of the connection. Without polling the sends first, we exit before receiving
all replies.
Sean Hefty [Thu, 24 Aug 2006 17:36:24 +0000 (17:36 +0000)]
r9105: Older versions of Linux do not have the misc device. Backport patches create
the RDMA CM abi_version file under /sys/class/infiniband_ucma, so we'll auto-
matically look there for the abi_version if we don't find it in its normal
location.
Steve Wise [Fri, 18 Aug 2006 21:06:41 +0000 (21:06 +0000)]
r9008: Set the QKEY to a common global value for all UD QPs and multicast groups
created by the RDMA CM. This lets a UD QP be used for datagram communication,
as well as multicast group communication over any number of groups.
Signed-off-by: Steve Wise <swise@opengridcomputer.com> Signed-off-by: Sean Hefty <sean.hefty@intel.com>
Sean Hefty [Mon, 24 Jul 2006 17:29:56 +0000 (17:29 +0000)]
r8647: Re-instate fix from svn 7079, which was removed in svn 7497.
On kernels 2.6.9 an older, class/misc does not exist. To support kernel
backports, if we are unable to locate rdma_cm/abi_version, assume the
latest version. If we're wrong, we'll fail later in the code calling into
the ABI.
Sean Hefty [Fri, 14 Jul 2006 16:19:16 +0000 (16:19 +0000)]
r8523: Add calls to the RDMA CM to return its list of RDMA devices. The calls are
similar to ibv_get_device_list() / ibv_free_device_list().
Without this patch, RDMA device contexts are handed to the user only after
they create an rdma_cm_id and bind it to a local device. By exposing the
device list to the user, it makes it easier for the user to allocate device
specific resources (such as PDs, CQs, etc.) that are shared among multiple
rdma_cm_id's.
Sean Hefty [Fri, 16 Jun 2006 19:31:02 +0000 (19:31 +0000)]
r8084: Add support to the userspace RDMA CM library for joining and leaving multicast
groups based on IP addressing. Add a goofy test program for this.
Boyd Faulkner [Tue, 13 Jun 2006 17:26:11 +0000 (17:26 +0000)]
r7966: This patch resolves a race condition between the receipt of
a connection established event and a receive completion from
the client. The server no longer goes to connected state but
merely waits for the READ_ADV state to begin its looping. This
keeps the server from going back to CONNECTED from the later
states if the connection established event comes in after the
receive completion (i.e. the loop starts).
Roland Dreier [Thu, 25 May 2006 16:38:11 +0000 (16:38 +0000)]
r7497: Development versions of libibverbs don't include libsysfs headers or
link with libsysfs implicitly any more. So libibcm and librdmacm
need to explicitly include and link libsysfs.
Jack Morgenstein [Wed, 10 May 2006 17:06:53 +0000 (17:06 +0000)]
r7079: On kernels 2.6.9 and back, we didn't find a way to add sysfs attributes to
misc devices. If the abi version file does not exist, assume latest ABI to
make it possible to use librdmacm on such systems.
Signed-off-by: Jack Morgenstein <jackm@mellanox.co.il> Signed-off-by: Michael S. Tsirkin <mst@mellanox.co.il> Signed-off-by: Sean Hefty <sean.hefty@intel.com>
Sean Hefty [Tue, 9 May 2006 18:25:10 +0000 (18:25 +0000)]
r7019: Introduce event channels. Event channels allow the application to direct
how RDMA CM events are reported, by directing events on different rdma_cm_id's
to different event channels. These are similar to completion channels used
in verbs.
Sean Hefty [Wed, 26 Apr 2006 22:54:45 +0000 (22:54 +0000)]
r6674: If librdmacm has an error processing an ESTABLISHED event, it will report a
CONNECT_ERROR event to the user. However, the kernel will list the cm_id
state as connected. This can result in librdmacm receiving a DISCONNECTED
event on a cm_id that it failed to fully connect from userspace. This event
should not be reported to the user.
This condition can occur when the remote side establishes a connection, then
disconnects before the local side processes the ESTABLISHED event. When the
ESTABLISHED event is finally processed, the local side will get a failure
transitioning the QP, causing librdmacm to report CONNECT_ERROR. Since the
connection was never reported as ESTABLISHED to the user, do not report the
DISCONNECTED event.
A similar situation exists between the CONNECT_RESPONSE and REJECTED events.
Sean Hefty [Tue, 25 Apr 2006 17:02:48 +0000 (17:02 +0000)]
r6628: Update to support calling listen without having previously bound. After
listen is called, we need to query for the route information to know which
port has been assigned.
Sean Hefty [Mon, 17 Apr 2006 22:35:31 +0000 (22:35 +0000)]
r6503: Remove ABI check surrounding call to query route information after performing
a local bind. We always need to get the route information in order to bind
to the local device, or DAPL breaks.
Sean Hefty [Fri, 7 Apr 2006 23:49:48 +0000 (23:49 +0000)]
r6335: Reset ABI version to 1. We will not maintain backwards compatibility until
the RDMA CM has been merged upstream. This removes the ABI version hack that
tried to handle the case where the ABI version was not exported into userspace.
Sean Hefty [Fri, 31 Mar 2006 20:07:25 +0000 (20:07 +0000)]
r6135: If the user calls rdma_bind_addr(), but specifies either a zero IP address
or the loopback address, bind will succeed, but the cm_id will not be
attached to an RDMA device. This will result in a failure if rdma_resolve_addr
is called. Fix rdma_resolve_addr(), so that it handles this condition
properly.
Also fix the userspace interface to allow querying for address information
after binding to the zero or loopback address. This breaks the behavior of
the current ABI, so bump the ABI version, and add the proper support to
allow checking the kernel ABI version from the userspace library.
Steve Wise [Sat, 11 Feb 2006 00:12:10 +0000 (00:12 +0000)]
r5368: Implement an RDMA ping-ping test over an RC connection. This program
uses send, recv, RDMA read, and RDMA write operations, as well as CQ
channels to get CQ events.
Signed-off-by: Steve Wise <swise@opengridcomputing.com> Signed-off-by: Sean Hefty <sean.hefty@intel.com>
Sean Hefty [Fri, 11 Nov 2005 00:33:09 +0000 (00:33 +0000)]
r4019: Add support for userspace RDMA connection management abstraction (CMA).
- Adds common user/kernel data structures and copy routines in ib_uverbs and
libibverbs.
- Update ib_ucm and libibcm to use common structures and copy routines.
- Add new kernel module, rdma_ucm, to support userspace CMA.
- Add userspace CMA library, librdmacm.
- Add userspace CMA test program.
- Update kernel CMA to support userspace CMA library.
- Add support for users to transition QP states.
- Add backlog parameter to rdma_listen API.