<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML xmlns="http://www.w3.org/TR/REC-html40" xmlns:o =
"urn:schemas-microsoft-com:office:office" xmlns:w =
"urn:schemas-microsoft-com:office:word"><HEAD>
<META http-equiv=Content-Type content="text/html; charset=us-ascii">
<META content="MSHTML 6.00.2900.3354" name=GENERATOR>
<STYLE>@font-face {
font-family: Wingdings;
}
@page Section1 {size: 8.5in 11.0in; margin: 1.0in 1.25in 1.0in 1.25in; }
P.MsoNormal {
FONT-SIZE: 12pt; MARGIN: 0in 0in 0pt; FONT-FAMILY: "Times New Roman"
}
LI.MsoNormal {
FONT-SIZE: 12pt; MARGIN: 0in 0in 0pt; FONT-FAMILY: "Times New Roman"
}
DIV.MsoNormal {
FONT-SIZE: 12pt; MARGIN: 0in 0in 0pt; FONT-FAMILY: "Times New Roman"
}
A:link {
COLOR: blue; TEXT-DECORATION: underline
}
SPAN.MsoHyperlink {
COLOR: blue; TEXT-DECORATION: underline
}
A:visited {
COLOR: purple; TEXT-DECORATION: underline
}
SPAN.MsoHyperlinkFollowed {
COLOR: purple; TEXT-DECORATION: underline
}
SPAN.EmailStyle17 {
FONT-WEIGHT: normal; COLOR: windowtext; FONT-STYLE: normal; FONT-FAMILY: Arial; TEXT-DECORATION: none; mso-style-type: personal-compose
}
DIV.Section1 {
page: Section1
}
OL {
MARGIN-BOTTOM: 0in
}
UL {
MARGIN-BOTTOM: 0in
}
</STYLE>
</HEAD>
<BODY lang=EN-US vLink=purple link=blue>
<DIV dir=ltr align=left><SPAN class=665392216-21082008><FONT face=Arial
color=#0000ff size=2>Anh,</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=665392216-21082008><FONT face=Arial
color=#0000ff size=2>From your examples ... these are the places
where appropriate <STRONG>physical address</STRONG> is taken from
virtual.</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=665392216-21082008><FONT face=Arial
color=#0000ff size=2>preparing send WR.</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=665392216-21082008><FONT face=Arial
color=#0000ff size=2>....</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=665392216-21082008><FONT face=Arial><SPAN
style="COLOR: #010001">p_desc</SPAN>-><FONT color=#010001><SPAN
style="COLOR: #010001">local_ds</SPAN></FONT>[1].<FONT color=#010001><SPAN
style="COLOR: #010001">vaddr</SPAN></FONT> = <SPAN style="COLOR: #010001"><FONT
color=#0000ff><STRONG>cl_get_physaddr</STRONG></FONT></SPAN>( <FONT
color=#010001><SPAN style="COLOR: #010001">p_ib_arp</SPAN></FONT>
);<o:p></o:p></FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=665392216-21082008><FONT face=Arial
color=#0000ff size=2>.....</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=665392216-21082008><FONT face=Arial
color=#0000ff size=2></FONT></SPAN> </DIV>
<DIV dir=ltr align=left><SPAN class=665392216-21082008>
<P class=MsoNormal><FONT face=Arial size=2><SPAN
style="FONT-SIZE: 11pt; FONT-FAMILY: Arial"><FONT color=green><SPAN
style="COLOR: green">/* Setup the first local data segment (used for the IPoIB
header). */<o:p></o:p></SPAN></FONT></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN
style="FONT-SIZE: 11pt; FONT-FAMILY: Arial"><FONT color=#010001><SPAN
style="COLOR: #010001">p_desc</SPAN></FONT>-><FONT color=#010001><SPAN
style="COLOR: #010001">local_ds</SPAN></FONT>[0].<FONT color=#010001><SPAN
style="COLOR: #010001">vaddr</SPAN></FONT> = <SPAN
style="COLOR: #010001"><STRONG><FONT
color=#0000ff>cl_get_physaddr</FONT></STRONG></SPAN>( &<B><FONT
color=red><SPAN
style="FONT-WEIGHT: bold; COLOR: red">p_port->hdr[hdr_idx]</SPAN></FONT></B>
);<o:p></o:p></SPAN></FONT></P></SPAN></DIV>
<DIV><FONT face=Arial></FONT> </DIV>
<DIV><SPAN class=665392216-21082008><FONT face=Arial color=#0000ff
size=2>Thanks,</FONT></SPAN></DIV>
<DIV><SPAN class=665392216-21082008><FONT face=Arial color=#0000ff
size=2>Alex</FONT></SPAN></DIV>
<DIV><BR></DIV>
<BLOCKQUOTE dir=ltr
style="PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: #0000ff 2px solid; MARGIN-RIGHT: 0px">
<DIV class=OutlookMessageHeader lang=en-us dir=ltr align=left>
<HR tabIndex=-1>
<FONT face=Tahoma size=2><B>From:</B> Anh Duong <BR><B>Sent:</B> Thursday,
August 21, 2008 10:58 AM<BR><B>To:</B> ofw@lists.openfabrics.org<BR><B>Cc:</B>
Stan C. Smith; John Russo; ftillier@windows.microsoft.com; Tzachi Dar; Alex
Estrin; Usha Srinivasan<BR><B>Subject:</B> Possible IPoIB DMA
problems<BR></FONT><BR></DIV>
<DIV></DIV>
<DIV class=Section1>
<P class=MsoNormal><FONT face=Arial size=2><SPAN
style="FONT-SIZE: 11pt; FONT-FAMILY: Arial">Hi
All,<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN
style="FONT-SIZE: 11pt; FONT-FAMILY: Arial"><o:p> </o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN
style="FONT-SIZE: 11pt; FONT-FAMILY: Arial">The IPoIB code does not use DMA
buffers when transmitting the ARP or DHCP packets. Both of these packets
are passed in DS [1] of the WR in the Post Send. The IPoIB header in DS
[0] is not the DMA buffer neither. <o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN
style="FONT-SIZE: 11pt; FONT-FAMILY: Arial"><o:p> </o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN
style="FONT-SIZE: 11pt; FONT-FAMILY: Arial">Because of this, I believe that
existing IPoIB code won’t work under these 2
situations:<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal
style="MARGIN-LEFT: 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1"><![if !supportLists]><FONT
face=Arial size=2><SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: Arial"><SPAN
style="mso-list: Ignore">-<FONT face="Times New Roman" size=1><SPAN
style="FONT: 7pt 'Times New Roman'">
</SPAN></FONT></SPAN></SPAN></FONT><![endif]><FONT face=Arial size=2><SPAN
style="FONT-SIZE: 11pt; FONT-FAMILY: Arial">On systems that equipped with
IOMMUs.<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal
style="MARGIN-LEFT: 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1"><![if !supportLists]><FONT
face=Arial size=2><SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: Arial"><SPAN
style="mso-list: Ignore">-<FONT face="Times New Roman" size=1><SPAN
style="FONT: 7pt 'Times New Roman'">
</SPAN></FONT></SPAN></SPAN></FONT><![endif]><FONT face=Arial size=2><SPAN
style="FONT-SIZE: 11pt; FONT-FAMILY: Arial">On normal systems (without IOMMU)
that has more than 4GB of RAM, IPoIB <B><SPAN
style="FONT-WEIGHT: bold">may</SPAN></B> also show the problem if the HCA is
32-bit.<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN
style="FONT-SIZE: 11pt; FONT-FAMILY: Arial"><o:p> </o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN
style="FONT-SIZE: 11pt; FONT-FAMILY: Arial">If you agree with me, then someone
needs to change these buffers to DMA buffers.<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN
style="FONT-SIZE: 11pt; FONT-FAMILY: Arial">Here are the functions that are
affected. Only partial code is displayed in the following
functions. Pay attention to the <B><FONT color=red><SPAN
style="FONT-WEIGHT: bold; COLOR: red">highlighted Red
</SPAN></FONT></B>which are not DMA buffers that I
mentioned.<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN
style="FONT-SIZE: 11pt; FONT-FAMILY: Arial"><o:p> </o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial color=blue size=2><SPAN
style="FONT-SIZE: 11pt; COLOR: blue; FONT-FAMILY: Arial">static</SPAN></FONT><FONT
face=Arial size=2><SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: Arial"> <FONT
color=#010001><SPAN
style="COLOR: #010001">NDIS_STATUS<o:p></o:p></SPAN></FONT></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial color=#010001 size=2><SPAN
style="FONT-SIZE: 11pt; COLOR: #010001; FONT-FAMILY: Arial">__send_mgr_filter_arp</SPAN></FONT><FONT
face=Arial size=2><SPAN
style="FONT-SIZE: 11pt; FONT-FAMILY: Arial">(<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN
style="FONT-SIZE: 11pt; FONT-FAMILY: Arial">
<FONT color=#010001><SPAN
style="COLOR: #010001">IN</SPAN></FONT>
<FONT color=#010001><SPAN style="COLOR: #010001">ipoib_port_t</SPAN></FONT>*
<FONT color=blue><SPAN
style="COLOR: blue">const</SPAN></FONT>
<FONT
color=#010001><SPAN
style="COLOR: #010001">p_port</SPAN></FONT>,<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN
style="FONT-SIZE: 11pt; FONT-FAMILY: Arial">
<FONT color=#010001><SPAN
style="COLOR: #010001">IN</SPAN></FONT>
<FONT color=blue><SPAN style="COLOR: blue">const</SPAN></FONT>
<FONT color=#010001><SPAN style="COLOR: #010001">eth_hdr_t</SPAN></FONT>*
<FONT color=blue><SPAN
style="COLOR: blue">const</SPAN></FONT>
<FONT
color=#010001><SPAN
style="COLOR: #010001">p_eth_hdr</SPAN></FONT>,<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN
style="FONT-SIZE: 11pt; FONT-FAMILY: Arial">
<FONT color=#010001><SPAN
style="COLOR: #010001">IN</SPAN></FONT>
<FONT color=#010001><SPAN
style="COLOR: #010001">NDIS_BUFFER</SPAN></FONT>*
<FONT
color=#010001><SPAN
style="COLOR: #010001">p_buf</SPAN></FONT>,<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN
style="FONT-SIZE: 11pt; FONT-FAMILY: Arial">
<FONT color=#010001><SPAN
style="COLOR: #010001">IN</SPAN></FONT>
<FONT color=#010001><SPAN
style="COLOR: #010001">size_t</SPAN></FONT>
<FONT
color=#010001><SPAN
style="COLOR: #010001">buf_len</SPAN></FONT>,<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN
style="FONT-SIZE: 11pt; FONT-FAMILY: Arial">
<FONT color=#010001><SPAN
style="COLOR: #010001">IN</SPAN></FONT>
<FONT color=#010001><SPAN
style="COLOR: #010001">OUT</SPAN></FONT>
<FONT color=#010001><SPAN
style="COLOR: #010001">ipoib_send_desc_t</SPAN></FONT>* <FONT color=blue><SPAN
style="COLOR: blue">const</SPAN></FONT>
<FONT color=#010001><SPAN style="COLOR: #010001">p_desc</SPAN></FONT>
)<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN
style="FONT-SIZE: 11pt; FONT-FAMILY: Arial">{<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN
style="FONT-SIZE: 11pt; FONT-FAMILY: Arial">
<FONT color=#010001><SPAN
style="COLOR: #010001">arp_pkt_t</SPAN></FONT>
*<FONT color=#010001><SPAN
style="COLOR: #010001">p_arp</SPAN></FONT>;<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN
style="FONT-SIZE: 11pt; FONT-FAMILY: Arial">
<FONT color=#010001><SPAN
style="COLOR: #010001">ipoib_arp_pkt_t</SPAN></FONT>
*<FONT color=#010001><SPAN
style="COLOR: #010001">p_ib_arp</SPAN></FONT>;<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN
style="FONT-SIZE: 11pt; FONT-FAMILY: Arial">
<FONT color=#010001><SPAN
style="COLOR: #010001">NDIS_STATUS</SPAN></FONT>
<FONT color=#010001><SPAN
style="COLOR: #010001">status</SPAN></FONT>;<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN
style="FONT-SIZE: 11pt; FONT-FAMILY: Arial">
<FONT color=#010001><SPAN
style="COLOR: #010001">mac_addr_t</SPAN></FONT>
<FONT color=#010001><SPAN style="COLOR: #010001">null_hw</SPAN></FONT> =
{0};<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN
style="FONT-SIZE: 11pt; FONT-FAMILY: Arial"><o:p> </o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN
style="FONT-SIZE: 11pt; FONT-FAMILY: Arial">
<FONT color=blue><SPAN style="COLOR: blue">if</SPAN></FONT>( !<FONT
color=#010001><SPAN style="COLOR: #010001">buf_len</SPAN></FONT>
)<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN
style="FONT-SIZE: 11pt; FONT-FAMILY: Arial">
{<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN
style="FONT-SIZE: 11pt; FONT-FAMILY: Arial">
<FONT color=#010001><SPAN
style="COLOR: #010001">NdisGetNextBuffer</SPAN></FONT>( <FONT
color=#010001><SPAN style="COLOR: #010001">p_buf</SPAN></FONT>, &<FONT
color=#010001><SPAN style="COLOR: #010001">p_buf</SPAN></FONT>
);<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN
style="FONT-SIZE: 11pt; FONT-FAMILY: Arial">
<FONT color=#010001><SPAN
style="COLOR: #010001">NdisQueryBufferSafe</SPAN></FONT>( <FONT
color=#010001><SPAN style="COLOR: #010001">p_buf</SPAN></FONT>, &<FONT
color=#010001><SPAN style="COLOR: #010001">p_arp</SPAN></FONT>, &<FONT
color=#010001><SPAN style="COLOR: #010001">buf_len</SPAN></FONT>, <FONT
color=#010001><SPAN style="COLOR: #010001">NormalPagePriority</SPAN></FONT>
);<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN
style="FONT-SIZE: 11pt; FONT-FAMILY: Arial">
}<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN
style="FONT-SIZE: 11pt; FONT-FAMILY: Arial">
<FONT color=blue><SPAN
style="COLOR: blue">else<o:p></o:p></SPAN></FONT></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN
style="FONT-SIZE: 11pt; FONT-FAMILY: Arial">
{<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN
style="FONT-SIZE: 11pt; FONT-FAMILY: Arial">
<FONT color=#010001><SPAN style="COLOR: #010001">p_arp</SPAN></FONT> = (<FONT
color=#010001><SPAN style="COLOR: #010001">arp_pkt_t</SPAN></FONT>*)(<FONT
color=#010001><SPAN style="COLOR: #010001">p_eth_hdr</SPAN></FONT> +
1);<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN
style="FONT-SIZE: 11pt; FONT-FAMILY: Arial">
}<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN
style="FONT-SIZE: 11pt; FONT-FAMILY: Arial"><o:p> </o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN
style="FONT-SIZE: 11pt; FONT-FAMILY: Arial"><o:p> </o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN
style="FONT-SIZE: 11pt; FONT-FAMILY: Arial">
<FONT color=green><SPAN style="COLOR: green">/* Allocate our scratch buffer.
*/<o:p></o:p></SPAN></FONT></SPAN></FONT></P>
<P class=MsoNormal><B><FONT face=Arial color=red size=2><SPAN
style="FONT-WEIGHT: bold; FONT-SIZE: 11pt; COLOR: red; FONT-FAMILY: Arial">
p_desc->p_buf = (send_buf_t*)<o:p></o:p></SPAN></FONT></B></P>
<P class=MsoNormal><B><FONT face=Arial color=red size=2><SPAN
style="FONT-WEIGHT: bold; FONT-SIZE: 11pt; COLOR: red; FONT-FAMILY: Arial">
ExAllocateFromNPagedLookasideList( &p_port->buf_mgr.send_buf_list
);<o:p></o:p></SPAN></FONT></B></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN
style="FONT-SIZE: 11pt; FONT-FAMILY: Arial"><o:p> </o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN
style="FONT-SIZE: 11pt; FONT-FAMILY: Arial">
<FONT color=#010001><SPAN style="COLOR: #010001">p_ib_arp</SPAN></FONT> =
(<FONT color=#010001><SPAN
style="COLOR: #010001">ipoib_arp_pkt_t</SPAN></FONT>*)<FONT
color=#010001><SPAN style="COLOR: #010001">p_desc</SPAN></FONT>-><FONT
color=#010001><SPAN
style="COLOR: #010001">p_buf</SPAN></FONT>;<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN
style="FONT-SIZE: 11pt; FONT-FAMILY: Arial"><o:p> </o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN
style="FONT-SIZE: 11pt; FONT-FAMILY: Arial">
<FONT color=green><SPAN style="COLOR: green">/* Convert the ARP payload.
*/<o:p></o:p></SPAN></FONT></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN
style="FONT-SIZE: 11pt; FONT-FAMILY: Arial">
<FONT color=#010001><SPAN
style="COLOR: #010001">p_ib_arp</SPAN></FONT>-><FONT color=#010001><SPAN
style="COLOR: #010001">hw_type</SPAN></FONT> = <FONT color=#010001><SPAN
style="COLOR: #010001">ARP_HW_TYPE_IB</SPAN></FONT>;<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN
style="FONT-SIZE: 11pt; FONT-FAMILY: Arial">
<FONT color=#010001><SPAN
style="COLOR: #010001">p_ib_arp</SPAN></FONT>-><FONT color=#010001><SPAN
style="COLOR: #010001">prot_type</SPAN></FONT> = <FONT color=#010001><SPAN
style="COLOR: #010001">p_arp</SPAN></FONT>-><FONT color=#010001><SPAN
style="COLOR: #010001">prot_type</SPAN></FONT>;<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN
style="FONT-SIZE: 11pt; FONT-FAMILY: Arial">
<FONT color=#010001><SPAN
style="COLOR: #010001">p_ib_arp</SPAN></FONT>-><FONT color=#010001><SPAN
style="COLOR: #010001">hw_size</SPAN></FONT> = <FONT color=blue><SPAN
style="COLOR: blue">sizeof</SPAN></FONT>(<FONT color=#010001><SPAN
style="COLOR: #010001">ipoib_hw_addr_t</SPAN></FONT>);<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN
style="FONT-SIZE: 11pt; FONT-FAMILY: Arial">
<FONT color=#010001><SPAN
style="COLOR: #010001">p_ib_arp</SPAN></FONT>-><FONT color=#010001><SPAN
style="COLOR: #010001">prot_size</SPAN></FONT> = <FONT color=#010001><SPAN
style="COLOR: #010001">p_arp</SPAN></FONT>-><FONT color=#010001><SPAN
style="COLOR: #010001">prot_size</SPAN></FONT>;<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN
style="FONT-SIZE: 11pt; FONT-FAMILY: Arial">
<FONT color=#010001><SPAN
style="COLOR: #010001">p_ib_arp</SPAN></FONT>-><FONT color=#010001><SPAN
style="COLOR: #010001">op</SPAN></FONT> = <FONT color=#010001><SPAN
style="COLOR: #010001">p_arp</SPAN></FONT>-><FONT color=#010001><SPAN
style="COLOR: #010001">op</SPAN></FONT>;<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN
style="FONT-SIZE: 11pt; FONT-FAMILY: Arial">
<FONT color=#010001><SPAN
style="COLOR: #010001">p_ib_arp</SPAN></FONT>-><FONT color=#010001><SPAN
style="COLOR: #010001">src_hw</SPAN></FONT>.<FONT color=#010001><SPAN
style="COLOR: #010001">flags_qpn</SPAN></FONT> = <FONT color=#010001><SPAN
style="COLOR: #010001">p_port</SPAN></FONT>-><FONT color=#010001><SPAN
style="COLOR: #010001">ib_mgr</SPAN></FONT>.<FONT color=#010001><SPAN
style="COLOR: #010001">qpn</SPAN></FONT>;<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN
style="FONT-SIZE: 11pt; FONT-FAMILY: Arial">
<FONT color=#010001><SPAN
style="COLOR: #010001">ib_gid_set_default</SPAN></FONT>( &<FONT
color=#010001><SPAN style="COLOR: #010001">p_ib_arp</SPAN></FONT>-><FONT
color=#010001><SPAN style="COLOR: #010001">src_hw</SPAN></FONT>.<FONT
color=#010001><SPAN
style="COLOR: #010001">gid</SPAN></FONT>,<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN
style="FONT-SIZE: 11pt; FONT-FAMILY: Arial">
<FONT color=#010001><SPAN
style="COLOR: #010001">p_port</SPAN></FONT>-><FONT color=#010001><SPAN
style="COLOR: #010001">p_adapter</SPAN></FONT>-><FONT color=#010001><SPAN
style="COLOR: #010001">guids</SPAN></FONT>.<FONT color=#010001><SPAN
style="COLOR: #010001">port_guid</SPAN></FONT>.<FONT color=#010001><SPAN
style="COLOR: #010001">guid</SPAN></FONT> );<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN
style="FONT-SIZE: 11pt; FONT-FAMILY: Arial">
<FONT color=#010001><SPAN
style="COLOR: #010001">p_ib_arp</SPAN></FONT>-><FONT color=#010001><SPAN
style="COLOR: #010001">src_ip</SPAN></FONT> = <FONT color=#010001><SPAN
style="COLOR: #010001">p_arp</SPAN></FONT>-><FONT color=#010001><SPAN
style="COLOR: #010001">src_ip</SPAN></FONT>;<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN
style="FONT-SIZE: 11pt; FONT-FAMILY: Arial">
<FONT color=#010001><SPAN
style="COLOR: #010001">p_ib_arp</SPAN></FONT>-><FONT color=#010001><SPAN
style="COLOR: #010001">dst_ip</SPAN></FONT> = <FONT color=#010001><SPAN
style="COLOR: #010001">p_arp</SPAN></FONT>-><FONT color=#010001><SPAN
style="COLOR: #010001">dst_ip</SPAN></FONT>;<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN
style="FONT-SIZE: 11pt; FONT-FAMILY: Arial"><o:p> </o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN
style="FONT-SIZE: 11pt; FONT-FAMILY: Arial">
<FONT color=#010001><SPAN
style="COLOR: #010001">p_desc</SPAN></FONT>-><FONT color=#010001><SPAN
style="COLOR: #010001">local_ds</SPAN></FONT>[1].<FONT color=#010001><SPAN
style="COLOR: #010001">vaddr</SPAN></FONT> = <FONT color=#010001><SPAN
style="COLOR: #010001">cl_get_physaddr</SPAN></FONT>( <FONT
color=#010001><SPAN style="COLOR: #010001">p_ib_arp</SPAN></FONT>
);<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN
style="FONT-SIZE: 11pt; FONT-FAMILY: Arial">
<FONT color=#010001><SPAN
style="COLOR: #010001">p_desc</SPAN></FONT>-><FONT color=#010001><SPAN
style="COLOR: #010001">local_ds</SPAN></FONT>[1].<FONT color=#010001><SPAN
style="COLOR: #010001">length</SPAN></FONT> = <FONT color=blue><SPAN
style="COLOR: blue">sizeof</SPAN></FONT>(<FONT color=#010001><SPAN
style="COLOR: #010001">ipoib_arp_pkt_t</SPAN></FONT>);<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN
style="FONT-SIZE: 11pt; FONT-FAMILY: Arial">
<FONT color=#010001><SPAN
style="COLOR: #010001">p_desc</SPAN></FONT>-><FONT color=#010001><SPAN
style="COLOR: #010001">local_ds</SPAN></FONT>[1].<FONT color=#010001><SPAN
style="COLOR: #010001">lkey</SPAN></FONT> = <FONT color=#010001><SPAN
style="COLOR: #010001">p_port</SPAN></FONT>-><FONT color=#010001><SPAN
style="COLOR: #010001">ib_mgr</SPAN></FONT>.<FONT color=#010001><SPAN
style="COLOR: #010001">lkey</SPAN></FONT>;<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN
style="FONT-SIZE: 11pt; FONT-FAMILY: Arial">
<FONT color=#010001><SPAN
style="COLOR: #010001">p_desc</SPAN></FONT>-><FONT color=#010001><SPAN
style="COLOR: #010001">wr</SPAN></FONT>.<FONT color=#010001><SPAN
style="COLOR: #010001">num_ds</SPAN></FONT> = 2;<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN
style="FONT-SIZE: 11pt; FONT-FAMILY: Arial"><o:p> </o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN
style="FONT-SIZE: 11pt; FONT-FAMILY: Arial">
<FONT color=blue><SPAN style="COLOR: blue">return</SPAN></FONT> <FONT
color=#010001><SPAN
style="COLOR: #010001">NDIS_STATUS_SUCCESS</SPAN></FONT>;<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN
style="FONT-SIZE: 11pt; FONT-FAMILY: Arial">}<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN
style="FONT-SIZE: 11pt; FONT-FAMILY: Arial"><o:p> </o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial color=blue size=2><SPAN
style="FONT-SIZE: 11pt; COLOR: blue; FONT-FAMILY: Arial">static</SPAN></FONT><FONT
face=Arial size=2><SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: Arial"> <FONT
color=#010001><SPAN
style="COLOR: #010001">NDIS_STATUS<o:p></o:p></SPAN></FONT></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial color=#010001 size=2><SPAN
style="FONT-SIZE: 11pt; COLOR: #010001; FONT-FAMILY: Arial">__send_mgr_filter_udp</SPAN></FONT><FONT
face=Arial size=2><SPAN
style="FONT-SIZE: 11pt; FONT-FAMILY: Arial">(<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN
style="FONT-SIZE: 11pt; FONT-FAMILY: Arial">
<FONT color=#010001><SPAN
style="COLOR: #010001">IN</SPAN></FONT>
<FONT color=#010001><SPAN style="COLOR: #010001">ipoib_port_t</SPAN></FONT>*
<FONT color=blue><SPAN
style="COLOR: blue">const</SPAN></FONT>
<FONT
color=#010001><SPAN
style="COLOR: #010001">p_port</SPAN></FONT>,<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN
style="FONT-SIZE: 11pt; FONT-FAMILY: Arial">
<FONT color=#010001><SPAN
style="COLOR: #010001">IN</SPAN></FONT>
<FONT color=blue><SPAN style="COLOR: blue">const</SPAN></FONT>
<FONT color=#010001><SPAN style="COLOR: #010001">ip_hdr_t</SPAN></FONT>* <FONT
color=blue><SPAN
style="COLOR: blue">const</SPAN></FONT>
<FONT
color=#010001><SPAN
style="COLOR: #010001">p_ip_hdr</SPAN></FONT>,<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN
style="FONT-SIZE: 11pt; FONT-FAMILY: Arial">
<FONT color=#010001><SPAN
style="COLOR: #010001">IN</SPAN></FONT>
<FONT color=#010001><SPAN
style="COLOR: #010001">NDIS_BUFFER</SPAN></FONT>*
<FONT
color=#010001><SPAN
style="COLOR: #010001">p_buf</SPAN></FONT>,<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN
style="FONT-SIZE: 11pt; FONT-FAMILY: Arial">
<FONT color=#010001><SPAN
style="COLOR: #010001">IN</SPAN></FONT>
<FONT color=#010001><SPAN
style="COLOR: #010001">size_t</SPAN></FONT>
<FONT
color=#010001><SPAN
style="COLOR: #010001">buf_len</SPAN></FONT>,<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN
style="FONT-SIZE: 11pt; FONT-FAMILY: Arial">
<FONT color=#010001><SPAN
style="COLOR: #010001">IN</SPAN></FONT>
<FONT color=#010001><SPAN
style="COLOR: #010001">OUT</SPAN></FONT>
<FONT color=#010001><SPAN
style="COLOR: #010001">ipoib_send_desc_t</SPAN></FONT>* <FONT color=blue><SPAN
style="COLOR: blue">const</SPAN></FONT>
<FONT color=#010001><SPAN style="COLOR: #010001">p_desc</SPAN></FONT>
)<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN
style="FONT-SIZE: 11pt; FONT-FAMILY: Arial">{<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN
style="FONT-SIZE: 11pt; FONT-FAMILY: Arial">
<FONT color=#010001><SPAN
style="COLOR: #010001">ib_api_status_t</SPAN></FONT>
<FONT color=#010001><SPAN
style="COLOR: #010001">status</SPAN></FONT>;<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN
style="FONT-SIZE: 11pt; FONT-FAMILY: Arial">
<FONT color=#010001><SPAN
style="COLOR: #010001">udp_hdr_t</SPAN></FONT>
*<FONT color=#010001><SPAN
style="COLOR: #010001">p_udp_hdr</SPAN></FONT>;<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN
style="FONT-SIZE: 11pt; FONT-FAMILY: Arial">
<FONT color=blue><SPAN style="COLOR: blue">if</SPAN></FONT>( !<FONT
color=#010001><SPAN style="COLOR: #010001">buf_len</SPAN></FONT>
)<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN
style="FONT-SIZE: 11pt; FONT-FAMILY: Arial">
{<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN
style="FONT-SIZE: 11pt; FONT-FAMILY: Arial">
<FONT color=#010001><SPAN
style="COLOR: #010001">NdisGetNextBuffer</SPAN></FONT>( <FONT
color=#010001><SPAN style="COLOR: #010001">p_buf</SPAN></FONT>, &<FONT
color=#010001><SPAN style="COLOR: #010001">p_buf</SPAN></FONT>
);<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN
style="FONT-SIZE: 11pt; FONT-FAMILY: Arial">
<FONT color=#010001><SPAN
style="COLOR: #010001">NdisQueryBufferSafe</SPAN></FONT>( <FONT
color=#010001><SPAN style="COLOR: #010001">p_buf</SPAN></FONT>, &<FONT
color=#010001><SPAN style="COLOR: #010001">p_udp_hdr</SPAN></FONT>, &<FONT
color=#010001><SPAN style="COLOR: #010001">buf_len</SPAN></FONT>, <FONT
color=#010001><SPAN style="COLOR: #010001">NormalPagePriority</SPAN></FONT>
);<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN
style="FONT-SIZE: 11pt; FONT-FAMILY: Arial">
}<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN
style="FONT-SIZE: 11pt; FONT-FAMILY: Arial">
<FONT color=blue><SPAN
style="COLOR: blue">else<o:p></o:p></SPAN></FONT></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN
style="FONT-SIZE: 11pt; FONT-FAMILY: Arial">
{<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN
style="FONT-SIZE: 11pt; FONT-FAMILY: Arial">
<FONT color=#010001><SPAN style="COLOR: #010001">p_udp_hdr</SPAN></FONT> =
(<FONT color=#010001><SPAN
style="COLOR: #010001">udp_hdr_t</SPAN></FONT>*)<FONT color=#010001><SPAN
style="COLOR: #010001">GetIpPayloadPtr</SPAN></FONT>(<FONT color=#010001><SPAN
style="COLOR: #010001">p_ip_hdr</SPAN></FONT>);<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN
style="FONT-SIZE: 11pt; FONT-FAMILY: Arial">
}<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN
style="FONT-SIZE: 11pt; FONT-FAMILY: Arial"><o:p> </o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN
style="FONT-SIZE: 11pt; FONT-FAMILY: Arial">
<FONT color=blue><SPAN style="COLOR: blue">if</SPAN></FONT>( (<FONT
color=#010001><SPAN style="COLOR: #010001">p_udp_hdr</SPAN></FONT>-><FONT
color=#010001><SPAN style="COLOR: #010001">src_port</SPAN></FONT> != <FONT
color=#010001><SPAN style="COLOR: #010001">DHCP_PORT_CLIENT</SPAN></FONT>
||<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN
style="FONT-SIZE: 11pt; FONT-FAMILY: Arial">
<FONT color=#010001><SPAN
style="COLOR: #010001">p_udp_hdr</SPAN></FONT>-><FONT color=#010001><SPAN
style="COLOR: #010001">dst_port</SPAN></FONT> != <FONT color=#010001><SPAN
style="COLOR: #010001">DHCP_PORT_SERVER</SPAN></FONT>)
&&<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN
style="FONT-SIZE: 11pt; FONT-FAMILY: Arial">
(<FONT color=#010001><SPAN
style="COLOR: #010001">p_udp_hdr</SPAN></FONT>-><FONT color=#010001><SPAN
style="COLOR: #010001">src_port</SPAN></FONT> != <FONT color=#010001><SPAN
style="COLOR: #010001">DHCP_PORT_SERVER</SPAN></FONT>
||<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN
style="FONT-SIZE: 11pt; FONT-FAMILY: Arial">
<FONT color=#010001><SPAN
style="COLOR: #010001">p_udp_hdr</SPAN></FONT>-><FONT color=#010001><SPAN
style="COLOR: #010001">dst_port</SPAN></FONT> != <FONT color=#010001><SPAN
style="COLOR: #010001">DHCP_PORT_CLIENT</SPAN></FONT>)
)<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN
style="FONT-SIZE: 11pt; FONT-FAMILY: Arial">
{<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN
style="FONT-SIZE: 11pt; FONT-FAMILY: Arial">
<FONT color=green><SPAN style="COLOR: green">/* Not a DHCP packet.
*/<o:p></o:p></SPAN></FONT></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN
style="FONT-SIZE: 11pt; FONT-FAMILY: Arial">
<FONT color=#010001><SPAN style="COLOR: #010001">status</SPAN></FONT> = <FONT
color=#010001><SPAN style="COLOR: #010001">__send_gen</SPAN></FONT>( <FONT
color=#010001><SPAN style="COLOR: #010001">p_port</SPAN></FONT>, <FONT
color=#010001><SPAN style="COLOR: #010001">p_desc</SPAN></FONT>
);<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN
style="FONT-SIZE: 11pt; FONT-FAMILY: Arial">
<FONT color=blue><SPAN style="COLOR: blue">return</SPAN></FONT> <FONT
color=#010001><SPAN
style="COLOR: #010001">status</SPAN></FONT>;<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN
style="FONT-SIZE: 11pt; FONT-FAMILY: Arial">
}<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN
style="FONT-SIZE: 11pt; FONT-FAMILY: Arial"><o:p> </o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN
style="FONT-SIZE: 11pt; FONT-FAMILY: Arial">
<FONT color=#010001><SPAN style="COLOR: #010001">buf_len</SPAN></FONT> -=
<FONT color=blue><SPAN style="COLOR: blue">sizeof</SPAN></FONT>(<FONT
color=#010001><SPAN
style="COLOR: #010001">udp_hdr_t</SPAN></FONT>);<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN
style="FONT-SIZE: 11pt; FONT-FAMILY: Arial"><o:p> </o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN
style="FONT-SIZE: 11pt; FONT-FAMILY: Arial">
<FONT color=green><SPAN style="COLOR: green">/* Allocate our scratch buffer.
*/<o:p></o:p></SPAN></FONT></SPAN></FONT></P>
<P class=MsoNormal><B><FONT face=Arial color=red size=2><SPAN
style="FONT-WEIGHT: bold; FONT-SIZE: 11pt; COLOR: red; FONT-FAMILY: Arial">
p_desc->p_buf = (send_buf_t*)<o:p></o:p></SPAN></FONT></B></P>
<P class=MsoNormal><B><FONT face=Arial color=red size=2><SPAN
style="FONT-WEIGHT: bold; FONT-SIZE: 11pt; COLOR: red; FONT-FAMILY: Arial">
ExAllocateFromNPagedLookasideList( &p_port->buf_mgr.send_buf_list
);<o:p></o:p></SPAN></FONT></B></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN
style="FONT-SIZE: 11pt; FONT-FAMILY: Arial"><o:p> </o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN
style="FONT-SIZE: 11pt; FONT-FAMILY: Arial">
<FONT color=green><SPAN style="COLOR: green">/* Copy the IP and UDP headers.
*/<o:p></o:p></SPAN></FONT></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN
style="FONT-SIZE: 11pt; FONT-FAMILY: Arial">
<FONT color=#010001><SPAN style="COLOR: #010001">cl_memcpy</SPAN></FONT>(
&<FONT color=#010001><SPAN
style="COLOR: #010001">p_desc</SPAN></FONT>-><FONT color=#010001><SPAN
style="COLOR: #010001">p_buf</SPAN></FONT>-><FONT color=#010001><SPAN
style="COLOR: #010001">ip</SPAN></FONT>.<FONT color=#010001><SPAN
style="COLOR: #010001">hdr</SPAN></FONT>, <FONT color=#010001><SPAN
style="COLOR: #010001">p_ip_hdr</SPAN></FONT> , <FONT color=blue><SPAN
style="COLOR: blue">sizeof</SPAN></FONT>(<FONT color=#010001><SPAN
style="COLOR: #010001">ip_hdr_t</SPAN></FONT>) );<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN
style="FONT-SIZE: 11pt; FONT-FAMILY: Arial">
<FONT color=#010001><SPAN
style="COLOR: #010001">cl_memcpy</SPAN></FONT>(<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN
style="FONT-SIZE: 11pt; FONT-FAMILY: Arial">
&<FONT color=#010001><SPAN
style="COLOR: #010001">p_desc</SPAN></FONT>-><FONT color=#010001><SPAN
style="COLOR: #010001">p_buf</SPAN></FONT>-><FONT color=#010001><SPAN
style="COLOR: #010001">ip</SPAN></FONT>.<FONT color=#010001><SPAN
style="COLOR: #010001">prot</SPAN></FONT>.<FONT color=#010001><SPAN
style="COLOR: #010001">udp</SPAN></FONT>.<FONT color=#010001><SPAN
style="COLOR: #010001">hdr</SPAN></FONT>, <FONT color=#010001><SPAN
style="COLOR: #010001">p_udp_hdr</SPAN></FONT>, <FONT color=blue><SPAN
style="COLOR: blue">sizeof</SPAN></FONT>(<FONT color=#010001><SPAN
style="COLOR: #010001">udp_hdr_t</SPAN></FONT>)
);<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN
style="FONT-SIZE: 11pt; FONT-FAMILY: Arial"><o:p> </o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN
style="FONT-SIZE: 11pt; FONT-FAMILY: Arial">
<FONT color=#010001><SPAN style="COLOR: #010001">status</SPAN></FONT> = <FONT
color=#010001><SPAN
style="COLOR: #010001">__send_mgr_filter_dhcp</SPAN></FONT>(<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN
style="FONT-SIZE: 11pt; FONT-FAMILY: Arial">
<FONT color=#010001><SPAN style="COLOR: #010001">p_port</SPAN></FONT>, <FONT
color=#010001><SPAN style="COLOR: #010001">p_udp_hdr</SPAN></FONT>, <FONT
color=#010001><SPAN style="COLOR: #010001">p_buf</SPAN></FONT>, <FONT
color=#010001><SPAN style="COLOR: #010001">buf_len</SPAN></FONT>, <FONT
color=#010001><SPAN style="COLOR: #010001">p_desc</SPAN></FONT>
);<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN
style="FONT-SIZE: 11pt; FONT-FAMILY: Arial">
<FONT color=blue><SPAN style="COLOR: blue">return</SPAN></FONT> <FONT
color=#010001><SPAN
style="COLOR: #010001">status</SPAN></FONT>;<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN
style="FONT-SIZE: 11pt; FONT-FAMILY: Arial">}<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN
style="FONT-SIZE: 11pt; FONT-FAMILY: Arial"><o:p> </o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial color=blue size=2><SPAN
style="FONT-SIZE: 11pt; COLOR: blue; FONT-FAMILY: Arial">static</SPAN></FONT><FONT
face=Arial size=2><SPAN style="FONT-SIZE: 11pt; FONT-FAMILY: Arial"> <FONT
color=#010001><SPAN
style="COLOR: #010001">NDIS_STATUS<o:p></o:p></SPAN></FONT></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial color=#010001 size=2><SPAN
style="FONT-SIZE: 11pt; COLOR: #010001; FONT-FAMILY: Arial">__build_send_desc</SPAN></FONT><FONT
face=Arial size=2><SPAN
style="FONT-SIZE: 11pt; FONT-FAMILY: Arial">(<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN
style="FONT-SIZE: 11pt; FONT-FAMILY: Arial">
<FONT color=#010001><SPAN
style="COLOR: #010001">IN</SPAN></FONT>
<FONT color=#010001><SPAN style="COLOR: #010001">ipoib_port_t</SPAN></FONT>*
<FONT color=blue><SPAN
style="COLOR: blue">const</SPAN></FONT>
<FONT
color=#010001><SPAN
style="COLOR: #010001">p_port</SPAN></FONT>,<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN
style="FONT-SIZE: 11pt; FONT-FAMILY: Arial">
<FONT color=#010001><SPAN
style="COLOR: #010001">IN</SPAN></FONT>
<FONT color=#010001><SPAN style="COLOR: #010001">eth_hdr_t</SPAN></FONT>*
<FONT color=blue><SPAN
style="COLOR: blue">const</SPAN></FONT>
<FONT
color=#010001><SPAN
style="COLOR: #010001">p_eth_hdr</SPAN></FONT>,<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN
style="FONT-SIZE: 11pt; FONT-FAMILY: Arial">
<FONT color=#010001><SPAN
style="COLOR: #010001">IN</SPAN></FONT>
<FONT color=#010001><SPAN style="COLOR: #010001">NDIS_BUFFER</SPAN></FONT>*
<FONT color=blue><SPAN
style="COLOR: blue">const</SPAN></FONT>
<FONT
color=#010001><SPAN
style="COLOR: #010001">p_buf</SPAN></FONT>,<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN
style="FONT-SIZE: 11pt; FONT-FAMILY: Arial">
<FONT color=#010001><SPAN
style="COLOR: #010001">IN</SPAN></FONT>
<FONT color=blue><SPAN style="COLOR: blue">const</SPAN></FONT>
<FONT color=#010001><SPAN
style="COLOR: #010001">size_t</SPAN></FONT>
<FONT
color=#010001><SPAN
style="COLOR: #010001">buf_len</SPAN></FONT>,<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN
style="FONT-SIZE: 11pt; FONT-FAMILY: Arial">
<FONT color=#010001><SPAN
style="COLOR: #010001">IN</SPAN></FONT>
<FONT color=#010001><SPAN
style="COLOR: #010001">OUT</SPAN></FONT>
<FONT color=#010001><SPAN
style="COLOR: #010001">ipoib_send_desc_t</SPAN></FONT>* <FONT color=blue><SPAN
style="COLOR: blue">const</SPAN></FONT>
<FONT color=#010001><SPAN style="COLOR: #010001">p_desc</SPAN></FONT>
)<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN
style="FONT-SIZE: 11pt; FONT-FAMILY: Arial">{<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN
style="FONT-SIZE: 11pt; FONT-FAMILY: Arial">
<FONT color=#010001><SPAN
style="COLOR: #010001">NDIS_STATUS</SPAN></FONT>
<FONT color=#010001><SPAN
style="COLOR: #010001">status</SPAN></FONT>;<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN
style="FONT-SIZE: 11pt; FONT-FAMILY: Arial">
<FONT color=#010001><SPAN
style="COLOR: #010001">int32_t</SPAN></FONT>
<FONT color=#010001><SPAN
style="COLOR: #010001">hdr_idx</SPAN></FONT>;<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN
style="FONT-SIZE: 11pt; FONT-FAMILY: Arial">
<FONT color=#010001><SPAN
style="COLOR: #010001">PNDIS_PACKET_EXTENSION</SPAN></FONT>
<FONT color=#010001><SPAN
style="COLOR: #010001">PktExt</SPAN></FONT>;<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN
style="FONT-SIZE: 11pt; FONT-FAMILY: Arial">
<FONT color=#010001><SPAN
style="COLOR: #010001">PNDIS_TCP_IP_CHECKSUM_PACKET_INFO</SPAN></FONT>
<FONT
color=#010001><SPAN style="COLOR: #010001">pChecksumPktInfo</SPAN></FONT>;
<FONT color=green><SPAN style="COLOR: green">//NDIS
5.1<o:p></o:p></SPAN></FONT></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN
style="FONT-SIZE: 11pt; FONT-FAMILY: Arial"><o:p> </o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN
style="FONT-SIZE: 11pt; FONT-FAMILY: Arial">
<FONT color=#010001><SPAN style="COLOR: #010001">status</SPAN></FONT> = <FONT
color=#010001><SPAN
style="COLOR: #010001">__send_mgr_filter</SPAN></FONT>(<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN
style="FONT-SIZE: 11pt; FONT-FAMILY: Arial">
<FONT color=#010001><SPAN style="COLOR: #010001">p_port</SPAN></FONT>, <FONT
color=#010001><SPAN style="COLOR: #010001">p_eth_hdr</SPAN></FONT>, <FONT
color=#010001><SPAN style="COLOR: #010001">p_buf</SPAN></FONT>, <FONT
color=#010001><SPAN style="COLOR: #010001">buf_len</SPAN></FONT>, <FONT
color=#010001><SPAN style="COLOR: #010001">p_desc</SPAN></FONT>
);<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN
style="FONT-SIZE: 11pt; FONT-FAMILY: Arial"><o:p> </o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN
style="FONT-SIZE: 11pt; FONT-FAMILY: Arial">
<FONT color=green><SPAN style="COLOR: green">/* Format the send descriptor.
*/<o:p></o:p></SPAN></FONT></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN
style="FONT-SIZE: 11pt; FONT-FAMILY: Arial">
<FONT color=#010001><SPAN style="COLOR: #010001">hdr_idx</SPAN></FONT> = <FONT
color=#010001><SPAN style="COLOR: #010001">cl_atomic_inc</SPAN></FONT>(
&<FONT color=#010001><SPAN
style="COLOR: #010001">p_port</SPAN></FONT>-><FONT color=#010001><SPAN
style="COLOR: #010001">hdr_idx</SPAN></FONT> );<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN
style="FONT-SIZE: 11pt; FONT-FAMILY: Arial">
<FONT color=#010001><SPAN style="COLOR: #010001">hdr_idx</SPAN></FONT> &=
(<FONT color=#010001><SPAN
style="COLOR: #010001">p_port</SPAN></FONT>-><FONT color=#010001><SPAN
style="COLOR: #010001">p_adapter</SPAN></FONT>-><FONT color=#010001><SPAN
style="COLOR: #010001">params</SPAN></FONT>.<FONT color=#010001><SPAN
style="COLOR: #010001">sq_depth</SPAN></FONT> -
1);<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN
style="FONT-SIZE: 11pt; FONT-FAMILY: Arial">
<FONT color=#010001><SPAN style="COLOR: #010001">ASSERT</SPAN></FONT>( <FONT
color=#010001><SPAN style="COLOR: #010001">hdr_idx</SPAN></FONT> < <FONT
color=#010001><SPAN style="COLOR: #010001">p_port</SPAN></FONT>-><FONT
color=#010001><SPAN style="COLOR: #010001">p_adapter</SPAN></FONT>-><FONT
color=#010001><SPAN style="COLOR: #010001">params</SPAN></FONT>.<FONT
color=#010001><SPAN style="COLOR: #010001">sq_depth</SPAN></FONT>
);<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN
style="FONT-SIZE: 11pt; FONT-FAMILY: Arial">
<FONT color=#010001><SPAN
style="COLOR: #010001">p_port</SPAN></FONT>-><FONT color=#010001><SPAN
style="COLOR: #010001">hdr</SPAN></FONT>[<FONT color=#010001><SPAN
style="COLOR: #010001">hdr_idx</SPAN></FONT>].<FONT color=#010001><SPAN
style="COLOR: #010001">type</SPAN></FONT> = <FONT color=#010001><SPAN
style="COLOR: #010001">p_eth_hdr</SPAN></FONT>-><FONT color=#010001><SPAN
style="COLOR: #010001">type</SPAN></FONT>;<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN
style="FONT-SIZE: 11pt; FONT-FAMILY: Arial">
<FONT color=#010001><SPAN
style="COLOR: #010001">p_port</SPAN></FONT>-><FONT color=#010001><SPAN
style="COLOR: #010001">hdr</SPAN></FONT>[<FONT color=#010001><SPAN
style="COLOR: #010001">hdr_idx</SPAN></FONT>].<FONT color=#010001><SPAN
style="COLOR: #010001">resv</SPAN></FONT> = 0;<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN
style="FONT-SIZE: 11pt; FONT-FAMILY: Arial"><o:p> </o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN
style="FONT-SIZE: 11pt; FONT-FAMILY: Arial">
<FONT color=green><SPAN style="COLOR: green">/* Setup the first local data
segment (used for the IPoIB header).
*/<o:p></o:p></SPAN></FONT></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN
style="FONT-SIZE: 11pt; FONT-FAMILY: Arial">
<FONT color=#010001><SPAN
style="COLOR: #010001">p_desc</SPAN></FONT>-><FONT color=#010001><SPAN
style="COLOR: #010001">local_ds</SPAN></FONT>[0].<FONT color=#010001><SPAN
style="COLOR: #010001">vaddr</SPAN></FONT> = <FONT color=#010001><SPAN
style="COLOR: #010001">cl_get_physaddr</SPAN></FONT>( &<B><FONT
color=red><SPAN
style="FONT-WEIGHT: bold; COLOR: red">p_port->hdr[hdr_idx]</SPAN></FONT></B>
);<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN
style="FONT-SIZE: 11pt; FONT-FAMILY: Arial">
<FONT color=#010001><SPAN
style="COLOR: #010001">p_desc</SPAN></FONT>-><FONT color=#010001><SPAN
style="COLOR: #010001">local_ds</SPAN></FONT>[0].<FONT color=#010001><SPAN
style="COLOR: #010001">length</SPAN></FONT> = <FONT color=blue><SPAN
style="COLOR: blue">sizeof</SPAN></FONT>(<FONT color=#010001><SPAN
style="COLOR: #010001">ipoib_hdr_t</SPAN></FONT>);<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN
style="FONT-SIZE: 11pt; FONT-FAMILY: Arial">
<FONT color=#010001><SPAN
style="COLOR: #010001">p_desc</SPAN></FONT>-><FONT color=#010001><SPAN
style="COLOR: #010001">local_ds</SPAN></FONT>[0].<FONT color=#010001><SPAN
style="COLOR: #010001">lkey</SPAN></FONT> = <FONT color=#010001><SPAN
style="COLOR: #010001">p_port</SPAN></FONT>-><FONT color=#010001><SPAN
style="COLOR: #010001">ib_mgr</SPAN></FONT>.<FONT color=#010001><SPAN
style="COLOR: #010001">lkey</SPAN></FONT>;<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN
style="FONT-SIZE: 11pt; FONT-FAMILY: Arial"><o:p> </o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN
style="FONT-SIZE: 11pt; FONT-FAMILY: Arial">
<FONT color=green><SPAN style="COLOR: green">/* Setup the work request.
*/<o:p></o:p></SPAN></FONT></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN
style="FONT-SIZE: 11pt; FONT-FAMILY: Arial">
<FONT color=#010001><SPAN
style="COLOR: #010001">p_desc</SPAN></FONT>-><FONT color=#010001><SPAN
style="COLOR: #010001">wr</SPAN></FONT>.<FONT color=#010001><SPAN
style="COLOR: #010001">p_next</SPAN></FONT> = <FONT color=#010001><SPAN
style="COLOR: #010001">NULL</SPAN></FONT>;<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN
style="FONT-SIZE: 11pt; FONT-FAMILY: Arial">
<FONT color=#010001><SPAN
style="COLOR: #010001">p_desc</SPAN></FONT>-><FONT color=#010001><SPAN
style="COLOR: #010001">wr</SPAN></FONT>.<FONT color=#010001><SPAN
style="COLOR: #010001">wr_id</SPAN></FONT> = (<FONT color=#010001><SPAN
style="COLOR: #010001">uintn_t</SPAN></FONT>)<FONT color=#010001><SPAN
style="COLOR: #010001">p_desc</SPAN></FONT>-><FONT color=#010001><SPAN
style="COLOR: #010001">p_pkt</SPAN></FONT>;<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN
style="FONT-SIZE: 11pt; FONT-FAMILY: Arial">
<FONT color=#010001><SPAN
style="COLOR: #010001">p_desc</SPAN></FONT>-><FONT color=#010001><SPAN
style="COLOR: #010001">wr</SPAN></FONT>.<FONT color=#010001><SPAN
style="COLOR: #010001">wr_type</SPAN></FONT> = <FONT color=#010001><SPAN
style="COLOR: #010001">WR_SEND</SPAN></FONT>;<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN
style="FONT-SIZE: 11pt; FONT-FAMILY: Arial">
<FONT color=#010001><SPAN
style="COLOR: #010001">p_desc</SPAN></FONT>-><FONT color=#010001><SPAN
style="COLOR: #010001">wr</SPAN></FONT>.<FONT color=#010001><SPAN
style="COLOR: #010001">send_opt</SPAN></FONT> = <FONT color=#010001><SPAN
style="COLOR: #010001">IB_SEND_OPT_SIGNALED</SPAN></FONT>;<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN
style="FONT-SIZE: 11pt; FONT-FAMILY: Arial">
<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN
style="FONT-SIZE: 11pt; FONT-FAMILY: Arial">
<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN
style="FONT-SIZE: 11pt; FONT-FAMILY: Arial">
<FONT color=#010001><SPAN
style="COLOR: #010001">p_desc</SPAN></FONT>-><FONT color=#010001><SPAN
style="COLOR: #010001">wr</SPAN></FONT>.<FONT color=#010001><SPAN
style="COLOR: #010001">ds_array</SPAN></FONT> = <FONT color=#010001><SPAN
style="COLOR: #010001">p_desc</SPAN></FONT>-><FONT color=#010001><SPAN
style="COLOR: #010001">local_ds</SPAN></FONT>;<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN
style="FONT-SIZE: 11pt; FONT-FAMILY: Arial"><o:p> </o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN
style="FONT-SIZE: 11pt; FONT-FAMILY: Arial">
<FONT color=#010001><SPAN
style="COLOR: #010001">p_desc</SPAN></FONT>-><FONT color=#010001><SPAN
style="COLOR: #010001">wr</SPAN></FONT>.<FONT color=#010001><SPAN
style="COLOR: #010001">dgrm</SPAN></FONT>.<FONT color=#010001><SPAN
style="COLOR: #010001">ud</SPAN></FONT>.<FONT color=#010001><SPAN
style="COLOR: #010001">remote_qp</SPAN></FONT> = <FONT color=#010001><SPAN
style="COLOR: #010001">p_desc</SPAN></FONT>-><FONT color=#010001><SPAN
style="COLOR: #010001">p_endpt</SPAN></FONT>-><FONT color=#010001><SPAN
style="COLOR: #010001">qpn</SPAN></FONT>;<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN
style="FONT-SIZE: 11pt; FONT-FAMILY: Arial">
<FONT color=#010001><SPAN
style="COLOR: #010001">p_desc</SPAN></FONT>-><FONT color=#010001><SPAN
style="COLOR: #010001">wr</SPAN></FONT>.<FONT color=#010001><SPAN
style="COLOR: #010001">dgrm</SPAN></FONT>.<FONT color=#010001><SPAN
style="COLOR: #010001">ud</SPAN></FONT>.<FONT color=#010001><SPAN
style="COLOR: #010001">remote_qkey</SPAN></FONT> = <FONT color=#010001><SPAN
style="COLOR: #010001">p_port</SPAN></FONT>-><FONT color=#010001><SPAN
style="COLOR: #010001">ib_mgr</SPAN></FONT>.<FONT color=#010001><SPAN
style="COLOR: #010001">bcast_rec</SPAN></FONT>.<FONT color=#010001><SPAN
style="COLOR: #010001">qkey</SPAN></FONT>;<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN
style="FONT-SIZE: 11pt; FONT-FAMILY: Arial">
<FONT color=#010001><SPAN
style="COLOR: #010001">p_desc</SPAN></FONT>-><FONT color=#010001><SPAN
style="COLOR: #010001">wr</SPAN></FONT>.<FONT color=#010001><SPAN
style="COLOR: #010001">dgrm</SPAN></FONT>.<FONT color=#010001><SPAN
style="COLOR: #010001">ud</SPAN></FONT>.<FONT color=#010001><SPAN
style="COLOR: #010001">h_av</SPAN></FONT> = <FONT color=#010001><SPAN
style="COLOR: #010001">p_desc</SPAN></FONT>-><FONT color=#010001><SPAN
style="COLOR: #010001">p_endpt</SPAN></FONT>-><FONT color=#010001><SPAN
style="COLOR: #010001">h_av</SPAN></FONT>;<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN
style="FONT-SIZE: 11pt; FONT-FAMILY: Arial">
<FONT color=#010001><SPAN
style="COLOR: #010001">p_desc</SPAN></FONT>-><FONT color=#010001><SPAN
style="COLOR: #010001">wr</SPAN></FONT>.<FONT color=#010001><SPAN
style="COLOR: #010001">dgrm</SPAN></FONT>.<FONT color=#010001><SPAN
style="COLOR: #010001">ud</SPAN></FONT>.<FONT color=#010001><SPAN
style="COLOR: #010001">pkey_index</SPAN></FONT> = <FONT color=#010001><SPAN
style="COLOR: #010001">p_port</SPAN></FONT>-><FONT color=#010001><SPAN
style="COLOR: #010001">pkey_index</SPAN></FONT>;<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN
style="FONT-SIZE: 11pt; FONT-FAMILY: Arial">
<FONT color=#010001><SPAN
style="COLOR: #010001">p_desc</SPAN></FONT>-><FONT color=#010001><SPAN
style="COLOR: #010001">wr</SPAN></FONT>.<FONT color=#010001><SPAN
style="COLOR: #010001">dgrm</SPAN></FONT>.<FONT color=#010001><SPAN
style="COLOR: #010001">ud</SPAN></FONT>.<FONT color=#010001><SPAN
style="COLOR: #010001">rsvd</SPAN></FONT> = <FONT color=#010001><SPAN
style="COLOR: #010001">NULL</SPAN></FONT>;<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN
style="FONT-SIZE: 11pt; FONT-FAMILY: Arial"><o:p> </o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN
style="FONT-SIZE: 11pt; FONT-FAMILY: Arial">
<FONT color=blue><SPAN style="COLOR: blue">return</SPAN></FONT> <FONT
color=#010001><SPAN
style="COLOR: #010001">NDIS_STATUS_SUCCESS</SPAN></FONT>;<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN
style="FONT-SIZE: 11pt; FONT-FAMILY: Arial">}<o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN
style="FONT-SIZE: 11pt; FONT-FAMILY: Arial"> <o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN
style="FONT-SIZE: 11pt; FONT-FAMILY: Arial"><o:p> </o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN
style="FONT-SIZE: 11pt; FONT-FAMILY: Arial"><o:p> </o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN
style="FONT-SIZE: 11pt; FONT-FAMILY: Arial"> <o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN
style="FONT-SIZE: 11pt; FONT-FAMILY: Arial"> <o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN
style="FONT-SIZE: 11pt; FONT-FAMILY: Arial"><o:p> </o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN
style="FONT-SIZE: 11pt; FONT-FAMILY: Arial"> <o:p></o:p></SPAN></FONT></P>
<P class=MsoNormal><FONT face=Arial size=2><SPAN
style="FONT-SIZE: 11pt; FONT-FAMILY: Arial"><o:p> </o:p></SPAN></FONT></P></DIV></BLOCKQUOTE></BODY></HTML>