这是 ibdmsh 命令,可以使用我们的多个免费在线工作站之一在 OnWorks 免费托管服务提供商中运行,例如 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器
程序:
您的姓名
IBDMSH IB 数据模型 - 扩展的 TCL 外壳
商品描述
IBDMSH 是一个 TCL shell,扩展了 IB 数据模型的接口。 使用这个外壳
您将编写直接访问 IB 数据模型对象和函数的 TCL 代码。
以下小节提供了这些对象和 API 的详细定义。
国际商业发展管理委员会 常量
Node 类型
节点对象类型字段使用以下常量
[常量:int] $IB_UNKNOWN_NODE_TYPE = IB_UNKNOWN_NODE_TYPE
[常量:int] $IB_SW_NODE = IB_SW_NODE
[常量:int] $IB_CA_NODE = IB_CA_NODE
历史记录 冗长 旗
以下常量用作全局变量的参数位
$FabricUtilsVerboseLevel
[常量:int] $FABU_LOG_NONE = 0x0
[常量:int] $FABU_LOG_ERROR = 0x1
[常量:int] $FABU_LOG_INFO = 0x2
[常量:int] $FABU_LOG_VERBOSE = 0x4
国际商业发展管理委员会 全球
日志级别:设置为 FABU_LOG* 值
[全局:int] $FabricUtilsVerboseLevel
国际商业发展管理委员会 对象
本节描述了 IBDM 公开的各种对象类型。
IBDM 公开了它的一些内部对象。 各种返回的对象标识符
函数调用根据以下规则格式化:
面料: 面料:
系统:系统: :
系统端口: 系统端口: : :
节点: 节点: :
端口: 端口: : /
IBDM 对象是标准的 Swig-Tcl 对象。 因此,它们有两种用途:
变量,对象。
变量/指针:
对于每个对象属性,都提供了“get”和“set”方法。
方法的格式为: _ _ .
“set”方法仅适用于读/写属性。
示例:
设置节点 [ibdm_get_nodes]
设置节点 [lindex $nodes 0]
IBNode_numPorts_get $节点
对象:
给定一个对象指针,可以将其转换为 Tcl“对象”
使用以下命令:
-这个
一旦宣布可以结合使用
使用标准的“configure”和“cget”命令。
示例(继上一个之后):
IBFabric VaTech -这个 $fabric
VaTech cget -NodeByName
删除一个对象符号(并启用它到另一个对象符号的映射)
指针)使用:
改名“”
例如:
重命名 VaTech ""
程 国际港务局
以下是 IB Port 类的不同字段和方法,它们描述了一个
IB 设备(芯片)物理端口。
[会员数据:返回IBPort *] -p_remotePort
连接在链路另一端的端口
[ 成员数据:返回 IBSysPort * ] -p_sysPort
连接到的系统端口(如果有)
[会员数据:返回IBNode *] -p_node
端口所属的节点。
[ 成员数据:返回 int ] -num
物理端口由编号标识。
[成员数据:返回无符号整数] -base_lid
分配给端口的底盖。
[ 会员数据:返回 IBLinkWidth * ] -width
端口的链路宽度
[会员数据:返回IBLinkSpeed * ] -speed
端口的链路速度
[成员数据:返回无符号整数] -counter1
各种算法使用的通用值
[ 构造函数:返回 IBPort * ] IBPort 名称 p_nodePtr 编号
IBPort 构造函数
[成员:返回 new_uint64_t] guid_get
获取端口的guid
[成员:返回无效] guid_set guid
修改端口的guid
[ 成员:返回 new_string ] getName
获取端口名称:一个设备端口连接到系统端口(前面板)返回
前面板端口名称。
[会员:返回无效]连接p_otherPort?宽度? ?速度?
将端口连接到另一个具有可选宽度和速度参数的节点端口
[成员:返回整数]断开连接
断开端口。 成功返回0
程 节点
IB Node类代表单个IB设备(芯片)
[ 成员数据:返回字符串 * ] -name
节点名称(芯片的实例名称)
[ 成员数据:返回 IBNodeType ] -type
$IB_SW_NODE 或 $IB_CA_NODE
[成员数据:返回 uint16_t * ] -devId
节点的设备ID
[成员数据:返回 uint16_t * ] -revId
设备修订 ID。
[会员数据:返回 uint16_t * ] -vendId
设备供应商 ID。
[ 成员数据:返回字符串 * ] - 属性
任意属性的逗号分隔字符串 k=v
[会员数据:返回 uint8_t ] -rank
节点的等级(0是根)
[会员数据:返回IBSystem *] -p_system
我们属于什么系统
[ 成员数据:返回 IBFabric * ] -p_fabric
我们属于什么面料。
[成员数据:返回无符号整数] -numPorts
物理端口数
[ 成员数据:返回 vec_pport * ] -Ports
所有端口的向量
[ 成员数据:返回 vec_vec_byte * ] -MinHopsTable
从每个端口到每个目标 LID 所需的跳数表
[成员数据:返回 vec_byte * ] -LFT
此节点的 LFT(仅适用于交换机)是目标端口的长向量 -
索引是 LID
[成员:返回 new_uint64_t] guid_get
获取节点 GUID
[成员:返回无效] guid_set guid
设置节点 GUID
[ 构造函数:返回 IBNode * ] IBNode 名称 n p_fab p_sys t np
承包商
[成员:返回IBPort *] makePort num
按编号创建新端口(如果需要)返回端口指针
[成员:返回IBPort *] getPort num
通过数字 num = 1..N 获取端口:
[成员:返回无效] setHops p_port 盖子跳数
设置给定端口的最小跳数(* 是全部)盖子对
[ 成员:返回 int ] getHops p_port 盖子
获取为给定端口或所有端口定义的最小跳数
[ 成员:返回 IBPort * ] getFirstMinHopPort 盖子
扫描节点端口并找到第一个到盖子最小跳的端口
[成员:返回无效] setLFTPortForLid 盖子端口号
为给定的 LID 设置线性转发表
[ 成员:返回 int ] getLFTPortForLid 盖子
获取给定 LID 的 LFT
[成员:返回无效] repHopTable
转储节点的最小跳表
程 系统端口
IBSysPort 类代表系统前面板或后面板上的 IB 插头
[ 成员数据:返回字符串 * ] -name
端口的前面板名称(silk)
[ 成员数据:返回 IBSysPort * ] -p_remoteSysPort
如果连接另一端系统端口
[会员数据:返回IBSystem *] -p_system
它所属的系统
[会员数据:返回IBPort *] -p_nodePort
它连接到的节点端口。
[ 构造函数:返回 IBSysPort * ] IBSysPort 名称 n p_sys
构造函数
[会员:返回无效]连接p_otherSysPort?宽度? ?速度?
连接两个 SysPort
[成员:返回整数]断开连接
断开 SysPort(和端口)。 成功返回0
程 IB系统
IBSystem 类代表整个机箱
[ 成员数据:返回字符串 * ] -name
系统的“主机”名称
[ 成员数据:返回字符串 * ] -type
什么是Cougar、Buffalo、MTS2400等类型的对应的IBNL文件
应该存在 - 定义此系统类型
[ 成员数据:返回 IBFabric * ] -p_fabric
系统所属的结构
[ 成员数据:返回 map_str_pnode * ] -NodeByName
按名称提供节点指针
[ 成员数据:返回 map_str_psysport * ] -PortByName
按名称提供指向 SysPort 的指针的映射
[ 构造函数:返回 IBSystem * ] IBSystem 名称 n p_fab t
承包商
[成员:返回 new_uint64_t] guid_get
获取系统镜像GUID
[成员:返回无效] guid_set guid
设置系统镜像 GUID
[成员:返回IBSysPort *] makeSysPort pName
确保我们定义了端口(如果没有就定义它)
[成员:返回IBPort *] getSysPortNodePortByName sysPortName
按名称获取给定 sys 端口的节点端口
[ 成员:返回 IBSysPort * ] getSysPort 名称
按名称获取系统端口
程 IB面料
表示由系统组成的整个 IB 子网
[ 成员数据:返回 map_str_pnode * ] -NodeByName
提供节点名称和指针对的列表
[ 成员数据:返回 map_str_psys * ] -SystemByName
提供系统名称和指针对的列表
[ 成员数据:返回 vec_pport * ] -PortByLid
提供系统端口名称和指针对的列表
[ 成员数据:返回 map_guid_pnode * ] -NodeByGuid
提供节点 guid 和节点指针对的列表
[ 会员数据:返回 map_guid_psys * ] -SystemByGuid
提供系统镜像 guid 和系统指针对的列表
[ 成员数据:返回 map_guid_pport * ] -PortByGuid
提供端口 guid 和端口指针对的列表
[成员数据:返回无符号整数] -minLid
跟踪使用的最小盖子。
[成员数据:返回无符号整数] -maxLid
跟踪使用的最大盖子。
[成员数据:返回无符号整数] -lmc
使用的 LMC 值
[成员:返回 IBNode *] makeNode n p_sys 类型 numPorts
按名称获取节点(创建一个不存在的节点)
[ 成员:返回 IBNode * ] getNode 名称
按名称获取节点
[ 成员:返回 list_pnode * ] getNodesByType 类型
返回匹配所需类型的节点指针列表
[ 成员:返回 IBSystem * ] makeGenericSystem 名称
创建一个新的通用系统 - 基本上是一个用于节点的空容器......
[成员:返回IBSystem *] makeSystem名称类型
创建一个新系统 - 类型必须有一个注册工厂。
[成员:返回IBSystem *] getSystem名称
按名称获取系统
[成员:返回IBSystem *] getSystemByGuid guid
通过其 guid 获取系统
[成员:返回IBNode *] getNodeByGuid guid
通过其 guid 获取节点
[成员:返回IBPort *] getPortByGuid guid
通过其 guid 获取端口
[会员:返回无效] addCable t1 n1 p1 t2 n2 p2 ?width? ?速度?
添加给定两组节点类型、节点名称和端口号的电缆。 可选
使用给定的宽度和速度进行连接
[成员:返回整数] parseCables fn
解析电缆文件并构建结构
[成员:返回整数] parseTopology fn
解析拓扑文件并构建结构
[成员:返回int] addLink type1 numPorts1 sysGuid1 nodeGuid1 portGuid1 vend1
devId1 rev1 desc1 Lid1 portNum1 type2 numPorts2 sysGuid2 nodeGuid2 portGuid2 vend2 devId2
rev2 desc2 盖子2 portNum2?宽度? ?速度?
将链接添加到结构中 - 这将根据需要创建系统和节点。
[成员:返回整数] parseSubnetLinks fn
解析 OpenSM subnet.lst 文件并从中构建结构。
[成员:返回整数] parseFdbFile fn
解析 OpenSM FDB 转储文件并填写开关 LFT 表
[成员:返回整数] parseMCFdbFile fn
解析 OpenSM MCFDBs 文件并相应地设置 MFT 表
[成员:返回整数] parsePSLFile fn
解析 SL 映射文件的路径。 每行带有:src_node_guid DLID SL
由信用循环检查使用
[成员:返回整数] parseSLVLFile fn
解析 SLVL 表文件。 每行保存: sw_node_guid in_port out_port 0x(sl0)(sl1)
0x(sl2)(sl3)...
[成员:返回无效] setLidPort 盖子 p_port
设置盖子端口
[ 成员:返回 IBPort * ] getPortByLid 盖子
通过盖子获取端口
[ 返回 IBFabric * ] new_IBFabric
构建一个新的织物
[返回无效] delete_IBFabric p_fabric
破坏织物
国际商业发展管理委员会 主要工作内容
本节提供有关 IBDM 公开的功能的详细信息。 顺序如下
常规 IBDM 流程中的预期顺序。 他们都返回 0 成功。
子网路 实用工具
该文件包含一组要在子网上运行以模拟 OpenSM 初始化的实用程序
并分析结果:
[返回整数] ibdmAssignLids p_smNodePort ?lmc?
使用可选的 LMC 分配 LID(每个端口有多个 LID)
[返回整数] ibdmCalcMinHopTables p_fabric
计算并填充运行 OpenSM 风格路由所需的 MinHopTables。
[返回整数] ibdmCalcUpDnMinHopTbls p_fabric rootNodesNameRex
按照 Up/Down 规则计算并填充 MinHopTables。
[返回整数] ibdmOsmRoute p_fabric
使用 OpenSM 样式路由路由结构
[返回整数] ibdmEnhancedRoute p_fabric
使用增强的 OpenSM 风格路由路由结构,更好地支持 LMC > 0
[返回 int] ibdmFatTreeRoute p_fabric rootNodes
使用仅适合全胖树的算法路由结构
[返回整数] ibdmFatTreeAnalysis p_fabric
分析面料,看它是否是一棵肥树,如果是,则将其布线
[返回整数] ibdmVerifyCAtoCARoutes p_fabric
确保所有 (H)CA 根据 LFT 设置相互连接
[返回整数] ibdmVerifyAllPaths p_fabric
确保所有交换机和 (H)CA 基于 LFT 相互连接
设置
[返回整数] ibdmAnalyzeLoops p_fabric
严格检查信用循环。 该算法进行了全面而准确的检查
但它对信用循环路径的报告很难解释。 如果你知道根源
树的(或树是对称的)最好使用
ibdmReportNonUpDownCa2CaPaths
[返回 list_pnode ] ibdmFindSymmetricalTreeRoots p_fabric
分析树的拓扑结构并根据树的对称性找到树的根
[返回 list_pnode ] ibdmFindRootNodesByMinHop p_fabric
基于 MinHopTable 找到树的根。 允许 5% 的不对称
[返回整数] ibdmRankFabricByRoots p_fabric rootNodes
给定根节点(名称)列表,对节点进行排名(root = 0)
[返回 int] ibdmReportNonUpDownCa2CaPaths p_fabric rootNodes
分析路由以确保维护 Up/Down 规则
[返回 int] ibdmCheckMulticastGroups p_fabric
验证组播路由的连通性
[返回 int] ibdmCheckFabricMCGrpsForCreditLoopPotential p_fabric rootNodes
分析组播路由以确保它遵守 Up/Down 规则
[返回整数] ibdmLinkCoverageAnalysis p_fabric rootNodes
为从一组源到目的地的传输准备一个时间表,以便
在每个阶段都没有过度订阅的链接,毕竟所有阶段
面料的链接被 excersized
追踪 实用工具
这些功能允许跟踪报告访问节点的路径
[返回整数] ibdmTraceDRPathRoute p_smNodePort drPathPortNums
从给定端口跟踪定向路由路径
[返回 int] ibdmTraceRouteByMinHops p_fabric 滑动 dlid
沿着 MinHop 从源 LID 到目标 LID 跟踪路径
[返回 int] ibdmTraceRouteByLFT p_fabric slid dlid hops p_nodesList
跟踪 LFT 更新跳数和节点列表变量后的路径
拓扑 匹配 实用工具
以下实用程序匹配两个结构,提供不匹配消息和
统一面料
[返回整数] ibdmMatchFabrics p_spec_fabric p_discovered_fabric anchorNodeName
锚端口号 锚端口Guid
将基于拓扑的结构与从 enchor 端口开始的发现结构相匹配
[返回整数] ibdmBuildMergedFabric p_spec_fabric p_discovered_fabric p_merged_fabric
使用 ibdmMatchFabrics 匹配后,用信息填充“合并结构”
为匹配的节点合并
拥塞 分析 实用工具
提供跟踪和报告链接超额订阅的能力
[返回整数] ibdmCongInit p_fabric
初始化跟踪系统
[返回整数] ibdmCongCleanup p_fabric
清理计数器并释放
[返回整数] ibdmCongClear p_fabric
清理计数器
[返回 int] ibdmCongTrace p_fabric srcLid dstLid
跟踪更新链接使用信息的 LID 之间的路径
[返回整数] ibdmCongReport p_fabric
报告产生的拥塞信息
[返回整数] ibdmCongDump p_fabric
转储所有拥塞跟踪信息
使用 onworks.net 服务在线使用 ibdmsh