I guess HAVE_IBV_LINK_LAYER_ETHERNET is guarding against a libibverbs that doesn't have IBV_LINK_LAYER_ETHERNET defined. So the proper fix, I think, is to enhance configure to check this and #define HAVE_IBV_LINK_LAYER_ETHERNET if it exists. Or have it check existence of a link_layer field in the ibv_port_attr structure.
> -----Original Message----- > From: Steve Wise [mailto:sw...@opengridcomputing.com] > Sent: Monday, August 19, 2013 3:53 PM > To: 'Open MPI Developers'; 'Jeff Squyres (jsquyres)' > Cc: 'Indranil Choudhury' > Subject: RE: [OMPI devel] openmpi-1.7.2 fails to use the RDMACM CPC > > > This patch fixes iwarp. dunno if it breaks RoCE though :) > > > [root@r9 ompi-trunk]# svn diff > Index: ompi/mca/btl/openib/connect/btl_openib_connect_oob.c > =================================================================== > --- ompi/mca/btl/openib/connect/btl_openib_connect_oob.c (revision > 29048) > +++ ompi/mca/btl/openib/connect/btl_openib_connect_oob.c (working copy) > @@ -127,7 +127,7 @@ > IB (this CPC will not work with iWarp). If we do not have the > transport_type member, then we must be < OFED v1.2, and > therefore we must be IB. */ > -#if defined(HAVE_STRUCT_IBV_DEVICE_TRANSPORT_TYPE) && > defined(HAVE_IBV_LINK_LAYER_ETHERNET) > +#if defined(HAVE_STRUCT_IBV_DEVICE_TRANSPORT_TYPE) > if (BTL_OPENIB_CONNECT_BASE_CHECK_IF_NOT_IB(btl)) { > opal_output_verbose(5, ompi_btl_base_framework.framework_output, > "openib BTL: oob CPC only supported on > InfiniBand; skipped on %s:%d",