<br><br>
<div><span class="gmail_quote">On 8/24/09, <b class="gmail_sendername">Ira Weiny</b> <<a onclick="return top.js.OpenExtLink(window,event,this)" href="mailto:weiny2@llnl.gov" target="_blank">weiny2@llnl.gov</a>> wrote:</span></div>

<blockquote class="gmail_quote" style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: #ccc 1px solid">If I send a combined DR path with a start lid but an empty (0 length) DR<br>path.  </blockquote>
<div> </div>
<div>Hop Count 0 ?<br> </div>
<blockquote class="gmail_quote" style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: #ccc 1px solid">What is the expected behavior?</blockquote>
<div> </div>
<div>Not sure what you mean by expected here. Are you referring to expectation based on the spec ?</div>
<div><br> </div>
<blockquote class="gmail_quote" style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: #ccc 1px solid">I know this could be specified with LID routing, but I don't see anywhere in<br>the specification which says this is an error.  </blockquote>

<div> </div>
<div>I don't think it should be an error (certainly not for the form you are using LID routed part followed by a DR part) but a null DR part is a little funny/odd.</div>
<div><br> </div>
<blockquote class="gmail_quote" style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: #ccc 1px solid">I do however seem to have 2<br>different implementations on 2 different switches.  For example:<br><br>I have Switch A (Lid 1) and Switch B (Lid 7).  I attempt to query PortInfo of<br>
Port 1 of each switch using the LID followed by an empty DR path.<br><br>17:55:22 > ./smpquery -c portinfo 1 0 1<br>ibwarn: [21005] mad_rpc: _do_madrpc failed; dport (Lid 1)<br>./smpquery: iberror: failed: operation portinfo: port info query failed</blockquote>

<div> </div>
<div>Is this a timeout ?</div>
<div><br> </div>
<blockquote class="gmail_quote" style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: #ccc 1px solid">17:55:31 > ./smpquery -c portinfo 7 0 1<br># Port info: Lid 7 port 1<br>Mkey:............................0x0000000000000000<br>
GidPrefix:.......................0x0000000000000000<br>...<br><normal output snipped><br><br>Detecting this special case in libibmad and turning the packet into a LID<br>routed one</blockquote>
<div> </div>
<div>Ugh... Is this special case really needed ? I don't think the underlying issue is understood sufficiently yet.</div>
<div><br> </div>
<blockquote class="gmail_quote" style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: #ccc 1px solid">succeeds but I wonder if this is an error in the SMI?</blockquote>
<div> </div>
<div>Switch SMI ? Is this a proprietary implementation ?</div>
<div><br> </div>
<blockquote class="gmail_quote" style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: #ccc 1px solid">  I also notice this is an error on the HCA I am running from (lid 2).</blockquote>
<div> </div>
<div>Is this HCA node OpenIB based ?</div><br>
<blockquote class="gmail_quote" style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: #ccc 1px solid">17:57:42 > ./smpquery -c portinfo 2 0 1<br>ibwarn: [21008] mad_rpc: _do_madrpc failed; dport (Lid 2)<br>
./smpquery: iberror: failed: operation portinfo: port info query failed</blockquote>
<div> </div>
<div>Is this also a timeout ?</div>
<div> </div>
<div>Also, does the result differ based on where you source these from matter (locally v. remotely)?</div>
<div><br> </div>
<blockquote class="gmail_quote" style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: #ccc 1px solid">Running with a simple DR path works,</blockquote>
<div> </div>
<div>You're referring to the same DR path here that fails in the combined route examples above, right ?</div>
<div><br> </div>
<blockquote class="gmail_quote" style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: #ccc 1px solid">I guess because this is the loopback case mentioned on page 805.</blockquote>
<div> </div>
<div>Yes but that's the high level requirement rather than the SMI rules which make that work.</div>
<div><br> </div>
<blockquote class="gmail_quote" style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: #ccc 1px solid">17:58:16 > ./smpquery -D portinfo 0 1<br># Port info: DR path slid 65535; dlid 65535; 0 port 1<br>Mkey:............................0x0000000000000000<br>
GidPrefix:.......................0x2007000000000000<br>...<br><snip><br><br>It guess that the comment "Since each part may be empty, there are eight<br>combinations, although only four are really useful:" on line 36 Page 805 can<br>
be interpreted to mean that only those 4 combinations need to be supported.<br>Is this true?</blockquote>
<div> </div>
<div>Not all 4 combinations are supported/known to work. When this was added for ibportstate, the only combined routing form that was important was LID routed part followed by a DR part.</div>
<div><br> </div>
<blockquote class="gmail_quote" style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: #ccc 1px solid">On the other hand I think strictly this should be supported.</blockquote>
<div> </div>
<div>In an ideal world yes but are they all required or is it just the one form most heavily used ?<br> </div>
<blockquote class="gmail_quote" style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: #ccc 1px solid">  Item 4 of C14-9<br>(line 24 page 810) requires the SMI to handle the packet if the HopPointer<br>equals HopCount +1, which it is in my case (HopCount == 0, HopPointer == 1)</blockquote>

