Sean,

I didn't bring it up on the call because I wanted to check on a couple of 
semantics, but I think you could just use a single 
"socket(AF_UNIX,SOCK_DGRAM,0)" socket per endpoint RX context.  This should 
scale -- it doesn't blow up as O(P^2) like RC QPs / SOCK_STREAM sockets / named 
pipes would.  You could expose that UNIX domain socket fd directly to the 
libfabric application or you could shove it into an epoll set and then the app 
would be given the epoll instance's FD.

The SOCK_DGRAM should be reliable [1], preserve message boundaries, and 
maintain ordering.

There's some question about what the right naming scheme for the sun_path value 
should be.  Perhaps "/tmp/libfabric/${PID}/rx_ctx${N}" would be a reasonable 
starting point?  If on Linux we could use the abstract socket namespace through 
sticking '\0' in sun_path[0], which should help with cleanup issues.

-Dave

[1] http://man7.org/linux/man-pages/man7/unix.7.html
_______________________________________________
ofiwg mailing list
[email protected]
http://lists.openfabrics.org/mailman/listinfo/ofiwg

Reply via email to