[openib-general] comments on DAT registry in OpenIB

Bob Woodruff robert.j.woodruff at intel.com
Thu Jun 30 11:16:05 PDT 2005


 Carlin wrote, 
>True.

>My assumption is that each transport would have its
>own CM module with similar, but not identical APIs.

>An application wants to go direct it could do the
>if/else ifs on its own.

If the application will have to have if/else for some functions,
then it already has to be aware of the specific transport,
so one option is to have if/else for all calls.

There are however some functions,
like posting work requests and creating some resources that are probably
similar
enough to have a common routine, but it may require the
routine to make a check and vector to the appropriate 
transport, which will add latency. 

A scenerio something like,

if(IB) {
   ib_sa_query()
   ib_connect()
}
elseif (iWarp) {
   iWarp_connect()
}

rdma_common_verb_create_pd()
rdma_common_verb_create_wq()
      . 
      .
rdma_common_verb_post_wqe()


i.e., in some cases you might end up with,


rdma_common_verb_create_pd(xport_type)
{
    switch (xport_type)
    case IB:
         ib_create_pd()
    case IWARP:
         iwarp_create_pd()
       .
       .
       .
}
  




More information about the general mailing list