Discussion:
[ofw] Current recommended APIs for kernel and user
Deepak Rawal
2013-06-15 01:24:07 UTC
Permalink
For user mode API, there are several options as indicated. However, there is NO kernel API available. It would be very useful if someone could comment on what is possible / available for Windows 2012 as well as other (newer and older) version of windows.

It would be greatly appreciated if some guidance on kernel API, even as possibility, is indicated by the team (e.g. if any members use kernel RDMA for their solution and plan to continue to use it, what plan they recommend)


1) MS has published preliminary info on NDKPI interface (part of NDIS extension) which can be used by providers and consumers, but consumer interface is "closed".

2) There is some alternate information available on MS website that refers to kRDMA, but it is not "found" in WDK.

Thanks,
Deepak Rawal

I don't know if anyone responded to this, but in case not...
We are working on a project that involves both kernel and user mode code
communicating over Mellanox adapters (RoCE mode) on Windows Server 2012. We do
need to interoperate with Linux. This is for a commercial datacenter product.
I see there are multiple APIs that can be used, and am wondering what the OFW
team is currently recommending for new code?
It seems like the options include: NDv1, NDv2, IBAL, WinVerbs, libibverbs.
Compatibility with preexisting Linux code is useful, but having maximum
performance likely is more important. It seems like NDv1/NDv2 is officially
supported by Microsoft in user mode, and there currently is no officially
supported Microsoft kernel RDMA API.
ND is the official API defined by MS. I believe that there's a kernel ND API in Server 2012, but someone from MS will need to confirm.

RoCE support comes directly from Mellanox, so you would need to ask them what APIs they will support.

In addition to the APIs you list, there is a userspace version of the Linux libibverbs available on windows as part of WinOFED.

- Sean
Smith, Stan
2013-06-15 01:37:55 UTC
Permalink
From: ofw-***@lists.openfabrics.org [mailto:ofw-***@lists.openfabrics.org] On Behalf Of Deepak Rawal
Sent: Friday, June 14, 2013 6:24 PM
To: ***@lists.openfabrics.org
Subject: [ofw] Current recommended APIs for kernel and user

For user mode API, there are several options as indicated. However, there is NO kernel API available. It would be very useful if someone could comment on what is possible / available for Windows 2012 as well as other (newer and older) version of windows.

As stated before, MS embraces NetworkDirect API for user & kernel mode; talk to MS about NDKPI consumer interface as it is not publically released.

winOFED / IBAL has a kernel API utilized by the winOFED and Mellanox IPoIB drivers.
Since the Mellanox stack and winOFED are derived from the same code base, you should talk with Mellanox about their plans for supporting kernel-mode IBAL and user-mode IBAL along with user-mode ibverbs support (Linux verbs compat).

It would be greatly appreciated if some guidance on kernel API, even as possibility, is indicated by the team (e.g. if any members use kernel RDMA for their solution and plan to continue to use it, what plan they recommend)


1) MS has published preliminary info on NDKPI interface (part of NDIS extension) which can be used by providers and consumers, but consumer interface is "closed".

2) There is some alternate information available on MS website that refers to kRDMA, but it is not "found" in WDK.

Thanks,
Deepak Rawal

I don't know if anyone responded to this, but in case not...
We are working on a project that involves both kernel and user mode code
communicating over Mellanox adapters (RoCE mode) on Windows Server 2012. We do
need to interoperate with Linux. This is for a commercial datacenter product.
I see there are multiple APIs that can be used, and am wondering what the OFW
team is currently recommending for new code?
It seems like the options include: NDv1, NDv2, IBAL, WinVerbs, libibverbs.
Compatibility with preexisting Linux code is useful, but having maximum
performance likely is more important. It seems like NDv1/NDv2 is officially
supported by Microsoft in user mode, and there currently is no officially
supported Microsoft kernel RDMA API.
ND is the official API defined by MS. I believe that there's a kernel ND API in Server 2012, but someone from MS will need to confirm.

RoCE support comes directly from Mellanox, so you would need to ask them what APIs they will support.

In addition to the APIs you list, there is a userspace version of the Linux libibverbs available on windows as part of WinOFED.

- Sean

Loading...