[openib-general] user_mad check question

Sean Hefty mshefty at ichips.intel.com
Fri Jul 7 13:59:30 PDT 2006


Rimmer, Todd wrote:
> While the TID can be appropriate for a SEND (it depends on management
> class, some classes could chose to always use 0), this code fragment
> cannot be sure if the SEND is a new request or a response to an existing
> request.  Hence it cannot be certain if it should modify the TID.

If the TID is not modified, then there's no guarantee that the send is unique 
across multiple agents.  I guess what I need to determine is when is it wrong to 
modify the TID of a send.  My interpretation of C13-18.1.1 is that sends must 
also be unique for TID, SGID, and class.

I know that the spec states that classes that do not use the TID should set it 
to 0, but are there any classes defined that do this?

> I have not studied this whole code path, but it might hint at a problem
> when handling MAD classes which use SEND instead of REQ/RESP type
> messages.
> Namely the hi_tid is not inserted for SEND.  Does other code on the
> receive path expect hi_tid?

The hi_tid is used to route a response to the correct agent.  But since sends 
wouldn't have the response bit set anyway, routing would need to be done based 
solely on the class.  This is what is done for the CM.

Can sends ever be used with RMPP?

> One such class which can use SEND to hold requests and their responses
> is the BMA.  So can the SNMP tunnel and the CM (although CM is not
> usually done from user space).  For the BMA case, a request can be:
> Class=BM
> Method=SEND
> AttributeModifier has BM RESPONSE bit set

Ugh.  This makes it really hard to determine if a send is a new operation.

- Sean




More information about the general mailing list