X-MimeOLE: Produced By Microsoft Exchange V6.5
Received: by onstor-exch02.onstor.net 
	id <01C76A81.9EBF6631@onstor-exch02.onstor.net>; Mon, 19 Mar 2007 16:52:15 -0700
MIME-Version: 1.0
Content-Type: multipart/alternative;
	boundary="----_=_NextPart_001_01C76A81.9EBF6631"
Content-class: urn:content-classes:message
Subject: RE: Cougar FC/SCSI design
Date: Mon, 19 Mar 2007 16:49:05 -0700
Message-ID: <BB375AF679D4A34E9CA8DFA650E2B04E02E40335@onstor-exch02.onstor.net>
In-Reply-To: <BB375AF679D4A34E9CA8DFA650E2B04E02E40329@onstor-exch02.onstor.net>
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
Thread-Topic: Cougar FC/SCSI design
Thread-Index: AcdqfzeKr0qlecjORgOqBlHxk+5NcgAALSGwAABHAsA=
References: <BB375AF679D4A34E9CA8DFA650E2B04E02E40303@onstor-exch02.onstor.net> <BB375AF679D4A34E9CA8DFA650E2B04E02E40329@onstor-exch02.onstor.net>
From: "Maxim Kozlovsky" <maxim.kozlovsky@onstor.com>
To: "Maxim Kozlovsky" <maxim.kozlovsky@onstor.com>,
	"Bill Nadzam" <bill.nadzam@onstor.com>,
	"dl-Cougar" <dl-Cougar@onstor.com>

This is a multi-part message in MIME format.

------_=_NextPart_001_01C76A81.9EBF6631
Content-Type: text/plain;
	charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

=20

The last sentence should read "move from this state to EVM_Q_STATE_PEND
as soon as eee_forwardPacket() is called".

=20

________________________________

From: Maxim Kozlovsky=20
Sent: Monday, March 19, 2007 4:46 PM
To: Bill Nadzam; dl-Cougar
Subject: RE: Cougar FC/SCSI design

=20

There is no need to use RMC to move the data between evm-server and fc.
eee_forwardPacket() works just fine as long as you specify correct
destination address, there are no transfer reliability issues as this is
the same memory space.=20

=20

The necessary change is to modify the handling of
EVM_Q_STATE_WAIT_TRANSMIT_COMPLETE state,  the evm queue element will
have to move to this state as soon as eee_forwardPacket() is called.=20

=20

________________________________

From: Bill Nadzam=20
Sent: Monday, March 19, 2007 4:35 PM
To: dl-Cougar
Subject: Cougar FC/SCSI design

=20

Preface:

=20

    This design spec is in free form for now. Will move into a formal
document ASAP.

=20

Information:

*	The Cougar Hardware platform forces the FCNIM to share CPU Cores
with FPNIM. One task which I am not sure how to do, is to create a
thread on the FPNIM. This "Thread" will be responsible for a single FC
Port, or QLogic FC Core. Remember the QLogic parts being used are Dual
core. Each core is a totally separate hardware part from the other. In
the simplest form Cougar will have four of these threads running. One
for each FC port or core. In theory these threads should be able to run
on any CPU core. In essence a simple approach to MP the operations now
done. Starting the thread will lock the resources associated with that
FC port.
*	The FCNIM does not seem to have any form of RMC? Is this true?
Its compiled in, but James K. tells me its not usable. RMC, or reliable
message system is used in the FCNIM today, and must be there for SSC
<to> FC communications.=20
*	Since the FCNIM requires the use of RMC. There will be a
requirement to get RMC onto the FPNIM for use by the FC thread. With RMC
is in place, communications from EVM-SERVER can be done using RMC
protocol. Using RMC to send data service requests to the FC thread.
Although this is not the best use of the our flat memory system, this
will give the ability to read/write through the machine.=20
*	The nice part about using this system, is nothing else need
change. All of the eDesc flags can be maintained. Only the transfer path
changes, and in this case, there is no real transfer. Just a simple move
of the data via RMC. The key is to get RMC up and usable with evm-server
<to/from> scsi. SCSI command responses will be via the accept session
created by the open.
*	Inside sm-evm-srvr/evm-msg.c routine evm_sendScsiMsg( ); also
evm_sendSbmScsiWriteMsg( ); can be changed to transport via RMC open
session.  It might be best to replace this file with a Cougar only
version of evm-msg-cougar.c.....

