003 File Manager
Current Path:
/usr/src/contrib/ofed/opensm/include/opensm
usr
/
src
/
contrib
/
ofed
/
opensm
/
include
/
opensm
/
📁
..
📄
osm_attrib_req.h
(3.05 KB)
📄
osm_base.h
(24.34 KB)
📄
osm_config.h
(2.03 KB)
📄
osm_congestion_control.h
(4.03 KB)
📄
osm_console.h
(1.75 KB)
📄
osm_console_io.h
(3.02 KB)
📄
osm_db.h
(9.08 KB)
📄
osm_db_pack.h
(11.91 KB)
📄
osm_errors.h
(3.28 KB)
📄
osm_event_plugin.h
(6.08 KB)
📄
osm_file_ids.h
(4.11 KB)
📄
osm_guid.h
(2.16 KB)
📄
osm_helper.h
(19.39 KB)
📄
osm_inform.h
(6.37 KB)
📄
osm_lid_mgr.h
(6.53 KB)
📄
osm_log.h
(14.11 KB)
📄
osm_mad_pool.h
(8.82 KB)
📄
osm_madw.h
(23.17 KB)
📄
osm_mcast_mgr.h
(2.52 KB)
📄
osm_mcast_tbl.h
(10.22 KB)
📄
osm_mcm_port.h
(6.18 KB)
📄
osm_mesh.h
(2.56 KB)
📄
osm_msgdef.h
(4.47 KB)
📄
osm_mtree.h
(6.38 KB)
📄
osm_multicast.h
(9.89 KB)
📄
osm_node.h
(14.48 KB)
📄
osm_opensm.h
(15.86 KB)
📄
osm_partition.h
(6.19 KB)
📄
osm_path.h
(4.99 KB)
📄
osm_perfmgr.h
(7.92 KB)
📄
osm_perfmgr_db.h
(7.12 KB)
📄
osm_pkey.h
(15.96 KB)
📄
osm_port.h
(34.53 KB)
📄
osm_port_profile.h
(4.74 KB)
📄
osm_prefix_route.h
(2.2 KB)
📄
osm_qos_policy.h
(7.66 KB)
📄
osm_remote_sm.h
(4.88 KB)
📄
osm_router.h
(4.79 KB)
📄
osm_sa.h
(13.83 KB)
📄
osm_sa_mad_ctrl.h
(8.02 KB)
📄
osm_service.h
(4.66 KB)
📄
osm_sm.h
(17.84 KB)
📄
osm_sm_mad_ctrl.h
(7.54 KB)
📄
osm_stats.h
(4.92 KB)
📄
osm_subnet.h
(40.54 KB)
📄
osm_switch.h
(24.63 KB)
📄
osm_ucast_cache.h
(5.93 KB)
📄
osm_ucast_lash.h
(2.69 KB)
📄
osm_ucast_mgr.h
(7.11 KB)
📄
osm_version.h
(1.78 KB)
📄
osm_vl15intf.h
(8.96 KB)
📄
st.h
(3.21 KB)
Editing: osm_mtree.h
/* * Copyright (c) 2004-2009 Voltaire, Inc. All rights reserved. * Copyright (c) 2002-2005 Mellanox Technologies LTD. All rights reserved. * Copyright (c) 1996-2003 Intel Corporation. All rights reserved. * * This software is available to you under a choice of one of two * licenses. You may choose to be licensed under the terms of the GNU * General Public License (GPL) Version 2, available from the file * COPYING in the main directory of this source tree, or the * OpenIB.org BSD license below: * * Redistribution and use in source and binary forms, with or * without modification, are permitted provided that the following * conditions are met: * * - Redistributions of source code must retain the above * copyright notice, this list of conditions and the following * disclaimer. * * - Redistributions in binary form must reproduce the above * copyright notice, this list of conditions and the following * disclaimer in the documentation and/or other materials * provided with the distribution. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. * */ /* * Abstract: * Declaration of osm_mtree_t. * This object represents multicast spanning tree. * This object is part of the OpenSM family of objects. */ #ifndef _OSM_MTREE_H_ #define _OSM_MTREE_H_ #include <iba/ib_types.h> #include <complib/cl_qmap.h> #include <opensm/osm_base.h> #include <opensm/osm_switch.h> #ifdef __cplusplus # define BEGIN_C_DECLS extern "C" { # define END_C_DECLS } #else /* !__cplusplus */ # define BEGIN_C_DECLS # define END_C_DECLS #endif /* __cplusplus */ BEGIN_C_DECLS #define OSM_MTREE_LEAF ((void*)-1) /****h* OpenSM/Multicast Tree * NAME * Multicast Tree * * DESCRIPTION * The Multicast Tree object encapsulates the information needed by the * OpenSM to manage multicast fabric routes. It is a tree structure * in which each node in the tree represents a switch, and may have a * varying number of children. * * Multicast trees do not contain loops. * * The Multicast Tree is not thread safe, thus callers must provide * serialization. * * This object should be treated as opaque and should be * manipulated only through the provided functions. * * AUTHOR * Steve King, Intel * *********/ /****s* OpenSM: Multicast Tree/osm_mtree_node_t * NAME * osm_mtree_node_t * * DESCRIPTION * The MTree Node object encapsulates the information needed by the * OpenSM for a particular switch in the multicast tree. * * The MTree Node object is not thread safe, thus callers must provide * serialization. * * This object should be treated as opaque and should be * manipulated only through the provided functions. * * SYNOPSIS */ typedef struct osm_mtree_node { cl_map_item_t map_item; const osm_switch_t *p_sw; uint8_t max_children; struct osm_mtree_node *p_up; struct osm_mtree_node *child_array[1]; } osm_mtree_node_t; /* * FIELDS * map_item * Linkage for quick map. MUST BE FIRST ELEMENT!!! * * p_sw * Pointer to the switch represented by this tree node. * * max_children * Maximum number of child nodes of this node. Equal to the * the number of ports on the switch if the switch supports * multicast. Equal to 1 (default route) if the switch does * not support multicast. * * p_up * Pointer to the parent of this node. If this pointer is * NULL, the node is at the root of the tree. * * child_array * Array (indexed by port number) of pointers to the * child osm_mtree_node_t objects of this tree node, if any. * * SEE ALSO *********/ /****f* OpenSM: Multicast Tree/osm_mtree_node_new * NAME * osm_mtree_node_new * * DESCRIPTION * Returns an initialized a Multicast Tree object for use. * * SYNOPSIS */ osm_mtree_node_t *osm_mtree_node_new(IN const osm_switch_t * p_sw); /* * PARAMETERS * p_sw * [in] Pointer to the switch represented by this node. * * RETURN VALUES * Pointer to an initialized tree node. * * NOTES * * SEE ALSO *********/ /****f* OpenSM: Multicast Tree/osm_mtree_destroy * NAME * osm_mtree_destroy * * DESCRIPTION * Destroys a Multicast Tree object given by the p_mtn * * SYNOPSIS */ void osm_mtree_destroy(IN osm_mtree_node_t * p_mtn); /* * PARAMETERS * p_mtn * [in] Pointer to an osm_mtree_node_t object to destroy. * * RETURN VALUES * None. * * NOTES * * SEE ALSO *********/ /****f* OpenSM: Multicast Tree/osm_mtree_node_get_max_children * NAME * osm_mtree_node_get_max_children * * DESCRIPTION * Returns the number maximum number of children of this node. * The return value is 1 greater than the highest valid port * number on the switch. * * * SYNOPSIS */ static inline uint8_t osm_mtree_node_get_max_children(IN const osm_mtree_node_t * p_mtn) { return (p_mtn->max_children); } /* * PARAMETERS * p_mtn * [in] Pointer to the multicast tree node. * * RETURN VALUES * See description. * * NOTES * * SEE ALSO *********/ /****f* OpenSM: Multicast Tree/osm_mtree_node_get_child * NAME * osm_mtree_node_get_child * * DESCRIPTION * Returns the specified child node of this node. * * SYNOPSIS */ static inline osm_mtree_node_t *osm_mtree_node_get_child(IN const osm_mtree_node_t * p_mtn, IN uint8_t child) { CL_ASSERT(child < p_mtn->max_children); return (p_mtn->child_array[child]); } /* * PARAMETERS * p_mtn * [in] Pointer to the multicast tree node. * * child * [in] Index of the child to retrieve. * * RETURN VALUES * Returns the specified child node of this node. * * * NOTES * * SEE ALSO *********/ /****f* OpenSM: Multicast Tree/osm_mtree_node_get_switch_ptr * NAME * osm_mtree_node_get_switch_ptr * * DESCRIPTION * Returns a pointer to the switch object represented by this tree node. * * SYNOPSIS */ static inline const osm_switch_t *osm_mtree_node_get_switch_ptr(IN const osm_mtree_node_t * p_mtn) { return p_mtn->p_sw; } /* * PARAMETERS * p_mtn * [in] Pointer to the multicast tree node. * * child * [in] Index of the child to retrieve. * * RETURN VALUES * Returns a pointer to the switch object represented by this tree node. * * * NOTES * * SEE ALSO *********/ END_C_DECLS #endif /* _OSM_MTREE_H_ */
Upload File
Create Folder