[openib-general] RDMA connection and address translation API
Caitlin Bestler
caitlinb at broadcom.com
Fri Aug 26 09:59:56 PDT 2005
> -----Original Message-----
> From: openib-general-bounces at openib.org
> [mailto:openib-general-bounces at openib.org] On Behalf Of Guy German
> Sent: Friday, August 26, 2005 1:27 AM
> To: Sean Hefty; James Lentini
> Cc: openib-general at openib.org
> Subject: RE: [openib-general] RDMA connection and address
> translation API
>
> >> We need to insert in here:
> >>
> >> ib_modify_qp(...); /* somehow uses address resolution... */
> >> ib_post_recvs(...);
> >>
> >
> >or add a new call to create the qp and modify it to init (an
> analog to
> >the socket(2) function).
>
> Sean> This approach seems reasonable to me. Maybe something like:
> Sean> rdma_create_qp(rdma_addr_info);
>
> Sean> Uses the output from the address resolution to create the QP on
> Sean> the correct device and transitions it to the INIT
> state. The user
> Sean> can now post any work requests that they want. For
> example, with
> Sean> iWarp, I believe that even send work requests can be
> posted in the INIT state.
>
> What do you think about this flow ?
> 1. resolve device and port from ip address - synchronous operation
> (like at.c resolve_ip)
> 2. rdma_create_qp (device+port) - modifies qp to init with
> default pkey index 3. ib_post_recvs(...); 4. cma_connect -
> asynchronous at, modify qp with correct pkey index, cm_connect
>
At least with iWARP a QP is not bound to a specific port, or even
to an IP Address. It is only bound to the RDMA Device (RNIC) and
Protection Domain. The same QP can be re-used for a new connection
with a new IP address. Indeed, that is exactly what would happen
with application-layer controlled failover (such as iSER).
More information about the general
mailing list