<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>