<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns:p="urn:schemas-microsoft-com:office:powerpoint" xmlns:a="urn:schemas-microsoft-com:office:access" xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882" xmlns:s="uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882" xmlns:rs="urn:schemas-microsoft-com:rowset" xmlns:z="#RowsetSchema" xmlns:b="urn:schemas-microsoft-com:office:publisher" xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet" xmlns:c="urn:schemas-microsoft-com:office:component:spreadsheet" xmlns:odc="urn:schemas-microsoft-com:office:odc" xmlns:oa="urn:schemas-microsoft-com:office:activation" xmlns:html="http://www.w3.org/TR/REC-html40" xmlns:q="http://schemas.xmlsoap.org/soap/envelope/" xmlns:rtc="http://microsoft.com/officenet/conferencing" xmlns:D="DAV:" xmlns:Repl="http://schemas.microsoft.com/repl/" xmlns:mt="http://schemas.microsoft.com/sharepoint/soap/meetings/" xmlns:x2="http://schemas.microsoft.com/office/excel/2003/xml" xmlns:ppda="http://www.passport.com/NameSpace.xsd" xmlns:ois="http://schemas.microsoft.com/sharepoint/soap/ois/" xmlns:dir="http://schemas.microsoft.com/sharepoint/soap/directory/" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:dsp="http://schemas.microsoft.com/sharepoint/dsp" xmlns:udc="http://schemas.microsoft.com/data/udc" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:sub="http://schemas.microsoft.com/sharepoint/soap/2002/1/alerts/" xmlns:ec="http://www.w3.org/2001/04/xmlenc#" xmlns:sp="http://schemas.microsoft.com/sharepoint/" xmlns:sps="http://schemas.microsoft.com/sharepoint/soap/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:udcs="http://schemas.microsoft.com/data/udc/soap" xmlns:udcxf="http://schemas.microsoft.com/data/udc/xmlfile" xmlns:udcp2p="http://schemas.microsoft.com/data/udc/parttopart" xmlns:wf="http://schemas.microsoft.com/sharepoint/soap/workflow/" xmlns:dsss="http://schemas.microsoft.com/office/2006/digsig-setup" xmlns:dssi="http://schemas.microsoft.com/office/2006/digsig" xmlns:mdssi="http://schemas.openxmlformats.org/package/2006/digital-signature" xmlns:mver="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns:mrels="http://schemas.openxmlformats.org/package/2006/relationships" xmlns:spwp="http://microsoft.com/sharepoint/webpartpages" xmlns:ex12t="http://schemas.microsoft.com/exchange/services/2006/types" xmlns:ex12m="http://schemas.microsoft.com/exchange/services/2006/messages" xmlns:pptsl="http://schemas.microsoft.com/sharepoint/soap/SlideLibrary/" xmlns:spsl="http://microsoft.com/webservices/SharePointPortalServer/PublishedLinksService" xmlns:Z="urn:schemas-microsoft-com:" xmlns:st="" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=us-ascii"><meta name=Generator content="Microsoft Word 12 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
        {font-family:Wingdings;
        panose-1:5 0 0 0 0 0 0 0 0 0;}
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
pre
        {mso-style-priority:99;
        mso-style-link:"HTML Preformatted Char";
        margin:0in;
        margin-bottom:.0001pt;
        font-size:10.0pt;
        font-family:"Courier New";}
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
        {mso-style-priority:34;
        margin-top:0in;
        margin-right:0in;
        margin-bottom:0in;
        margin-left:.5in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";}
span.EmailStyle17
        {mso-style-type:personal-compose;
        font-family:"Calibri","sans-serif";
        color:windowtext;}
span.HTMLPreformattedChar
        {mso-style-name:"HTML Preformatted Char";
        mso-style-priority:99;
        mso-style-link:"HTML Preformatted";
        font-family:"Courier New";}
.MsoChpDefault
        {mso-style-type:export-only;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
/* List Definitions */
@list l0
        {mso-list-id:202443533;
        mso-list-type:hybrid;
        mso-list-template-ids:988058062 403243025 403243033 403243035 403243023 403243033 403243035 403243023 403243033 403243035;}
@list l0:level1
        {mso-level-text:"%1\)";
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l1
        {mso-list-id:260115234;
        mso-list-type:hybrid;
        mso-list-template-ids:894567018 1821546672 403243011 403243013 403243009 403243011 403243013 403243009 403243011 403243013;}
@list l1:level1
        {mso-level-number-format:bullet;
        mso-level-text:-;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:"Courier New";
        mso-fareast-font-family:"Times New Roman";}
ol
        {margin-bottom:0in;}
ul
        {margin-bottom:0in;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]--></head><body lang=EN-IE link=blue vlink=purple><div class=WordSection1><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'>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.<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'>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)<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'><o:p> </o:p></span></p><p class=MsoListParagraph style='text-indent:-.25in;mso-list:l0 level1 lfo1'><![if !supportLists]><span style='font-size:10.0pt;font-family:"Courier New"'><span style='mso-list:Ignore'>1)<span style='font:7.0pt "Times New Roman"'>  </span></span></span><![endif]><span style='font-size:10.0pt;font-family:"Courier New"'>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”.<o:p></o:p></span></p><p class=MsoListParagraph style='text-indent:-.25in;mso-list:l0 level1 lfo1'><![if !supportLists]><span style='font-size:10.0pt;font-family:"Courier New"'><span style='mso-list:Ignore'>2)<span style='font:7.0pt "Times New Roman"'>  </span></span></span><![endif]><span style='font-size:10.0pt;font-family:"Courier New"'>There is some alternate information available on MS website that refers to kRDMA, but it is not “found” in WDK.<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'>Thanks,<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'>Deepak Rawal<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'>I don't know if anyone responded to this, but in case not...<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'>><i> We are working on a project that involves both kernel and user mode code<o:p></o:p></i></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'>><i> communicating over Mellanox adapters (RoCE mode) on Windows Server 2012. We do<o:p></o:p></i></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'>><i> need to interoperate with Linux. This is for a commercial datacenter product.<o:p></o:p></i></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'>><i> <o:p></o:p></i></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'>><i> <o:p></o:p></i></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'>><i> <o:p></o:p></i></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'>><i> I see there are multiple APIs that can be used, and am wondering what the OFW<o:p></o:p></i></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'>><i> team is currently recommending for new code?<o:p></o:p></i></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'>><i> <o:p></o:p></i></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'>><i> <o:p></o:p></i></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'>><i> <o:p></o:p></i></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'>><i> It seems like the options include: NDv1, NDv2, IBAL, WinVerbs, libibverbs.<o:p></o:p></i></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'>><i> Compatibility with preexisting Linux code is useful, but having maximum<o:p></o:p></i></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'>><i> performance likely is more important. It seems like NDv1/NDv2 is officially<o:p></o:p></i></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'>><i> supported by Microsoft in user mode, and there currently is no officially<o:p></o:p></i></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'>><i> supported Microsoft kernel RDMA API.<o:p></o:p></i></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'>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.<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'>RoCE support comes directly from Mellanox, so you would need to ask them what APIs they will support.<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'>In addition to the APIs you list, there is a userspace version of the Linux libibverbs available on windows as part of WinOFED.<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Courier New"'>- Sean<o:p></o:p></span></p><p class=MsoNormal><o:p> </o:p></p></div></body></html>