[openib-general] [PATCH 1/6] libibverbs include files changes.

Krishna Kumar2 krkumar2 at in.ibm.com
Mon Jul 31 22:23:14 PDT 2006


Hi Sean,

I still have a problem. Many enums have both IB specific and RDMA generic
defines. Eg :

enum ibv_event_type {
        IBV_EVENT_CQ_ERR,
        IBV_EVENT_QP_FATAL,
        IBV_EVENT_QP_REQ_ERR,
        IBV_EVENT_QP_ACCESS_ERR,
        IBV_EVENT_COMM_EST,
        IBV_EVENT_SQ_DRAINED,
        IBV_EVENT_PATH_MIG,
        IBV_EVENT_PATH_MIG_ERR,
        IBV_EVENT_DEVICE_FATAL,
        IBV_EVENT_PORT_ACTIVE,
        IBV_EVENT_PORT_ERR,
        IBV_EVENT_LID_CHANGE,
        IBV_EVENT_PKEY_CHANGE,
        IBV_EVENT_SM_CHANGE,
        IBV_EVENT_SRQ_ERR,
        IBV_EVENT_SRQ_LIMIT_REACHED,
        IBV_EVENT_QP_LAST_WQE_REACHED,
        IBV_EVENT_CLIENT_REREGISTER
};

It looks weird to keep some elements in the above enum as IBV_ and others
as RDMA_. A lot of other enums have this same problem, eg 
ibv_qp_attr_mask,
infact this is true of all enums/structures/defines that have some 
elements that
are IB specific.

Thanks,

- KK

Sean Hefty <mshefty at ichips.intel.com> wrote on 07/31/2006 10:47:20 PM:

> > - "Path records are IB specific.  Not sure we need to rename them" and 
"These
> >  changes look fine.  We just need to decide if we want to change 
everything 
> > that's ibv_* to rdma_*, or keep IB specific names (path records, GIDs, 
PKeys,
> >  etc.) the same."
> > 
> > I had indicated this in my "Information notes" in the [PATCH 0/6] : 
"IB
> > specific routines are also converted to use RDMA generic API's for 
sake of
> > uniformness (knowing that transport dependent names will be removed 
once all
> > apps are converted)."
> > 
> > The issue is between deciding to have either rd(ma)_v or ibv_ for IB 
specific
> >  structures. Currently there is no other transport other than IB that 
has 
> > these specific structures, but if that changes it might be better to 
keep the
> >  name transport agnostic. Another reason that I see at this time is to 
have 
> > uniform names which means that this library exports names using one 
prefix -
> > this means that I do not have to care about the underlying transport 
type and
> > I also do not have to remember that ibv_ is for [a, b, c, d] 
operations and
> > rdma_ is for [e, f, g, h] operations. What do you feel ?
> 
> If an application is looking at a path record, GID, PKey, etc. they they 
_are_ 
> caring about the underlying transport type and the fact that it is IB. 
An 
> application that wants to be transport neutral would just need to limit 
itself 
> to using rdma_* structures and APIs.
> 
> If we take a larger view, I don't think we want transport neutral names 
for the 
> IB CM and IB MAD userspace APIs and structures.  Things like path 
records, GIDs, 
> etc. are also used by those libraries.
> 
> - Sean





More information about the general mailing list