<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" 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 11 (filtered medium)">
<style>
<!--
/* Font Definitions */
@font-face
{font-family:Wingdings;
panose-1:5 0 0 0 0 0 0 0 0 0;}
/* 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-compose;
font-family:Arial;
color:windowtext;
font-weight:normal;
font-style:normal;
text-decoration:none none;}
@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:367608016;
mso-list-type:hybrid;
mso-list-template-ids:-825735102 2063220696 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}
@list l0:level1
{mso-level-start-at:0;
mso-level-number-format:bullet;
mso-level-text:-;
mso-level-tab-stop:.5in;
mso-level-number-position:left;
text-indent:-.25in;
font-family:Arial;
mso-fareast-font-family:"Times New Roman";}
ol
{margin-bottom:0in;}
ul
{margin-bottom:0in;}
-->
</style>
</head>
<body lang=EN-US link=blue vlink=purple>
<div class=Section1>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:11.0pt;
font-family:Arial'>Hi All,<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:11.0pt;
font-family:Arial'><o:p> </o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:11.0pt;
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 size=2 face=Arial><span style='font-size:11.0pt;
font-family:Arial'><o:p> </o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:11.0pt;
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:.5in;text-indent:-.25in;mso-list:l0 level1 lfo1'><![if !supportLists]><font
size=2 face=Arial><span style='font-size:11.0pt;font-family:Arial'><span
style='mso-list:Ignore'>-<font size=1 face="Times New Roman"><span
style='font:7.0pt "Times New Roman"'>
</span></font></span></span></font><![endif]><font size=2 face=Arial><span
style='font-size:11.0pt;font-family:Arial'>On systems that equipped with IOMMUs.<o:p></o:p></span></font></p>
<p class=MsoNormal style='margin-left:.5in;text-indent:-.25in;mso-list:l0 level1 lfo1'><![if !supportLists]><font
size=2 face=Arial><span style='font-size:11.0pt;font-family:Arial'><span
style='mso-list:Ignore'>-<font size=1 face="Times New Roman"><span
style='font:7.0pt "Times New Roman"'>
</span></font></span></span></font><![endif]><font size=2 face=Arial><span
style='font-size:11.0pt;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 size=2 face=Arial><span style='font-size:11.0pt;
font-family:Arial'><o:p> </o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:11.0pt;
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 size=2 face=Arial><span style='font-size:11.0pt;
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='color:red;font-weight:bold'>highlighted Red </span></font></b>which
are not DMA buffers that I mentioned.<o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:11.0pt;
font-family:Arial'><o:p> </o:p></span></font></p>
<p class=MsoNormal style='text-autospace:none'><font size=2 color=blue
face=Arial><span style='font-size:11.0pt;font-family:Arial;color:blue'>static</span></font><font
size=2 face=Arial><span style='font-size:11.0pt;font-family:Arial'> <font
color="#010001"><span style='color:#010001'>NDIS_STATUS<o:p></o:p></span></font></span></font></p>
<p class=MsoNormal style='text-autospace:none'><font size=2 color="#010001"
face=Arial><span style='font-size:11.0pt;font-family:Arial;color:#010001'>__send_mgr_filter_arp</span></font><font
size=2 face=Arial><span style='font-size:11.0pt;font-family:Arial'>(<o:p></o:p></span></font></p>
<p class=MsoNormal style='text-autospace:none'><font size=2 face=Arial><span
style='font-size:11.0pt;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 style='text-autospace:none'><font size=2 face=Arial><span
style='font-size:11.0pt;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 style='text-autospace:none'><font size=2 face=Arial><span
style='font-size:11.0pt;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 style='text-autospace:none'><font size=2 face=Arial><span
style='font-size:11.0pt;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 style='text-autospace:none'><font size=2 face=Arial><span
style='font-size:11.0pt;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 style='text-autospace:none'><font size=2 face=Arial><span
style='font-size:11.0pt;font-family:Arial'>{<o:p></o:p></span></font></p>
<p class=MsoNormal style='text-autospace:none'><font size=2 face=Arial><span
style='font-size:11.0pt;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 style='text-autospace:none'><font size=2 face=Arial><span
style='font-size:11.0pt;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 style='text-autospace:none'><font size=2 face=Arial><span
style='font-size:11.0pt;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 style='text-autospace:none'><font size=2 face=Arial><span
style='font-size:11.0pt;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 style='text-autospace:none'><font size=2 face=Arial><span
style='font-size:11.0pt;font-family:Arial'><o:p> </o:p></span></font></p>
<p class=MsoNormal style='text-autospace:none'><font size=2 face=Arial><span
style='font-size:11.0pt;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 style='text-autospace:none'><font size=2 face=Arial><span
style='font-size:11.0pt;font-family:Arial'> {<o:p></o:p></span></font></p>
<p class=MsoNormal style='text-autospace:none'><font size=2 face=Arial><span
style='font-size:11.0pt;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 style='text-autospace:none'><font size=2 face=Arial><span
style='font-size:11.0pt;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 style='text-autospace:none'><font size=2 face=Arial><span
style='font-size:11.0pt;font-family:Arial'> }<o:p></o:p></span></font></p>
<p class=MsoNormal style='text-autospace:none'><font size=2 face=Arial><span
style='font-size:11.0pt;font-family:Arial'> <font
color=blue><span style='color:blue'>else<o:p></o:p></span></font></span></font></p>
<p class=MsoNormal style='text-autospace:none'><font size=2 face=Arial><span
style='font-size:11.0pt;font-family:Arial'> {<o:p></o:p></span></font></p>
<p class=MsoNormal style='text-autospace:none'><font size=2 face=Arial><span
style='font-size:11.0pt;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 style='text-autospace:none'><font size=2 face=Arial><span
style='font-size:11.0pt;font-family:Arial'> }<o:p></o:p></span></font></p>
<p class=MsoNormal style='text-autospace:none'><font size=2 face=Arial><span
style='font-size:11.0pt;font-family:Arial'><o:p> </o:p></span></font></p>
<p class=MsoNormal style='text-autospace:none'><font size=2 face=Arial><span
style='font-size:11.0pt;font-family:Arial'><o:p> </o:p></span></font></p>
<p class=MsoNormal style='text-autospace:none'><font size=2 face=Arial><span
style='font-size:11.0pt;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 style='text-autospace:none'><b><font size=2 color=red
face=Arial><span style='font-size:11.0pt;font-family:Arial;color:red;
font-weight:bold'> p_desc->p_buf
= (send_buf_t*)<o:p></o:p></span></font></b></p>
<p class=MsoNormal style='text-autospace:none'><b><font size=2 color=red
face=Arial><span style='font-size:11.0pt;font-family:Arial;color:red;
font-weight:bold'> ExAllocateFromNPagedLookasideList(
&p_port->buf_mgr.send_buf_list );<o:p></o:p></span></font></b></p>
<p class=MsoNormal style='text-autospace:none'><font size=2 face=Arial><span
style='font-size:11.0pt;font-family:Arial'><o:p> </o:p></span></font></p>
<p class=MsoNormal style='text-autospace:none'><font size=2 face=Arial><span
style='font-size:11.0pt;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 style='text-autospace:none'><font size=2 face=Arial><span
style='font-size:11.0pt;font-family:Arial'><o:p> </o:p></span></font></p>
<p class=MsoNormal style='text-autospace:none'><font size=2 face=Arial><span
style='font-size:11.0pt;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 style='text-autospace:none'><font size=2 face=Arial><span
style='font-size:11.0pt;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 style='text-autospace:none'><font size=2 face=Arial><span
style='font-size:11.0pt;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 style='text-autospace:none'><font size=2 face=Arial><span
style='font-size:11.0pt;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 style='text-autospace:none'><font size=2 face=Arial><span
style='font-size:11.0pt;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 style='text-autospace:none'><font size=2 face=Arial><span
style='font-size:11.0pt;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 style='text-autospace:none'><font size=2 face=Arial><span
style='font-size:11.0pt;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 style='text-autospace:none'><font size=2 face=Arial><span
style='font-size:11.0pt;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 style='text-autospace:none'><font size=2 face=Arial><span
style='font-size:11.0pt;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 style='text-autospace:none'><font size=2 face=Arial><span
style='font-size:11.0pt;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 style='text-autospace:none'><font size=2 face=Arial><span
style='font-size:11.0pt;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 style='text-autospace:none'><font size=2 face=Arial><span
style='font-size:11.0pt;font-family:Arial'><o:p> </o:p></span></font></p>
<p class=MsoNormal style='text-autospace:none'><font size=2 face=Arial><span
style='font-size:11.0pt;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 style='text-autospace:none'><font size=2 face=Arial><span
style='font-size:11.0pt;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 style='text-autospace:none'><font size=2 face=Arial><span
style='font-size:11.0pt;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 style='text-autospace:none'><font size=2 face=Arial><span
style='font-size:11.0pt;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 style='text-autospace:none'><font size=2 face=Arial><span
style='font-size:11.0pt;font-family:Arial'><o:p> </o:p></span></font></p>
<p class=MsoNormal style='text-autospace:none'><font size=2 face=Arial><span
style='font-size:11.0pt;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 style='text-autospace:none'><font size=2 face=Arial><span
style='font-size:11.0pt;font-family:Arial'>}<o:p></o:p></span></font></p>
<p class=MsoNormal style='text-autospace:none'><font size=2 face=Arial><span
style='font-size:11.0pt;font-family:Arial'><o:p> </o:p></span></font></p>
<p class=MsoNormal style='text-autospace:none'><font size=2 color=blue
face=Arial><span style='font-size:11.0pt;font-family:Arial;color:blue'>static</span></font><font
size=2 face=Arial><span style='font-size:11.0pt;font-family:Arial'> <font
color="#010001"><span style='color:#010001'>NDIS_STATUS<o:p></o:p></span></font></span></font></p>
<p class=MsoNormal style='text-autospace:none'><font size=2 color="#010001"
face=Arial><span style='font-size:11.0pt;font-family:Arial;color:#010001'>__send_mgr_filter_udp</span></font><font
size=2 face=Arial><span style='font-size:11.0pt;font-family:Arial'>(<o:p></o:p></span></font></p>
<p class=MsoNormal style='text-autospace:none'><font size=2 face=Arial><span
style='font-size:11.0pt;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 style='text-autospace:none'><font size=2 face=Arial><span
style='font-size:11.0pt;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 style='text-autospace:none'><font size=2 face=Arial><span
style='font-size:11.0pt;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 style='text-autospace:none'><font size=2 face=Arial><span
style='font-size:11.0pt;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 style='text-autospace:none'><font size=2 face=Arial><span
style='font-size:11.0pt;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 style='text-autospace:none'><font size=2 face=Arial><span
style='font-size:11.0pt;font-family:Arial'>{<o:p></o:p></span></font></p>
<p class=MsoNormal style='text-autospace:none'><font size=2 face=Arial><span
style='font-size:11.0pt;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 style='text-autospace:none'><font size=2 face=Arial><span
style='font-size:11.0pt;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 style='text-autospace:none'><font size=2 face=Arial><span
style='font-size:11.0pt;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 style='text-autospace:none'><font size=2 face=Arial><span
style='font-size:11.0pt;font-family:Arial'> {<o:p></o:p></span></font></p>
<p class=MsoNormal style='text-autospace:none'><font size=2 face=Arial><span
style='font-size:11.0pt;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 style='text-autospace:none'><font size=2 face=Arial><span
style='font-size:11.0pt;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 style='text-autospace:none'><font size=2 face=Arial><span
style='font-size:11.0pt;font-family:Arial'> }<o:p></o:p></span></font></p>
<p class=MsoNormal style='text-autospace:none'><font size=2 face=Arial><span
style='font-size:11.0pt;font-family:Arial'> <font
color=blue><span style='color:blue'>else<o:p></o:p></span></font></span></font></p>
<p class=MsoNormal style='text-autospace:none'><font size=2 face=Arial><span
style='font-size:11.0pt;font-family:Arial'> {<o:p></o:p></span></font></p>
<p class=MsoNormal style='text-autospace:none'><font size=2 face=Arial><span
style='font-size:11.0pt;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 style='text-autospace:none'><font size=2 face=Arial><span
style='font-size:11.0pt;font-family:Arial'> }<o:p></o:p></span></font></p>
<p class=MsoNormal style='text-autospace:none'><font size=2 face=Arial><span
style='font-size:11.0pt;font-family:Arial'><o:p> </o:p></span></font></p>
<p class=MsoNormal style='text-autospace:none'><font size=2 face=Arial><span
style='font-size:11.0pt;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 style='text-autospace:none'><font size=2 face=Arial><span
style='font-size:11.0pt;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 style='text-autospace:none'><font size=2 face=Arial><span
style='font-size:11.0pt;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 style='text-autospace:none'><font size=2 face=Arial><span
style='font-size:11.0pt;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 style='text-autospace:none'><font size=2 face=Arial><span
style='font-size:11.0pt;font-family:Arial'> {<o:p></o:p></span></font></p>
<p class=MsoNormal style='text-autospace:none'><font size=2 face=Arial><span
style='font-size:11.0pt;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 style='text-autospace:none'><font size=2 face=Arial><span
style='font-size:11.0pt;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 style='text-autospace:none'><font size=2 face=Arial><span
style='font-size:11.0pt;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 style='text-autospace:none'><font size=2 face=Arial><span
style='font-size:11.0pt;font-family:Arial'> }<o:p></o:p></span></font></p>
<p class=MsoNormal style='text-autospace:none'><font size=2 face=Arial><span
style='font-size:11.0pt;font-family:Arial'><o:p> </o:p></span></font></p>
<p class=MsoNormal style='text-autospace:none'><font size=2 face=Arial><span
style='font-size:11.0pt;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 style='text-autospace:none'><font size=2 face=Arial><span
style='font-size:11.0pt;font-family:Arial'><o:p> </o:p></span></font></p>
<p class=MsoNormal style='text-autospace:none'><font size=2 face=Arial><span
style='font-size:11.0pt;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 style='text-autospace:none'><b><font size=2 color=red
face=Arial><span style='font-size:11.0pt;font-family:Arial;color:red;
font-weight:bold'> p_desc->p_buf
= (send_buf_t*)<o:p></o:p></span></font></b></p>
<p class=MsoNormal style='text-autospace:none'><b><font size=2 color=red
face=Arial><span style='font-size:11.0pt;font-family:Arial;color:red;
font-weight:bold'> ExAllocateFromNPagedLookasideList(
&p_port->buf_mgr.send_buf_list );<o:p></o:p></span></font></b></p>
<p class=MsoNormal style='text-autospace:none'><font size=2 face=Arial><span
style='font-size:11.0pt;font-family:Arial'><o:p> </o:p></span></font></p>
<p class=MsoNormal style='text-autospace:none'><font size=2 face=Arial><span
style='font-size:11.0pt;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 style='text-autospace:none'><font size=2 face=Arial><span
style='font-size:11.0pt;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 style='text-autospace:none'><font size=2 face=Arial><span
style='font-size:11.0pt;font-family:Arial'> <font
color="#010001"><span style='color:#010001'>cl_memcpy</span></font>(<o:p></o:p></span></font></p>
<p class=MsoNormal style='text-autospace:none'><font size=2 face=Arial><span
style='font-size:11.0pt;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 style='text-autospace:none'><font size=2 face=Arial><span
style='font-size:11.0pt;font-family:Arial'><o:p> </o:p></span></font></p>
<p class=MsoNormal style='text-autospace:none'><font size=2 face=Arial><span
style='font-size:11.0pt;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 style='text-autospace:none'><font size=2 face=Arial><span
style='font-size:11.0pt;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 style='text-autospace:none'><font size=2 face=Arial><span
style='font-size:11.0pt;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 style='text-autospace:none'><font size=2 face=Arial><span
style='font-size:11.0pt;font-family:Arial'>}<o:p></o:p></span></font></p>
<p class=MsoNormal style='text-autospace:none'><font size=2 face=Arial><span
style='font-size:11.0pt;font-family:Arial'><o:p> </o:p></span></font></p>
<p class=MsoNormal style='text-autospace:none'><font size=2 color=blue
face=Arial><span style='font-size:11.0pt;font-family:Arial;color:blue'>static</span></font><font
size=2 face=Arial><span style='font-size:11.0pt;font-family:Arial'> <font
color="#010001"><span style='color:#010001'>NDIS_STATUS<o:p></o:p></span></font></span></font></p>
<p class=MsoNormal style='text-autospace:none'><font size=2 color="#010001"
face=Arial><span style='font-size:11.0pt;font-family:Arial;color:#010001'>__build_send_desc</span></font><font
size=2 face=Arial><span style='font-size:11.0pt;font-family:Arial'>(<o:p></o:p></span></font></p>
<p class=MsoNormal style='text-autospace:none'><font size=2 face=Arial><span
style='font-size:11.0pt;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 style='text-autospace:none'><font size=2 face=Arial><span
style='font-size:11.0pt;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 style='text-autospace:none'><font size=2 face=Arial><span
style='font-size:11.0pt;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 style='text-autospace:none'><font size=2 face=Arial><span
style='font-size:11.0pt;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 style='text-autospace:none'><font size=2 face=Arial><span
style='font-size:11.0pt;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 style='text-autospace:none'><font size=2 face=Arial><span
style='font-size:11.0pt;font-family:Arial'>{<o:p></o:p></span></font></p>
<p class=MsoNormal style='text-autospace:none'><font size=2 face=Arial><span
style='font-size:11.0pt;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 style='text-autospace:none'><font size=2 face=Arial><span
style='font-size:11.0pt;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 style='text-autospace:none'><font size=2 face=Arial><span
style='font-size:11.0pt;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 style='text-autospace:none'><font size=2 face=Arial><span
style='font-size:11.0pt;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 style='text-autospace:none'><font size=2 face=Arial><span
style='font-size:11.0pt;font-family:Arial'><o:p> </o:p></span></font></p>
<p class=MsoNormal style='text-autospace:none'><font size=2 face=Arial><span
style='font-size:11.0pt;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 style='text-autospace:none'><font size=2 face=Arial><span
style='font-size:11.0pt;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 style='text-autospace:none'><font size=2 face=Arial><span
style='font-size:11.0pt;font-family:Arial'><o:p> </o:p></span></font></p>
<p class=MsoNormal style='text-autospace:none'><font size=2 face=Arial><span
style='font-size:11.0pt;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 style='text-autospace:none'><font size=2 face=Arial><span
style='font-size:11.0pt;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 style='text-autospace:none'><font size=2 face=Arial><span
style='font-size:11.0pt;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 style='text-autospace:none'><font size=2 face=Arial><span
style='font-size:11.0pt;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 style='text-autospace:none'><font size=2 face=Arial><span
style='font-size:11.0pt;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 style='text-autospace:none'><font size=2 face=Arial><span
style='font-size:11.0pt;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 style='text-autospace:none'><font size=2 face=Arial><span
style='font-size:11.0pt;font-family:Arial'><o:p> </o:p></span></font></p>
<p class=MsoNormal style='text-autospace:none'><font size=2 face=Arial><span
style='font-size:11.0pt;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 style='text-autospace:none'><font size=2 face=Arial><span
style='font-size:11.0pt;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='color:red;font-weight:bold'>p_port->hdr[hdr_idx]</span></font></b>
);<o:p></o:p></span></font></p>
<p class=MsoNormal style='text-autospace:none'><font size=2 face=Arial><span
style='font-size:11.0pt;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 style='text-autospace:none'><font size=2 face=Arial><span
style='font-size:11.0pt;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 style='text-autospace:none'><font size=2 face=Arial><span
style='font-size:11.0pt;font-family:Arial'><o:p> </o:p></span></font></p>
<p class=MsoNormal style='text-autospace:none'><font size=2 face=Arial><span
style='font-size:11.0pt;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 style='text-autospace:none'><font size=2 face=Arial><span
style='font-size:11.0pt;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 style='text-autospace:none'><font size=2 face=Arial><span
style='font-size:11.0pt;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 style='text-autospace:none'><font size=2 face=Arial><span
style='font-size:11.0pt;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 style='text-autospace:none'><font size=2 face=Arial><span
style='font-size:11.0pt;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 style='text-autospace:none'><font size=2 face=Arial><span
style='font-size:11.0pt;font-family:Arial'> <o:p></o:p></span></font></p>
<p class=MsoNormal style='text-autospace:none'><font size=2 face=Arial><span
style='font-size:11.0pt;font-family:Arial'> <o:p></o:p></span></font></p>
<p class=MsoNormal style='text-autospace:none'><font size=2 face=Arial><span
style='font-size:11.0pt;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 style='text-autospace:none'><font size=2 face=Arial><span
style='font-size:11.0pt;font-family:Arial'><o:p> </o:p></span></font></p>
<p class=MsoNormal style='text-autospace:none'><font size=2 face=Arial><span
style='font-size:11.0pt;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 style='text-autospace:none'><font size=2 face=Arial><span
style='font-size:11.0pt;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 style='text-autospace:none'><font size=2 face=Arial><span
style='font-size:11.0pt;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 style='text-autospace:none'><font size=2 face=Arial><span
style='font-size:11.0pt;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 style='text-autospace:none'><font size=2 face=Arial><span
style='font-size:11.0pt;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 style='text-autospace:none'><font size=2 face=Arial><span
style='font-size:11.0pt;font-family:Arial'><o:p> </o:p></span></font></p>
<p class=MsoNormal style='text-autospace:none'><font size=2 face=Arial><span
style='font-size:11.0pt;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 style='text-autospace:none'><font size=2 face=Arial><span
style='font-size:11.0pt;font-family:Arial'>}<o:p></o:p></span></font></p>
<p class=MsoNormal style='text-autospace:none'><font size=2 face=Arial><span
style='font-size:11.0pt;font-family:Arial'> <o:p></o:p></span></font></p>
<p class=MsoNormal style='text-autospace:none'><font size=2 face=Arial><span
style='font-size:11.0pt;font-family:Arial'><o:p> </o:p></span></font></p>
<p class=MsoNormal style='text-autospace:none'><font size=2 face=Arial><span
style='font-size:11.0pt;font-family:Arial'><o:p> </o:p></span></font></p>
<p class=MsoNormal style='text-autospace:none'><font size=2 face=Arial><span
style='font-size:11.0pt;font-family:Arial'> <o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:11.0pt;
font-family:Arial'> <o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:11.0pt;
font-family:Arial'><o:p> </o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:11.0pt;
font-family:Arial'> <o:p></o:p></span></font></p>
<p class=MsoNormal><font size=2 face=Arial><span style='font-size:11.0pt;
font-family:Arial'><o:p> </o:p></span></font></p>
</div>
</body>
</html>