On Wed, Mar 09, 2011 at 05:47:44PM +0200, Alex Netes wrote: > Hi Jason, > > On 17:29 Tue 01 Mar , Jason Gunthorpe wrote: > > This value must match the portGUID, so it needs to vary on a per port > > basis like portGUID and not simply reflect the value opensm acquired > > during the sweep. > > > > Prior to this patch opensm returns the same value for localPortNum for > > all ports on a HCA, now it returns the correct localPortNum for the > > portGUID. > > > > Also fixes query matching in the same way > > > Spec defines the SA NodeRecord.LocalPortNum field as the number of the link > port which received this SMP (14.2.5.3). This definition doesn't make any > sense when it comes to SA.
I think the spec is pretty sound on this point. The SA is expected to return SA queries for SMP records that match what is present in the fabric if the requestor did the SMP query itself. The constraints IBA places on a NodeInfo SMP query are such that localPortNum and portGUID must *always* match. You cannot enter on port 1 and query the NodeInfo for port 2 for a CA. So the current SA behavior of returning garbage for localPortNum is essentially returning a NodeInfo that can never be returned by a raw SMP query, which is clearly not aligned with the intent of the spec. I mispoke a bit in the commit message, opensm returns the localPortNum it acquired during the sweep *for a random port*, eg it collects and stores the NodeInfo for the first port it sees, then stores portGUID and localPortNum seperately. When it generates the SA reply it corretly replaces the port GUID but uses the random old localPortNum. This is clearly incorrect. > I understand your motivation for the patch and the fact that current > LocalPortNum query matching in the SM doesn't sound right. So maybe > IBA spec fine tuning is needed, before applying the patch, so this > field won't be open to free interpretations. I don't think there is really any free interpretation here. For everything but a switch localPortNum must always reflect the port that portGUID is associated with. This is is what is defined to happen when the NodeRecord SMP is generated by the SMA, the SA must do the same. This causes real problems, without an accurate localPortNumber it is impossible to associate the portGUID with a port number when doing SA queries Jason -- To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html