<div> </div>
<div>By handle, this means "<font face="ArialMT" size="3"><font face="ArialMT" size="3">The SMI </font></font><b><font face="Arial-BoldMT" size="3"><font face="Arial-BoldMT" size="3">shall </font></font></b><font face="ArialMT" size="3"><font face="ArialMT" size="3">output the packet on the port whose number is in the entry indexed by Hop Pointer in the Initial Path. If that port number is invalid, the SMI </font></font><b><font face="Arial-BoldMT" size="3"><font face="Arial-BoldMT" size="3">shall </font></font></b><font face="ArialMT" size="3"><font face="ArialMT" size="3">discard the SMP."</font></font></div>

<div><font size="3"></font> </div>
<div><font size="3">Are you sure the Hop Pointer is 1 ? Where do you see this ?</font></div>
<div><font size="3"></font> </div>
<div><font size="3">If so, what's the initial path at this point (or more specifically index 1 of the initial path) ? I think that needs to be port 0 (if a switch) but this is a little weird as I would think it should be handed to the SMA which is different cases in the spec.</font></div>

<div><br> </div>
<blockquote class="gmail_quote" style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: #ccc 1px solid">Then after processing </blockquote>
<div> </div>
<div>by the SMA and doing the required returning initialization</div><br>
<blockquote class="gmail_quote" style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: #ccc 1px solid">the SMI should return the packet as specified in C14-13<br>item 3 on line 9 page 812.</blockquote>
<div> </div>
<div>I'm not sure it would use this case in the case of an empty DR pafh on return.</div><br>
<blockquote class="gmail_quote" style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: #ccc 1px solid">Am I wrong?  In the end it does not matter as I have to make the software work<br>for all the hardware I have; so I will change the software. </blockquote>

<div> </div>
<div>IMO it does matter as to where the problem lies (SMI or otherwise) and how the layers are comprised in the implementation.</div><br>
<blockquote class="gmail_quote" style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: #ccc 1px solid">However, I wonder<br>where exactly the spec falls on this, because I think it will influence where<br>the fix resides.  If the spec does not allow this then I think it is fine to<br>
have libibmad return an error since the user specified an invalid combined DR<br>path.  However, if this should be legal I think libibmad should work around<br>the bad hardware out there.</blockquote>
<div> </div>
<div>Is it hardware or firmware that needs fixing ? I think it may depend on the specific workaround for this as to whether it is acceptable as it might harm something else or might violate the spec.</div>
<div> </div>
<div>-- Hal</div>
<div> </div><br>
<blockquote class="gmail_quote" style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: #ccc 1px solid">Thoughts?<br>Ira<br><br>--<br>Ira Weiny<br>Math Programmer/Computer Scientist<br>Lawrence Livermore National Lab<br>
925-423-8008<br><a onclick="return top.js.OpenExtLink(window,event,this)" href="mailto:weiny2@llnl.gov" target="_blank">weiny2@llnl.gov</a><br>_______________________________________________<br>general mailing list<br><a onclick="return top.js.OpenExtLink(window,event,this)" href="mailto:general@lists.openfabrics.org" target="_blank">general@lists.openfabrics.org</a><br>
<a onclick="return top.js.OpenExtLink(window,event,this)" href="http://lists.openfabrics.org/cgi-bin/mailman/listinfo/general" target="_blank">http://lists.openfabrics.org/cgi-bin/mailman/listinfo/general</a><br><br>To unsubscribe, please visit <a onclick="return top.js.OpenExtLink(window,event,this)" href="http://openib.org/mailman/listinfo/openib-general" target="_blank">http://openib.org/mailman/listinfo/openib-general</a><br>
</blockquote><br>