} /* end foreach op */
/*
- * Send our memory info (synchronously)
+ * Send our memory info. The client performs the first send to comply
+ * with the iWARP MPA protocol's "Connection Startup Rules".
*/
DT_Tdep_PT_Debug (1,(phead,"Test[" F64x "]: Sending %s Memory Info\n",
test_ptr->base_port,
test_ptr->is_server ? "Server" : "Client"));
- /* post the send buffer */
- if (!DT_post_send_buffer (phead,
+ if (!test_ptr->is_server ) {
+
+ /* post the send buffer */
+ if (!DT_post_send_buffer (phead,
test_ptr->ep_context[i].ep_handle,
test_ptr->ep_context[i].bp,
RMI_SEND_BUFFER_ID,
buff_size))
- {
- /* error message printed by DT_post_send_buffer */
- goto test_failure;
- }
- /* reap the send and verify it */
- dto_cookie.as_64 = LZERO;
- dto_cookie.as_ptr =
- (DAT_PVOID) DT_Bpool_GetBuffer (
- test_ptr->ep_context[i].bp,
- RMI_SEND_BUFFER_ID);
- if (!DT_dto_event_wait (phead, test_ptr->reqt_evd_hdl, &dto_stat) ||
- !DT_dto_check ( phead,
+ {
+ /* error message printed by DT_post_send_buffer */
+ goto test_failure;
+ }
+ /* reap the send and verify it */
+ dto_cookie.as_64 = LZERO;
+ dto_cookie.as_ptr =
+ (DAT_PVOID) DT_Bpool_GetBuffer (
+ test_ptr->ep_context[i].bp,
+ RMI_SEND_BUFFER_ID);
+ if (!DT_dto_event_wait (phead, test_ptr->reqt_evd_hdl, &dto_stat) ||
+ !DT_dto_check ( phead,
&dto_stat,
test_ptr->ep_context[i].ep_handle,
buff_size,
dto_cookie,
test_ptr->is_server ? "Client_Mem_Info_Send"
: "Server_Mem_Info_Send"))
- {
- goto test_failure;
+ {
+ goto test_failure;
+ }
}
/*
goto test_failure;
}
+ if (test_ptr->is_server ) {
+ /* post the send buffer */
+ if (!DT_post_send_buffer (phead,
+ test_ptr->ep_context[i].ep_handle,
+ test_ptr->ep_context[i].bp,
+ RMI_SEND_BUFFER_ID,
+ buff_size))
+ {
+ /* error message printed by DT_post_send_buffer */
+ goto test_failure;
+ }
+ /* reap the send and verify it */
+ dto_cookie.as_64 = LZERO;
+ dto_cookie.as_ptr =
+ (DAT_PVOID) DT_Bpool_GetBuffer (
+ test_ptr->ep_context[i].bp,
+ RMI_SEND_BUFFER_ID);
+ if (!DT_dto_event_wait (phead, test_ptr->reqt_evd_hdl, &dto_stat) ||
+ !DT_dto_check ( phead,
+ &dto_stat,
+ test_ptr->ep_context[i].ep_handle,
+ buff_size,
+ dto_cookie,
+ test_ptr->is_server ? "Client_Mem_Info_Send"
+ : "Server_Mem_Info_Send"))
+ {
+ goto test_failure;
+ }
+ }
+
/*
* Extract what we need
*/