Winsock Direct (WSD) - any knowledge out there?

Associate
Joined
1 Dec 2005
Posts
803
So I'm playing around with Infiniband at the moment (although I don't actually have a cable to connect my two machines yet) and am acutely aware of the impending limitations of IPoIB, although I remain optimistic.

After reading through the OFED documents and what limited info I can find on the web, it seems like the Winsock Direct provider should offer a decent middle ground between IPoIB and SRP/RDMA. I've followed the instructions to make sure it's installed and enabled on both machines, and the documentation suggests the OS should take care of the rest (Server 2008 R2 and Windows 7 x64):

Winsock Direct (WSD) is Microsoft's proprietary protocol that predates SDP (Sockets Direct Protocol) for accelerating TCP/IP applications by using RDMA hardware. Microsoft had a significant role in defining the SDP protocol, hence SDP and WSD are remarkably similar, though unfortunately incompatible.

WSD is made up of two parts, the winsock direct switch and the winsock direct provider. The WSD switch is in the winsock DLL that ships in all editions of Windows Server 2008, and is responsible for routing socket traffic over either the regular TCP/IP stack, or offload it to a WSD provider. The WSD provider is a hardware specific DLL that implements connection management and data transfers over particular RDMA hardware.

The WSD Protocol seamlessly transports TCP data using Infiniband data packets in 'buffered' mode or Infiniband RDMA in 'direct' mode. Either way the user mode socket application sees no behavioral difference in the standard Internet Protocol socket it created other than reduced data transfer times and increased bandwidth.

The Windows OpenFabrics release includes a WSD provider library that has been extensively tested with Microsoft Windows Server 2008.

After following the instructions to install the provider my service provider list looks like this:

Code:
D:\OFED>installsp.exe -l
0000001001 - MSAFD Tcpip [TCP/IP]
0000001002 - MSAFD Tcpip [UDP/IP]
0000001003 - MSAFD Tcpip [RAW/IP]
0000001004 - MSAFD Tcpip [TCP/IPv6]
0000001005 - MSAFD Tcpip [UDP/IPv6]
0000001006 - MSAFD Tcpip [RAW/IPv6]
0000001007 - RSVP TCPv6 Service Provider
0000001008 - RSVP TCP Service Provider
0000001009 - RSVP UDPv6 Service Provider
0000001010 - RSVP UDP Service Provider
0000001011 - VMCI sockets DGRAM
0000001012 - VMCI sockets STREAM
0000001015 - OpenFabrics Network Direct Provider
0000001016 - OpenFabrics Winsock Direct for InfiniBand

I'm not really sure what to do with it now! Do I even need to do anything? It sounds like it should be completely transparent and the only way I'll know if it's working is if the transfer speeds increase.

If anyone's got any experience with Winsock and/or WSD do let me know - feeling quite out of my depth now :)
 
Back
Top Bottom