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()
.
.
.
}
_______________________________________________
openib-general mailing list
[email protected]
http://openib.org/mailman/listinfo/openib-general
To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general