|
Packit Service |
54dbc3 |
/*
|
|
Packit Service |
54dbc3 |
* Copyright (c) 2004-2009 Voltaire, Inc. All rights reserved.
|
|
Packit Service |
54dbc3 |
* Copyright (c) 2002-2011 Mellanox Technologies LTD. All rights reserved.
|
|
Packit Service |
54dbc3 |
* Copyright (c) 1996-2003 Intel Corporation. All rights reserved.
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* This software is available to you under a choice of one of two
|
|
Packit Service |
54dbc3 |
* licenses. You may choose to be licensed under the terms of the GNU
|
|
Packit Service |
54dbc3 |
* General Public License (GPL) Version 2, available from the file
|
|
Packit Service |
54dbc3 |
* COPYING in the main directory of this source tree, or the
|
|
Packit Service |
54dbc3 |
* OpenIB.org BSD license below:
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* Redistribution and use in source and binary forms, with or
|
|
Packit Service |
54dbc3 |
* without modification, are permitted provided that the following
|
|
Packit Service |
54dbc3 |
* conditions are met:
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* - Redistributions of source code must retain the above
|
|
Packit Service |
54dbc3 |
* copyright notice, this list of conditions and the following
|
|
Packit Service |
54dbc3 |
* disclaimer.
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* - Redistributions in binary form must reproduce the above
|
|
Packit Service |
54dbc3 |
* copyright notice, this list of conditions and the following
|
|
Packit Service |
54dbc3 |
* disclaimer in the documentation and/or other materials
|
|
Packit Service |
54dbc3 |
* provided with the distribution.
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
Packit Service |
54dbc3 |
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
Packit Service |
54dbc3 |
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
|
Packit Service |
54dbc3 |
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
|
|
Packit Service |
54dbc3 |
* BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
|
|
Packit Service |
54dbc3 |
* ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
|
Packit Service |
54dbc3 |
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
Packit Service |
54dbc3 |
* SOFTWARE.
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
*/
|
|
Packit Service |
54dbc3 |
|
|
Packit Service |
54dbc3 |
/*
|
|
Packit Service |
54dbc3 |
* Abstract:
|
|
Packit Service |
54dbc3 |
* Declaration of osm_sm_t.
|
|
Packit Service |
54dbc3 |
* This object represents an IBA subnet.
|
|
Packit Service |
54dbc3 |
* This object is part of the OpenSM family of objects.
|
|
Packit Service |
54dbc3 |
*/
|
|
Packit Service |
54dbc3 |
|
|
Packit Service |
54dbc3 |
#ifndef _OSM_SM_H_
|
|
Packit Service |
54dbc3 |
#define _OSM_SM_H_
|
|
Packit Service |
54dbc3 |
|
|
Packit Service |
54dbc3 |
#include <iba/ib_types.h>
|
|
Packit Service |
54dbc3 |
#include <complib/cl_passivelock.h>
|
|
Packit Service |
54dbc3 |
#include <complib/cl_event.h>
|
|
Packit Service |
54dbc3 |
#include <complib/cl_thread.h>
|
|
Packit Service |
54dbc3 |
#include <complib/cl_dispatcher.h>
|
|
Packit Service |
54dbc3 |
#include <complib/cl_event_wheel.h>
|
|
Packit Service |
54dbc3 |
#include <vendor/osm_vendor_api.h>
|
|
Packit Service |
54dbc3 |
#include <opensm/osm_stats.h>
|
|
Packit Service |
54dbc3 |
#include <opensm/osm_subnet.h>
|
|
Packit Service |
54dbc3 |
#include <opensm/osm_vl15intf.h>
|
|
Packit Service |
54dbc3 |
#include <opensm/osm_mad_pool.h>
|
|
Packit Service |
54dbc3 |
#include <opensm/osm_log.h>
|
|
Packit Service |
54dbc3 |
#include <opensm/osm_sm_mad_ctrl.h>
|
|
Packit Service |
54dbc3 |
#include <opensm/osm_lid_mgr.h>
|
|
Packit Service |
54dbc3 |
#include <opensm/osm_ucast_mgr.h>
|
|
Packit Service |
54dbc3 |
#include <opensm/osm_port.h>
|
|
Packit Service |
54dbc3 |
#include <opensm/osm_db.h>
|
|
Packit Service |
54dbc3 |
#include <opensm/osm_remote_sm.h>
|
|
Packit Service |
54dbc3 |
|
|
Packit Service |
54dbc3 |
#ifdef __cplusplus
|
|
Packit Service |
54dbc3 |
# define BEGIN_C_DECLS extern "C" {
|
|
Packit Service |
54dbc3 |
# define END_C_DECLS }
|
|
Packit Service |
54dbc3 |
#else /* !__cplusplus */
|
|
Packit Service |
54dbc3 |
# define BEGIN_C_DECLS
|
|
Packit Service |
54dbc3 |
# define END_C_DECLS
|
|
Packit Service |
54dbc3 |
#endif /* __cplusplus */
|
|
Packit Service |
54dbc3 |
|
|
Packit Service |
54dbc3 |
BEGIN_C_DECLS
|
|
Packit Service |
54dbc3 |
/****h* OpenSM/SM
|
|
Packit Service |
54dbc3 |
* NAME
|
|
Packit Service |
54dbc3 |
* SM
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* DESCRIPTION
|
|
Packit Service |
54dbc3 |
* The SM object encapsulates the information needed by the
|
|
Packit Service |
54dbc3 |
* OpenSM to instantiate a subnet manager. The OpenSM allocates
|
|
Packit Service |
54dbc3 |
* one SM object per subnet manager.
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* The SM object is thread safe.
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* This object should be treated as opaque and should
|
|
Packit Service |
54dbc3 |
* be manipulated only through the provided functions.
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* AUTHOR
|
|
Packit Service |
54dbc3 |
* Steve King, Intel
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
*********/
|
|
Packit Service |
54dbc3 |
/****s* OpenSM: SM/osm_sm_t
|
|
Packit Service |
54dbc3 |
* NAME
|
|
Packit Service |
54dbc3 |
* osm_sm_t
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* DESCRIPTION
|
|
Packit Service |
54dbc3 |
* Subnet Manager structure.
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* This object should be treated as opaque and should
|
|
Packit Service |
54dbc3 |
* be manipulated only through the provided functions.
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* SYNOPSIS
|
|
Packit Service |
54dbc3 |
*/
|
|
Packit Service |
54dbc3 |
typedef struct osm_sm {
|
|
Packit Service |
54dbc3 |
osm_thread_state_t thread_state;
|
|
Packit Service |
54dbc3 |
unsigned signal_mask;
|
|
Packit Service |
54dbc3 |
cl_spinlock_t signal_lock;
|
|
Packit Service |
54dbc3 |
cl_spinlock_t state_lock;
|
|
Packit Service |
54dbc3 |
cl_event_t signal_event;
|
|
Packit Service |
54dbc3 |
cl_event_t subnet_up_event;
|
|
Packit Service |
54dbc3 |
cl_timer_t sweep_timer;
|
|
Packit Service |
54dbc3 |
cl_timer_t polling_timer;
|
|
Packit Service |
54dbc3 |
cl_event_wheel_t trap_aging_tracker;
|
|
Packit Service |
54dbc3 |
cl_thread_t sweeper;
|
|
Packit Service |
54dbc3 |
unsigned master_sm_found;
|
|
Packit Service |
54dbc3 |
uint32_t retry_number;
|
|
Packit Service |
54dbc3 |
ib_net64_t master_sm_guid;
|
|
Packit Service |
54dbc3 |
ib_net64_t polling_sm_guid;
|
|
Packit Service |
54dbc3 |
osm_subn_t *p_subn;
|
|
Packit Service |
54dbc3 |
osm_db_t *p_db;
|
|
Packit Service |
54dbc3 |
osm_vendor_t *p_vendor;
|
|
Packit Service |
54dbc3 |
osm_log_t *p_log;
|
|
Packit Service |
54dbc3 |
osm_mad_pool_t *p_mad_pool;
|
|
Packit Service |
54dbc3 |
osm_vl15_t *p_vl15;
|
|
Packit Service |
54dbc3 |
cl_dispatcher_t *p_disp;
|
|
Packit Service |
54dbc3 |
cl_plock_t *p_lock;
|
|
Packit Service |
54dbc3 |
atomic32_t sm_trans_id;
|
|
Packit Service |
54dbc3 |
uint16_t mlids_init_max;
|
|
Packit Service |
54dbc3 |
unsigned mlids_req_max;
|
|
Packit Service |
54dbc3 |
uint8_t *mlids_req;
|
|
Packit Service |
54dbc3 |
osm_sm_mad_ctrl_t mad_ctrl;
|
|
Packit Service |
54dbc3 |
osm_lid_mgr_t lid_mgr;
|
|
Packit Service |
54dbc3 |
osm_ucast_mgr_t ucast_mgr;
|
|
Packit Service |
54dbc3 |
cl_disp_reg_handle_t sweep_fail_disp_h;
|
|
Packit Service |
54dbc3 |
cl_disp_reg_handle_t ni_disp_h;
|
|
Packit Service |
54dbc3 |
cl_disp_reg_handle_t pi_disp_h;
|
|
Packit Service |
54dbc3 |
cl_disp_reg_handle_t gi_disp_h;
|
|
Packit Service |
54dbc3 |
cl_disp_reg_handle_t nd_disp_h;
|
|
Packit Service |
54dbc3 |
cl_disp_reg_handle_t si_disp_h;
|
|
Packit Service |
54dbc3 |
cl_disp_reg_handle_t lft_disp_h;
|
|
Packit Service |
54dbc3 |
cl_disp_reg_handle_t mft_disp_h;
|
|
Packit Service |
54dbc3 |
cl_disp_reg_handle_t sm_info_disp_h;
|
|
Packit Service |
54dbc3 |
cl_disp_reg_handle_t trap_disp_h;
|
|
Packit Service |
54dbc3 |
cl_disp_reg_handle_t slvl_disp_h;
|
|
Packit Service |
54dbc3 |
cl_disp_reg_handle_t vla_disp_h;
|
|
Packit Service |
54dbc3 |
cl_disp_reg_handle_t pkey_disp_h;
|
|
Packit Service |
54dbc3 |
cl_disp_reg_handle_t mlnx_epi_disp_h;
|
|
Packit Service |
54dbc3 |
} osm_sm_t;
|
|
Packit Service |
54dbc3 |
/*
|
|
Packit Service |
54dbc3 |
* FIELDS
|
|
Packit Service |
54dbc3 |
* p_subn
|
|
Packit Service |
54dbc3 |
* Pointer to the Subnet object for this subnet.
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* p_db
|
|
Packit Service |
54dbc3 |
* Pointer to the database (persistency) object
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* p_vendor
|
|
Packit Service |
54dbc3 |
* Pointer to the vendor specific interfaces object.
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* p_log
|
|
Packit Service |
54dbc3 |
* Pointer to the log object.
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* p_mad_pool
|
|
Packit Service |
54dbc3 |
* Pointer to the MAD pool.
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* p_vl15
|
|
Packit Service |
54dbc3 |
* Pointer to the VL15 interface.
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* mad_ctrl
|
|
Packit Service |
54dbc3 |
* MAD Controller.
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* p_disp
|
|
Packit Service |
54dbc3 |
* Pointer to the Dispatcher.
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* p_lock
|
|
Packit Service |
54dbc3 |
* Pointer to the serializing lock.
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* SEE ALSO
|
|
Packit Service |
54dbc3 |
* SM object
|
|
Packit Service |
54dbc3 |
*********/
|
|
Packit Service |
54dbc3 |
|
|
Packit Service |
54dbc3 |
/****f* OpenSM: SM/osm_sm_construct
|
|
Packit Service |
54dbc3 |
* NAME
|
|
Packit Service |
54dbc3 |
* osm_sm_construct
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* DESCRIPTION
|
|
Packit Service |
54dbc3 |
* This function constructs an SM object.
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* SYNOPSIS
|
|
Packit Service |
54dbc3 |
*/
|
|
Packit Service |
54dbc3 |
void osm_sm_construct(IN osm_sm_t * p_sm);
|
|
Packit Service |
54dbc3 |
/*
|
|
Packit Service |
54dbc3 |
* PARAMETERS
|
|
Packit Service |
54dbc3 |
* p_sm
|
|
Packit Service |
54dbc3 |
* [in] Pointer to a SM object to construct.
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* RETURN VALUE
|
|
Packit Service |
54dbc3 |
* This function does not return a value.
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* NOTES
|
|
Packit Service |
54dbc3 |
* Allows calling osm_sm_init, osm_sm_destroy
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* Calling osm_sm_construct is a prerequisite to calling any other
|
|
Packit Service |
54dbc3 |
* method except osm_sm_init.
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* SEE ALSO
|
|
Packit Service |
54dbc3 |
* SM object, osm_sm_init, osm_sm_destroy
|
|
Packit Service |
54dbc3 |
*********/
|
|
Packit Service |
54dbc3 |
|
|
Packit Service |
54dbc3 |
/****f* OpenSM: SM/osm_sm_shutdown
|
|
Packit Service |
54dbc3 |
* NAME
|
|
Packit Service |
54dbc3 |
* osm_sm_shutdown
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* DESCRIPTION
|
|
Packit Service |
54dbc3 |
* The osm_sm_shutdown function shutdowns an SM, stopping the sweeper
|
|
Packit Service |
54dbc3 |
* and unregistering all messages from the dispatcher
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* SYNOPSIS
|
|
Packit Service |
54dbc3 |
*/
|
|
Packit Service |
54dbc3 |
void osm_sm_shutdown(IN osm_sm_t * p_sm);
|
|
Packit Service |
54dbc3 |
/*
|
|
Packit Service |
54dbc3 |
* PARAMETERS
|
|
Packit Service |
54dbc3 |
* p_sm
|
|
Packit Service |
54dbc3 |
* [in] Pointer to a SM object to shutdown.
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* RETURN VALUE
|
|
Packit Service |
54dbc3 |
* This function does not return a value.
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* SEE ALSO
|
|
Packit Service |
54dbc3 |
* SM object, osm_sm_construct, osm_sm_init
|
|
Packit Service |
54dbc3 |
*********/
|
|
Packit Service |
54dbc3 |
|
|
Packit Service |
54dbc3 |
/****f* OpenSM: SM/osm_sm_destroy
|
|
Packit Service |
54dbc3 |
* NAME
|
|
Packit Service |
54dbc3 |
* osm_sm_destroy
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* DESCRIPTION
|
|
Packit Service |
54dbc3 |
* The osm_sm_destroy function destroys an SM, releasing
|
|
Packit Service |
54dbc3 |
* all resources.
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* SYNOPSIS
|
|
Packit Service |
54dbc3 |
*/
|
|
Packit Service |
54dbc3 |
void osm_sm_destroy(IN osm_sm_t * p_sm);
|
|
Packit Service |
54dbc3 |
/*
|
|
Packit Service |
54dbc3 |
* PARAMETERS
|
|
Packit Service |
54dbc3 |
* p_sm
|
|
Packit Service |
54dbc3 |
* [in] Pointer to a SM object to destroy.
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* RETURN VALUE
|
|
Packit Service |
54dbc3 |
* This function does not return a value.
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* NOTES
|
|
Packit Service |
54dbc3 |
* Performs any necessary cleanup of the specified SM object.
|
|
Packit Service |
54dbc3 |
* Further operations should not be attempted on the destroyed object.
|
|
Packit Service |
54dbc3 |
* This function should only be called after a call to osm_sm_construct or
|
|
Packit Service |
54dbc3 |
* osm_sm_init.
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* SEE ALSO
|
|
Packit Service |
54dbc3 |
* SM object, osm_sm_construct, osm_sm_init
|
|
Packit Service |
54dbc3 |
*********/
|
|
Packit Service |
54dbc3 |
|
|
Packit Service |
54dbc3 |
/****f* OpenSM: SM/osm_sm_init
|
|
Packit Service |
54dbc3 |
* NAME
|
|
Packit Service |
54dbc3 |
* osm_sm_init
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* DESCRIPTION
|
|
Packit Service |
54dbc3 |
* The osm_sm_init function initializes a SM object for use.
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* SYNOPSIS
|
|
Packit Service |
54dbc3 |
*/
|
|
Packit Service |
54dbc3 |
ib_api_status_t osm_sm_init(IN osm_sm_t * p_sm, IN osm_subn_t * p_subn,
|
|
Packit Service |
54dbc3 |
IN osm_db_t * p_db, IN osm_vendor_t * p_vendor,
|
|
Packit Service |
54dbc3 |
IN osm_mad_pool_t * p_mad_pool,
|
|
Packit Service |
54dbc3 |
IN osm_vl15_t * p_vl15, IN osm_log_t * p_log,
|
|
Packit Service |
54dbc3 |
IN osm_stats_t * p_stats,
|
|
Packit Service |
54dbc3 |
IN cl_dispatcher_t * p_disp, IN cl_plock_t * p_lock);
|
|
Packit Service |
54dbc3 |
/*
|
|
Packit Service |
54dbc3 |
* PARAMETERS
|
|
Packit Service |
54dbc3 |
* p_sm
|
|
Packit Service |
54dbc3 |
* [in] Pointer to an osm_sm_t object to initialize.
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* p_subn
|
|
Packit Service |
54dbc3 |
* [in] Pointer to the Subnet object for this subnet.
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* p_vendor
|
|
Packit Service |
54dbc3 |
* [in] Pointer to the vendor specific interfaces object.
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* p_mad_pool
|
|
Packit Service |
54dbc3 |
* [in] Pointer to the MAD pool.
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* p_vl15
|
|
Packit Service |
54dbc3 |
* [in] Pointer to the VL15 interface.
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* p_log
|
|
Packit Service |
54dbc3 |
* [in] Pointer to the log object.
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* p_stats
|
|
Packit Service |
54dbc3 |
* [in] Pointer to the statistics object.
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* p_disp
|
|
Packit Service |
54dbc3 |
* [in] Pointer to the OpenSM central Dispatcher.
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* p_lock
|
|
Packit Service |
54dbc3 |
* [in] Pointer to the OpenSM serializing lock.
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* RETURN VALUES
|
|
Packit Service |
54dbc3 |
* IB_SUCCESS if the SM object was initialized successfully.
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* NOTES
|
|
Packit Service |
54dbc3 |
* Allows calling other SM methods.
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* SEE ALSO
|
|
Packit Service |
54dbc3 |
* SM object, osm_sm_construct, osm_sm_destroy
|
|
Packit Service |
54dbc3 |
*********/
|
|
Packit Service |
54dbc3 |
|
|
Packit Service |
54dbc3 |
/****f* OpenSM: SM/osm_sm_signal
|
|
Packit Service |
54dbc3 |
* NAME
|
|
Packit Service |
54dbc3 |
* osm_sm_signal
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* DESCRIPTION
|
|
Packit Service |
54dbc3 |
* Signal event to SM
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* SYNOPSIS
|
|
Packit Service |
54dbc3 |
*/
|
|
Packit Service |
54dbc3 |
void osm_sm_signal(IN osm_sm_t * p_sm, osm_signal_t signal);
|
|
Packit Service |
54dbc3 |
/*
|
|
Packit Service |
54dbc3 |
* PARAMETERS
|
|
Packit Service |
54dbc3 |
* p_sm
|
|
Packit Service |
54dbc3 |
* [in] Pointer to an osm_sm_t object.
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* signal
|
|
Packit Service |
54dbc3 |
* [in] sm signal number.
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* NOTES
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* SEE ALSO
|
|
Packit Service |
54dbc3 |
* SM object
|
|
Packit Service |
54dbc3 |
*********/
|
|
Packit Service |
54dbc3 |
|
|
Packit Service |
54dbc3 |
/****f* OpenSM: SM/osm_sm_sweep
|
|
Packit Service |
54dbc3 |
* NAME
|
|
Packit Service |
54dbc3 |
* osm_sm_sweep
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* DESCRIPTION
|
|
Packit Service |
54dbc3 |
* Initiates a subnet sweep.
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* SYNOPSIS
|
|
Packit Service |
54dbc3 |
*/
|
|
Packit Service |
54dbc3 |
void osm_sm_sweep(IN osm_sm_t * p_sm);
|
|
Packit Service |
54dbc3 |
/*
|
|
Packit Service |
54dbc3 |
* PARAMETERS
|
|
Packit Service |
54dbc3 |
* p_sm
|
|
Packit Service |
54dbc3 |
* [in] Pointer to an osm_sm_t object.
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* RETURN VALUES
|
|
Packit Service |
54dbc3 |
* IB_SUCCESS if the sweep completed successfully.
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* NOTES
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* SEE ALSO
|
|
Packit Service |
54dbc3 |
* SM object
|
|
Packit Service |
54dbc3 |
*********/
|
|
Packit Service |
54dbc3 |
|
|
Packit Service |
54dbc3 |
/****f* OpenSM: SM/osm_sm_bind
|
|
Packit Service |
54dbc3 |
* NAME
|
|
Packit Service |
54dbc3 |
* osm_sm_bind
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* DESCRIPTION
|
|
Packit Service |
54dbc3 |
* Binds the sm object to a port guid.
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* SYNOPSIS
|
|
Packit Service |
54dbc3 |
*/
|
|
Packit Service |
54dbc3 |
ib_api_status_t osm_sm_bind(IN osm_sm_t * p_sm, IN ib_net64_t port_guid);
|
|
Packit Service |
54dbc3 |
/*
|
|
Packit Service |
54dbc3 |
* PARAMETERS
|
|
Packit Service |
54dbc3 |
* p_sm
|
|
Packit Service |
54dbc3 |
* [in] Pointer to an osm_sm_t object to bind.
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* port_guid
|
|
Packit Service |
54dbc3 |
* [in] Local port GUID with which to bind.
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* RETURN VALUES
|
|
Packit Service |
54dbc3 |
* None
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* NOTES
|
|
Packit Service |
54dbc3 |
* A given SM object can only be bound to one port at a time.
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* SEE ALSO
|
|
Packit Service |
54dbc3 |
*********/
|
|
Packit Service |
54dbc3 |
|
|
Packit Service |
54dbc3 |
/****f* OpenSM: SM/osm_req_get
|
|
Packit Service |
54dbc3 |
* NAME
|
|
Packit Service |
54dbc3 |
* osm_req_get
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* DESCRIPTION
|
|
Packit Service |
54dbc3 |
* Starts the process to transmit a directed route request for
|
|
Packit Service |
54dbc3 |
* the attribute.
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* SYNOPSIS
|
|
Packit Service |
54dbc3 |
*/
|
|
Packit Service |
54dbc3 |
ib_api_status_t osm_req_get(IN osm_sm_t * sm, IN const osm_dr_path_t * p_path,
|
|
Packit Service |
54dbc3 |
IN ib_net16_t attr_id, IN ib_net32_t attr_mod,
|
|
Packit Service |
54dbc3 |
IN boolean_t find_mkey, IN ib_net64_t m_key,
|
|
Packit Service |
54dbc3 |
IN uint32_t timeout, IN cl_disp_msgid_t err_msg,
|
|
Packit Service |
54dbc3 |
IN const osm_madw_context_t * p_context);
|
|
Packit Service |
54dbc3 |
/*
|
|
Packit Service |
54dbc3 |
* PARAMETERS
|
|
Packit Service |
54dbc3 |
* sm
|
|
Packit Service |
54dbc3 |
* [in] Pointer to an osm_sm_t object.
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* p_path
|
|
Packit Service |
54dbc3 |
* [in] Pointer to the directed route path to the node
|
|
Packit Service |
54dbc3 |
* from which to retrieve the attribute.
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* attr_id
|
|
Packit Service |
54dbc3 |
* [in] Attribute ID to request.
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* attr_mod
|
|
Packit Service |
54dbc3 |
* [in] Attribute modifier for this request.
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* find_mkey
|
|
Packit Service |
54dbc3 |
* [in] Flag to indicate whether the M_Key should be looked up for
|
|
Packit Service |
54dbc3 |
* this MAD.
|
|
Packit Service |
54dbc3 |
* m_key
|
|
Packit Service |
54dbc3 |
* [in] M_Key value to be send with this MAD. Applied, only when
|
|
Packit Service |
54dbc3 |
* find_mkey is FALSE.
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* timeout
|
|
Packit Service |
54dbc3 |
* [in] Transaction timeout in msec.
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* err_msg
|
|
Packit Service |
54dbc3 |
* [in] Message id with which to post this MAD if an error occurs.
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* p_context
|
|
Packit Service |
54dbc3 |
* [in] Mad wrapper context structure to be copied into the wrapper
|
|
Packit Service |
54dbc3 |
* context, and thus visible to the recipient of the response.
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* RETURN VALUES
|
|
Packit Service |
54dbc3 |
* IB_SUCCESS if the request was successful.
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* NOTES
|
|
Packit Service |
54dbc3 |
* This function asynchronously requests the specified attribute.
|
|
Packit Service |
54dbc3 |
* The response from the node will be routed through the Dispatcher
|
|
Packit Service |
54dbc3 |
* to the appropriate receive controller object.
|
|
Packit Service |
54dbc3 |
*********/
|
|
Packit Service |
54dbc3 |
|
|
Packit Service |
54dbc3 |
/****f* OpenSM: SM/osm_send_req_mad
|
|
Packit Service |
54dbc3 |
* NAME
|
|
Packit Service |
54dbc3 |
* osm_send_req_mad
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* DESCRIPTION
|
|
Packit Service |
54dbc3 |
* Starts the process to transmit a preallocated/predefined directed route
|
|
Packit Service |
54dbc3 |
* Set() request.
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* SYNOPSIS
|
|
Packit Service |
54dbc3 |
*/
|
|
Packit Service |
54dbc3 |
void osm_send_req_mad(IN osm_sm_t * sm, IN osm_madw_t *p_madw);
|
|
Packit Service |
54dbc3 |
/*
|
|
Packit Service |
54dbc3 |
* PARAMETERS
|
|
Packit Service |
54dbc3 |
* sm
|
|
Packit Service |
54dbc3 |
* [in] Pointer to an osm_sm_t object.
|
|
Packit Service |
54dbc3 |
* p_madw
|
|
Packit Service |
54dbc3 |
* [in] Pointer to a preallocated MAD buffer
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
*********/
|
|
Packit Service |
54dbc3 |
|
|
Packit Service |
54dbc3 |
/***f* OpenSM: SM/osm_prepare_req_set
|
|
Packit Service |
54dbc3 |
* NAME
|
|
Packit Service |
54dbc3 |
* osm_prepare_req_set
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* DESCRIPTION
|
|
Packit Service |
54dbc3 |
* Preallocate and fill a directed route Set() MAD w/o sending it.
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* SYNOPSIS
|
|
Packit Service |
54dbc3 |
*/
|
|
Packit Service |
54dbc3 |
osm_madw_t *osm_prepare_req_set(IN osm_sm_t * sm, IN const osm_dr_path_t * p_path,
|
|
Packit Service |
54dbc3 |
IN const uint8_t * p_payload,
|
|
Packit Service |
54dbc3 |
IN size_t payload_size, IN ib_net16_t attr_id,
|
|
Packit Service |
54dbc3 |
IN ib_net32_t attr_mod, IN boolean_t find_mkey,
|
|
Packit Service |
54dbc3 |
IN ib_net64_t m_key, IN uint32_t timeout,
|
|
Packit Service |
54dbc3 |
IN cl_disp_msgid_t err_msg,
|
|
Packit Service |
54dbc3 |
IN const osm_madw_context_t * p_context);
|
|
Packit Service |
54dbc3 |
/*
|
|
Packit Service |
54dbc3 |
* PARAMETERS
|
|
Packit Service |
54dbc3 |
* sm
|
|
Packit Service |
54dbc3 |
* [in] Pointer to an osm_sm_t object.
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* p_path
|
|
Packit Service |
54dbc3 |
* [in] Pointer to the directed route path of the recipient.
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* p_payload
|
|
Packit Service |
54dbc3 |
* [in] Pointer to the SMP payload to send.
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* payload_size
|
|
Packit Service |
54dbc3 |
* [in] The size of the payload to be copied to the SMP data field.
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* attr_id
|
|
Packit Service |
54dbc3 |
* [in] Attribute ID to request.
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* attr_mod
|
|
Packit Service |
54dbc3 |
* [in] Attribute modifier for this request.
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* find_mkey
|
|
Packit Service |
54dbc3 |
* [in] Flag to indicate whether the M_Key should be looked up for
|
|
Packit Service |
54dbc3 |
* this MAD.
|
|
Packit Service |
54dbc3 |
* m_key
|
|
Packit Service |
54dbc3 |
* [in] M_Key value to be send with this MAD. Applied, only when
|
|
Packit Service |
54dbc3 |
* find_mkey is FALSE.
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* timeout
|
|
Packit Service |
54dbc3 |
* [in] Transaction timeout in msec.
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* err_msg
|
|
Packit Service |
54dbc3 |
* [in] Message id with which to post this MAD if an error occurs.
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* p_context
|
|
Packit Service |
54dbc3 |
* [in] Mad wrapper context structure to be copied into the wrapper
|
|
Packit Service |
54dbc3 |
* context, and thus visible to the recipient of the response.
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* RETURN VALUES
|
|
Packit Service |
54dbc3 |
* Pointer the MAD buffer in case of success and NULL in case of failure.
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
*********/
|
|
Packit Service |
54dbc3 |
|
|
Packit Service |
54dbc3 |
/****f* OpenSM: SM/osm_req_set
|
|
Packit Service |
54dbc3 |
* NAME
|
|
Packit Service |
54dbc3 |
* osm_req_set
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* DESCRIPTION
|
|
Packit Service |
54dbc3 |
* Starts the process to transmit a directed route Set() request.
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* SYNOPSIS
|
|
Packit Service |
54dbc3 |
*/
|
|
Packit Service |
54dbc3 |
ib_api_status_t osm_req_set(IN osm_sm_t * sm, IN const osm_dr_path_t * p_path,
|
|
Packit Service |
54dbc3 |
IN const uint8_t * p_payload,
|
|
Packit Service |
54dbc3 |
IN size_t payload_size, IN ib_net16_t attr_id,
|
|
Packit Service |
54dbc3 |
IN ib_net32_t attr_mod, IN boolean_t find_mkey,
|
|
Packit Service |
54dbc3 |
IN ib_net64_t m_key, IN uint32_t timeout,
|
|
Packit Service |
54dbc3 |
IN cl_disp_msgid_t err_msg,
|
|
Packit Service |
54dbc3 |
IN const osm_madw_context_t * p_context);
|
|
Packit Service |
54dbc3 |
/*
|
|
Packit Service |
54dbc3 |
* PARAMETERS
|
|
Packit Service |
54dbc3 |
* sm
|
|
Packit Service |
54dbc3 |
* [in] Pointer to an osm_sm_t object.
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* p_path
|
|
Packit Service |
54dbc3 |
* [in] Pointer to the directed route path of the recipient.
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* p_payload
|
|
Packit Service |
54dbc3 |
* [in] Pointer to the SMP payload to send.
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* payload_size
|
|
Packit Service |
54dbc3 |
* [in] The size of the payload to be copied to the SMP data field.
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* attr_id
|
|
Packit Service |
54dbc3 |
* [in] Attribute ID to request.
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* attr_mod
|
|
Packit Service |
54dbc3 |
* [in] Attribute modifier for this request.
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* find_mkey
|
|
Packit Service |
54dbc3 |
* [in] Flag to indicate whether the M_Key should be looked up for
|
|
Packit Service |
54dbc3 |
* this MAD.
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* m_key
|
|
Packit Service |
54dbc3 |
* [in] M_Key value to be send with this MAD. Applied, only when
|
|
Packit Service |
54dbc3 |
* find_mkey is FALSE.
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* timeout
|
|
Packit Service |
54dbc3 |
* [in] Transaction timeout in msec.
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* err_msg
|
|
Packit Service |
54dbc3 |
* [in] Message id with which to post this MAD if an error occurs.
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* p_context
|
|
Packit Service |
54dbc3 |
* [in] Mad wrapper context structure to be copied into the wrapper
|
|
Packit Service |
54dbc3 |
* context, and thus visible to the recipient of the response.
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* RETURN VALUES
|
|
Packit Service |
54dbc3 |
* IB_SUCCESS if the request was successful.
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* NOTES
|
|
Packit Service |
54dbc3 |
* This function asynchronously requests the specified attribute.
|
|
Packit Service |
54dbc3 |
* The response from the node will be routed through the Dispatcher
|
|
Packit Service |
54dbc3 |
* to the appropriate receive controller object.
|
|
Packit Service |
54dbc3 |
*********/
|
|
Packit Service |
54dbc3 |
/****f* OpenSM: SM/osm_resp_send
|
|
Packit Service |
54dbc3 |
* NAME
|
|
Packit Service |
54dbc3 |
* osm_resp_send
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* DESCRIPTION
|
|
Packit Service |
54dbc3 |
* Starts the process to transmit a directed route response.
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* SYNOPSIS
|
|
Packit Service |
54dbc3 |
*/
|
|
Packit Service |
54dbc3 |
ib_api_status_t osm_resp_send(IN osm_sm_t * sm,
|
|
Packit Service |
54dbc3 |
IN const osm_madw_t * p_req_madw,
|
|
Packit Service |
54dbc3 |
IN ib_net16_t status,
|
|
Packit Service |
54dbc3 |
IN const uint8_t * p_payload);
|
|
Packit Service |
54dbc3 |
/*
|
|
Packit Service |
54dbc3 |
* PARAMETERS
|
|
Packit Service |
54dbc3 |
* p_resp
|
|
Packit Service |
54dbc3 |
* [in] Pointer to an osm_resp_t object.
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* p_madw
|
|
Packit Service |
54dbc3 |
* [in] Pointer to the MAD Wrapper object for the requesting MAD
|
|
Packit Service |
54dbc3 |
* to which this response is generated.
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* status
|
|
Packit Service |
54dbc3 |
* [in] Status for this response.
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* p_payload
|
|
Packit Service |
54dbc3 |
* [in] Pointer to the payload of the response MAD.
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* RETURN VALUES
|
|
Packit Service |
54dbc3 |
* IB_SUCCESS if the response was successful.
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
*********/
|
|
Packit Service |
54dbc3 |
|
|
Packit Service |
54dbc3 |
/****f* OpenSM: SM/osm_sm_reroute_mlid
|
|
Packit Service |
54dbc3 |
* NAME
|
|
Packit Service |
54dbc3 |
* osm_sm_reroute_mlid
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* DESCRIPTION
|
|
Packit Service |
54dbc3 |
* Requests (schedules) MLID rerouting
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* SYNOPSIS
|
|
Packit Service |
54dbc3 |
*/
|
|
Packit Service |
54dbc3 |
void osm_sm_reroute_mlid(osm_sm_t * sm, ib_net16_t mlid);
|
|
Packit Service |
54dbc3 |
|
|
Packit Service |
54dbc3 |
/*
|
|
Packit Service |
54dbc3 |
* PARAMETERS
|
|
Packit Service |
54dbc3 |
* sm
|
|
Packit Service |
54dbc3 |
* [in] Pointer to an osm_sm_t object.
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* mlid
|
|
Packit Service |
54dbc3 |
* [in] MLID value
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* RETURN VALUES
|
|
Packit Service |
54dbc3 |
* None
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* NOTES
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* SEE ALSO
|
|
Packit Service |
54dbc3 |
*********/
|
|
Packit Service |
54dbc3 |
|
|
Packit Service |
54dbc3 |
/****f* OpenSM: OpenSM/osm_sm_wait_for_subnet_up
|
|
Packit Service |
54dbc3 |
* NAME
|
|
Packit Service |
54dbc3 |
* osm_sm_wait_for_subnet_up
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* DESCRIPTION
|
|
Packit Service |
54dbc3 |
* Blocks the calling thread until the subnet is up.
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* SYNOPSIS
|
|
Packit Service |
54dbc3 |
*/
|
|
Packit Service |
54dbc3 |
static inline cl_status_t osm_sm_wait_for_subnet_up(IN osm_sm_t * p_sm,
|
|
Packit Service |
54dbc3 |
IN uint32_t wait_us,
|
|
Packit Service |
54dbc3 |
IN boolean_t interruptible)
|
|
Packit Service |
54dbc3 |
{
|
|
Packit Service |
54dbc3 |
return cl_event_wait_on(&p_sm->subnet_up_event, wait_us, interruptible);
|
|
Packit Service |
54dbc3 |
}
|
|
Packit Service |
54dbc3 |
|
|
Packit Service |
54dbc3 |
/*
|
|
Packit Service |
54dbc3 |
* PARAMETERS
|
|
Packit Service |
54dbc3 |
* p_sm
|
|
Packit Service |
54dbc3 |
* [in] Pointer to an osm_sm_t object.
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* wait_us
|
|
Packit Service |
54dbc3 |
* [in] Number of microseconds to wait.
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* interruptible
|
|
Packit Service |
54dbc3 |
* [in] Indicates whether the wait operation can be interrupted
|
|
Packit Service |
54dbc3 |
* by external signals.
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* RETURN VALUES
|
|
Packit Service |
54dbc3 |
* CL_SUCCESS if the wait operation succeeded in response to the event
|
|
Packit Service |
54dbc3 |
* being set.
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* CL_TIMEOUT if the specified time period elapses.
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* CL_NOT_DONE if the wait was interrupted by an external signal.
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* CL_ERROR if the wait operation failed.
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* NOTES
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* SEE ALSO
|
|
Packit Service |
54dbc3 |
*********/
|
|
Packit Service |
54dbc3 |
|
|
Packit Service |
54dbc3 |
/****f* OpenSM: State Manager/osm_sm_is_greater_than
|
|
Packit Service |
54dbc3 |
* NAME
|
|
Packit Service |
54dbc3 |
* osm_sm_is_greater_than
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* DESCRIPTION
|
|
Packit Service |
54dbc3 |
* Compares two SM's (14.4.1.2)
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* SYNOPSIS
|
|
Packit Service |
54dbc3 |
*/
|
|
Packit Service |
54dbc3 |
static inline boolean_t osm_sm_is_greater_than(IN uint8_t l_priority,
|
|
Packit Service |
54dbc3 |
IN ib_net64_t l_guid,
|
|
Packit Service |
54dbc3 |
IN uint8_t r_priority,
|
|
Packit Service |
54dbc3 |
IN ib_net64_t r_guid)
|
|
Packit Service |
54dbc3 |
{
|
|
Packit Service |
54dbc3 |
return (l_priority > r_priority
|
|
Packit Service |
54dbc3 |
|| (l_priority == r_priority
|
|
Packit Service |
54dbc3 |
&& cl_ntoh64(l_guid) < cl_ntoh64(r_guid)));
|
|
Packit Service |
54dbc3 |
}
|
|
Packit Service |
54dbc3 |
|
|
Packit Service |
54dbc3 |
/*
|
|
Packit Service |
54dbc3 |
* PARAMETERS
|
|
Packit Service |
54dbc3 |
* l_priority
|
|
Packit Service |
54dbc3 |
* [in] Priority of the SM on the "left"
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* l_guid
|
|
Packit Service |
54dbc3 |
* [in] GUID of the SM on the "left"
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* r_priority
|
|
Packit Service |
54dbc3 |
* [in] Priority of the SM on the "right"
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* r_guid
|
|
Packit Service |
54dbc3 |
* [in] GUID of the SM on the "right"
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* RETURN VALUES
|
|
Packit Service |
54dbc3 |
* Return TRUE if an sm with l_priority and l_guid is higher than an sm
|
|
Packit Service |
54dbc3 |
* with r_priority and r_guid, return FALSE otherwise.
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* NOTES
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* SEE ALSO
|
|
Packit Service |
54dbc3 |
* State Manager
|
|
Packit Service |
54dbc3 |
*********/
|
|
Packit Service |
54dbc3 |
|
|
Packit Service |
54dbc3 |
/****f* OpenSM: SM State Manager/osm_sm_state_mgr_process
|
|
Packit Service |
54dbc3 |
* NAME
|
|
Packit Service |
54dbc3 |
* osm_sm_state_mgr_process
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* DESCRIPTION
|
|
Packit Service |
54dbc3 |
* Processes and maintains the states of the SM.
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* SYNOPSIS
|
|
Packit Service |
54dbc3 |
*/
|
|
Packit Service |
54dbc3 |
ib_api_status_t osm_sm_state_mgr_process(IN osm_sm_t *sm,
|
|
Packit Service |
54dbc3 |
IN osm_sm_signal_t signal);
|
|
Packit Service |
54dbc3 |
/*
|
|
Packit Service |
54dbc3 |
* PARAMETERS
|
|
Packit Service |
54dbc3 |
* sm
|
|
Packit Service |
54dbc3 |
* [in] Pointer to an osm_sm_t object.
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* signal
|
|
Packit Service |
54dbc3 |
* [in] Signal to the state SM engine.
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* RETURN VALUES
|
|
Packit Service |
54dbc3 |
* None.
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* NOTES
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* SEE ALSO
|
|
Packit Service |
54dbc3 |
* State Manager
|
|
Packit Service |
54dbc3 |
*********/
|
|
Packit Service |
54dbc3 |
|
|
Packit Service |
54dbc3 |
/****f* OpenSM: SM State Manager/osm_sm_state_mgr_signal_master_is_alive
|
|
Packit Service |
54dbc3 |
* NAME
|
|
Packit Service |
54dbc3 |
* osm_sm_state_mgr_signal_master_is_alive
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* DESCRIPTION
|
|
Packit Service |
54dbc3 |
* Signals that the remote Master SM is alive.
|
|
Packit Service |
54dbc3 |
* Need to clear the retry_number variable.
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* SYNOPSIS
|
|
Packit Service |
54dbc3 |
*/
|
|
Packit Service |
54dbc3 |
void osm_sm_state_mgr_signal_master_is_alive(IN osm_sm_t *sm);
|
|
Packit Service |
54dbc3 |
/*
|
|
Packit Service |
54dbc3 |
* PARAMETERS
|
|
Packit Service |
54dbc3 |
* sm
|
|
Packit Service |
54dbc3 |
* [in] Pointer to an osm_sm_t object.
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* RETURN VALUES
|
|
Packit Service |
54dbc3 |
* None.
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* NOTES
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* SEE ALSO
|
|
Packit Service |
54dbc3 |
* State Manager
|
|
Packit Service |
54dbc3 |
*********/
|
|
Packit Service |
54dbc3 |
|
|
Packit Service |
54dbc3 |
/****f* OpenSM: SM State Manager/osm_sm_state_mgr_check_legality
|
|
Packit Service |
54dbc3 |
* NAME
|
|
Packit Service |
54dbc3 |
* osm_sm_state_mgr_check_legality
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* DESCRIPTION
|
|
Packit Service |
54dbc3 |
* Checks the legality of the signal received, according to the
|
|
Packit Service |
54dbc3 |
* current state of the SM state machine.
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* SYNOPSIS
|
|
Packit Service |
54dbc3 |
*/
|
|
Packit Service |
54dbc3 |
ib_api_status_t osm_sm_state_mgr_check_legality(IN osm_sm_t *sm,
|
|
Packit Service |
54dbc3 |
IN osm_sm_signal_t signal);
|
|
Packit Service |
54dbc3 |
/*
|
|
Packit Service |
54dbc3 |
* PARAMETERS
|
|
Packit Service |
54dbc3 |
* sm
|
|
Packit Service |
54dbc3 |
* [in] Pointer to an osm_sm_t object.
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* signal
|
|
Packit Service |
54dbc3 |
* [in] Signal to the state SM engine.
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* RETURN VALUES
|
|
Packit Service |
54dbc3 |
* None.
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* NOTES
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* SEE ALSO
|
|
Packit Service |
54dbc3 |
* State Manager
|
|
Packit Service |
54dbc3 |
*********/
|
|
Packit Service |
54dbc3 |
|
|
Packit Service |
54dbc3 |
void osm_report_sm_state(osm_sm_t *sm);
|
|
Packit Service |
54dbc3 |
|
|
Packit Service |
54dbc3 |
/****f* OpenSM: SM State Manager/osm_send_trap144
|
|
Packit Service |
54dbc3 |
* NAME
|
|
Packit Service |
54dbc3 |
* osm_send_trap144
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* DESCRIPTION
|
|
Packit Service |
54dbc3 |
* Send trap 144 to the master SM.
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* SYNOPSIS
|
|
Packit Service |
54dbc3 |
*/
|
|
Packit Service |
54dbc3 |
int osm_send_trap144(osm_sm_t *sm, ib_net16_t local);
|
|
Packit Service |
54dbc3 |
/*
|
|
Packit Service |
54dbc3 |
* PARAMETERS
|
|
Packit Service |
54dbc3 |
* sm
|
|
Packit Service |
54dbc3 |
* [in] Pointer to an osm_sm_t object.
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* local
|
|
Packit Service |
54dbc3 |
* [in] OtherLocalChanges mask in network byte order.
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
* RETURN VALUES
|
|
Packit Service |
54dbc3 |
* 0 on success, non-zero value otherwise.
|
|
Packit Service |
54dbc3 |
*
|
|
Packit Service |
54dbc3 |
*********/
|
|
Packit Service |
54dbc3 |
|
|
Packit Service |
54dbc3 |
void osm_set_sm_priority(osm_sm_t *sm, uint8_t priority);
|
|
Packit Service |
54dbc3 |
|
|
Packit Service |
54dbc3 |
END_C_DECLS
|
|
Packit Service |
54dbc3 |
#endif /* _OSM_SM_H_ */
|