Problems occur when testing the Programming Examples Using IBV Verbs

My Cards are ConnectX-3Pro EN (mcx311A-XCCT), and are connected with back-to-back mode (two cards and a wire).

When I attempt to test the programming Examples Using IBV Verbs given in the “RDMA Aware Programming User Manual.pdf”, I run into problems.

the example encapsulated a series of function such as sock_conncet, connect_qp, post_send, post_receive……

but when I attempt to use post_send with IBV_WR_SEND two or more times, it tells me that “got bad completion with status: 0xd”. I mean it’s ok to use it only once.

relevant code are as followed (I haven’t modified any other places in the code):

while(cnt < 10){

/* let the server post the sr */

if(!config.server_name)

if(post_send($res,IBV_WR_SEND))

{

fprintf( stderr, “failed to post sr\n” );

goto main_exit;

}

/* in both sides we expect to get a completion */

if ( poll_completion( &res ) )

{

fprintf( stderr, “poll completion failed\n” );

goto main_exit;

}

cnt++;

}

RDMA Aware Programming User Manual.pdf is at "http://www.mellanox.com/related-docs/prod_software/RDMA_Aware_Programming_user_manual.pdf http://www.mellanox.com/related-docs/prod_software/RDMA_Aware_Programming_user_manual.pdf ", page 121

I believe that this event is generated when a sender is unable to receive feedback from the receiver. This means that either the receiver just never ACKs sender messages in a specified time period, or it has been disconnected or it is in a bad state which prevents it from responding.

yes, it’s important to cope with synchronization, and have to set service iptables off