<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD><TITLE></TITLE>
<META content="text/html; charset=us-ascii" http-equiv=Content-Type>
<META name=GENERATOR content="MSHTML 8.00.6001.18783"></HEAD>
<BODY bgColor=#ffffff text=#000000>
<DIV dir=ltr align=left>
<HR tabIndex=-1>
<FONT size=2 face=Tahoma><B>From:</B> Sivaselvam Narayanasamy 
[mailto:sivaselvam.narayanasamy@oracle.com] <BR><B>Sent:</B> Tuesday, July 21, 
2009 11:36 AM<BR><B>To:</B> Smith, Stan<BR><B>Cc:</B> Prasanna Vv; 
ofw@lists.openfabrics.org; Sivaselvam Narayanasamy<BR><B>Subject:</B> RE: [ofw] 
choice between IBAL and winverbs<BR></FONT><BR></DIV>
<DIV></DIV>
<DIV><SPAN class=593542618-21072009><FONT color=#0000ff size=4 
face=Arial>Stan,</FONT></SPAN></DIV>
<DIV><SPAN class=593542618-21072009><FONT color=#0000ff size=4 
face=Arial></FONT></SPAN> </DIV>
<DIV><SPAN class=593542618-21072009><FONT color=#0000ff size=4 
face=Arial>Prasanna's question may be :  From a kernel mode driver, 
 which is the preferred route, to talk to the layers below 
