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