[openib-general] Problem is routing CM REQ
Michael Krause
krause at cup.hp.com
Tue Feb 13 15:10:27 PST 2007
At 02:02 PM 2/13/2007, Jason Gunthorpe wrote:
>On Tue, Feb 13, 2007 at 12:49:57PM -0800, Michael Krause wrote:
>
> > >Translated into a network with routers this means that for a RC flow
> > >to successfully work both the *forward* and *reverse* direction must
> > >traverse the same router *LID* not just *port* on both subnets.
> >
> > That is a given since the LID = path and same path must be used to insure
> > strong ordering is maintained.
>
>I think you are missing what I'm saying. IB within a subnet has the
>path selected by the DLID only.
The actual path selection is a policy decision outside the scope of the
specification - it appears this is your main concern in that the
specification does not state "take these N parameters and apply the
following algorithm to identify a path". The address vector can be
comprised of many fields including a LID range. The actual DLID selected
is done above as there can be a variety of policies or constraints imposed
for a given data flow. I agree that packet switching within is via a DLID.
>So the construction process for a QP is to choose two enport LIDs, reverse
>them on one side and then query the SA for the forward and reverse SL.
>That gives you a pair of workable QPs.
SL, LID, etc. are all uploaded into the management database for the SM / SA
to access and there can be much more robust information loaded as well that
goes well beyond what the IBTA specified in order to provide additional
interpretations / information to guide path selection. A query can return
multiple records if multi-path has been configured. Policy above is used
to construct the CM messages which communicate the preferred path. The
CM messages for establishment across subnets should be sufficient in their
existing content to work independent of how the actual routing is
accomplished.
>This same procedure doesn't work for routers.
>Consider a case where a router port has LID 1 and an end port has
>LIDs 3,4.
>The end port establishes two RC QPs:
> #1: SLID=3, DLID=1
> #2: SLID=4, DLID=1
>Both have the same DGID - how is the router expected to know that QP
>#1 requires one set of LIDs and QP #2 requires a different set?
For all intents and purposes, within a local subnet, a router Port is
treated the same as CA. If there are multiple paths between a router Port
and a given CA Port, i.e. multiple LIDs are configured, then the router is
supposed to query the SM / SA database and obtain the appropriate records
and make a decision that remains valid for the lifetime of the data
flow. The purpose of the TClass is to enable a local mapping to SL which
can also be used as input into LID selection. The flow label is left open
in its value and was expected to be used much like it is in IP. People
considered encoding it or at a minimum, using it as an input parameter to
identify the associated LID for the flow but that was not agreed to since
the router vendors at the time wanted it left largely opaque.
>Section 19.2.4.1 seems to make it explicit to me that this is a valid
>situation.
Yes, 19.2.4.1 supports multi-path within a given subnet.
>To have this work the router must use the flow label to identify the
>correct DLID. SA/CM must be enhanced in some way to let the two sides
>exchange flow labels.
That is a policy decision or something for a TBD router protocol
specification. It is not required to use the Flow Label.
>This problem is worse if you have multiple independent redundent
>routers on your subnet, or LMC != 0. Then you now have the problem of
>SLID matching as well as DLID matching.
It is no worse due to the existence of multi-path. There are many
variables involved in creating a viable router protocol specification which
is in part, why the IBTA chose to not complete that work.
>Strong ordering is maintained in all cases because the routers always
>make consistent choices for the LRH.DLID on a session by session
>basis.
Agreed, The router is responsible for insuring a consistent path is used
for a given flow. That does not preclude multi-path nor does it make
multi-path more complicated as a result.
> > >That is why I said previously that the QP matching rules are a
> > >mistake. The best way to solve this is to change C9-54 to only be in
> > >effect if the GRH is not present.
> >
> > I disagree. We were very explicit in how and why we constructed those
> > rules.
>
>Do you know of a solution then?
>
>If C9-54 is a very deliberate design then it must be that the CM
>specification in Chapter 12 is not designed to handle the
>ramifications of C9-54.
>
>I just can't see how to fit both CM and C9-54 together into a workable
>solution.
You are arguing about a router protocol problem that does not exist or
perhaps I just don't get it. We did progress the router specification or
at least the operating models behind it sufficiently to validate that both
Chapter 9 and Chapter 12 worked as specified (as well as chapters 8 and
19). Yes, there are implementation issues within a router for it to
perform the appropriate queries on the SM / SA to identify a preferred
flow's path within a given subnet. This makes this a local subnet policy
issue and is orthogonal to the compliance statements in the volume 1
specification. If you believe the specification is faulty, then it would
be best to take this to the IBTA and have an official review done by the
workgroup teams involved with these chapters. People are free to
implement what they choose which for routers is completely open since there
isn't a specification but for the compliance statements, assuming
interoperability is desirable in this regard, the validation tree in the
specification should be used and any software implemented on top of such
hardware should take that into account. For the most part, what you've
described is largely an argument about the policy to select a path and that
is a router domain problem not a packet validation problem. Within the
router domain, that is pure policy just like in the IP world. As long as
it results a given flow consistently using the same data path, all is
good. At the end of the day, the router implementations will decide
their policy for determining the optimal path and I doubt there will be a
one-size-fits-all agreement on the formula that is used to construct that
decision (albeit, if the SM/SA only returns one path for a given flow, then
the decision is rather easy).
Mike
More information about the general
mailing list