Re: [PATCH v4 4/9] rdma/cm: Update port reservation to support AF_IB
From: Jason Gunthorpe <hidden>
Date: 2013-02-13 18:10:44
Also in:
linux-rdma
On Wed, Feb 13, 2013 at 05:44:58PM +0000, Hefty, Sean wrote:
Ultimately, IB establishes communication using 64-bit service IDs, which is what sockaddr_ib exposes. The SID mask was proposed by Jason as a way to simplify things. Conceptually, AF_IB has a single port space range, the 64-bit SID. The mask helps us break the SID into the various ranges, so we can clearly know which parts of the SID are fixed, and which can be variable. E.g. when connecting, the entire SID must be provided. However, when binding we want to support binding to a specific SID or only to a SID range (i.e. port space).
Right. AF_IB is about exposing the native IB CM, rather than a cooked version of it, so allowing user space to control the entire SID is desirable. The intent of the masking was to provide a means for the kernel to atomically select a process-unique ID (such as the 16 bits the IP varient requires) for listening. Other uses of IB CM would use a different prefix, but will still fundamentally require a machine unique portion. This addresses a fundamental problem in ib_ucm - there is no way for multiple processes to co-ordinate on unique SIDs. Sean, I've lost track of all this over time, but just to check in, with this new interface, would it be possible to obsolete ib_ucm? That seems desirable to me, as it is so flawed.. Jason