[openib-general] Problem is routing CM REQ

Jason Gunthorpe jgunthorpe at obsidianresearch.com
Thu Feb 8 20:37:27 PST 2007


On Thu, Feb 08, 2007 at 03:43:24PM -0800, Sean Hefty wrote:
> > Looking at the problem more, I think that the issue extends to the remote port 
> > LID as well.  My expectation with a local path record query is that the SLID is 
> > the local port, and the DLID is the local router.  This should be sufficient for 
> > one-way UD traffic, but for connected traffic we still need to discover the 
> > remote router and remote port LIDs.
> 
> Given a path record query for:
> 
> SGID - local
> DGID - remote
> 
> What would be the SLID and DLID?
> 
> And if the query is reversed, such that:
> 
> SGID - remote
> DGID - local
> 
> Are the SLID/DLID values simply reversed?

I have a follow up question to this.. With CM how is the SL for each
side determined? I'm looking through the code here and it looks like
the SL of the active side is passed in the REQ to the passive side (ie
both sides are the same) But cma_query_ib_route does not set the
reversible bit when it asks for the path. If you don't set the
reversible bit isn't it necessary to make a 2nd path query to get the
reverse path's SL? [Path responses without the reversible bit set
are actually simplex paths and reversing them probably will run into
SL2VL mapping tables that cause the packets to be dropped ie o7-8]

Infact, to get an optimal path aren't 3 path records required:
1) A reversible path from active to passive from the CM GMPs
  (required by C12-5.1.3)
2) An optimal non-reversible path from active to passive
3) An optimal non-reversible path from passive to active

Jason




More information about the general mailing list