Better method:

*	Change the file system requests. Now all requests are either one
or eight kilobytes at a time. Each request is formed by a separate
descriptor. This needs to change. The FC hardware can run at a higher
efficiency when larger block transfers can take place. This is not to
say that all read/write operations be done in a single command. This is
not possible either. The better approach would be to request something
close to thirty two kilobytes at a time when needed. Maybe having some
knobs to test with. A push off system is also good, where the first
request for sequential data starts out as a set of commands.=20
*	The best use of memory for reading to or writing from is
contiguous space, This is not practical, so if needed the use of eight
kilobyte chunks can still be used. A list of data pointers, and data
lengths would be an excellent system, as that can be copied directly
into the QLogic control blocks.

		The Qlogic IOCB "Input Output Control Block" use a
simple structure for data pointers.

		    {

		        uint64    pointerToDataBuffer;

		        uint32    Data_Length;

		    };

This is a working document:

*	First cut at getting data through to the FC.
	March 19, 2007


------_=_NextPart_001_01C76A81.9EBF6631
Content-Type: text/html;
	charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

<html xmlns:v=3D"urn:schemas-microsoft-com:vml" =
xmlns:o=3D"urn:schemas-microsoft-com:office:office" =
xmlns:w=3D"urn:schemas-microsoft-com:office:word" =
xmlns=3D"http://www.w3.org/TR/REC-html40">

<head>
<meta http-equiv=3DContent-Type content=3D"text/html; =
charset=3Dus-ascii">
<meta name=3DGenerator content=3D"Microsoft Word 11 (filtered medium)">
<!--[if !mso]>
<style>
v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style>
<![endif]-->
<style>
<!--
 /* Font Definitions */
 @font-face
	{font-family:Tahoma;
	panose-1:2 11 6 4 3 5 4 4 2 4;}
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
	{margin:0in;
	margin-bottom:.0001pt;
	font-size:12.0pt;
	font-family:"Times New Roman";}
