[openib-general] Problem is routing CM REQ

Michael Krause krause at cup.hp.com
Wed Feb 14 14:15:50 PST 2007


At 01:36 PM 2/14/2007, Sean Hefty wrote:
>Assume that the active and passive sides of a connection request are on 
>different subnets and:
>
>Active side - LID 1
>Active side router - LID 2
>Passive side - LID 93
>Passive side router - LID 94
>
>What values are you suggesting are used for:
>
>Active side QP - DLID
>Passive side QP - DLID
>CM REQ Primary Local Port LID

Subnet A is:
QP Port LID 1
Router A Port LID 2

Subnet B is:
QP Port LID 93
Router B Port LID 94


Process steps:

- Router A populates SM / SA A with the GID prefix it can route.   SM / SA 
A will have configured the router Port with the appropriate local route 
information and hence have assigned it LID 2.

- CM associated with Port LID 1 queries the SM / SA to identify a path to a 
GID Prefix.   SM / SA returns a path record indicating a global route, i.e. 
one that requires a GRH, is available and provides the CM with the 
information targeting router Port LID 2.

- CM creates a REQ and populates the global information to identify the 
remote endnode.  The LRH generated targets Port LID 2.  The GRH is 
generated to target the remote subnet so the router will comprehend how to 
process the packet.

- Router A receives the packet and examines the GRH.   Via its router 
protocol, it has previously identified what router Port will lead to the 
next hop on the path to the destination endnode.

- If the endnode is subnet local, say subnet B, then the router generates a 
LRH with QP LID 93 and emits that on router Port LID 94.

- QP in subnet B receives the CM REQ and validates the LRH.  Given these 
messages are via UD service and not RC / UC, the validation rules for the 
LRH are different.   The CM agent processes the request and returns an 
appropriate response by filling in a GRH that replaces the SGID with the 
DGID and so forth so the addresses are basically reflected back.   The 
response uses QP port LID 93 and targets router Port 94.

- Router B Port 94 receives the response.  It parses the GRH and determines 
the next hop port.   In this example, the response goes out router A Port 2 
and targets QP Port LID 1.  The LRH is generated using these 
fields.  Again, since CM is targeting a UD QP, the LRH validation rules are 
different.

- Once the connection is established, the QP on subnet A will send packets 
to QP on subnet B using a GRH that is processed by the router with each QP 
using a LRH that targets the router port locally attached to its 
subnet.   The router is responsible for generating a LRH to forward to the 
next hop.   These packets are now in a RC / UC data flow so the LRH 
validation is per the sections cited in this e-mail string.

In all cases, the router protocol is responsible for generation of a LRH 
that will work within each subnet.  There is no exchange of subnet local 
information between the subnets.  Each subnet's SM/SA only tracks what is 
local to it as well as what GID prefix can be routed via a given LID.   If 
multiple LID can route to a given GID prefix, multiple path records are 
returned.   Which to choose is not specified by the specifications so it 
can be any policy one desires. If the router protocol communicates a "cost" 
to a given path in order to give an indication of appropriateness for a 
given workload, then this should be communicated to the CM agent.

Mike 






More information about the general mailing list