Caitlin Bestler wrote:
So it sounds like the justification for the RDMA CM being
a distinct module is to centralize handling of device addition
and removal. Beyond that you are incorporating IB-specific
but device-independent logic. As a goal, the iWARP side
should be migrating there as well.

As a general rule, the code is organized into a group of general functions that are transport independent, and functions that are specific to a given transport. For example, rdma_accept() is written as:

        if (!cma_comp(id_priv, CMA_CONNECT))
                return -EINVAL;

        switch (id->device->node_type) {
        case IB_NODE_CA:
                ret = cma_accept_ib(id_priv, conn_param);
                break;
        default:
                ret = -ENOSYS;
                break;
        }

        if (ret)
                goto reject;

        return 0;

The IB specific code is in separate functions from the transport specific code, but shares the same file. I did not want to try to define common lower-level interfaces, such as a cma_accept_iwarp(), at this point.

- Sean
_______________________________________________
openib-general mailing list
[email protected]
http://openib.org/mailman/listinfo/openib-general

To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general

Reply via email to