Subject: Re: [PATCH v4 4/9] rdma/cm: Update port reservation to support AF_IB

From: Jason Gunthorpe <[email-masked]>
Date: Wed, 13 Feb 2013 11:10:48 -0700

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