The ofuv_rdma_arch.txt architecture document shows librdmacm and
libibvers as being part of this "Phase 1" delivery.  Reading between the
lines, it appears that this fast-track is only delivering part of what
this document describes as "Phase 1".  Is that correct?

On Fri, 2009-11-06 at 14:36 -0800, Ted H. Kim wrote:
> In particular, our business objective is to port what is necessary to
> satisfy some of the requirements of Oracle's Reliable Datagram Sockets
> v3 (RDSv3, used in Exadata 2) and the Lustre Solaris port. Both
> applications are originally written for Linux OFED and benefit
> considerably from porting a certain facility known as the "RDMA-CM",
> which provides a KPI to manage IB connections.

The consumers of the kernel APIs defined by this case will be 3rd party
kernel modules, correct (at least initially)?  If so, are you certain
that you want the new rdma_*() interfaces to be Consolidation Private?
It seems to be implied that these are part of an external specification
and are documented.  Perhaps they should be some form of Public...

> This KPI would be
> an alternative compatibility KPI to the one we already have in
> IBTF (Solaris IB framework).

This is somewhat understating the role of IBTF in the architecture.
Isn't this KPI being implemented as a consumer of IBTF?  Stating that it
is an alternative would imply that one could obsolete IBTF and perhaps
eventually remove it.

> B. Imported Contracted Project Private IBTF APIs
>          These two calls are private IBTF interfaces used in this
>          project by contract:
> 
>          ibt_ofuvcm_get_req_data()
>          ibt_ofuvcm_proceed()
> 
>          Additionally a Contracted Project Private IBTF interface flag
>          is added to the ibt_open_rc_channel(9f) function as follows:
> 
>          IBT_OCHAN_OFUV
>            Indicates this channel is for an Open Fabric User Verbs (OFUV)
>            consumer. IBTF does not flush the QP associated with channel
>            when a DREQ is received for OFUV channels.

Use of a contract often indicates that some piece of architecture is
either missing/incomplete or mis-classified.  Instead of using a
contract, why not elevate the stability level of the two functions
needed to the same level as ibt_open_rc_channel() (consolidation-private
I think)?  The consumer and supplier are both in ON, right?

-Seb


Reply via email to