On 25/08/2015 16:06, Achiad Shochat wrote: > On 8/25/2015 3:32 PM, Tom Talpey wrote: >> But I don't understand how it will work per-GID. What if the target >> node is RoCEv2 and on another subnet? How will it discover the remote's >> capability and establish the right protocol? How does the initiator >> select the protocol, if there is a choice? >> >> Another way of asking this question is, why is all this stuff in the >> driver, at the bottom of the stack? I think it should be in the >> rdmacm layer. >> >> Tom. >> > > Selection of the RoCE version to be used per connection and discovering > the RoCE versions supported by the target is up to the application. > > It is not done by the driver of course, neither by the kernel stack. > > The driver only exposes add/del_gid callbacks, used by the ib_core to > configure the device GID table entries (including RoCE version per > entry) based on netdev IPs configured in the system.
Let me add that when using RDMA CM, it is in charge of choosing the gid index for a connection, and needs to be aware of the different protocols. The patchset that includes the core changes for RoCE v2 [1] allows configuring the preferred protocol for each port. There is also a heuristic that selects RoCE v2 (which is routable) when the address resolution detects more than one hop to the destination. Regards, Haggai [1] http://www.spinics.net/lists/linux-rdma/msg28120.html -- To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html
