英語フランス語スペイン語

Ad


OnWorksファビコン

ibdmsh - クラウドでオンライン

Ubuntu Online、Fedora Online、Windows オンライン エミュレーター、または MAC OS オンライン エミュレーター上の OnWorks 無料ホスティング プロバイダーで ibdmsh を実行します。

これは、Ubuntu Online、Fedora Online、Windows オンライン エミュレーター、または MAC OS オンライン エミュレーターなどの複数の無料オンライン ワークステーションの XNUMX つを使用して、OnWorks 無料ホスティング プロバイダーで実行できるコマンド ibdmsh です。

プログラム:

NAME


ibdmsh IB データ モデル - 拡張 TCL シェル

DESCRIPTION


ibdmsh IB データ モデル用のインターフェイスで拡張された TCL シェルです。 このシェルを使用するには
IB データ モデルのオブジェクトと関数に直接アクセスする TCL コードを作成します。

次のサブセクションでは、これらのオブジェクトと API の詳細な定義を説明します。

IBDM 定数


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

IBDM グローバル


ログレベル: FABU_LOG* 値に設定

[ グローバル : int ] $FabricUtilsVerboseLevel

IBDM オブジェクト


このセクションでは、IBDM によって公開されるさまざまなオブジェクト タイプについて説明します。

IBDM は、その内部オブジェクトの一部を公開します。 さまざまなメソッドによって返されるオブジェクト識別子
関数呼び出しは、次の規則に従ってフォーマットされます。

生地: 生地:

システム: システム: :

SysPort: sysport: : :

ノード: ノード: :

ポート: ポート: : /

IBDM オブジェクトは標準の Swig-Tcl オブジェクトです。 そのため、使用方法に XNUMX つの種類があります。
変数、オブジェクト。

変数/ポインタ:
各オブジェクト属性に対して、「get」メソッドと「set」メソッドが提供されます。
メソッドの形式は次のとおりです。 _ _ 。
「set」メソッドは、読み取り/書き込み属性でのみ使用できます。

例:
ノードの設定 [ibdm_get_nodes]
ノードを設定 [lindex $nodes 0]
IBNode_numPorts_get $node

オブジェクト:
オブジェクト ポインタを指定すると、それを Tcl「オブジェクト」に変換できます。
次のコマンドを使用します。
-これ

一度宣言すると、 と組み合わせて使用​​できます
標準の「configure」および「cget」コマンドを使用します。

例 (前の例に続いて):
IBFabric VaTech - この $fabric
VaTech cget -NodeByName

オブジェクト シンボルを削除するには (そして、そのオブジェクト シンボルの別のシンボルへのマッピングを有効にするには)
ポインタ) を使用します:
名前を変更する「」
たとえば、次の
VaTech の名前を「」に変更

class IBポート

以下は、IB Port クラスのさまざまなフィールドとメソッドです。
IB デバイス (チップ) の物理ポート。

[ メンバー データ: IBPort * を返します ] -p_remotePort
リンクの反対側に接続されているポート

[ メンバー データ: IBSysPort * を返します ] -p_sysPort
接続されているシステム ポート (存在する場合)

[ メンバー データ: IBNode * を返します ] -p_node
ポートが属するノード。

[メンバーデータ: int を返す] -num
物理ポートは番号で識別されます。

[メンバーデータ: unsigned int を返す] -base_lid
ポートに割り当てられたベースの蓋。

[ メンバー データ: IBLinkWidth * を返します ] -width
ポートのリンク幅

[ メンバー データ: IBLinkSpeed * を返します ] -speed
ポートのリンク速度

[メンバーデータ: unsigned int を返す] -counter1
さまざまなアルゴリズムで使用される汎用値

[ コンストラクター: IBPort * を返します ] IBPort 名 p_nodePtr 番号
IBPort コンストラクター

[ メンバー : new_uint64_t を返します ] guid_get
ポートのガイドを取得する

[メンバー: void を返す] guid_set guid
ポートの guid を変更する

[ メンバー : new_string を返します ] getName
ポート名の取得: システム ポート (フロント パネル) に接続されているデバイス ポートが返されます。
前面パネルのポート名。

[メンバー: void を返します] p_otherPort ?width? に接続します。 ?スピード?
オプションの幅と速度パラメータを使用して、ポートを別のノードのポートに接続します。

