[RFC PATCH 0/3] RDMA/smbdirect: introduce and use rdma_restrict_node_type()
Namjae Jeon
linkinjeon at kernel.org
Tue Feb 3 22:58:52 UTC 2026
On Thu, Jan 22, 2026 at 5:07 AM Stefan Metzmacher <metze at samba.org> wrote:
>
> Hi,
>
> for smbdirect it required to use different ports depending
> on the RDMA protocol. E.g. for iWarp 5445 is needed
> (as tcp port 445 already used by the raw tcp transport for SMB),
> while InfiniBand, RoCEv1 and RoCEv2 use port 445, as they
> use an independent port range (even for RoCEv2, which uses udp
> port 4791 itself).
>
> Currently ksmbd is not able to function correctly at
> all if the system has iWarp (RDMA_NODE_RNIC) interface(s)
> and any InfiniBand, RoCEv1 and/or RoCEv2 interface(s)
> at the same time.
>
> And cifs.ko uses 5445 with a fallback to 445, which
> means depending on the available interfaces, it tries
> 5445 in the RoCE range or may tries iWarp with 445
> as a fallback. This leads to strange error messages
> and strange network captures.
>
> To avoid these problems they will be able to
> use rdma_restrict_node_type(RDMA_NODE_RNIC) before
> trying port 5445 and rdma_restrict_node_type(RDMA_NODE_IB_CA)
> before trying port 445. It means we'll get early
> -ENODEV early from rdma_resolve_addr() without any
> network traffic and timeouts.
>
> This is marked as RFC as I want to get feedback
> if the rdma_restrict_node_type() function is acceptable
> for the RDMA layer. And because the current form of
> the smb patches are not tested, I only tested the
> rdma part with my branch the prepares IPPROTO_SMBDIRECT
> sockets.
>
> I'm not sure if this would be acceptable for 6.19
> in order to avoid the smb layer problems, if the
> RDMA layer change is only acceptable for 7.0 that's
> also fine.
>
> This is based on the following fix applied:
> smb: server: reset smb_direct_port = SMB_DIRECT_PORT_INFINIBAND on init
> https://lore.kernel.org/linux-cifs/20251208154919.934760-1-metze@samba.org/
> It's not yet in Linus' tree, so if this gets ready
> before it's merged we can squash it.
Acked-by: Namjae Jeon <linkinjeon at kernel.org>
Thanks!
>
> Stefan Metzmacher (3):
> RDMA/core: introduce rdma_restrict_node_type()
> smb: client: make use of rdma_restrict_node_type()
> smb: server: make use of rdma_restrict_node_type()
>
> drivers/infiniband/core/cma.c | 30 ++++++++
> drivers/infiniband/core/cma_priv.h | 1 +
> fs/smb/client/smbdirect.c | 26 +++++++
> fs/smb/server/transport_rdma.c | 108 +++++++++++++++++++++--------
> include/rdma/rdma_cm.h | 17 +++++
> 5 files changed, 154 insertions(+), 28 deletions(-)
>
> --
> 2.43.0
>
More information about the samba-technical
mailing list