[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