<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>
<!--
 /* 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:blue;
        text-decoration:underline;}
p
        {mso-margin-top-alt:auto;
        margin-right:0in;
        mso-margin-bottom-alt:auto;
        margin-left:0in;
        font-size:12.0pt;
        font-family:"Times New Roman";}
span.EmailStyle18
        {mso-style-type:personal-reply;
        font-family:Arial;
        color:navy;}
@page Section1
        {size:8.5in 11.0in;
        margin:1.0in 1.25in 1.0in 1.25in;}
div.Section1
        {page:Section1;}
-->
</style>

</head>

<body lang=EN-US link=blue vlink=blue>

<div class=Section1>

<p class=MsoNormal><font size=2 color=blue face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:blue'>Please do not change the layout of struct
ib_wc from what’s in SVN.  The structure format aligns with both the
winverbs and libibverbs work completion structures.  This allows
applications that are already coded to use libibverbs to more easily port to
windows without suffering any performance penalty for fast path operations.  See
below for details</span></font><font size=2 color=navy face=Arial><span
style='font-size:10.0pt;font-family:Arial;color:navy'>:<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'><o:p> </o:p></span></font></p>

<div style='border:none;border-left:solid blue 1.5pt;padding:0in 0in 0in 4.0pt'>

<p><font size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'>The
structure ib_ca_attr_t alread contains the field ipoib_csum (according to your
request).<br>
The structure ib_wc_t will look as:<br>
<br>
typedef struct _ib_wc<br>
{<br>
        TO_LONG_PTR(struct _ib_wc*
,    p_next) ;<br>
       
uint64_t       
               
        wr_id;<br>
        ib_wc_type_t   
       
        wc_type;<br>
<br>
       
uint32_t       
       
       
        length;<br>
        ib_wc_status_t 
       
        status;<br>
        <font color=red><span
style='color:red'>uint64_t       
       
       
        vendor_specific;<br>
<br>
</span></font><font color=navy><span style='color:navy'><o:p></o:p></span></font></span></font></p>

<p><font size=2 color=blue face=Arial><span style='font-size:10.0pt;font-family:
Arial;color:blue'>Please keep this as wc_type, length, vendor_specific, then
status to avoid compiler padding because of a misaligned 64-bit value.<o:p></o:p></span></font></p>

<p><font size=2 face=Arial><span style='font-size:10.0pt;font-family:Arial'><br>
        union _wc_recv<br>
        {<br>
       
        struct _wc_conn<br>
       
        {<br>
       
       
        ib_recv_opt_t   recv_opt;<br>
       
       
       
ib_net32_t     
        immediate_data;<br>
<br>
       
       
}       conn;<br>
<br>
       
        struct _wc_ud<br>
               
{<br>
       
       
        ib_recv_opt_t   recv_opt;<br>
       
       
       
ib_net32_t     
        immediate_data;<br>
       
       
       
ib_net32_t     
        remote_qp;<br>
       
       
       
uint16_t       
        pkey_index;<br>
       
               
ib_net16_t     
        remote_lid;<br>
       
       
        uint8_t
        remote_sl;<br>
       
       
        uint8_t
        path_bits;<br>
       
       
       <font color=red><span
style='color:red'>
uint8_t           csum_ok;<br>
</span></font><br>
       
       
}       ud;<br>
<br>
       
        struct _wc_raw_ipv6<br>
       
        {<br>
       
       
       
ib_net16_t     
        remote_lid;<br>
       
       
        uint8_t
       
        remote_sl;<br>
       
       
        uint8_t
       
        path_bits;<br>
<br>
       
       
}       raw_ipv6;<br>
<br>
       
        struct _wc_raw_ether<br>
       
        {<br>
       
       
       
ib_net16_t     
        remote_lid;<br>
       
       
        uint8_t
       
        remote_sl;<br>
       
       
        uint8_t
       
        path_bits;<br>
       
       
       
ib_net16_t             
ether_type;<br>
<br>
       
       
}       raw_ether;<br>
<br>
       
}       recv;<br>
<br>
}       ib_wc_t;</span></font><font size=2><span
style='font-size:10.0pt'><o:p></o:p></span></font></p>

<p><font size=2 face="Times New Roman"><span style='font-size:10.0pt'>> </span></font><o:p></o:p></p>

</div>

</div>

</body>

</html>