[rds-devel] Pulling rdma_listen into rds-core code

Andy Grover andy.grover at oracle.com
Wed Jan 14 18:58:18 PST 2009


Hi Steve,

Right now, both the ib and iw transports are calling rdma_listen() --
this is a legacy of them once being the same driver, of course :-)

Before we can ask Vlad to take the code we've been working on,
rdma_listen has to move out of each transport into rds-core.

How hard do you think this will be? I was thinking:

* Move rds_xx_conn_connect() and rds_xx_cm_event_handler() into rdma.c
* Make cm event handlers (e.g. rds_ib_cm_handle_connect()) into function
pointers in struct rds_transport
* Call the right rds_transport (ib or iw) cm event handler based on
cm_id->device->node_type

I think this would be a little hackish but allow the two transports to
coexist, short-term.

Then for the next stage, I'm hoping that iWARP as its own transport will
allow enough flexibility so that the different RDMA semantics from IB
(loopback, keys, error reporting, etc.) can be hidden from rds-core, and
users of the RDS socket API. The only issue left at that point will be
duplicated code, which can be remedied by low-risk adjustments to the
transport interface.

Thoughts?

Regards -- Andy



More information about the rds-devel mailing list