a:link, span.MsoHyperlink
	{color:blue;
	text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
	{color:purple;
	text-decoration:underline;}
span.EmailStyle17
	{mso-style-type:personal;
	font-family:Arial;
	color:navy;}
span.EmailStyle18
	{mso-style-type:personal-reply;
	font-family:Arial;
	color:navy;}
@page Section1
	{size:8.5in 11.0in;
	margin:1.0in 1.25in 1.0in 1.25in;}
div.Section1
	{page:Section1;}
 /* List Definitions */
 @list l0
	{mso-list-id:98916981;
	mso-list-template-ids:-304697620;}
@list l0:level1
	{mso-level-number-format:bullet;
	mso-level-text:\F0B7;
	mso-level-tab-stop:.5in;
	mso-level-number-position:left;
	text-indent:-.25in;
	mso-ansi-font-size:10.0pt;
	font-family:Symbol;}
@list l1
	{mso-list-id:130246104;
	mso-list-template-ids:-1786639082;}
@list l1:level1
	{mso-level-number-format:bullet;
	mso-level-text:\F0B7;
	mso-level-tab-stop:.5in;
	mso-level-number-position:left;
	text-indent:-.25in;
	mso-ansi-font-size:10.0pt;
	font-family:Symbol;}
@list l2
	{mso-list-id:252515156;
	mso-list-template-ids:1709233260;}
@list l2:level1
	{mso-level-number-format:bullet;
	mso-level-text:\F0B7;
	mso-level-tab-stop:.5in;
	mso-level-number-position:left;
	text-indent:-.25in;
	mso-ansi-font-size:10.0pt;
	font-family:Symbol;}
@list l2:level2
	{mso-level-tab-stop:1.0in;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l2:level3
	{mso-level-tab-stop:1.5in;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l2:level4
	{mso-level-tab-stop:2.0in;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l2:level5
	{mso-level-tab-stop:2.5in;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l2:level6
	{mso-level-tab-stop:3.0in;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l2:level7
	{mso-level-tab-stop:3.5in;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l2:level8
	{mso-level-tab-stop:4.0in;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l2:level9
	{mso-level-tab-stop:4.5in;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l3
	{mso-list-id:1141843722;
	mso-list-template-ids:-554140792;}
@list l3:level1
	{mso-level-number-format:bullet;
	mso-level-text:\F0B7;
	mso-level-tab-stop:.5in;
	mso-level-number-position:left;
	text-indent:-.25in;
	mso-ansi-font-size:10.0pt;
	font-family:Symbol;}
@list l3:level2
	{mso-level-tab-stop:1.0in;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l3:level3
	{mso-level-tab-stop:1.5in;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l3:level4
	{mso-level-tab-stop:2.0in;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l3:level5
	{mso-level-tab-stop:2.5in;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l3:level6
	{mso-level-tab-stop:3.0in;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l3:level7
	{mso-level-tab-stop:3.5in;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l3:level8
	{mso-level-tab-stop:4.0in;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l3:level9
	{mso-level-tab-stop:4.5in;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l4
	{mso-list-id:1255674352;
	mso-list-template-ids:-1496783488;}
@list l4:level1
	{mso-level-number-format:bullet;
	mso-level-text:\F0B7;
	mso-level-tab-stop:.5in;
	mso-level-number-position:left;
	text-indent:-.25in;
	mso-ansi-font-size:10.0pt;
	font-family:Symbol;}
@list l5
	{mso-list-id:1652826150;
	mso-list-template-ids:-931352550;}
@list l5:level1
	{mso-level-number-format:bullet;
	mso-level-text:\F0B7;
	mso-level-tab-stop:.5in;
	mso-level-number-position:left;
	text-indent:-.25in;
	mso-ansi-font-size:10.0pt;
	font-family:Symbol;}
@list l5:level2
	{mso-level-tab-stop:1.0in;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l5:level3
	{mso-level-tab-stop:1.5in;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l5:level4
	{mso-level-tab-stop:2.0in;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l5:level5
	{mso-level-tab-stop:2.5in;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l5:level6
	{mso-level-tab-stop:3.0in;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l5:level7
	{mso-level-tab-stop:3.5in;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l5:level8
	{mso-level-tab-stop:4.0in;
	mso-level-number-position:left;
	text-indent:-.25in;}
@list l5:level9
	{mso-level-tab-stop:4.5in;
	mso-level-number-position:left;
	text-indent:-.25in;}
ol
	{margin-bottom:0in;}
ul
	{margin-bottom:0in;}
-->
</style>
<!--[if gte mso 9]><xml>
 <o:shapedefaults v:ext=3D"edit" spidmax=3D"1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
 <o:shapelayout v:ext=3D"edit">
  <o:idmap v:ext=3D"edit" data=3D"1" />
 </o:shapelayout></xml><![endif]-->
</head>

<body lang=3DEN-US link=3Dblue vlink=3Dpurple>

<div class=3DSection1>

<p class=3DMsoNormal><font size=3D2 color=3Dnavy face=3DArial><span =
style=3D'font-size:
10.0pt;font-family:Arial;color:navy'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 color=3Dnavy face=3DArial><span =
style=3D'font-size:
10.0pt;font-family:Arial;color:navy'>The last sentence should read =
&#8220;move
from this state to EVM_Q_STATE_PEND as soon as eee_forwardPacket() is =
called&#8221;.<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 color=3Dnavy face=3DArial><span =
style=3D'font-size:
10.0pt;font-family:Arial;color:navy'><o:p>&nbsp;</o:p></span></font></p>

<div>

<div class=3DMsoNormal align=3Dcenter style=3D'text-align:center'><font =
size=3D3
face=3D"Times New Roman"><span style=3D'font-size:12.0pt'>

<hr size=3D2 width=3D"100%" align=3Dcenter tabindex=3D-1>

</span></font></div>

<p class=3DMsoNormal><b><font size=3D2 face=3DTahoma><span =
style=3D'font-size:10.0pt;
font-family:Tahoma;font-weight:bold'>From:</span></font></b><font =
size=3D2
face=3DTahoma><span style=3D'font-size:10.0pt;font-family:Tahoma'> Maxim =
Kozlovsky <br>
<b><span style=3D'font-weight:bold'>Sent:</span></b> Monday, March 19, =
2007 4:46
PM<br>
<b><span style=3D'font-weight:bold'>To:</span></b> Bill Nadzam; =
dl-Cougar<br>
<b><span style=3D'font-weight:bold'>Subject:</span></b> RE: Cougar =
FC/SCSI design</span></font><o:p></o:p></p>

</div>

<p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span =
style=3D'font-size:
12.0pt'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 color=3Dnavy face=3DArial><span =
style=3D'font-size:
10.0pt;font-family:Arial;color:navy'>There is no need to use RMC to move =
the
data between evm-server and fc. eee_forwardPacket() works just fine as =
long as
you specify correct destination address, there are no transfer =
reliability
issues as this is the same memory space. <o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 color=3Dnavy face=3DArial><span =
style=3D'font-size:
10.0pt;font-family:Arial;color:navy'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 color=3Dnavy face=3DArial><span =
style=3D'font-size:
10.0pt;font-family:Arial;color:navy'>The necessary change is to modify =
the
handling of EVM_Q_STATE_WAIT_TRANSMIT_COMPLETE state, &nbsp;the evm =
queue
element will have to move to this state as soon as eee_forwardPacket() =
is
called. <o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D2 color=3Dnavy face=3DArial><span =
style=3D'font-size:
10.0pt;font-family:Arial;color:navy'><o:p>&nbsp;</o:p></span></font></p>

<div>

<div class=3DMsoNormal align=3Dcenter style=3D'text-align:center'><font =
size=3D3
face=3D"Times New Roman"><span style=3D'font-size:12.0pt'>

<hr size=3D2 width=3D"100%" align=3Dcenter tabindex=3D-1>

</span></font></div>

<p class=3DMsoNormal><b><font size=3D2 face=3DTahoma><span =
style=3D'font-size:10.0pt;
font-family:Tahoma;font-weight:bold'>From:</span></font></b><font =
size=3D2
face=3DTahoma><span style=3D'font-size:10.0pt;font-family:Tahoma'> Bill =
Nadzam <br>
<b><span style=3D'font-weight:bold'>Sent:</span></b> Monday, March 19, =
2007 4:35
PM<br>
<b><span style=3D'font-weight:bold'>To:</span></b> dl-Cougar<br>
<b><span style=3D'font-weight:bold'>Subject:</span></b> Cougar FC/SCSI =
design</span></font><o:p></o:p></p>

</div>

<p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span =
style=3D'font-size:
12.0pt'><o:p>&nbsp;</o:p></span></font></p>

<div>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>Preface:</span></font><o:p></o:p></p>

</div>

<div>

<p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span =
style=3D'font-size:
12.0pt'>&nbsp;<o:p></o:p></span></font></p>

</div>

<div>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>&nbsp;&nbsp;&nbsp; This design spec is in free form =
for now.
Will move into a formal document ASAP.</span></font><o:p></o:p></p>

</div>

<div>

<p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span =
style=3D'font-size:
12.0pt'>&nbsp;<o:p></o:p></span></font></p>

</div>

<div>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>Information:</span></font><o:p></o:p></p>

</div>

<ul type=3Ddisc>
 <li class=3DMsoNormal =
style=3D'mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
     mso-list:l5 level1 lfo3'><font size=3D2 face=3DArial><span =
style=3D'font-size:
     10.0pt;font-family:Arial'>The Cougar Hardware platform forces the =
FCNIM to
     share CPU Cores with FPNIM. One task which I am not sure how to do, =
is to
     create a thread on the FPNIM. This &quot;Thread&quot; will be =
responsible
     for a single FC Port, or QLogic FC Core. Remember the QLogic parts =
being
     used are Dual core. Each core is a totally separate hardware part =
from the
     other. In the simplest form Cougar will have four of these threads
     running. One for each FC port or core. In theory these threads =
should be
     able to run on any CPU core. In essence a simple approach to MP the
     operations now done. Starting the thread will lock the resources
     associated with that FC port.</span></font><o:p></o:p></li>
 <li class=3DMsoNormal =
style=3D'mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
     mso-list:l5 level1 lfo3'><font size=3D2 face=3DArial><span =
style=3D'font-size:
     10.0pt;font-family:Arial'>The FCNIM does not seem to have any form =
of RMC?
     Is this true? Its compiled in, but James K.&nbsp;tells me its not =
usable.
     RMC, or reliable message system is used in the FCNIM today, and =
must be
     there for SSC &lt;to&gt; FC communications. =
</span></font><o:p></o:p></li>
 <li class=3DMsoNormal =
style=3D'mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
     mso-list:l5 level1 lfo3'><font size=3D2 face=3DArial><span =
style=3D'font-size:
     10.0pt;font-family:Arial'>Since the FCNIM requires the use of RMC. =
There
     will be a requirement to get RMC onto the FPNIM for use by the FC =
thread.
     With RMC is in place, communications from EVM-SERVER can be done =
using RMC
     protocol. Using RMC to send data service requests to the FC thread.
     Although this is not the best use of the our flat memory system, =
this
     will&nbsp;give the ability to read/write through the machine. =
</span></font><o:p></o:p></li>
 <li class=3DMsoNormal =
style=3D'mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
     mso-list:l5 level1 lfo3'><font size=3D2 face=3DArial><span =
style=3D'font-size:
     10.0pt;font-family:Arial'>The nice part about using this system, is
     nothing else need change. All of the eDesc flags can be maintained. =
Only
     the transfer path changes, and in this case, there is no real =
transfer.
     Just a simple move of the data via RMC. The key is to get RMC up =
and
     usable with evm-server &lt;to/from&gt; scsi. SCSI command responses =
will
     be via the accept session created by the =
open.</span></font><o:p></o:p></li>
 <li class=3DMsoNormal =
style=3D'mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
     mso-list:l5 level1 lfo3'><font size=3D2 face=3DArial><span =
style=3D'font-size:
     10.0pt;font-family:Arial'>Inside sm-evm-srvr/evm-msg.c routine
     evm_sendScsiMsg( ); also evm_sendSbmScsiWriteMsg( ); can be changed =
to transport
     via RMC open session.&nbsp; It might be best to replace this file =
with a
     Cougar only version of =
evm-msg-cougar.c.....</span></font><o:p></o:p></li>
</ul>

<div>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>Better method:</span></font><o:p></o:p></p>

</div>

<ul type=3Ddisc>
 <li class=3DMsoNormal =
style=3D'mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
     mso-list:l3 level1 lfo6'><font size=3D2 face=3DArial><span =
style=3D'font-size:
     10.0pt;font-family:Arial'>Change the file system requests. Now all
     requests are either one or eight kilobytes at a time. Each request =
is
     formed by a separate descriptor. This needs to change. The FC =
hardware can
     run at a higher efficiency when larger block transfers can take =
place.
     This is not to say that all read/write operations be done in a =
single
     command. This is not possible either. The better approach would be =
to
     request something close to thirty two kilobytes at a time when =
needed.
     Maybe having some knobs to test with. A push off system is also =
good,
     where the first request for sequential data starts out as a set of
     commands. </span></font><o:p></o:p></li>
 <li class=3DMsoNormal =
style=3D'mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
     mso-list:l3 level1 lfo6'><font size=3D2 face=3DArial><span =
style=3D'font-size:
     10.0pt;font-family:Arial'>The best use of memory for reading to or =
writing
     from is contiguous space, This is not practical, so if needed the =
use of
     eight kilobyte chunks can still be used. A list of data pointers, =
and data
     lengths would be an excellent system, as that can be copied =
directly into the
     QLogic control blocks.</span></font><o:p></o:p></li>
</ul>

<blockquote =
style=3D'margin-top:5.0pt;margin-right:0in;margin-bottom:5.0pt'>

<blockquote =
style=3D'margin-top:5.0pt;margin-right:0in;margin-bottom:5.0pt'>

<div>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>The Qlogic IOCB &quot;Input Output Control =
Block&quot; use a
simple structure for data pointers.</span></font><o:p></o:p></p>

</div>

<div>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>&nbsp;&nbsp;&nbsp; {</span></font><o:p></o:p></p>

</div>

<div>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
uint64&nbsp;&nbsp;&nbsp; =
pointerToDataBuffer;</span></font><o:p></o:p></p>

</div>

<div>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
uint32&nbsp;&nbsp;&nbsp; Data_Length;</span></font><o:p></o:p></p>

</div>

<div>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>&nbsp;&nbsp;&nbsp; };</span></font><o:p></o:p></p>

</div>

</blockquote>

</blockquote>

<div>

<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
style=3D'font-size:10.0pt;
font-family:Arial'>This is a working =
document:</span></font><o:p></o:p></p>

</div>

<ul type=3Ddisc>
 <li class=3DMsoNormal =
style=3D'mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
     mso-list:l2 level1 lfo9'><font size=3D2 face=3DArial><span =
style=3D'font-size:
     10.0pt;font-family:Arial'>First cut at getting data through to the =
FC.<br>
     March 19, 2007</span></font><o:p></o:p></li>
</ul>

</div>

</body>

</html>

------_=_NextPart_001_01C76A81.9EBF6631--
