Storage Protocols

Linux Kernel Upstream Release Notes v6.5

The Server Message Block (SMB) protocol is a network file sharing protocol implemented in Microsoft Windows. The set of message packets that defines a particular version of the protocol is called a dialect.

The Microsoft SMB protocol is a client-server implementation and consists of a set of data packets, each containing a request sent by the client or a response sent by the server.

SMB protocol is used on top of the TCP/IP protocol or other network protocols. Using the SMB protocol allows applications to access files or other resources on a remote server, to read, create, and update them. In addition, it enables communication with any server program that is set up to receive an SMB client request.

Verifying Network Adapter Configuration

Use the following PowerShell cmdlets to verify Network Direct is globally enabled and that you have NICs with the RDMA capability. The command must be ran on both the SMB server and the SMB client.


PS $ Get-NetOffloadGlobalSetting | Select NetworkDirect PS $ Get-NetAdapterRDMA PS $ Get-NetAdapterHardwareInfo

Verifying SMB Configuration

Use the following PowerShell cmdlets to verify SMB Multichannel is enabled, confirm the adapters are recognized by SMB and that their RDMA capability is properly identified.

  • On the SMB client, run the following PowerShell cmdlets:


    PS $ Get-SmbClientConfiguration | Select EnableMultichannel PS $ Get-SmbClientNetworkInterface

  • On the SMB server, run the following PowerShell cmdlets:

    Note: The NETSTAT command confirms if the File Server is listening on the RDMA interfaces.


    PS $ Get-SmbServerConfiguration | Select EnableMultichannel PS $ Get-SmbServerNetworkInterface PS $ netstat.exe -xan | ? {$_ -match "445"}

Verifying SMB Connection

  1. Copy the large file to create a new session with the SMB Server.

  2. Open a PowerShell window while the copy is ongoing.

  3. Verify the SMB Direct is working properly and that the correct SMB dialect is used.


    PS $ Get-SmbConnection PS $ Get-SmbMultichannelConnection PS $ netstat.exe -xan | ? {$_ -match "445"}


    If you have no activity while you run the commands above, you might get an empty list due to session expiration and absence current connections.

Verifying SMB Events that Confirm RDMA Connection

  1. Open a PowerShell window on the SMB client.

  2. Run the following cmdlets.

    Note: Any RDMA-related connection errors will be displayed as well.


    PS $ Get-WinEvent -LogName Microsoft-Windows-SMBClient/Operational | ? Message -match "RDMA"

© Copyright 2023, NVIDIA. Last updated on Sep 9, 2023.