:- </FONT></SPAN></DIV>
<DIV><SPAN class=593542618-21072009><FONT color=#0000ff size=4 
face=Arial></FONT></SPAN> </DIV>
<DIV><SPAN class=593542618-21072009><FONT color=#0000ff size=4 
face=Arial>a) through the winverbs.sys driver ( available in WinOF 2.1 
)  or </FONT></SPAN></DIV>
<DIV><SPAN class=593542618-21072009><FONT color=#0000ff size=4 face=Arial>b) 
through the IBAL kernel driver </FONT></SPAN></DIV>
<DIV><SPAN class=593542618-21072009><FONT color=#0000ff size=4 
face=Arial></FONT></SPAN> </DIV>
<DIV><SPAN class=593542618-21072009><FONT size=4><FONT face=Arial><FONT 
color=#0000ff>?<SPAN class=481140323-21072009><FONT 
size=2> </FONT></SPAN></FONT></FONT></FONT></SPAN></DIV>
<DIV><SPAN class=593542618-21072009><FONT size=4><FONT face=Arial><FONT 
color=#0000ff><SPAN 
class=481140323-21072009></SPAN></FONT></FONT></FONT></SPAN> </DIV>
<DIV><SPAN class=593542618-21072009><FONT face=Arial><SPAN 
class=481140323-21072009>I'm not a Windows driver or winverbs expert, Sean and 
Fab are the guys who wrote the code - guys please chime 
in.</SPAN></FONT></SPAN></DIV>
<DIV><SPAN class=593542618-21072009><FONT face=Arial><SPAN 
class=481140323-21072009></SPAN></FONT></SPAN> </DIV>
<DIV><SPAN class=593542618-21072009><FONT face=Arial><SPAN 
class=481140323-21072009>Kernel mode IB verbs clients in the WinOF stack 
use a direct call interface. The IPoIB driver requests an IBAL kernel interface 
based on a well-known GUID. IBAL returns an interface struct populated at 
runtime with IBAL function pointers from the ibal verbs driver (aka ibbus.sys) 
memory image. </SPAN></FONT></SPAN></DIV>
<DIV><SPAN class=593542618-21072009><FONT face=Arial><SPAN 
class=481140323-21072009></SPAN></FONT></SPAN> </DIV>
<DIV><SPAN class=593542618-21072009><FONT face=Arial><SPAN 
class=481140323-21072009>The ibbus.sys driver (an upper class filter driver 
for an InfiniBand Controller (aka HCA)) creates a DOS file/ IOCTL() 
interface so user-mode apps can access IBAL verbs functionality. 
</SPAN></FONT></SPAN></DIV>
<DIV><SPAN class=593542618-21072009><FONT face=Arial><SPAN 
class=481140323-21072009>The difference between user-mode IBAL and kernel mode 
IBAL is IOCTL() vs. direct-call interfaces.</SPAN></FONT></SPAN></DIV>
<DIV><SPAN class=593542618-21072009><FONT face=Arial><SPAN 
class=481140323-21072009>Other considerations:</SPAN></FONT></SPAN></DIV>
<DIV><SPAN class=593542618-21072009><FONT face=Arial><SPAN 
class=481140323-21072009>   Marshalling of 
arguments</SPAN></FONT></SPAN></DIV>
<DIV><SPAN class=593542618-21072009><FONT face=Arial><SPAN 
class=481140323-21072009>   accessibility of 
args</SPAN></FONT></SPAN></DIV>
<DIV><SPAN class=593542618-21072009><FONT face=Arial><SPAN 
class=481140323-21072009>      inputs -[direct access 
or copyin()].</SPAN></FONT></SPAN></DIV>
<DIV><SPAN class=593542618-21072009><FONT face=Arial><SPAN 
class=481140323-21072009>      outputs -  [direct 
access or copyout()].</SPAN></FONT></SPAN></DIV>
<DIV><SPAN class=593542618-21072009><FONT face=Arial><SPAN 
class=481140323-21072009></SPAN></FONT></SPAN> </DIV>
<DIV><SPAN class=593542618-21072009><FONT face=Arial><SPAN 
class=481140323-21072009>Winverbs does not export a kernel mode direct-call 
interface at this time; winverbs only exports an IOCTL() interface accessible 
only from user mode.</SPAN></FONT></SPAN></DIV>
<DIV><SPAN class=593542618-21072009><FONT face=Arial><SPAN 
class=481140323-21072009></SPAN></FONT></SPAN> </DIV>
<DIV><SPAN class=593542618-21072009><FONT face=Arial><SPAN 
class=481140323-21072009>The</SPAN></FONT></SPAN><FONT face=Arial><FONT 
color=#0000ff><FONT size=2><SPAN 
class=481140323-21072009> </SPAN></FONT></FONT><SPAN 
class=593542618-21072009><SPAN class=481140323-21072009> only kernel mode 
verbs interface choice at this time is to use IBAL.</SPAN></SPAN></FONT></DIV>
<DIV><FONT face=Arial><SPAN class=593542618-21072009><SPAN 
class=481140323-21072009></SPAN></SPAN></FONT> </DIV>
<DIV><FONT face=Arial><SPAN class=593542618-21072009><SPAN 
class=481140323-21072009>Hopefully this clears up any 
confusion.</SPAN></SPAN></FONT></DIV>
<DIV><FONT face=Arial><SPAN class=593542618-21072009><SPAN 
class=481140323-21072009></SPAN></SPAN></FONT> </DIV>
<DIV><FONT face=Arial><SPAN class=593542618-21072009><SPAN 
class=481140323-21072009>stan.</SPAN></SPAN></FONT></DIV>
<DIV><SPAN class=593542618-21072009><FONT color=#0000ff size=4 
face=Arial></FONT></SPAN> </DIV>
<DIV><SPAN class=593542618-21072009><FONT color=#0000ff size=4 
face=Arial>Thanks</FONT></SPAN></DIV>
<DIV><SPAN class=593542618-21072009><FONT color=#0000ff size=4 
face=Arial>Siva</FONT></SPAN></DIV>
<BLOCKQUOTE>
  <DIV dir=ltr class=OutlookMessageHeader align=left><FONT size=2 
  face=Tahoma>-----Original Message-----<BR><B>From:</B> 
  ofw-bounces@lists.openfabrics.org 
  [mailto:ofw-bounces@lists.openfabrics.org]<B>On Behalf Of </B>Smith, 
  Stan<BR><B>Sent:</B> Tuesday, July 21, 2009 10:52 PM<BR><B>To:</B> Prasanna 
  Vv; ofw@lists.openfabrics.org<BR><B>Subject:</B> RE: [ofw] choice between IBAL 
  and winverbs<BR><BR></FONT></DIV>
  <DIV dir=ltr align=left>
  <HR tabIndex=-1>
  <FONT size=2 face=Tahoma><B>From:</B> ofw-bounces@lists.openfabrics.org 
  [mailto:ofw-bounces@lists.openfabrics.org] <B>On Behalf Of </B>Prasanna 
  Vv<BR><B>Sent:</B> Tuesday, July 21, 2009 10:16 AM<BR><B>To:</B> 
  ofw@lists.openfabrics.org<BR><B>Subject:</B> Re: [ofw] choice between IBAL and 
  winverbs<BR></FONT><BR></DIV>
  <DIV></DIV>
  <DIV>Thanks Stan.<BR>For kernel mode IB  interface,  whether  
  winverbs-driver IOCTL can be used or IBAL is the only choice?<SPAN 
  class=075411717-21072009><FONT color=#0000ff size=2 
  face=Arial> </FONT></SPAN></DIV>
  <DIV><SPAN class=075411717-21072009></SPAN> </DIV>
  <DIV><SPAN class=075411717-21072009><FONT color=#0000ff size=2 
  face=Arial>Unfortunately I was not clear w.r.t. user-mode or kernel mode POV 
  (Point-Of-View).</FONT></SPAN></DIV>
  <DIV><SPAN class=075411717-21072009><FONT color=#0000ff size=2 face=Arial>A 
  kernel mode implementation of winverbs is not available today. The work is 
  being discussed and will be available in the WinOF 2.2 release (late 
  Q4'09/Q1'10).</FONT></SPAN></DIV>
  <DIV><SPAN class=075411717-21072009><FONT color=#0000ff size=2 
  face=Arial>Kernel mode winverbs will not be available in the upcoming 
  WinOF 2.1 release.</FONT></SPAN></DIV>
  <DIV><SPAN class=075411717-21072009></SPAN> </DIV>
  <DIV><SPAN class=075411717-21072009><FONT color=#0000ff size=2 
  face=Arial>stan.</FONT> </SPAN><BR><BR>Regards,<BR>Prasanna<BR><BR>Smith, 
  Stan wrote: </DIV>
  <BLOCKQUOTE 
  cite=mid:3F6F638B8D880340AB536D29CD4C1E194E149619@orsmsx501.amr.corp.intel.com 
  type="cite"><PRE wrap="">Prasanna Vv wrote:
  </PRE>
    <BLOCKQUOTE type="cite"><PRE wrap="">Hello All,

