|
Packit |
13e616 |
/*
|
|
Packit |
13e616 |
* Copyright (c) 2004-2009 Voltaire, Inc. All rights reserved.
|
|
Packit |
13e616 |
* Copyright (c) 2002-2012 Mellanox Technologies LTD. All rights reserved.
|
|
Packit |
13e616 |
* Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
|
|
Packit |
13e616 |
* Copyright (c) 2009 HNR Consulting. All rights reserved.
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* This software is available to you under a choice of one of two
|
|
Packit |
13e616 |
* licenses. You may choose to be licensed under the terms of the GNU
|
|
Packit |
13e616 |
* General Public License (GPL) Version 2, available from the file
|
|
Packit |
13e616 |
* COPYING in the main directory of this source tree, or the
|
|
Packit |
13e616 |
* OpenIB.org BSD license below:
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* Redistribution and use in source and binary forms, with or
|
|
Packit |
13e616 |
* without modification, are permitted provided that the following
|
|
Packit |
13e616 |
* conditions are met:
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* - Redistributions of source code must retain the above
|
|
Packit |
13e616 |
* copyright notice, this list of conditions and the following
|
|
Packit |
13e616 |
* disclaimer.
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* - Redistributions in binary form must reproduce the above
|
|
Packit |
13e616 |
* copyright notice, this list of conditions and the following
|
|
Packit |
13e616 |
* disclaimer in the documentation and/or other materials
|
|
Packit |
13e616 |
* provided with the distribution.
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
Packit |
13e616 |
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
Packit |
13e616 |
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
|
Packit |
13e616 |
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
|
|
Packit |
13e616 |
* BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
|
|
Packit |
13e616 |
* ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
|
Packit |
13e616 |
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
Packit |
13e616 |
* SOFTWARE.
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
*/
|
|
Packit |
13e616 |
|
|
Packit |
13e616 |
/*
|
|
Packit |
13e616 |
* Abstract:
|
|
Packit |
13e616 |
* Declaration of osm_mad_wrapper_t.
|
|
Packit |
13e616 |
* This object represents the context wrapper for OpenSM MAD processing.
|
|
Packit |
13e616 |
* This object is part of the OpenSM family of objects.
|
|
Packit |
13e616 |
*/
|
|
Packit |
13e616 |
|
|
Packit |
13e616 |
#ifndef _OSM_MADW_H_
|
|
Packit |
13e616 |
#define _OSM_MADW_H_
|
|
Packit |
13e616 |
|
|
Packit |
13e616 |
#include <string.h>
|
|
Packit |
13e616 |
#include <iba/ib_types.h>
|
|
Packit |
13e616 |
#include <complib/cl_qlist.h>
|
|
Packit |
13e616 |
#include <complib/cl_dispatcher.h>
|
|
Packit |
13e616 |
#include <opensm/osm_base.h>
|
|
Packit |
13e616 |
#include <vendor/osm_vendor.h>
|
|
Packit |
13e616 |
|
|
Packit |
13e616 |
#ifdef __cplusplus
|
|
Packit |
13e616 |
# define BEGIN_C_DECLS extern "C" {
|
|
Packit |
13e616 |
# define END_C_DECLS }
|
|
Packit |
13e616 |
#else /* !__cplusplus */
|
|
Packit |
13e616 |
# define BEGIN_C_DECLS
|
|
Packit |
13e616 |
# define END_C_DECLS
|
|
Packit |
13e616 |
#endif /* __cplusplus */
|
|
Packit |
13e616 |
|
|
Packit |
13e616 |
BEGIN_C_DECLS
|
|
Packit |
13e616 |
/****s* OpenSM: MAD Wrapper/osm_bind_info_t
|
|
Packit |
13e616 |
* NAME
|
|
Packit |
13e616 |
* osm_bind_info_t
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* DESCRIPTION
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* SYNOPSIS
|
|
Packit |
13e616 |
*/
|
|
Packit |
13e616 |
typedef struct osm_bind_info {
|
|
Packit |
13e616 |
ib_net64_t port_guid;
|
|
Packit |
13e616 |
uint8_t mad_class;
|
|
Packit |
13e616 |
uint8_t class_version;
|
|
Packit |
13e616 |
boolean_t is_responder;
|
|
Packit |
13e616 |
boolean_t is_trap_processor;
|
|
Packit |
13e616 |
boolean_t is_report_processor;
|
|
Packit |
13e616 |
uint32_t send_q_size;
|
|
Packit |
13e616 |
uint32_t recv_q_size;
|
|
Packit |
13e616 |
uint32_t timeout;
|
|
Packit |
13e616 |
uint32_t retries;
|
|
Packit |
13e616 |
} osm_bind_info_t;
|
|
Packit |
13e616 |
/*
|
|
Packit |
13e616 |
* FIELDS
|
|
Packit |
13e616 |
* portguid
|
|
Packit |
13e616 |
* PortGuid of local port
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* mad_class
|
|
Packit |
13e616 |
* Mgmt Class ID
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* class_version
|
|
Packit |
13e616 |
* Mgmt Class version
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* is_responder
|
|
Packit |
13e616 |
* True if this is a GSI Agent
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* is_trap_processor
|
|
Packit |
13e616 |
* True if GSI Trap msgs are handled
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* is_report_processor
|
|
Packit |
13e616 |
* True if GSI Report msgs are handled
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* send_q_size
|
|
Packit |
13e616 |
* SendQueueSize
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* recv_q_size
|
|
Packit |
13e616 |
* Receive Queue Size
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* timeout
|
|
Packit |
13e616 |
* Transaction timeout
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* retries
|
|
Packit |
13e616 |
* Number of retries for transaction
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* SEE ALSO
|
|
Packit |
13e616 |
*********/
|
|
Packit |
13e616 |
|
|
Packit |
13e616 |
/****h* OpenSM/MAD Wrapper
|
|
Packit |
13e616 |
* NAME
|
|
Packit |
13e616 |
* MAD Wrapper
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* DESCRIPTION
|
|
Packit |
13e616 |
* The MAD Wrapper object encapsulates the information needed by the
|
|
Packit |
13e616 |
* OpenSM to manage individual MADs. The OpenSM allocates one MAD Wrapper
|
|
Packit |
13e616 |
* per MAD.
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* The MAD Wrapper is not thread safe, thus callers must provide
|
|
Packit |
13e616 |
* serialization.
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* This object should be treated as opaque and should be
|
|
Packit |
13e616 |
* manipulated only through the provided functions.
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* AUTHOR
|
|
Packit |
13e616 |
* Steve King, Intel
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
*********/
|
|
Packit |
13e616 |
|
|
Packit |
13e616 |
/****s* OpenSM: MAD Wrapper/osm_ni_context_t
|
|
Packit |
13e616 |
* NAME
|
|
Packit |
13e616 |
* osm_ni_context_t
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* DESCRIPTION
|
|
Packit |
13e616 |
* Context needed by recipient of NodeInfo attribute.
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* SYNOPSIS
|
|
Packit |
13e616 |
*/
|
|
Packit |
13e616 |
typedef struct osm_ni_context {
|
|
Packit |
13e616 |
ib_net64_t node_guid;
|
|
Packit |
13e616 |
uint8_t port_num;
|
|
Packit |
13e616 |
ib_net64_t dup_node_guid;
|
|
Packit |
13e616 |
uint8_t dup_port_num;
|
|
Packit |
13e616 |
unsigned dup_count;
|
|
Packit |
13e616 |
} osm_ni_context_t;
|
|
Packit |
13e616 |
/*
|
|
Packit |
13e616 |
* FIELDS
|
|
Packit |
13e616 |
* p_node
|
|
Packit |
13e616 |
* Pointer to the node thru which we got to this node.
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* p_sw
|
|
Packit |
13e616 |
* Pointer to the switch object (if any) of the switch
|
|
Packit |
13e616 |
* thru which we got to this node.
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* port_num
|
|
Packit |
13e616 |
* Port number on the node or switch thru which we got
|
|
Packit |
13e616 |
* to this node.
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* SEE ALSO
|
|
Packit |
13e616 |
*********/
|
|
Packit |
13e616 |
|
|
Packit |
13e616 |
/****s* OpenSM: MAD Wrapper/osm_pi_context_t
|
|
Packit |
13e616 |
* NAME
|
|
Packit |
13e616 |
* osm_pi_context_t
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* DESCRIPTION
|
|
Packit |
13e616 |
* Context needed by recipient of PortInfo attribute.
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* SYNOPSIS
|
|
Packit |
13e616 |
*/
|
|
Packit |
13e616 |
typedef struct osm_pi_context {
|
|
Packit |
13e616 |
ib_net64_t node_guid;
|
|
Packit |
13e616 |
ib_net64_t port_guid;
|
|
Packit |
13e616 |
boolean_t set_method;
|
|
Packit |
13e616 |
boolean_t light_sweep;
|
|
Packit |
13e616 |
boolean_t active_transition;
|
|
Packit |
13e616 |
boolean_t client_rereg;
|
|
Packit |
13e616 |
} osm_pi_context_t;
|
|
Packit |
13e616 |
/*********/
|
|
Packit |
13e616 |
|
|
Packit |
13e616 |
/****s* OpenSM: MAD Wrapper/osm_gi_context_t
|
|
Packit |
13e616 |
* NAME
|
|
Packit |
13e616 |
* osm_gi_context_t
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* DESCRIPTION
|
|
Packit |
13e616 |
* Context needed by recipient of GUIDInfo attribute.
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* SYNOPSIS
|
|
Packit |
13e616 |
*/
|
|
Packit |
13e616 |
typedef struct osm_gi_context {
|
|
Packit |
13e616 |
ib_net64_t node_guid;
|
|
Packit |
13e616 |
ib_net64_t port_guid;
|
|
Packit |
13e616 |
boolean_t set_method;
|
|
Packit |
13e616 |
uint8_t port_num;
|
|
Packit |
13e616 |
} osm_gi_context_t;
|
|
Packit |
13e616 |
/*********/
|
|
Packit |
13e616 |
|
|
Packit |
13e616 |
/****s* OpenSM: MAD Wrapper/osm_nd_context_t
|
|
Packit |
13e616 |
* NAME
|
|
Packit |
13e616 |
* osm_nd_context_t
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* DESCRIPTION
|
|
Packit |
13e616 |
* Context needed by recipient of NodeDescription attribute.
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* SYNOPSIS
|
|
Packit |
13e616 |
*/
|
|
Packit |
13e616 |
typedef struct osm_nd_context {
|
|
Packit |
13e616 |
ib_net64_t node_guid;
|
|
Packit |
13e616 |
} osm_nd_context_t;
|
|
Packit |
13e616 |
/*********/
|
|
Packit |
13e616 |
|
|
Packit |
13e616 |
/****s* OpenSM: MAD Wrapper/osm_si_context_t
|
|
Packit |
13e616 |
* NAME
|
|
Packit |
13e616 |
* osm_si_context_t
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* DESCRIPTION
|
|
Packit |
13e616 |
* Context needed by recipient of SwitchInfo attribute.
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* SYNOPSIS
|
|
Packit |
13e616 |
*/
|
|
Packit |
13e616 |
typedef struct osm_si_context {
|
|
Packit |
13e616 |
ib_net64_t node_guid;
|
|
Packit |
13e616 |
boolean_t set_method;
|
|
Packit |
13e616 |
boolean_t light_sweep;
|
|
Packit |
13e616 |
boolean_t lft_top_change;
|
|
Packit |
13e616 |
} osm_si_context_t;
|
|
Packit |
13e616 |
/*********/
|
|
Packit |
13e616 |
|
|
Packit |
13e616 |
/****s* OpenSM: MAD Wrapper/osm_lft_context_t
|
|
Packit |
13e616 |
* NAME
|
|
Packit |
13e616 |
* osm_lft_context_t
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* DESCRIPTION
|
|
Packit |
13e616 |
* Context needed by recipient of LinearForwardingTable attribute.
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* SYNOPSIS
|
|
Packit |
13e616 |
*/
|
|
Packit |
13e616 |
typedef struct osm_lft_context {
|
|
Packit |
13e616 |
ib_net64_t node_guid;
|
|
Packit |
13e616 |
boolean_t set_method;
|
|
Packit |
13e616 |
} osm_lft_context_t;
|
|
Packit |
13e616 |
/*********/
|
|
Packit |
13e616 |
|
|
Packit |
13e616 |
/****s* OpenSM: MAD Wrapper/osm_mft_context_t
|
|
Packit |
13e616 |
* NAME
|
|
Packit |
13e616 |
* osm_mft_context_t
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* DESCRIPTION
|
|
Packit |
13e616 |
* Context needed by recipient of MulticastForwardingTable attribute.
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* SYNOPSIS
|
|
Packit |
13e616 |
*/
|
|
Packit |
13e616 |
typedef struct osm_mft_context {
|
|
Packit |
13e616 |
ib_net64_t node_guid;
|
|
Packit |
13e616 |
boolean_t set_method;
|
|
Packit |
13e616 |
} osm_mft_context_t;
|
|
Packit |
13e616 |
/*********/
|
|
Packit |
13e616 |
|
|
Packit |
13e616 |
/****s* OpenSM: MAD Wrapper/osm_smi_context_t
|
|
Packit |
13e616 |
* NAME
|
|
Packit |
13e616 |
* osm_smi_context_t
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* DESCRIPTION
|
|
Packit |
13e616 |
* Context needed by recipient of SMInfo attribute.
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* SYNOPSIS
|
|
Packit |
13e616 |
*/
|
|
Packit |
13e616 |
typedef struct osm_smi_context {
|
|
Packit |
13e616 |
ib_net64_t port_guid;
|
|
Packit |
13e616 |
boolean_t set_method;
|
|
Packit |
13e616 |
boolean_t light_sweep;
|
|
Packit |
13e616 |
} osm_smi_context_t;
|
|
Packit |
13e616 |
/*********/
|
|
Packit |
13e616 |
|
|
Packit |
13e616 |
/****s* OpenSM: MAD Wrapper/osm_pkey_context_t
|
|
Packit |
13e616 |
* NAME
|
|
Packit |
13e616 |
* osm_pkey_context_t
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* DESCRIPTION
|
|
Packit |
13e616 |
* Context needed by recipient of P_Key attribute.
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* SYNOPSIS
|
|
Packit |
13e616 |
*/
|
|
Packit |
13e616 |
typedef struct osm_pkey_context {
|
|
Packit |
13e616 |
ib_net64_t node_guid;
|
|
Packit |
13e616 |
ib_net64_t port_guid;
|
|
Packit |
13e616 |
boolean_t set_method;
|
|
Packit |
13e616 |
} osm_pkey_context_t;
|
|
Packit |
13e616 |
/*********/
|
|
Packit |
13e616 |
|
|
Packit |
13e616 |
/****s* OpenSM: MAD Wrapper/osm_slvl_context_t
|
|
Packit |
13e616 |
* NAME
|
|
Packit |
13e616 |
* osm_slvl_context_t
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* DESCRIPTION
|
|
Packit |
13e616 |
* Context needed by recipient of PortInfo attribute.
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* SYNOPSIS
|
|
Packit |
13e616 |
*/
|
|
Packit |
13e616 |
typedef struct osm_slvl_context {
|
|
Packit |
13e616 |
ib_net64_t node_guid;
|
|
Packit |
13e616 |
ib_net64_t port_guid;
|
|
Packit |
13e616 |
boolean_t set_method;
|
|
Packit |
13e616 |
} osm_slvl_context_t;
|
|
Packit |
13e616 |
/*********/
|
|
Packit |
13e616 |
|
|
Packit |
13e616 |
/****s* OpenSM: MAD Wrapper/osm_vla_context_t
|
|
Packit |
13e616 |
* NAME
|
|
Packit |
13e616 |
* osm_vla_context_t
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* DESCRIPTION
|
|
Packit |
13e616 |
* Context needed by recipient of VL Arb attribute.
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* SYNOPSIS
|
|
Packit |
13e616 |
*/
|
|
Packit |
13e616 |
typedef struct osm_vla_context {
|
|
Packit |
13e616 |
ib_net64_t node_guid;
|
|
Packit |
13e616 |
ib_net64_t port_guid;
|
|
Packit |
13e616 |
boolean_t set_method;
|
|
Packit |
13e616 |
} osm_vla_context_t;
|
|
Packit |
13e616 |
/*********/
|
|
Packit |
13e616 |
|
|
Packit |
13e616 |
/****s* OpenSM: MAD Wrapper/osm_perfmgr_context_t
|
|
Packit |
13e616 |
* DESCRIPTION
|
|
Packit |
13e616 |
* Context for Performance manager queries
|
|
Packit |
13e616 |
*/
|
|
Packit |
13e616 |
typedef struct osm_perfmgr_context {
|
|
Packit |
13e616 |
uint64_t node_guid;
|
|
Packit |
13e616 |
uint16_t port;
|
|
Packit |
13e616 |
uint8_t mad_method; /* was this a get or a set */
|
|
Packit |
13e616 |
ib_net16_t mad_attr_id;
|
|
Packit |
13e616 |
#ifdef ENABLE_OSM_PERF_MGR_PROFILE
|
|
Packit |
13e616 |
struct timeval query_start;
|
|
Packit |
13e616 |
#endif
|
|
Packit |
13e616 |
} osm_perfmgr_context_t;
|
|
Packit |
13e616 |
/*********/
|
|
Packit |
13e616 |
|
|
Packit |
13e616 |
/****s* OpenSM: MAD Wrapper/osm_cc_context_t
|
|
Packit |
13e616 |
* DESCRIPTION
|
|
Packit |
13e616 |
* Context for Congestion Control MADs
|
|
Packit |
13e616 |
*/
|
|
Packit |
13e616 |
typedef struct osm_cc_context {
|
|
Packit |
13e616 |
ib_net64_t node_guid;
|
|
Packit |
13e616 |
ib_net64_t port_guid;
|
|
Packit |
13e616 |
uint8_t port;
|
|
Packit |
13e616 |
uint8_t mad_method; /* was this a get or a set */
|
|
Packit |
13e616 |
ib_net32_t attr_mod;
|
|
Packit |
13e616 |
} osm_cc_context_t;
|
|
Packit |
13e616 |
/*********/
|
|
Packit |
13e616 |
|
|
Packit |
13e616 |
#ifndef OSM_VENDOR_INTF_OPENIB
|
|
Packit |
13e616 |
/****s* OpenSM: MAD Wrapper/osm_arbitrary_context_t
|
|
Packit |
13e616 |
* NAME
|
|
Packit |
13e616 |
* osm_arbitrary_context_t
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* DESCRIPTION
|
|
Packit |
13e616 |
* Context needed by arbitrary recipient.
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* SYNOPSIS
|
|
Packit |
13e616 |
*/
|
|
Packit |
13e616 |
typedef struct osm_arbitrary_context {
|
|
Packit |
13e616 |
void *context1;
|
|
Packit |
13e616 |
void *context2;
|
|
Packit |
13e616 |
} osm_arbitrary_context_t;
|
|
Packit |
13e616 |
/*********/
|
|
Packit |
13e616 |
#endif
|
|
Packit |
13e616 |
|
|
Packit |
13e616 |
/****s* OpenSM: MAD Wrapper/osm_madw_context_t
|
|
Packit |
13e616 |
* NAME
|
|
Packit |
13e616 |
* osm_madw_context_t
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* DESCRIPTION
|
|
Packit |
13e616 |
* Context needed by recipients of MAD responses.
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* SYNOPSIS
|
|
Packit |
13e616 |
*/
|
|
Packit |
13e616 |
typedef union _osm_madw_context {
|
|
Packit |
13e616 |
osm_ni_context_t ni_context;
|
|
Packit |
13e616 |
osm_pi_context_t pi_context;
|
|
Packit |
13e616 |
osm_gi_context_t gi_context;
|
|
Packit |
13e616 |
osm_nd_context_t nd_context;
|
|
Packit |
13e616 |
osm_si_context_t si_context;
|
|
Packit |
13e616 |
osm_lft_context_t lft_context;
|
|
Packit |
13e616 |
osm_mft_context_t mft_context;
|
|
Packit |
13e616 |
osm_smi_context_t smi_context;
|
|
Packit |
13e616 |
osm_slvl_context_t slvl_context;
|
|
Packit |
13e616 |
osm_pkey_context_t pkey_context;
|
|
Packit |
13e616 |
osm_vla_context_t vla_context;
|
|
Packit |
13e616 |
osm_perfmgr_context_t perfmgr_context;
|
|
Packit |
13e616 |
osm_cc_context_t cc_context;
|
|
Packit |
13e616 |
#ifndef OSM_VENDOR_INTF_OPENIB
|
|
Packit |
13e616 |
osm_arbitrary_context_t arb_context;
|
|
Packit |
13e616 |
#endif
|
|
Packit |
13e616 |
} osm_madw_context_t;
|
|
Packit |
13e616 |
/*********/
|
|
Packit |
13e616 |
|
|
Packit |
13e616 |
/****s* OpenSM: MAD Wrapper/osm_mad_addr_t
|
|
Packit |
13e616 |
* NAME
|
|
Packit |
13e616 |
* osm_mad_addr_t
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* DESCRIPTION
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* SYNOPSIS
|
|
Packit |
13e616 |
*/
|
|
Packit |
13e616 |
typedef struct osm_mad_addr {
|
|
Packit |
13e616 |
ib_net16_t dest_lid;
|
|
Packit |
13e616 |
uint8_t path_bits;
|
|
Packit |
13e616 |
uint8_t static_rate;
|
|
Packit |
13e616 |
union addr_type {
|
|
Packit |
13e616 |
struct _smi {
|
|
Packit |
13e616 |
ib_net16_t source_lid;
|
|
Packit |
13e616 |
uint8_t port_num;
|
|
Packit |
13e616 |
} smi;
|
|
Packit |
13e616 |
|
|
Packit |
13e616 |
struct _gsi {
|
|
Packit |
13e616 |
ib_net32_t remote_qp;
|
|
Packit |
13e616 |
ib_net32_t remote_qkey;
|
|
Packit |
13e616 |
uint16_t pkey_ix;
|
|
Packit |
13e616 |
uint8_t service_level;
|
|
Packit |
13e616 |
boolean_t global_route;
|
|
Packit |
13e616 |
ib_grh_t grh_info;
|
|
Packit |
13e616 |
} gsi;
|
|
Packit |
13e616 |
} addr_type;
|
|
Packit |
13e616 |
} osm_mad_addr_t;
|
|
Packit |
13e616 |
/*
|
|
Packit |
13e616 |
* FIELDS
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* SEE ALSO
|
|
Packit |
13e616 |
*********/
|
|
Packit |
13e616 |
|
|
Packit |
13e616 |
/****s* OpenSM: MAD Wrapper/osm_madw_t
|
|
Packit |
13e616 |
* NAME
|
|
Packit |
13e616 |
* osm_madw_t
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* DESCRIPTION
|
|
Packit |
13e616 |
* Context needed for processing individual MADs
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* SYNOPSIS
|
|
Packit |
13e616 |
*/
|
|
Packit |
13e616 |
typedef struct osm_madw {
|
|
Packit |
13e616 |
cl_list_item_t list_item;
|
|
Packit |
13e616 |
osm_bind_handle_t h_bind;
|
|
Packit |
13e616 |
osm_vend_wrap_t vend_wrap;
|
|
Packit |
13e616 |
osm_mad_addr_t mad_addr;
|
|
Packit |
13e616 |
osm_madw_context_t context;
|
|
Packit |
13e616 |
uint32_t mad_size;
|
|
Packit |
13e616 |
ib_api_status_t status;
|
|
Packit |
13e616 |
cl_disp_msgid_t fail_msg;
|
|
Packit |
13e616 |
boolean_t resp_expected;
|
|
Packit |
13e616 |
uint32_t timeout;
|
|
Packit |
13e616 |
const ib_mad_t *p_mad;
|
|
Packit |
13e616 |
} osm_madw_t;
|
|
Packit |
13e616 |
/*
|
|
Packit |
13e616 |
* FIELDS
|
|
Packit |
13e616 |
* list_item
|
|
Packit |
13e616 |
* List linkage for lists. MUST BE FIRST MEMBER!
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* h_bind
|
|
Packit |
13e616 |
* Bind handle for the port on which this MAD will be sent
|
|
Packit |
13e616 |
* or was received.
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* vend_wrap
|
|
Packit |
13e616 |
* Transport vendor specific context. This structure is not
|
|
Packit |
13e616 |
* used outside MAD transport vendor specific code.
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* context
|
|
Packit |
13e616 |
* Union of controller specific contexts needed for this MAD.
|
|
Packit |
13e616 |
* This structure allows controllers to indirectly communicate
|
|
Packit |
13e616 |
* with each other through the dispatcher.
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* mad_size
|
|
Packit |
13e616 |
* Size of this MAD in bytes.
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* status
|
|
Packit |
13e616 |
* Status of completed operation on the MAD.
|
|
Packit |
13e616 |
* CL_SUCCESS if the operation was successful.
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* fail_msg
|
|
Packit |
13e616 |
* Dispatcher message with which to post this MAD on failure.
|
|
Packit |
13e616 |
* This value is set by the originator of the MAD.
|
|
Packit |
13e616 |
* If an operation on this MAD fails, for example due to a timeout,
|
|
Packit |
13e616 |
* then the transport layer will dispose of the MAD by sending
|
|
Packit |
13e616 |
* it through the Dispatcher with this message type. Presumably,
|
|
Packit |
13e616 |
* there is a controller listening for the failure message that can
|
|
Packit |
13e616 |
* properly clean up.
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* resp_expected
|
|
Packit |
13e616 |
* TRUE if a response is expected to this MAD.
|
|
Packit |
13e616 |
* FALSE otherwise.
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* timeout
|
|
Packit |
13e616 |
* Transaction timeout in msec.
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* p_mad
|
|
Packit |
13e616 |
* Pointer to the wire MAD. The MAD itself cannot be part of the
|
|
Packit |
13e616 |
* wrapper, since wire MADs typically reside in special memory
|
|
Packit |
13e616 |
* registered with the local HCA.
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* SEE ALSO
|
|
Packit |
13e616 |
*********/
|
|
Packit |
13e616 |
|
|
Packit |
13e616 |
/****f* OpenSM: MAD Wrapper/osm_madw_init
|
|
Packit |
13e616 |
* NAME
|
|
Packit |
13e616 |
* osm_madw_init
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* DESCRIPTION
|
|
Packit |
13e616 |
* Initializes a MAD Wrapper object for use.
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* SYNOPSIS
|
|
Packit |
13e616 |
*/
|
|
Packit |
13e616 |
static inline void osm_madw_init(IN osm_madw_t * p_madw,
|
|
Packit |
13e616 |
IN osm_bind_handle_t h_bind,
|
|
Packit |
13e616 |
IN uint32_t mad_size,
|
|
Packit |
13e616 |
IN const osm_mad_addr_t * p_mad_addr)
|
|
Packit |
13e616 |
{
|
|
Packit |
13e616 |
memset(p_madw, 0, sizeof(*p_madw));
|
|
Packit |
13e616 |
p_madw->h_bind = h_bind;
|
|
Packit |
13e616 |
p_madw->fail_msg = CL_DISP_MSGID_NONE;
|
|
Packit |
13e616 |
p_madw->mad_size = mad_size;
|
|
Packit |
13e616 |
if (p_mad_addr)
|
|
Packit |
13e616 |
p_madw->mad_addr = *p_mad_addr;
|
|
Packit |
13e616 |
p_madw->resp_expected = FALSE;
|
|
Packit |
13e616 |
}
|
|
Packit |
13e616 |
|
|
Packit |
13e616 |
/*
|
|
Packit |
13e616 |
* PARAMETERS
|
|
Packit |
13e616 |
* p_madw
|
|
Packit |
13e616 |
* [in] Pointer to an osm_madw_t object to initialize.
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* h_bind
|
|
Packit |
13e616 |
* [in] Pointer to the wire MAD.
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* p_mad_addr
|
|
Packit |
13e616 |
* [in] Pointer to the MAD address structure. This parameter may
|
|
Packit |
13e616 |
* be NULL for directed route MADs.
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* RETURN VALUES
|
|
Packit |
13e616 |
* None.
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* NOTES
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* SEE ALSO
|
|
Packit |
13e616 |
*********/
|
|
Packit |
13e616 |
|
|
Packit |
13e616 |
/****f* OpenSM: MAD Wrapper/osm_madw_get_smp_ptr
|
|
Packit |
13e616 |
* NAME
|
|
Packit |
13e616 |
* osm_madw_get_smp_ptr
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* DESCRIPTION
|
|
Packit |
13e616 |
* Gets a pointer to the SMP in this MAD.
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* SYNOPSIS
|
|
Packit |
13e616 |
*/
|
|
Packit |
13e616 |
static inline ib_smp_t *osm_madw_get_smp_ptr(IN const osm_madw_t * p_madw)
|
|
Packit |
13e616 |
{
|
|
Packit |
13e616 |
return ((ib_smp_t *) p_madw->p_mad);
|
|
Packit |
13e616 |
}
|
|
Packit |
13e616 |
|
|
Packit |
13e616 |
/*
|
|
Packit |
13e616 |
* PARAMETERS
|
|
Packit |
13e616 |
* p_madw
|
|
Packit |
13e616 |
* [in] Pointer to an osm_madw_t object to initialize.
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* RETURN VALUES
|
|
Packit |
13e616 |
* Pointer to the start of the SMP MAD.
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* NOTES
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* SEE ALSO
|
|
Packit |
13e616 |
* MAD Wrapper object
|
|
Packit |
13e616 |
*********/
|
|
Packit |
13e616 |
|
|
Packit |
13e616 |
/****f* OpenSM: MAD Wrapper/osm_madw_get_sa_mad_ptr
|
|
Packit |
13e616 |
* NAME
|
|
Packit |
13e616 |
* osm_madw_get_sa_mad_ptr
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* DESCRIPTION
|
|
Packit |
13e616 |
* Gets a pointer to the SA MAD in this MAD wrapper.
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* SYNOPSIS
|
|
Packit |
13e616 |
*/
|
|
Packit |
13e616 |
static inline ib_sa_mad_t *osm_madw_get_sa_mad_ptr(IN const osm_madw_t * p_madw)
|
|
Packit |
13e616 |
{
|
|
Packit |
13e616 |
return ((ib_sa_mad_t *) p_madw->p_mad);
|
|
Packit |
13e616 |
}
|
|
Packit |
13e616 |
|
|
Packit |
13e616 |
/*
|
|
Packit |
13e616 |
* PARAMETERS
|
|
Packit |
13e616 |
* p_madw
|
|
Packit |
13e616 |
* [in] Pointer to an osm_madw_t object.
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* RETURN VALUES
|
|
Packit |
13e616 |
* Pointer to the start of the SA MAD.
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* NOTES
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* SEE ALSO
|
|
Packit |
13e616 |
* MAD Wrapper object
|
|
Packit |
13e616 |
*********/
|
|
Packit |
13e616 |
|
|
Packit |
13e616 |
/****f* OpenSM: MAD Wrapper/osm_madw_get_perfmgt_mad_ptr
|
|
Packit |
13e616 |
* DESCRIPTION
|
|
Packit |
13e616 |
* Gets a pointer to the PerfMgt MAD in this MAD wrapper.
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* SYNOPSIS
|
|
Packit |
13e616 |
*/
|
|
Packit |
13e616 |
static inline ib_perfmgt_mad_t *osm_madw_get_perfmgt_mad_ptr(IN const osm_madw_t
|
|
Packit |
13e616 |
* p_madw)
|
|
Packit |
13e616 |
{
|
|
Packit |
13e616 |
return ((ib_perfmgt_mad_t *) p_madw->p_mad);
|
|
Packit |
13e616 |
}
|
|
Packit |
13e616 |
|
|
Packit |
13e616 |
/*
|
|
Packit |
13e616 |
* PARAMETERS
|
|
Packit |
13e616 |
* p_madw
|
|
Packit |
13e616 |
* [in] Pointer to an osm_madw_t object.
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* RETURN VALUES
|
|
Packit |
13e616 |
* Pointer to the start of the PerfMgt MAD.
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* NOTES
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* SEE ALSO
|
|
Packit |
13e616 |
* MAD Wrapper object
|
|
Packit |
13e616 |
*********/
|
|
Packit |
13e616 |
|
|
Packit |
13e616 |
/****f* OpenSM: MAD Wrapper/osm_madw_get_cc_mad_ptr
|
|
Packit |
13e616 |
* DESCRIPTION
|
|
Packit |
13e616 |
* Gets a pointer to the Congestion Control MAD in this MAD wrapper.
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* SYNOPSIS
|
|
Packit |
13e616 |
*/
|
|
Packit |
13e616 |
static inline ib_cc_mad_t *osm_madw_get_cc_mad_ptr(IN const osm_madw_t
|
|
Packit |
13e616 |
* p_madw)
|
|
Packit |
13e616 |
{
|
|
Packit |
13e616 |
return ((ib_cc_mad_t *) p_madw->p_mad);
|
|
Packit |
13e616 |
}
|
|
Packit |
13e616 |
|
|
Packit |
13e616 |
/*
|
|
Packit |
13e616 |
* PARAMETERS
|
|
Packit |
13e616 |
* p_madw
|
|
Packit |
13e616 |
* [in] Pointer to an osm_madw_t object.
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* RETURN VALUES
|
|
Packit |
13e616 |
* Pointer to the start of the Congestion Control MAD.
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* NOTES
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* SEE ALSO
|
|
Packit |
13e616 |
* MAD Wrapper object
|
|
Packit |
13e616 |
*********/
|
|
Packit |
13e616 |
|
|
Packit |
13e616 |
/****f* OpenSM: MAD Wrapper/osm_madw_get_ni_context_ptr
|
|
Packit |
13e616 |
* NAME
|
|
Packit |
13e616 |
* osm_madw_get_ni_context_ptr
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* DESCRIPTION
|
|
Packit |
13e616 |
* Gets a pointer to the NodeInfo context in this MAD.
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* SYNOPSIS
|
|
Packit |
13e616 |
*/
|
|
Packit |
13e616 |
static inline osm_ni_context_t *osm_madw_get_ni_context_ptr(IN const osm_madw_t
|
|
Packit |
13e616 |
* p_madw)
|
|
Packit |
13e616 |
{
|
|
Packit |
13e616 |
return ((osm_ni_context_t *) & p_madw->context);
|
|
Packit |
13e616 |
}
|
|
Packit |
13e616 |
|
|
Packit |
13e616 |
/*
|
|
Packit |
13e616 |
* PARAMETERS
|
|
Packit |
13e616 |
* p_madw
|
|
Packit |
13e616 |
* [in] Pointer to an osm_madw_t object.
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* RETURN VALUES
|
|
Packit |
13e616 |
* Pointer to the start of the context structure.
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* NOTES
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* SEE ALSO
|
|
Packit |
13e616 |
*********/
|
|
Packit |
13e616 |
|
|
Packit |
13e616 |
/****f* OpenSM: MAD Wrapper/osm_madw_get_pi_context_ptr
|
|
Packit |
13e616 |
* NAME
|
|
Packit |
13e616 |
* osm_madw_get_pi_context_ptr
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* DESCRIPTION
|
|
Packit |
13e616 |
* Gets a pointer to the PortInfo context in this MAD.
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* SYNOPSIS
|
|
Packit |
13e616 |
*/
|
|
Packit |
13e616 |
static inline osm_pi_context_t *osm_madw_get_pi_context_ptr(IN const osm_madw_t
|
|
Packit |
13e616 |
* p_madw)
|
|
Packit |
13e616 |
{
|
|
Packit |
13e616 |
return ((osm_pi_context_t *) & p_madw->context);
|
|
Packit |
13e616 |
}
|
|
Packit |
13e616 |
|
|
Packit |
13e616 |
/*
|
|
Packit |
13e616 |
* PARAMETERS
|
|
Packit |
13e616 |
* p_madw
|
|
Packit |
13e616 |
* [in] Pointer to an osm_madw_t object.
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* RETURN VALUES
|
|
Packit |
13e616 |
* Pointer to the start of the context structure.
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* NOTES
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* SEE ALSO
|
|
Packit |
13e616 |
*********/
|
|
Packit |
13e616 |
|
|
Packit |
13e616 |
/****f* OpenSM: MAD Wrapper/osm_madw_get_gi_context_ptr
|
|
Packit |
13e616 |
* NAME
|
|
Packit |
13e616 |
* osm_madw_get_gi_context_ptr
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* DESCRIPTION
|
|
Packit |
13e616 |
* Gets a pointer to the GUIDInfo context in this MAD.
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* SYNOPSIS
|
|
Packit |
13e616 |
*/
|
|
Packit |
13e616 |
static inline osm_gi_context_t *osm_madw_get_gi_context_ptr(IN const osm_madw_t
|
|
Packit |
13e616 |
* p_madw)
|
|
Packit |
13e616 |
{
|
|
Packit |
13e616 |
return ((osm_gi_context_t *) & p_madw->context);
|
|
Packit |
13e616 |
}
|
|
Packit |
13e616 |
|
|
Packit |
13e616 |
/*
|
|
Packit |
13e616 |
* PARAMETERS
|
|
Packit |
13e616 |
* p_madw
|
|
Packit |
13e616 |
* [in] Pointer to an osm_madw_t object.
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* RETURN VALUES
|
|
Packit |
13e616 |
* Pointer to the start of the context structure.
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* NOTES
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* SEE ALSO
|
|
Packit |
13e616 |
*********/
|
|
Packit |
13e616 |
|
|
Packit |
13e616 |
/****f* OpenSM: MAD Wrapper/osm_madw_get_nd_context_ptr
|
|
Packit |
13e616 |
* NAME
|
|
Packit |
13e616 |
* osm_madw_get_nd_context_ptr
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* DESCRIPTION
|
|
Packit |
13e616 |
* Gets a pointer to the NodeDescription context in this MAD.
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* SYNOPSIS
|
|
Packit |
13e616 |
*/
|
|
Packit |
13e616 |
static inline osm_nd_context_t *osm_madw_get_nd_context_ptr(IN const osm_madw_t
|
|
Packit |
13e616 |
* p_madw)
|
|
Packit |
13e616 |
{
|
|
Packit |
13e616 |
return ((osm_nd_context_t *) & p_madw->context);
|
|
Packit |
13e616 |
}
|
|
Packit |
13e616 |
|
|
Packit |
13e616 |
/*
|
|
Packit |
13e616 |
* PARAMETERS
|
|
Packit |
13e616 |
* p_madw
|
|
Packit |
13e616 |
* [in] Pointer to an osm_madw_t object.
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* RETURN VALUES
|
|
Packit |
13e616 |
* Pointer to the start of the context structure.
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* NOTES
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* SEE ALSO
|
|
Packit |
13e616 |
*********/
|
|
Packit |
13e616 |
|
|
Packit |
13e616 |
/****f* OpenSM: MAD Wrapper/osm_madw_get_lft_context_ptr
|
|
Packit |
13e616 |
* NAME
|
|
Packit |
13e616 |
* osm_madw_get_lft_context_ptr
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* DESCRIPTION
|
|
Packit |
13e616 |
* Gets a pointer to the LFT context in this MAD.
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* SYNOPSIS
|
|
Packit |
13e616 |
*/
|
|
Packit |
13e616 |
static inline osm_lft_context_t *osm_madw_get_lft_context_ptr(IN const
|
|
Packit |
13e616 |
osm_madw_t *
|
|
Packit |
13e616 |
p_madw)
|
|
Packit |
13e616 |
{
|
|
Packit |
13e616 |
return ((osm_lft_context_t *) & p_madw->context);
|
|
Packit |
13e616 |
}
|
|
Packit |
13e616 |
|
|
Packit |
13e616 |
/*
|
|
Packit |
13e616 |
* PARAMETERS
|
|
Packit |
13e616 |
* p_madw
|
|
Packit |
13e616 |
* [in] Pointer to an osm_madw_t object.
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* RETURN VALUES
|
|
Packit |
13e616 |
* Pointer to the start of the context structure.
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* NOTES
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* SEE ALSO
|
|
Packit |
13e616 |
*********/
|
|
Packit |
13e616 |
|
|
Packit |
13e616 |
/****f* OpenSM: MAD Wrapper/osm_madw_get_mft_context_ptr
|
|
Packit |
13e616 |
* NAME
|
|
Packit |
13e616 |
* osm_madw_get_mft_context_ptr
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* DESCRIPTION
|
|
Packit |
13e616 |
* Gets a pointer to the MFT context in this MAD.
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* SYNOPSIS
|
|
Packit |
13e616 |
*/
|
|
Packit |
13e616 |
static inline osm_mft_context_t *osm_madw_get_mft_context_ptr(IN const
|
|
Packit |
13e616 |
osm_madw_t *
|
|
Packit |
13e616 |
p_madw)
|
|
Packit |
13e616 |
{
|
|
Packit |
13e616 |
return ((osm_mft_context_t *) & p_madw->context);
|
|
Packit |
13e616 |
}
|
|
Packit |
13e616 |
|
|
Packit |
13e616 |
/*
|
|
Packit |
13e616 |
* PARAMETERS
|
|
Packit |
13e616 |
* p_madw
|
|
Packit |
13e616 |
* [in] Pointer to an osm_madw_t object.
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* RETURN VALUES
|
|
Packit |
13e616 |
* Pointer to the start of the context structure.
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* NOTES
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* SEE ALSO
|
|
Packit |
13e616 |
*********/
|
|
Packit |
13e616 |
|
|
Packit |
13e616 |
/****f* OpenSM: MAD Wrapper/osm_madw_get_si_context_ptr
|
|
Packit |
13e616 |
* NAME
|
|
Packit |
13e616 |
* osm_madw_get_si_context_ptr
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* DESCRIPTION
|
|
Packit |
13e616 |
* Gets a pointer to the SwitchInfo context in this MAD.
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* SYNOPSIS
|
|
Packit |
13e616 |
*/
|
|
Packit |
13e616 |
static inline osm_si_context_t *osm_madw_get_si_context_ptr(IN const osm_madw_t
|
|
Packit |
13e616 |
* p_madw)
|
|
Packit |
13e616 |
{
|
|
Packit |
13e616 |
return ((osm_si_context_t *) & p_madw->context);
|
|
Packit |
13e616 |
}
|
|
Packit |
13e616 |
|
|
Packit |
13e616 |
/*
|
|
Packit |
13e616 |
* PARAMETERS
|
|
Packit |
13e616 |
* p_madw
|
|
Packit |
13e616 |
* [in] Pointer to an osm_madw_t object.
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* RETURN VALUES
|
|
Packit |
13e616 |
* Pointer to the start of the context structure.
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* NOTES
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* SEE ALSO
|
|
Packit |
13e616 |
*********/
|
|
Packit |
13e616 |
|
|
Packit |
13e616 |
/****f* OpenSM: MAD Wrapper/osm_madw_get_smi_context_ptr
|
|
Packit |
13e616 |
* NAME
|
|
Packit |
13e616 |
* osm_madw_get_smi_context_ptr
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* DESCRIPTION
|
|
Packit |
13e616 |
* Gets a pointer to the SMInfo context in this MAD.
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* SYNOPSIS
|
|
Packit |
13e616 |
*/
|
|
Packit |
13e616 |
static inline osm_smi_context_t *osm_madw_get_smi_context_ptr(IN const
|
|
Packit |
13e616 |
osm_madw_t *
|
|
Packit |
13e616 |
p_madw)
|
|
Packit |
13e616 |
{
|
|
Packit |
13e616 |
return ((osm_smi_context_t *) & p_madw->context);
|
|
Packit |
13e616 |
}
|
|
Packit |
13e616 |
|
|
Packit |
13e616 |
/*
|
|
Packit |
13e616 |
* PARAMETERS
|
|
Packit |
13e616 |
* p_madw
|
|
Packit |
13e616 |
* [in] Pointer to an osm_madw_t object.
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* RETURN VALUES
|
|
Packit |
13e616 |
* Pointer to the start of the context structure.
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* NOTES
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* SEE ALSO
|
|
Packit |
13e616 |
*********/
|
|
Packit |
13e616 |
|
|
Packit |
13e616 |
/****f* OpenSM: MAD Wrapper/osm_madw_get_pkey_context_ptr
|
|
Packit |
13e616 |
* NAME
|
|
Packit |
13e616 |
* osm_madw_get_pkey_context_ptr
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* DESCRIPTION
|
|
Packit |
13e616 |
* Gets a pointer to the P_Key context in this MAD.
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* SYNOPSIS
|
|
Packit |
13e616 |
*/
|
|
Packit |
13e616 |
static inline osm_pkey_context_t *osm_madw_get_pkey_context_ptr(IN const
|
|
Packit |
13e616 |
osm_madw_t *
|
|
Packit |
13e616 |
p_madw)
|
|
Packit |
13e616 |
{
|
|
Packit |
13e616 |
return ((osm_pkey_context_t *) & p_madw->context);
|
|
Packit |
13e616 |
}
|
|
Packit |
13e616 |
|
|
Packit |
13e616 |
/*
|
|
Packit |
13e616 |
* PARAMETERS
|
|
Packit |
13e616 |
* p_madw
|
|
Packit |
13e616 |
* [in] Pointer to an osm_madw_t object.
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* RETURN VALUES
|
|
Packit |
13e616 |
* Pointer to the start of the context structure.
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* NOTES
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* SEE ALSO
|
|
Packit |
13e616 |
*********/
|
|
Packit |
13e616 |
|
|
Packit |
13e616 |
/****f* OpenSM: MAD Wrapper/osm_madw_get_slvl_context_ptr
|
|
Packit |
13e616 |
* NAME
|
|
Packit |
13e616 |
* osm_madw_get_slvl_context_ptr
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* DESCRIPTION
|
|
Packit |
13e616 |
* Gets a pointer to the PortInfo context in this MAD.
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* SYNOPSIS
|
|
Packit |
13e616 |
*/
|
|
Packit |
13e616 |
static inline osm_slvl_context_t *osm_madw_get_slvl_context_ptr(IN const
|
|
Packit |
13e616 |
osm_madw_t *
|
|
Packit |
13e616 |
p_madw)
|
|
Packit |
13e616 |
{
|
|
Packit |
13e616 |
return ((osm_slvl_context_t *) & p_madw->context);
|
|
Packit |
13e616 |
}
|
|
Packit |
13e616 |
|
|
Packit |
13e616 |
/*
|
|
Packit |
13e616 |
* PARAMETERS
|
|
Packit |
13e616 |
* p_madw
|
|
Packit |
13e616 |
* [in] Pointer to an osm_madw_t object.
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* RETURN VALUES
|
|
Packit |
13e616 |
* Pointer to the start of the context structure.
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* NOTES
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* SEE ALSO
|
|
Packit |
13e616 |
*********/
|
|
Packit |
13e616 |
|
|
Packit |
13e616 |
/****f* OpenSM: MAD Wrapper/osm_madw_get_vla_context_ptr
|
|
Packit |
13e616 |
* NAME
|
|
Packit |
13e616 |
* osm_madw_get_vla_context_ptr
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* DESCRIPTION
|
|
Packit |
13e616 |
* Gets a pointer to the Vl Arb context in this MAD.
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* SYNOPSIS
|
|
Packit |
13e616 |
*/
|
|
Packit |
13e616 |
static inline osm_vla_context_t *osm_madw_get_vla_context_ptr(IN const
|
|
Packit |
13e616 |
osm_madw_t *
|
|
Packit |
13e616 |
p_madw)
|
|
Packit |
13e616 |
{
|
|
Packit |
13e616 |
return ((osm_vla_context_t *) & p_madw->context);
|
|
Packit |
13e616 |
}
|
|
Packit |
13e616 |
|
|
Packit |
13e616 |
/*
|
|
Packit |
13e616 |
* PARAMETERS
|
|
Packit |
13e616 |
* p_madw
|
|
Packit |
13e616 |
* [in] Pointer to an osm_madw_t object.
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* RETURN VALUES
|
|
Packit |
13e616 |
* Pointer to the start of the context structure.
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* NOTES
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* SEE ALSO
|
|
Packit |
13e616 |
*********/
|
|
Packit |
13e616 |
|
|
Packit |
13e616 |
#ifndef OSM_VENDOR_INTF_OPENIB
|
|
Packit |
13e616 |
/****f* OpenSM: MAD Wrapper/osm_madw_get_arbitrary_context_ptr
|
|
Packit |
13e616 |
* NAME
|
|
Packit |
13e616 |
* osm_madw_get_arbitrary_context_ptr
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* DESCRIPTION
|
|
Packit |
13e616 |
* Gets a pointer to the arbitrary context in this MAD.
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* SYNOPSIS
|
|
Packit |
13e616 |
*/
|
|
Packit |
13e616 |
static inline osm_arbitrary_context_t *osm_madw_get_arbitrary_context_ptr(IN
|
|
Packit |
13e616 |
const
|
|
Packit |
13e616 |
osm_madw_t
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
const
|
|
Packit |
13e616 |
p_madw)
|
|
Packit |
13e616 |
{
|
|
Packit |
13e616 |
return ((osm_arbitrary_context_t *) & p_madw->context);
|
|
Packit |
13e616 |
}
|
|
Packit |
13e616 |
|
|
Packit |
13e616 |
/*
|
|
Packit |
13e616 |
* PARAMETERS
|
|
Packit |
13e616 |
* p_madw
|
|
Packit |
13e616 |
* [in] Pointer to an osm_madw_t object.
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* RETURN VALUES
|
|
Packit |
13e616 |
* Pointer to the start of the context structure.
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* NOTES
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* SEE ALSO
|
|
Packit |
13e616 |
*********/
|
|
Packit |
13e616 |
#endif
|
|
Packit |
13e616 |
|
|
Packit |
13e616 |
/****f* OpenSM: MAD Wrapper/osm_madw_get_vend_ptr
|
|
Packit |
13e616 |
* NAME
|
|
Packit |
13e616 |
* osm_madw_get_vend_ptr
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* DESCRIPTION
|
|
Packit |
13e616 |
* Gets a pointer to the vendor specific MAD wrapper component.
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* SYNOPSIS
|
|
Packit |
13e616 |
*/
|
|
Packit |
13e616 |
static inline osm_vend_wrap_t *osm_madw_get_vend_ptr(IN const osm_madw_t *
|
|
Packit |
13e616 |
p_madw)
|
|
Packit |
13e616 |
{
|
|
Packit |
13e616 |
return ((osm_vend_wrap_t *) & p_madw->vend_wrap);
|
|
Packit |
13e616 |
}
|
|
Packit |
13e616 |
|
|
Packit |
13e616 |
/*
|
|
Packit |
13e616 |
* PARAMETERS
|
|
Packit |
13e616 |
* p_madw
|
|
Packit |
13e616 |
* [in] Pointer to an osm_madw_t object.
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* RETURN VALUES
|
|
Packit |
13e616 |
* Gets a pointer to the vendor specific MAD wrapper component.
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* NOTES
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* SEE ALSO
|
|
Packit |
13e616 |
*********/
|
|
Packit |
13e616 |
|
|
Packit |
13e616 |
/****f* OpenSM: MAD Wrapper/osm_madw_get_bind_handle
|
|
Packit |
13e616 |
* NAME
|
|
Packit |
13e616 |
* osm_madw_get_bind_handle
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* DESCRIPTION
|
|
Packit |
13e616 |
* Returns the bind handle associated with this MAD.
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* SYNOPSIS
|
|
Packit |
13e616 |
*/
|
|
Packit |
13e616 |
static inline osm_bind_handle_t
|
|
Packit |
13e616 |
osm_madw_get_bind_handle(IN const osm_madw_t * p_madw)
|
|
Packit |
13e616 |
{
|
|
Packit |
13e616 |
return ((osm_bind_handle_t) p_madw->h_bind);
|
|
Packit |
13e616 |
}
|
|
Packit |
13e616 |
|
|
Packit |
13e616 |
/*
|
|
Packit |
13e616 |
* PARAMETERS
|
|
Packit |
13e616 |
* p_madw
|
|
Packit |
13e616 |
* [in] Pointer to an osm_madw_t object.
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* RETURN VALUES
|
|
Packit |
13e616 |
* Returns the bind handle associated with this MAD.
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* NOTES
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* SEE ALSO
|
|
Packit |
13e616 |
*********/
|
|
Packit |
13e616 |
|
|
Packit |
13e616 |
/****f* OpenSM: MAD Wrapper/osm_madw_get_mad_addr_ptr
|
|
Packit |
13e616 |
* NAME
|
|
Packit |
13e616 |
* osm_madw_get_mad_addr_ptr
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* DESCRIPTION
|
|
Packit |
13e616 |
* Returns the mad address structure associated with this MAD.
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* SYNOPSIS
|
|
Packit |
13e616 |
*/
|
|
Packit |
13e616 |
static inline osm_mad_addr_t *osm_madw_get_mad_addr_ptr(IN const osm_madw_t *
|
|
Packit |
13e616 |
p_madw)
|
|
Packit |
13e616 |
{
|
|
Packit |
13e616 |
return ((osm_mad_addr_t *) & p_madw->mad_addr);
|
|
Packit |
13e616 |
}
|
|
Packit |
13e616 |
|
|
Packit |
13e616 |
/*
|
|
Packit |
13e616 |
* PARAMETERS
|
|
Packit |
13e616 |
* p_madw
|
|
Packit |
13e616 |
* [in] Pointer to an osm_madw_t object.
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* RETURN VALUES
|
|
Packit |
13e616 |
* Returns the mad address structure associated with this MAD.
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* NOTES
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* SEE ALSO
|
|
Packit |
13e616 |
*********/
|
|
Packit |
13e616 |
|
|
Packit |
13e616 |
/****f* OpenSM: MAD Wrapper/osm_madw_get_mad_ptr
|
|
Packit |
13e616 |
* NAME
|
|
Packit |
13e616 |
* osm_madw_get_mad_ptr
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* DESCRIPTION
|
|
Packit |
13e616 |
* Returns the mad address structure associated with this MAD.
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* SYNOPSIS
|
|
Packit |
13e616 |
*/
|
|
Packit |
13e616 |
static inline ib_mad_t *osm_madw_get_mad_ptr(IN const osm_madw_t * p_madw)
|
|
Packit |
13e616 |
{
|
|
Packit |
13e616 |
return ((ib_mad_t *) p_madw->p_mad);
|
|
Packit |
13e616 |
}
|
|
Packit |
13e616 |
|
|
Packit |
13e616 |
/*
|
|
Packit |
13e616 |
* PARAMETERS
|
|
Packit |
13e616 |
* p_madw
|
|
Packit |
13e616 |
* [in] Pointer to an osm_madw_t object.
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* RETURN VALUES
|
|
Packit |
13e616 |
* Returns the mad address structure associated with this MAD.
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* NOTES
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* SEE ALSO
|
|
Packit |
13e616 |
*********/
|
|
Packit |
13e616 |
|
|
Packit |
13e616 |
/****f* OpenSM: MAD Wrapper/osm_madw_get_err_msg
|
|
Packit |
13e616 |
* NAME
|
|
Packit |
13e616 |
* osm_madw_get_err_msg
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* DESCRIPTION
|
|
Packit |
13e616 |
* Returns the message with which to post this mad wrapper if
|
|
Packit |
13e616 |
* an error occurs during processing the mad.
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* SYNOPSIS
|
|
Packit |
13e616 |
*/
|
|
Packit |
13e616 |
static inline cl_disp_msgid_t osm_madw_get_err_msg(IN const osm_madw_t * p_madw)
|
|
Packit |
13e616 |
{
|
|
Packit |
13e616 |
return ((cl_disp_msgid_t) p_madw->fail_msg);
|
|
Packit |
13e616 |
}
|
|
Packit |
13e616 |
|
|
Packit |
13e616 |
/*
|
|
Packit |
13e616 |
* PARAMETERS
|
|
Packit |
13e616 |
* p_madw
|
|
Packit |
13e616 |
* [in] Pointer to an osm_madw_t object.
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* RETURN VALUES
|
|
Packit |
13e616 |
* Returns the message with which to post this mad wrapper if
|
|
Packit |
13e616 |
* an error occurs during processing the mad.
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* NOTES
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* SEE ALSO
|
|
Packit |
13e616 |
*********/
|
|
Packit |
13e616 |
|
|
Packit |
13e616 |
/****f* OpenSM: MAD Wrapper/osm_madw_set_mad
|
|
Packit |
13e616 |
* NAME
|
|
Packit |
13e616 |
* osm_madw_set_mad
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* DESCRIPTION
|
|
Packit |
13e616 |
* Associates a wire MAD with this MAD Wrapper object.
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* SYNOPSIS
|
|
Packit |
13e616 |
*/
|
|
Packit |
13e616 |
static inline void osm_madw_set_mad(IN osm_madw_t * p_madw,
|
|
Packit |
13e616 |
IN const ib_mad_t * p_mad)
|
|
Packit |
13e616 |
{
|
|
Packit |
13e616 |
p_madw->p_mad = p_mad;
|
|
Packit |
13e616 |
}
|
|
Packit |
13e616 |
|
|
Packit |
13e616 |
/*
|
|
Packit |
13e616 |
* PARAMETERS
|
|
Packit |
13e616 |
* p_madw
|
|
Packit |
13e616 |
* [in] Pointer to an osm_madw_t object.
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* p_mad
|
|
Packit |
13e616 |
* [in] Pointer to the wire MAD to attach to this wrapper.
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* RETURN VALUES
|
|
Packit |
13e616 |
* None.
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* NOTES
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* SEE ALSO
|
|
Packit |
13e616 |
*********/
|
|
Packit |
13e616 |
|
|
Packit |
13e616 |
/****f* OpenSM: MAD Wrapper/osm_madw_copy_context
|
|
Packit |
13e616 |
* NAME
|
|
Packit |
13e616 |
* osm_madw_copy_context
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* DESCRIPTION
|
|
Packit |
13e616 |
* Copies the controller context from one MAD Wrapper to another.
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* SYNOPSIS
|
|
Packit |
13e616 |
*/
|
|
Packit |
13e616 |
static inline void osm_madw_copy_context(IN osm_madw_t * p_dest,
|
|
Packit |
13e616 |
IN const osm_madw_t * p_src)
|
|
Packit |
13e616 |
{
|
|
Packit |
13e616 |
p_dest->context = p_src->context;
|
|
Packit |
13e616 |
}
|
|
Packit |
13e616 |
|
|
Packit |
13e616 |
/*
|
|
Packit |
13e616 |
* PARAMETERS
|
|
Packit |
13e616 |
* p_dest
|
|
Packit |
13e616 |
* [in] Pointer to the destination osm_madw_t object.
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* p_src
|
|
Packit |
13e616 |
* [in] Pointer to the source osm_madw_t object.
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* RETURN VALUES
|
|
Packit |
13e616 |
* None.
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* NOTES
|
|
Packit |
13e616 |
*
|
|
Packit |
13e616 |
* SEE ALSO
|
|
Packit |
13e616 |
*********/
|
|
Packit |
13e616 |
|
|
Packit |
13e616 |
END_C_DECLS
|
|
Packit |
13e616 |
#endif /* _OSM_MADW_H_ */
|