[ メンバー : int を返します ] 切断
ポートを切断します。 成功した場合は 0 を返します

class IBノード

IB ノード クラスは単一の 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
私たちが属する生地。

[メンバーデータ: unsigned int を返す] -numPorts
物理ポートの数

[ メンバー データ: vec_pport * を返します ] -ポート
すべてのポートのベクトル

[ メンバー データ: vec_vec_byte * を返します ] -MinHopsTable
各ポートから各ターゲット LID に到達するために必要なホップ数の表

[ メンバーデータ: vec_byte * を返します ] -LFT
ターゲット ポートの長いベクトルであるこのノードの LFT (スイッチのみ) -
インデックスはLIDです

[ メンバー : new_uint64_t を返します ] guid_get
ノードGUIDを取得する

[メンバー: void を返す] guid_set guid
ノードGUIDを設定する

[ コンストラクター: IBNode * を返します ] IBNode 名 n p_fab p_sys t np
建設業者

[ メンバー : IBPort * を返します ] makePort num
番号を指定して新しいポートを作成し (必要な場合)、ポート ポインタを返します。

[ メンバー : IBPort * を返します ] getPort num
数値 num = 1..N でポートを取得します。

[ メンバー : void を返します ] setHops p_port 蓋ホップ
指定されたポート (* がすべて) の蓋ペアの最小ホップを設定します。

[ メンバー : int を返します ] getHops p_port 蓋
指定されたポートまたはすべてのポートに定義されているホップの最小数を取得します。

[ メンバー : IBPort * を返します ] getFirstMinHopPort 蓋
ノードのポートをスキャンし、蓋までの最小ホップで最初のポートを見つけます。

[メンバー: void を返します] setLFTPortForLid 蓋ポート番号
指定された LID のリニア フォワーディング テーブルを設定します。

[ メンバー : int を返します ] getLFTPortForLid 蓋
特定の LID の LFT を取得する

[ メンバー : void を返します ] repHopTable
ノードの最小ホップテーブルをダンプアウトします。

class IBSysポート

IBSysPort クラスは、システムの前面パネルまたは背面パネルの IB プラグを表します。

[ メンバー データ: 文字列 * を返します ] -name
ポートのフロントパネル名 (silk)

[ メンバー データ: IBSysPort * を返します ] -p_remoteSysPort
反対側の SYS ポートに接続されている場合

[ メンバー データ: IBSystem * を返します ] -p_system
それが属するシステム

[ メンバー データ: IBPort * を返します ] -p_nodePort
接続先のノードのポート。

[ コンストラクター: IBSysPort * を返します ] IBSysPort 名 n p_sys
コンストラクタ

[メンバー: void を返します] p_otherSysPort ?width? に接続します。 ?スピード?
XNUMX つの SysPort を接続する

[ メンバー : int を返します ] 切断
SysPort (およびポート) を切断します。 成功した場合は 0 を返します

class 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を取得します。

[メンバー: void を返す] guid_set guid
システムイメージのGUIDを設定します。

[ メンバー : IBSysPort * を返します ] makeSysPort pName
ポートが定義されていることを確認してください (定義されていない場合は定義してください)

[ メンバー : IBPort * を返します ] getSysPortNodePortByName sysPortName
指定された SYS ポートのノード ポートを名前で取得します。

[ メンバー : IBSysPort * を返します ] getSysPort 名
名前で Sys ポートを取得する

class 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 とポート ポインターのペアのリストを提供します。

[メンバーデータ: unsigned int を返す] -minLid
トラックミニの蓋を使用。

[メンバーデータ: unsigned int を返す] -maxLid
トラックマックスの蓋を使用。

[メンバーデータ: unsigned int を返す] -lmc
使用されるLMC値

[ メンバー : IBNode * を返します ] makeNode n p_sys タイプ numPorts
名前でノードを取得します (存在しないものを作成します)

[ メンバー : IBNode * を返します ] getNode 名
名前でノードを取得します

[ メンバー : list_pnode * を返します ] getNodesByType タイプ
必要なタイプに一致するノード ポインターのリストを返します。

[ メンバー : IBSystem * を返します ] makeGenericSystem 名
新しい汎用システムを作成します - 基本的にはノード用の空のコンテナーです...

