Ok, glad I got this conversation started :) So, we need a slight redesign to determine the cm method (unless forced via commandline arg). This can be determined by calling all the individual open routines, and having them return a priority based on their ability to function. For example, the xoob open function will check the mca_btl_openib_component.num_xrc_qps for a non-zero value and return the priority based on that.
Of course, if forced then it will only call that specific open function and throw any relevant errors as necessary. If this sounds sane, then let me know and I'll start coding it up. Thanks, Jon