> Steve, 
> 
> Thanks for pointing me to the MPA spec. requirement. At this time, I 
> don't see a way around this. Although I like the idea of transparently 
> satisfying this requirement as part of the iWARP CMs connection 
> establishment, that doesn't appear to be viable or standard.
> 
> Any objections to using this compressed version of your patch? 

No objections. 

> I 
> updated the comment to explain the flow control and used the 
> same portion of code for both the client and server's receive.
> 

Do the other dapltest programs need this too?  Like the perf tests and
limit tests?  I have only run the transaction tests over cxgb3...


> test/dapltest/test/dapl_transaction_test.c
> ===================================================================
> --- test/dapltest/test/dapl_transaction_test.c        (revision 6735)
> +++ test/dapltest/test/dapl_transaction_test.c        (working copy)
> @@ -972,38 +972,42 @@ retry:
>       }   /* 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;
> +         }
>       }
>  
>       /*
> @@ -1029,6 +1033,36 @@ retry:
>           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
>        */

_______________________________________________
openib-general mailing list
[email protected]
http://openib.org/mailman/listinfo/openib-general

To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general

Reply via email to