In WINOF 2.1, most of the ULPs are based on Winverbs, while IPoIB
driver continues to use IBAL .
    </PRE></BLOCKQUOTE><PRE wrap=""><!---->
Actually most of the ULPs are based on IBAL for historical reasons.
It's only newer DAPL providers (Socket-CM & rdma-CM) plus OFED diags which are using OFED compatibility (aka libibverbs/winverbs).
NetworkDirect continues to use the IBAL IF although there is work-in-progress to switch over to winverbs to take advantage of overlapped I/O ops.

  </PRE>
    <BLOCKQUOTE type="cite"><PRE wrap="">I wish to know if OFED will continue to support and enhance IBAL as
complimentary approach for Winverbs for IB verbs interface ?  Or IBAL
may be phased out ?
    </PRE></BLOCKQUOTE><PRE wrap=""><!---->
The IBAL interface will be supported well into the future, measured in years.
Under the covers, how the IBAL interface is implemented may change such that an IBAL function could transparently become a wrapper for a call into winverbs.
The 'BIG" deal with IBAL is how it implements PNP and how IPoIB and drivers rely on this implementation.
There are no current plans to change all drivers and IPoIB to use Microsoft PNP and remove this functionality from IBAL; although it would be an excellent idea (very large task). For the PNP reasons, IBAL will stick around for some time.

For future development, I would recommend the OFED compatibility layer (libibverbs/winverbs).

Stan.

  </PRE>
    <BLOCKQUOTE type="cite"><PRE wrap="">Thanks,
Prasanna

_______________________________________________
ofw mailing list
<A class=moz-txt-link-abbreviated href="mailto:ofw@lists.openfabrics.org">ofw@lists.openfabrics.org</A>
<A class=moz-txt-link-freetext href="http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ofw">http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ofw</A>
    </PRE></BLOCKQUOTE><PRE wrap=""><!---->
  </PRE></BLOCKQUOTE><BR></BLOCKQUOTE></BODY></HTML>