584b80147d
The btl_recv.h:lookup_sender() function uses the hashed ORTE proc name to determine the sender of the packet. With add_procs_cutoff>0, the usnic BTL may not have knowledge of all the senders. Until the usNIC BTL can be adjusted to do something like the openib/ugni BTLs (i.e., use opal_proc_for_name() to lookup unknown sender proc names), set MCA_BTL_FLAGS_SINGLE_ADD_PROCS, which means that ob1 will only all add_procs() once -- with all the procs in it. Also in this commit, adapt the connectivity checker to not rely on knowing all the senders (which is a bit easier than adapting the main BTL send path): the receiving connectivity agent will simply echo back the same PING message (which contains the sender's IP address+UDP port) back to the sender without checking that it knows who the sender is. If the sender receives the echoed PING back on the expexted interface, it will find a match in the pending pings list. If the sender receives the echoed PING back an unexpected interface, a match will not be found, and the incoming PING message will be dropped. Fixes open-mpi/ompi#1440