[ Member : IBSystem * を返します ] makeSystem 名の型
新しいシステムを作成します - タイプには登録されたファクトリが必要です。

[ メンバー : IBSystem * を返します ] getSystem 名
名前でシステムを取得

[ メンバー : IBSystem * を返します ] getSystemByGuid guid
ガイドによってシステムを取得します

[ メンバー : IBNode * を返します ] getNodeByGuid guid
ガイドによってノードを取得します

[ メンバー : IBPort * を返します ] getPortByGuid guid
ガイドによってポートを取得します

[メンバー: void を返します] addCable t1 n1 p1 t2 n2 p2 ?幅? ?スピード?
XNUMX セットのノード タイプ、ノード名、ポート番号を指定してケーブルを追加します。 オプションで
接続に指定された幅と速度を使用します

[ メンバー : int を返します ] parseCables fn
ケーブル ファイルを解析してファブリックを構築する

[ メンバー : int を返します ] parseTopology fn
トポロジ ファイルを解析してファブリックを構築する

[ メンバー : int を返します ] addLink type1 numPorts1 sysGuid1 nodeGuid1 portGuid1 Vend1
devId1 rev1 desc1 lid1 portNum1 type2 numPorts2 sysGuid2 nodeGuid2 portGuid2 Vend2 devId2
rev2 説明 2 蓋 2 ポート番号 2 ?幅? ?スピード?
リンクをファブリックに追加します。これにより、必要に応じてシステムとノードが作成されます。

[ メンバー : int を返します ] parseSubnetLinks fn
OpenSM subnet.lst ファイルを解析し、そこからファブリックを構築します。

[ メンバー : int を返します ] parseFdbFile fn
OpenSM FDB ダンプ ファイルを解析し、スイッチの LFT テーブルに記入します

[ メンバー : int を返します ] parseMCFdbFile fn
OpenSM MCFDB ファイルを解析し、それに応じて MFT テーブルを設定します

[ メンバー : int を返します ] parsePSLFile fn
SL マッピング ファイルへのパスを解析します。 各行の内容: src_node_guid DLID SL

信用ループチェックで使用される

[ メンバー : int を返します ] parseSLVLFile fn
SLVL テーブル ファイルを解析します。 各行には、sw_node_guid in_port out_port 0x(sl0)(sl1) が含まれます。
0x(sl2)(sl3)...

[ メンバー : void を返します ] setLidPort 蓋 p_port
蓋ポートを設定します

[ メンバー : IBPort * を返します ] getPortByLid 蓋
蓋でポートを取得します

[ IBFabric * を返します ] new_IBFabric
新しい生地を構築する

[ void を返す] delete_IBFabric p_fabric
生地を破壊する

IBDM 機能


このセクションでは、IBDM が公開する機能について詳しく説明します。 順序は次のとおりです
通常の IBDM フローで予想される順序。 成功するとすべて 0 を返します。

サブネット ユーティリティ

このファイルには、OpenSM の初期化を模倣するためにサブネット上で実行される一連のユーティリティが保持されています。
そして結果を分析します。

[戻り値 int ] ibdmAssignLids p_smNodePort ?lmc?
オプションの LMC を使用して LID を割り当てる (ポートごとに複数の LID)

[ int を返します ] ibdmCalcMinHopTables p_fabric
OpenSM スタイルのルーティングを実行するために必要な MinHopTable を計算して設定します。

[戻り値 int ] ibdmCalcUpDnMinHopTbls p_fabric rootNodesNameRex
Up/Down ルールに従って MinHopTables を計算して設定します。

[ int を返します ] ibdmOsmRoute p_fabric
OpenSM スタイルのルーティングを使用してファブリックをルーティングする

[ int を返します ] ibdmEnhancedRoute p_fabric
LMC > 0 のサポートを強化して強化された OpenSM スタイルのルーティングを使用してファブリックをルーティングします。

[ int を返します ] ibdmFatTreeRoute p_fabric rootNodes
フル ファット ツリーのみに適合するアルゴリズムを使用してファブリックをルーティングする

[ int を返します ] ibdmFatTreeAnalysis p_fabric
ファブリックを分析して太い木かどうかを確認し、太い木であれば配線します。

