um...@gatech.edu wrote:
Hi,

Given RDMA CM (server) listening on a given IP address and port number with a backlog values greater than 1. The problem is that every time more than one connection requests are sent to the listening port, rdma_listen() traps the later request but gives an error. What might be the reason for this error.
Given previous discussions on the mailing list about the meaning of the backlog value, 
it's unclear whether it indicates the number of connection waiting to be processed (is 
that after the currently accepted connection has completed processing?) or is it 
"just an attribute of the service/listening endpoint" (again it's unclear what 
is the function of this attribute).


The backlog dictates how many pending rdma connect requests the kernel will keep in-queue for your application to accept/reject.

So, in general, how is it possible to listen for and deal with multiple 
connections request on the same IP/port value?


The app should set the backlog to something appropriate, issue the listen, and then process rdma cm connect request events from the rdma cm event channel associated with the listening cm_id. Its up to the app as to whether it will process and accept more than one connect request at a time.

I suggest you look at rping for an example application. In its persistent server mode (-P), the server will handle multiple connections.

You can fetch the rping source code from:

http://www.openfabrics.org/downloads/rdmacm/librdmacm-1.0.8.tar.gz.

Look in src/examples/rping.c.

Steve.

_______________________________________________
general mailing list
general@lists.openfabrics.org
http://lists.openfabrics.org/cgi-bin/mailman/listinfo/general

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

Reply via email to