[openib-general] ib_mad.h rmpp_version and RRespTime in header

Hal Rosenstock halr at voltaire.com
Thu Aug 5 13:52:33 PDT 2004


On Thu, 2004-08-05 at 11:20, Sean Hefty wrote:
> On Thu, 05 Aug 2004 08:28:50 -0400
> Hal Rosenstock <halr at voltaire.com> wrote:
> 
> > Do we really want the consumer to know RMPP version and pass it into
> > ib_mad_reg_class (and also ib_mad_qp_redir) ?
> 
> I think that we need a flag of some sort for the consumer to indicate that a MAD has the RMPP header.  The size of the RMPP header may change between versions, so the access layer needs to know how large the header is.  The consumer needs to know which version is being used, so that it can allocate the header in the MAD.  I guess an alternative is to specify the version in the ib_mad_msg (or set directly in the MAD).
> 
> My hope is that the access layer can be isolated from changes to the management classes, or from having to know which classes require RMPP.

OK. The version parameter serves as both the flag and the version.

> > It would seem to me that the RMPP implementation should support whatever
> > version(s) it does and be backward compatible to other versions.
> 
> Didn't the RMPP stuff change completely between 1.0 and 1.1, such that trying to support 1.0 and 1.1 requires the client to control the RMPP?  This is kind of what I'm worried about.  Also, a client may have an idea of what RMPP version is supported by the remote side, whereas the access layer does not.

SA 1.0a (and RMPP) was broken in many ways which is why RMPP was totally
redesigned as part of 1.1 and SA changed its class version from 1 to 2.
IBA 1.1 is a minimum requirement for deployment (and should be a minimum
requirement for OpenIB). 

If RMPP were to change, I would expect it to change in a way such that
the older version were not orphaned and new versions could talk to old
versions. So the only thing needed is the local version. In fact, the
access layer would return an error code if it were not a supported
version.

Anyhow, I'm with you on the version...

> > The only reason I recall from this thread was allowing the consumer to
> > set RRespTime in the RMPP header as a way of passing this. If that is
> > the only thing, why not do this some other way (like part of ib_mad_msg
> > struct) ? Shouldn't we isolate the consumer from these sorts of things ?
> 
> I think that we should examine whatever alternatives make sense.  However, I believe that the sender should provide the buffer space for both the MAD and RMPP headers.  If that is done, then it seems to make more sense to set the data directly in the header, rather than have the access layer copy it from ib_mad_msg into the header.

I'm confused. I thought the sender was just sending
(ib_mad_post_send_msg) a buffer of some length (indicated in
ib_mad_msg). Wouldn't RMPP take that and fragment it and add
the headers ? Is there another call/structures yet to be added 
for this ?

-- Hal





More information about the general mailing list