[ int を返します ] ibdmVerifyCAtoCARoutes p_fabric
すべての (H)CA が LFT 設定に基づいて相互に接続されていることを確認します。

[ int を返します ] ibdmVerifyAllPaths p_fabric
すべてのスイッチと (H)CA が LFT に基づいて相互に接続されていることを確認します。
設定

[ int を返します ] ibdmAnalyzeLoops p_fabric
信用ループに対する厳格なチェック。 このアルゴリズムは完全かつ正確なチェックを行います
しかし、信用ループ経路に関するレポートは解釈が困難です。 ルーツを知れば
ツリーの(またはツリーが対称である場合)、
ibdmReportNonUpDownCa2CaPaths

[ list_pnode を返す ] ibdmFindSymmetricalTreeRoots p_fabric
ツリーのトポロジを分析し、その対称性に基づいてツリーのルートを見つけます。

[ list_pnode を返します ] ibdmFindRootNodesByMinHop p_fabric
MinHopTable に基づいてツリーのルートを見つけます。 5% の非対称性は許容されます

[戻り値 int ] ibdmRankFabricByRoots p_fabric rootNodes
ルート ノード (名前) のリストを指定して、ノードをランク​​付けします (ルート = 0)。

[戻り値 int ] ibdmReportNonUpDownCa2CaPaths p_fabric rootNodes
ルートを分析して、Up/Down ルールが維持されていることを確認します。

[ int を返します ] ibdmCheckMulticastGroups p_fabric
マルチキャストルーティングの接続を確認する

[戻り値 int ] ibdmCheckFabricMCGrpsForCreditLoopPotential p_fabric rootNodes
マルチキャスト ルーティングを分析して、アップ/ダウン ルールに従っていることを確認します。

[ int を返します ] ibdmLinkCoverageAnalysis p_fabric rootNodes
一連の送信元から宛先への送信スケジュールを準備します。
各ステージで過剰にサブスクライブされているリンクはなく、すべてのステージの後、すべてのリンクが
生地のリンクが切れてしまった

トレーシング ユーティリティ

これらの機能により、訪問したノードを報告するトレースパスが可能になります。

[戻り値 int ] ibdmTraceDRPathRoute p_smNodePort drPathPortNums
指定されたポートからの直接ルート パスをトレースします。

[戻り値 int ] ibdmTraceRouteByMinHops p_fabric slid dlid
MinHop に沿ってソース LID から宛先 LID までのパスをトレースします。

[戻り値 int ] ibdmTraceRouteByLFT p_fabric slid dlid hops p_nodesList
ホップとノード リスト変数を更新する LFT に従ってパスをトレースします。

トポロジー マッチング ユーティリティ

次のユーティリティは XNUMX つのファブリックを照合し、不一致メッセージと
ユニファイドファブリック

[戻り値 int ] ibdmMatchFabrics p_spec_fabric p_discovered_fabric アンカーノード名
アンカーポート番号アンカーポートガイド
トポロジベースのファブリックを、エンコーポートから始まる検出されたファブリックと照合します。

[戻り値 int ] ibdmBuildMergedFabric p_spec_fabric p_discovered_fabric p_merged_fabric
ibdmMatchFabrics を使用してマッチングした後、「マージされたファブリック」に情報を入力します
一致したノードに対してマージされる

混雑 分析 ユーティリティ

リンクのオーバーサブスクリプションを追跡および報告する機能を提供します

[ int を返します ] ibdmCongInit p_fabric
追跡システムを初期化する

[ int を返します ] ibdmCongCleanup p_fabric
カウンタをクリーンアップして割り当てを解除する

[ int を返します ] ibdmCongClear p_fabric
クリーンアップカウンター

[戻り値 int ] ibdmCongTrace p_fabric srcLid dstLid
LID 間のパスをトレースし、リンク使用情報を更新します

[ int を返します ] ibdmCongReport p_fabric
結果として得られる渋滞情報をレポートする

[ int を返します ] ibdmCongDump p_fabric
すべての混雑追跡情報をダンプする

onworks.net サービスを使用してオンラインで ibdmsh を使用する


無料のサーバーとワークステーション

Windows と Linux のアプリをダウンロード

Linuxコマンド

Ad