<!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>