[openib-general] [PATCH] [CM] add private data comparison to match REQs with listens
Caitlin Bestler
caitlinb at broadcom.com
Fri Dec 2 10:58:54 PST 2005
openib-general-bounces at openib.org wrote:
> Sean Hefty wrote:
>> As an update: further testing revealed that there is an issue with
>> this implementation that is also found in the original code. The
>> issue deals with how listen requests that rely on a data mask are
>> inserted and located in the red/black tree. I'm trying to come up
>> with a fix for this.
>
> After researching into this, I'm coming to the conclusion
> that there does not exist an efficient way to sort/search for
> listens without adding some restrictions.
>
> For example, a client listens on id1 with mask1. A request
> is matched with the listen if its serviceid & mask1 = id1.
> If a second client listens on id2 with mask2, then a request
> must check against both requests for a match, or until a
> match is found. There's no method that I can find that can
> be used to filter checks that works in a generic fashion,
> resulting in requests needing to walk a linear list of
> listens. There are several potential fixes for this, with
> only a couple mentioned below.
>
> One solution around this is to have the IB CM only listen on
> service IDs, and remove the mask parameter from the API.
> This requires SDP to change to only listen on ports that have a
> listener.
>
> Another alternative is to restrict the type of masks that are
> supported. If masks are restricted to a series of most
> significant bits, then the existing algorithm can be used.
> For instance, we can support masks 0xFF00 and 0xFFF0, but not
> 0x00FF or 0xFF0F. This restriction would work for both SDP and the
> CMA. To be clear, the API could change from a mask to the number of
> bits to match.
>
> Matching on private data can either be done by clients, or
> restrictions can be placed on it as well. For private data,
> I believe that a restriction that all listen requests on the
> same service ID use the same mask is sufficient.
>
> Hopefully this makes sense to people. Thoughts?
>
Just listen on the Service ID / Port and let the ULP sort them
out by destination IP address.
More information about the general
mailing list