<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
<head>
<link rel="stylesheet" href="./robodoc.css" type="text/css">
<title>./iba_doc/ib_types_h.html</title>
<!-- Source: ./iba/ib_types.h -->
<!-- Generated with ROBODoc Version 4.99.17 (Aug  2 2005) -->
</head>
<body bgcolor="#FFFFFF">
<a name="robo_top_of_doc">Generated from ./iba/ib_types.h</a> with <a href="http://sourceforge.net/projects/robodoc/">ROBODoc</a> v4.99.17 on Thu Sep 22 2005 14:46:33
<br />
<hr />

<h2><a name="robo2">[Modules]<a name="IBA20Base2fConstants">
IBA Base/Constants</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_modules.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>Constants</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       The following constants are used throughout the IBA code base.

       Definitions are from the InfiniBand Architecture Specification v1.1
</pre>
</span>
<hr />

<h2><a name="robo3">[Modules]<a name="IBA20Base2fType20Definitions">
IBA Base/Type Definitions</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_modules.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       Type Definitions
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Definitions are from the InfiniBand Architecture Specification v1.1
</pre>
</span>
<hr />

<h2><a name="robo5">[Definitions]<a name="Access20Layer2fib5faccess5ft">
Access Layer/ib_access_t</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_definitions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_access_t</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Indicates the type of access is permitted on resources such as QPs,
       memory regions and memory windows.
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>typedef uint32_t                                <strong>ib_access_t</strong>;
#define IB_AC_RDMA_READ                 0x00000001
#define IB_AC_RDMA_WRITE                0x00000002
#define IB_AC_ATOMIC                    0x00000004
#define IB_AC_LOCAL_WRITE               0x00000008
#define IB_AC_MW_BIND                   0x00000010
</pre>
</span><p><strong>NOTES</strong></p>
<span class="NOTES"><pre>       Users may combine access rights using a bit-wise or operation to specify
       additional access.  For example: IB_AC_RDMA_READ | IB_AC_RDMA_WRITE grants
       RDMA read and write access.
</pre>
</span>
<hr />

<h2><a name="robo9">[Definitions]<a name="Access20Layer2fib5fapi5fstatus5ft">
Access Layer/ib_api_status_t</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_definitions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_api_status_t</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Function return codes indicating the success or failure of an API call.
       Note that success is indicated by the return value IB_SUCCESS, which
       is always zero.
</pre>
</span><p><strong>NOTES</strong></p>
<span class="NOTES"><pre>       IB_VERBS_PROCESSING_DONE is used by UVP library to terminate a verbs call
       in the pre-ioctl step itself.
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>typedef enum _<strong>ib_api_status_t</strong>
{
        IB_SUCCESS,
        IB_INSUFFICIENT_RESOURCES,
        IB_INSUFFICIENT_MEMORY,
        IB_INVALID_PARAMETER,
        IB_INVALID_SETTING,
        IB_NOT_FOUND,
        IB_TIMEOUT,
        IB_CANCELED,
        IB_INTERRUPTED,
        IB_INVALID_PERMISSION,
        IB_UNSUPPORTED,
        IB_OVERFLOW,
        IB_MAX_MCAST_QPS_REACHED,
        IB_INVALID_QP_STATE,
        IB_INVALID_APM_STATE,
        IB_INVALID_PORT_STATE,
        IB_INVALID_STATE,
        IB_RESOURCE_BUSY,
        IB_INVALID_PKEY,
        IB_INVALID_LKEY,
        IB_INVALID_RKEY,
        IB_INVALID_MAX_WRS,
        IB_INVALID_MAX_SGE,
        IB_INVALID_CQ_SIZE,
        IB_INVALID_SERVICE_TYPE,
        IB_INVALID_GID,
        IB_INVALID_LID,
        IB_INVALID_GUID,
        IB_INVALID_CA_HANDLE,
        IB_INVALID_AV_HANDLE,
        IB_INVALID_CQ_HANDLE,
        IB_INVALID_QP_HANDLE,
        IB_INVALID_PD_HANDLE,
        IB_INVALID_MR_HANDLE,
        IB_INVALID_MW_HANDLE,
        IB_INVALID_MCAST_HANDLE,
        IB_INVALID_CALLBACK,
        IB_INVALID_AL_HANDLE,                                   /* InfiniBand Access Layer */
        IB_INVALID_HANDLE,                                              /* InfiniBand Access Layer */
        IB_ERROR,                                                               /* InfiniBand Access Layer */
        IB_REMOTE_ERROR,                                                /* Infiniband Access Layer */
        IB_VERBS_PROCESSING_DONE,                               /* See Notes above                 */
        IB_INVALID_WR_TYPE,
        IB_QP_IN_TIMEWAIT,
        IB_INVALID_PORT,
        IB_NOT_DONE,
        IB_INVALID_INDEX,
        IB_NO_MATCH,
        IB_PENDING,
        IB_UNKNOWN_ERROR                                                /* ALWAYS LAST ENUM VALUE! */

}       <strong>ib_api_status_t</strong>;
</pre>
</span>
<hr />

<h2><a name="robo10">[Definitions]<a name="Access20Layer2fib5fapm5fstate5ft">
Access Layer/ib_apm_state_t</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_definitions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_apm_state_t</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       The current automatic path migration state of a queue pair
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>typedef enum _ib_apm_state
{
        IB_APM_MIGRATED = 1,
        IB_APM_REARM,
        IB_APM_ARMED

}       <strong>ib_apm_state_t</strong>;
</pre>
</span>
<hr />

<h2><a name="robo13">[Definitions]<a name="Access20Layer2fib5fapr5fstatus5ft">
Access Layer/ib_apr_status_t</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_definitions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_apr_status_t</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Automatic path migration status information.
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>typedef uint8_t                                                         <strong>ib_apr_status_t</strong>;
</pre>
</span><p><strong>SEE ALSO</strong></p>
<span class="SEE_ALSO"><pre>       <a href="./ib_al_h.html#robo29">ib_cm_apr</a>, <a href="./ib_al_h.html#robo30">ib_cm_apr_rec_t</a>
</pre>
</span><p><strong>SOURCE</strong></p>
<span class="SOURCE"><pre>#define IB_AP_SUCCESS                                           0
#define IB_AP_INVALID_COMM_ID                           1
#define IB_AP_UNSUPPORTED                                       2
#define IB_AP_REJECT                                            3
#define IB_AP_REDIRECT                                          4
#define IB_AP_IS_CURRENT                                        5
#define IB_AP_INVALID_QPN                                       6
#define IB_AP_INVALID_LID                                       7
#define IB_AP_INVALID_GID                                       8
#define IB_AP_INVALID_FLOW_LBL                          9
#define IB_AP_INVALID_TCLASS                            10
#define IB_AP_INVALID_HOP_LIMIT                         11
#define IB_AP_INVALID_PKT_RATE                          12
#define IB_AP_INVALID_SL                                        13
</pre>
</span>
<hr />

<h2><a name="robo16">[Definitions]<a name="Access20Layer2fib5fatomic5ft">
Access Layer/ib_atomic_t</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_definitions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_atomic_t</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Indicates atomicity levels supported by an adapter.
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>typedef enum _<strong>ib_atomic_t</strong>
{
        IB_ATOMIC_NONE,
        IB_ATOMIC_LOCAL,
        IB_ATOMIC_GLOBAL

}       <strong>ib_atomic_t</strong>;
</pre>
</span><p><strong>VALUES</strong></p>
<span class="VALUES"><pre>       IB_ATOMIC_NONE
               Atomic operations not supported.

       IB_ATOMIC_LOCAL
               Atomic operations guaranteed between QPs of a single CA.

       IB_ATOMIC_GLOBAL
               Atomic operations are guaranteed between CA and any other entity
               in the system.
</pre>
</span>
<hr />

<h2><a name="robo17">[Structures]<a name="Access20Layer2fib5fav5fattr5ft">
Access Layer/ib_av_attr_t</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_strutures.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_av_attr_t</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       IBA address vector.
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>typedef struct _ib_av_attr
{
        uint8_t                                 port_num;

        uint8_t                                 sl;
        <a href="#robo407">ib_net16_t</a>                              dlid;

        boolean_t                               grh_valid;
        <a href="#robo373">ib_grh_t</a>                                grh;
        uint8_t                                 static_rate;
        uint8_t                                 path_bits;

        struct _av_conn
        {
                uint8_t                         path_mtu;
                uint8_t                         local_ack_timeout;
                uint8_t                         seq_err_retry_cnt;
                uint8_t                         rnr_retry_cnt;

        }       conn;

}       <strong>ib_av_attr_t</strong>;
</pre>
</span><p><strong>SEE ALSO</strong></p>
<span class="SEE_ALSO"><pre>       <a href="#robo370">ib_gid_t</a>
</pre>
</span>
<hr />

<h2><a name="robo19">[Structures]<a name="Access20Layer2fib5fbind5fwr5ft">
Access Layer/ib_bind_wr_t</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_strutures.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_bind_wr_t</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Information used to submit a memory window bind work request to the send
       queue of a queue pair.
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>typedef struct _ib_bind_wr
{
        uint64_t                                wr_id;
        <a href="#robo208">ib_send_opt_t</a>                   send_opt;

        ib_mr_handle_t                  h_mr;
        <a href="#robo5">ib_access_t</a>                             access_ctrl;
        net32_t                                 current_rkey;

        <a href="#robo108">ib_local_ds_t</a>                   local_ds;

}       <strong>ib_bind_wr_t</strong>;
</pre>
</span><p><strong>FIELDS</strong></p>
<span class="FIELDS"><pre>       wr_id
               A 64-bit work request identifier that is returned to the consumer
               as part of the work completion.

       send_opt
               Optional send control parameters.

       h_mr
               Handle to the memory region to which this window is being bound.

       access_ctrl
               Access rights for this memory window.

       current_rkey
               The current rkey assigned to this window for remote access.

       local_ds
               A reference to a local data segment used by the bind operation.
</pre>
</span><p><strong>SEE ALSO</strong></p>
<span class="SEE_ALSO"><pre>       <a href="#robo208">ib_send_opt_t</a>, <a href="#robo5">ib_access_t</a>, <a href="#robo108">ib_local_ds_t</a>
</pre>
</span>
<hr />

<h2><a name="robo20">[Structures]<a name="Access20Layer2fib5fca5fattr5ft">
Access Layer/ib_ca_attr_t</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_strutures.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_ca_attr_t</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Information about a channel adapter.
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>typedef struct _ib_ca_attr
{
        <a href="#robo409">ib_net64_t</a>                              ca_guid;

        uint32_t                                vend_id;
        uint16_t                                dev_id;
        uint16_t                                revision;

        /*
         * Total size of the ca attributes in bytes
         */
        uint32_t                                size;
        uint32_t                                max_qps;
        uint32_t                                max_wrs;

        uint32_t                                max_sges;
        uint32_t                                max_rd_sges;

        uint32_t                                max_cqs;
        uint32_t                                max_cqes;

        uint32_t                                max_pds;

        uint32_t                                init_regions;
        uint64_t                                init_region_size;

        uint32_t                                init_windows;
        uint32_t                                max_addr_handles;

        uint32_t                                max_partitions;

        <a href="#robo16">ib_atomic_t</a>                             atomicity;

        uint8_t                                 max_qp_resp_res;
        uint8_t                                 max_resp_res;

        uint8_t                                 max_qp_init_depth;

        uint32_t                                max_ipv6_qps;
        uint32_t                                max_ether_qps;

        uint32_t                                max_mcast_grps;
        uint32_t                                max_mcast_qps;
        uint32_t                                max_qps_per_mcast_grp;

        /*
         * local_ack_delay:
         * Specifies the maximum time interval between the local CA receiving
         * a message and the transmission of the associated ACK or NAK.
         *
         * timeout = 4.096 microseconds * 2^local_ack_delay
         */
        uint8_t                                 local_ack_delay;

        boolean_t                               bad_pkey_ctr_support;
        boolean_t                               bad_qkey_ctr_support;
        boolean_t                               raw_mcast_support;
        boolean_t                               apm_support;
        boolean_t                               av_port_check;
        boolean_t                               change_primary_port;
        boolean_t                               modify_wr_depth;
        boolean_t                               current_qp_state_support;
        boolean_t                               shutdown_port_capability;
        boolean_t                               init_type_support;
        boolean_t                               port_active_event_support;
        boolean_t                               system_image_guid_support;
        boolean_t                               hw_agents;

        <a href="#robo409">ib_net64_t</a>                              system_image_guid;

        uint32_t                                num_page_sizes;
        uint8_t                                 num_ports;

        uint32_t* __ptr64               p_page_size;
        <a href="#robo160">ib_port_attr_t</a>* __ptr64 p_port_attr;

}       <strong>ib_ca_attr_t</strong>;
</pre>
</span><p><strong>FIELDS</strong></p>
<span class="FIELDS"><pre>       ca_guid
               GUID for this adapter.

       vend_id
               IEEE vendor ID for this adapter

       dev_id
               Device ID of this adapter. (typically from PCI device ID)

       revision
               Revision ID of this adapter

       size
               Total size in bytes for the HCA attributes.  This size includes total
               size required for all the variable members of the structure.  If a
               vendor requires to pass vendor specific fields beyond this structure,
               the HCA vendor can choose to report a larger size.  If a vendor is
               reporting extended vendor specific features, they should also provide
               appropriate access functions to aid with the required interpretation.

       max_qps
               Maximum number of QP's supported by this HCA.

       max_wrs
               Maximum number of work requests supported by this HCA.

       max_sges
               Maximum number of scatter gather elements supported per work request.

       max_rd_sges
               Maximum number of scatter gather elements supported for READ work
               requests for a Reliable Datagram QP.  This value must be zero if RD
               service is not supported.

       max_cqs
               Maximum number of Completion Queues supported.

       max_cqes
               Maximum number of CQ elements supported per CQ.

       max_pds
               Maximum number of protection domains supported.

       init_regions
               Initial number of memory regions supported.  These are only informative
               values.  HCA vendors can extended and grow these limits on demand.

       init_region_size
               Initial limit on the size of the registered memory region.

       init_windows
               Initial number of window entries supported.

       max_addr_handles
               Maximum number of address handles supported.

       max_partitions
               Maximum number of partitions supported.

       atomicity
               Indicates level of atomic operations supported by this HCA.

       max_qp_resp_res
               Maximum limit on number of responder resources for incomming RDMA
               operations on QPs.

       max_resp_res
               Maximum number of responder resources per HCA, with this HCA used as
               the target.

       max_qp_init_depth
               Maximimum initiator depth per QP for initiating RDMA reads and
               atomic operations.

       max_ipv6_qps
       max_ether_qps
               Maximum number of IPV6 and raw ether QP's supported by this HCA.

       max_mcast_grps
               Maximum number of multicast groups supported.

       max_mcast_qps
               Maximum number of QP's that can support multicast operations.

       max_qps_per_mcast_grp
               Maximum number of multicast QP's per multicast group.

       local_ack_delay
               Specifies the maximum time interval between the local CA receiving
               a message and the transmission of the associated ACK or NAK.
               timeout = 4.096 microseconds * 2^local_ack_delay

       bad_pkey_ctr_support
       bad_qkey_ctr_support
               Indicates support for the bad pkey and qkey counters.

       raw_mcast_support
               Indicates support for raw packet multicast.

       apm_support
               Indicates support for Automatic Path Migration.

       av_port_check
               Indicates ability to check port number in address handles.

       change_primary_port
               Indicates ability to change primary port for a QP during a
               SQD->RTS transition.

       modify_wr_depth
               Indicates ability to modify QP depth during a modify QP operation.
               Check the verb specification for permitted states.

       current_qp_state_support
               Indicates ability of the HCA to support the current QP state modifier
               during a modify QP operation.

       shutdown_port_capability
               Shutdown port capability support indicator.

       init_type_support
               Indicates init_type_reply and ability to set init_type is supported.

       port_active_event_support
               Port active event support indicator.

       system_image_guid_support
               System image GUID support indicator.

       hw_agents
               Indicates SMA is implemented in HW.

       system_image_guid
               Optional system image GUID.  This field is valid only if the
               system_image_guid_support flag is set.

       num_page_sizes
               Indicates support for different page sizes supported by the HCA.
               The variable size array can be obtained from p_page_size.

       num_ports
               Number of physical ports supported on this HCA.

       p_page_size
               Array holding different page size supported.

       p_port_attr
               Array holding port attributes.
</pre>
</span><p><strong>NOTES</strong></p>
<span class="NOTES"><pre>       This structure contains the attributes of a channel adapter.  Users must
       call <a href="#robo62">ib_copy_ca_attr</a> to copy the contents of this structure to a new
       memory region.
</pre>
</span><p><strong>SEE ALSO</strong></p>
<span class="SEE_ALSO"><pre>       <a href="#robo160">ib_port_attr_t</a>, <a href="#robo16">ib_atomic_t</a>, <a href="#robo62">ib_copy_ca_attr</a>
</pre>
</span>
<hr />

<h2><a name="robo21">[Definitions]<a name="Access20Layer2fib5fca5fmod5ft">
Access Layer/ib_ca_mod_t</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_definitions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_ca_mod_t</strong> -- Modify port attributes and error counters
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Specifies modifications to the port attributes of a channel adapter.
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>typedef uint32_t                                                        <strong>ib_ca_mod_t</strong>;
#define IB_CA_MOD_IS_CM_SUPPORTED                       0x00000001
#define IB_CA_MOD_IS_SNMP_SUPPORTED                     0x00000002
#define IB_CA_MOD_IS_DEV_MGMT_SUPPORTED         0x00000004
#define IB_CA_MOD_IS_VEND_SUPPORTED                     0x00000008
#define IB_CA_MOD_IS_SM                                         0x00000010
#define IB_CA_MOD_IS_SM_DISABLED                        0x00000020
#define IB_CA_MOD_QKEY_CTR                                      0x00000040
#define IB_CA_MOD_PKEY_CTR                                      0x00000080
#define IB_CA_MOD_IS_NOTICE_SUPPORTED           0x00000100
#define IB_CA_MOD_IS_TRAP_SUPPORTED                     0x00000200
#define IB_CA_MOD_IS_APM_SUPPORTED                      0x00000400
#define IB_CA_MOD_IS_SLMAP_SUPPORTED            0x00000800
#define IB_CA_MOD_IS_PKEY_NVRAM_SUPPORTED       0x00001000
#define IB_CA_MOD_IS_MKEY_NVRAM_SUPPORTED       0x00002000
#define IB_CA_MOD_IS_SYSGUID_SUPPORTED          0x00004000
#define IB_CA_MOD_IS_DR_NOTICE_SUPPORTED        0x00008000
#define IB_CA_MOD_IS_BOOT_MGMT_SUPPORTED        0x00010000
#define IB_CA_MOD_IS_CAPM_NOTICE_SUPPORTED      0x00020000
#define IB_CA_MOD_IS_REINIT_SUPORTED            0x00040000
#define IB_CA_MOD_IS_LEDINFO_SUPPORTED          0x00080000
#define IB_CA_MOD_SHUTDOWN_PORT                         0x00100000
#define IB_CA_MOD_INIT_TYPE_VALUE                       0x00200000
#define IB_CA_MOD_SYSTEM_IMAGE_GUID                     0x00400000
#define IB_CA_MOD_IS_CLIENT_REREGISTER_SUPPORTED        0x00800000
</pre>
</span><p><strong>VALUES</strong></p>
<span class="VALUES"><pre>       IB_CA_MOD_IS_CM_SUPPORTED
               Indicates if there is a communication manager accessible through
               the port.

       IB_CA_MOD_IS_SNMP_SUPPORTED
               Indicates if there is an SNMP agent accessible through the port.

       IB_CA_MOD_IS_DEV_MGMT_SUPPORTED
               Indicates if there is a device management agent accessible through
               the port.

       IB_CA_MOD_IS_VEND_SUPPORTED
               Indicates if there is a vendor supported agent accessible through
               the port.

       IB_CA_MOD_IS_SM
               Indicates if there is a subnet manager accessible through
               the port.

       IB_CA_MOD_IS_SM_DISABLED
               Indicates if the port has been disabled for configuration by the subnet
               manager.

       IB_CA_MOD_QKEY_CTR
               Used to reset the qkey violation counter associated with the port.

       IB_CA_MOD_PKEY_CTR
               Used to reset the pkey violation counter associated with the port.

       IB_CA_MOD_IS_NOTICE_SUPPORTED
               Indicates that this CA supports ability to generate Notices for
               Port State changes. (only applicable to switches)

       IB_CA_MOD_IS_TRAP_SUPPORTED
               Indicates that this management port supports ability to generate
               trap messages. (only applicable to switches)

       IB_CA_MOD_IS_APM_SUPPORTED
               Indicates that this port is capable of performing Automatic Migration.

       IB_CA_MOD_IS_SLMAP_SUPPORTED
               Indicates this port supports SLMAP capability.

       IB_CA_MOD_IS_PKEY_NVRAM_SUPPORTED
               Indicates that PKEY is supported in NVRAM

       IB_CA_MOD_IS_MKEY_NVRAM_SUPPORTED
               Indicates that MKEY is supported in NVRAM

       IB_CA_MOD_IS_SYSGUID_SUPPORTED
               Indicates System Image GUID support.

       IB_CA_MOD_IS_DR_NOTICE_SUPPORTED
               Indicate support for generating Direct Routed Notices

       IB_CA_MOD_IS_BOOT_MGMT_SUPPORTED
               Indicates support for Boot Management

       IB_CA_MOD_IS_CAPM_NOTICE_SUPPORTED
               Indicates capability to generate notices for changes to CAPMASK

       IB_CA_MOD_IS_REINIT_SUPORTED
               Indicates type of node init supported. Refer to Chapter 14 for
               Initialization actions.

       IB_CA_MOD_IS_LEDINFO_SUPPORTED
               Indicates support for LED info.

       IB_CA_MOD_SHUTDOWN_PORT
               Used to modify the port active indicator.

       IB_CA_MOD_INIT_TYPE_VALUE
               Used to modify the init_type value for the port.

       IB_CA_MOD_SYSTEM_IMAGE_GUID
               Used to modify the system image GUID for the port.

       IB_CA_MOD_IS_CLIENT_REREGISTER_SUPPORTED
               Used to modify the system image GUID for the port.
</pre>
</span>
<hr />

<h2><a name="robo26">[Structures]<a name="Access20Layer2fib5fci5fop5ft">
Access Layer/ib_ci_op_t</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_strutures.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_ci_op_t</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       A structure used for vendor specific CA interface communication.
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>typedef struct _ib_ci_op
{
        IN                              uint32_t                                        command;
        IN                              uint32_t                                        buf_size;
        IN                              uint32_t                                        buf_info;
        IN      OUT                     int32_t                                         status;
                OUT                     uint32_t                                        num_bytes_ret;
        IN      OUT                     void* __ptr64                           p_buf OPTIONAL;

}       <strong>ib_ci_op_t</strong>;
</pre>
</span><p><strong>FIELDS</strong></p>
<span class="FIELDS"><pre>       command
               A command code that is understood by the verbs provider.

       status
               The completion status from the verbs provider.  This field should be
               initialize to indicate an error to allow detection and cleanup in
               case a communication error occurs between user-mode and kernel-mode.

       buf_size
               The size of the buffer in bytes.

       buf_info
               Additional buffer information

       p_buf
               A reference to a buffer containing vendor specific data.  The verbs
               provider must not access pointers in the p_buf between user-mode and
               kernel-mode.  Any pointers embedded in the p_buf are invalidated by
               the user-mode/kernel-mode transition.

       num_bytes_ret
               The size in bytes of the vendor specific data returned in the buffer.
               This field is set by the verbs provider.  The verbs provider should
               verify that the buffer size is sufficient to hold the data being
               returned.
</pre>
</span><p><strong>NOTES</strong></p>
<span class="NOTES"><pre>       This structure is provided to allow the exchange of vendor specific
       data between the originator and the verbs provider.  Users of this
       structure are expected to know the format of data in the p_buf based
       on the structure command field or the usage context.
</pre>
</span>
<hr />

<h2><a name="robo33">[Definitions]<a name="Access20Layer2fib5fcm5fcap5fmask5ft">
Access Layer/ib_cm_cap_mask_t</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_definitions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_cm_cap_mask_t</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Capability mask values in ClassPortInfo.
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>#define IB_CM_RELIABLE_CONN_CAPABLE                     CL_HTON16(9)
#define IB_CM_RELIABLE_DGRM_CAPABLE                     CL_HTON16(10)
#define IB_CM_RDGRM_CAPABLE                                     CL_HTON16(11)
#define IB_CM_UNRELIABLE_CONN_CAPABLE           CL_HTON16(12)
#define IB_CM_SIDR_CAPABLE                                      CL_HTON16(13)
</pre>
</span><p><strong>SEE ALSO</strong></p>
<span class="SEE_ALSO"><pre>       <a href="./ib_al_h.html#robo53">ib_cm_rep</a>, <a href="#robo353">ib_class_port_info_t</a>
</pre>
</span><p><strong>SOURCE</strong></p>
<span class="SOURCE"><pre>*
</pre>
</span>
<hr />

<h2><a name="robo62">[Functions]<a name="Access20layer2fib5fcopy5fca5fattr">
Access layer/ib_copy_ca_attr</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_functions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_copy_ca_attr</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Copies CA attributes.
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>AL_EXPORT <a href="#robo20">ib_ca_attr_t</a>* AL_API
<strong>ib_copy_ca_attr</strong>(
        IN                              <a href="#robo20">ib_ca_attr_t</a>* const             p_dest,
        IN              const   <a href="#robo20">ib_ca_attr_t</a>* const             p_src );
</pre>
</span><p><strong>PARAMETERS</strong></p>
<span class="PARAMETERS"><pre>       p_dest
               Pointer to the buffer that is the destination of the copy.

       p_src
               Pointer to the CA attributes to copy.
</pre>
</span><p><strong>RETURN VALUE</strong></p>
<span class="RETURN_VALUE"><pre>       Pointer to the copied CA attributes.
</pre>
</span><p><strong>NOTES</strong></p>
<span class="NOTES"><pre>       The buffer pointed to by the p_dest parameter must be at least the size
       specified in the size field of the buffer pointed to by p_src.
</pre>
</span><p><strong>SEE ALSO</strong></p>
<span class="SEE_ALSO"><pre>       <a href="#robo20">ib_ca_attr_t</a>, ib_dup_ca_attr, ib_free_ca_attr
</pre>
</span>
<hr />

<h2><a name="robo101">[Definitions]<a name="Access20Layer2fib5finit5ftype5ft">
Access Layer/ib_init_type_t</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_definitions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_init_type_t</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       If supported by the HCA, the type of initialization requested by
       this port before SM moves it to the active or armed state.  If the
       SM implements reinitialization, it shall set these bits to indicate
       the type of initialization performed prior to activating the port.
       Otherwise, these bits shall be set to 0.
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>typedef uint8_t                                 <strong>ib_init_type_t</strong>;
#define IB_INIT_TYPE_NO_LOAD                            0x01
#define IB_INIT_TYPE_PRESERVE_CONTENT           0x02
#define IB_INIT_TYPE_PRESERVE_PRESENCE          0x04
#define IB_INIT_TYPE_DO_NOT_RESUSCITATE         0x08
</pre>
</span>
<hr />

<h2><a name="robo108">[Structures]<a name="Access20Layer2fib5flocal5fds5ft">
Access Layer/ib_local_ds_t</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_strutures.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_local_ds_t</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Local data segment information referenced by send and receive work
       requests.  This is used to specify local data buffers used as part of a
       work request.
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>typedef struct _ib_local_ds
{
        uint64_t                                vaddr;
        uint32_t                                length;
        uint32_t                                lkey;

}       <strong>ib_local_ds_t</strong>;
</pre>
</span>
<hr />

<h2><a name="robo119">[Structures]<a name="Access20Layer2fib5fmr5fattr5ft">
Access Layer/ib_mr_attr_t</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_strutures.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_mr_attr_t</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Attributes of a registered memory region.
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>typedef struct _ib_mr_attr
{
        ib_pd_handle_t                  h_pd;
        uint64_t                                local_lb;
        uint64_t                                local_ub;
        uint64_t                                remote_lb;
        uint64_t                                remote_ub;
        <a href="#robo5">ib_access_t</a>                             access_ctrl;
        net32_t                                 lkey;
        net32_t                                 rkey;

}       <strong>ib_mr_attr_t</strong>;
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       h_pd
               Handle to the protection domain for this memory region.

       local_lb
               The virtual address of the lower bound of protection for local
               memory access.  This is always a 64-bit quantity to support registering
               more than 4GB of memory on 32-bit systems with PAE.

       local_ub
               The virtual address of the upper bound of protection for local
               memory access.  This is always a 64-bit quantity to support registering
               more than 4GB of memory on 32-bit systems with PAE.

       remote_lb
               The virtual address of the lower bound of protection for remote
               memory access.  This is always a 64-bit quantity to support registering
               more than 4GB of memory on 32-bit systems with PAE.

       remote_ub
               The virtual address of the upper bound of protection for remote
               memory access.  This is always a 64-bit quantity to support registering
               more than 4GB of memory on 32-bit systems with PAE.

       access_ctrl
               Access rights for the specified memory region.

       lkey
               The lkey associated with this memory region.

       rkey
               The rkey associated with this memory region.
</pre>
</span><p><strong>NOTES</strong></p>
<span class="NOTES"><pre>       The remote_lb, remote_ub, and rkey are only valid if remote memory access
       is enabled for this memory region.
</pre>
</span><p><strong>SEE ALSO</strong></p>
<span class="SEE_ALSO"><pre>       <a href="#robo5">ib_access_t</a>
</pre>
</span>
<hr />

<h2><a name="robo120">[Structures]<a name="Access20Layer2fib5fmr5fcreate5ft">
Access Layer/ib_mr_create_t</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_strutures.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_mr_create_t</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Information required to create a registered memory region.
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>typedef struct _ib_mr_create
{
        void* __ptr64                   vaddr;
        uint64_t                                length;
        <a href="#robo5">ib_access_t</a>                             access_ctrl;

}       <strong>ib_mr_create_t</strong>;
</pre>
</span><p><strong>FIELDS</strong></p>
<span class="FIELDS"><pre>       vaddr
               Starting virtual address of the region being registered.

       length
               Length of the buffer to register.

       access_ctrl
               Access rights of the registered region.
</pre>
</span><p><strong>SEE ALSO</strong></p>
<span class="SEE_ALSO"><pre>       <a href="#robo5">ib_access_t</a>
</pre>
</span>
<hr />

<h2><a name="robo121">[Definitions]<a name="Access20Layer2fib5fmr5fmod5ft">
Access Layer/ib_mr_mod_t</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_definitions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_mr_mod_t</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Mask used to specify which attributes of a registered memory region are
       being modified.
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>typedef uint32_t                                                <strong>ib_mr_mod_t</strong>;
#define IB_MR_MOD_ADDR                                  0x00000001
#define IB_MR_MOD_PD                                    0x00000002
#define IB_MR_MOD_ACCESS                                0x00000004
</pre>
</span><p><strong>PARAMETERS</strong></p>
<span class="PARAMETERS"><pre>       IB_MEM_MOD_ADDR
               The address of the memory region is being modified.

       IB_MEM_MOD_PD
               The protection domain associated with the memory region is being
               modified.

       IB_MEM_MOD_ACCESS
               The access rights the memory region are being modified.
</pre>
</span>
<hr />

<h2><a name="robo125">[Definitions]<a name="Access20Layer2fib5fpd5ftype5ft">
Access Layer/ib_pd_type_t</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_definitions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_pd_type_t</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Indicates the type of protection domain being allocated.
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>typedef enum _ib_pd_type
{
        IB_PDT_NORMAL,
        IB_PDT_ALIAS,
        IB_PDT_SQP,
        IB_PDT_UD

}       <strong>ib_pd_type_t</strong>;
</pre>
</span><p><strong>VALUES</strong></p>
<span class="VALUES"><pre>       IB_PDT_NORMAL
               Protection domain for all non-aliased QPs.

       IB_PDT_ALIAS
               Protection domain for IB_QPT_QP0_ALIAS and IB_QPT_QP1_ALIAS QPs.

       IB_PDT_SQP
               Protection domain for special queue pair usage.

       IB_PDT_UD
               Protection domain for UD queue pair usage.
</pre>
</span>
<hr />

<h2><a name="robo147">[Structures]<a name="Access20Layer2fib5fphys5fcreate5ft">
Access Layer/ib_phys_create_t</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_strutures.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_phys_create_t</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Information required to create a physical memory region.
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>typedef struct _ib_phys_create
{
        uint64_t                                        length;
        uint32_t                                        num_ranges;
        <a href="#robo148">ib_phys_range_t</a>* __ptr64        range_array;
        uint32_t                                        buf_offset;
        uint32_t                                        hca_page_size;
        <a href="#robo5">ib_access_t</a>                                     access_ctrl;

}       <strong>ib_phys_create_t</strong>;
</pre>
</span><p><strong>FIELDS</strong></p>
<span class="FIELDS"><pre>       length
               The length of the memory region in bytes.

       num_ranges
               Number of ib_phys_range structures listed in the specified range array.

       range_array
               An array of ib_phys_range structures to be registered as a single memory
               region.

       buf_offset
               The offset into the first physical memory range of the specified memory
               region on which to start the virtual address.

       hca_page_size
               The HCA page size to use to register the memory.

       access_ctrl
               Access rights of the registered region.
</pre>
</span><p><strong>SEE ALSO</strong></p>
<span class="SEE_ALSO"><pre>       <a href="#robo5">ib_access_t</a>
</pre>
</span>
<hr />

<h2><a name="robo148">[Structures]<a name="Access20Layer2fib5fphys5frange5ft">
Access Layer/ib_phys_range_t</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_strutures.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_phys_range_t</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Information describing a physical memory range.
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>typedef struct _ib_phys_range
{
        uint64_t                                base_addr;
        uint64_t                                size;

}       <strong>ib_phys_range_t</strong>;
</pre>
</span><p><strong>FIELDS</strong></p>
<span class="FIELDS"><pre>       base_addr
               Physical address of the base of the memory range.

       size
               size, in bytes, of the memory range.
</pre>
</span><p><strong>NOTES</strong></p>
<span class="NOTES"><pre>       The base address must be start and end on an HCA-supported page boundary.
</pre>
</span><p><strong>SEE ALSO</strong></p>
<span class="SEE_ALSO"><pre>       <a href="#robo147">ib_phys_create_t</a>
</pre>
</span>
<hr />

<h2><a name="robo159">[Structures]<a name="Access20Layer2fib5fport5fattr5fmod5ft">
Access Layer/ib_port_attr_mod_t</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_strutures.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_port_attr_mod_t</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Port attributes that may be modified.
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>typedef struct _ib_port_attr_mod
{
        <a href="#robo161">ib_port_cap_t</a>                   cap;
        uint16_t                                pkey_ctr;
        uint16_t                                qkey_ctr;

        <a href="#robo101">ib_init_type_t</a>                  init_type;
        <a href="#robo409">ib_net64_t</a>                              system_image_guid;

}       <strong>ib_port_attr_mod_t</strong>;
</pre>
</span><p><strong>SEE ALSO</strong></p>
<span class="SEE_ALSO"><pre>       <a href="#robo161">ib_port_cap_t</a>
</pre>
</span>
<hr />

<h2><a name="robo160">[Structures]<a name="Access20Layer2fib5fport5fattr5ft">
Access Layer/ib_port_attr_t</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_strutures.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_port_attr_t</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Information about a port on a given channel adapter.
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>typedef struct _ib_port_attr
{
        <a href="#robo409">ib_net64_t</a>                              port_guid;
        uint8_t                                 port_num;
        uint8_t                                 mtu;
        uint64_t                                max_msg_size;
        <a href="#robo407">ib_net16_t</a>                              lid;
        uint8_t                                 lmc;

        /*
         * LinkWidthSupported as defined in PortInfo.  Required to calculate
         * inter-packet delay (a.k.a. static rate).
         */
        uint8_t                                 link_width_supported;

        uint16_t                                max_vls;

        <a href="#robo407">ib_net16_t</a>                              sm_lid;
        uint8_t                                 sm_sl;
        uint8_t                                 link_state;

        <a href="#robo101">ib_init_type_t</a>                  init_type_reply;        /* Optional */

        /*
         * subnet_timeout:
         * The maximum expected subnet propagation delay to reach any port on
         * the subnet.  This value also determines the rate at which traps can
         * be generated from this node.
         *
         * timeout = 4.096 microseconds * 2^subnet_timeout
         */
        uint8_t                                 subnet_timeout;

        <a href="#robo161">ib_port_cap_t</a>                   cap;
        uint16_t                                pkey_ctr;
        uint16_t                                qkey_ctr;

        uint16_t                                num_gids;
        uint16_t                                num_pkeys;
        /*
         * Pointers at the end of the structure to allow doing a simple
         * memory comparison of contents up to the first pointer.
         */
        <a href="#robo370">ib_gid_t</a>* __ptr64               p_gid_table;
        <a href="#robo407">ib_net16_t</a>* __ptr64             p_pkey_table;

}       <strong>ib_port_attr_t</strong>;
</pre>
</span><p><strong>SEE ALSO</strong></p>
<span class="SEE_ALSO"><pre>       uint8_t, <a href="#robo161">ib_port_cap_t</a>, <a href="#robo234">ib_link_states_t</a>
</pre>
</span>
<hr />

<h2><a name="robo161">[Structures]<a name="Access20Layer2fib5fport5fcap5ft">
Access Layer/ib_port_cap_t</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_strutures.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_port_cap_t</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Indicates which management agents are currently available on the specified
       port.
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>typedef struct _ib_port_cap
{
        boolean_t               cm;
        boolean_t               snmp;
        boolean_t               dev_mgmt;
        boolean_t               vend;
        boolean_t               sm;
        boolean_t               sm_disable;
        boolean_t               qkey_ctr;
        boolean_t               pkey_ctr;
        boolean_t               notice;
        boolean_t               trap;
        boolean_t               apm;
        boolean_t               slmap;
        boolean_t               pkey_nvram;
        boolean_t               mkey_nvram;
        boolean_t               sysguid;
        boolean_t               dr_notice;
        boolean_t               boot_mgmt;
        boolean_t               capm_notice;
        boolean_t               reinit;
        boolean_t               ledinfo;
        boolean_t               port_active;
        boolean_t               ipd;
        boolean_t               pkey_switch_ext_port;
        boolean_t               bm;
        boolean_t               link_rtl;
        boolean_t               client_reregister;

}       <strong>ib_port_cap_t</strong>;
</pre>
</span>
<hr />

<h2><a name="robo165">[Structures]<a name="Access20Layer2fib5fqp5fattr5ft">
Access Layer/ib_qp_attr_t</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_strutures.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_qp_attr_t</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Queue pair attributes returned through <a href="./ib_al_h.html#robo178">ib_query_qp</a>.
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>typedef struct _ib_qp_attr
{
        ib_pd_handle_t                  h_pd;
        <a href="#robo170">ib_qp_type_t</a>                    qp_type;
        <a href="#robo5">ib_access_t</a>                             access_ctrl;
        uint16_t                                pkey_index;

        uint32_t                                sq_max_inline;
        uint32_t                                sq_depth;
        uint32_t                                rq_depth;
        uint32_t                                sq_sge;
        uint32_t                                rq_sge;
        uint8_t                                 init_depth;
        uint8_t                                 resp_res;

        ib_cq_handle_t                  h_sq_cq;
        ib_cq_handle_t                  h_rq_cq;

        boolean_t                               sq_signaled;

        <a href="#robo169">ib_qp_state_t</a>                   state;
        <a href="#robo408">ib_net32_t</a>                              num;
        <a href="#robo408">ib_net32_t</a>                              dest_num;
        <a href="#robo408">ib_net32_t</a>                              qkey;

        <a href="#robo408">ib_net32_t</a>                              sq_psn;
        <a href="#robo408">ib_net32_t</a>                              rq_psn;

        uint8_t                                 primary_port;
        uint8_t                                 alternate_port;
        <a href="#robo17">ib_av_attr_t</a>                    primary_av;
        <a href="#robo17">ib_av_attr_t</a>                    alternate_av;
        <a href="#robo10">ib_apm_state_t</a>                  apm_state;

}       <strong>ib_qp_attr_t</strong>;
</pre>
</span><p><strong>FIELDS</strong></p>
<span class="FIELDS"><pre>       h_pd
               This is a handle to a protection domain associated with the QP.

       sq_max_inline
               Maximum payload that can be inlined directly in a WQE, eliminating
               protection checks and additional DMA operations.
</pre>
</span><p><strong>NOTES</strong></p>
<span class="NOTES"><pre>       Other fields are defined by the Infiniband specification.
</pre>
</span><p><strong>SEE ALSO</strong></p>
<span class="SEE_ALSO"><pre>       <a href="#robo170">ib_qp_type_t</a>, <a href="#robo5">ib_access_t</a>, <a href="#robo169">ib_qp_state_t</a>, <a href="#robo17">ib_av_attr_t</a>, <a href="#robo10">ib_apm_state_t</a>
</pre>
</span>
<hr />

<h2><a name="robo166">[Structures]<a name="Access20Layer2fib5fqp5fcreate5ft">
Access Layer/ib_qp_create_t</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_strutures.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_qp_create_t</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Attributes used to initialize a queue pair at creation time.
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>typedef struct _ib_qp_create
{
        <a href="#robo170">ib_qp_type_t</a>                    qp_type;

        uint32_t                                sq_depth;
        uint32_t                                rq_depth;
        uint32_t                                sq_sge;
        uint32_t                                rq_sge;

        ib_cq_handle_t                  h_sq_cq;
        ib_cq_handle_t                  h_rq_cq;

        boolean_t                               sq_signaled;

}       <strong>ib_qp_create_t</strong>;
</pre>
</span><p><strong>FIELDS</strong></p>
<span class="FIELDS"><pre>       type
               Specifies the type of queue pair to create.

       sq_depth
               Indicates the requested maximum number of work requests that may be
               outstanding on the queue pair's send queue.  This value must be less
               than or equal to the maximum reported by the channel adapter associated
               with the queue pair.

       rq_depth
               Indicates the requested maximum number of work requests that may be
               outstanding on the queue pair's receive queue.  This value must be less
               than or equal to the maximum reported by the channel adapter associated
               with the queue pair.

       sq_sge
               Indicates the maximum number scatter-gather elements that may be
               given in a send work request.  This value must be less
               than or equal to the maximum reported by the channel adapter associated
               with the queue pair.

       rq_sge
               Indicates the maximum number scatter-gather elements that may be
               given in a receive work request.  This value must be less
               than or equal to the maximum reported by the channel adapter associated
               with the queue pair.

       h_sq_cq
               A handle to the completion queue that will be used to report send work
               request completions.  This handle must be NULL if the type is
               IB_QPT_MAD, IB_QPT_QP0_ALIAS, or IB_QPT_QP1_ALIAS.

       h_rq_cq
               A handle to the completion queue that will be used to report receive
               work request completions.  This handle must be NULL if the type is
               IB_QPT_MAD, IB_QPT_QP0_ALIAS, or IB_QPT_QP1_ALIAS.

       sq_signaled
               A flag that is used to indicate whether the queue pair will signal
               an event upon completion of a send work request.  If set to
               TRUE, send work requests will always generate a completion
               event.  If set to FALSE, a completion event will only be
               generated if the send_opt field of the send work request has the
               IB_SEND_OPT_SIGNALED flag set.
</pre>
</span><p><strong>SEE ALSO</strong></p>
<span class="SEE_ALSO"><pre>       <a href="#robo170">ib_qp_type_t</a>, <a href="#robo165">ib_qp_attr_t</a>
</pre>
</span>
<hr />

<h2><a name="robo167">[Structures]<a name="Access20Layer2fib5fqp5fmod5ft">
Access Layer/ib_qp_mod_t</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_strutures.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_qp_mod_t</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Information needed to change the state of a queue pair through the
       <a href="./ib_al_h.html#robo118">ib_modify_qp</a> call.
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>typedef struct _ib_qp_mod
{
        <a href="#robo169">ib_qp_state_t</a>                           req_state;

        union _qp_state
        {
                struct _qp_init
                {
                        uint8_t                         primary_port;
                        <a href="#robo408">ib_net32_t</a>                      qkey;
                        uint16_t                        pkey_index;
                        <a href="#robo5">ib_access_t</a>                     access_ctrl;

                }       init;

                struct _qp_rtr
                {
                        <a href="#robo408">ib_net32_t</a>                      rq_psn;
                        <a href="#robo408">ib_net32_t</a>                      dest_qp;
                        <a href="#robo17">ib_av_attr_t</a>            primary_av;
                        uint8_t                         resp_res;
                        uint8_t                         rnr_nak_timeout;

                        <a href="#robo168">ib_qp_opts_t</a>            opts;
                        <a href="#robo17">ib_av_attr_t</a>            alternate_av;
                        <a href="#robo408">ib_net32_t</a>                      qkey;
                        uint16_t                        pkey_index;
                        <a href="#robo5">ib_access_t</a>                     access_ctrl;
                        uint32_t                        sq_depth;
                        uint32_t                        rq_depth;

                }       rtr;

                struct _qp_rts
                {
                        <a href="#robo408">ib_net32_t</a>                      sq_psn;
                        uint8_t                         retry_cnt;
                        uint8_t                         rnr_retry_cnt;
                        uint8_t                         local_ack_timeout;
                        uint8_t                         init_depth;

                        <a href="#robo168">ib_qp_opts_t</a>            opts;
                        uint8_t                         rnr_nak_timeout;
                        <a href="#robo169">ib_qp_state_t</a>           current_state;
                        <a href="#robo408">ib_net32_t</a>                      qkey;
                        <a href="#robo5">ib_access_t</a>                     access_ctrl;
                        uint8_t                         resp_res;

                        <a href="#robo17">ib_av_attr_t</a>            primary_av;
                        <a href="#robo17">ib_av_attr_t</a>            alternate_av;

                        uint32_t                        sq_depth;
                        uint32_t                        rq_depth;

                        <a href="#robo10">ib_apm_state_t</a>          apm_state;
                        uint8_t                         primary_port;
                        uint16_t                        pkey_index;

                }       rts;

                struct _qp_sqd
                {
                        boolean_t                       sqd_event;

                }       sqd;

        }       state;

}       <strong>ib_qp_mod_t</strong>;
</pre>
</span><p><strong>SEE ALSO</strong></p>
<span class="SEE_ALSO"><pre>       <a href="#robo169">ib_qp_state_t</a>, <a href="#robo5">ib_access_t</a>, <a href="#robo17">ib_av_attr_t</a>, <a href="#robo10">ib_apm_state_t</a>
</pre>
</span>
<hr />

<h2><a name="robo168">[Definitions]<a name="Access20Layer2fib5fqp5fopts5ft">
Access Layer/ib_qp_opts_t</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_definitions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_qp_opts_t</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Optional fields supplied in the modify QP operation.
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>typedef uint32_t                                <strong>ib_qp_opts_t</strong>;
#define IB_MOD_QP_ALTERNATE_AV          0x00000001
#define IB_MOD_QP_PKEY                          0x00000002
#define IB_MOD_QP_APM_STATE                     0x00000004
#define IB_MOD_QP_PRIMARY_AV            0x00000008
#define IB_MOD_QP_RNR_NAK_TIMEOUT       0x00000010
#define IB_MOD_QP_RESP_RES                      0x00000020
#define IB_MOD_QP_INIT_DEPTH            0x00000040
#define IB_MOD_QP_PRIMARY_PORT          0x00000080
#define IB_MOD_QP_ACCESS_CTRL           0x00000100
#define IB_MOD_QP_QKEY                          0x00000200
#define IB_MOD_QP_SQ_DEPTH                      0x00000400
#define IB_MOD_QP_RQ_DEPTH                      0x00000800
#define IB_MOD_QP_CURRENT_STATE         0x00001000
#define IB_MOD_QP_RETRY_CNT                     0x00002000
#define IB_MOD_QP_LOCAL_ACK_TIMEOUT     0x00004000
#define IB_MOD_QP_RNR_RETRY_CNT         0x00008000
</pre>
</span><p><strong>SEE ALSO</strong></p>
<span class="SEE_ALSO"><pre>       <a href="#robo167">ib_qp_mod_t</a>
</pre>
</span>
<hr />

<h2><a name="robo169">[Definitions]<a name="Access20Layer2fib5fqp5fstate5ft">
Access Layer/ib_qp_state_t</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_definitions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_qp_state_t</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Indicates or sets the state of a queue pair.  The current state of a queue
       pair is returned through the ib_qp_query call and set via the
       ib_qp_modify call.
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>typedef uint32_t                                <strong>ib_qp_state_t</strong>;
#define IB_QPS_RESET                    0x00000001
#define IB_QPS_INIT                             0x00000002
#define IB_QPS_RTR                              0x00000004
#define IB_QPS_RTS                              0x00000008
#define IB_QPS_SQD                              0x00000010
#define IB_QPS_SQD_DRAINING             0x00000030
#define IB_QPS_SQD_DRAINED              0x00000050
#define IB_QPS_SQERR                    0x00000080
#define IB_QPS_ERROR                    0x00000100
#define IB_QPS_TIME_WAIT                0xDEAD0000      /* InfiniBand Access Layer */
</pre>
</span>
<hr />

<h2><a name="robo170">[Definitions]<a name="Access20Layer2fib5fqp5ftype5ft">
Access Layer/ib_qp_type_t</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_definitions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_qp_type_t</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Indicates the type of queue pair being created.
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>typedef enum _ib_qp_type
{
        IB_QPT_RELIABLE_CONN    = 0,            /* Matches CM REQ transport type */
        IB_QPT_UNRELIABLE_CONN  = 1,            /* Matches CM REQ transport type */
        IB_QPT_UNRELIABLE_DGRM  = 3,            /* Purposefully skip RDD type. */
        IB_QPT_QP0,
        IB_QPT_QP1,
        IB_QPT_RAW_IPV6,
        IB_QPT_RAW_ETHER,
        IB_QPT_MAD,                                                             /* InfiniBand Access Layer */
        IB_QPT_QP0_ALIAS,                                               /* InfiniBand Access Layer */
        IB_QPT_QP1_ALIAS                                                /* InfiniBand Access Layer */

}       <strong>ib_qp_type_t</strong>;
</pre>
</span><p><strong>VALUES</strong></p>
<span class="VALUES"><pre>       IB_QPT_RELIABLE_CONN
               Reliable, connected queue pair.

       IB_QPT_UNRELIABLE_CONN
               Unreliable, connected queue pair.

       IB_QPT_UNRELIABLE_DGRM
               Unreliable, datagram queue pair.

       IB_QPT_QP0
               Queue pair 0.

       IB_QPT_QP1
               Queue pair 1.

       IB_QPT_RAW_DGRM
               Raw datagram queue pair.

       IB_QPT_RAW_IPV6
               Raw IP version 6 queue pair.

       IB_QPT_RAW_ETHER
               Raw Ethernet queue pair.

       IB_QPT_MAD
               Unreliable, datagram queue pair that will send and receive management
               datagrams with assistance from the access layer.

       IB_QPT_QP0_ALIAS
               Alias to queue pair 0.  Aliased QPs can only be created on an aliased
               protection domain.

       IB_QPT_QP1_ALIAS
               Alias to queue pair 1.  Aliased QPs can only be created on an aliased
               protection domain.
</pre>
</span>
<hr />

<h2><a name="robo184">[Definitions]<a name="Access20Layer2fib5frecv5fopt5ft">
Access Layer/ib_recv_opt_t</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_definitions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_recv_opt_t</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Indicates optional fields valid in a receive work completion.
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>typedef uint32_t                                        <strong>ib_recv_opt_t</strong>;
#define IB_RECV_OPT_IMMEDIATE           0x00000001
#define IB_RECV_OPT_FORWARD                     0x00000002
#define IB_RECV_OPT_GRH_VALID           0x00000004
#define IB_RECV_OPT_VEND_MASK           0xFFFF0000
</pre>
</span><p><strong>VALUES</strong></p>
<span class="VALUES"><pre>       IB_RECV_OPT_IMMEDIATE
               Indicates that immediate data is valid for this work completion.

       IB_RECV_OPT_FORWARD
               Indicates that the received trap should be forwarded to the SM.

       IB_RECV_OPT_GRH_VALID
               Indicates presence of the global route header. When set, the first
               40 bytes received are the GRH.

       IB_RECV_OPT_VEND_MASK
               This mask indicates bits reserved in the receive options that may be
               used by the verbs provider to indicate vendor specific options.  Bits
               set in this area of the receive options are ignored by the Access Layer,
               but may have specific meaning to the underlying VPD.
</pre>
</span>
<hr />

<h2><a name="robo185">[Structures]<a name="Access20Layer2fib5frecv5fwr5ft">
Access Layer/ib_recv_wr_t</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_strutures.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_recv_wr_t</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Information used to submit a work request to the receive queue of a queue
       pair.
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>typedef struct _ib_recv_wr
{
        struct _ib_recv_wr* __ptr64     p_next;
        uint64_t                                        wr_id;
        uint32_t                                        num_ds;
        <a href="#robo108">ib_local_ds_t</a>* __ptr64          ds_array;

}       <strong>ib_recv_wr_t</strong>;
</pre>
</span><p><strong>FIELDS</strong></p>
<span class="FIELDS"><pre>       p_next
               A pointer used to chain work requests together.  This permits multiple
               work requests to be posted to a queue pair through a single function
               call.  This value is set to NULL to mark the end of the chain.

       wr_id
               A 64-bit work request identifier that is returned to the consumer
               as part of the work completion.

       num_ds
               Number of local data segments specified by this work request.

       ds_array
               A reference to an array of local data segments used by the send
               operation.
</pre>
</span><p><strong>SEE ALSO</strong></p>
<span class="SEE_ALSO"><pre>       <a href="#robo108">ib_local_ds_t</a>
</pre>
</span>
<hr />

<h2><a name="robo198">[Definitions]<a name="Access20Layer2fib5frej5fstatus5ft">
Access Layer/ib_rej_status_t</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_definitions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_rej_status_t</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Rejection reasons.
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>typedef <a href="#robo407">ib_net16_t</a>                                                      <strong>ib_rej_status_t</strong>;
</pre>
</span><p><strong>SEE ALSO</strong></p>
<span class="SEE_ALSO"><pre>       <a href="./ib_al_h.html#robo50">ib_cm_rej</a>, <a href="./ib_al_h.html#robo51">ib_cm_rej_rec_t</a>
</pre>
</span><p><strong>SOURCE</strong></p>
<span class="SOURCE"><pre>#define IB_REJ_INSUF_QP                                         CL_HTON16(1)
#define IB_REJ_INSUF_EEC                                        CL_HTON16(2)
#define IB_REJ_INSUF_RESOURCES                          CL_HTON16(3)
#define IB_REJ_TIMEOUT                                          CL_HTON16(4)
#define IB_REJ_UNSUPPORTED                                      CL_HTON16(5)
#define IB_REJ_INVALID_COMM_ID                          CL_HTON16(6)
#define IB_REJ_INVALID_COMM_INSTANCE            CL_HTON16(7)
#define IB_REJ_INVALID_SID                                      CL_HTON16(8)
#define IB_REJ_INVALID_XPORT                            CL_HTON16(9)
#define IB_REJ_STALE_CONN                                       CL_HTON16(10)
#define IB_REJ_RDC_NOT_EXIST                            CL_HTON16(11)
#define IB_REJ_INVALID_GID                                      CL_HTON16(12)
#define IB_REJ_INVALID_LID                                      CL_HTON16(13)
#define IB_REJ_INVALID_SL                                       CL_HTON16(14)
#define IB_REJ_INVALID_TRAFFIC_CLASS            CL_HTON16(15)
#define IB_REJ_INVALID_HOP_LIMIT                        CL_HTON16(16)
#define IB_REJ_INVALID_PKT_RATE                         CL_HTON16(17)
#define IB_REJ_INVALID_ALT_GID                          CL_HTON16(18)
#define IB_REJ_INVALID_ALT_LID                          CL_HTON16(19)
#define IB_REJ_INVALID_ALT_SL                           CL_HTON16(20)
#define IB_REJ_INVALID_ALT_TRAFFIC_CLASS        CL_HTON16(21)
#define IB_REJ_INVALID_ALT_HOP_LIMIT            CL_HTON16(22)
#define IB_REJ_INVALID_ALT_PKT_RATE                     CL_HTON16(23)
#define IB_REJ_PORT_REDIRECT                            CL_HTON16(24)
#define IB_REJ_INVALID_MTU                                      CL_HTON16(26)
#define IB_REJ_INSUFFICIENT_RESP_RES            CL_HTON16(27)
#define IB_REJ_USER_DEFINED                                     CL_HTON16(28)
#define IB_REJ_INVALID_RNR_RETRY                        CL_HTON16(29)
#define IB_REJ_DUPLICATE_LOCAL_COMM_ID          CL_HTON16(30)
#define IB_REJ_INVALID_CLASS_VER                        CL_HTON16(31)
#define IB_REJ_INVALID_FLOW_LBL                         CL_HTON16(32)
#define IB_REJ_INVALID_ALT_FLOW_LBL                     CL_HTON16(33)
</pre>
</span>
<hr />

<h2><a name="robo208">[Definitions]<a name="Access20Layer2fib5fsend5fopt5ft">
Access Layer/ib_send_opt_t</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_definitions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_send_opt_t</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Optional flags used when posting send work requests.  These flags
       indicate specific processing for the send operation.
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>typedef uint32_t                                        <strong>ib_send_opt_t</strong>;
#define IB_SEND_OPT_IMMEDIATE           0x00000001
#define IB_SEND_OPT_FENCE                       0x00000002
#define IB_SEND_OPT_SIGNALED            0x00000004
#define IB_SEND_OPT_SOLICITED           0x00000008
#define IB_SEND_OPT_INLINE                      0x00000010
#define IB_SEND_OPT_LOCAL                       0x00000020
#define IB_SEND_OPT_VEND_MASK           0xFFFF0000
</pre>
</span><p><strong>VALUES</strong></p>
<span class="VALUES"><pre>       The following flags determine the behavior of a work request when
       posted to the send side.

       IB_SEND_OPT_IMMEDIATE
               Send immediate data with the given request.

       IB_SEND_OPT_FENCE
               The operation is fenced.  Complete all pending send operations before
               processing this request.

       IB_SEND_OPT_SIGNALED
               If the queue pair is configured for signaled completion, then
               generate a completion queue entry when this request completes.

       IB_SEND_OPT_SOLICITED
               Set the solicited bit on the last packet of this request.

       IB_SEND_OPT_INLINE
               Indicates that the requested send data should be copied into a VPD
               owned data buffer.  This flag permits the user to issue send operations
               without first needing to register the buffer(s) associated with the
               send operation.  Verb providers that support this operation may place
               vendor specific restrictions on the size of send operation that may
               be performed as inline.

       IB_SEND_OPT_LOCAL
               Indicates that a sent MAD request should be given to the local VPD for
               processing.  MADs sent using this option are not placed on the wire.
               This send option is only valid for MAD send operations.

       IB_SEND_OPT_VEND_MASK
               This mask indicates bits reserved in the send options that may be used
               by the verbs provider to indicate vendor specific options.  Bits set
               in this area of the send options are ignored by the Access Layer, but
               may have specific meaning to the underlying VPD.
</pre>
</span>
<hr />

<h2><a name="robo209">[Structures]<a name="Access20Layer2fib5fsend5fwr5ft">
Access Layer/ib_send_wr_t</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_strutures.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_send_wr_t</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Information used to submit a work request to the send queue of a queue
       pair.
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>typedef struct _ib_send_wr
{
        struct _ib_send_wr* __ptr64     p_next;
        uint64_t                                        wr_id;
        <a href="#robo222">ib_wr_type_t</a>                            wr_type;
        <a href="#robo208">ib_send_opt_t</a>                           send_opt;
        uint32_t                                        num_ds;
        <a href="#robo108">ib_local_ds_t</a>* __ptr64          ds_array;
        <a href="#robo408">ib_net32_t</a>                                      immediate_data;

        union _send_dgrm
        {
                struct _send_ud
                {
                        <a href="#robo408">ib_net32_t</a>              remote_qp;
                        <a href="#robo408">ib_net32_t</a>              remote_qkey;
                        ib_av_handle_t  h_av;
                        uint16_t                pkey_index;
                        void* __ptr64   rsvd;

                }       ud;

                struct _send_raw_ether
                {
                        <a href="#robo407">ib_net16_t</a>              dest_lid;
                        uint8_t                 path_bits;
                        uint8_t                 sl;
                        uint8_t                 max_static_rate;
                        <a href="#robo407">ib_net16_t</a>              ether_type;

                }       raw_ether;

                struct _send_raw_ipv6
                {
                        <a href="#robo407">ib_net16_t</a>              dest_lid;
                        uint8_t                 path_bits;
                        uint8_t                 sl;
                        uint8_t                 max_static_rate;

                }       raw_ipv6;

        }       dgrm;

        struct _send_remote_ops
        {
                uint64_t                        vaddr;
                net32_t                         rkey;

                <a href="#robo409">ib_net64_t</a>                      atomic1;
                <a href="#robo409">ib_net64_t</a>                      atomic2;

        }       remote_ops;

}       <strong>ib_send_wr_t</strong>;
</pre>
</span><p><strong>FIELDS</strong></p>
<span class="FIELDS"><pre>       p_next
               A pointer used to chain work requests together.  This permits multiple
               work requests to be posted to a queue pair through a single function
               call.  This value is set to NULL to mark the end of the chain.

       wr_id
               A 64-bit work request identifier that is returned to the consumer
               as part of the work completion.

       wr_type
               The type of work request being submitted to the send queue.

       send_opt
               Optional send control parameters.

       num_ds
               Number of local data segments specified by this work request.

       ds_array
               A reference to an array of local data segments used by the send
               operation.

       immediate_data
               32-bit field sent as part of a message send or RDMA write operation.
               This field is only valid if the send_opt flag IB_SEND_OPT_IMMEDIATE
               has been set.

       dgrm.ud.remote_qp
               Identifies the destination queue pair of an unreliable datagram send
               operation.

       dgrm.ud.remote_qkey
               The qkey for the destination queue pair.

       dgrm.ud.h_av
               An address vector that specifies the path information used to route
               the outbound datagram to the destination queue pair.

       dgrm.ud.pkey_index
               The pkey index for this send work request.  This is valid only
               for IB_QPT_QP1 and IB_QPT_QP1_ALIAS QP types.  The work request
               is posted to using this pkey index build the GMP's BTH instead
               of the QP's pkey.

       dgrm.ud.rsvd
               Reserved for use by the Access Layer.

       dgrm.raw_ether.dest_lid
               The destination LID that will receive this raw ether send.

       dgrm.raw_ether.path_bits
               path bits...

       dgrm.raw_ether.sl
               service level...

       dgrm.raw_ether.max_static_rate
               static rate...

       dgrm.raw_ether.ether_type
               ether type...

       dgrm.raw_ipv6.dest_lid
               The destination LID that will receive this raw ether send.

       dgrm.raw_ipv6.path_bits
               path bits...

       dgrm.raw_ipv6.sl
               service level...

       dgrm.raw_ipv6.max_static_rate
               static rate...

       remote_ops.vaddr
               The registered virtual memory address of the remote memory to access
               with an RDMA or atomic operation.

       remote_ops.rkey
               The rkey associated with the specified remote vaddr. This data must
               be presented exactly as obtained from the remote node. No swapping
               of data must be performed.

       atomic1
               The first operand for an atomic operation.

       atomic2
               The second operand for an atomic operation.
</pre>
</span><p><strong>NOTES</strong></p>
<span class="NOTES"><pre>       The format of data sent over the fabric is user-defined and is considered
       opaque to the access layer.  The sole exception to this are MADs posted
       to a MAD QP service.  MADs are expected to match the format defined by
       the Infiniband specification and must be in network-byte order when posted
       to the MAD QP service.
</pre>
</span><p><strong>SEE ALSO</strong></p>
<span class="SEE_ALSO"><pre>       <a href="#robo222">ib_wr_type_t</a>, <a href="#robo108">ib_local_ds_t</a>, <a href="#robo208">ib_send_opt_t</a>
</pre>
</span>
<hr />

<h2><a name="robo219">[Definitions]<a name="Access20Layer2fib5fwc5fstatus5ft">
Access Layer/ib_wc_status_t</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_definitions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_wc_status_t</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Indicates the status of a completed work request.  These VALUES are
       returned to the user when retrieving completions.  Note that success is
       identified as IB_WCS_SUCCESS, which is always zero.
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>typedef enum _<strong>ib_wc_status_t</strong>
{
        IB_WCS_SUCCESS,
        IB_WCS_LOCAL_LEN_ERR,
        IB_WCS_LOCAL_OP_ERR,
        IB_WCS_LOCAL_PROTECTION_ERR,
        IB_WCS_WR_FLUSHED_ERR,
        IB_WCS_MEM_WINDOW_BIND_ERR,
        IB_WCS_REM_ACCESS_ERR,
        IB_WCS_REM_OP_ERR,
        IB_WCS_RNR_RETRY_ERR,
        IB_WCS_TIMEOUT_RETRY_ERR,
        IB_WCS_REM_INVALID_REQ_ERR,
        IB_WCS_UNMATCHED_RESPONSE,                      /* InfiniBand Access Layer */
        IB_WCS_CANCELED,                                        /* InfiniBand Access Layer */
        IB_WCS_UNKNOWN                                          /* Must be last. */

}       <strong>ib_wc_status_t</strong>;
</pre>
</span><p><strong>VALUES</strong></p>
<span class="VALUES"><pre>       IB_WCS_SUCCESS
               Work request completed successfully.

       IB_WCS_MAD
               The completed work request was associated with a managmenet datagram
               that requires post processing.  The MAD will be returned to the user
               through a callback once all post processing has completed.

       IB_WCS_LOCAL_LEN_ERR
               Generated for a work request posted to the send queue when the
               total of the data segment lengths exceeds the message length of the
               channel.  Generated for a work request posted to the receive queue when
               the total of the data segment lengths is too small for a
               valid incoming message.

       IB_WCS_LOCAL_OP_ERR
               An internal QP consistency error was generated while processing this
               work request.  This may indicate that the QP was in an incorrect state
               for the requested operation.

       IB_WCS_LOCAL_PROTECTION_ERR
               The data segments of the locally posted work request did not refer to
               a valid memory region.  The memory may not have been properly
               registered for the requested operation.

       IB_WCS_WR_FLUSHED_ERR
               The work request was flushed from the QP before being completed.

       IB_WCS_MEM_WINDOW_BIND_ERR
               A memory window bind operation failed due to insufficient access
               rights.

       IB_WCS_REM_ACCESS_ERR,
               A protection error was detected at the remote node for a RDMA or atomic
               operation.

       IB_WCS_REM_OP_ERR,
               The operation could not be successfully completed at the remote node.
               This may indicate that the remote QP was in an invalid state or
               contained an invalid work request.

       IB_WCS_RNR_RETRY_ERR,
               The RNR retry count was exceeded while trying to send this message.

       IB_WCS_TIMEOUT_RETRY_ERR
               The local transport timeout counter expired while trying to send this
               message.

       IB_WCS_REM_INVALID_REQ_ERR,
               The remote node detected an invalid message on the channel.  This error
               is usually a result of one of the following:
                       - The operation was not supported on receive queue.
                       - There was insufficient buffers to receive a new RDMA request.
                       - There was insufficient buffers to receive a new atomic operation.
                       - An RDMA request was larger than 2^31 bytes.

       IB_WCS_UNMATCHED_RESPONSE
               A response MAD was received for which there was no matching send.  The
               send operation may have been canceled by the user or may have timed
               out.

       IB_WCS_CANCELED
               The completed work request was canceled by the user.
</pre>
</span>
<hr />

<h2><a name="robo220">[Structures]<a name="Access20Layer2fib5fwc5ft">
Access Layer/ib_wc_t</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_strutures.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_wc_t</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Work completion information.
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>typedef struct _ib_wc
{
        struct _ib_wc* __ptr64  p_next;
        uint64_t                                wr_id;
        <a href="#robo221">ib_wc_type_t</a>                    wc_type;

        uint32_t                                length;
        <a href="#robo219">ib_wc_status_t</a>                  status;
        uint64_t                                vendor_specific;

        union _wc_recv
        {
                struct _wc_conn
                {
                        <a href="#robo184">ib_recv_opt_t</a>   recv_opt;
                        <a href="#robo408">ib_net32_t</a>              immediate_data;

                }       conn;

                struct _wc_ud
                {
                        <a href="#robo184">ib_recv_opt_t</a>   recv_opt;
                        <a href="#robo408">ib_net32_t</a>              immediate_data;
                        <a href="#robo408">ib_net32_t</a>              remote_qp;
                        uint16_t                pkey_index;
                        <a href="#robo407">ib_net16_t</a>              remote_lid;
                        uint8_t                 remote_sl;
                        uint8_t                 path_bits;

                }       ud;

                struct _wc_raw_ipv6
                {
                        <a href="#robo407">ib_net16_t</a>              remote_lid;
                        uint8_t                 remote_sl;
                        uint8_t                 path_bits;

                }       raw_ipv6;

                struct _wc_raw_ether
                {
                        <a href="#robo407">ib_net16_t</a>              remote_lid;
                        uint8_t                 remote_sl;
                        uint8_t                 path_bits;
                        <a href="#robo407">ib_net16_t</a>              ether_type;

                }       raw_ether;

        }       recv;

}       <strong>ib_wc_t</strong>;
</pre>
</span><p><strong>FIELDS</strong></p>
<span class="FIELDS"><pre>       p_next
               A pointer used to chain work completions.  This permits multiple
               work completions to be retrieved from a completion queue through a
               single function call.  This value is set to NULL to mark the end of
               the chain.

       wr_id
               The 64-bit work request identifier that was specified when posting the
               work request.

       wc_type
               Indicates the type of work completion.

       length
               The total length of the data sent or received with the work request.

       status
               The result of the work request.

       vendor_specific
               HCA vendor specific information returned as part of the completion.

       recv.conn.recv_opt
               Indicates optional fields valid as part of a work request that
               completed on a connected (reliable or unreliable) queue pair.

       recv.conn.immediate_data
               32-bit field received as part of an inbound message on a connected
               queue pair.  This field is only valid if the recv_opt flag
               IB_RECV_OPT_IMMEDIATE has been set.

       recv.ud.recv_opt
               Indicates optional fields valid as part of a work request that
               completed on an unreliable datagram queue pair.

       recv.ud.immediate_data
               32-bit field received as part of an inbound message on a unreliable
               datagram queue pair.  This field is only valid if the recv_opt flag
               IB_RECV_OPT_IMMEDIATE has been set.

       recv.ud.remote_qp
               Identifies the source queue pair of a received datagram.

       recv.ud.pkey_index
               The pkey index of the source queue pair. This is valid only for
               IB_QPT_QP1 and IB_QPT_QP1_ALIAS QP types.

       recv.ud.remote_lid
               The source LID of the received datagram.

       recv.ud.remote_sl
               The service level used by the source of the received datagram.

       recv.ud.path_bits
               path bits...

       recv.raw_ipv6.remote_lid
               The source LID of the received message.

       recv.raw_ipv6.remote_sl
               The service level used by the source of the received message.

       recv.raw_ipv6.path_bits
               path bits...

       recv.raw_ether.remote_lid
               The source LID of the received message.

       recv.raw_ether.remote_sl
               The service level used by the source of the received message.

       recv.raw_ether.path_bits
               path bits...

       recv.raw_ether.ether_type
               ether type...
</pre>
</span><p><strong>NOTES</strong></p>
<span class="NOTES"><pre>       When the work request completes with error, the only values that the
       consumer can depend on are the wr_id field, and the status of the
       operation.

       If the consumer is using the same CQ for completions from more than
       one type of QP (i.e Reliable Connected, Datagram etc), then the consumer
       must have additional information to decide what fields of the union are
       valid.
</pre>
</span><p><strong>SEE ALSO</strong></p>
<span class="SEE_ALSO"><pre>       <a href="#robo221">ib_wc_type_t</a>, <a href="#robo170">ib_qp_type_t</a>, <a href="#robo219">ib_wc_status_t</a>, <a href="#robo184">ib_recv_opt_t</a>
</pre>
</span>
<hr />

<h2><a name="robo221">[Definitions]<a name="Access20Layer2fib5fwc5ftype5ft">
Access Layer/ib_wc_type_t</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_definitions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_wc_type_t</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Indicates the type of work completion.
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>typedef enum _<strong>ib_wc_type_t</strong>
{
        IB_WC_SEND,
        IB_WC_RDMA_WRITE,
        IB_WC_RECV,
        IB_WC_RDMA_READ,
        IB_WC_MW_BIND,
        IB_WC_FETCH_ADD,
        IB_WC_COMPARE_SWAP,
        IB_WC_RECV_RDMA_WRITE,
        IB_WC_UNKNOWN

}       <strong>ib_wc_type_t</strong>;
</pre>
</span>
<hr />

<h2><a name="robo222">[Definitions]<a name="Access20Layer2fib5fwr5ftype5ft">
Access Layer/ib_wr_type_t</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_definitions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_wr_type_t</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Identifies the type of work request posted to a queue pair.
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>typedef enum _<strong>ib_wr_type_t</strong>
{
        WR_SEND = 1,
        WR_RDMA_WRITE,
        WR_RDMA_READ,
        WR_COMPARE_SWAP,
        WR_FETCH_ADD,
        WR_UNKNOWN

}       <strong>ib_wr_type_t</strong>;
</pre>
</span>
<hr />

<h2><a name="robo223">[Structures]<a name="IBA20Base3a20Constants2fIB5fCLASS5fCAP5fGETSET">
IBA Base: Constants/IB_CLASS_CAP_GETSET</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_strutures.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>IB_CLASS_CAP_GETSET</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       ClassPortInfo CapabilityMask bits.  This bit will be set
       if the class supports Get(Notice) and Set(Notice) MADs (13.4.8.1).
</pre>
</span><p><strong>SEE ALSO</strong></p>
<span class="SEE_ALSO"><pre>       <a href="#robo353">ib_class_port_info_t</a>, <a href="#robo224">IB_CLASS_CAP_TRAP</a>
</pre>
</span><p><strong>SOURCE</strong></p>
<span class="SOURCE"><pre>#define <strong>IB_CLASS_CAP_GETSET</strong>                                     0x0002
</pre>
</span>
<hr />

<h2><a name="robo224">[Structures]<a name="IBA20Base3a20Constants2fIB5fCLASS5fCAP5fTRAP">
IBA Base: Constants/IB_CLASS_CAP_TRAP</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_strutures.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>IB_CLASS_CAP_TRAP</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       ClassPortInfo CapabilityMask bits.  This bit will be set
       if the class supports Trap() MADs (13.4.8.1).
</pre>
</span><p><strong>SEE ALSO</strong></p>
<span class="SEE_ALSO"><pre>       <a href="#robo353">ib_class_port_info_t</a>, <a href="#robo223">IB_CLASS_CAP_GETSET</a>
</pre>
</span><p><strong>SOURCE</strong></p>
<span class="SOURCE"><pre>#define <strong>IB_CLASS_CAP_TRAP</strong>                                       0x0001
</pre>
</span>
<hr />

<h2><a name="robo225">[Structures]<a name="IBA20Base3a20Constants2fIB5fCLASS5fRESP5fTIME5fMASK">
IBA Base: Constants/IB_CLASS_RESP_TIME_MASK</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_strutures.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>IB_CLASS_RESP_TIME_MASK</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Mask bits to extract the reponse time value from the
       resp_time_val field of <a href="#robo353">ib_class_port_info_t</a>.
</pre>
</span><p><strong>SEE ALSO</strong></p>
<span class="SEE_ALSO"><pre>       <a href="#robo353">ib_class_port_info_t</a>
</pre>
</span><p><strong>SOURCE</strong></p>
<span class="SOURCE"><pre>#define <strong>IB_CLASS_RESP_TIME_MASK</strong>                         0x1F
</pre>
</span>
<hr />

<h2><a name="robo226">[Definitions]<a name="IBA20Base3a20Constants2fIB5fDEFAULT5fPKEY">
IBA Base: Constants/IB_DEFAULT_PKEY</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_definitions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>IB_DEFAULT_PKEY</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       P_Key value for the default partition.
</pre>
</span><p><strong>SOURCE</strong></p>
<span class="SOURCE"><pre>#define <strong>IB_DEFAULT_PKEY</strong>                                         0xFFFF
</pre>
</span>
<hr />

<h2><a name="robo227">[Definitions]<a name="IBA20Base3a20Constants2fIB5fDEFAULT5fSUBNET5fPREFIX">
IBA Base: Constants/IB_DEFAULT_SUBNET_PREFIX</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_definitions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>IB_DEFAULT_SUBNET_PREFIX</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Default subnet GID prefix.
</pre>
</span><p><strong>SOURCE</strong></p>
<span class="SOURCE"><pre>#define <strong>IB_DEFAULT_SUBNET_PREFIX</strong>                        (CL_HTON64(CL_CONST64(0xFE80000000000000)))
</pre>
</span>
<hr />

<h2><a name="robo228">[Definitions]<a name="IBA20Base3a20Constants2fIB5fINVALID5fPORT5fNUM">
IBA Base: Constants/IB_INVALID_PORT_NUM</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_definitions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>IB_INVALID_PORT_NUM</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Value used to indicate an invalid port number (14.2.5.10).
</pre>
</span><p><strong>SOURCE</strong></p>
<span class="SOURCE"><pre>#define <strong>IB_INVALID_PORT_NUM</strong>                                     0xFF
</pre>
</span>
<hr />

<h2><a name="robo229">[Definitions]<a name="IBA20Base3a20Constants2fIB5fLID5fMCAST5fEND">
IBA Base: Constants/IB_LID_MCAST_END</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_definitions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>IB_LID_MCAST_END</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Highest valid multicast LID value.
</pre>
</span><p><strong>SOURCE</strong></p>
<span class="SOURCE"><pre>#define IB_LID_MCAST_END_HO                                     0xFFFE
#define <strong>IB_LID_MCAST_END</strong>                                        (CL_HTON16(IB_LID_MCAST_END_HO))
</pre>
</span>
<hr />

<h2><a name="robo230">[Definitions]<a name="IBA20Base3a20Constants2fIB5fLID5fMCAST5fSTART">
IBA Base: Constants/IB_LID_MCAST_START</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_definitions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>IB_LID_MCAST_START</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Lowest valid multicast LID value.
</pre>
</span><p><strong>SOURCE</strong></p>
<span class="SOURCE"><pre>#define IB_LID_MCAST_START_HO                           0xC000
#define <strong>IB_LID_MCAST_START</strong>                                      (CL_HTON16(IB_LID_MCAST_START_HO))
</pre>
</span>
<hr />

<h2><a name="robo231">[Definitions]<a name="IBA20Base3a20Constants2fIB5fLID5fPERMISSIVE">
IBA Base: Constants/IB_LID_PERMISSIVE</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_definitions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>IB_LID_PERMISSIVE</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Permissive LID
</pre>
</span><p><strong>SOURCE</strong></p>
<span class="SOURCE"><pre>#define <strong>IB_LID_PERMISSIVE</strong>                                       0xFFFF
</pre>
</span>
<hr />

<h2><a name="robo232">[Definitions]<a name="IBA20Base3a20Constants2fIB5fLID5fUCAST5fEND">
IBA Base: Constants/IB_LID_UCAST_END</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_definitions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>IB_LID_UCAST_END</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Highest valid unicast LID value.
</pre>
</span><p><strong>SOURCE</strong></p>
<span class="SOURCE"><pre>#define IB_LID_UCAST_END_HO                                     0xBFFF
#define <strong>IB_LID_UCAST_END</strong>                                        (CL_HTON16(IB_LID_UCAST_END_HO))
</pre>
</span>
<hr />

<h2><a name="robo233">[Definitions]<a name="IBA20Base3a20Constants2fIB5fLID5fUCAST5fSTART">
IBA Base: Constants/IB_LID_UCAST_START</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_definitions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>IB_LID_UCAST_START</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Lowest valid unicast LID value.
</pre>
</span><p><strong>SOURCE</strong></p>
<span class="SOURCE"><pre>#define IB_LID_UCAST_START_HO                           0x0001
#define <strong>IB_LID_UCAST_START</strong>                                      (CL_HTON16(IB_LID_UCAST_START_HO))
</pre>
</span>
<hr />

<h2><a name="robo234">[Definitions]<a name="IBA20Base3a20Constants2fib5flink5fstates5ft">
IBA Base: Constants/ib_link_states_t</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_definitions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_link_states_t</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Defines the link states of a port.
</pre>
</span><p><strong>SOURCE</strong></p>
<span class="SOURCE"><pre>#define IB_LINK_NO_CHANGE 0
#define IB_LINK_DOWN      1
#define IB_LINK_INIT      2
#define IB_LINK_ARMED     3
#define IB_LINK_ACTIVE    4
#define IB_LINK_ACT_DEFER 5
</pre>
</span>
<hr />

<h2><a name="robo235">[Definitions]<a name="IBA20Base3a20Constants2fIB5fMAD5fATTR5fCLASS5fPORT5fINFO">
IBA Base: Constants/IB_MAD_ATTR_CLASS_PORT_INFO</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_definitions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>IB_MAD_ATTR_CLASS_PORT_INFO</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       ClassPortInfo attribute (13.4.8)
</pre>
</span><p><strong>SOURCE</strong></p>
<span class="SOURCE"><pre>#define <strong>IB_MAD_ATTR_CLASS_PORT_INFO</strong>                     (CL_NTOH16(0x0001))
</pre>
</span>
<hr />

<h2><a name="robo236">[Definitions]<a name="IBA20Base3a20Constants2fIB5fMAD5fATTR5fDIAG5fCODE">
IBA Base: Constants/IB_MAD_ATTR_DIAG_CODE</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_definitions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>IB_MAD_ATTR_DIAG_CODE</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       DiagCode attribute (16.3.3)
</pre>
</span><p><strong>SOURCE</strong></p>
<span class="SOURCE"><pre>#define <strong>IB_MAD_ATTR_DIAG_CODE</strong>                           (CL_NTOH16(0x0024))
</pre>
</span>
<hr />

<h2><a name="robo237">[Definitions]<a name="IBA20Base3a20Constants2fIB5fMAD5fATTR5fDIAGNOSTIC5fTIMEOUT">
IBA Base: Constants/IB_MAD_ATTR_DIAGNOSTIC_TIMEOUT</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_definitions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>IB_MAD_ATTR_DIAGNOSTIC_TIMEOUT</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       DiagnosticTimeout attribute (16.3.3)
</pre>
</span><p><strong>SOURCE</strong></p>
<span class="SOURCE"><pre>#define <strong>IB_MAD_ATTR_DIAGNOSTIC_TIMEOUT</strong>          (CL_NTOH16(0x0020))
</pre>
</span>
<hr />

<h2><a name="robo238">[Definitions]<a name="IBA20Base3a20Constants2fIB5fMAD5fATTR5fGUID5fINFO">
IBA Base: Constants/IB_MAD_ATTR_GUID_INFO</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_definitions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>IB_MAD_ATTR_GUID_INFO</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       GUIDInfo attribute (14.2.5)
</pre>
</span><p><strong>SOURCE</strong></p>
<span class="SOURCE"><pre>#define <strong>IB_MAD_ATTR_GUID_INFO</strong>                           (CL_NTOH16(0x0014))
</pre>
</span>
<hr />

<h2><a name="robo239">[Definitions]<a name="IBA20Base3a20Constants2fIB5fMAD5fATTR5fINFORM5fINFO">
IBA Base: Constants/IB_MAD_ATTR_INFORM_INFO</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_definitions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>IB_MAD_ATTR_INFORM_INFO</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       InformInfo attribute (13.4.8)
</pre>
</span><p><strong>SOURCE</strong></p>
<span class="SOURCE"><pre>#define <strong>IB_MAD_ATTR_INFORM_INFO</strong>                         (CL_NTOH16(0x0003))
</pre>
</span>
<hr />

<h2><a name="robo240">[Definitions]<a name="IBA20Base3a20Constants2fIB5fMAD5fATTR5fIO5fUNIT5fINFO">
IBA Base: Constants/IB_MAD_ATTR_IO_UNIT_INFO</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_definitions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>IB_MAD_ATTR_IO_UNIT_INFO</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       IOUnitInfo attribute (16.3.3)
</pre>
</span><p><strong>SOURCE</strong></p>
<span class="SOURCE"><pre>#define <strong>IB_MAD_ATTR_IO_UNIT_INFO</strong>                        (CL_NTOH16(0x0010))
</pre>
</span>
<hr />

<h2><a name="robo241">[Definitions]<a name="IBA20Base3a20Constants2fIB5fMAD5fATTR5fIOC5fPROFILE">
IBA Base: Constants/IB_MAD_ATTR_IOC_PROFILE</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_definitions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>IB_MAD_ATTR_IOC_PROFILE</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       IOControllerProfile attribute (16.3.3)
</pre>
</span><p><strong>SOURCE</strong></p>
<span class="SOURCE"><pre>#define <strong>IB_MAD_ATTR_IOC_PROFILE</strong>                         (CL_NTOH16(0x0011))
</pre>
</span>
<hr />

<h2><a name="robo242">[Definitions]<a name="IBA20Base3a20Constants2fIB5fMAD5fATTR5fLED5fINFO">
IBA Base: Constants/IB_MAD_ATTR_LED_INFO</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_definitions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>IB_MAD_ATTR_LED_INFO</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       LedInfo attribute (14.2.5)
</pre>
</span><p><strong>SOURCE</strong></p>
<span class="SOURCE"><pre>#define <strong>IB_MAD_ATTR_LED_INFO</strong>                            (CL_NTOH16(0x0031))
</pre>
</span>
<hr />

<h2><a name="robo243">[Definitions]<a name="IBA20Base3a20Constants2fIB5fMAD5fATTR5fLFT5fRECORD">
IBA Base: Constants/IB_MAD_ATTR_LFT_RECORD</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_definitions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>IB_MAD_ATTR_LFT_RECORD</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       LinearForwardingRecord attribute (15.2.5.6)
</pre>
</span><p><strong>SOURCE</strong></p>
<span class="SOURCE"><pre>#define <strong>IB_MAD_ATTR_LFT_RECORD</strong>                  (CL_NTOH16(0x0015))
</pre>
</span>
<hr />

<h2><a name="robo244">[Definitions]<a name="IBA20Base3a20Constants2fIB5fMAD5fATTR5fLIN5fFWD5fTBL">
IBA Base: Constants/IB_MAD_ATTR_LIN_FWD_TBL</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_definitions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>IB_MAD_ATTR_LIN_FWD_TBL</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Switch linear forwarding table
</pre>
</span><p><strong>SOURCE</strong></p>
<span class="SOURCE"><pre>#define <strong>IB_MAD_ATTR_LIN_FWD_TBL</strong>                         (CL_NTOH16(0x0019))
</pre>
</span>
<hr />

<h2><a name="robo245">[Definitions]<a name="IBA20Base3a20Constants2fIB5fMAD5fATTR5fLINK5fRECORD">
IBA Base: Constants/IB_MAD_ATTR_LINK_RECORD</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_definitions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>IB_MAD_ATTR_LINK_RECORD</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       LinkRecord attribute (15.2.5)
</pre>
</span><p><strong>SOURCE</strong></p>
<span class="SOURCE"><pre>#define <strong>IB_MAD_ATTR_LINK_RECORD</strong>                         (CL_NTOH16(0x0020))
</pre>
</span>
<hr />

<h2><a name="robo246">[Definitions]<a name="IBA20Base3a20Constants2fIB5fMAD5fATTR5fMCAST5fFWD5fTBL">
IBA Base: Constants/IB_MAD_ATTR_MCAST_FWD_TBL</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_definitions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>IB_MAD_ATTR_MCAST_FWD_TBL</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Switch multicast forwarding table
</pre>
</span><p><strong>SOURCE</strong></p>
<span class="SOURCE"><pre>#define <strong>IB_MAD_ATTR_MCAST_FWD_TBL</strong>                       (CL_NTOH16(0x001B))
</pre>
</span>
<hr />

<h2><a name="robo247">[Definitions]<a name="IBA20Base3a20Constants2fIB5fMAD5fATTR5fMCMEMBER5fRECORD">
IBA Base: Constants/IB_MAD_ATTR_MCMEMBER_RECORD</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_definitions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>IB_MAD_ATTR_MCMEMBER_RECORD</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       MCMemberRecord attribute (15.2.5)
</pre>
</span><p><strong>SOURCE</strong></p>
<span class="SOURCE"><pre>#define <strong>IB_MAD_ATTR_MCMEMBER_RECORD</strong>                     (CL_NTOH16(0x0038))
</pre>
</span>
<hr />

<h2><a name="robo248">[Definitions]<a name="IBA20Base3a20Constants2fIB5fMAD5fATTR5fMULTIPATH5fRECORD">
IBA Base: Constants/IB_MAD_ATTR_MULTIPATH_RECORD</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_definitions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>IB_MAD_ATTR_MULTIPATH_RECORD</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       MultiPath attribute (15.2.5)
</pre>
</span><p><strong>SOURCE</strong></p>
<span class="SOURCE"><pre>#define <strong>IB_MAD_ATTR_MULTIPATH_RECORD</strong>                    (CL_NTOH16(0x003A))
</pre>
</span>
<hr />

<h2><a name="robo249">[Definitions]<a name="IBA20Base3a20Constants2fIB5fMAD5fATTR5fNODE5fDESC">
IBA Base: Constants/IB_MAD_ATTR_NODE_DESC</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_definitions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>IB_MAD_ATTR_NODE_DESC</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       NodeDescription attribute (14.2.5)
</pre>
</span><p><strong>SOURCE</strong></p>
<span class="SOURCE"><pre>#define <strong>IB_MAD_ATTR_NODE_DESC</strong>                           (CL_NTOH16(0x0010))
</pre>
</span>
<hr />

<h2><a name="robo250">[Definitions]<a name="IBA20Base3a20Constants2fIB5fMAD5fATTR5fNODE5fINFO">
IBA Base: Constants/IB_MAD_ATTR_NODE_INFO</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_definitions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>IB_MAD_ATTR_NODE_INFO</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       NodeInfo attribute (14.2.5)
</pre>
</span><p><strong>SOURCE</strong></p>
<span class="SOURCE"><pre>#define <strong>IB_MAD_ATTR_NODE_INFO</strong>                           (CL_NTOH16(0x0011))
</pre>
</span>
<hr />

<h2><a name="robo251">[Definitions]<a name="IBA20Base3a20Constants2fIB5fMAD5fATTR5fNODE5fRECORD">
IBA Base: Constants/IB_MAD_ATTR_NODE_RECORD</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_definitions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>IB_MAD_ATTR_NODE_RECORD</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       NodeRecord attribute (15.2.5)
</pre>
</span><p><strong>SOURCE</strong></p>
<span class="SOURCE"><pre>#define <strong>IB_MAD_ATTR_NODE_RECORD</strong>                         (CL_NTOH16(0x0011))
</pre>
</span>
<hr />

<h2><a name="robo252">[Definitions]<a name="IBA20Base3a20Constants2fIB5fMAD5fATTR5fNOTICE">
IBA Base: Constants/IB_MAD_ATTR_NOTICE</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_definitions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>IB_MAD_ATTR_NOTICE</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Notice attribute (13.4.8)
</pre>
</span><p><strong>SOURCE</strong></p>
<span class="SOURCE"><pre>#define <strong>IB_MAD_ATTR_NOTICE</strong>                                      (CL_NTOH16(0x0002))
</pre>
</span>
<hr />

<h2><a name="robo253">[Definitions]<a name="IBA20Base3a20Constants2fIB5fMAD5fATTR5fP5fKEY5fTABLE">
IBA Base: Constants/IB_MAD_ATTR_P_KEY_TABLE</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_definitions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>IB_MAD_ATTR_P_KEY_TABLE</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       PartitionTable attribute (14.2.5)
</pre>
</span><p><strong>SOURCE</strong></p>
<span class="SOURCE"><pre>#define <strong>IB_MAD_ATTR_P_KEY_TABLE</strong>                         (CL_NTOH16(0x0016))
</pre>
</span>
<hr />

<h2><a name="robo254">[Definitions]<a name="IBA20Base3a20Constants2fIB5fMAD5fATTR5fPATH5fRECORD">
IBA Base: Constants/IB_MAD_ATTR_PATH_RECORD</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_definitions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>IB_MAD_ATTR_PATH_RECORD</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       PathRecord attribute (15.2.5)
</pre>
</span><p><strong>SOURCE</strong></p>
<span class="SOURCE"><pre>#define <strong>IB_MAD_ATTR_PATH_RECORD</strong>                         (CL_NTOH16(0x0035))
</pre>
</span>
<hr />

<h2><a name="robo255">[Definitions]<a name="IBA20Base3a20Constants2fIB5fMAD5fATTR5fPKEYTBL5fRECORD">
IBA Base: Constants/IB_MAD_ATTR_PKEYTBL_RECORD</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_definitions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>IB_MAD_ATTR_PKEYTBL_RECORD</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       P-KEY table attribute (15.2.5)
</pre>
</span><p><strong>SOURCE</strong></p>
<span class="SOURCE"><pre>#define IB_MAD_ATTR_PKEY_TBL_RECORD                     (CL_NTOH16(0x0033))
</pre>
</span>
<hr />

<h2><a name="robo256">[Definitions]<a name="IBA20Base3a20Constants2fIB5fMAD5fATTR5fPORT5fCNTRS">
IBA Base: Constants/IB_MAD_ATTR_PORT_CNTRS</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_definitions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>IB_MAD_ATTR_PORT_CNTRS</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       SwitchInfo attribute (16.1.2)
</pre>
</span><p><strong>SOURCE</strong></p>
<span class="SOURCE"><pre>#define <strong>IB_MAD_ATTR_PORT_CNTRS</strong>                          (CL_NTOH16(0x0012))
</pre>
</span>
<hr />

<h2><a name="robo257">[Definitions]<a name="IBA20Base3a20Constants2fIB5fMAD5fATTR5fPORT5fINFO">
IBA Base: Constants/IB_MAD_ATTR_PORT_INFO</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_definitions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>IB_MAD_ATTR_PORT_INFO</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       PortInfo attribute (14.2.5)
</pre>
</span><p><strong>SOURCE</strong></p>
<span class="SOURCE"><pre>#define <strong>IB_MAD_ATTR_PORT_INFO</strong>                           (CL_NTOH16(0x0015))
</pre>
</span>
<hr />

<h2><a name="robo258">[Definitions]<a name="IBA20Base3a20Constants2fIB5fMAD5fATTR5fPORT5fSMPL5fCTRL">
IBA Base: Constants/IB_MAD_ATTR_PORT_SMPL_CTRL</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_definitions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>IB_MAD_ATTR_PORT_SMPL_CTRL</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       NodeDescription attribute (16.1.2)
</pre>
</span><p><strong>SOURCE</strong></p>
<span class="SOURCE"><pre>#define <strong>IB_MAD_ATTR_PORT_SMPL_CTRL</strong>                      (CL_NTOH16(0x0010))
</pre>
</span>
<hr />

<h2><a name="robo259">[Definitions]<a name="IBA20Base3a20Constants2fIB5fMAD5fATTR5fPORT5fSMPL5fRSLT">
IBA Base: Constants/IB_MAD_ATTR_PORT_SMPL_RSLT</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_definitions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>IB_MAD_ATTR_PORT_SMPL_RSLT</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       NodeInfo attribute (16.1.2)
</pre>
</span><p><strong>SOURCE</strong></p>
<span class="SOURCE"><pre>#define <strong>IB_MAD_ATTR_PORT_SMPL_RSLT</strong>                      (CL_NTOH16(0x0011))
</pre>
</span>
<hr />

<h2><a name="robo260">[Definitions]<a name="IBA20Base3a20Constants2fIB5fMAD5fATTR5fPORTINFO5fRECORD">
IBA Base: Constants/IB_MAD_ATTR_PORTINFO_RECORD</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_definitions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>IB_MAD_ATTR_PORTINFO_RECORD</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       PortInfoRecord attribute (15.2.5)
</pre>
</span><p><strong>SOURCE</strong></p>
<span class="SOURCE"><pre>#define <strong>IB_MAD_ATTR_PORTINFO_RECORD</strong>                     (CL_NTOH16(0x0012))
</pre>
</span>
<hr />

<h2><a name="robo261">[Definitions]<a name="IBA20Base3a20Constants2fIB5fMAD5fATTR5fPREPARE5fTO5fTEST">
IBA Base: Constants/IB_MAD_ATTR_PREPARE_TO_TEST</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_definitions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>IB_MAD_ATTR_PREPARE_TO_TEST</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       PrepareToTest attribute (16.3.3)
</pre>
</span><p><strong>SOURCE</strong></p>
<span class="SOURCE"><pre>#define <strong>IB_MAD_ATTR_PREPARE_TO_TEST</strong>                     (CL_NTOH16(0x0021))
</pre>
</span>
<hr />

<h2><a name="robo262">[Definitions]<a name="IBA20Base3a20Constants2fIB5fMAD5fATTR5fRND5fFWD5fTBL">
IBA Base: Constants/IB_MAD_ATTR_RND_FWD_TBL</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_definitions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>IB_MAD_ATTR_RND_FWD_TBL</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Switch random forwarding table
</pre>
</span><p><strong>SOURCE</strong></p>
<span class="SOURCE"><pre>#define <strong>IB_MAD_ATTR_RND_FWD_TBL</strong>                         (CL_NTOH16(0x001A))
</pre>
</span>
<hr />

<h2><a name="robo263">[Definitions]<a name="IBA20Base3a20Constants2fIB5fMAD5fATTR5fSERVICE5fENTRIES">
IBA Base: Constants/IB_MAD_ATTR_SERVICE_ENTRIES</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_definitions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>IB_MAD_ATTR_SERVICE_ENTRIES</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       ServiceEntries attribute (16.3.3)
</pre>
</span><p><strong>SOURCE</strong></p>
<span class="SOURCE"><pre>#define <strong>IB_MAD_ATTR_SERVICE_ENTRIES</strong>                     (CL_NTOH16(0x0012))
</pre>
</span>
<hr />

<h2><a name="robo264">[Definitions]<a name="IBA20Base3a20Constants2fIB5fMAD5fATTR5fSERVICE5fRECORD">
IBA Base: Constants/IB_MAD_ATTR_SERVICE_RECORD</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_definitions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>IB_MAD_ATTR_SERVICE_RECORD</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       ServiceRecord attribute (15.2.5)
</pre>
</span><p><strong>SOURCE</strong></p>
<span class="SOURCE"><pre>#define <strong>IB_MAD_ATTR_SERVICE_RECORD</strong>                      (CL_NTOH16(0x0031))
</pre>
</span>
<hr />

<h2><a name="robo265">[Definitions]<a name="IBA20Base3a20Constants2fIB5fMAD5fATTR5fSLVL5fRECORD">
IBA Base: Constants/IB_MAD_ATTR_SLVL_RECORD</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_definitions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>IB_MAD_ATTR_SLVL_RECORD</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       VSLtoL Map Table attribute (15.2.5)
</pre>
</span><p><strong>SOURCE</strong></p>
<span class="SOURCE"><pre>#define <strong>IB_MAD_ATTR_SLVL_RECORD</strong>                         (CL_NTOH16(0x0013))
</pre>
</span>
<hr />

<h2><a name="robo266">[Definitions]<a name="IBA20Base3a20Constants2fIB5fMAD5fATTR5fSLVL5fTABLE">
IBA Base: Constants/IB_MAD_ATTR_SLVL_TABLE</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_definitions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>IB_MAD_ATTR_SLVL_TABLE</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       SL VL Mapping Table attribute (14.2.5)
</pre>
</span><p><strong>SOURCE</strong></p>
<span class="SOURCE"><pre>#define <strong>IB_MAD_ATTR_SLVL_TABLE</strong>                          (CL_NTOH16(0x0017))
</pre>
</span>
<hr />

<h2><a name="robo267">[Definitions]<a name="IBA20Base3a20Constants2fIB5fMAD5fATTR5fSM5fINFO">
IBA Base: Constants/IB_MAD_ATTR_SM_INFO</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_definitions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>IB_MAD_ATTR_SM_INFO</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       SMInfo attribute (14.2.5)
</pre>
</span><p><strong>SOURCE</strong></p>
<span class="SOURCE"><pre>#define <strong>IB_MAD_ATTR_SM_INFO</strong>                                     (CL_NTOH16(0x0020))
</pre>
</span>
<hr />

<h2><a name="robo268">[Definitions]<a name="IBA20Base3a20Constants2fIB5fMAD5fATTR5fSMINFO5fRECORD">
IBA Base: Constants/IB_MAD_ATTR_SMINFO_RECORD</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_definitions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>IB_MAD_ATTR_SMINFO_RECORD</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       SmInfoRecord attribute (15.2.5)
</pre>
</span><p><strong>SOURCE</strong></p>
<span class="SOURCE"><pre>#define <strong>IB_MAD_ATTR_SMINFO_RECORD</strong>                       (CL_NTOH16(0x0018))
</pre>
</span>
<hr />

<h2><a name="robo269">[Definitions]<a name="IBA20Base3a20Constants2fIB5fMAD5fATTR5fSVC5fASSOCIATION5fRECORD">
IBA Base: Constants/IB_MAD_ATTR_SVC_ASSOCIATION_RECORD</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_definitions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>IB_MAD_ATTR_SVC_ASSOCIATION_RECORD</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Service Association attribute (15.2.5)
</pre>
</span><p><strong>SOURCE</strong></p>
<span class="SOURCE"><pre>#define <strong>IB_MAD_ATTR_SVC_ASSOCIATION_RECORD</strong>              (CL_NTOH16(0x003B))
</pre>
</span>
<hr />

<h2><a name="robo270">[Definitions]<a name="IBA20Base3a20Constants2fIB5fMAD5fATTR5fSWITCH5fINFO">
IBA Base: Constants/IB_MAD_ATTR_SWITCH_INFO</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_definitions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>IB_MAD_ATTR_SWITCH_INFO</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       SwitchInfo attribute (14.2.5)
</pre>
</span><p><strong>SOURCE</strong></p>
<span class="SOURCE"><pre>#define <strong>IB_MAD_ATTR_SWITCH_INFO</strong>                         (CL_NTOH16(0x0012))
</pre>
</span>
<hr />

<h2><a name="robo271">[Definitions]<a name="IBA20Base3a20Constants2fIB5fMAD5fATTR5fTEST5fDEVICE5fLOOP">
IBA Base: Constants/IB_MAD_ATTR_TEST_DEVICE_LOOP</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_definitions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>IB_MAD_ATTR_TEST_DEVICE_LOOP</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       TestDeviceLoop attribute (16.3.3)
</pre>
</span><p><strong>SOURCE</strong></p>
<span class="SOURCE"><pre>#define <strong>IB_MAD_ATTR_TEST_DEVICE_LOOP</strong>            (CL_NTOH16(0x0023))
</pre>
</span>
<hr />

<h2><a name="robo272">[Definitions]<a name="IBA20Base3a20Constants2fIB5fMAD5fATTR5fTEST5fDEVICE5fONCE">
IBA Base: Constants/IB_MAD_ATTR_TEST_DEVICE_ONCE</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_definitions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>IB_MAD_ATTR_TEST_DEVICE_ONCE</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       TestDeviceOnce attribute (16.3.3)
</pre>
</span><p><strong>SOURCE</strong></p>
<span class="SOURCE"><pre>#define <strong>IB_MAD_ATTR_TEST_DEVICE_ONCE</strong>            (CL_NTOH16(0x0022))
</pre>
</span>
<hr />

<h2><a name="robo273">[Definitions]<a name="IBA20Base3a20Constants2fIB5fMAD5fATTR5fTRACE5fRECORD">
IBA Base: Constants/IB_MAD_ATTR_TRACE_RECORD</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_definitions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       IB_MAD_ATTR_MTRACE_RECORD
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       TraceRecord attribute (15.2.5)
</pre>
</span><p><strong>SOURCE</strong></p>
<span class="SOURCE"><pre>#define <strong>IB_MAD_ATTR_TRACE_RECORD</strong>                        (CL_NTOH16(0x0039))
</pre>
</span>
<hr />

<h2><a name="robo274">[Definitions]<a name="IBA20Base3a20Constants2fIB5fMAD5fATTR5fVENDOR5fDIAG">
IBA Base: Constants/IB_MAD_ATTR_VENDOR_DIAG</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_definitions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>IB_MAD_ATTR_VENDOR_DIAG</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       VendorDiag attribute (14.2.5)
</pre>
</span><p><strong>SOURCE</strong></p>
<span class="SOURCE"><pre>#define <strong>IB_MAD_ATTR_VENDOR_DIAG</strong>                         (CL_NTOH16(0x0030))
</pre>
</span>
<hr />

<h2><a name="robo275">[Definitions]<a name="IBA20Base3a20Constants2fIB5fMAD5fATTR5fVL5fARBITRATION">
IBA Base: Constants/IB_MAD_ATTR_VL_ARBITRATION</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_definitions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>IB_MAD_ATTR_VL_ARBITRATION</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       VL Arbitration Table attribute (14.2.5)
</pre>
</span><p><strong>SOURCE</strong></p>
<span class="SOURCE"><pre>#define <strong>IB_MAD_ATTR_VL_ARBITRATION</strong>                      (CL_NTOH16(0x0018))
</pre>
</span>
<hr />

<h2><a name="robo276">[Definitions]<a name="IBA20Base3a20Constants2fIB5fMAD5fATTR5fVLARB5fRECORD">
IBA Base: Constants/IB_MAD_ATTR_VLARB_RECORD</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_definitions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>IB_MAD_ATTR_VLARB_RECORD</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       VL Arbitration Table attribute (15.2.5)
</pre>
</span><p><strong>SOURCE</strong></p>
<span class="SOURCE"><pre>#define <strong>IB_MAD_ATTR_VLARB_RECORD</strong>                        (CL_NTOH16(0x0036))
</pre>
</span>
<hr />

<h2><a name="robo277">[Definitions]<a name="IBA20Base3a20Constants2fIB5fMAD5fMETHOD5fGET">
IBA Base: Constants/IB_MAD_METHOD_GET</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_definitions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>IB_MAD_METHOD_GET</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Get() Method (13.4.5)
</pre>
</span><p><strong>SOURCE</strong></p>
<span class="SOURCE"><pre>#define <strong>IB_MAD_METHOD_GET</strong>                                       0x01
</pre>
</span>
<hr />

<h2><a name="robo278">[Definitions]<a name="IBA20Base3a20Constants2fIB5fMAD5fMETHOD5fGET5fRESP">
IBA Base: Constants/IB_MAD_METHOD_GET_RESP</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_definitions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>IB_MAD_METHOD_GET_RESP</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       GetResp() Method (13.4.5)
</pre>
</span><p><strong>SOURCE</strong></p>
<span class="SOURCE"><pre>#define <strong>IB_MAD_METHOD_GET_RESP</strong>                          0x81
</pre>
</span>
<hr />

<h2><a name="robo279">[Definitions]<a name="IBA20Base3a20Constants2fIB5fMAD5fMETHOD5fGETTABLE">
IBA Base: Constants/IB_MAD_METHOD_GETTABLE</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_definitions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>IB_MAD_METHOD_GETTABLE</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       SubnAdmGetTable() Method (15.2.2)
</pre>
</span><p><strong>SOURCE</strong></p>
<span class="SOURCE"><pre>#define <strong>IB_MAD_METHOD_GETTABLE</strong>                          0x12
</pre>
</span>
<hr />

<h2><a name="robo280">[Definitions]<a name="IBA20Base3a20Constants2fIB5fMAD5fMETHOD5fGETTABLE5fRESP">
IBA Base: Constants/IB_MAD_METHOD_GETTABLE_RESP</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_definitions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>IB_MAD_METHOD_GETTABLE_RESP</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       SubnAdmGetTableResp() Method (15.2.2)
</pre>
</span><p><strong>SOURCE</strong></p>
<span class="SOURCE"><pre>#define <strong>IB_MAD_METHOD_GETTABLE_RESP</strong>                     0x92
</pre>
</span>
<hr />

<h2><a name="robo281">[Definitions]<a name="IBA20Base3a20Constants2fIB5fMAD5fMETHOD5fREPORT">
IBA Base: Constants/IB_MAD_METHOD_REPORT</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_definitions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>IB_MAD_METHOD_REPORT</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Report() Method (13.4.5)
</pre>
</span><p><strong>SOURCE</strong></p>
<span class="SOURCE"><pre>#define <strong>IB_MAD_METHOD_REPORT</strong>                            0x06
</pre>
</span>
<hr />

<h2><a name="robo282">[Definitions]<a name="IBA20Base3a20Constants2fIB5fMAD5fMETHOD5fREPORT5fRESP">
IBA Base: Constants/IB_MAD_METHOD_REPORT_RESP</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_definitions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>IB_MAD_METHOD_REPORT_RESP</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       ReportResp() Method (13.4.5)
</pre>
</span><p><strong>SOURCE</strong></p>
<span class="SOURCE"><pre>#define <strong>IB_MAD_METHOD_REPORT_RESP</strong>                       0x86
</pre>
</span>
<hr />

<h2><a name="robo283">[Definitions]<a name="IBA20Base3a20Constants2fIB5fMAD5fMETHOD5fRESP5fMASK">
IBA Base: Constants/IB_MAD_METHOD_RESP_MASK</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_definitions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>IB_MAD_METHOD_RESP_MASK</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Response mask to extract 'R' bit from the method field. (13.4.5)
</pre>
</span><p><strong>SOURCE</strong></p>
<span class="SOURCE"><pre>#define <strong>IB_MAD_METHOD_RESP_MASK</strong>                         0x80
</pre>
</span>
<hr />

<h2><a name="robo284">[Definitions]<a name="IBA20Base3a20Constants2fIB5fMAD5fMETHOD5fSEND">
IBA Base: Constants/IB_MAD_METHOD_SEND</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_definitions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>IB_MAD_METHOD_SEND</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Send() Method (13.4.5)
</pre>
</span><p><strong>SOURCE</strong></p>
<span class="SOURCE"><pre>#define <strong>IB_MAD_METHOD_SEND</strong>                                      0x03
</pre>
</span>
<hr />

<h2><a name="robo285">[Definitions]<a name="IBA20Base3a20Constants2fIB5fMAD5fMETHOD5fSET">
IBA Base: Constants/IB_MAD_METHOD_SET</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_definitions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>IB_MAD_METHOD_SET</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Set() Method (13.4.5)
</pre>
</span><p><strong>SOURCE</strong></p>
<span class="SOURCE"><pre>#define <strong>IB_MAD_METHOD_SET</strong>                                       0x02
</pre>
</span>
<hr />

<h2><a name="robo286">[Definitions]<a name="IBA20Base3a20Constants2fIB5fMAD5fMETHOD5fTRAP">
IBA Base: Constants/IB_MAD_METHOD_TRAP</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_definitions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>IB_MAD_METHOD_TRAP</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Trap() Method (13.4.5)
</pre>
</span><p><strong>SOURCE</strong></p>
<span class="SOURCE"><pre>#define <strong>IB_MAD_METHOD_TRAP</strong>                                      0x05
</pre>
</span>
<hr />

<h2><a name="robo287">[Definitions]<a name="IBA20Base3a20Constants2fIB5fMAD5fMETHOD5fTRAP5fREPRESS">
IBA Base: Constants/IB_MAD_METHOD_TRAP_REPRESS</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_definitions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>IB_MAD_METHOD_TRAP_REPRESS</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       TrapRepress() Method (13.4.5)
</pre>
</span><p><strong>SOURCE</strong></p>
<span class="SOURCE"><pre>#define <strong>IB_MAD_METHOD_TRAP_REPRESS</strong>                      0x07
</pre>
</span>
<hr />

<h2><a name="robo288">[Definitions]<a name="IBA20Base3a20Constants2fIB5fMAD5fSTATUS5fBUSY">
IBA Base: Constants/IB_MAD_STATUS_BUSY</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_definitions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>IB_MAD_STATUS_BUSY</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Temporarily busy, MAD discarded (13.4.7)
</pre>
</span><p><strong>SOURCE</strong></p>
<span class="SOURCE"><pre>#define <strong>IB_MAD_STATUS_BUSY</strong>                                      (CL_HTON16(0x0001))
</pre>
</span>
<hr />

<h2><a name="robo289">[Definitions]<a name="IBA20Base3a20Constants2fIB5fMAD5fSTATUS5fINVALID5fFIELD">
IBA Base: Constants/IB_MAD_STATUS_INVALID_FIELD</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_definitions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>IB_MAD_STATUS_INVALID_FIELD</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Attribute contains one or more invalid fields (13.4.7)
</pre>
</span><p><strong>SOURCE</strong></p>
<span class="SOURCE"><pre>#define <strong>IB_MAD_STATUS_INVALID_FIELD</strong>                     (CL_HTON16(0x001C))
</pre>
</span>
<hr />

<h2><a name="robo290">[Definitions]<a name="IBA20Base3a20Constants2fIB5fMAD5fSTATUS5fREDIRECT">
IBA Base: Constants/IB_MAD_STATUS_REDIRECT</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_definitions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>IB_MAD_STATUS_REDIRECT</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       QP Redirection required (13.4.7)
</pre>
</span><p><strong>SOURCE</strong></p>
<span class="SOURCE"><pre>#define <strong>IB_MAD_STATUS_REDIRECT</strong>                          (CL_HTON16(0x0002))
</pre>
</span>
<hr />

<h2><a name="robo291">[Definitions]<a name="IBA20Base3a20Constants2fIB5fMAD5fSTATUS5fUNSUP5fCLASS5fVER">
IBA Base: Constants/IB_MAD_STATUS_UNSUP_CLASS_VER</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_definitions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>IB_MAD_STATUS_UNSUP_CLASS_VER</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Unsupported class version (13.4.7)
</pre>
</span><p><strong>SOURCE</strong></p>
<span class="SOURCE"><pre>#define <strong>IB_MAD_STATUS_UNSUP_CLASS_VER</strong>           (CL_HTON16(0x0004))
</pre>
</span>
<hr />

<h2><a name="robo292">[Definitions]<a name="IBA20Base3a20Constants2fIB5fMAD5fSTATUS5fUNSUP5fMETHOD">
IBA Base: Constants/IB_MAD_STATUS_UNSUP_METHOD</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_definitions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>IB_MAD_STATUS_UNSUP_METHOD</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Unsupported method (13.4.7)
</pre>
</span><p><strong>SOURCE</strong></p>
<span class="SOURCE"><pre>#define <strong>IB_MAD_STATUS_UNSUP_METHOD</strong>                      (CL_HTON16(0x0008))
</pre>
</span>
<hr />

<h2><a name="robo293">[Definitions]<a name="IBA20Base3a20Constants2fIB5fMAD5fSTATUS5fUNSUP5fMETHOD5fATTR">
IBA Base: Constants/IB_MAD_STATUS_UNSUP_METHOD_ATTR</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_definitions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>IB_MAD_STATUS_UNSUP_METHOD_ATTR</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Unsupported method/attribute combination (13.4.7)
</pre>
</span><p><strong>SOURCE</strong></p>
<span class="SOURCE"><pre>#define <strong>IB_MAD_STATUS_UNSUP_METHOD_ATTR</strong>         (CL_HTON16(0x000C))
</pre>
</span>
<hr />

<h2><a name="robo294">[Definitions]<a name="IBA20Base3a20Constants2fIB5fMAX5fMETHOD">
IBA Base: Constants/IB_MAX_METHOD</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_definitions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>IB_MAX_METHOD</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Total number of methods available to a class, not including the R-bit.
</pre>
</span><p><strong>SOURCE</strong></p>
<span class="SOURCE"><pre>#define IB_MAX_METHODS                                          128
</pre>
</span>
<hr />

<h2><a name="robo295">[Definitions]<a name="IBA20Base3a20Constants2fIB5fMCAST5fBLOCK5fID5fMASK5fHO">
IBA Base: Constants/IB_MCAST_BLOCK_ID_MASK_HO</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_definitions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>IB_MCAST_BLOCK_ID_MASK_HO</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Mask (host order) to recover the Multicast block ID.
</pre>
</span><p><strong>SOURCE</strong></p>
<span class="SOURCE"><pre>#define <strong>IB_MCAST_BLOCK_ID_MASK_HO</strong>                       0x000001FF
</pre>
</span>
<hr />

<h2><a name="robo296">[Definitions]<a name="IBA20Base3a20Constants2fIB5fMCAST5fBLOCK5fSIZE">
IBA Base: Constants/IB_MCAST_BLOCK_SIZE</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_definitions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>IB_MCAST_BLOCK_SIZE</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Number of port mask entries in a multicast forwarding table block.
</pre>
</span><p><strong>SOURCE</strong></p>
<span class="SOURCE"><pre>#define <strong>IB_MCAST_BLOCK_SIZE</strong>                                     32
</pre>
</span>
<hr />

<h2><a name="robo297">[Definitions]<a name="IBA20Base3a20Constants2fIB5fMCAST5fMASK5fSIZE">
IBA Base: Constants/IB_MCAST_MASK_SIZE</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_definitions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>IB_MCAST_MASK_SIZE</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Number of port mask bits in each entry in the multicast forwarding table.
</pre>
</span><p><strong>SOURCE</strong></p>
<span class="SOURCE"><pre>#define <strong>IB_MCAST_MASK_SIZE</strong>                                      16
</pre>
</span>
<hr />

<h2><a name="robo298">[Definitions]<a name="IBA20Base3a20Constants2fIB5fMCAST5fMAX5fBLOCK5fID">
IBA Base: Constants/IB_MCAST_MAX_BLOCK_ID</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_definitions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>IB_MCAST_MAX_BLOCK_ID</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Maximum number of Multicast port mask blocks
</pre>
</span><p><strong>SOURCE</strong></p>
<span class="SOURCE"><pre>#define <strong>IB_MCAST_MAX_BLOCK_ID</strong>                           511
</pre>
</span>
<hr />

<h2><a name="robo299">[Definitions]<a name="IBA20Base3a20Constants2fIB5fMCAST5fPOSITION5fMASK5fHO">
IBA Base: Constants/IB_MCAST_POSITION_MASK_HO</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_definitions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>IB_MCAST_POSITION_MASK_HO</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Mask (host order) to recover the multicast block position.
</pre>
</span><p><strong>SOURCE</strong></p>
<span class="SOURCE"><pre>#define <strong>IB_MCAST_POSITION_MASK_HO</strong>                               0xF0000000
</pre>
</span>
<hr />

<h2><a name="robo300">[Definitions]<a name="IBA20Base3a20Constants2fIB5fMCAST5fPOSITION5fMAX">
IBA Base: Constants/IB_MCAST_POSITION_MAX</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_definitions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>IB_MCAST_POSITION_MAX</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Maximum value for the multicast block position.
</pre>
</span><p><strong>SOURCE</strong></p>
<span class="SOURCE"><pre>#define <strong>IB_MCAST_POSITION_MAX</strong>                           0xF
</pre>
</span>
<hr />

<h2><a name="robo301">[Definitions]<a name="IBA20Base3a20Constants2fIB5fMCAST5fPOSITION5fSHIFT">
IBA Base: Constants/IB_MCAST_POSITION_SHIFT</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_definitions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>IB_MCAST_POSITION_SHIFT</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Shift value to normalize the multicast block position value.
</pre>
</span><p><strong>SOURCE</strong></p>
<span class="SOURCE"><pre>#define <strong>IB_MCAST_POSITION_SHIFT</strong>                         28
</pre>
</span>
<hr />

<h2><a name="robo302">[Definitions]<a name="IBA20Base3a20Constants2fIB5fMCLASS5fBM">
IBA Base: Constants/IB_MCLASS_BM</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_definitions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>IB_MCLASS_BM</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Subnet Management Class, Baseboard Manager (13.4.4)
</pre>
</span><p><strong>SOURCE</strong></p>
<span class="SOURCE"><pre>#define <strong>IB_MCLASS_BM</strong>                                            0x05
</pre>
</span>
<hr />

<h2><a name="robo303">[Definitions]<a name="IBA20Base3a20Constants2fIB5fMCLASS5fCOMM5fMGMT">
IBA Base: Constants/IB_MCLASS_COMM_MGMT</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_definitions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>IB_MCLASS_COMM_MGMT</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Subnet Management Class, Communication Management (13.4.4)
</pre>
</span><p><strong>SOURCE</strong></p>
<span class="SOURCE"><pre>#define <strong>IB_MCLASS_COMM_MGMT</strong>                                     0x07
</pre>
</span>
<hr />

<h2><a name="robo304">[Definitions]<a name="IBA20Base3a20Constants2fIB5fMCLASS5fDEV5fMGMT">
IBA Base: Constants/IB_MCLASS_DEV_MGMT</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_definitions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>IB_MCLASS_DEV_MGMT</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Subnet Management Class, Device Management (13.4.4)
</pre>
</span><p><strong>SOURCE</strong></p>
<span class="SOURCE"><pre>#define <strong>IB_MCLASS_DEV_MGMT</strong>                                      0x06
</pre>
</span>
<hr />

<h2><a name="robo305">[Definitions]<a name="IBA20Base3a20Constants2fIB5fMCLASS5fPERF">
IBA Base: Constants/IB_MCLASS_PERF</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_definitions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>IB_MCLASS_PERF</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Subnet Management Class, Performance Manager (13.4.4)
</pre>
</span><p><strong>SOURCE</strong></p>
<span class="SOURCE"><pre>#define <strong>IB_MCLASS_PERF</strong>                                          0x04
</pre>
</span>
<hr />

<h2><a name="robo306">[Definitions]<a name="IBA20Base3a20Constants2fIB5fMCLASS5fSNMP">
IBA Base: Constants/IB_MCLASS_SNMP</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_definitions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>IB_MCLASS_SNMP</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Subnet Management Class, SNMP Tunneling (13.4.4)
</pre>
</span><p><strong>SOURCE</strong></p>
<span class="SOURCE"><pre>#define <strong>IB_MCLASS_SNMP</strong>                                          0x08
</pre>
</span>
<hr />

<h2><a name="robo307">[Definitions]<a name="IBA20Base3a20Constants2fIB5fMCLASS5fSUBN5fADM">
IBA Base: Constants/IB_MCLASS_SUBN_ADM</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_definitions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>IB_MCLASS_SUBN_ADM</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Subnet Management Class, Subnet Administration (13.4.4)
</pre>
</span><p><strong>SOURCE</strong></p>
<span class="SOURCE"><pre>#define <strong>IB_MCLASS_SUBN_ADM</strong>                                      0x03
</pre>
</span>
<hr />

<h2><a name="robo308">[Definitions]<a name="IBA20Base3a20Constants2fIB5fMCLASS5fSUBN5fDIR">
IBA Base: Constants/IB_MCLASS_SUBN_DIR</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_definitions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>IB_MCLASS_SUBN_DIR</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Subnet Management Class, Subnet Manager directed route (13.4.4)
</pre>
</span><p><strong>SOURCE</strong></p>
<span class="SOURCE"><pre>#define <strong>IB_MCLASS_SUBN_DIR</strong>                                      0x81
</pre>
</span>
<hr />

<h2><a name="robo309">[Definitions]<a name="IBA20Base3a20Constants2fIB5fMCLASS5fSUBN5fLID">
IBA Base: Constants/IB_MCLASS_SUBN_LID</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_definitions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>IB_MCLASS_SUBN_LID</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Subnet Management Class, Subnet Manager LID routed (13.4.4)
</pre>
</span><p><strong>SOURCE</strong></p>
<span class="SOURCE"><pre>#define <strong>IB_MCLASS_SUBN_LID</strong>                                      0x01
</pre>
</span>
<hr />

<h2><a name="robo310">[Definitions]<a name="IBA20Base3a20Constants2fIB5fMCLASS5fVENDOR5fHIGH5fRANGE5fMAX">
IBA Base: Constants/IB_MCLASS_VENDOR_HIGH_RANGE_MAX</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_definitions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>IB_MCLASS_VENDOR_HIGH_RANGE_MAX</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Subnet Management Class, Vendor Specific High Range End
</pre>
</span><p><strong>SOURCE</strong></p>
<span class="SOURCE"><pre>#define <strong>IB_MCLASS_VENDOR_HIGH_RANGE_MAX</strong> 0x4f
</pre>
</span>
<hr />

<h2><a name="robo311">[Definitions]<a name="IBA20Base3a20Constants2fIB5fMCLASS5fVENDOR5fHIGH5fRANGE5fMIN">
IBA Base: Constants/IB_MCLASS_VENDOR_HIGH_RANGE_MIN</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_definitions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>IB_MCLASS_VENDOR_HIGH_RANGE_MIN</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Subnet Management Class, Vendor Specific High Range Start
</pre>
</span><p><strong>SOURCE</strong></p>
<span class="SOURCE"><pre>#define <strong>IB_MCLASS_VENDOR_HIGH_RANGE_MIN</strong> 0x30
</pre>
</span>
<hr />

<h2><a name="robo312">[Definitions]<a name="IBA20Base3a20Constants2fIB5fMCLASS5fVENDOR5fLOW5fRANGE5fMAX">
IBA Base: Constants/IB_MCLASS_VENDOR_LOW_RANGE_MAX</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_definitions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>IB_MCLASS_VENDOR_LOW_RANGE_MAX</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Subnet Management Class, Vendor Specific Low Range End
</pre>
</span><p><strong>SOURCE</strong></p>
<span class="SOURCE"><pre>#define <strong>IB_MCLASS_VENDOR_LOW_RANGE_MAX</strong> 0x0f
</pre>
</span>
<hr />

<h2><a name="robo313">[Definitions]<a name="IBA20Base3a20Constants2fIB5fMCLASS5fVENDOR5fLOW5fRANGE5fMIN">
IBA Base: Constants/IB_MCLASS_VENDOR_LOW_RANGE_MIN</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_definitions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>IB_MCLASS_VENDOR_LOW_RANGE_MIN</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Subnet Management Class, Vendor Specific Low Range Start
</pre>
</span><p><strong>SOURCE</strong></p>
<span class="SOURCE"><pre>#define <strong>IB_MCLASS_VENDOR_LOW_RANGE_MIN</strong> 0x09
</pre>
</span>
<hr />

<h2><a name="robo314">[Definitions]<a name="IBA20Base3a20Constants2fIB5fMTU5fTYPE">
IBA Base: Constants/IB_MTU_TYPE</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_definitions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>IB_MTU_TYPE</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Encoded path MTU.
               1: 256
               2: 512
               3: 1024
               4: 2048
               5: 4096
               others: reserved
</pre>
</span><p><strong>SOURCE</strong></p>
<span class="SOURCE"><pre>#define IB_MTU_256                                                      1
#define IB_MTU_512                                                      2
#define IB_MTU_1024                                                     3
#define IB_MTU_2048                                                     4
#define IB_MTU_4096                                                     5
</pre>
</span>
<hr />

<h2><a name="robo315">[Definitions]<a name="IBA20Base3a20Constants2fIB5fNODE5fNUM5fPORTS5fMAX">
IBA Base: Constants/IB_NODE_NUM_PORTS_MAX</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_definitions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>IB_NODE_NUM_PORTS_MAX</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Maximum number of ports in a single node (14.2.5.7).
</pre>
</span><p><strong>SOURCE</strong></p>
<span class="SOURCE"><pre>#define <strong>IB_NODE_NUM_PORTS_MAX</strong>                           0xFE
</pre>
</span>
<hr />

<h2><a name="robo316">[Definitions]<a name="IBA20Base3a20Constants2fIB5fNODE5fTYPE5fCA">
IBA Base: Constants/IB_NODE_TYPE_CA</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_definitions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>IB_NODE_TYPE_CA</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Encoded generic node type used in MAD attributes (13.4.8.2)
</pre>
</span><p><strong>SOURCE</strong></p>
<span class="SOURCE"><pre>#define <strong>IB_NODE_TYPE_CA</strong>                                         0x01
</pre>
</span>
<hr />

<h2><a name="robo317">[Definitions]<a name="IBA20Base3a20Constants2fIB5fNODE5fTYPE5fROUTER">
IBA Base: Constants/IB_NODE_TYPE_ROUTER</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_definitions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>IB_NODE_TYPE_ROUTER</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Encoded generic node type used in MAD attributes (13.4.8.2)
</pre>
</span><p><strong>SOURCE</strong></p>
<span class="SOURCE"><pre>#define <strong>IB_NODE_TYPE_ROUTER</strong>                                     0x03
</pre>
</span>
<hr />

<h2><a name="robo318">[Definitions]<a name="IBA20Base3a20Constants2fIB5fNODE5fTYPE5fSWITCH">
IBA Base: Constants/IB_NODE_TYPE_SWITCH</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_definitions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>IB_NODE_TYPE_SWITCH</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Encoded generic node type used in MAD attributes (13.4.8.2)
</pre>
</span><p><strong>SOURCE</strong></p>
<span class="SOURCE"><pre>#define <strong>IB_NODE_TYPE_SWITCH</strong>                                     0x02
</pre>
</span>
<hr />

<h2><a name="robo319">[Definitions]<a name="IBA20Base3a20Constants2fIB5fNOTICE5fNODE5fTYPE5fCA">
IBA Base: Constants/IB_NOTICE_NODE_TYPE_CA</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_definitions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>IB_NOTICE_NODE_TYPE_CA</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Encoded generic node type used in MAD attributes (13.4.8.2)
</pre>
</span><p><strong>SOURCE</strong></p>
<span class="SOURCE"><pre>#define <strong>IB_NOTICE_NODE_TYPE_CA</strong>                          (CL_NTOH32(0x000001))
</pre>
</span>
<hr />

<h2><a name="robo320">[Definitions]<a name="IBA20Base3a20Constants2fIB5fNOTICE5fNODE5fTYPE5fROUTER">
IBA Base: Constants/IB_NOTICE_NODE_TYPE_ROUTER</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_definitions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>IB_NOTICE_NODE_TYPE_ROUTER</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Encoded generic node type used in MAD attributes (13.4.8.2)
</pre>
</span><p><strong>SOURCE</strong></p>
<span class="SOURCE"><pre>#define <strong>IB_NOTICE_NODE_TYPE_ROUTER</strong>                      (CL_NTOH32(0x000003))
</pre>
</span>
<hr />

<h2><a name="robo321">[Definitions]<a name="IBA20Base3a20Constants2fIB5fNOTICE5fNODE5fTYPE5fSUBN5fMGMT">
IBA Base: Constants/IB_NOTICE_NODE_TYPE_SUBN_MGMT</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_definitions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>IB_NOTICE_NODE_TYPE_SUBN_MGMT</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Encoded generic node type used in MAD attributes (13.4.8.2).
       Note that this value is not defined for the NodeType field
       of the NodeInfo attribute (14.2.5.3).
</pre>
</span><p><strong>SOURCE</strong></p>
<span class="SOURCE"><pre>#define <strong>IB_NOTICE_NODE_TYPE_SUBN_MGMT</strong>           (CL_NTOH32(0x000004))
</pre>
</span>
<hr />

<h2><a name="robo322">[Definitions]<a name="IBA20Base3a20Constants2fIB5fNOTICE5fNODE5fTYPE5fSWITCH">
IBA Base: Constants/IB_NOTICE_NODE_TYPE_SWITCH</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_definitions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>IB_NOTICE_NODE_TYPE_SWITCH</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Encoded generic node type used in MAD attributes (13.4.8.2)
</pre>
</span><p><strong>SOURCE</strong></p>
<span class="SOURCE"><pre>#define <strong>IB_NOTICE_NODE_TYPE_SWITCH</strong>                      (CL_NTOH32(0x000002))
</pre>
</span>
<hr />

<h2><a name="robo323">[Definitions]<a name="IBA20Base3a20Constants2fIB5fPATH5fREC5fBASE5fMASK">
IBA Base: Constants/IB_PATH_REC_BASE_MASK</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_definitions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>IB_PATH_REC_BASE_MASK</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Mask for the base value field for path record MTU, rate
       and packet lifetime.
</pre>
</span><p><strong>SOURCE</strong></p>
<span class="SOURCE"><pre>#define <strong>IB_PATH_REC_BASE_MASK</strong>                           0x3F
</pre>
</span>
<hr />

<h2><a name="robo324">[Definitions]<a name="IBA20Base3a20Constants2fIB5fPATH5fREC5fSELECTOR5fMASK">
IBA Base: Constants/IB_PATH_REC_SELECTOR_MASK</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_definitions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>IB_PATH_REC_SELECTOR_MASK</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Mask for the selector field for path record MTU, rate
       and packet lifetime.
</pre>
</span><p><strong>SOURCE</strong></p>
<span class="SOURCE"><pre>#define <strong>IB_PATH_REC_SELECTOR_MASK</strong>                       0xC0
</pre>
</span>
<hr />

<h2><a name="robo325">[Definitions]<a name="IBA20Base3a20Constants2fIB5fPATH5fSELECTOR5fTYPE">
IBA Base: Constants/IB_PATH_SELECTOR_TYPE</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_definitions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>IB_PATH_SELECTOR_TYPE</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Path selector.
               0: greater than rate specified
               1: less than rate specified
               2: exactly the rate specified
               3: largest rate available
</pre>
</span><p><strong>SOURCE</strong></p>
<span class="SOURCE"><pre>#define IB_PATH_SELECTOR_GREATER_THAN           0
#define IB_PATH_SELECTOR_LESS_THAN                      1
#define IB_PATH_SELECTOR_EXACTLY                        2
#define IB_PATH_SELECTOR_LARGEST                        3
</pre>
</span>
<hr />

<h2><a name="robo326">[Definitions]<a name="IBA20Base3a20Constants2fIB5fPKEY5fBASE5fMASK">
IBA Base: Constants/IB_PKEY_BASE_MASK</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_definitions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>IB_PKEY_BASE_MASK</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Masks for the base P_Key value given a P_Key Entry.
</pre>
</span><p><strong>SOURCE</strong></p>
<span class="SOURCE"><pre>#define <strong>IB_PKEY_BASE_MASK</strong>                                       (CL_NTOH16(0x7FFF))
</pre>
</span>
<hr />

<h2><a name="robo327">[Definitions]<a name="IBA20Base3a20Constants2fIB5fPKEY5fENTRIES5fMAX">
IBA Base: Constants/IB_PKEY_ENTRIES_MAX</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_definitions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>IB_PKEY_ENTRIES_MAX</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Maximum number of PKEY entries per port (14.2.5.7).
</pre>
</span><p><strong>SOURCE</strong></p>
<span class="SOURCE"><pre>#define <strong>IB_PKEY_ENTRIES_MAX</strong> (<a href="#robo328">IB_PKEY_MAX_BLOCKS</a> * IB_PKEY_BLOCK_SIZE)
</pre>
</span>
<hr />

<h2><a name="robo328">[Definitions]<a name="IBA20Base3a20Constants2fIB5fPKEY5fMAX5fBLOCKS">
IBA Base: Constants/IB_PKEY_MAX_BLOCKS</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_definitions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>IB_PKEY_MAX_BLOCKS</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Maximum number of PKEY blocks (14.2.5.7).
</pre>
</span><p><strong>SOURCE</strong></p>
<span class="SOURCE"><pre>#define <strong>IB_PKEY_MAX_BLOCKS</strong>                                      2048
</pre>
</span>
<hr />

<h2><a name="robo329">[Definitions]<a name="IBA20Base3a20Constants2fIB5fPKEY5fTYPE5fMASK">
IBA Base: Constants/IB_PKEY_TYPE_MASK</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_definitions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>IB_PKEY_TYPE_MASK</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Masks for the P_Key membership type given a P_Key Entry.
</pre>
</span><p><strong>SOURCE</strong></p>
<span class="SOURCE"><pre>#define <strong>IB_PKEY_TYPE_MASK</strong>                                       (CL_NTOH16(0x8000))
</pre>
</span>
<hr />

<h2><a name="robo330">[Definitions]<a name="IBA20Base3a20Constants2fIB5fQP15fWELL5fKNOWN5fQ5fKEY">
IBA Base: Constants/IB_QP1_WELL_KNOWN_Q_KEY</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_definitions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>IB_QP1_WELL_KNOWN_Q_KEY</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Well-known Q_Key for QP1 privileged mode access (15.4.2).
</pre>
</span><p><strong>SOURCE</strong></p>
<span class="SOURCE"><pre>#define <strong>IB_QP1_WELL_KNOWN_Q_KEY</strong>                         CL_NTOH32(0x80010000)
</pre>
</span>
<hr />

<h2><a name="robo331">[Definitions]<a name="IBA20Base3a20Constants2fIB5fSMINFO5fATTR5fMOD5fACKNOWLEDGE">
IBA Base: Constants/IB_SMINFO_ATTR_MOD_ACKNOWLEDGE</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_definitions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>IB_SMINFO_ATTR_MOD_ACKNOWLEDGE</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Encoded attribute modifier value used on SubnSet(SMInfo) SMPs.
</pre>
</span><p><strong>SOURCE</strong></p>
<span class="SOURCE"><pre>#define <strong>IB_SMINFO_ATTR_MOD_ACKNOWLEDGE</strong>          (CL_NTOH32(0x000002))
</pre>
</span>
<hr />

<h2><a name="robo332">[Definitions]<a name="IBA20Base3a20Constants2fIB5fSMINFO5fATTR5fMOD5fDISABLE">
IBA Base: Constants/IB_SMINFO_ATTR_MOD_DISABLE</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_definitions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>IB_SMINFO_ATTR_MOD_DISABLE</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Encoded attribute modifier value used on SubnSet(SMInfo) SMPs.
</pre>
</span><p><strong>SOURCE</strong></p>
<span class="SOURCE"><pre>#define <strong>IB_SMINFO_ATTR_MOD_DISABLE</strong>                      (CL_NTOH32(0x000003))
</pre>
</span>
<hr />

<h2><a name="robo333">[Definitions]<a name="IBA20Base3a20Constants2fIB5fSMINFO5fATTR5fMOD5fDISCOVER">
IBA Base: Constants/IB_SMINFO_ATTR_MOD_DISCOVER</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_definitions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>IB_SMINFO_ATTR_MOD_DISCOVER</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Encoded attribute modifier value used on SubnSet(SMInfo) SMPs.
</pre>
</span><p><strong>SOURCE</strong></p>
<span class="SOURCE"><pre>#define <strong>IB_SMINFO_ATTR_MOD_DISCOVER</strong>                     (CL_NTOH32(0x000005))
</pre>
</span>
<hr />

<h2><a name="robo334">[Definitions]<a name="IBA20Base3a20Constants2fIB5fSMINFO5fATTR5fMOD5fHANDOVER">
IBA Base: Constants/IB_SMINFO_ATTR_MOD_HANDOVER</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_definitions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>IB_SMINFO_ATTR_MOD_HANDOVER</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Encoded attribute modifier value used on SubnSet(SMInfo) SMPs.
</pre>
</span><p><strong>SOURCE</strong></p>
<span class="SOURCE"><pre>#define <strong>IB_SMINFO_ATTR_MOD_HANDOVER</strong>             (CL_NTOH32(0x000001))
</pre>
</span>
<hr />

<h2><a name="robo335">[Definitions]<a name="IBA20Base3a20Constants2fIB5fSMINFO5fATTR5fMOD5fSTANDBY">
IBA Base: Constants/IB_SMINFO_ATTR_MOD_STANDBY</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_definitions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>IB_SMINFO_ATTR_MOD_STANDBY</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Encoded attribute modifier value used on SubnSet(SMInfo) SMPs.
</pre>
</span><p><strong>SOURCE</strong></p>
<span class="SOURCE"><pre>#define <strong>IB_SMINFO_ATTR_MOD_STANDBY</strong>                      (CL_NTOH32(0x000004))
</pre>
</span>
<hr />

<h2><a name="robo336">[Definitions]<a name="IBA20Base3a20Constants2fIB5fSMINFO5fSTATE5fDISCOVERING">
IBA Base: Constants/IB_SMINFO_STATE_DISCOVERING</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_definitions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>IB_SMINFO_STATE_DISCOVERING</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Encoded state value used in the SMInfo attribute.
</pre>
</span><p><strong>SOURCE</strong></p>
<span class="SOURCE"><pre>#define <strong>IB_SMINFO_STATE_DISCOVERING</strong>                     1
</pre>
</span>
<hr />

<h2><a name="robo337">[Definitions]<a name="IBA20Base3a20Constants2fIB5fSMINFO5fSTATE5fINIT">
IBA Base: Constants/IB_SMINFO_STATE_INIT</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_definitions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>IB_SMINFO_STATE_INIT</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Encoded state value used in the SMInfo attribute.
</pre>
</span><p><strong>SOURCE</strong></p>
<span class="SOURCE"><pre>#define <strong>IB_SMINFO_STATE_INIT</strong>                                    4
</pre>
</span>
<hr />

<h2><a name="robo338">[Definitions]<a name="IBA20Base3a20Constants2fIB5fSMINFO5fSTATE5fMASTER">
IBA Base: Constants/IB_SMINFO_STATE_MASTER</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_definitions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>IB_SMINFO_STATE_MASTER</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Encoded state value used in the SMInfo attribute.
</pre>
</span><p><strong>SOURCE</strong></p>
<span class="SOURCE"><pre>#define <strong>IB_SMINFO_STATE_MASTER</strong>                          3
</pre>
</span>
<hr />

<h2><a name="robo339">[Definitions]<a name="IBA20Base3a20Constants2fIB5fSMINFO5fSTATE5fNOTACTIVE">
IBA Base: Constants/IB_SMINFO_STATE_NOTACTIVE</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_definitions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>IB_SMINFO_STATE_NOTACTIVE</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Encoded state value used in the SMInfo attribute.
</pre>
</span><p><strong>SOURCE</strong></p>
<span class="SOURCE"><pre>#define <strong>IB_SMINFO_STATE_NOTACTIVE</strong>                       0
</pre>
</span>
<hr />

<h2><a name="robo340">[Definitions]<a name="IBA20Base3a20Constants2fIB5fSMINFO5fSTATE5fSTANDBY">
IBA Base: Constants/IB_SMINFO_STATE_STANDBY</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_definitions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>IB_SMINFO_STATE_STANDBY</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Encoded state value used in the SMInfo attribute.
</pre>
</span><p><strong>SOURCE</strong></p>
<span class="SOURCE"><pre>#define <strong>IB_SMINFO_STATE_STANDBY</strong>                         2
</pre>
</span>
<hr />

<h2><a name="robo341">[Definitions]<a name="IBA20Base3a20Constants2fIB5fSMP5fDIRECTION">
IBA Base: Constants/IB_SMP_DIRECTION</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_definitions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>IB_SMP_DIRECTION</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       The Direction bit for directed route SMPs.
</pre>
</span><p><strong>SOURCE</strong></p>
<span class="SOURCE"><pre>#define <strong>IB_SMP_DIRECTION</strong>                        (CL_HTON16(0x8000))
</pre>
</span>
<hr />

<h2><a name="robo342">[Definitions]<a name="IBA20Base3a20Constants2fIB5fSMP5fSTATUS5fMASK">
IBA Base: Constants/IB_SMP_STATUS_MASK</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_definitions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>IB_SMP_STATUS_MASK</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Mask value for extracting status from a directed route SMP.
</pre>
</span><p><strong>SOURCE</strong></p>
<span class="SOURCE"><pre>#define <strong>IB_SMP_STATUS_MASK</strong>                      (CL_HTON16(0x7FFF))
</pre>
</span>
<hr />

<h2><a name="robo343">[Definitions]<a name="IBA20Base3a20Constants2fIB5fSUBNET5fPATH5fHOPS5fMAX">
IBA Base: Constants/IB_SUBNET_PATH_HOPS_MAX</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_definitions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>IB_SUBNET_PATH_HOPS_MAX</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Maximum number of directed route switch hops in a subnet (14.2.1.2).
</pre>
</span><p><strong>SOURCE</strong></p>
<span class="SOURCE"><pre>#define <strong>IB_SUBNET_PATH_HOPS_MAX</strong>                         64
</pre>
</span>
<hr />

<h2><a name="robo344">[Definitions]<a name="IBA20Base3a20Constants2fJoin20States">
IBA Base: Constants/Join States</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_definitions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       Join States
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Defines the join state flags for multicast group management.
</pre>
</span><p><strong>SOURCE</strong></p>
<span class="SOURCE"><pre>#define IB_JOIN_STATE_FULL                      1
#define IB_JOIN_STATE_NON                       2
#define IB_JOIN_STATE_SEND_ONLY         4
</pre>
</span>
<hr />

<h2><a name="robo345">[Definitions]<a name="IBA20Base3a20Constants2fMAD5fBLOCK5fGRH5fSIZE">
IBA Base: Constants/MAD_BLOCK_GRH_SIZE</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_definitions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>MAD_BLOCK_GRH_SIZE</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Size of a MAD datagram, including the GRH.
</pre>
</span><p><strong>SOURCE</strong></p>
<span class="SOURCE"><pre>#define <strong>MAD_BLOCK_GRH_SIZE</strong>                                      296
</pre>
</span>
<hr />

<h2><a name="robo346">[Definitions]<a name="IBA20Base3a20Constants2fMAD5fBLOCK5fSIZE">
IBA Base: Constants/MAD_BLOCK_SIZE</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_definitions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>MAD_BLOCK_SIZE</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Size of a non-RMPP MAD datagram.
</pre>
</span><p><strong>SOURCE</strong></p>
<span class="SOURCE"><pre>#define <strong>MAD_BLOCK_SIZE</strong>                                          256
</pre>
</span>
<hr />

<h2><a name="robo347">[Definitions]<a name="IBA20Base3a20Constants2fMAD5fRMPP5fDATA5fSIZE">
IBA Base: Constants/MAD_RMPP_DATA_SIZE</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_definitions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>MAD_RMPP_DATA_SIZE</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Size of an RMPP transaction data section.
</pre>
</span><p><strong>SOURCE</strong></p>
<span class="SOURCE"><pre>#define <strong>MAD_RMPP_DATA_SIZE</strong>              (<a href="#robo346">MAD_BLOCK_SIZE</a> - <a href="#robo348">MAD_RMPP_HDR_SIZE</a>)
</pre>
</span>
<hr />

<h2><a name="robo348">[Definitions]<a name="IBA20Base3a20Constants2fMAD5fRMPP5fHDR5fSIZE">
IBA Base: Constants/MAD_RMPP_HDR_SIZE</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_definitions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>MAD_RMPP_HDR_SIZE</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Size of an RMPP header, including the common MAD header.
</pre>
</span><p><strong>SOURCE</strong></p>
<span class="SOURCE"><pre>#define <strong>MAD_RMPP_HDR_SIZE</strong>                                       36
</pre>
</span>
<hr />

<h2><a name="robo349">[Definitions]<a name="IBA20Base3a20Types2fDM5fSVC5fNAME">
IBA Base: Types/DM_SVC_NAME</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_definitions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>DM_SVC_NAME</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       IBA defined Device Management service name (16.3)
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>#define <strong>DM_SVC_NAME</strong>                             "DeviceManager.IBTA"
</pre>
</span><p><strong>SEE ALSO</strong></p>
<span class="SEE_ALSO"></span>
<hr />

<h2><a name="robo350">[Functions]<a name="IBA20Base3a20Types2fib5fclass5fis5fvendor5fspecific">
IBA Base: Types/ib_class_is_vendor_specific</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_functions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_class_is_vendor_specific</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Indicitates if the Class Code if a vendor specific class
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>static inline boolean_t
<strong>ib_class_is_vendor_specific</strong>(
        IN              const   uint8_t class_code )
{
  return( <a href="#robo352">ib_class_is_vendor_specific_low</a>(class_code) ||
                         <a href="#robo351">ib_class_is_vendor_specific_high</a>(class_code) );
}
</pre>
</span><p><strong>PARAMETERS</strong></p>
<span class="PARAMETERS"><pre>       class_code
               [in] The Management Datagram Class Code
</pre>
</span><p><strong>RETURN VALUE</strong></p>
<span class="RETURN_VALUE"><pre>       TRUE if the class is a Vendor Specific MAD
       FALSE otherwise.
</pre>
</span><p><strong>NOTES</strong></p>
<span class="NOTES"><pre>
</pre>
</span><p><strong>SEE ALSO</strong></p>
<span class="SEE_ALSO"><pre>  <a href="#robo352">ib_class_is_vendor_specific_low</a>, <a href="#robo351">ib_class_is_vendor_specific_high</a>
</pre>
</span>
<hr />

<h2><a name="robo351">[Functions]<a name="IBA20Base3a20Types2fib5fclass5fis5fvendor5fspecific5fhigh">
IBA Base: Types/ib_class_is_vendor_specific_high</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_functions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_class_is_vendor_specific_high</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Indicitates if the Class Code if a vendor specific class from 
  the high range
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>static inline boolean_t
<strong>ib_class_is_vendor_specific_high</strong>(
        IN              const   uint8_t class_code )
{
        return( (class_code >= <a href="#robo311">IB_MCLASS_VENDOR_HIGH_RANGE_MIN</a>) &&
           (class_code <= <a href="#robo310">IB_MCLASS_VENDOR_HIGH_RANGE_MAX</a>)) ;
}
</pre>
</span><p><strong>PARAMETERS</strong></p>
<span class="PARAMETERS"><pre>       class_code
               [in] The Management Datagram Class Code
</pre>
</span><p><strong>RETURN VALUE</strong></p>
<span class="RETURN_VALUE"><pre>       TRUE if the class is in the High range of Vendor Specific MADs 
       FALSE otherwise.
</pre>
</span><p><strong>NOTES</strong></p>
<span class="NOTES"><pre>
</pre>
</span><p><strong>SEE ALSO</strong></p>
<span class="SEE_ALSO"><pre> <a href="#robo311">IB_MCLASS_VENDOR_HIGH_RANGE_MIN</a>, <a href="#robo310">IB_MCLASS_VENDOR_HIGH_RANGE_MAX</a>
</pre>
</span>
<hr />

<h2><a name="robo352">[Functions]<a name="IBA20Base3a20Types2fib5fclass5fis5fvendor5fspecific5flow">
IBA Base: Types/ib_class_is_vendor_specific_low</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_functions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_class_is_vendor_specific_low</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Indicitates if the Class Code if a vendor specific class from 
  the low range
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>static inline boolean_t
<strong>ib_class_is_vendor_specific_low</strong>(
        IN              const   uint8_t class_code )
{
        return( (class_code >= <a href="#robo313">IB_MCLASS_VENDOR_LOW_RANGE_MIN</a>) &&
           (class_code <= <a href="#robo312">IB_MCLASS_VENDOR_LOW_RANGE_MAX</a>)) ;
}
</pre>
</span><p><strong>PARAMETERS</strong></p>
<span class="PARAMETERS"><pre>       class_code
               [in] The Management Datagram Class Code
</pre>
</span><p><strong>RETURN VALUE</strong></p>
<span class="RETURN_VALUE"><pre>       TRUE if the class is in the Low range of Vendor Specific MADs 
       FALSE otherwise.
</pre>
</span><p><strong>NOTES</strong></p>
<span class="NOTES"><pre>
</pre>
</span><p><strong>SEE ALSO</strong></p>
<span class="SEE_ALSO"><pre> <a href="#robo313">IB_MCLASS_VENDOR_LOW_RANGE_MIN</a>, <a href="#robo312">IB_MCLASS_VENDOR_LOW_RANGE_MAX</a>
</pre>
</span>
<hr />

<h2><a name="robo353">[Structures]<a name="IBA20Base3a20Types2fib5fclass5fport5finfo5ft">
IBA Base: Types/ib_class_port_info_t</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_strutures.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_class_port_info_t</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       IBA defined ClassPortInfo attribute (13.4.8.1)
       route between two end-points on a subnet.
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>#include <complib/cl_packon.h>
typedef struct _ib_class_port_info
{
        uint8_t                                 base_ver;
        uint8_t                                 class_ver;
        <a href="#robo407">ib_net16_t</a>                              cap_mask;
        <a href="#robo408">ib_net32_t</a>                              resp_time_val;
        <a href="#robo370">ib_gid_t</a>                                redir_gid;
        <a href="#robo408">ib_net32_t</a>                              redir_tc_sl_fl;
        <a href="#robo407">ib_net16_t</a>                              redir_lid;
        <a href="#robo407">ib_net16_t</a>                              redir_pkey;
        <a href="#robo408">ib_net32_t</a>                              redir_qp;
        <a href="#robo408">ib_net32_t</a>                              redir_qkey;
        <a href="#robo370">ib_gid_t</a>                                trap_gid;
        <a href="#robo408">ib_net32_t</a>                              trap_tc_sl_fl;
        <a href="#robo407">ib_net16_t</a>                              trap_lid;
        <a href="#robo407">ib_net16_t</a>                              trap_pkey;
        <a href="#robo408">ib_net32_t</a>                              trap_hop_qp;
        <a href="#robo408">ib_net32_t</a>                              trap_qkey;

}       PACK_SUFFIX <strong>ib_class_port_info_t</strong>;
#include <complib/cl_packoff.h>
</pre>
</span><p><strong>FIELDS</strong></p>
<span class="FIELDS"><pre>       base_ver
               Maximum supported MAD Base Version.

       class_ver
               Maximum supported management class version.

       cap_mask
               Supported capabilities of this management class.

       resp_time_value
               Maximum expected response time.

       redr_gid
               GID to use for redirection, or zero

       recdir_tc_sl_fl
               Traffic class, service level and flow label the requester
               should use if the service is redirected.

       redir_lid
               LID used for redirection, or zero

       redir_pkey
               P_Key used for redirection

       redir_qp
               QP number used for redirection

       redir_qkey
               Q_Key associated with the redirected QP.  This shall be the
               well known Q_Key value.

       trap_gid
               GID value used for trap messages from this service.

       trap_tc_sl_fl
               Traffic class, service level and flow label used for
               trap messages originated by this service.

       trap_lid
               LID used for trap messages, or zero

       trap_pkey
               P_Key used for trap messages

       trap_hop_qp
               Hop limit (upper 8 bits) and QP number used for trap messages

       trap_qkey
               Q_Key associated with the trap messages QP.
</pre>
</span><p><strong>SEE ALSO</strong></p>
<span class="SEE_ALSO"><pre>       <a href="#robo223">IB_CLASS_CAP_GETSET</a>, <a href="#robo224">IB_CLASS_CAP_TRAP</a>
</pre>
</span>
<hr />

<h2><a name="robo354">[Structures]<a name="IBA20Base3a20Types2fib5fdm5fmad5ft">
IBA Base: Types/ib_dm_mad_t</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_strutures.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_dm_mad_t</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       IBA defined Device Management MAD (16.3.1)
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>#include <complib/cl_packon.h>
typedef struct _ib_dm_mad
{
        <a href="#robo396">ib_mad_t</a>                hdr;
        uint8_t                 resv[40];

#define IB_DM_DATA_SIZE                 192
        uint8_t                 data[IB_DM_DATA_SIZE];

}       PACK_SUFFIX <strong>ib_dm_mad_t</strong>;
#include <complib/cl_packoff.h>
</pre>
</span><p><strong>FIELDS</strong></p>
<span class="FIELDS"><pre>       hdr
               Common MAD header.

       resv
               Reserved.

       data
               Device Management payload.  The structure and content of this field
               depend upon the method, attr_id, and attr_mod fields in the header.
</pre>
</span><p><strong>SEE ALSO</strong></p>
<span class="SEE_ALSO"><pre> <a href="#robo396">ib_mad_t</a>
</pre>
</span>
<hr />

<h2><a name="robo355">[Structures]<a name="IBA20Base3a20Types2fib5ffield325ft">
IBA Base: Types/ib_field32_t</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_strutures.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_field32_t</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Represents a 32-bit field, and allows access as a 32-bit network byte
       ordered or a 4-byte array.
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>#include <complib/cl_packon.h>
typedef union _<strong>ib_field32_t</strong>
{
        net32_t         val;
        uint8_t         bytes[4];

}       PACK_SUFFIX <strong>ib_field32_t</strong>;
#include <complib/cl_packoff.h>
</pre>
</span><p><strong>FIELDS</strong></p>
<span class="FIELDS"><pre>       val
               Full field value.

       bytes
               Byte array representing the field.  The byte array provides identical
               access independently from CPU byte-ordering.
</pre>
</span>
<hr />

<h2><a name="robo356">[Functions]<a name="IBA20Base3a20Types2fib5fget5fasync5fevent5fstr">
IBA Base: Types/ib_get_async_event_str</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_functions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_get_async_event_str</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Returns a string for the specified asynchronous event.
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>AL_EXPORT const char* AL_API
<strong>ib_get_async_event_str</strong>(
        IN                              <a href="#robo610">ib_async_event_t</a>                        event );
</pre>
</span><p><strong>PARAMETERS</strong></p>
<span class="PARAMETERS"><pre>       event
               [in] event value

 RETURN VALUES
       Pointer to the asynchronous event description string.
</pre>
</span><p><strong>NOTES</strong></p>
<span class="NOTES"><pre>
</pre>
</span><p><strong>SEE ALSO</strong></p>
<span class="SEE_ALSO"></span>
<hr />

<h2><a name="robo357">[Functions]<a name="IBA20Base3a20Types2fib5fget5ferr5fstr">
IBA Base: Types/ib_get_err_str</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_functions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_get_err_str</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Returns a string for the specified status value.
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>AL_EXPORT const char* AL_API
<strong>ib_get_err_str</strong>(
        IN                              <a href="#robo9">ib_api_status_t</a>                         status );
</pre>
</span><p><strong>PARAMETERS</strong></p>
<span class="PARAMETERS"><pre>       status
               [in] status value

 RETURN VALUES
       Pointer to the status description string.
</pre>
</span><p><strong>NOTES</strong></p>
<span class="NOTES"><pre>
</pre>
</span><p><strong>SEE ALSO</strong></p>
<span class="SEE_ALSO"></span>
<hr />

<h2><a name="robo358">[Functions]<a name="IBA20Base3a20Types2fib5fget5fnode5ftype5fstr">
IBA Base: Types/ib_get_node_type_str</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_functions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_get_node_type_str</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Returns a string for the specified node type.
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>AL_INLINE const char* AL_API
<strong>ib_get_node_type_str</strong>(
        IN                              uint8_t                                         node_type )
{
        if( node_type >= <a href="#robo317">IB_NODE_TYPE_ROUTER</a> )
                node_type = 0;
        return( __ib_node_type_str[node_type] );
}
</pre>
</span><p><strong>PARAMETERS</strong></p>
<span class="PARAMETERS"><pre>       node_type
               [in] Encoded node type as returned in the NodeInfo attribute.
 RETURN VALUES
       Pointer to the node type string.
</pre>
</span><p><strong>NOTES</strong></p>
<span class="NOTES"><pre>
</pre>
</span><p><strong>SEE ALSO</strong></p>
<span class="SEE_ALSO"><pre> <a href="#robo412">ib_node_info_t</a>
</pre>
</span>
<hr />

<h2><a name="robo359">[Functions]<a name="IBA20Base3a20Types2fib5fget5fport5fstate5ffrom5fstr">
IBA Base: Types/ib_get_port_state_from_str</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_functions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_get_port_state_from_str</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Returns a string for the specified port state.
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>AL_INLINE const uint8_t AL_API
<strong>ib_get_port_state_from_str</strong>(
        IN                              char*                                           p_port_state_str )
{
        if( !strncmp(p_port_state_str,"No State Change (NOP)",12) )
                return(0);
        else if( !strncmp(p_port_state_str, "DOWN",4) )
                return(1);
        else if( !strncmp(p_port_state_str, "INIT", 4) )
                return(2);
        else if( !strncmp(p_port_state_str,"ARMED" , 5) )
                return(3);
        else if( !strncmp(p_port_state_str, "ACTIVE", 6) )
                return(4);
        else if( !strncmp(p_port_state_str, "ACTDEFER", 8) )
                return(5);
        return(6);
}
</pre>
</span><p><strong>PARAMETERS</strong></p>
<span class="PARAMETERS"><pre>       p_port_state_str
               [in] A string matching one returned by <a href="#robo360">ib_get_port_state_str</a>

 RETURN VALUES
       The appropriate code.
</pre>
</span><p><strong>NOTES</strong></p>
<span class="NOTES"><pre>
</pre>
</span><p><strong>SEE ALSO</strong></p>
<span class="SEE_ALSO"><pre>       <a href="#robo462">ib_port_info_t</a>
</pre>
</span>
<hr />

<h2><a name="robo360">[Functions]<a name="IBA20Base3a20Types2fib5fget5fport5fstate5fstr">
IBA Base: Types/ib_get_port_state_str</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_functions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_get_port_state_str</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Returns a string for the specified port state.
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>AL_INLINE const char* AL_API
<strong>ib_get_port_state_str</strong>(
        IN                              uint8_t                                         port_state )
{
        if( port_state > IB_LINK_ACTIVE )
                port_state = IB_LINK_ACTIVE + 1;
        return( __ib_port_state_str[port_state] );
}
</pre>
</span><p><strong>PARAMETERS</strong></p>
<span class="PARAMETERS"><pre>       port_state
               [in] Encoded port state as returned in the PortInfo attribute.
 RETURN VALUES
       Pointer to the port state string.
</pre>
</span><p><strong>NOTES</strong></p>
<span class="NOTES"><pre>
</pre>
</span><p><strong>SEE ALSO</strong></p>
<span class="SEE_ALSO"><pre> <a href="#robo462">ib_port_info_t</a>
</pre>
</span>
<hr />

<h2><a name="robo361">[Functions]<a name="IBA20Base3a20Types2fib5fget5fwc5fstatus5fstr">
IBA Base: Types/ib_get_wc_status_str</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_functions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_get_wc_status_str</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Returns a string for the specified work completion status.
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>AL_EXPORT const char* AL_API
<strong>ib_get_wc_status_str</strong>(
        IN                              <a href="#robo219">ib_wc_status_t</a>                          wc_status );
</pre>
</span><p><strong>PARAMETERS</strong></p>
<span class="PARAMETERS"><pre>       wc_status
               [in] work completion status value

 RETURN VALUES
       Pointer to the work completion status description string.
</pre>
</span><p><strong>NOTES</strong></p>
<span class="NOTES"><pre>
</pre>
</span><p><strong>SEE ALSO</strong></p>
<span class="SEE_ALSO"></span>
<hr />

<h2><a name="robo362">[Functions]<a name="IBA20Base3a20Types2fib5fget5fwc5ftype5fstr">
IBA Base: Types/ib_get_wc_type_str</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_functions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_get_wc_type_str</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Returns a string for the specified work completion type.
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>AL_EXPORT const char* AL_API
<strong>ib_get_wc_type_str</strong>(
        IN                              <a href="#robo221">ib_wc_type_t</a>                            wc_type );
</pre>
</span><p><strong>PARAMETERS</strong></p>
<span class="PARAMETERS"><pre>       wc_type
               [in] work completion type value

 RETURN VALUES
       Pointer to the work completion type description string.
</pre>
</span><p><strong>NOTES</strong></p>
<span class="NOTES"><pre>
</pre>
</span><p><strong>SEE ALSO</strong></p>
<span class="SEE_ALSO"></span>
<hr />

<h2><a name="robo363">[Functions]<a name="IBA20Base3a20Types2fib5fget5fwr5ftype5fstr">
IBA Base: Types/ib_get_wr_type_str</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_functions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_get_wr_type_str</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Returns a string for the specified work request type
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>AL_EXPORT const char* AL_API
<strong>ib_get_wr_type_str</strong>(
        IN                              uint8_t                                         wr_type );
</pre>
</span><p><strong>PARAMETERS</strong></p>
<span class="PARAMETERS"><pre>       wr_type
               [in] Encoded work request type as defined in the
 RETURN VALUES
       Pointer to the work request type string.
</pre>
</span><p><strong>NOTES</strong></p>
<span class="NOTES"><pre>
</pre>
</span><p><strong>SEE ALSO</strong></p>
<span class="SEE_ALSO"><pre> <a href="#robo222">ib_wr_type_t</a>
</pre>
</span>
<hr />

<h2><a name="robo364">[Functions]<a name="IBA20Base3a20Types2fib5fgid5fget5fguid">
IBA Base: Types/ib_gid_get_guid</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_functions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_gid_get_guid</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Gets the guid from a GID.
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>AL_INLINE <a href="#robo409">ib_net64_t</a> AL_API
<strong>ib_gid_get_guid</strong>(
        IN              const   <a href="#robo370">ib_gid_t</a>* const                         p_gid )
{
        return( p_gid->unicast.interface_id );
}
</pre>
</span><p><strong>PARAMETERS</strong></p>
<span class="PARAMETERS"><pre>       p_gid
               [in] Pointer to the GID object.

 RETURN VALUES
       64-bit GUID value.
</pre>
</span><p><strong>NOTES</strong></p>
<span class="NOTES"><pre>
</pre>
</span><p><strong>SEE ALSO</strong></p>
<span class="SEE_ALSO"><pre>       <a href="#robo370">ib_gid_t</a>
</pre>
</span>
<hr />

<h2><a name="robo365">[Functions]<a name="IBA20Base3a20Types2fib5fgid5fget5fsubnet5fprefix">
IBA Base: Types/ib_gid_get_subnet_prefix</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_functions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_gid_get_subnet_prefix</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Gets the subnet prefix from a GID.
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>AL_INLINE <a href="#robo409">ib_net64_t</a> AL_API
<strong>ib_gid_get_subnet_prefix</strong>(
        IN              const   <a href="#robo370">ib_gid_t</a>* const                         p_gid )
{
        return( p_gid->unicast.prefix );
}
</pre>
</span><p><strong>PARAMETERS</strong></p>
<span class="PARAMETERS"><pre>       p_gid
               [in] Pointer to the GID object.

 RETURN VALUES
       64-bit subnet prefix value.
</pre>
</span><p><strong>NOTES</strong></p>
<span class="NOTES"><pre>
</pre>
</span><p><strong>SEE ALSO</strong></p>
<span class="SEE_ALSO"><pre>       <a href="#robo370">ib_gid_t</a>
</pre>
</span>
<hr />

<h2><a name="robo366">[Functions]<a name="IBA20Base3a20Types2fib5fgid5fis5flink5flocal">
IBA Base: Types/ib_gid_is_link_local</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_functions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_gid_is_link_local</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Returns TRUE if the unicast GID scoping indicates link local,
       FALSE otherwise.
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>static inline boolean_t
<strong>ib_gid_is_link_local</strong>(
        IN              const   <a href="#robo370">ib_gid_t</a>* const                         p_gid )
{
        return( <a href="#robo365">ib_gid_get_subnet_prefix</a>( p_gid ) == <a href="#robo227">IB_DEFAULT_SUBNET_PREFIX</a> );
}
</pre>
</span><p><strong>PARAMETERS</strong></p>
<span class="PARAMETERS"><pre>       p_gid
               [in] Pointer to the GID object.

 RETURN VALUES
       Returns TRUE if the unicast GID scoping indicates link local,
       FALSE otherwise.
</pre>
</span><p><strong>NOTES</strong></p>
<span class="NOTES"><pre>
</pre>
</span><p><strong>SEE ALSO</strong></p>
<span class="SEE_ALSO"><pre>       <a href="#robo370">ib_gid_t</a>
</pre>
</span>
<hr />

<h2><a name="robo367">[Functions]<a name="IBA20Base3a20Types2fib5fgid5fis5fsite5flocal">
IBA Base: Types/ib_gid_is_site_local</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_functions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_gid_is_site_local</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Returns TRUE if the unicast GID scoping indicates site local,
       FALSE otherwise.
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>static inline boolean_t
<strong>ib_gid_is_site_local</strong>(
        IN              const   <a href="#robo370">ib_gid_t</a>* const                         p_gid )
{
        return( ( <a href="#robo365">ib_gid_get_subnet_prefix</a>( p_gid ) &
                CL_HTON64( CL_CONST64(0xFFFFFFFFFFFF0000) ) ) ==
                CL_HTON64( CL_CONST64(0xFEC0000000000000) ) );
}
</pre>
</span><p><strong>PARAMETERS</strong></p>
<span class="PARAMETERS"><pre>       p_gid
               [in] Pointer to the GID object.

 RETURN VALUES
       Returns TRUE if the unicast GID scoping indicates link local,
       FALSE otherwise.
</pre>
</span><p><strong>NOTES</strong></p>
<span class="NOTES"><pre>
</pre>
</span><p><strong>SEE ALSO</strong></p>
<span class="SEE_ALSO"><pre>       <a href="#robo370">ib_gid_t</a>
</pre>
</span>
<hr />

<h2><a name="robo368">[Definitions]<a name="IBA20Base3a20Types2fib5fgid5fprefix5ft">
IBA Base: Types/ib_gid_prefix_t</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_definitions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_gid_prefix_t</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>
</pre>
</span><p><strong>SOURCE</strong></p>
<span class="SOURCE"><pre>typedef <a href="#robo409">ib_net64_t</a>              <strong>ib_gid_prefix_t</strong>;
</pre>
</span>
<hr />

<h2><a name="robo369">[Functions]<a name="IBA20Base3a20Types2fib5fgid5fset5fdefault">
IBA Base: Types/ib_gid_set_default</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_functions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_gid_set_default</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Sets a GID to the default value.
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>AL_INLINE void AL_API
<strong>ib_gid_set_default</strong>(
        IN                              <a href="#robo370">ib_gid_t</a>* const                         p_gid,
        IN              const   <a href="#robo409">ib_net64_t</a>                                      interface_id )
{
        p_gid->unicast.prefix = <a href="#robo227">IB_DEFAULT_SUBNET_PREFIX</a>;
        p_gid->unicast.interface_id = interface_id;
}
</pre>
</span><p><strong>PARAMETERS</strong></p>
<span class="PARAMETERS"><pre>       p_gid
               [in] Pointer to the GID object.

       interface_id
               [in] Manufacturer assigned EUI64 value of a port.

 RETURN VALUES
       None.
</pre>
</span><p><strong>NOTES</strong></p>
<span class="NOTES"><pre>
</pre>
</span><p><strong>SEE ALSO</strong></p>
<span class="SEE_ALSO"><pre>       <a href="#robo370">ib_gid_t</a>
</pre>
</span>
<hr />

<h2><a name="robo370">[Definitions]<a name="IBA20Base3a20Types2fib5fgid5ft">
IBA Base: Types/ib_gid_t</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_definitions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_gid_t</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>#include <complib/cl_packon.h>
typedef union _ib_gid
{
        uint8_t                                 raw[16];
        struct _ib_gid_unicast
        {
                <a href="#robo368">ib_gid_prefix_t</a>         prefix;
                <a href="#robo409">ib_net64_t</a>                      interface_id;

        } PACK_SUFFIX unicast;

        struct _ib_gid_multicast
        {
                uint8_t                         header[2];
                uint8_t                         raw_group_id[14];

        } PACK_SUFFIX multicast;

}       PACK_SUFFIX <strong>ib_gid_t</strong>;
#include <complib/cl_packoff.h>
</pre>
</span><p><strong>FIELDS</strong></p>
<span class="FIELDS"><pre>       raw
               GID represented as an unformated byte array.

       unicast
               Typical unicast representation with subnet prefix and
               port GUID.

       multicast
               Representation for multicast use.
</pre>
</span><p><strong>SEE ALSO</strong></p>
<span class="SEE_ALSO"></span>
<hr />

<h2><a name="robo371">[Functions]<a name="IBA20Base3a20Types2fib5fgrh5fget5fver5fclass5fflow">
IBA Base: Types/ib_grh_get_ver_class_flow</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_functions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_grh_get_ver_class_flow</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Get encoded version, traffic class and flow label in grh
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>AL_INLINE void AL_API
<strong>ib_grh_get_ver_class_flow</strong>(
        IN              const   <a href="#robo408">ib_net32_t</a>                                      ver_class_flow,
                OUT                     uint8_t* const                          p_ver OPTIONAL,
                OUT                     uint8_t* const                          p_tclass OPTIONAL,
                OUT                     net32_t* const                          p_flow_lbl OPTIONAL )
{
        <a href="#robo408">ib_net32_t</a> tmp_ver_class_flow;

        tmp_ver_class_flow = cl_ntoh32( ver_class_flow );

        if (p_ver)
                *p_ver = (uint8_t)(tmp_ver_class_flow >> 28);

        if (p_tclass)
                *p_tclass = (uint8_t)(tmp_ver_class_flow >> 20);

        if (p_flow_lbl)
                *p_flow_lbl = (ver_class_flow & CL_HTON32( 0x000FFFFF ));
}
</pre>
</span><p><strong>PARAMETERS</strong></p>
<span class="PARAMETERS"><pre>       ver_class_flow
               [in] the version, traffic class and flow label info.

 RETURN VALUES
       p_ver
               [out] pointer to the version info.

       p_tclass
               [out] pointer to the traffic class info.

       p_flow_lbl
               [out] pointer to the flow label info
</pre>
</span><p><strong>NOTES</strong></p>
<span class="NOTES"><pre>
</pre>
</span><p><strong>SEE ALSO</strong></p>
<span class="SEE_ALSO"><pre>       <a href="#robo373">ib_grh_t</a>
</pre>
</span>
<hr />

<h2><a name="robo372">[Functions]<a name="IBA20Base3a20Types2fib5fgrh5fset5fver5fclass5fflow">
IBA Base: Types/ib_grh_set_ver_class_flow</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_functions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_grh_set_ver_class_flow</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Set encoded version, traffic class and flow label in grh
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>AL_INLINE <a href="#robo408">ib_net32_t</a> AL_API
<strong>ib_grh_set_ver_class_flow</strong>(
        IN              const   uint8_t                                         ver,
        IN              const   uint8_t                                         tclass,
        IN              const   net32_t                                         flow_lbl )
{
        <a href="#robo408">ib_net32_t</a>              ver_class_flow;

        ver_class_flow = cl_hton32( (ver << 28) | (tclass << 20) );
        ver_class_flow |= (flow_lbl & CL_HTON32( 0x000FFFFF ));
        return (ver_class_flow);
}
</pre>
</span><p><strong>PARAMETERS</strong></p>
<span class="PARAMETERS"><pre>       ver
               [in] the version info.

       tclass
               [in] the traffic class info.

       flow_lbl
               [in] the flow label info

 RETURN VALUES
       ver_class_flow
               [out] the version, traffic class and flow label info.
</pre>
</span><p><strong>NOTES</strong></p>
<span class="NOTES"><pre>
</pre>
</span><p><strong>SEE ALSO</strong></p>
<span class="SEE_ALSO"><pre>       <a href="#robo373">ib_grh_t</a>
</pre>
</span>
<hr />

<h2><a name="robo373">[Structures]<a name="IBA20Base3a20Types2fib5fgrh5ft">
IBA Base: Types/ib_grh_t</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_strutures.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_grh_t</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Global route header information received with unreliable datagram messages
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>#include <complib/cl_packon.h>
typedef struct _ib_grh
{
        <a href="#robo408">ib_net32_t</a>                              ver_class_flow;
        <a href="#robo407">ib_net16_t</a>                              resv1;
        uint8_t                                 resv2;
        uint8_t                                 hop_limit;
        <a href="#robo370">ib_gid_t</a>                                src_gid;
        <a href="#robo370">ib_gid_t</a>                                dest_gid;

}       PACK_SUFFIX <strong>ib_grh_t</strong>;
#include <complib/cl_packoff.h>
</pre>
</span>
<hr />

<h2><a name="robo374">[Structures]<a name="IBA20Base3a20Types2fib5fguid5finfo5ft">
IBA Base: Types/ib_guid_info_t</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_strutures.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_guid_info_t</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       IBA defined GuidInfo. (14.2.5.5)
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>#define GUID_TABLE_MAX_ENTRIES          8

#include <complib/cl_packon.h>
typedef struct _ib_guid_info
{
        <a href="#robo409">ib_net64_t</a>                      guid[GUID_TABLE_MAX_ENTRIES];

}       PACK_SUFFIX <strong>ib_guid_info_t</strong>;
#include <complib/cl_packoff.h>
</pre>
</span>
<hr />

<h2><a name="robo375">[Functions]<a name="IBA20Base3a20Types2fib5finform5fget5fdev5fid">
IBA Base: Types/ib_inform_get_dev_id</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_functions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_inform_get_dev_id</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Retrieves the device ID from a vendor specific inform trap.
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>AL_INLINE uint16_t AL_API
<strong>ib_inform_get_dev_id</strong>(
        IN              const   ib_inform_info_t* const         p_inform_info )
{
        return <a href="#robo379">ib_inform_get_trap_num</a>( p_inform_info );
}
</pre>
</span><p><strong>PARAMETERS</strong></p>
<span class="PARAMETERS"><pre>       p_inform_info
               [in] Pointer to the inform info structure whose
               device ID to return.

 RETURN VALUES
       Returns the vendor ID of the inform info, in host byte order.
</pre>
</span><p><strong>SEE ALSO</strong></p>
<span class="SEE_ALSO"><pre>       ib_inform_info_t, <a href="#robo382">ib_inform_set_dev_id</a>
</pre>
</span>
<hr />

<h2><a name="robo376">[Functions]<a name="IBA20Base3a20Types2fib5finform5fget5fprod5ftype">
IBA Base: Types/ib_inform_get_prod_type</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_functions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_inform_get_prod_type</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Retrieves the producer type from an inform info structure.
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>AL_INLINE uint32_t AL_API
<strong>ib_inform_get_prod_type</strong>(
        IN              const   ib_inform_info_t* const         p_inform_info )
{
        return (cl_ntoh32( p_inform_info->combo3 ) >> 8);
}
</pre>
</span><p><strong>PARAMETERS</strong></p>
<span class="PARAMETERS"><pre>       p_inform_info
               [in] Pointer to the inform info structure whose
               prducer type to return.

 RETURN VALUES
       Returns the producer type of the infrom info, in host byte order.
</pre>
</span><p><strong>SEE ALSO</strong></p>
<span class="SEE_ALSO"><pre>       ib_inform_info_t, <a href="#robo383">ib_inform_set_prod_type</a>
</pre>
</span>
<hr />

<h2><a name="robo377">[Functions]<a name="IBA20Base3a20Types2fib5finform5fget5fqpn">
IBA Base: Types/ib_inform_get_qpn</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_functions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_inform_get_qpn</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Retrieves the QPN from an inform info structure.
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>AL_INLINE net32_t AL_API
<strong>ib_inform_get_qpn</strong>(
        IN              const   ib_inform_info_t* const         p_inform_info )
{
        return (p_inform_info->combo2 & CL_NTOH32( 0x00FFFFFF ));
}
</pre>
</span><p><strong>PARAMETERS</strong></p>
<span class="PARAMETERS"><pre>       p_inform_info
               [in] Pointer to the inform info structure whose
               QPN to return.

 RETURN VALUES
       Returns the QPN of the infrom info.
</pre>
</span><p><strong>SEE ALSO</strong></p>
<span class="SEE_ALSO"><pre>       ib_inform_info_t, <a href="#robo384">ib_inform_set_qpn</a>
</pre>
</span>
<hr />

<h2><a name="robo378">[Functions]<a name="IBA20Base3a20Types2fib5finform5fget5fresp5ftime5fval">
IBA Base: Types/ib_inform_get_resp_time_val</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_functions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_inform_get_resp_time_val</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Retrieves the response time value from an inform info structure.
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>AL_INLINE uint8_t AL_API
<strong>ib_inform_get_resp_time_val</strong>(
        IN              const   ib_inform_info_t* const         p_inform_info )
{
        return (uint8_t)(cl_ntoh32( p_inform_info->combo2 ) >> 27);
}
</pre>
</span><p><strong>PARAMETERS</strong></p>
<span class="PARAMETERS"><pre>       p_inform_info
               [in] Pointer to the inform info structure whose
               response time value to return.

 RETURN VALUES
       Returns the response time value of the infrom info.
</pre>
</span><p><strong>SEE ALSO</strong></p>
<span class="SEE_ALSO"><pre>       ib_inform_info_t, <a href="#robo385">ib_inform_set_resp_time_val</a>
</pre>
</span>
<hr />

<h2><a name="robo379">[Functions]<a name="IBA20Base3a20Types2fib5finform5fget5ftrap5fnum">
IBA Base: Types/ib_inform_get_trap_num</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_functions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_inform_get_trap_num</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Retrieves the trap number from an inform info structure.
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>AL_INLINE uint16_t AL_API
<strong>ib_inform_get_trap_num</strong>(
        IN              const   ib_inform_info_t* const         p_inform_info )
{
        return cl_ntoh16( p_inform_info->combo1 );
}
</pre>
</span><p><strong>PARAMETERS</strong></p>
<span class="PARAMETERS"><pre>       p_inform_info
               [in] Pointer to the inform info structure whose
               trap number to return.

 RETURN VALUES
       Returns the trap number of the infrom info, in host byte order.
</pre>
</span><p><strong>SEE ALSO</strong></p>
<span class="SEE_ALSO"><pre>       ib_inform_info_t, <a href="#robo386">ib_inform_set_trap_num</a>
</pre>
</span>
<hr />

<h2><a name="robo380">[Functions]<a name="IBA20Base3a20Types2fib5finform5fget5fvend5fid">
IBA Base: Types/ib_inform_get_vend_id</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_functions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_inform_get_vend_id</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Retrieves the vendor ID from an inform info structure.
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>AL_INLINE uint32_t AL_API
<strong>ib_inform_get_vend_id</strong>(
        IN              const   ib_inform_info_t* const         p_inform_info )
{
        return <a href="#robo376">ib_inform_get_prod_type</a>( p_inform_info );
}
</pre>
</span><p><strong>PARAMETERS</strong></p>
<span class="PARAMETERS"><pre>       p_inform_info
               [in] Pointer to the inform info structure whose
               vendor ID to return.

 RETURN VALUES
       Returns the vendor ID of the infrom info, in host byte order.
</pre>
</span><p><strong>SEE ALSO</strong></p>
<span class="SEE_ALSO"><pre>       ib_inform_info_t, <a href="#robo387">ib_inform_set_vend_id</a>
</pre>
</span>
<hr />

<h2><a name="robo381">[Structures]<a name="IBA20Base3a20Types2fib5finform5finfo5frecord5ft">
IBA Base: Types/ib_inform_info_record_t</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_strutures.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_inform_info_record_t</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       IBA defined InformInfo Record. (15.2.5.12)
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>#include <complib/cl_packon.h>
typedef struct _ib_inform_info_record
{
        <a href="#robo370">ib_gid_t</a>                                subscriber_gid;
        net16_t                                 subscriber_enum;
        uint16_t                                reserved[3];
        ib_inform_info_t                inform_info;

}       PACK_SUFFIX <strong>ib_inform_info_record_t</strong>;
#include <complib/cl_packoff.h>
</pre>
</span>
<hr />

<h2><a name="robo382">[Functions]<a name="IBA20Base3a20Types2fib5finform5fset5fdev5fid">
IBA Base: Types/ib_inform_set_dev_id</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_functions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_inform_set_dev_id</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Sets the producer type of a vendor specific inform trap.
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>AL_INLINE void AL_API
<strong>ib_inform_set_dev_id</strong>(
        IN      OUT                     ib_inform_info_t* const         p_inform_info,
        IN              const   uint16_t                                        dev_id )
{
        <a href="#robo386">ib_inform_set_trap_num</a>( p_inform_info, dev_id );
}
</pre>
</span><p><strong>PARAMETERS</strong></p>
<span class="PARAMETERS"><pre>       p_inform_info
               [in/out] Pointer to the inform info structure
               whose device ID to set.

       dev_id
               [in] Device ID of inform trap.

 RETURN VALUES
       This function does not return a value.
</pre>
</span><p><strong>SEE ALSO</strong></p>
<span class="SEE_ALSO"><pre>       ib_inform_info_t, <a href="#robo375">ib_inform_get_dev_id</a>
</pre>
</span>
<hr />

<h2><a name="robo383">[Functions]<a name="IBA20Base3a20Types2fib5finform5fset5fprod5ftype">
IBA Base: Types/ib_inform_set_prod_type</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_functions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_inform_set_prod_type</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Sets the producer type of an inform info structure.
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>AL_INLINE void AL_API
<strong>ib_inform_set_prod_type</strong>(
        IN      OUT                     ib_inform_info_t* const         p_inform_info,
        IN              const   uint32_t                                        prod_type )
{
        p_inform_info->combo3 = cl_hton32( prod_type << 8 );
}
</pre>
</span><p><strong>PARAMETERS</strong></p>
<span class="PARAMETERS"><pre>       p_inform_info
               [in/out] Pointer to the inform info structure
               whose producer type to set.

       prod_type
               [in] Producer type of inform trap.

 RETURN VALUES
       This function does not return a value.
</pre>
</span><p><strong>SEE ALSO</strong></p>
<span class="SEE_ALSO"><pre>       ib_inform_info_t, <a href="#robo376">ib_inform_get_prod_type</a>
</pre>
</span>
<hr />

<h2><a name="robo384">[Functions]<a name="IBA20Base3a20Types2fib5finform5fset5fqpn">
IBA Base: Types/ib_inform_set_qpn</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_functions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_inform_set_qpn</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Sets the QPN of an inform info structure.
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>AL_INLINE void AL_API
<strong>ib_inform_set_qpn</strong>(
        IN      OUT                     ib_inform_info_t* const         p_inform_info,
        IN              const   net32_t                                         qpn )
{
        p_inform_info->combo2 &= CL_NTOH32( 0xFF000000 );
        p_inform_info->combo2 |= (qpn & CL_NTOH32( 0x00FFFFFF ));
}
</pre>
</span><p><strong>PARAMETERS</strong></p>
<span class="PARAMETERS"><pre>       p_inform_info
               [in/out] Pointer to the inform info structure
               whose QPN to set.

       qpn
               [in] QPN of the inform info.

 RETURN VALUES
       This function does not return a value.
</pre>
</span><p><strong>SEE ALSO</strong></p>
<span class="SEE_ALSO"><pre>       ib_inform_info_t, <a href="#robo377">ib_inform_get_qpn</a>
</pre>
</span>
<hr />

<h2><a name="robo385">[Functions]<a name="IBA20Base3a20Types2fib5finform5fset5fresp5ftime5fval">
IBA Base: Types/ib_inform_set_resp_time_val</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_functions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_inform_set_resp_time_val</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Sets the response time value of an inform info structure.
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>AL_INLINE void AL_API
<strong>ib_inform_set_resp_time_val</strong>(
        IN      OUT                     ib_inform_info_t* const         p_inform_info,
        IN              const   uint8_t                                         resp_time_val )
{
        uint32_t        val;

        val = cl_ntoh32( p_inform_info->combo2 );
        val &= 0x07FFFFFF;
        val |= (resp_time_val << 27);
        p_inform_info->combo2 = cl_hton32( val );
}
</pre>
</span><p><strong>PARAMETERS</strong></p>
<span class="PARAMETERS"><pre>       p_inform_info
               [in/out] Pointer to the inform info structure
               whose response time value to set.

       resp_time_val
               [in] Response time value of the inform info.

 RETURN VALUES
       This function does not return a value.
</pre>
</span><p><strong>SEE ALSO</strong></p>
<span class="SEE_ALSO"><pre>       ib_inform_info_t, <a href="#robo378">ib_inform_get_resp_time_val</a>
</pre>
</span>
<hr />

<h2><a name="robo386">[Functions]<a name="IBA20Base3a20Types2fib5finform5fset5ftrap5fnum">
IBA Base: Types/ib_inform_set_trap_num</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_functions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_inform_set_trap_num</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Sets the trap number of an inform info structure.
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>AL_INLINE void AL_API
<strong>ib_inform_set_trap_num</strong>(
        IN      OUT                     ib_inform_info_t* const         p_inform_info,
        IN              const   uint16_t                                        trap_num )
{
        p_inform_info->combo1 = cl_hton16( trap_num );
}
</pre>
</span><p><strong>PARAMETERS</strong></p>
<span class="PARAMETERS"><pre>       p_inform_info
               [in/out] Pointer to the inform info structure
               whose trap number to set.

       trap_num
               [in] Trap number to set.

 RETURN VALUES
       This function does not return a value.
</pre>
</span><p><strong>SEE ALSO</strong></p>
<span class="SEE_ALSO"><pre>       ib_inform_info_t, <a href="#robo379">ib_inform_get_trap_num</a>
</pre>
</span>
<hr />

<h2><a name="robo387">[Functions]<a name="IBA20Base3a20Types2fib5finform5fset5fvend5fid">
IBA Base: Types/ib_inform_set_vend_id</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_functions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_inform_set_vend_id</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Sets the vendor ID of an inform info structure.
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>AL_INLINE void AL_API
<strong>ib_inform_set_vend_id</strong>(
        IN      OUT                     ib_inform_info_t* const         p_inform_info,
        IN              const   uint32_t                                        vend_id )
{
        <a href="#robo383">ib_inform_set_prod_type</a>( p_inform_info, vend_id );
}
</pre>
</span><p><strong>PARAMETERS</strong></p>
<span class="PARAMETERS"><pre>       p_inform_info
               [in/out] Pointer to the inform info structure
               whose vendor ID to set.

       vend_id
               [in] Vendor ID of inform trap.

 RETURN VALUES
       This function does not return a value.
</pre>
</span><p><strong>SEE ALSO</strong></p>
<span class="SEE_ALSO"><pre>       ib_mad_inform_info_t, <a href="#robo380">ib_inform_get_vend_id</a>
</pre>
</span>
<hr />

<h2><a name="robo388">[Structures]<a name="IBA20Base3a20Types2fib5fioc5fprofile5ft">
IBA Base: Types/ib_ioc_profile_t</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_strutures.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_ioc_profile_t</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       IBA defined IO Controller profile structure (16.3.3.4)
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>#include <complib/cl_packon.h>
typedef __declspec(align(8)) struct _ib_ioc_profile
{
        <a href="#robo409">ib_net64_t</a>                              ioc_guid;

        <a href="#robo408">ib_net32_t</a>                              vend_id;

        <a href="#robo408">ib_net32_t</a>                              dev_id;
        <a href="#robo407">ib_net16_t</a>                              dev_ver;
        <a href="#robo407">ib_net16_t</a>                              resv2;

        <a href="#robo408">ib_net32_t</a>                              subsys_vend_id;
        <a href="#robo408">ib_net32_t</a>                              subsys_id;

        <a href="#robo407">ib_net16_t</a>                              io_class;
        <a href="#robo407">ib_net16_t</a>                              io_subclass;
        <a href="#robo407">ib_net16_t</a>                              protocol;
        <a href="#robo407">ib_net16_t</a>                              protocol_ver;

        <a href="#robo408">ib_net32_t</a>                              resv3;
        <a href="#robo407">ib_net16_t</a>                              send_msg_depth;
        uint8_t                                 resv4;
        uint8_t                                 rdma_read_depth;
        <a href="#robo408">ib_net32_t</a>                              send_msg_size;
        <a href="#robo408">ib_net32_t</a>                              rdma_size;

        uint8_t                                 ctrl_ops_cap;
#define CTRL_OPS_CAP_ST         0x01
#define CTRL_OPS_CAP_SF         0x02
#define CTRL_OPS_CAP_RT         0x04
#define CTRL_OPS_CAP_RF         0x08
#define CTRL_OPS_CAP_WT         0x10
#define CTRL_OPS_CAP_WF         0x20
#define CTRL_OPS_CAP_AT         0x40
#define CTRL_OPS_CAP_AF         0x80

        uint8_t                                 resv5;

        uint8_t                                 num_svc_entries;
#define MAX_NUM_SVC_ENTRIES     0xff

        uint8_t                                 resv6[9];

#define CTRL_ID_STRING_LEN      64
        char                                    id_string[CTRL_ID_STRING_LEN];

}       PACK_SUFFIX <strong>ib_ioc_profile_t</strong>;
#include <complib/cl_packoff.h>
</pre>
</span><p><strong>FIELDS</strong></p>
<span class="FIELDS"><pre>       ioc_guid
               An EUI-64 GUID used to uniquely identify the IO controller.

       vend_id
               IO controller vendor ID, IEEE format.

       dev_id
               A number assigned by the vendor to identify the type of controller.

       dev_ver
               A number assigned by the vendor to identify the divice version.

       subsys_vend_id
               ID of the vendor of the enclosure, if any, in which the IO controller
               resides in IEEE format; otherwise zero.

       subsys_id
               A number identifying the subsystem where the controller resides.

       io_class
               0x0000 - 0xfffe = reserved for IO classes encompased by InfiniBand
               Architecture.  0xffff = Vendor specific.

       io_subclass
               0x0000 - 0xfffe = reserved for IO subclasses encompased by InfiniBand
               Architecture.  0xffff = Vendor specific.  This shall be set to 0xfff
               if the io_class component is 0xffff.

       protocol
               0x0000 - 0xfffe = reserved for IO subclasses encompased by InfiniBand
               Architecture.  0xffff = Vendor specific.  This shall be set to 0xfff
               if the io_class component is 0xffff.

       protocol_ver
               Protocol specific.

       send_msg_depth
               Maximum depth of the send message queue.

       rdma_read_depth
               Maximum depth of the per-channel RDMA read queue.

       send_msg_size
               Maximum size of send messages.

       ctrl_ops_cap
               Supported operation types of this IO controller.  A bit set to one
               for affirmation of supported capability.

       num_svc_entries
               Number of entries in the service entries table.

       id_string
               UTF-8 encoded string for identifying the controller to an operator.
</pre>
</span><p><strong>SEE ALSO</strong></p>
<span class="SEE_ALSO"><pre> <a href="#robo354">ib_dm_mad_t</a>
</pre>
</span>
<hr />

<h2><a name="robo389">[Functions]<a name="IBA20Base3a20Types2fib5fiou5finfo5fdiag5fdev5fid">
IBA Base: Types/ib_iou_info_diag_dev_id</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_functions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_iou_info_diag_dev_id</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Returns the DiagDeviceID.
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>AL_INLINE uint8_t AL_API
<strong>ib_iou_info_diag_dev_id</strong>(
        IN              const   <a href="#robo391">ib_iou_info_t</a>* const            p_iou_info )
{
        return( (uint8_t)(p_iou_info->diag_rom >> 6 & 1) );
}
</pre>
</span><p><strong>PARAMETERS</strong></p>
<span class="PARAMETERS"><pre>       p_iou_info
               [in] Pointer to the IO Unit information structure.

 RETURN VALUES
       DiagDeviceID field of the IO Unit information.
</pre>
</span><p><strong>NOTES</strong></p>
<span class="NOTES"><pre>
</pre>
</span><p><strong>SEE ALSO</strong></p>
<span class="SEE_ALSO"><pre>       <a href="#robo391">ib_iou_info_t</a>
</pre>
</span>
<hr />

<h2><a name="robo390">[Functions]<a name="IBA20Base3a20Types2fib5fiou5finfo5foption5from">
IBA Base: Types/ib_iou_info_option_rom</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_functions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_iou_info_option_rom</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Returns the OptionROM.
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>AL_INLINE uint8_t AL_API
<strong>ib_iou_info_option_rom</strong>(
        IN              const   <a href="#robo391">ib_iou_info_t</a>*  const   p_iou_info )
{
        return( (uint8_t)(p_iou_info->diag_rom >> 7) );
}
</pre>
</span><p><strong>PARAMETERS</strong></p>
<span class="PARAMETERS"><pre>       p_iou_info
               [in] Pointer to the IO Unit information structure.

 RETURN VALUES
       OptionROM field of the IO Unit information.
</pre>
</span><p><strong>NOTES</strong></p>
<span class="NOTES"><pre>
</pre>
</span><p><strong>SEE ALSO</strong></p>
<span class="SEE_ALSO"><pre>       <a href="#robo391">ib_iou_info_t</a>
</pre>
</span>
<hr />

<h2><a name="robo391">[Structures]<a name="IBA20Base3a20Types2fib5fiou5finfo5ft">
IBA Base: Types/ib_iou_info_t</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_strutures.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_iou_info_t</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       IBA defined IO Unit information structure (16.3.3.3)
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>#include <complib/cl_packon.h>
typedef struct _ib_iou_info
{
        <a href="#robo407">ib_net16_t</a>              change_id;
        uint8_t                 max_controllers;
        uint8_t                 diag_rom;

#define IB_DM_CTRL_LIST_SIZE    128
#define IB_DM_MAX_CTRL                  0xFF;

        uint8_t                 controller_list[IB_DM_CTRL_LIST_SIZE];
#define IOC_NOT_INSTALLED               0x0
#define IOC_INSTALLED                   0x1
//              Reserved values                         0x02-0xE
#define SLOT_DOES_NOT_EXIST             0xF

}       PACK_SUFFIX <strong>ib_iou_info_t</strong>;
#include <complib/cl_packoff.h>
</pre>
</span><p><strong>FIELDS</strong></p>
<span class="FIELDS"><pre>       change_id
               Value incremented, with rollover, by any change to the controller_list.

       max_controllers
               Number of slots in controller_list.

       diag_rom
               A byte containing two fields: DiagDeviceID and OptionROM.
               These fields may be read using the <a href="#robo389">ib_iou_info_diag_dev_id</a>
               and <a href="#robo390">ib_iou_info_option_rom</a> functions.

       controller_list
               A series of 4-bit nibbles, with each nibble representing a slot
               in the IO Unit.  Individual nibbles may be read using the
               <a href="#robo490">ioc_at_slot</a> function.
</pre>
</span><p><strong>SEE ALSO</strong></p>
<span class="SEE_ALSO"><pre> <a href="#robo354">ib_dm_mad_t</a>, <a href="#robo389">ib_iou_info_diag_dev_id</a>, <a href="#robo390">ib_iou_info_option_rom</a>, <a href="#robo490">ioc_at_slot</a>
</pre>
</span>
<hr />

<h2><a name="robo392">[Structures]<a name="IBA20Base3a20Types2fib5flft5frecord5ft">
IBA Base: Types/ib_lft_record_t</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_strutures.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_lft_record_t</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       IBA defined LinearForwardingTable. (14.2.5.6)
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>#include <complib/cl_packon.h>
typedef struct _ib_lft_record
{
        <a href="#robo407">ib_net16_t</a>              lid;
        <a href="#robo407">ib_net16_t</a>              block_num;
        uint32_t                resv0;
        uint8_t                 lft[64];

}       PACK_SUFFIX <strong>ib_lft_record_t</strong>;
#include <complib/cl_packoff.h>
</pre>
</span>
<hr />

<h2><a name="robo393">[Functions]<a name="IBA20Base3a20Types2fib5fmad5finit5fnew">
IBA Base: Types/ib_mad_init_new</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_functions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_mad_init_new</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Initializes a MAD common header.
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>AL_INLINE void AL_API
<strong>ib_mad_init_new</strong>(
        IN                              <a href="#robo396">ib_mad_t</a>* const                         p_mad,
        IN              const   uint8_t                                         mgmt_class,
        IN              const   uint8_t                                         class_ver,
        IN              const   uint8_t                                         method,
        IN              const   <a href="#robo409">ib_net64_t</a>                                      trans_id,
        IN              const   <a href="#robo407">ib_net16_t</a>                                      attr_id,
        IN              const   <a href="#robo408">ib_net32_t</a>                                      attr_mod )
{
        CL_ASSERT( p_mad );
        p_mad->base_ver = 1;
        p_mad->mgmt_class = mgmt_class;
        p_mad->class_ver = class_ver;
        p_mad->method = method;
        p_mad->status = 0;
        p_mad->class_spec = 0;
        p_mad->trans_id = trans_id;
        p_mad->attr_id = attr_id;
        p_mad->resv = 0;
        p_mad->attr_mod = attr_mod;
}
</pre>
</span><p><strong>PARAMETERS</strong></p>
<span class="PARAMETERS"><pre>       p_mad
               [in] Pointer to the MAD common header.

       mgmt_class
               [in] Class of operation.

       class_ver
               [in] Version of MAD class-specific format.

       method
               [in] Method to perform, including 'R' bit.

       trans_Id
               [in] Transaction ID.

       attr_id
               [in] Attribute ID.

       attr_mod
               [in] Attribute modifier.

 RETURN VALUES
       None.
</pre>
</span><p><strong>NOTES</strong></p>
<span class="NOTES"><pre>
</pre>
</span><p><strong>SEE ALSO</strong></p>
<span class="SEE_ALSO"><pre>       <a href="#robo396">ib_mad_t</a>
</pre>
</span>
<hr />

<h2><a name="robo394">[Functions]<a name="IBA20Base3a20Types2fib5fmad5finit5fresponse">
IBA Base: Types/ib_mad_init_response</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_functions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_mad_init_response</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Initializes a MAD common header as a response.
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>AL_INLINE void AL_API
<strong>ib_mad_init_response</strong>(
        IN              const   <a href="#robo396">ib_mad_t</a>* const                         p_req_mad,
        IN                              <a href="#robo396">ib_mad_t</a>* const                         p_mad,
        IN              const   <a href="#robo407">ib_net16_t</a>                                      status )
{
        CL_ASSERT( p_req_mad );
        CL_ASSERT( p_mad );
        *p_mad = *p_req_mad;
        p_mad->status = status;
        if( p_mad->method == <a href="#robo285">IB_MAD_METHOD_SET</a> )
                p_mad->method = <a href="#robo277">IB_MAD_METHOD_GET</a>;
        p_mad->method |= <a href="#robo283">IB_MAD_METHOD_RESP_MASK</a>;
}
</pre>
</span><p><strong>PARAMETERS</strong></p>
<span class="PARAMETERS"><pre>       p_req_mad
               [in] Pointer to the MAD common header in the original request MAD.

       p_mad
               [in] Pointer to the MAD common header to initialize.

       status
               [in] MAD Status value to return;

 RETURN VALUES
       None.
</pre>
</span><p><strong>NOTES</strong></p>
<span class="NOTES"><pre>       p_req_mad and p_mad may point to the same MAD.
</pre>
</span><p><strong>SEE ALSO</strong></p>
<span class="SEE_ALSO"><pre>       <a href="#robo396">ib_mad_t</a>
</pre>
</span>
<hr />

<h2><a name="robo395">[Functions]<a name="IBA20Base3a20Types2fib5fmad5fis5fresponse">
IBA Base: Types/ib_mad_is_response</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_functions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_mad_is_response</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Returns TRUE if the MAD is a response ('R' bit set),
       FALSE otherwise.
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>AL_INLINE boolean_t AL_API
<strong>ib_mad_is_response</strong>(
        IN              const   <a href="#robo396">ib_mad_t</a>* const                         p_mad )
{
        CL_ASSERT( p_mad );
        return( (p_mad->method & <a href="#robo283">IB_MAD_METHOD_RESP_MASK</a>) ==
                        <a href="#robo283">IB_MAD_METHOD_RESP_MASK</a> );
}
</pre>
</span><p><strong>PARAMETERS</strong></p>
<span class="PARAMETERS"><pre>       p_mad
               [in] Pointer to the MAD.

 RETURN VALUES
       Returns TRUE if the MAD is a response ('R' bit set),
       FALSE otherwise.
</pre>
</span><p><strong>NOTES</strong></p>
<span class="NOTES"><pre>
</pre>
</span><p><strong>SEE ALSO</strong></p>
<span class="SEE_ALSO"><pre>       <a href="#robo396">ib_mad_t</a>
</pre>
</span>
<hr />

<h2><a name="robo396">[Structures]<a name="IBA20Base3a20Types2fib5fmad5ft">
IBA Base: Types/ib_mad_t</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_strutures.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_mad_t</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       IBA defined MAD header (13.4.3)
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>#include <complib/cl_packon.h>
typedef struct _ib_mad
{
        uint8_t                                 base_ver;
        uint8_t                                 mgmt_class;
        uint8_t                                 class_ver;
        uint8_t                                 method;
        <a href="#robo407">ib_net16_t</a>                              status;
        <a href="#robo407">ib_net16_t</a>                              class_spec;
        <a href="#robo409">ib_net64_t</a>                              trans_id;
        <a href="#robo407">ib_net16_t</a>                              attr_id;
        <a href="#robo407">ib_net16_t</a>                              resv;
        <a href="#robo408">ib_net32_t</a>                              attr_mod;

}       PACK_SUFFIX <strong>ib_mad_t</strong>;
#include <complib/cl_packoff.h>
</pre>
</span><p><strong>FIELDS</strong></p>
<span class="FIELDS"><pre>       base_ver
               MAD base format.

       mgmt_class
               Class of operation.

       class_ver
               Version of MAD class-specific format.

       method
               Method to perform, including 'R' bit.

       status
               Status of operation.

       class_spec
               Reserved for subnet management.

       trans_id
               Transaction ID.

       attr_id
               Attribute ID.

       resv
               Reserved field.

       attr_mod
               Attribute modifier.
</pre>
</span><p><strong>SEE ALSO</strong></p>
<span class="SEE_ALSO"></span>
<hr />

<h2><a name="robo397">[Functions]<a name="IBA20Base3a20Types2fib5fmember5fget5fscope">
IBA Base: Types/ib_member_get_scope</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_functions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_member_get_scope</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Get encoded MGID scope
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>AL_INLINE uint8_t AL_API
<strong>ib_member_get_scope</strong>(
        IN              const   uint8_t                                         scope_state )
{
        return (scope_state >> 4);
}
</pre>
</span><p><strong>PARAMETERS</strong></p>
<span class="PARAMETERS"><pre>       scope_state
               [in] the scope and state

 RETURN VALUES
       Encoded scope.
</pre>
</span><p><strong>SEE ALSO</strong></p>
<span class="SEE_ALSO"><pre>       <a href="#robo401">ib_member_rec_t</a>
</pre>
</span>
<hr />

<h2><a name="robo398">[Functions]<a name="IBA20Base3a20Types2fib5fmember5fget5fscope5fstate">
IBA Base: Types/ib_member_get_scope_state</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_functions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_member_get_scope_state</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Get encoded MGID scope and JoinState
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>AL_INLINE void AL_API
<strong>ib_member_get_scope_state</strong>(
        IN              const   uint8_t                                         scope_state,
                OUT                     uint8_t* const                          p_scope,
                OUT                     uint8_t* const                          p_state )
{
        if (p_scope)
                *p_scope = <a href="#robo397">ib_member_get_scope</a>( scope_state );

        if (p_state)
                *p_state = <a href="#robo400">ib_member_get_state</a>( scope_state );
}
</pre>
</span><p><strong>PARAMETERS</strong></p>
<span class="PARAMETERS"><pre>       scope_state
               [in] the scope and state

 RETURN VALUES
       p_scope
               [out] pointer to the MGID scope

       p_state
               [out] pointer to the join state
</pre>
</span><p><strong>NOTES</strong></p>
<span class="NOTES"><pre>
</pre>
</span><p><strong>SEE ALSO</strong></p>
<span class="SEE_ALSO"><pre>       <a href="#robo401">ib_member_rec_t</a>
</pre>
</span>
<hr />

<h2><a name="robo399">[Functions]<a name="IBA20Base3a20Types2fib5fmember5fget5fsl5fflow5fhop">
IBA Base: Types/ib_member_get_sl_flow_hop</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_functions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_member_get_sl_flow_hop</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Get encoded sl flow label and hop limit
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>AL_INLINE void AL_API
<strong>ib_member_get_sl_flow_hop</strong>(
        IN              const   <a href="#robo408">ib_net32_t</a>                                      sl_flow_hop,
                OUT                     uint8_t* const                          p_sl OPTIONAL,
                OUT                     net32_t* const                          p_flow_lbl OPTIONAL,
                OUT                     uint8_t* const                          p_hop OPTIONAL )
{
        <a href="#robo408">ib_net32_t</a> tmp_sl_flow_hop;

        if (p_sl)
                *p_sl = (uint8_t)(sl_flow_hop & 0x0f);

        tmp_sl_flow_hop = sl_flow_hop >> 4;

        if (p_flow_lbl)
                *p_flow_lbl = (uint32_t)(tmp_sl_flow_hop & 0xffffff);

        tmp_sl_flow_hop = tmp_sl_flow_hop >> 20;

        if (p_hop)
                *p_hop = (uint8_t)(tmp_sl_flow_hop & 0xff);
}
</pre>
</span><p><strong>PARAMETERS</strong></p>
<span class="PARAMETERS"><pre>       sl_flow_hop
               [in] the sl flow label and hop limit of MC Group

 RETURN VALUES
       p_sl
               [out] pointer to the service level

       p_flow_lbl
               [out] pointer to the flow label info

       p_hop
               [out] pointer to the hop count limit.
</pre>
</span><p><strong>NOTES</strong></p>
<span class="NOTES"><pre>
</pre>
</span><p><strong>SEE ALSO</strong></p>
<span class="SEE_ALSO"><pre>       <a href="#robo401">ib_member_rec_t</a>
</pre>
</span>
<hr />

<h2><a name="robo400">[Functions]<a name="IBA20Base3a20Types2fib5fmember5fget5fstate">
IBA Base: Types/ib_member_get_state</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_functions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_member_get_state</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Get encoded MGID JoinState
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>AL_INLINE uint8_t AL_API
<strong>ib_member_get_state</strong>(
        IN              const   uint8_t                                         scope_state )
{
        return (scope_state & 0x0f);
}
</pre>
</span><p><strong>PARAMETERS</strong></p>
<span class="PARAMETERS"><pre>       scope_state
               [in] the scope and state

 RETURN VALUES
               Encoded JoinState
</pre>
</span><p><strong>SEE ALSO</strong></p>
<span class="SEE_ALSO"><pre>       <a href="#robo401">ib_member_rec_t</a>
</pre>
</span>
<hr />

<h2><a name="robo401">[Structures]<a name="IBA20Base3a20Types2fib5fmember5frec5ft">
IBA Base: Types/ib_member_rec_t</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_strutures.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_member_rec_t</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Multicast member record, used to create, join, and leave multicast
       groups.
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>#include <complib/cl_packon.h>
typedef struct _ib_member_rec
{
        <a href="#robo370">ib_gid_t</a>                                mgid;
        <a href="#robo370">ib_gid_t</a>                                port_gid;
        <a href="#robo408">ib_net32_t</a>                              qkey;
        <a href="#robo407">ib_net16_t</a>                              mlid;
        uint8_t                                 mtu;
        uint8_t                                 tclass;
        <a href="#robo407">ib_net16_t</a>                              pkey;
        uint8_t                                 rate;
        uint8_t                                 pkt_life;
        <a href="#robo408">ib_net32_t</a>                              sl_flow_hop;
        uint8_t                                 scope_state;
        uint8_t                                 proxy_join;
        uint8_t                                 reserved[2];
        uint8_t                                 pad[4];

}       PACK_SUFFIX <strong>ib_member_rec_t</strong>;
#include <complib/cl_packoff.h>
</pre>
</span><p><strong>FIELDS</strong></p>
<span class="FIELDS"><pre>       mgid
               Multicast GID address for this multicast group.

       port_gid
               Valid GID of the endpoint joining this multicast group.

       requestor_gid
               GID of the endpoint making this request on hehave of port_gid.

       qkey
               Q_Key to be used by this multicast group.

       mlid
               Multicast LID for this multicast group.

       mtu
               MTU and MTU selector fields to use on this path

       tclass
               Another global routing parameter.

       pkey
               Partition key (P_Key) to use for this member.

       rate
               Rate and rate selector fields to use on this path.

       pkt_life
               Packet lifetime

       sl_flow_hop
               Global routing parameters: service level, hop count, and flow label.

       scope_state
               MGID scope and JoinState of multicast request.

       proxy_join
               Enables others in the Partition to proxy add/remove from the group
</pre>
</span><p><strong>SEE ALSO</strong></p>
<span class="SEE_ALSO"></span>
<hr />

<h2><a name="robo402">[Functions]<a name="IBA20Base3a20Types2fib5fmember5fset5fjoin5fstate">
IBA Base: Types/ib_member_set_join_state</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_functions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_member_set_join_state</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Set JoinState
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>AL_INLINE void AL_API
<strong>ib_member_set_join_state</strong>(
        IN      OUT                     <a href="#robo401">ib_member_rec_t</a>                         *p_mc_rec,
        IN              const   uint8_t                                         state )
{
        p_mc_rec->scope_state &= 0xF0;
        p_mc_rec->scope_state |= (state & 0x0F);
}
</pre>
</span><p><strong>PARAMETERS</strong></p>
<span class="PARAMETERS"><pre>       p_mc_rec
               [in] pointer to the member record

       state
               [in] the JoinState

 RETURN VALUES
       NONE
</pre>
</span><p><strong>NOTES</strong></p>
<span class="NOTES"><pre>
</pre>
</span><p><strong>SEE ALSO</strong></p>
<span class="SEE_ALSO"><pre>       <a href="#robo401">ib_member_rec_t</a>
</pre>
</span>
<hr />

<h2><a name="robo403">[Functions]<a name="IBA20Base3a20Types2fib5fmember5fset5fscope">
IBA Base: Types/ib_member_set_scope</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_functions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_member_set_scope</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Set encoded scope of a MCR.
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>AL_INLINE void AL_API
<strong>ib_member_set_scope</strong>(
        IN      OUT                     uint8_t* const                          p_scope_state,
        IN              const   uint8_t                                         scope )
{
        CL_ASSERT( scope <= 0x0F );
        /* Scope is MS 4-bits. */
        *p_scope_state &= 0xF0;
        *p_scope_state |= (scope << 4);
}
</pre>
</span><p><strong>PARAMETERS</strong></p>
<span class="PARAMETERS"><pre>       scope_state
               [in/out] Pointer to the MCR scope_state field.

       scope
               [in] The desired scope.

 RETURN VALUES
       This function does not return a value.
</pre>
</span><p><strong>SEE ALSO</strong></p>
<span class="SEE_ALSO"><pre>       <a href="#robo401">ib_member_rec_t</a>
</pre>
</span>
<hr />

<h2><a name="robo404">[Functions]<a name="IBA20Base3a20Types2fib5fmember5fset5fscope5fstate">
IBA Base: Types/ib_member_set_scope_state</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_functions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_member_set_scope_state</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Set encoded version, MGID scope and JoinState
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>AL_INLINE uint8_t AL_API
<strong>ib_member_set_scope_state</strong>(
        IN              const   uint8_t                                         scope,
        IN              const   uint8_t                                         state )
{
        /* Scope is MS 4-bits, state is LS 4-bits */
        return ((scope << 4) | (state & 0xF));
}
</pre>
</span><p><strong>PARAMETERS</strong></p>
<span class="PARAMETERS"><pre>       scope
               [in] the MGID scope

       state
               [in] the JoinState

 RETURN VALUES
       scope_state
               [out] the encoded one
</pre>
</span><p><strong>NOTES</strong></p>
<span class="NOTES"><pre>
</pre>
</span><p><strong>SEE ALSO</strong></p>
<span class="SEE_ALSO"><pre>       <a href="#robo401">ib_member_rec_t</a>
</pre>
</span>
<hr />

<h2><a name="robo405">[Functions]<a name="IBA20Base3a20Types2fib5fmember5fset5fsl5fflow5fhop">
IBA Base: Types/ib_member_set_sl_flow_hop</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_functions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_member_set_sl_flow_hop</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Set encoded version, sl flow and hop
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>AL_INLINE <a href="#robo408">ib_net32_t</a> AL_API
<strong>ib_member_set_sl_flow_hop</strong>(
        IN              const   uint8_t                                         sl,
        IN              const   net32_t                                         flow_lbl,
        IN              const   uint8_t                                         hop_limit )
{
        <a href="#robo408">ib_net32_t</a>              sl_flow_hop;

        sl_flow_hop = sl;
        sl_flow_hop <<= 20;
        sl_flow_hop |= (cl_ntoh32( flow_lbl ) & 0x000FFFFF);
        sl_flow_hop <<= 8;
        sl_flow_hop |= hop_limit;
        return cl_hton32(sl_flow_hop);
}
</pre>
</span><p><strong>PARAMETERS</strong></p>
<span class="PARAMETERS"><pre>       sl
               [in] the service level.

       flow_lbl
               [in] the flow label info

       hop_limit
               [in] the hop limit.

 RETURN VALUES
       sl_flow_hop
               [out] the sl flow label and hop limit
</pre>
</span><p><strong>NOTES</strong></p>
<span class="NOTES"><pre>
</pre>
</span><p><strong>SEE ALSO</strong></p>
<span class="SEE_ALSO"><pre>       <a href="#robo401">ib_member_rec_t</a>
</pre>
</span>
<hr />

<h2><a name="robo406">[Functions]<a name="IBA20Base3a20Types2fib5fmember5fset5fstate">
IBA Base: Types/ib_member_set_state</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_functions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_member_set_state</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Set encoded JoinState of a MCR.
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>AL_INLINE void AL_API
<strong>ib_member_set_state</strong>(
        IN      OUT                     uint8_t* const                          p_scope_state,
        IN              const   uint8_t                                         state )
{
        CL_ASSERT( state <= 0x0F );
        /* State is LS 4-bits. */
        *p_scope_state &= 0x0F;
        *p_scope_state |= (state & 0x0F);
}
</pre>
</span><p><strong>PARAMETERS</strong></p>
<span class="PARAMETERS"><pre>       scope_state
               [in/out] Pointer to the MCR scope_state field to modify.

       state
               [in] the JoinState

 RETURN VALUES
       This function does not return a value.
</pre>
</span><p><strong>SEE ALSO</strong></p>
<span class="SEE_ALSO"><pre>       <a href="#robo401">ib_member_rec_t</a>
</pre>
</span>
<hr />

<h2><a name="robo407">[Definitions]<a name="IBA20Base3a20Types2fib5fnet165ft">
IBA Base: Types/ib_net16_t</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_definitions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_net16_t</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Defines the network ordered type for 16-bit values.
</pre>
</span><p><strong>SOURCE</strong></p>
<span class="SOURCE"><pre>typedef uint16_t        <strong>ib_net16_t</strong>;
</pre>
</span>
<hr />

<h2><a name="robo408">[Definitions]<a name="IBA20Base3a20Types2fib5fnet325ft">
IBA Base: Types/ib_net32_t</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_definitions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_net32_t</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Defines the network ordered type for 32-bit values.
</pre>
</span><p><strong>SOURCE</strong></p>
<span class="SOURCE"><pre>typedef uint32_t        <strong>ib_net32_t</strong>;
</pre>
</span>
<hr />

<h2><a name="robo409">[Definitions]<a name="IBA20Base3a20Types2fib5fnet645ft">
IBA Base: Types/ib_net64_t</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_definitions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_net64_t</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Defines the network ordered type for 64-bit values.
</pre>
</span><p><strong>SOURCE</strong></p>
<span class="SOURCE"><pre>typedef uint64_t        <strong>ib_net64_t</strong>;
</pre>
</span>
<hr />

<h2><a name="robo410">[Functions]<a name="IBA20Base3a20Types2fib5fnode5finfo5fget5flocal5fport5fnum">
IBA Base: Types/ib_node_info_get_local_port_num</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_functions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_node_info_get_local_port_num</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Gets a the local port number from the NodeInfo attribute.
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>AL_INLINE uint8_t AL_API
<strong>ib_node_info_get_local_port_num</strong>(
        IN              const   <a href="#robo412">ib_node_info_t</a>* const           p_ni )
{
        return( (uint8_t)(( p_ni->port_num_vendor_id &
                        IB_NODE_INFO_PORT_NUM_MASK )
                        >> IB_NODE_INFO_PORT_NUM_SHIFT ));
}
</pre>
</span><p><strong>PARAMETERS</strong></p>
<span class="PARAMETERS"><pre>       p_ni
               [in] Pointer to a NodeInfo attribute.

 RETURN VALUES
       Local port number that returned the attribute.
</pre>
</span><p><strong>NOTES</strong></p>
<span class="NOTES"><pre>
</pre>
</span><p><strong>SEE ALSO</strong></p>
<span class="SEE_ALSO"><pre>       <a href="#robo412">ib_node_info_t</a>
</pre>
</span>
<hr />

<h2><a name="robo411">[Functions]<a name="IBA20Base3a20Types2fib5fnode5finfo5fget5fvendor5fid">
IBA Base: Types/ib_node_info_get_vendor_id</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_functions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_node_info_get_vendor_id</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Gets the VendorID from the NodeInfo attribute.
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>AL_INLINE <a href="#robo408">ib_net32_t</a> AL_API
<strong>ib_node_info_get_vendor_id</strong>(
        IN              const   <a href="#robo412">ib_node_info_t</a>* const           p_ni )
{
        return( (<a href="#robo408">ib_net32_t</a>)( p_ni->port_num_vendor_id &
                        IB_NODE_INFO_VEND_ID_MASK ) );
}
</pre>
</span><p><strong>PARAMETERS</strong></p>
<span class="PARAMETERS"><pre>       p_ni
               [in] Pointer to a NodeInfo attribute.

 RETURN VALUES
       VendorID that returned the attribute.
</pre>
</span><p><strong>NOTES</strong></p>
<span class="NOTES"><pre>
</pre>
</span><p><strong>SEE ALSO</strong></p>
<span class="SEE_ALSO"><pre>       <a href="#robo412">ib_node_info_t</a>
</pre>
</span>
<hr />

<h2><a name="robo412">[Structures]<a name="IBA20Base3a20Types2fib5fnode5finfo5ft">
IBA Base: Types/ib_node_info_t</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_strutures.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_node_info_t</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       IBA defined NodeInfo. (14.2.5.3)
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>#include <complib/cl_packon.h>
typedef struct _ib_node_info
{
        uint8_t                         base_version;
        uint8_t                         class_version;
        uint8_t                         node_type;
        uint8_t                         num_ports;
        <a href="#robo409">ib_net64_t</a>                      sys_guid;
        <a href="#robo409">ib_net64_t</a>                      node_guid;
        <a href="#robo409">ib_net64_t</a>                      port_guid;
        <a href="#robo407">ib_net16_t</a>                      partition_cap;
        <a href="#robo407">ib_net16_t</a>                      device_id;
        <a href="#robo408">ib_net32_t</a>                      revision;
        <a href="#robo408">ib_net32_t</a>                      port_num_vendor_id;

}       PACK_SUFFIX <strong>ib_node_info_t</strong>;
#include <complib/cl_packoff.h>
</pre>
</span>
<hr />

<h2><a name="robo413">[Functions]<a name="IBA20Base3a20Types2fib5fnotice5fget5fcount">
IBA Base: Types/ib_notice_get_count</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_functions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_notice_get_count</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Retrieves the notice toggle count from a notice trap.
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>AL_INLINE boolean_t AL_API
<strong>ib_notice_get_count</strong>(
        IN              const   ib_mad_notice_attr_t* const     p_notice_attr )
{
        return ((cl_ntoh16( p_notice_attr->combo3 ) & 0xFFFE) >> 1);
}
</pre>
</span><p><strong>PARAMETERS</strong></p>
<span class="PARAMETERS"><pre>       p_notice_attr
               [in] Pointer to the notice attribute structure whose
               notice toggle count to return.

 RETURN VALUES
       Returns the notice toggle count of the notice.
</pre>
</span><p><strong>SEE ALSO</strong></p>
<span class="SEE_ALSO"><pre>       ib_mad_notice_attr_t, <a href="#robo421">ib_notice_set_count</a>
</pre>
</span>
<hr />

<h2><a name="robo414">[Functions]<a name="IBA20Base3a20Types2fib5fnotice5fget5fdev5fid">
IBA Base: Types/ib_notice_get_dev_id</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_functions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_notice_get_dev_id</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Retrieves the device ID from a vendor specific notice trap.
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>AL_INLINE uint16_t AL_API
<strong>ib_notice_get_dev_id</strong>(
        IN              const   ib_mad_notice_attr_t* const     p_notice_attr )
{
        return <a href="#robo418">ib_notice_get_trap_num</a>( p_notice_attr );
}
</pre>
</span><p><strong>PARAMETERS</strong></p>
<span class="PARAMETERS"><pre>       p_notice_attr
               [in] Pointer to the notice attribute structure whose
               device ID to return.

 RETURN VALUES
       Returns the vendor ID of the notice, in host byte order.
</pre>
</span><p><strong>SEE ALSO</strong></p>
<span class="SEE_ALSO"><pre>       ib_mad_notice_attr_t, <a href="#robo422">ib_notice_set_dev_id</a>
</pre>
</span>
<hr />

<h2><a name="robo415">[Functions]<a name="IBA20Base3a20Types2fib5fnotice5fget5fgeneric">
IBA Base: Types/ib_notice_get_generic</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_functions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_notice_get_generic</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Retrieves whether a notice trap is generic.
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>AL_INLINE boolean_t AL_API
<strong>ib_notice_get_generic</strong>(
        IN              const   ib_mad_notice_attr_t* const     p_notice_attr )
{
        if( cl_ntoh32( p_notice_attr->combo1 ) & 0x00000001 )
                return TRUE;
        return FALSE;
}
</pre>
</span><p><strong>PARAMETERS</strong></p>
<span class="PARAMETERS"><pre>       p_notice_attr
               [in] Pointer to the notice attribute structure for which to return
               whether it is generic or not.

 RETURN VALUES
       Returns TRUE if the notice is generic.

       Returns FALSE if the notice is vendor specific.
</pre>
</span><p><strong>SEE ALSO</strong></p>
<span class="SEE_ALSO"><pre>       ib_mad_notice_attr_t, <a href="#robo423">ib_notice_set_generic</a>
</pre>
</span>
<hr />

<h2><a name="robo416">[Functions]<a name="IBA20Base3a20Types2fib5fnotice5fget5fprod5ftype">
IBA Base: Types/ib_notice_get_prod_type</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_functions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_notice_get_prod_type</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Retrieves the producer type from a generic notice trap.
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>AL_INLINE uint32_t AL_API
<strong>ib_notice_get_prod_type</strong>(
        IN              const   ib_mad_notice_attr_t* const     p_notice_attr )
{
        return (cl_ntoh32( p_notice_attr->combo1 ) >> 8);
}
</pre>
</span><p><strong>PARAMETERS</strong></p>
<span class="PARAMETERS"><pre>       p_notice_attr
               [in] Pointer to the notice attribute structure whose
               prducer type to return.

 RETURN VALUES
       Returns the producer type of the notice, in host byte order.
</pre>
</span><p><strong>SEE ALSO</strong></p>
<span class="SEE_ALSO"><pre>       ib_mad_notice_attr_t, <a href="#robo424">ib_notice_set_prod_type</a>
</pre>
</span>
<hr />

<h2><a name="robo417">[Functions]<a name="IBA20Base3a20Types2fib5fnotice5fget5ftoggle">
IBA Base: Types/ib_notice_get_toggle</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_functions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_notice_get_toggle</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Retrieves the notice toggle bit from a notice trap.
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>AL_INLINE boolean_t AL_API
<strong>ib_notice_get_toggle</strong>(
        IN              const   ib_mad_notice_attr_t* const     p_notice_attr )
{
        return (cl_ntoh16( p_notice_attr->combo3 ) & 0x0001);
}
</pre>
</span><p><strong>PARAMETERS</strong></p>
<span class="PARAMETERS"><pre>       p_notice_attr
               [in] Pointer to the notice attribute structure whose
               notice toggle bit value to return.

 RETURN VALUES
       Returns TRUE if the notice toggle bit of the notice is set.

       Returns FALSE otherwise.
</pre>
</span><p><strong>SEE ALSO</strong></p>
<span class="SEE_ALSO"><pre>       ib_mad_notice_attr_t, <a href="#robo425">ib_notice_set_toggle</a>
</pre>
</span>
<hr />

<h2><a name="robo418">[Functions]<a name="IBA20Base3a20Types2fib5fnotice5fget5ftrap5fnum">
IBA Base: Types/ib_notice_get_trap_num</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_functions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_notice_get_trap_num</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Retrieves the trap number from a generic notice trap.
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>AL_INLINE uint16_t AL_API
<strong>ib_notice_get_trap_num</strong>(
        IN              const   ib_mad_notice_attr_t* const     p_notice_attr )
{
        return cl_ntoh16( p_notice_attr->combo2 );
}
</pre>
</span><p><strong>PARAMETERS</strong></p>
<span class="PARAMETERS"><pre>       p_notice_attr
               [in] Pointer to the notice attribute structure whose
               trap number to return.

 RETURN VALUES
       Returns the vendor ID of the notice, in host byte order.
</pre>
</span><p><strong>SEE ALSO</strong></p>
<span class="SEE_ALSO"><pre>       ib_mad_notice_attr_t, <a href="#robo426">ib_notice_set_trap_num</a>
</pre>
</span>
<hr />

<h2><a name="robo419">[Functions]<a name="IBA20Base3a20Types2fib5fnotice5fget5ftype">
IBA Base: Types/ib_notice_get_type</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_functions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_notice_get_type</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Retrieves the type of a notice trap.
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>AL_INLINE uint8_t AL_API
<strong>ib_notice_get_type</strong>(
        IN              const   ib_mad_notice_attr_t* const     p_notice_attr )
{
        return (uint8_t)((cl_ntoh32( p_notice_attr->combo1 ) >> 1) & 0x0000007F);
}
</pre>
</span><p><strong>PARAMETERS</strong></p>
<span class="PARAMETERS"><pre>       p_notice_attr
               [in] Pointer to the notice attribute structure whose type to return.

 RETURN VALUES
       Returns the type of the notice.
</pre>
</span><p><strong>SEE ALSO</strong></p>
<span class="SEE_ALSO"><pre>       ib_mad_notice_attr_t, <a href="#robo427">ib_notice_set_type</a>
</pre>
</span>
<hr />

<h2><a name="robo420">[Functions]<a name="IBA20Base3a20Types2fib5fnotice5fget5fvend5fid">
IBA Base: Types/ib_notice_get_vend_id</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_functions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_notice_get_vend_id</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Retrieves the vendor ID from a vendor specific notice trap.
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>AL_INLINE uint32_t AL_API
<strong>ib_notice_get_vend_id</strong>(
        IN              const   ib_mad_notice_attr_t* const     p_notice_attr )
{
        return <a href="#robo416">ib_notice_get_prod_type</a>( p_notice_attr );
}
</pre>
</span><p><strong>PARAMETERS</strong></p>
<span class="PARAMETERS"><pre>       p_notice_attr
               [in] Pointer to the notice attribute structure whose
               vendor ID to return.

 RETURN VALUES
       Returns the vendor ID of the notice, in host byte order.
</pre>
</span><p><strong>SEE ALSO</strong></p>
<span class="SEE_ALSO"><pre>       ib_mad_notice_attr_t, <a href="#robo428">ib_notice_set_vend_id</a>
</pre>
</span>
<hr />

<h2><a name="robo421">[Functions]<a name="IBA20Base3a20Types2fib5fnotice5fset5fcount">
IBA Base: Types/ib_notice_set_count</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_functions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_notice_set_count</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Sets the toggle count of a notice trap.
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>AL_INLINE void AL_API
<strong>ib_notice_set_count</strong>(
        IN      OUT                     ib_mad_notice_attr_t* const     p_notice_attr,
        IN              const   uint16_t                                        toggle_cnt )
{
        uint16_t        val;
        val = cl_ntoh16( p_notice_attr->combo3 );
        val &= 0x0001;
        val |= (toggle_cnt << 1);
        p_notice_attr->combo3 = cl_hton16( val );
}
</pre>
</span><p><strong>PARAMETERS</strong></p>
<span class="PARAMETERS"><pre>       p_notice_attr
               [in/out] Pointer to the notice attribute structure
               whose device ID to set.

       toggle_cnt
               [in] Toggle count value of the notice.

 RETURN VALUES
       This function does not return a value.
</pre>
</span><p><strong>SEE ALSO</strong></p>
<span class="SEE_ALSO"><pre>       ib_mad_notice_attr_t, <a href="#robo413">ib_notice_get_count</a>
</pre>
</span>
<hr />

<h2><a name="robo422">[Functions]<a name="IBA20Base3a20Types2fib5fnotice5fset5fdev5fid">
IBA Base: Types/ib_notice_set_dev_id</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_functions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_notice_set_dev_id</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Sets the producer type of a vendor specific notice trap.
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>AL_INLINE void AL_API
<strong>ib_notice_set_dev_id</strong>(
        IN      OUT                     ib_mad_notice_attr_t* const     p_notice_attr,
        IN              const   uint16_t                                        dev_id )
{
        <a href="#robo426">ib_notice_set_trap_num</a>( p_notice_attr, dev_id );
}
</pre>
</span><p><strong>PARAMETERS</strong></p>
<span class="PARAMETERS"><pre>       p_notice_attr
               [in/out] Pointer to the notice attribute structure
               whose device ID to set.

       dev_id
               [in] Device ID of notice trap.

 RETURN VALUES
       This function does not return a value.
</pre>
</span><p><strong>SEE ALSO</strong></p>
<span class="SEE_ALSO"><pre>       ib_mad_notice_attr_t, <a href="#robo414">ib_notice_get_dev_id</a>
</pre>
</span>
<hr />

<h2><a name="robo423">[Functions]<a name="IBA20Base3a20Types2fib5fnotice5fset5fgeneric">
IBA Base: Types/ib_notice_set_generic</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_functions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_notice_set_generic</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Sets whether a notice trap is generic.
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>AL_INLINE void AL_API
<strong>ib_notice_set_generic</strong>(
        IN      OUT                     ib_mad_notice_attr_t* const     p_notice_attr,
        IN              const   boolean_t                                       is_generic )
{
        uint32_t        val;

        val = cl_ntoh32( p_notice_attr->combo1 );
        if( is_generic )
                val |= 0x00000001;
        else
                val &= 0xFFFFFFFE;
        p_notice_attr->combo1 = cl_hton32( val );
}
</pre>
</span><p><strong>PARAMETERS</strong></p>
<span class="PARAMETERS"><pre>       p_notice_attr
               [in/out] Pointer to the notice attribute structure for which to set
               the generic bit.

       is_generic
               [in] TRUE if the notice is generic, FALSE if vendor specific.

 RETURN VALUES
       This function does not return a value.
</pre>
</span><p><strong>SEE ALSO</strong></p>
<span class="SEE_ALSO"><pre>       ib_mad_notice_attr_t, <a href="#robo415">ib_notice_get_generic</a>
</pre>
</span>
<hr />

<h2><a name="robo424">[Functions]<a name="IBA20Base3a20Types2fib5fnotice5fset5fprod5ftype">
IBA Base: Types/ib_notice_set_prod_type</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_functions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_notice_set_prod_type</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Sets the producer type of a generic notice trap.
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>AL_INLINE void AL_API
<strong>ib_notice_set_prod_type</strong>(
        IN      OUT                     ib_mad_notice_attr_t* const     p_notice_attr,
        IN              const   uint32_t                                        prod_type )
{
        uint32_t        val;

        val = cl_ntoh32( p_notice_attr->combo1 );
        /* Clear the type. */
        val &= 0x000000FF;
        /* Set new value. */
        val |= (prod_type << 8);
        p_notice_attr->combo1 = cl_hton32( val );
}
</pre>
</span><p><strong>PARAMETERS</strong></p>
<span class="PARAMETERS"><pre>       p_notice_attr
               [in/out] Pointer to the notice attribute structure
               whose producer type to set.

       prod_type
               [in] Producer type of notice trap.

 RETURN VALUES
       This function does not return a value.
</pre>
</span><p><strong>SEE ALSO</strong></p>
<span class="SEE_ALSO"><pre>       ib_mad_notice_attr_t, <a href="#robo416">ib_notice_get_prod_type</a>
</pre>
</span>
<hr />

<h2><a name="robo425">[Functions]<a name="IBA20Base3a20Types2fib5fnotice5fset5ftoggle">
IBA Base: Types/ib_notice_set_toggle</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_functions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_notice_set_toggle</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Sets the notice toggle bit of a notice trap.
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>AL_INLINE void AL_API
<strong>ib_notice_set_toggle</strong>(
        IN      OUT                     ib_mad_notice_attr_t* const     p_notice_attr,
        IN              const   boolean_t                                       toggle_val )
{
        uint16_t        val;
        val = cl_ntoh16( p_notice_attr->combo3 );
        if( toggle_val )
                val |= 0x0001;
        else
                val &= 0xFFFE;
        p_notice_attr->combo3 = cl_hton16( val );
}
</pre>
</span><p><strong>PARAMETERS</strong></p>
<span class="PARAMETERS"><pre>       p_notice_attr
               [in/out] Pointer to the notice attribute structure
               whose notice toggle bit to set or clear.

       toggle_val
               [in] Boolean value indicating whether the toggle bit of the notice
               should be set or cleared.

 RETURN VALUES
       This function does not return a value.
</pre>
</span><p><strong>SEE ALSO</strong></p>
<span class="SEE_ALSO"><pre>       ib_mad_notice_attr_t, <a href="#robo417">ib_notice_get_toggle</a>
</pre>
</span>
<hr />

<h2><a name="robo426">[Functions]<a name="IBA20Base3a20Types2fib5fnotice5fset5ftrap5fnum">
IBA Base: Types/ib_notice_set_trap_num</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_functions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_notice_set_trap_num</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Sets the trap number of a generic notice trap.
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>AL_INLINE void AL_API
<strong>ib_notice_set_trap_num</strong>(
        IN      OUT                     ib_mad_notice_attr_t* const     p_notice_attr,
        IN              const   uint16_t                                        trap_num )
{
        p_notice_attr->combo2 = cl_hton16( trap_num );
}
</pre>
</span><p><strong>PARAMETERS</strong></p>
<span class="PARAMETERS"><pre>       p_notice_attr
               [in/out] Pointer to the notice attribute structure
               whose trap number to set.

       trap_num
               [in] Trap number to set.

 RETURN VALUES
       This function does not return a value.
</pre>
</span><p><strong>SEE ALSO</strong></p>
<span class="SEE_ALSO"><pre>       ib_mad_notice_attr_t, <a href="#robo418">ib_notice_get_trap_num</a>
</pre>
</span>
<hr />

<h2><a name="robo427">[Functions]<a name="IBA20Base3a20Types2fib5fnotice5fset5ftype">
IBA Base: Types/ib_notice_set_type</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_functions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_notice_set_type</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Sets the type of a notice trap.
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>AL_INLINE void AL_API
<strong>ib_notice_set_type</strong>(
        IN      OUT                     ib_mad_notice_attr_t* const     p_notice_attr,
        IN              const   uint8_t                                         type )
{
        uint32_t        val;

        val = cl_ntoh32( p_notice_attr->combo1 );
        /* Clear the type. */
        val &= 0xFFFFFF01;
        /* Set new value. */
        val |= (((uint32_t)(type & 0x7F)) << 1);
        p_notice_attr->combo1 = cl_hton32( val );
}
</pre>
</span><p><strong>PARAMETERS</strong></p>
<span class="PARAMETERS"><pre>       p_notice_attr
               [in/out] Pointer to the notice attribute structure whose type to set.

       type
               [in] Type of notice trap.

 RETURN VALUES
       This function does not return a value.
</pre>
</span><p><strong>SEE ALSO</strong></p>
<span class="SEE_ALSO"><pre>       ib_mad_notice_attr_t, <a href="#robo419">ib_notice_get_type</a>
</pre>
</span>
<hr />

<h2><a name="robo428">[Functions]<a name="IBA20Base3a20Types2fib5fnotice5fset5fvend5fid">
IBA Base: Types/ib_notice_set_vend_id</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_functions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_notice_set_vend_id</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Sets the vendor ID of a vendor specific notice trap.
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>AL_INLINE void AL_API
<strong>ib_notice_set_vend_id</strong>(
        IN      OUT                     ib_mad_notice_attr_t* const     p_notice_attr,
        IN              const   uint32_t                                        vend_id )
{
        <a href="#robo424">ib_notice_set_prod_type</a>( p_notice_attr, vend_id );
}
</pre>
</span><p><strong>PARAMETERS</strong></p>
<span class="PARAMETERS"><pre>       p_notice_attr
               [in/out] Pointer to the notice attribute structure
               whose vendor ID to set.

       vend_id
               [in] Vendor ID of notice trap.

 RETURN VALUES
       This function does not return a value.
</pre>
</span><p><strong>SEE ALSO</strong></p>
<span class="SEE_ALSO"><pre>       ib_mad_notice_attr_t, <a href="#robo420">ib_notice_get_vend_id</a>
</pre>
</span>
<hr />

<h2><a name="robo429">[Functions]<a name="IBA20Base3a20Types2fib5fpath5fget5fipd">
IBA Base: Types/ib_path_get_ipd</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_functions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_path_get_ipd</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Returns the encoded value for the inter packet delay.
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>AL_INLINE uint8_t AL_API
<strong>ib_path_get_ipd</strong>(
        IN                              uint8_t                                         local_link_width_supported,
        IN                              uint8_t                                         path_rec_rate )
{
        uint8_t ipd = 0;

        switch(local_link_width_supported)
        {
                //link_width_supported = 1: 1x
                case 1:
                        break;

                //link_width_supported = 3: 1x or 4x
                case 3:
                        switch(path_rec_rate & 0x3F)
                        {
                                case IB_PATH_RECORD_RATE_2_5_GBS:
                                        ipd = 3;
                                        break;
                                default:
                                        break;
                        }
                        break;

                //link_width_supported = 11: 1x or 4x or 12x
                case 11:
                        switch(path_rec_rate & 0x3F)
                        {
                                case IB_PATH_RECORD_RATE_2_5_GBS:
                                        ipd = 11;
                                        break;
                                case IB_PATH_RECORD_RATE_10_GBS:
                                        ipd = 2;
                                        break;
                                default:
                                        break;
                        }
                        break;

                default:
                        break;
        }

        return ipd;
}
</pre>
</span><p><strong>PARAMETERS</strong></p>
<span class="PARAMETERS"><pre>       local_link_width_supported
               [in] link with supported for this port

       path_rec_rate
               [in] rate field of the path record

 RETURN VALUES
       Returns the ipd
</pre>
</span><p><strong>NOTES</strong></p>
<span class="NOTES"><pre>
</pre>
</span><p><strong>SEE ALSO</strong></p>
<span class="SEE_ALSO"></span>
<hr />

<h2><a name="robo430">[Functions]<a name="IBA20Base3a20Types2fib5fpath5frec5fflow5flbl">
IBA Base: Types/ib_path_rec_flow_lbl</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_functions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_path_rec_flow_lbl</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Get flow label.
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>AL_INLINE net32_t AL_API
<strong>ib_path_rec_flow_lbl</strong>(
        IN              const   <a href="#robo441">ib_path_rec_t</a>* const            p_rec )
{
        return( cl_hton32( (cl_ntoh32(p_rec->hop_flow_raw.val) >> 8) & 0x000FFFFF ) );
}
</pre>
</span><p><strong>PARAMETERS</strong></p>
<span class="PARAMETERS"><pre>       p_rec
               [in] Pointer to the path record object.

 RETURN VALUES
       Flow label of the path record.
</pre>
</span><p><strong>NOTES</strong></p>
<span class="NOTES"><pre>
</pre>
</span><p><strong>SEE ALSO</strong></p>
<span class="SEE_ALSO"><pre>       <a href="#robo441">ib_path_rec_t</a>
</pre>
</span>
<hr />

<h2><a name="robo431">[Functions]<a name="IBA20Base3a20Types2fib5fpath5frec5fhop5flimit">
IBA Base: Types/ib_path_rec_hop_limit</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_functions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_path_rec_hop_limit</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Get hop limit.
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>AL_INLINE uint8_t AL_API
<strong>ib_path_rec_hop_limit</strong>(
        IN              const   <a href="#robo441">ib_path_rec_t</a>* const            p_rec )
{
        return( p_rec->hop_flow_raw.bytes[3] );
}
</pre>
</span><p><strong>PARAMETERS</strong></p>
<span class="PARAMETERS"><pre>       p_rec
               [in] Pointer to the path record object.

 RETURN VALUES
       Hop limit of the path record.
</pre>
</span><p><strong>NOTES</strong></p>
<span class="NOTES"><pre>
</pre>
</span><p><strong>SEE ALSO</strong></p>
<span class="SEE_ALSO"><pre>       <a href="#robo441">ib_path_rec_t</a>
</pre>
</span>
<hr />

<h2><a name="robo432">[Functions]<a name="IBA20Base3a20Types2fib5fpath5frec5finit5flocal">
IBA Base: Types/ib_path_rec_init_local</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_functions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_path_rec_init_local</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Initializes a subnet local path record.
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>AL_INLINE void AL_API
<strong>ib_path_rec_init_local</strong>(
        IN                              <a href="#robo441">ib_path_rec_t</a>*  const           p_rec,
        IN              const   <a href="#robo370">ib_gid_t</a>*               const           p_dgid,
        IN              const   <a href="#robo370">ib_gid_t</a>*               const           p_sgid,
        IN              const   <a href="#robo407">ib_net16_t</a>                                      dlid,
        IN              const   <a href="#robo407">ib_net16_t</a>                                      slid,
        IN              const   uint8_t                                         num_path,
        IN              const   <a href="#robo407">ib_net16_t</a>                                      pkey,
        IN              const   uint8_t                                         sl,
        IN              const   uint8_t                                         mtu_selector,
        IN              const   uint8_t                                         mtu,
        IN              const   uint8_t                                         rate_selector,
        IN              const   uint8_t                                         rate,
        IN              const   uint8_t                                         pkt_life_selector,
        IN              const   uint8_t                                         pkt_life,
        IN              const   uint8_t                                         preference )
{
        p_rec->dgid = *p_dgid;
        p_rec->sgid = *p_sgid;
        p_rec->dlid = dlid;
        p_rec->slid = slid;
        p_rec->num_path = num_path;
        p_rec->pkey = pkey;
        /* Lower 4 bits of path rec's SL are reserved. */
        p_rec->sl = cl_ntoh16( sl );
        p_rec->mtu = (uint8_t)((mtu & <a href="#robo323">IB_PATH_REC_BASE_MASK</a>) |
                        (uint8_t)(mtu_selector << 6));
        p_rec->rate = (uint8_t)((rate & <a href="#robo323">IB_PATH_REC_BASE_MASK</a>) |
                        (uint8_t)(rate_selector << 6));
        p_rec->pkt_life = (uint8_t)((pkt_life & <a href="#robo323">IB_PATH_REC_BASE_MASK</a>) |
                        (uint8_t)(pkt_life_selector << 6));
        p_rec->preference = preference;

        /* Clear global routing fields for local path records */
        p_rec->hop_flow_raw.val = 0;
        p_rec->tclass = 0;

        p_rec->resv0 = 0;
        p_rec->resv1 = 0;
        p_rec->resv2 = 0;
}
</pre>
</span><p><strong>PARAMETERS</strong></p>
<span class="PARAMETERS"><pre>       p_rec
               [in] Pointer to the path record object.

       dgid
               [in] GID of destination port.

       sgid
               [in] GID of source port.

       dlid
               [in] LID of destination port.

       slid
               [in] LID of source port.

       num_path
               [in] In queries, maximum number of paths to return.
               In responses, undefined.

       pkey
               [in] Partition key (P_Key) to use on this path.

       sl
               [in] Service level to use on this path.  Lower 4-bits are valid.

       mtu_selector
               [in] Encoded MTU selector value to use on this path

       mtu
               [in] Encoded MTU to use on this path

       rate_selector
               [in] Encoded rate selector value to use on this path.

       rate
               [in] Encoded rate to use on this path.

       pkt_life_selector
               [in] Encoded Packet selector value lifetime for this path.

       pkt_life
               [in] Encoded Packet lifetime for this path.

       preference
               [in] Indicates the relative merit of this path versus other path
               records returned from the SA.  Lower numbers are better.

 RETURN VALUES
       None.
</pre>
</span><p><strong>NOTES</strong></p>
<span class="NOTES"><pre>
</pre>
</span><p><strong>SEE ALSO</strong></p>
<span class="SEE_ALSO"><pre>       <a href="#robo370">ib_gid_t</a>
</pre>
</span>
<hr />

<h2><a name="robo433">[Functions]<a name="IBA20Base3a20Types2fib5fpath5frec5fmtu">
IBA Base: Types/ib_path_rec_mtu</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_functions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_path_rec_mtu</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Get encoded path MTU.
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>AL_INLINE uint8_t AL_API
<strong>ib_path_rec_mtu</strong>(
        IN              const   <a href="#robo441">ib_path_rec_t</a>* const            p_rec )
{
        return( (uint8_t)(p_rec->mtu & <a href="#robo323">IB_PATH_REC_BASE_MASK</a>) );
}
</pre>
</span><p><strong>PARAMETERS</strong></p>
<span class="PARAMETERS"><pre>       p_rec
               [in] Pointer to the path record object.

 RETURN VALUES
       Encoded path MTU.
               1: 256
               2: 512
               3: 1024
               4: 2048
               5: 4096
               others: reserved
</pre>
</span><p><strong>NOTES</strong></p>
<span class="NOTES"><pre>
</pre>
</span><p><strong>SEE ALSO</strong></p>
<span class="SEE_ALSO"><pre>       <a href="#robo441">ib_path_rec_t</a>
</pre>
</span>
<hr />

<h2><a name="robo434">[Functions]<a name="IBA20Base3a20Types2fib5fpath5frec5fmtu5fsel">
IBA Base: Types/ib_path_rec_mtu_sel</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_functions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_path_rec_mtu_sel</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Get encoded path MTU selector.
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>AL_INLINE uint8_t AL_API
<strong>ib_path_rec_mtu_sel</strong>(
        IN              const   <a href="#robo441">ib_path_rec_t</a>* const            p_rec )
{
        return( (uint8_t)((p_rec->mtu & <a href="#robo324">IB_PATH_REC_SELECTOR_MASK</a>) >> 6) );
}
</pre>
</span><p><strong>PARAMETERS</strong></p>
<span class="PARAMETERS"><pre>       p_rec
               [in] Pointer to the path record object.

 RETURN VALUES
       Encoded path MTU selector value (for queries).
               0: greater than MTU specified
               1: less than MTU specified
               2: exactly the MTU specified
               3: largest MTU available
</pre>
</span><p><strong>NOTES</strong></p>
<span class="NOTES"><pre>
</pre>
</span><p><strong>SEE ALSO</strong></p>
<span class="SEE_ALSO"><pre>       <a href="#robo441">ib_path_rec_t</a>
</pre>
</span>
<hr />

<h2><a name="robo435">[Functions]<a name="IBA20Base3a20Types2fib5fpath5frec5fpkt5flife">
IBA Base: Types/ib_path_rec_pkt_life</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_functions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_path_rec_pkt_life</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Get encoded path pkt_life.
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>AL_INLINE uint8_t AL_API
<strong>ib_path_rec_pkt_life</strong>(
        IN              const   <a href="#robo441">ib_path_rec_t</a>* const            p_rec )
{
        return( (uint8_t)(p_rec->pkt_life & <a href="#robo323">IB_PATH_REC_BASE_MASK</a>) );
}
</pre>
</span><p><strong>PARAMETERS</strong></p>
<span class="PARAMETERS"><pre>       p_rec
               [in] Pointer to the path record object.

 RETURN VALUES
       Encoded path pkt_life = 4.096 µsec * 2 PacketLifeTime.
</pre>
</span><p><strong>NOTES</strong></p>
<span class="NOTES"><pre>
</pre>
</span><p><strong>SEE ALSO</strong></p>
<span class="SEE_ALSO"><pre>       <a href="#robo441">ib_path_rec_t</a>
</pre>
</span>
<hr />

<h2><a name="robo436">[Functions]<a name="IBA20Base3a20Types2fib5fpath5frec5fpkt5flife5fsel">
IBA Base: Types/ib_path_rec_pkt_life_sel</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_functions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_path_rec_pkt_life_sel</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Get encoded path pkt_lifetime selector.
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>AL_INLINE uint8_t AL_API
<strong>ib_path_rec_pkt_life_sel</strong>(
        IN              const   <a href="#robo441">ib_path_rec_t</a>* const            p_rec )
{
        return( (uint8_t)((p_rec->pkt_life & <a href="#robo324">IB_PATH_REC_SELECTOR_MASK</a>) >> 6 ));
}
</pre>
</span><p><strong>PARAMETERS</strong></p>
<span class="PARAMETERS"><pre>       p_rec
               [in] Pointer to the path record object.

 RETURN VALUES
       Encoded path pkt_lifetime selector value (for queries).
               0: greater than rate specified
               1: less than rate specified
               2: exactly the rate specified
               3: smallest packet lifetime available
</pre>
</span><p><strong>NOTES</strong></p>
<span class="NOTES"><pre>
</pre>
</span><p><strong>SEE ALSO</strong></p>
<span class="SEE_ALSO"><pre>       <a href="#robo441">ib_path_rec_t</a>
</pre>
</span>
<hr />

<h2><a name="robo437">[Functions]<a name="IBA20Base3a20Types2fib5fpath5frec5frate">
IBA Base: Types/ib_path_rec_rate</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_functions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_path_rec_rate</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Get encoded path rate.
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>AL_INLINE uint8_t AL_API
<strong>ib_path_rec_rate</strong>(
        IN              const   <a href="#robo441">ib_path_rec_t</a>* const            p_rec )
{
        return( (uint8_t)(p_rec->rate & <a href="#robo323">IB_PATH_REC_BASE_MASK</a>) );
}
</pre>
</span><p><strong>PARAMETERS</strong></p>
<span class="PARAMETERS"><pre>       p_rec
               [in] Pointer to the path record object.

 RETURN VALUES
       Encoded path rate.
               2: 2.5 Gb/sec.
               3: 10 Gb/sec.
               4: 30 Gb/sec.
               others: reserved
</pre>
</span><p><strong>NOTES</strong></p>
<span class="NOTES"><pre>
</pre>
</span><p><strong>SEE ALSO</strong></p>
<span class="SEE_ALSO"><pre>       <a href="#robo441">ib_path_rec_t</a>
</pre>
</span>
<hr />

<h2><a name="robo438">[Functions]<a name="IBA20Base3a20Types2fib5fpath5frec5frate5fsel">
IBA Base: Types/ib_path_rec_rate_sel</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_functions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_path_rec_rate_sel</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Get encoded path rate selector.
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>AL_INLINE uint8_t AL_API
<strong>ib_path_rec_rate_sel</strong>(
        IN              const   <a href="#robo441">ib_path_rec_t</a>* const            p_rec )
{
        return( (uint8_t)((p_rec->rate & <a href="#robo324">IB_PATH_REC_SELECTOR_MASK</a>) >> 6) );
}
</pre>
</span><p><strong>PARAMETERS</strong></p>
<span class="PARAMETERS"><pre>       p_rec
               [in] Pointer to the path record object.

 RETURN VALUES
       Encoded path rate selector value (for queries).
               0: greater than rate specified
               1: less than rate specified
               2: exactly the rate specified
               3: largest rate available
</pre>
</span><p><strong>NOTES</strong></p>
<span class="NOTES"><pre>
</pre>
</span><p><strong>SEE ALSO</strong></p>
<span class="SEE_ALSO"><pre>       <a href="#robo441">ib_path_rec_t</a>
</pre>
</span>
<hr />

<h2><a name="robo439">[Functions]<a name="IBA20Base3a20Types2fib5fpath5frec5fset5fhop5fflow5fraw">
IBA Base: Types/ib_path_rec_set_hop_flow_raw</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_functions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_path_rec_set_hop_flow_raw</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Sets the hop limit, flow label, and raw traffic bits of a path record.
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>AL_INLINE void AL_API
<strong>ib_path_rec_set_hop_flow_raw</strong>(
                OUT                     <a href="#robo441">ib_path_rec_t</a>* const            p_rec,
        IN              const   uint8_t                                         hop_limit,
        IN              const   net32_t                                         flow_lbl,
        IN              const   boolean_t                                       raw )
{
        p_rec->hop_flow_raw.val = (cl_ntoh32( flow_lbl ) & 0x000FFFFF) << 8;
        if( raw )
                p_rec->hop_flow_raw.val |= 0x80000000;
        p_rec->hop_flow_raw.val = cl_hton32( p_rec->hop_flow_raw.val );
        p_rec->hop_flow_raw.bytes[3] = hop_limit;
}
</pre>
</span><p><strong>PARAMETERS</strong></p>
<span class="PARAMETERS"><pre>       p_rec
               Pointer to the path record whose hop limit, flow label, and rab
               traffic fields to set.

       hop_limit
               Hop limit to set in the path record.

       flow_lbl
               Flow label, in network byte order, to set in the path record.

       raw
               Boolean flag to indicate whether the path record is for raw traffic.
</pre>
</span><p><strong>SEE ALSO</strong></p>
<span class="SEE_ALSO"><pre>       <a href="#robo441">ib_path_rec_t</a>
</pre>
</span>
<hr />

<h2><a name="robo440">[Functions]<a name="IBA20Base3a20Types2fib5fpath5frec5fsl">
IBA Base: Types/ib_path_rec_sl</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_functions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_path_rec_sl</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Get path service level.
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>AL_INLINE uint8_t AL_API
<strong>ib_path_rec_sl</strong>(
        IN              const   <a href="#robo441">ib_path_rec_t</a>* const            p_rec )
{
        return( (uint8_t)((cl_ntoh16( p_rec->sl )) & 0xF) );
}
</pre>
</span><p><strong>PARAMETERS</strong></p>
<span class="PARAMETERS"><pre>       p_rec
               [in] Pointer to the path record object.

 RETURN VALUES
       Encoded path MTU.
               1: 256
               2: 512
               3: 1024
               4: 2048
               5: 4096
               others: reserved
</pre>
</span><p><strong>NOTES</strong></p>
<span class="NOTES"><pre>
</pre>
</span><p><strong>SEE ALSO</strong></p>
<span class="SEE_ALSO"><pre>       <a href="#robo441">ib_path_rec_t</a>
</pre>
</span>
<hr />

<h2><a name="robo441">[Structures]<a name="IBA20Base3a20Types2fib5fpath5frec5ft">
IBA Base: Types/ib_path_rec_t</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_strutures.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_path_rec_t</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Path records encapsulate the properties of a given
       route between two end-points on a subnet.
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>#include <complib/cl_packon.h>
typedef __declspec(align(8)) struct _ib_path_rec
{
        uint64_t                                resv0;
        <a href="#robo370">ib_gid_t</a>                                dgid;
        <a href="#robo370">ib_gid_t</a>                                sgid;
        <a href="#robo407">ib_net16_t</a>                              dlid;
        <a href="#robo407">ib_net16_t</a>                              slid;
        <a href="#robo355">ib_field32_t</a>                    hop_flow_raw;
        uint8_t                                 tclass;
        uint8_t                                 num_path;
        <a href="#robo407">ib_net16_t</a>                              pkey;
        <a href="#robo407">ib_net16_t</a>                              sl;
        uint8_t                                 mtu;
        uint8_t                                 rate;
        uint8_t                                 pkt_life;
        uint8_t                                 preference;
        uint16_t                                resv1;
        uint32_t                                resv2;

}       PACK_SUFFIX <strong>ib_path_rec_t</strong>;
#include <complib/cl_packoff.h>
</pre>
</span><p><strong>FIELDS</strong></p>
<span class="FIELDS"><pre>       resv0
               Reserved bytes.

       dgid
               GID of destination port.

       sgid
               GID of source port.

       dlid
               LID of destination port.

       slid
               LID of source port.

       hop_flow_raw
               Global routing parameters: hop count, flow label and raw bit.

       tclass
               Another global routing parameter.

       num_path
               In queries, maximum number of paths to return.
               In responses, undefined.

       pkey
               Partition key (P_Key) to use on this path.

       resv1
               Reserved byte.

       sl
               Service level to use on this path.

       mtu
               MTU and MTU selector fields to use on this path

       rate
               Rate and rate selector fields to use on this path.

       pkt_life
               Packet lifetime

       preference
               Indicates the relative merit of this path versus other path
               records returned from the SA.  Lower numbers are better.

       resv1
               Reserved bytes.

       resv2
               Reserved bytes.
</pre>
</span><p><strong>SEE ALSO</strong></p>
<span class="SEE_ALSO"></span>
<hr />

<h2><a name="robo442">[Functions]<a name="IBA20Base3a20Types2fib5fpkey5fget5fbase">
IBA Base: Types/ib_pkey_get_base</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_functions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_pkey_get_base</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Returns the base P_Key value with the membership bit stripped.
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>AL_INLINE <a href="#robo407">ib_net16_t</a> AL_API
<strong>ib_pkey_get_base</strong>(
        IN              const   <a href="#robo407">ib_net16_t</a>                                      pkey )
{
        return( (<a href="#robo407">ib_net16_t</a>)(pkey & <a href="#robo326">IB_PKEY_BASE_MASK</a>) );
}
</pre>
</span><p><strong>PARAMETERS</strong></p>
<span class="PARAMETERS"><pre>       pkey
               [in] P_Key value
</pre>
</span><p><strong>RETURN VALUE</strong></p>
<span class="RETURN_VALUE"><pre>       Returns the base P_Key value with the membership bit stripped.
</pre>
</span><p><strong>NOTES</strong></p>
<span class="NOTES"><pre>
</pre>
</span><p><strong>SEE ALSO</strong></p>
<span class="SEE_ALSO"></span>
<hr />

<h2><a name="robo443">[Functions]<a name="IBA20Base3a20Types2fib5fpkey5fis5ffull5fmember">
IBA Base: Types/ib_pkey_is_full_member</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_functions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_pkey_is_full_member</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Indicitates if the port is a full member of the parition.
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>AL_INLINE boolean_t AL_API
<strong>ib_pkey_is_full_member</strong>(
        IN              const   <a href="#robo407">ib_net16_t</a>                                      pkey )
{
        return( (pkey & <a href="#robo329">IB_PKEY_TYPE_MASK</a>) == <a href="#robo329">IB_PKEY_TYPE_MASK</a> );
}
</pre>
</span><p><strong>PARAMETERS</strong></p>
<span class="PARAMETERS"><pre>       pkey
               [in] P_Key value
</pre>
</span><p><strong>RETURN VALUE</strong></p>
<span class="RETURN_VALUE"><pre>       TRUE if the port is a full member of the partition.
       FALSE otherwise.
</pre>
</span><p><strong>NOTES</strong></p>
<span class="NOTES"><pre>
</pre>
</span><p><strong>SEE ALSO</strong></p>
<span class="SEE_ALSO"><pre> <a href="#robo442">ib_pkey_get_base</a>, <a href="#robo407">ib_net16_t</a>
</pre>
</span>
<hr />

<h2><a name="robo444">[Structures]<a name="IBA20Base3a20Types2fib5fpkey5ftable5finfo5ft">
IBA Base: Types/ib_pkey_table_info_t</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_strutures.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_pkey_table_info_t</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       IBA defined PKey table. (14.2.5.7)
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>#define PKEY_TABLE_MAX_ENTRIES          32

#include <complib/cl_packon.h>
typedef struct _ib_pkey_table_info
{
        <a href="#robo407">ib_net16_t</a>                      pkey[PKEY_TABLE_MAX_ENTRIES];

}       PACK_SUFFIX <strong>ib_pkey_table_info_t</strong>;
#include <complib/cl_packoff.h>
</pre>
</span>
<hr />

<h2><a name="robo445">[Functions]<a name="IBA20Base3a20Types2fib5fport5finfo5fcompute5frate">
IBA Base: Types/ib_port_info_compute_rate</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_functions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_port_info_compute_rate</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Returns the encoded value for the path rate.
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>AL_INLINE uint8_t AL_API
<strong>ib_port_info_compute_rate</strong>(
        IN              const   <a href="#robo462">ib_port_info_t</a>* const           p_pi )
{
        switch(p_pi->link_width_active)
        {
                case IB_LINK_WIDTH_ACTIVE_1X:
                         return IB_PATH_RECORD_RATE_2_5_GBS;

                case IB_LINK_WIDTH_ACTIVE_4X:
                        return IB_PATH_RECORD_RATE_10_GBS;

                case IB_LINK_WIDTH_ACTIVE_12X:
                        return IB_PATH_RECORD_RATE_30_GBS;

                default:
                        return IB_PATH_RECORD_RATE_2_5_GBS;
        }
}
</pre>
</span><p><strong>PARAMETERS</strong></p>
<span class="PARAMETERS"><pre>       p_pi
               [in] Pointer to a PortInfo attribute.

 RETURN VALUES
       Returns the encoded value for the link speed supported.
</pre>
</span><p><strong>NOTES</strong></p>
<span class="NOTES"><pre>
</pre>
</span><p><strong>SEE ALSO</strong></p>
<span class="SEE_ALSO"></span>
<hr />

<h2><a name="robo446">[Functions]<a name="IBA20Base3a20Types2fib5fport5finfo5fget5flink5fspeed5fsup">
IBA Base: Types/ib_port_info_get_link_speed_sup</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_functions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_port_info_get_link_speed_sup</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Returns the encoded value for the link speed supported.
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>AL_INLINE uint8_t AL_API
<strong>ib_port_info_get_link_speed_sup</strong>(
        IN              const   <a href="#robo462">ib_port_info_t</a>* const           p_pi )
{
        return( (uint8_t)((p_pi->state_info1 &
                        IB_PORT_LINK_SPEED_SUPPORTED_MASK) >>
                        IB_PORT_LINK_SPEED_SHIFT) );
}
</pre>
</span><p><strong>PARAMETERS</strong></p>
<span class="PARAMETERS"><pre>       p_pi
               [in] Pointer to a PortInfo attribute.

 RETURN VALUES
       Returns the encoded value for the link speed supported.
</pre>
</span><p><strong>NOTES</strong></p>
<span class="NOTES"><pre>
</pre>
</span><p><strong>SEE ALSO</strong></p>
<span class="SEE_ALSO"></span>
<hr />

<h2><a name="robo447">[Functions]<a name="IBA20Base3a20Types2fib5fport5finfo5fget5flmc">
IBA Base: Types/ib_port_info_get_lmc</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_functions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_port_info_get_lmc</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Returns the LMC value assigned to this port.
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>AL_INLINE uint8_t AL_API
<strong>ib_port_info_get_lmc</strong>(
        IN              const   <a href="#robo462">ib_port_info_t</a>* const           p_pi )
{
        return( (uint8_t)(p_pi->mkey_lmc & IB_PORT_LMC_MASK) );
}
</pre>
</span><p><strong>PARAMETERS</strong></p>
<span class="PARAMETERS"><pre>       p_pi
               [in] Pointer to a PortInfo attribute.

 RETURN VALUES
       Returns the LMC value assigned to this port.
</pre>
</span><p><strong>NOTES</strong></p>
<span class="NOTES"><pre>
</pre>
</span><p><strong>SEE ALSO</strong></p>
<span class="SEE_ALSO"></span>
<hr />

<h2><a name="robo448">[Functions]<a name="IBA20Base3a20Types2fib5fport5finfo5fget5fmpb">
IBA Base: Types/ib_port_info_get_mpb</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_functions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_port_info_get_mpb</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Returns the M_Key protect bits assigned to this port.
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>AL_INLINE uint8_t AL_API
<strong>ib_port_info_get_mpb</strong>(
        IN              const   <a href="#robo462">ib_port_info_t</a>* const           p_pi )
{
        return( (uint8_t)((p_pi->mkey_lmc & IB_PORT_MPB_MASK) >>
                        IB_PORT_MPB_SHIFT) );
}
</pre>
</span><p><strong>PARAMETERS</strong></p>
<span class="PARAMETERS"><pre>       p_ni
               [in] Pointer to a PortInfo attribute.

 RETURN VALUES
       Returns the M_Key protect bits assigned to this port.
</pre>
</span><p><strong>NOTES</strong></p>
<span class="NOTES"><pre>
</pre>
</span><p><strong>SEE ALSO</strong></p>
<span class="SEE_ALSO"></span>
<hr />

<h2><a name="robo449">[Functions]<a name="IBA20Base3a20Types2fib5fport5finfo5fget5fmtu5fcap">
IBA Base: Types/ib_port_info_get_mtu_cap</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_functions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_port_info_get_mtu_cap</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Returns the encoded value for the maximum MTU supported by this port.
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>AL_INLINE uint8_t AL_API
<strong>ib_port_info_get_mtu_cap</strong>(
        IN              const   <a href="#robo462">ib_port_info_t</a>* const           p_pi )
{
        return( (uint8_t)(p_pi->mtu_cap & 0x0F) );
}
</pre>
</span><p><strong>PARAMETERS</strong></p>
<span class="PARAMETERS"><pre>       p_pi
               [in] Pointer to a PortInfo attribute.

 RETURN VALUES
       Returns the LMC value assigned to this port.
</pre>
</span><p><strong>NOTES</strong></p>
<span class="NOTES"><pre>
</pre>
</span><p><strong>SEE ALSO</strong></p>
<span class="SEE_ALSO"></span>
<hr />

<h2><a name="robo450">[Functions]<a name="IBA20Base3a20Types2fib5fport5finfo5fget5fneighbor5fmtu">
IBA Base: Types/ib_port_info_get_neighbor_mtu</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_functions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_port_info_get_neighbor_mtu</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Returns the encoded value for the neighbor MTU at this port.
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>AL_INLINE uint8_t AL_API
<strong>ib_port_info_get_neighbor_mtu</strong>(
        IN const <a href="#robo462">ib_port_info_t</a>* const p_pi )
{
        return( (uint8_t)((p_pi->mtu_smsl & 0xF0) >> 4) );
}
</pre>
</span><p><strong>PARAMETERS</strong></p>
<span class="PARAMETERS"><pre>       p_pi
               [in] Pointer to a PortInfo attribute.

 RETURN VALUES
       Returns the encoded value for the neighbor MTU at this port.
</pre>
</span><p><strong>NOTES</strong></p>
<span class="NOTES"><pre>
</pre>
</span><p><strong>SEE ALSO</strong></p>
<span class="SEE_ALSO"></span>
<hr />

<h2><a name="robo451">[Functions]<a name="IBA20Base3a20Types2fib5fport5finfo5fget5fop5fvls">
IBA Base: Types/ib_port_info_get_op_vls</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_functions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_port_info_get_op_vls</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Gets the operational VLs on a port.
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>AL_INLINE uint8_t AL_API
<strong>ib_port_info_get_op_vls</strong>(
        IN const <a href="#robo462">ib_port_info_t</a>* const p_pi)
{
        return((p_pi->vl_enforce >> 4) & 0x0F);
}
</pre>
</span><p><strong>PARAMETERS</strong></p>
<span class="PARAMETERS"><pre>       p_pi
               [in] Pointer to a PortInfo attribute.

 RETURN VALUES
       OP_VLS field
</pre>
</span><p><strong>NOTES</strong></p>
<span class="NOTES"><pre>
</pre>
</span><p><strong>SEE ALSO</strong></p>
<span class="SEE_ALSO"></span>
<hr />

<h2><a name="robo452">[Functions]<a name="IBA20Base3a20Types2fib5fport5finfo5fget5fport5fstate">
IBA Base: Types/ib_port_info_get_port_state</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_functions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_port_info_get_port_state</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Returns the port state.
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>AL_INLINE uint8_t AL_API
<strong>ib_port_info_get_port_state</strong>(
        IN              const   <a href="#robo462">ib_port_info_t</a>* const           p_pi )
{
        return( (uint8_t)(p_pi->state_info1 & IB_PORT_STATE_MASK) );
}
</pre>
</span><p><strong>PARAMETERS</strong></p>
<span class="PARAMETERS"><pre>       p_pi
               [in] Pointer to a PortInfo attribute.

 RETURN VALUES
       Port state.
</pre>
</span><p><strong>NOTES</strong></p>
<span class="NOTES"><pre>
</pre>
</span><p><strong>SEE ALSO</strong></p>
<span class="SEE_ALSO"></span>
<hr />

<h2><a name="robo453">[Functions]<a name="IBA20Base3a20Types2fib5fport5finfo5fget5fvl5fcap">
IBA Base: Types/ib_port_info_get_vl_cap</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_functions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_port_info_get_vl_cap</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Gets the VL Capability of a port.
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>AL_INLINE uint8_t AL_API
<strong>ib_port_info_get_vl_cap</strong>(
        IN const <a href="#robo462">ib_port_info_t</a>* const p_pi)
{
        return((p_pi->vl_cap >> 4) & 0x0F);
}
</pre>
</span><p><strong>PARAMETERS</strong></p>
<span class="PARAMETERS"><pre>       p_pi
               [in] Pointer to a PortInfo attribute.

 RETURN VALUES
       VL_CAP field
</pre>
</span><p><strong>NOTES</strong></p>
<span class="NOTES"><pre>
</pre>
</span><p><strong>SEE ALSO</strong></p>
<span class="SEE_ALSO"></span>
<hr />

<h2><a name="robo454">[Functions]<a name="IBA20Base3a20Types2fib5fport5finfo5fset5flink5fspeed5fsup">
IBA Base: Types/ib_port_info_set_link_speed_sup</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_functions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_port_info_set_link_speed_sup</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Given an integer of the supported link speed supported.
       Set the appropriate bits in state_info1
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>AL_INLINE void AL_API
<strong>ib_port_info_set_link_speed_sup</strong>(
        IN                              uint8_t const                           speed,
        IN                              <a href="#robo462">ib_port_info_t</a>*                         p_pi )
{
        p_pi->state_info1 =
                ( ~IB_PORT_LINK_SPEED_SUPPORTED_MASK & p_pi->state_info1 ) |
                ( IB_PORT_LINK_SPEED_SUPPORTED_MASK &
                        (speed << IB_PORT_LINK_SPEED_SHIFT) );
}
</pre>
</span><p><strong>PARAMETERS</strong></p>
<span class="PARAMETERS"><pre>       speed
               [in] Supported Speeds Code.

       p_pi
               [in] Pointer to a PortInfo attribute.

 RETURN VALUES
       This function does not return a value.
</pre>
</span><p><strong>NOTES</strong></p>
<span class="NOTES"><pre>
</pre>
</span><p><strong>SEE ALSO</strong></p>
<span class="SEE_ALSO"></span>
<hr />

<h2><a name="robo455">[Functions]<a name="IBA20Base3a20Types2fib5fport5finfo5fset5flmc">
IBA Base: Types/ib_port_info_set_lmc</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_functions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_port_info_set_lmc</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Sets the LMC value in the PortInfo attribute.
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>AL_INLINE void AL_API
<strong>ib_port_info_set_lmc</strong>(
        IN                              <a href="#robo462">ib_port_info_t</a>* const           p_pi,
        IN              const   uint8_t                                         lmc )
{
        CL_ASSERT( lmc <= 0x7 );
        p_pi->mkey_lmc = (uint8_t)((p_pi->mkey_lmc & 0xF8) | lmc);
}
</pre>
</span><p><strong>PARAMETERS</strong></p>
<span class="PARAMETERS"><pre>       p_pi
               [in] Pointer to a PortInfo attribute.

       lmc
               [in] LMC value to set, must be less than 7.

 RETURN VALUES
       None.
</pre>
</span><p><strong>NOTES</strong></p>
<span class="NOTES"><pre>
</pre>
</span><p><strong>SEE ALSO</strong></p>
<span class="SEE_ALSO"></span>
<hr />

<h2><a name="robo456">[Functions]<a name="IBA20Base3a20Types2fib5fport5finfo5fset5fmpb">
IBA Base: Types/ib_port_info_set_mpb</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_functions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_port_info_set_mpb</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Set the M_Key protect bits of this port.
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>AL_INLINE void AL_API
<strong>ib_port_info_set_mpb</strong>(
        IN                              <a href="#robo462">ib_port_info_t</a>*                         p_pi,
        IN                              uint8_t                                         mpb )
{
        p_pi->mkey_lmc =
                ((p_pi->mkey_lmc & ~IB_PORT_MPB_MASK) |
                (mpb << IB_PORT_MPB_SHIFT));
}
</pre>
</span><p><strong>PARAMETERS</strong></p>
<span class="PARAMETERS"><pre>       mpb
               [in] M_Key protect bits
       p_ni
               [in] Pointer to a PortInfo attribute.

 RETURN VALUES
</pre>
</span><p><strong>NOTES</strong></p>
<span class="NOTES"><pre>
</pre>
</span><p><strong>SEE ALSO</strong></p>
<span class="SEE_ALSO"></span>
<hr />

<h2><a name="robo457">[Functions]<a name="IBA20Base3a20Types2fib5fport5finfo5fset5fneighbor5fmtu">
IBA Base: Types/ib_port_info_set_neighbor_mtu</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_functions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_port_info_set_neighbor_mtu</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Sets the Neighbor MTU value in the PortInfo attribute.
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>AL_INLINE void AL_API
<strong>ib_port_info_set_neighbor_mtu</strong>(
        IN                              <a href="#robo462">ib_port_info_t</a>* const           p_pi,
        IN              const   uint8_t                                         mtu )
{
        CL_ASSERT( mtu <= 5 );
        CL_ASSERT( mtu != 0 );
        p_pi->mtu_smsl = (uint8_t)((p_pi->mtu_smsl & 0x0F) | (mtu << 4));
}
</pre>
</span><p><strong>PARAMETERS</strong></p>
<span class="PARAMETERS"><pre>       p_pi
               [in] Pointer to a PortInfo attribute.

       mtu
               [in] Encoded MTU value to set

 RETURN VALUES
       None.
</pre>
</span><p><strong>NOTES</strong></p>
<span class="NOTES"><pre>
</pre>
</span><p><strong>SEE ALSO</strong></p>
<span class="SEE_ALSO"></span>
<hr />

<h2><a name="robo458">[Functions]<a name="IBA20Base3a20Types2fib5fport5finfo5fset5fop5fvls">
IBA Base: Types/ib_port_info_set_op_vls</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_functions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_port_info_set_op_vls</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Sets the operational VLs on a port.
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>AL_INLINE void AL_API
<strong>ib_port_info_set_op_vls</strong>(
        IN                              <a href="#robo462">ib_port_info_t</a>* const           p_pi,
        IN              const   uint8_t                                         op_vls )
{
        p_pi->vl_enforce = (uint8_t)((p_pi->vl_enforce & 0x0F) | (op_vls << 4) );
}
</pre>
</span><p><strong>PARAMETERS</strong></p>
<span class="PARAMETERS"><pre>       p_pi
               [in] Pointer to a PortInfo attribute.

       op_vls
               [in] Encoded operation VLs value.

 RETURN VALUES
       None.
</pre>
</span><p><strong>NOTES</strong></p>
<span class="NOTES"><pre>
</pre>
</span><p><strong>SEE ALSO</strong></p>
<span class="SEE_ALSO"></span>
<hr />

<h2><a name="robo459">[Functions]<a name="IBA20Base3a20Types2fib5fport5finfo5fset5fport5fstate">
IBA Base: Types/ib_port_info_set_port_state</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_functions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_port_info_set_port_state</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Sets the port state.
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>AL_INLINE void AL_API
<strong>ib_port_info_set_port_state</strong>(
        IN                              <a href="#robo462">ib_port_info_t</a>* const           p_pi,
        IN              const   uint8_t                                         port_state )
{
        p_pi->state_info1 = (uint8_t)((p_pi->state_info1 & 0xF0) | port_state );
}
</pre>
</span><p><strong>PARAMETERS</strong></p>
<span class="PARAMETERS"><pre>       p_pi
               [in] Pointer to a PortInfo attribute.

       port_state
               [in] Port state value to set.

 RETURN VALUES
       None.
</pre>
</span><p><strong>NOTES</strong></p>
<span class="NOTES"><pre>
</pre>
</span><p><strong>SEE ALSO</strong></p>
<span class="SEE_ALSO"></span>
<hr />

<h2><a name="robo460">[Functions]<a name="IBA20Base3a20Types2fib5fport5finfo5fset5fstate5fno5fchange">
IBA Base: Types/ib_port_info_set_state_no_change</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_functions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_port_info_set_state_no_change</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Sets the port state fields to the value for "no change".
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>AL_INLINE void AL_API
<strong>ib_port_info_set_state_no_change</strong>(
        IN                              <a href="#robo462">ib_port_info_t</a>* const           p_pi )
{
        <a href="#robo459">ib_port_info_set_port_state</a>( p_pi, 0 );
        p_pi->state_info2 = 0;
}
</pre>
</span><p><strong>PARAMETERS</strong></p>
<span class="PARAMETERS"><pre>       p_pi
               [in] Pointer to a PortInfo attribute.

 RETURN VALUES
       None.
</pre>
</span><p><strong>NOTES</strong></p>
<span class="NOTES"><pre>
</pre>
</span><p><strong>SEE ALSO</strong></p>
<span class="SEE_ALSO"></span>
<hr />

<h2><a name="robo461">[Functions]<a name="IBA20Base3a20Types2fib5fport5finfo5fset5ftimeout">
IBA Base: Types/ib_port_info_set_timeout</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_functions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_port_info_set_timeout</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Sets the encoded subnet timeout value in the PortInfo attribute.
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>AL_INLINE void AL_API
<strong>ib_port_info_set_timeout</strong>(
        IN                              <a href="#robo462">ib_port_info_t</a>* const           p_pi,
        IN              const   uint8_t                                         timeout )
{
        CL_ASSERT( timeout <= 0x1F );
        p_pi->subnet_timeout = (uint8_t)(timeout & 0x1F);
}
</pre>
</span><p><strong>PARAMETERS</strong></p>
<span class="PARAMETERS"><pre>       p_pi
               [in] Pointer to a PortInfo attribute.

       timeout
               [in] Encoded timeout value to set

 RETURN VALUES
       None.
</pre>
</span><p><strong>NOTES</strong></p>
<span class="NOTES"><pre>
</pre>
</span><p><strong>SEE ALSO</strong></p>
<span class="SEE_ALSO"></span>
<hr />

<h2><a name="robo462">[Structures]<a name="IBA20Base3a20Types2fib5fport5finfo5ft">
IBA Base: Types/ib_port_info_t</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_strutures.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_port_info_t</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       IBA defined PortInfo. (14.2.5.6)
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>#include <complib/cl_packon.h>
typedef struct _ib_port_info
{
        <a href="#robo409">ib_net64_t</a>                      m_key;
        <a href="#robo409">ib_net64_t</a>                      subnet_prefix;
        <a href="#robo407">ib_net16_t</a>                      base_lid;
        <a href="#robo407">ib_net16_t</a>                      master_sm_base_lid;
        <a href="#robo408">ib_net32_t</a>                      capability_mask;
        <a href="#robo407">ib_net16_t</a>                      diag_code;
        <a href="#robo407">ib_net16_t</a>                      m_key_lease_period;
        uint8_t                         local_port_num;
        uint8_t                         link_width_enabled;
        uint8_t                         link_width_supported;
        uint8_t                         link_width_active;
        uint8_t                         state_info1; // LinkSpeedSupported and PortState
        uint8_t                         state_info2; // PortPhysState and LinkDownDefaultState
        uint8_t                         mkey_lmc;
        uint8_t                         link_speed;      // LinkSpeedEnabled and LinkSpeedActive
        uint8_t                         mtu_smsl;
        uint8_t                         vl_cap;          // VlCap and InitType
        uint8_t                         vl_high_limit;
        uint8_t                         vl_arb_high_cap;
        uint8_t                         vl_arb_low_cap;
        uint8_t                         mtu_cap;
        uint8_t                         vl_stall_life;
        uint8_t                         vl_enforce;
        <a href="#robo407">ib_net16_t</a>                      m_key_violations;
        <a href="#robo407">ib_net16_t</a>                      p_key_violations;
        <a href="#robo407">ib_net16_t</a>                      q_key_violations;
        uint8_t                         guid_cap;
        uint8_t                         subnet_timeout;
        uint8_t                         resp_time_value;
        uint8_t                         error_threshold;

}       PACK_SUFFIX <strong>ib_port_info_t</strong>;
#include <complib/cl_packoff.h>
</pre>
</span>
<hr />

<h2><a name="robo463">[Functions]<a name="IBA20Base3a20Types2fib5frmpp5fis5fflag5fset">
IBA Base: Types/ib_rmpp_is_flag_set</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_functions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_rmpp_is_flag_set</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Returns TRUE if the MAD has the given RMPP flag set.
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>AL_INLINE boolean_t AL_API
<strong>ib_rmpp_is_flag_set</strong>(
        IN              const   <a href="#robo464">ib_rmpp_mad_t</a>* const            p_rmpp_mad,
        IN              const   uint8_t                                         flag )
{
        CL_ASSERT( p_rmpp_mad );
        return( (p_rmpp_mad->rmpp_flags & flag) == flag );
}
</pre>
</span><p><strong>PARAMETERS</strong></p>
<span class="PARAMETERS"><pre>       <a href="#robo464">ib_rmpp_mad_t</a>
               [in] Pointer to a MAD with an RMPP header.

       flag
               [in] The RMPP flag being examined.

 RETURN VALUES
       Returns TRUE if the MAD has the given RMPP flag set.
</pre>
</span><p><strong>NOTES</strong></p>
<span class="NOTES"><pre>
</pre>
</span><p><strong>SEE ALSO</strong></p>
<span class="SEE_ALSO"><pre>       <a href="#robo396">ib_mad_t</a>, <a href="#robo464">ib_rmpp_mad_t</a>
</pre>
</span>
<hr />

<h2><a name="robo464">[Structures]<a name="IBA20Base3a20Types2fib5frmpp5fmad5ft">
IBA Base: Types/ib_rmpp_mad_t</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_strutures.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_rmpp_mad_t</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       IBA defined MAD RMPP header (13.6.2.1)
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>#include <complib/cl_packon.h>
typedef struct _ib_rmpp_mad
{
        <a href="#robo396">ib_mad_t</a>                                common_hdr;

        uint8_t                                 rmpp_version;
        uint8_t                                 rmpp_type;
        uint8_t                                 rmpp_flags;
        uint8_t                                 rmpp_status;

        <a href="#robo408">ib_net32_t</a>                              seg_num;
        <a href="#robo408">ib_net32_t</a>                              paylen_newwin;

}       PACK_SUFFIX <strong>ib_rmpp_mad_t</strong>;
#include <complib/cl_packoff.h>
</pre>
</span><p><strong>SEE ALSO</strong></p>
<span class="SEE_ALSO"><pre>       <a href="#robo396">ib_mad_t</a>
</pre>
</span>
<hr />

<h2><a name="robo465">[Functions]<a name="IBA20Base3a20Types2fib5fsa5fmad5fget5fpayload5fptr">
IBA Base: Types/ib_sa_mad_get_payload_ptr</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_functions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_sa_mad_get_payload_ptr</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Gets a pointer to the SA MAD's payload area.
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>AL_INLINE void* AL_API
<strong>ib_sa_mad_get_payload_ptr</strong>(
        IN              const   <a href="#robo466">ib_sa_mad_t</a>* const                      p_sa_mad )
{
        return( (void*)p_sa_mad->data );
}
</pre>
</span><p><strong>PARAMETERS</strong></p>
<span class="PARAMETERS"><pre>       p_smp
               [in] Pointer to the SA MAD packet.

 RETURN VALUES
       Pointer to SA MAD payload area.
</pre>
</span><p><strong>NOTES</strong></p>
<span class="NOTES"><pre>
</pre>
</span><p><strong>SEE ALSO</strong></p>
<span class="SEE_ALSO"><pre>       <a href="#robo396">ib_mad_t</a>
</pre>
</span>
<hr />

<h2><a name="robo466">[Structures]<a name="IBA20Base3a20Types2fib5fsa5fmad5ft">
IBA Base: Types/ib_sa_mad_t</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_strutures.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_sa_mad_t</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       IBA defined SA MAD format. (15.2.1)
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>#define IB_SA_DATA_SIZE 200

#include <complib/cl_packon.h>
typedef struct _ib_sa_mad
{
        uint8_t                                 base_ver;
        uint8_t                                 mgmt_class;
        uint8_t                                 class_ver;
        uint8_t                                 method;
        <a href="#robo407">ib_net16_t</a>                              status;
        <a href="#robo407">ib_net16_t</a>                              resv;
        <a href="#robo409">ib_net64_t</a>                              trans_id;
        <a href="#robo407">ib_net16_t</a>                              attr_id;
        <a href="#robo407">ib_net16_t</a>                              resv1;
        <a href="#robo408">ib_net32_t</a>                              attr_mod;

        uint8_t                                 rmpp_version;
        uint8_t                                 rmpp_type;
        uint8_t                                 rmpp_flags;
        uint8_t                                 rmpp_status;

        <a href="#robo408">ib_net32_t</a>                              seg_num;
        <a href="#robo408">ib_net32_t</a>                              paylen_newwin;

        <a href="#robo409">ib_net64_t</a>                              sm_key;

        <a href="#robo407">ib_net16_t</a>                              attr_offset;
        <a href="#robo407">ib_net16_t</a>                              resv3;

        <a href="#robo409">ib_net64_t</a>                              comp_mask;

        uint8_t                                 data[IB_SA_DATA_SIZE];
}       PACK_SUFFIX <strong>ib_sa_mad_t</strong>;
#include <complib/cl_packoff.h>
</pre>
</span>
<hr />

<h2><a name="robo467">[Functions]<a name="IBA20Base3a20Types2fib5fslvl5ftable5fget5fvl">
IBA Base: Types/ib_slvl_table_get_vl</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_functions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_slvl_table_get_vl</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Retrieves the VL for a given SL from an SL to VL mapping table.
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>AL_INLINE uint8_t AL_API
<strong>ib_slvl_table_get_vl</strong>(
        IN              const   <a href="#robo470">ib_slvl_table_t</a>* const          p_slvl_tbl,
        IN              const   uint8_t                                         sl )
{
        uint8_t vl;

        /* There are two VL's per byte. */
        vl = p_slvl_tbl->vl_table[sl/2];
        /* If odd, shift down 4 bits. */
        if( sl % 2 )
                vl >>= 4;

        /* Mask off upper bits and return. */
        return vl & 0x0F;
}
</pre>
</span><p><strong>PARAMETERS</strong></p>
<span class="PARAMETERS"><pre>       p_slvl_tbl
               [in] Pointer to the SL to VL mapping table from which to return the VL.

       sl
               [in] SL in the table for which to return the VL.

 RETURN VALUES
       Returns the VL value for the specified SL in the provided table.
</pre>
</span><p><strong>SEE ALSO</strong></p>
<span class="SEE_ALSO"><pre>       <a href="#robo470">ib_slvl_table_t</a>, <a href="#robo469">ib_slvl_table_set_vl</a>
</pre>
</span>
<hr />

<h2><a name="robo468">[Structures]<a name="IBA20Base3a20Types2fib5fslvl5ftable5frecord5ft">
IBA Base: Types/ib_slvl_table_record_t</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_strutures.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_slvl_table_record_t</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       IBA defined Sl to VL Mapping Table Record for SA Query. (15.2.5.4)
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>#include <complib/cl_packon.h>
typedef struct _ib_slvl_table_record
{
        <a href="#robo407">ib_net16_t</a>              lid; // for CA: lid of port, for switch lid of port 0
        uint8_t                 in_port_num;    // reserved for CA's
        uint8_t                 out_port_num;   // reserved for CA's
        uint32_t                resv;
        <a href="#robo470">ib_slvl_table_t</a> slvl_tbl;

}       PACK_SUFFIX <strong>ib_slvl_table_record_t</strong>;
#include <complib/cl_packoff.h>
</pre>
</span>
<hr />

<h2><a name="robo469">[Functions]<a name="IBA20Base3a20Types2fib5fslvl5ftable5fset5fvl">
IBA Base: Types/ib_slvl_table_set_vl</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_functions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_slvl_table_set_vl</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Sets the VL for a given SL in an SL to VL mapping table.
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>AL_INLINE void AL_API
<strong>ib_slvl_table_set_vl</strong>(
        IN      OUT                     <a href="#robo470">ib_slvl_table_t</a>* const          p_slvl_tbl,
        IN              const   uint8_t                                         sl,
        IN              const   uint8_t                                         vl )
{
        uint8_t entry;

        /* Get the current value for the byte in which the VL is stored. */
        entry = p_slvl_tbl->vl_table[sl/2];

        /* Clear the appropriate bits and set the new VL value. */
        if( sl % 2 )
        {
                entry &= 0x0F;
                entry |= ((vl & 0x0F) << 4);
        }
        else
        {
                entry &= 0xF0;
                entry |= (vl & 0x0F);
        }
        /* Store the updated entry back into the table. */
        p_slvl_tbl->vl_table[sl/2] = entry;
}
</pre>
</span><p><strong>PARAMETERS</strong></p>
<span class="PARAMETERS"><pre>       slvl_tbl
               [in/out] Pointer to the SL to VL mapping table in which to store the VL.

       sl
               [in] SL in the table for which to store the VL.

       vl
               [in] VL to store at the specifed SL.

 RETURN VALUES
       This function does not return a value.
</pre>
</span><p><strong>SEE ALSO</strong></p>
<span class="SEE_ALSO"><pre>       <a href="#robo470">ib_slvl_table_t</a>, <a href="#robo467">ib_slvl_table_get_vl</a>
</pre>
</span>
<hr />

<h2><a name="robo470">[Structures]<a name="IBA20Base3a20Types2fib5fslvl5ftable5ft">
IBA Base: Types/ib_slvl_table_t</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_strutures.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_slvl_table_t</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       IBA defined SL2VL Mapping Table Attribute. (14.2.5.8)
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>#include <complib/cl_packon.h>
typedef struct _ib_slvl_table
{
        uint8_t         vl_table[IB_MAX_NUM_VLS/2];

}       PACK_SUFFIX <strong>ib_slvl_table_t</strong>;
#include <complib/cl_packoff.h>
</pre>
</span>
<hr />

<h2><a name="robo471">[Structures]<a name="IBA20Base3a20Types2fib5fsm5finfo5ft">
IBA Base: Types/ib_sm_info_t</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_strutures.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_sm_info_t</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       SMInfo structure (14.2.5.13).
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>#include <complib/cl_packon.h>
typedef struct _ib_sm_info
{
        <a href="#robo409">ib_net64_t</a>                      guid;
        <a href="#robo409">ib_net64_t</a>                      sm_key;
        <a href="#robo408">ib_net32_t</a>                      act_count;
        uint8_t                         pri_state;

}       PACK_SUFFIX <strong>ib_sm_info_t</strong>;
#include <complib/cl_packoff.h>
</pre>
</span><p><strong>FIELDS</strong></p>
<span class="FIELDS"><pre>       guid
               Port GUID for this SM.

       sm_key
               SM_Key of this SM.

       act_count
               Activity counter used as a heartbeat.

       pri_state
               Priority and State information
</pre>
</span><p><strong>SEE ALSO</strong></p>
<span class="SEE_ALSO"></span>
<hr />

<h2><a name="robo472">[Functions]<a name="IBA20Base3a20Types2fib5fsminfo5fget5fpriority">
IBA Base: Types/ib_sminfo_get_priority</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_functions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_sminfo_get_priority</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Returns the priority value.
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>AL_INLINE uint8_t AL_API
<strong>ib_sminfo_get_priority</strong>(
        IN              const   <a href="#robo471">ib_sm_info_t</a>* const                     p_smi )
{
        return( (uint8_t)((p_smi->pri_state & 0xF0)>>4) );
}
</pre>
</span><p><strong>PARAMETERS</strong></p>
<span class="PARAMETERS"><pre>       p_smi
               [in] Pointer to the SMInfo Attribute.

 RETURN VALUES
       Returns the priority value.
</pre>
</span><p><strong>NOTES</strong></p>
<span class="NOTES"><pre>
</pre>
</span><p><strong>SEE ALSO</strong></p>
<span class="SEE_ALSO"></span>
<hr />

<h2><a name="robo473">[Functions]<a name="IBA20Base3a20Types2fib5fsminfo5fget5fstate">
IBA Base: Types/ib_sminfo_get_state</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_functions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_sminfo_get_state</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Returns the state value.
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>AL_INLINE uint8_t AL_API
<strong>ib_sminfo_get_state</strong>(
        IN              const   <a href="#robo471">ib_sm_info_t</a>* const                     p_smi )
{
        return( (uint8_t)(p_smi->pri_state & 0x0F) );
}
</pre>
</span><p><strong>PARAMETERS</strong></p>
<span class="PARAMETERS"><pre>       p_smi
               [in] Pointer to the SMInfo Attribute.

 RETURN VALUES
       Returns the state value.
</pre>
</span><p><strong>NOTES</strong></p>
<span class="NOTES"><pre>
</pre>
</span><p><strong>SEE ALSO</strong></p>
<span class="SEE_ALSO"></span>
<hr />

<h2><a name="robo474">[Functions]<a name="IBA20Base3a20Types2fib5fsmp5fget5fpayload5fptr">
IBA Base: Types/ib_smp_get_payload_ptr</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_functions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_smp_get_payload_ptr</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Gets a pointer to the SMP payload area.
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>AL_INLINE void* AL_API
<strong>ib_smp_get_payload_ptr</strong>(
        IN              const   <a href="#robo479">ib_smp_t</a>* const                         p_smp )
{
        return( (void*)p_smp->data );
}
</pre>
</span><p><strong>PARAMETERS</strong></p>
<span class="PARAMETERS"><pre>       p_smp
               [in] Pointer to the SMP packet.

 RETURN VALUES
       Pointer to SMP payload area.
</pre>
</span><p><strong>NOTES</strong></p>
<span class="NOTES"><pre>
</pre>
</span><p><strong>SEE ALSO</strong></p>
<span class="SEE_ALSO"><pre>       <a href="#robo396">ib_mad_t</a>
</pre>
</span>
<hr />

<h2><a name="robo475">[Functions]<a name="IBA20Base3a20Types2fib5fsmp5fget5fstatus">
IBA Base: Types/ib_smp_get_status</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_functions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_smp_get_status</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Returns the SMP status value in network order.
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>AL_INLINE <a href="#robo407">ib_net16_t</a> AL_API
<strong>ib_smp_get_status</strong>(
        IN              const   <a href="#robo479">ib_smp_t</a>* const                         p_smp )
{
        return( (<a href="#robo407">ib_net16_t</a>)(p_smp->status & <a href="#robo342">IB_SMP_STATUS_MASK</a>) );
}
</pre>
</span><p><strong>PARAMETERS</strong></p>
<span class="PARAMETERS"><pre>       p_smp
               [in] Pointer to the SMP packet.

 RETURN VALUES
       Returns the SMP status value in network order.
</pre>
</span><p><strong>NOTES</strong></p>
<span class="NOTES"><pre>
</pre>
</span><p><strong>SEE ALSO</strong></p>
<span class="SEE_ALSO"><pre>       <a href="#robo479">ib_smp_t</a>
</pre>
</span>
<hr />

<h2><a name="robo476">[Functions]<a name="IBA20Base3a20Types2fib5fsmp5finit5fnew">
IBA Base: Types/ib_smp_init_new</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_functions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_smp_init_new</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Initializes a MAD common header.
</pre>
</span><p><strong>TODO</strong></p>
<span class="TODO"><pre>       This is too big for inlining, but leave it here for now
       since there is not yet another convient spot.
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>AL_INLINE void AL_API
<strong>ib_smp_init_new</strong>(
        IN                              <a href="#robo479">ib_smp_t</a>* const                         p_smp,
        IN              const   uint8_t                                         method,
        IN              const   <a href="#robo409">ib_net64_t</a>                                      trans_id,
        IN              const   <a href="#robo407">ib_net16_t</a>                                      attr_id,
        IN              const   <a href="#robo408">ib_net32_t</a>                                      attr_mod,
        IN              const   uint8_t                                         hop_count,
        IN              const   <a href="#robo409">ib_net64_t</a>                                      m_key,
        IN              const   uint8_t*                                        path_out,
        IN              const   <a href="#robo407">ib_net16_t</a>                                      dr_slid,
        IN              const   <a href="#robo407">ib_net16_t</a>                                      dr_dlid )
{
        CL_ASSERT( p_smp );
        CL_ASSERT( hop_count < <a href="#robo343">IB_SUBNET_PATH_HOPS_MAX</a> );
        p_smp->base_ver = 1;
        p_smp->mgmt_class = <a href="#robo308">IB_MCLASS_SUBN_DIR</a>;
        p_smp->class_ver = 1;
        p_smp->method = method;
        p_smp->status = 0;
        p_smp->hop_ptr = 0;
        p_smp->hop_count = hop_count;
        p_smp->trans_id = trans_id;
        p_smp->attr_id = attr_id;
        p_smp->resv = 0;
        p_smp->attr_mod = attr_mod;
        p_smp->m_key = m_key;
        p_smp->dr_slid = dr_slid;
        p_smp->dr_dlid = dr_dlid;

        cl_memclr( p_smp->resv1,
                        sizeof(p_smp->resv1) +
                        sizeof(p_smp->data) +
                        sizeof(p_smp->initial_path) +
                        sizeof(p_smp->return_path) );

        /* copy the path */
        cl_memcpy( &p_smp->initial_path, path_out,
                        sizeof( p_smp->initial_path ) );
}
</pre>
</span><p><strong>PARAMETERS</strong></p>
<span class="PARAMETERS"><pre>       p_smp
               [in] Pointer to the SMP packet.

       method
               [in] Method to perform, including 'R' bit.

       trans_Id
               [in] Transaction ID.

       attr_id
               [in] Attribute ID.

       attr_mod
               [in] Attribute modifier.

       hop_count
               [in] Number of hops in the path.

       m_key
               [in] Management key for this SMP.

       path_out
               [in] Port array for outbound path.


 RETURN VALUES
       None.
</pre>
</span><p><strong>NOTES</strong></p>
<span class="NOTES"><pre>       Payload area is initialized to zero.
</pre>
</span><p><strong>SEE ALSO</strong></p>
<span class="SEE_ALSO"><pre>       <a href="#robo396">ib_mad_t</a>
</pre>
</span>
<hr />

<h2><a name="robo477">[Functions]<a name="IBA20Base3a20Types2fib5fsmp5fis5fd">
IBA Base: Types/ib_smp_is_d</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_functions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_smp_is_d</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Returns TRUE if the SMP 'D' (direction) bit is set.
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>AL_INLINE boolean_t AL_API
<strong>ib_smp_is_d</strong>(
        IN              const   <a href="#robo479">ib_smp_t</a>* const                         p_smp )
{
        return( (p_smp->status & <a href="#robo341">IB_SMP_DIRECTION</a>) == <a href="#robo341">IB_SMP_DIRECTION</a> );
}
</pre>
</span><p><strong>PARAMETERS</strong></p>
<span class="PARAMETERS"><pre>       p_smp
               [in] Pointer to the SMP packet.

 RETURN VALUES
       Returns TRUE if the SMP 'D' (direction) bit is set.
</pre>
</span><p><strong>NOTES</strong></p>
<span class="NOTES"><pre>
</pre>
</span><p><strong>SEE ALSO</strong></p>
<span class="SEE_ALSO"><pre>       <a href="#robo479">ib_smp_t</a>
</pre>
</span>
<hr />

<h2><a name="robo478">[Functions]<a name="IBA20Base3a20Types2fib5fsmp5fis5fresponse">
IBA Base: Types/ib_smp_is_response</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_functions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_smp_is_response</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Returns TRUE if the SMP is a response MAD, FALSE otherwise.
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>AL_INLINE boolean_t AL_API
<strong>ib_smp_is_response</strong>(
        IN              const   <a href="#robo479">ib_smp_t</a>* const                         p_smp )
{
        return( <a href="#robo395">ib_mad_is_response</a>( (const <a href="#robo396">ib_mad_t</a>*)p_smp ) );
}
</pre>
</span><p><strong>PARAMETERS</strong></p>
<span class="PARAMETERS"><pre>       p_smp
               [in] Pointer to the SMP packet.

 RETURN VALUES
       Returns TRUE if the SMP is a response MAD, FALSE otherwise.
</pre>
</span><p><strong>NOTES</strong></p>
<span class="NOTES"><pre>
</pre>
</span><p><strong>SEE ALSO</strong></p>
<span class="SEE_ALSO"><pre>       <a href="#robo479">ib_smp_t</a>
</pre>
</span>
<hr />

<h2><a name="robo479">[Structures]<a name="IBA20Base3a20Types2fib5fsmp5ft">
IBA Base: Types/ib_smp_t</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_strutures.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_smp_t</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       IBA defined SMP. (14.2.1.2)
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>#define IB_SMP_DATA_SIZE 64
#include <complib/cl_packon.h>
typedef struct _ib_smp
{
        uint8_t                                 base_ver;
        uint8_t                                 mgmt_class;
        uint8_t                                 class_ver;
        uint8_t                                 method;
        <a href="#robo407">ib_net16_t</a>                              status;
        uint8_t                                 hop_ptr;
        uint8_t                                 hop_count;
        <a href="#robo409">ib_net64_t</a>                              trans_id;
        <a href="#robo407">ib_net16_t</a>                              attr_id;
        <a href="#robo407">ib_net16_t</a>                              resv;
        <a href="#robo408">ib_net32_t</a>                              attr_mod;
        <a href="#robo409">ib_net64_t</a>                              m_key;
        <a href="#robo407">ib_net16_t</a>                              dr_slid;
        <a href="#robo407">ib_net16_t</a>                              dr_dlid;
        uint32_t                                resv1[7];
        uint8_t                                 data[IB_SMP_DATA_SIZE];
        uint8_t                                 initial_path[<a href="#robo343">IB_SUBNET_PATH_HOPS_MAX</a>];
        uint8_t                                 return_path[<a href="#robo343">IB_SUBNET_PATH_HOPS_MAX</a>];

}       PACK_SUFFIX <strong>ib_smp_t</strong>;
#include <complib/cl_packoff.h>
</pre>
</span><p><strong>FIELDS</strong></p>
<span class="FIELDS"><pre>       base_ver
               MAD base format.

       mgmt_class
               Class of operation.

       class_ver
               Version of MAD class-specific format.

       method
               Method to perform, including 'R' bit.

       status
               Status of operation.

       hop_ptr
               Hop pointer for directed route MADs.

       hop_count
               Hop count for directed route MADs.

       trans_Id
               Transaction ID.

       attr_id
               Attribute ID.

       resv
               Reserved field.

       attr_mod
               Attribute modifier.

       m_key
               Management key value.

       dr_slid
               Directed route source LID.

       dr_dlid
               Directed route destination LID.

       resv0
               Reserved for 64 byte alignment.

       data
               MAD data payload.

       initial_path
               Outbound port list.

       return_path
               Inbound port list.
</pre>
</span><p><strong>SEE ALSO</strong></p>
<span class="SEE_ALSO"></span>
<hr />

<h2><a name="robo480">[Structures]<a name="IBA20Base3a20Types2fib5fsvc5fentries5ft">
IBA Base: Types/ib_svc_entries_t</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_strutures.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_svc_entries_t</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       IBA defined IO Controller service entry array (16.3.3.5)
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>#include <complib/cl_packon.h>
typedef struct _ib_svc_entries
{
#define SVC_ENTRY_COUNT                         4
        <a href="#robo481">ib_svc_entry_t</a>                  service_entry[SVC_ENTRY_COUNT];

}       PACK_SUFFIX <strong>ib_svc_entries_t</strong>;
#include <complib/cl_packoff.h>
</pre>
</span><p><strong>FIELDS</strong></p>
<span class="FIELDS"><pre>       service_entry
               An array of IO controller service entries.
</pre>
</span><p><strong>SEE ALSO</strong></p>
<span class="SEE_ALSO"><pre> <a href="#robo354">ib_dm_mad_t</a>, <a href="#robo481">ib_svc_entry_t</a>
</pre>
</span>
<hr />

<h2><a name="robo481">[Structures]<a name="IBA20Base3a20Types2fib5fsvc5fentry5ft">
IBA Base: Types/ib_svc_entry_t</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_strutures.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_svc_entry_t</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       IBA defined IO Controller service entry structure (16.3.3.5)
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>#include <complib/cl_packon.h>
typedef struct _ib_svc_entry
{
#define MAX_SVC_ENTRY_NAME_LEN          40
        char                                    name[MAX_SVC_ENTRY_NAME_LEN];

        <a href="#robo409">ib_net64_t</a>                              id;

}       PACK_SUFFIX <strong>ib_svc_entry_t</strong>;
#include <complib/cl_packoff.h>
</pre>
</span><p><strong>FIELDS</strong></p>
<span class="FIELDS"><pre>       name
               UTF-8 encoded, null-terminated name of the service.

       id
               An identifier of the associated Service.
</pre>
</span><p><strong>SEE ALSO</strong></p>
<span class="SEE_ALSO"><pre> <a href="#robo480">ib_svc_entries_t</a>
</pre>
</span>
<hr />

<h2><a name="robo482">[Functions]<a name="IBA20Base3a20Types2fib5fswitch5finfo5fclear5fstate5fchange">
IBA Base: Types/ib_switch_info_clear_state_change</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_functions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_switch_info_clear_state_change</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Clears the switch's state change bit.
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>AL_INLINE void AL_API
<strong>ib_switch_info_clear_state_change</strong>(
        IN                              <a href="#robo484">ib_switch_info_t</a>* const         p_si )
{
        p_si->life_state = (uint8_t)(p_si->life_state & 0xFB);
}
</pre>
</span><p><strong>PARAMETERS</strong></p>
<span class="PARAMETERS"><pre>       p_ni
               [in] Pointer to a PortInfo attribute.

 RETURN VALUES
       Returns the LMC value assigned to this port.
</pre>
</span><p><strong>NOTES</strong></p>
<span class="NOTES"><pre>
</pre>
</span><p><strong>SEE ALSO</strong></p>
<span class="SEE_ALSO"></span>
<hr />

<h2><a name="robo483">[Functions]<a name="IBA20Base3a20Types2fib5fswitch5finfo5fget5fstate5fchange">
IBA Base: Types/ib_switch_info_get_state_change</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_functions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_switch_info_get_state_change</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Returns the value of the state change flag.
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>AL_INLINE boolean_t AL_API
<strong>ib_switch_info_get_state_change</strong>(
        IN              const   <a href="#robo484">ib_switch_info_t</a>* const         p_si )
{
        return( (p_si->life_state & IB_SWITCH_PSC) == IB_SWITCH_PSC );
}
</pre>
</span><p><strong>PARAMETERS</strong></p>
<span class="PARAMETERS"><pre>       p_si
               [in] Pointer to a SwitchInfo attribute.

 RETURN VALUES
       Returns the value of the state change flag.
</pre>
</span><p><strong>NOTES</strong></p>
<span class="NOTES"><pre>
</pre>
</span><p><strong>SEE ALSO</strong></p>
<span class="SEE_ALSO"></span>
<hr />

<h2><a name="robo484">[Structures]<a name="IBA20Base3a20Types2fib5fswitch5finfo5ft">
IBA Base: Types/ib_switch_info_t</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_strutures.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_switch_info_t</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       IBA defined SwitchInfo. (14.2.5.4)
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>#include <complib/cl_packon.h>
typedef struct _ib_switch_info
{
        <a href="#robo407">ib_net16_t</a>                      lin_cap;
        <a href="#robo407">ib_net16_t</a>                      rand_cap;
        <a href="#robo407">ib_net16_t</a>                      mcast_cap;
        <a href="#robo407">ib_net16_t</a>                      lin_top;
        uint8_t                         def_port;
        uint8_t                         def_mcast_pri_port;
        uint8_t                         def_mcast_not_port;
        uint8_t                         life_state;
        <a href="#robo407">ib_net16_t</a>                      lids_per_port;
        <a href="#robo407">ib_net16_t</a>                      enforce_cap;
        uint8_t                         flags;

}       PACK_SUFFIX <strong>ib_switch_info_t</strong>;
#include <complib/cl_packoff.h>
</pre>
</span>
<hr />

<h2><a name="robo485">[Functions]<a name="IBA20Base3a20Types2fib5fvl5farb5felement5fget5fvl">
IBA Base: Types/ib_vl_arb_element_get_vl</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_functions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_vl_arb_element_get_vl</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Retrieves the VL from a VL arbitration table element.
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>AL_INLINE uint8_t AL_API
<strong>ib_vl_arb_element_get_vl</strong>(
        IN              const   <a href="#robo487">ib_vl_arb_element_t</a>                     vl_arb_element )
{
        return (vl_arb_element.res_vl >> 4);
}
</pre>
</span><p><strong>PARAMETERS</strong></p>
<span class="PARAMETERS"><pre>       vl_arb_element
               [in] VL arbitration table element from which to return the VL.

 RETURN VALUES
       Returns the VL value for the specified VL arbitration table element.
</pre>
</span><p><strong>SEE ALSO</strong></p>
<span class="SEE_ALSO"><pre>       vl_arb_element, <a href="#robo486">ib_vl_arb_element_set_vl</a>
</pre>
</span>
<hr />

<h2><a name="robo486">[Functions]<a name="IBA20Base3a20Types2fib5fvl5farb5felement5fset5fvl">
IBA Base: Types/ib_vl_arb_element_set_vl</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_functions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_vl_arb_element_set_vl</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Retrieves the VL from a VL arbitration table element.
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>AL_INLINE void AL_API
<strong>ib_vl_arb_element_set_vl</strong>(
        IN      OUT                     <a href="#robo487">ib_vl_arb_element_t</a>* const      p_vl_arb_element,
        IN              const   uint8_t                                         vl )
{
        p_vl_arb_element->res_vl = vl << 4;
}
</pre>
</span><p><strong>PARAMETERS</strong></p>
<span class="PARAMETERS"><pre>       vl_arb_element
               [in/out] VL arbitration table element in which to store the VL.

       vl
               [in] VL to store in the specified element.

 RETURN VALUES
       This function does not return a value.
</pre>
</span><p><strong>SEE ALSO</strong></p>
<span class="SEE_ALSO"><pre>       vl_arb_element, <a href="#robo485">ib_vl_arb_element_get_vl</a>
</pre>
</span>
<hr />

<h2><a name="robo487">[Structures]<a name="IBA20Base3a20Types2fib5fvl5farb5felement5ft">
IBA Base: Types/ib_vl_arb_element_t</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_strutures.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_vl_arb_element_t</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       IBA defined VL Arbitration Table Element. (14.2.5.9)
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>#include <complib/cl_packon.h>
typedef struct _ib_vl_arb_element
{
        uint8_t res_vl;
        uint8_t weight;

}       PACK_SUFFIX <strong>ib_vl_arb_element_t</strong>;
#include <complib/cl_packoff.h>
</pre>
</span>
<hr />

<h2><a name="robo488">[Structures]<a name="IBA20Base3a20Types2fib5fvl5farb5ftable5frecord5ft">
IBA Base: Types/ib_vl_arb_table_record_t</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_strutures.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_vl_arb_table_record_t</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       IBA defined VL Arbitration Table Record for SA Query. (15.2.5.9)
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>#include <complib/cl_packon.h>
typedef struct _ib_vl_arb_table_record
{
        <a href="#robo407">ib_net16_t</a>                      lid; // for CA: lid of port, for switch lid of port 0
        uint8_t                         port_num;
        uint8_t                         block_num;
        uint32_t                        reserved;
        <a href="#robo489">ib_vl_arb_table_t</a>       vl_arb_tbl;

}       PACK_SUFFIX <strong>ib_vl_arb_table_record_t</strong>;
#include <complib/cl_packoff.h>
</pre>
</span>
<hr />

<h2><a name="robo489">[Structures]<a name="IBA20Base3a20Types2fib5fvl5farb5ftable5ft">
IBA Base: Types/ib_vl_arb_table_t</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_strutures.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_vl_arb_table_t</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       IBA defined VL Arbitration Table. (14.2.5.9)
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>#include <complib/cl_packon.h>
typedef struct _ib_vl_arb_table
{
        <a href="#robo487">ib_vl_arb_element_t</a> vl_entry[IB_NUM_VL_ARB_ELEMENTS_IN_BLOCK];

}       PACK_SUFFIX <strong>ib_vl_arb_table_t</strong>;
#include <complib/cl_packoff.h>
</pre>
</span>
<hr />

<h2><a name="robo490">[Functions]<a name="IBA20Base3a20Types2fioc5fat5fslot">
IBA Base: Types/ioc_at_slot</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_functions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ioc_at_slot</strong>
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Returns the IOC value at the specified slot.
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>AL_INLINE uint8_t AL_API
<strong>ioc_at_slot</strong>(
        IN              const   <a href="#robo391">ib_iou_info_t</a>*  const   p_iou_info,
        IN                              uint8_t                                 slot )
{
        if( !slot )
                return SLOT_DOES_NOT_EXIST;
        else if( slot-- & 0x01 )
                return (p_iou_info->controller_list[slot >> 1] >> 4);
        else
                return (p_iou_info->controller_list[slot >> 1] & 0x0F);
}
</pre>
</span><p><strong>PARAMETERS</strong></p>
<span class="PARAMETERS"><pre>       p_iou_info
               [in] Pointer to the IO Unit information structure.

       slot
               [in] 1-based slot number of the IOC slot to check.

 RETURN VALUES
       Returns the encoded value for the desired slot.  Possible values are
       SLOT_DOES_NOT_EXIST, IOC_NOT_INSTALLED, and IOC_INSTALLED.
</pre>
</span><p><strong>NOTES</strong></p>
<span class="NOTES"><pre>       The input slot number is 1-based, not zero based.
</pre>
</span><p><strong>SEE ALSO</strong></p>
<span class="SEE_ALSO"><pre>       <a href="#robo391">ib_iou_info_t</a>
</pre>
</span>
<hr />

<h2><a name="robo491">[Functions]<a name="IBA20Bases3a20Types2fib5fdm5fget5fslot5flo5fhi">
IBA Bases: Types/ib_dm_get_slot_lo_hi</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_functions.html#top">index</a>]</p>
<p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Returns the IOC slot number, and the lower and upper bound of the
       service entries given the attribute modifier of ServiceEntries response.
</pre>
</span><p><strong>SEE ALSO</strong></p>
<span class="SEE_ALSO"><pre> <a href="#robo492">ib_dm_set_slot_lo_hi</a>
</pre>
</span>
<hr />

<h2><a name="robo492">[Functions]<a name="IBA20Bases3a20Types2fib5fdm5fset5fslot5flo5fhi">
IBA Bases: Types/ib_dm_set_slot_lo_hi</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./robo_functions.html#top">index</a>]</p>
<p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       Joins the IOC slot number, and the lower and upper bound of the service 
       entries and returns it.
</pre>
</span><p><strong>SEE ALSO</strong></p>
<span class="SEE_ALSO"><pre> <a href="#robo491">ib_dm_get_slot_lo_hi</a>
</pre>
</span>
<hr />

<h2><a name="robo610">[Definitions]<a name="Verbs2fib5fasync5fevent5ft">
Verbs/ib_async_event_t</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./ib_ci_h.html#robo1">parent</a>][<a href="./robo_definitions.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_async_event_t</strong> -- Async event types
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       This type indicates the reason the async callback was called.
       The context in the <a href="#robo612">ib_event_rec_t</a> indicates the resource context
       that associated with the callback.  For example, for IB_AE_CQ_ERROR
       the context provided during the <a href="./ib_al_h.html#robo65">ib_create_cq</a> is returned in the event.
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>typedef enum _<strong>ib_async_event_t</strong>
{
        IB_AE_SQ_ERROR = 1,
        IB_AE_SQ_DRAINED,
        IB_AE_RQ_ERROR,
        IB_AE_CQ_ERROR,
        IB_AE_QP_FATAL,
        IB_AE_QP_COMM,
        IB_AE_QP_APM,
        IB_AE_LOCAL_FATAL,
        IB_AE_PKEY_TRAP,
        IB_AE_QKEY_TRAP,
        IB_AE_MKEY_TRAP,
        IB_AE_PORT_TRAP,
        IB_AE_SYSIMG_GUID_TRAP,
        IB_AE_BUF_OVERRUN,
        IB_AE_LINK_INTEGRITY,
        IB_AE_FLOW_CTRL_ERROR,
        IB_AE_BKEY_TRAP,
        IB_AE_QP_APM_ERROR,
        IB_AE_WQ_REQ_ERROR,
        IB_AE_WQ_ACCESS_ERROR,
        IB_AE_PORT_ACTIVE,
        IB_AE_PORT_DOWN,
        IB_AE_CLIENT_REREGISTER,
        IB_AE_UNKNOWN           /* ALWAYS LAST ENUM VALUE */

}       <strong>ib_async_event_t</strong>;
</pre>
</span><p><strong>VALUES</strong></p>
<span class="VALUES"><pre>       IB_AE_SQ_ERROR
               An error occurred when accessing the send queue of the QP.
               This event is optional.

       IB_AE_SQ_DRAINED
               The send queue of the specified QP has completed the outstanding
               messages in progress when the state change was requested and, if
               applicable, has received all acknowledgements for those messages.

       IB_AE_RQ_ERROR
               An error occurred when accessing the receive queue of the QP.
               This event is optional.

       IB_AE_CQ_ERROR
               An error occurred when writing an entry to the CQ.

       IB_AE_QP_FATAL
               A catastrophic error occurred while accessing or processing the
               work queue that prevents reporting of completions.

       IB_AE_QP_COMM
               The first packet has arrived for the receive work queue where the
               QP is still in the RTR state.

       IB_AE_QP_APM
               If alternate path migration is supported, this event indicates that
               the QP connection has migrated to the alternate path.

       IB_AE_LOCAL_FATAL
               A catastrophic HCA error occurred which cannot be attributed to any
               resource; behavior is indeterminate.

       IB_AE_PKEY_TRAP
               A PKEY violation was detected.  This event is optional.

       IB_AE_QKEY_TRAP
               A QKEY violation was detected.  This event is optional.

       IB_AE_MKEY_TRAP
               An MKEY violation was detected.  This event is optional.

       IB_AE_PORT_TRAP
               A port capability change was detected.  This event is optional.

       IB_AE_SYSIMG_GUID_TRAP
               If the system image GUID is supported, this event indicates that the
               system image GUID of this HCA has been changed.  This event is
               optional.

       IB_AE_BUF_OVERRUN
               The number of consecutive flow control update periods with at least
               one overrun error in each period has exceeded the threshold specified
               in the port info attributes.  This event is optional.

       IB_AE_LINK_INTEGRITY
               The detection of excessively frequent local physical errors has
               exceeded the threshold specified in the port info attributes.  This
               event is optional.

       IB_AE_FLOW_CTRL_ERROR
               An HCA watchdog timer monitoring the arrival of flow control updates
               has expired without receiving an update.  This event is optional.

       IB_AE_BKEY_TRAP
               An BKEY violation was detected.  This event is optional.

       IB_AE_QP_APM_ERROR
               If alternate path migration is supported, this event indicates that
               an incoming path migration request to this QP was not accepted.

       IB_AE_WQ_REQ_ERROR
               An OpCode violation was detected at the responder.

       IB_AE_WQ_ACCESS_ERROR
               An access violation was detected at the responder.

       IB_AE_PORT_ACTIVE
               If the port active event is supported, this event is generated
               when the link becomes active: IB_LINK_ACTIVE.

       IB_AE_PORT_DOWN
               The link is declared unavailable: IB_LINK_INIT, IB_LINK_ARMED,
               IB_LINK_DOWN.

       IB_AE_CLIENT_REREGISTER
               The SM idicate to client to reregister its SA records.

       IB_AE_UNKNOWN
               An unknown error occurred which cannot be attributed to any
               resource; behavior is indeterminate.
</pre>
</span>
<hr />

<h2><a name="robo612">[Structures]<a name="Verbs2fib5fevent5frec5ft">
Verbs/ib_event_rec_t</a></h2>

<p>[<a href="#robo_top_of_doc">top</a>][<a href="./ib_ci_h.html#robo1">parent</a>][<a href="./robo_strutures.html#top">index</a>]</p>
<p><strong>NAME</strong></p>
<span class="NAME"><pre>       <strong>ib_event_rec_t</strong> -- Async event notification record
</pre>
</span><p><strong>DESCRIPTION</strong></p>
<span class="DESCRIPTION"><pre>       When an async event callback is made, this structure is passed to indicate
       the type of event, the source of event that caused it, and the context
       associated with this event.

       context -- Context of the resource that caused the event.
               -- ca_context if this is a port/adapter event.
               -- qp_context if the source is a QP event
               -- cq_context if the source is a CQ event.
               -- ee_context if the source is an EE event.
</pre>
</span><p><strong>SYNOPSIS</strong></p>
<span class="SYNOPSIS"><pre>typedef struct _ib_event_rec
{
        void* __ptr64                   context;
        <a href="#robo610">ib_async_event_t</a>                type;

        /* HCA vendor specific event information. */
        uint64_t                                vendor_specific;

        /* The following structures are valid only for trap types. */
        union _trap
        {
                struct
                {
                        uint16_t                        lid;
                        <a href="#robo409">ib_net64_t</a>                      port_guid;
                        uint8_t                         port_num;

                        /*
                         * The following structure is valid only for
                         * P_KEY, Q_KEY, and M_KEY violation traps.
                         */
                        struct
                        {
                                uint8_t                 sl;
                                uint16_t                src_lid;
                                uint16_t                dest_lid;
                                union _key
                                {
                                        uint16_t        pkey;
                                        uint32_t        qkey;
                                        uint64_t        mkey;
                                } key;
                                uint32_t                src_qp;
                                uint32_t                dest_qp;
                                <a href="#robo370">ib_gid_t</a>                src_gid;
                                <a href="#robo370">ib_gid_t</a>                dest_gid;

                        }       violation;

                } info;

                <a href="#robo409">ib_net64_t</a>      sysimg_guid;

        }       trap;

}       <strong>ib_event_rec_t</strong>;
</pre>
</span>
</body>
</html>