/*
* CDDL HEADER START
*
* The contents of this file are subject to the terms of the
* Common Development and Distribution License, Version 1.0 only
* (the "License"). You may not use this file except in compliance
* with the License.
*
* You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
* See the License for the specific language governing permissions
* and limitations under the License.
*
* When distributing Covered Code, include this CDDL HEADER in each
* file and include the License file at usr/src/OPENSOLARIS.LICENSE.
* If applicable, add the following below this CDDL HEADER, with the
* fields enclosed by brackets "[]" replaced with your own identifying
* information: Portions Copyright [yyyy] [name of copyright owner]
*
* CDDL HEADER END
*/
/*
* Copyright 2004 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
#ifndef _SYS_IB_MGT_SA_RECS_H
#define _SYS_IB_MGT_SA_RECS_H
#pragma ident "%Z%%M% %I% %E% SMI"
/*
* This file contains the definitions of the SA-specific records in IB spec
* volume 1, release 1.1, chapter 15.
*/
#ifdef __cplusplus
extern "C" {
#endif
/* class header for SA MADs */
typedef struct _ib_sa_hdr_t {
} ib_sa_hdr_t;
/* subnet administration methods */
/* sa MAD status field bit value */
/* SA-Specific ClassPortinfo::CapabilityMask Bits: Table 152 */
/* SA attribute IDs: Table 155 */
/* Node Record: Table 157 */
typedef struct sa_node_record_s {
/* Portinfo Record: Table 158 */
typedef struct sa_portinfo_record_s {
/* first 3 components are atomic */
/* SLtoVL Mapping Table Record: Table 159 */
typedef struct sa_SLtoVLmapping_record_s {
/* Switchinfo Record: Table 160 */
typedef struct sa_switchinfo_record_s {
/* Linear Forwarding Table Record: Table 161 */
typedef struct sa_linearft_record_s {
/* Random Forwarding Table Record: Table 162 */
typedef struct sa_randomft_record_s {
/* Multicast Forwarding Table Record: Table 163 */
#if defined(_BIT_FIELDS_HTOL)
typedef struct sa_multicastft_record_s {
#elif defined(_BIT_FIELDS_LTOH)
typedef struct sa_multicastft_record_s {
#else
#endif /* _BIT_FIELDS_HTOL */
/* VLArbitration Table Record: Table 164 */
typedef struct sa_VLarb_table_record_s {
/* SMInfo Record: Table 165 */
typedef struct _sminfo_record_s {
/* P_Key Table Record: Table 166 */
typedef struct sa_pkey_table_record_s {
/* InformInfo Record: Table 167 */
typedef struct sa_informinfo_record_s {
/* Link Record: Table 168 */
typedef struct sa_link_record_s {
/* Service Record: Table 169 */
typedef struct sa_service_record_s {
/* UTF-8 encoded service name */
/* data for this service rec. */
/*
* #defines mapping individual bits of the service record component mask
* to components in the service record. ServiceData uses one component mask per
* bit. See the IB spec for details.
*/
/* masks all ServiceData fields */
/* Service Association Record: Table 170 */
typedef struct sa_service_assn_record_s {
/* Path Record: Table 171 */
#if defined(_BIT_FIELDS_HTOL)
typedef struct sa_path_record_s {
/* among all paths */
#elif defined(_BIT_FIELDS_LTOH)
typedef struct sa_path_record_s {
/* among all paths */
#else
#endif /* _BIT_FIELDS_HTOL */
/*
* #defines mapping individual bits of the path record component mask
* to components in the path record
*/
/* MCMember Record: Table 176 */
#if defined(_BIT_FIELDS_HTOL)
typedef struct sa_mcmember_record_s {
#elif defined(_BIT_FIELDS_LTOH)
typedef struct sa_mcmember_record_s {
#else
#endif /* _BIT_FIELDS_HTOL */
/* GUIDInfo Record: Table 177 */
typedef struct sa_guidinfo_record_s {
/* Trace Record: Table 178 */
typedef struct sa_trace_record_s {
/*
* MultiPath Record: Table 179
* This structure only includes the constant portion of the multipath record.
* The multipath record request will contain a variable number of SGIDs and
* DGIDs at the end of this structure, as specified in the SGIDCount and
* DGIDCount fields.
*/
#if defined(_BIT_FIELDS_HTOL)
typedef struct sa_mutipath_record_s {
#elif defined(_BIT_FIELDS_LTOH)
typedef struct sa_mutipath_record_s {
#else
#endif /* _BIT_FIELDS_HTOL */
#ifdef __cplusplus
}
#endif
#endif /* _SYS_IB_MGT_SA_RECS_H */