On Tue, Sep 26, 2023 at 08:09:03PM +0800, Dust Li wrote: > On Tue, Sep 26, 2023 at 02:41:04PM +0300, Leon Romanovsky wrote: > >On Tue, Sep 26, 2023 at 01:14:04PM +0200, Alexandra Winter wrote: > >> > >> > >> On 26.09.23 12:48, Leon Romanovsky wrote: > >> > This patch made me wonder, why doesn't SMC use RDMA-CM like all other > >> > in-kernel ULPs which work over RDMA? > >> > > >> > Thanks > >> > >> The idea behind SMC is that it should look an feel to the applications > >> like TCP sockets. So for connection management it uses TCP over IP; > >> RDMA is just used for the data transfer. > > > >I think that it is not different from other ULPs. For example, RDS works > >over sockets and doesn't touch or reimplement GID management logic. > > I think the difference is SMC socket need to be compatible with TCP > socket, so it need a tcp socket to fallback when something is not working. > > If SMC works with rdmacm, it still need a fallback-to-tcp socket, and > the tcp connection has to be established for each SMC socket before the > SMC socket got established, that would make rdmacm meaningless. You still need to perform device-GID-route translations [1], which sounds to me very RDMA-CM. I'm not asking you to rewrite the code, but trying to get rationale behind reimplementing part of RDMA subsystem. Thanks [1] 24fb68111d45 ("net/smc: retrieve v2 gid from IB device") > > Best regards, > Dust > > > > >Thanks