<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=us-ascii">
<META NAME="Generator" CONTENT="MS Exchange Server version 5.5.2654.89">
<TITLE>RE: [openib-general] mthca FMR correctness (and memory windows)</TITLE>
</HEAD>
<BODY>
<BR>
<BR>

<P><FONT SIZE=2>> -----Original Message-----</FONT>
<BR><FONT SIZE=2>> From: Talpey, Thomas [<A HREF="mailto:Thomas.Talpey@netapp.com">mailto:Thomas.Talpey@netapp.com</A>]</FONT>
<BR><FONT SIZE=2>> Sent: Monday, March 20, 2006 11:19 PM</FONT>
<BR><FONT SIZE=2>> To: Diego Crupnicoff; Roland Dreier</FONT>
<BR><FONT SIZE=2>> Cc: openib-general@openib.org</FONT>
<BR><FONT SIZE=2>> Subject: RE: [openib-general] mthca FMR correctness (and memory windows)</FONT>
<BR><FONT SIZE=2>> </FONT>
<BR><FONT SIZE=2>> At 08:42 PM 3/20/2006, Diego Crupnicoff wrote:</FONT>
<BR><FONT SIZE=2>> >> If I can snoop or guess rkeys (not a huge challenge with 32 bits), and</FONT>
<BR><FONT SIZE=2>> >> if I can use them on an arbitrary queuepair, then I can handily peek</FONT>
<BR><FONT SIZE=2>> and</FONT>
<BR><FONT SIZE=2>> >> poke at memory that does not belong to me.</FONT>
<BR><FONT SIZE=2>> ></FONT>
<BR><FONT SIZE=2>> >No. You can't get to the Window from an arbitrary QP. Only from those QPs</FONT>
<BR><FONT SIZE=2>> that belong to the same PD.</FONT>
<BR><FONT SIZE=2>> </FONT>
<BR><FONT SIZE=2>> </FONT>
<BR><FONT SIZE=2>> Oh yeah, I have to guess the PD too.</FONT>
</P>

<P><FONT SIZE=2>I do not think you can effectively guess a PD. PD is a privileged field that gets set at QP creation time (as opposed to rkeys that are postwqe input modifiers). The side exposing the memory has to "agree" to open a QP on a PD in order to make windows bound to that PD accessible through it.</FONT></P>

<P><FONT SIZE=2>> </FONT>
<BR><FONT SIZE=2>> >> For this reason, iWARP requires its steering tags to be scoped to a</FONT>
<BR><FONT SIZE=2>> single</FONT>
<BR><FONT SIZE=2>> >> connection. This leverages the IP security model and provides</FONT>
<BR><FONT SIZE=2>> correctness.</FONT>
<BR><FONT SIZE=2>> >></FONT>
<BR><FONT SIZE=2>> >> It is true that IB implementations generally don't do this. They</FONT>
<BR><FONT SIZE=2>> should.</FONT>
<BR><FONT SIZE=2>> ></FONT>
<BR><FONT SIZE=2>> >IB allows the 2 flavors (PD bound Windows aka type 1, and QP bound</FONT>
<BR><FONT SIZE=2>> Windows aka type 2).</FONT>
<BR><FONT SIZE=2>> </FONT>
<BR><FONT SIZE=2>> Does mthca? I thought it's all type 1.</FONT>
</P>

<P><FONT SIZE=2>As noted before, currently mthca does not support memory windows at all.</FONT>
</P>

<P><FONT SIZE=2>> </FONT>
<BR><FONT SIZE=2>> Tom.</FONT>
</P>

</BODY>
</HTML>