Alexander Nezhinsky wrote: > Caitlin Bestler wrote: > >>> So what do the iser sockets do? They look like noop stubs to me. >>> >> >> Good question. >> >> I am guessing that they are exactly noop stubs, and the real point is >> to have a socket associated with an iSER RDMA connection. >> >> My question is why? Unless the attempt is to allow upgrading an iSCSI >> stream connection to an iSER connection I don't see why an iSER RDMA >> connection is in any more of a need for having a proxy socket than >> any other RDMA connection. >> > We don't upgrade iSCSI stream connection but start with an > RDMA connection right away. > The iSER code is going to be one of open-iscsi transports, > and open-iscsi opens connections using sockets from user > space, which is only natural with tcp. > The iSER RC connection should be open from kernel, so this > special socket gives us an opportunity to do so, while > leaving intact the entire mechanism of connection > establishment and user-kernel handover. > We don't really need to implement read/write primitives > because they are initiated either from within kernel > transport module itself or through a special user-kernel > interface bypassing the socket. > >> I really don't see the benefit of having a "socket" that is not truly >> integrated with the host stack. What socket attributes are being >> sought? And how is it unique to iSER as opposed to RDMA in general? >> > Perhaps it is plausible to implement a general-purpose > stack-integrated socket giving access to IB RC connections, > if this is what you mean. > But this was clearly out of scope for the iSER initiator. > We sought a solution to the immediate problem in open-iscsi. > So the main socket feature used here was a neat way to > delegate the IB connection establishment from user space to kernel.
I remain concerned that the use of a socket without full socket semantics will only lead to confusion. I also do not see how it can enable iSER/IP. For example, is this limited socket inheritable? If so how does it transfer ownership of the "connection" to the child? How will this work for iSER/IP as well as iSER/IB? Extending CMA to allow sending/receiving startup-phase messages does map naturally to iSER/IB, iSER/IP as well as plain iSCSI/TCP. It also avoids creating any unrealistic expectations, such as a general purpose write that can composite a message in multiple calls or that can be inherited by a child, that calling it a "socket" would imply to any experienced socket developer. _______________________________________________ openib-general mailing list [email protected] http://openib.org/mailman/listinfo/openib-general To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general
