Provided by: libibnetdisc-dev_2.1.0-1build1_amd64 bug


       ibnd_discover_fabric,  ibnd_destroy_fabric,  ibnd_debug  ibnd_show_progress  -  initialize
       ibnetdiscover library.


       #include <infiniband/ibnetdisc.h>

       ibnd_fabric_t *ibnd_discover_fabric(struct ibmad_port *ibmad_port, int timeout_ms, ib_portid_t *from, int hops)
       void ibnd_destroy_fabric(ibnd_fabric_t *fabric)
       void ibnd_debug(int i)
       void ibnd_show_progress(int i)
       int ibnd_set_max_smps_on_wire(int i)


       ibnd_discover_fabric() Discover the fabric connected to the port specified by  ibmad_port,
       using a timeout specified.  The "from" and "hops" parameters are optional and allow one to
       scan part of a fabric by specifying a node "from" and a number of hops away from that node
       to  scan,  "hops".   This  gives the user a "sub-fabric" which is "centered" anywhere they

       ibmad_port must be opened with at least IB_SMI_CLASS and IB_SMI_DIRECT_CLASS  classes  for
       ibnd_discover_fabric to work.

       ibnd_destroy_fabric() free all memory and resources associated with the fabric.

       ibnd_debug() Set the debug level to be printed as library operations take place.

       ibnd_show_progress()  Indicate that the library should print debug output which shows it's
       progress through the fabric.

       ibnd_set_max_smps_on_wire() Set the number of SMPĀ“s which  will  be  issued  on  the  wire


       ibnd_discover_fabric() return NULL on failure, otherwise a valid ibnd_fabric_t object.

       ibnd_destory_fabric(), ibnd_debug() NONE

       ibnd_set_max_smps_on_wire() The previous value is returned


       Discover the entire fabric connected to device mthca0 , port 1.

            int  mgmt_classes[2]  =  {IB_SMI_CLASS,  IB_SMI_DIRECT_CLASS};      struct ibmad_port
       *ibmad_port = mad_rpc_open_port(ca, ca_port, mgmt_classes, 2);      ibnd_fabric_t  *fabric
       =        ibnd_discover_fabric(ibmad_port,        100,       NULL,       0);            ...
            ibnd_destroy_fabric(fabric);      mad_rpc_close_port(ibmad_port);

       Discover only a single node and those nodes connected to it.

            ...           str2drpath(&(port_id.drpath),      from,      0,      0);           ...
            ibnd_discover_fabric(ibmad_port, 100, &port_id, 1);      ...


            libibmad, mad_rpc_open_port


       Ira Weiny <>