On Tue, Jun 30, 2009 at 2:00 PM, Jason Gunthorpe<jguntho...@obsidianresearch.com> wrote: > On Tue, Jun 30, 2009 at 02:04:03PM +0200, Joachim Fenkes wrote: >> On Tuesday 30 June 2009 00:01, Hal Rosenstock wrote: >> > On Mon, Jun 29, 2009 at 8:10 AM, Joachim Fenkes<fen...@de.ibm.com> wrote: >> >> > > Previously, libibmad reacted to GSI MAD responses with a "redirect" >> > > status >> > > by throwing an error. IBM eHCA adapters use redirection, so most >> > > infiniband_diags tools didn't work against eHCA. >> > >> > Are there GS classes other than PerfMgt which would be redirected by eHCA ? >> >> Not right now, no. If you're interested in the details of how and when the >> eHCA driver redirects, please have a look at >> drivers/infiniband/hw/ehca/ehca_sqp.c. > > Hmm.. That definately doesn't look right overall. You are not forming > the redirect reply in a way that will work with all possible > fabrics. You can't just return a 0 SL and the default PKey and assume > things will work out. > > It looks like all you want to do is redirect to a different QPN? If so > I recommend you copy all the values from the incoming MAD's LRH and, > if present, GRH into the ClassPortInfo reply. Copy the PKey too. > > This way you have the best chance of sending back the right information.
Agreed. > If there is no GRH then you can use GID index 0 and a 0 TC and a 0 > FL. According to the spec returning the port GID is NOT optional. These are not needed when using LID based redirection (see ClassPortInfo RedirectLID description). -- Hal >> > > + /* update dport for next request and retry */ >> > > + dport->lid = mad_get_field(mad, 64, IB_CPI_REDIRECT_LID_F); >> > > + dport->qp = mad_get_field(mad, 64, IB_CPI_REDIRECT_QP_F); >> > > + dport->qkey = mad_get_field(mad, 64, >> > > IB_CPI_REDIRECT_QKEY_F); > > This code sould also check for 0 LID and bail. > > Jason > _______________________________________________ ewg mailing list ewg@lists.openfabrics.org http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ewg