ibnd_discover_fabric(3) — Linux manual page

NAME | SYNOPSIS | DESCRIPTION | RETURN VALUE | EXAMPLES | SEE ALSO | AUTHORS | COLOPHON

IBND_DISCOVER_FABRIC(3) OpenIB Programmer's ManualIBND_DISCOVER_FABRIC(3)

NAME         top

       ibnd_discover_fabric, ibnd_destroy_fabric, ibnd_debug
       ibnd_show_progress - initialize ibnetdiscover library.

SYNOPSIS         top

       #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)

DESCRIPTION         top

       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 chose.

       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 simultaneously.

RETURN VALUE         top

       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

EXAMPLES         top

       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);      ...

SEE ALSO         top

            libibmad, mad_rpc_open_port

AUTHORS         top

       Ira Weiny <weiny2@llnl.gov>

COLOPHON         top

       This page is part of the rdma-core (RDMA Core Userspace Libraries
       and Daemons) project.  Information about the project can be found
       at ⟨https://github.com/linux-rdma/rdma-core⟩.  If you have a bug
       report for this manual page, send it to
       linux-rdma@vger.kernel.org.  This page was obtained from the
       project's upstream Git repository
       ⟨https://github.com/linux-rdma/rdma-core.git⟩ on 2025-08-11.  (At
       that time, the date of the most recent commit that was found in
       the repository was 2025-08-04.)  If you discover any rendering
       problems in this HTML version of the page, or you believe there is
       a better or more up-to-date source for the page, or you have
       corrections or improvements to the information in this COLOPHON
       (which is not part of the original manual page), send a mail to
       man-pages@man7.org

OpenIB                        July 25, 2008       IBND_DISCOVER_FABRIC(3)