[openib-general] some CM/CMA clarfications/questions related to listener impl.

Sean Hefty sean.hefty at intel.com
Thu Jul 27 08:56:23 PDT 2006


>Does the the code below is what needs to be done by a CMA
>consumer to listen on a SID based on <port-space,port> over
>all the active IB ports of this node?

Your code should be sufficient to listen across all RDMA devices.

>What's most important for me now is to understand that the code
>below does what i expect, however looking in ib_cm.h and the cma
>code while coding the example, one point that i run into was the
>granularity the IB CM allows consumers "bind" objects to.

The <port-space, port> binding is unique system wide if an IP address of 0 is
specified, so the generated SID will also be unique system wide.

>I see that CM IDs are bounded to **device** and not to
><device,port> couple? if indeed, what was the rational?

Basically, the implementation was easier, and I didn't see a need to track
listens per port.

>It means that we don't support a config of a node connected to
>two IP subnets each over a different port of the same device,
>and two processes, each attempting to listen over the same port,
>but with different ip.

As long as the processes bind to different IP addresses, this is supported.
Rdma_bind() allows binding to the same port if the IP addresses are different.
Rdma_listen() will map both requests to the same SID, but distinguishes them
using the private data carried in the REQ.

- Sean




More information about the general mailing list