Remote Direct Memory Access, or RDMA, allows a computer to access another computer's memory without interacting with either computer's operating system data buffers, thus increasing networking speed and throughput. iWARP is a protocol for implementing RDMA across Internet Protocol networks.
Microsoft* Windows* provides two forms of RDMA: Network Direct Kernel (NDK) and Network Direct (ND).
NDK allows Windows components (such as SMB Direct storage) to use iWARP features.
NDK functionality is included in the Intel base networking drivers and requires no additional features to be installed.
Check RDMA is enabled on the network interfaces
Get-NetAdapterRDMA
Verify that the network interfaces show as RDMA capable and multichannel is enabled
Get-SmbClientNetworkInterface
Network Direct is enabled in the OS
Get-NetOffloadGlobalSetting | Select NetworkDirect
Each RDMA-capable network interface should have a listener at port 445 (Windows Client OSs that support RDMA may not post listeners)
netstat.exe -xan | ? {$_ -match "445"}
If you want to allow NDK's RDMA feature across subnets, you will need to select "Enable iWARP routing across IP Subnets" on the iWARP Configuration Options screen during base driver installation (see Installation below).
In order to enable RDMA capability on virtual adapter(s) connected to a VMSwitch, *SRIOV (Single Root IO Virtualization) and *VMQ (Virtual Machine Queues) advanced properties must be enabled on each port driver. Under certain circumstances, these settings may be disabled by default. These options can be set manually in the advanced tab of the adapter properties dialog box, or the following Powershell commands may be used:
Set-NetAdapterAdvancedProperty -Name <nic_name> -RegistryKeyword *SRIOV -RegistryValue 1
Set-NetAdapterAdvancedProperty -Name <nic_name> -RegistryKeyword *VMQ -RegistryValue 1
This section outlines a recommended way to test iWARP RDMA for Intel Ethernet functionality and performance on Microsoft* Windows* operating systems.
Note that since SMB Direct is a storage workload, the performance of the benchmark may be limited to the speed of the storage device rather than the network interface being tested. Intel recommends using the fastest storage possible in order to test the true capabilities of the network device(s) under test.
Test instructions:
NDK Mode 3 allows kernel mode Windows components to use iWARP features inside Hyper-V guest partitions. To enable NDK mode 3 on an Intel Ethernet device, do the following:
New-VMSwitch -Name <switch_name> -NetAdapterName <device_name>
-EnableIov $true
Set-NetAdapterAdvancedProperty -Name <device_name> -RegistryKeyword RdmaMaxVfsEnabled -RegistryValue <Value: 0 – 32>
Get-NetAdapterRdma | Disable-NetAdapter
Get-NetAdapterRdma | Enable-NetAdapter
Add-VMNetworkAdapter -VMName <vm_name> -VMNetworkAdapterName <device_name> -SwitchName <switch_name>
Set-VMNetworkAdapterRdma -VMName <vm_name> -VMNetworkAdapterName <device_name> -RdmaWeight 100
Set-VMNetworkAdapter -VMName <vm_name> -VMNetworkAdapterName <device_name> -IovWeight 100
Set-NetAdapterAdvancedProperty -Name <device_name> -RegistryKeyword RdmaVfEnabled -RegistryValue 1
Get-NetAdapterRdma | Enable-NetAdapterRdma
ND allows user-mode applications to use iWARP features. If you plan to make use of iWARP features in user-mode applications you are developing, you will need to install the Network Direct (ND) feature when you install the drivers.
The Intel® Ethernet User Mode iWARP Provider is supported on Microsoft* Windows Server* 2012 R2 or later.
![]() |
NOTE:
|
Follow the steps below to install user-mode Network Direct (ND) iWARP features.
Copyright (C) 2018, Intel Corporation. All rights reserved.
Intel Corporation assumes no responsibility for errors or omissions in this document. Nor does Intel make any commitment to update the information contained herein.
Intel is a trademark of Intel Corporation in the U.S. and/or other countries.
*Other names and brands may be claimed as the property of others.
This software is furnished under license and may only be used or copied in accordance with the terms of the license. The information in this manual is furnished for informational use only, is subject to change without notice, and should not be construed as a commitment by Intel Corporation. Intel Corporation assumes no responsibility or liability for any errors or inaccuracies that may appear in this document or any software that may be provided in association with this document. Except as permitted by such license, no part of this document may be reproduced, stored in a retrieval system, or transmitted in any form or by any means without the express written consent of Intel Corporation.