EnglischFranzösischSpanisch

Ad


OnWorks-Favicon

ibdmsh – Online in der Cloud

Führen Sie ibdmsh im kostenlosen Hosting-Anbieter OnWorks über Ubuntu Online, Fedora Online, den Windows-Online-Emulator oder den MAC OS-Online-Emulator aus

Dies ist der Befehl ibdmsh, der beim kostenlosen Hosting-Anbieter OnWorks mit einer unserer zahlreichen kostenlosen Online-Workstations wie Ubuntu Online, Fedora Online, dem Windows-Online-Emulator oder dem MAC OS-Online-Emulator ausgeführt werden kann

PROGRAMM:

NAME/FUNKTION


ibdmsh IB-DATENMODELL – Erweiterte TCL-Shell

BESCHREIBUNG


ibdmsh ist eine TCL-Shell, erweitert um eine Schnittstelle für das IB-Datenmodell. Um diese Shell zu verwenden
Sie schreiben TCL-Code, der direkt auf die Objekte und Funktionen des IB-Datenmodells zugreift.

Die folgenden Unterabschnitte enthalten detaillierte Definitionen für diese Objekte und APIs.

IBM Konstante


Knoten Typen

Die folgenden Konstanten werden vom Knotenobjekttypfeld verwendet

[Konstante: int] $IB_UNKNOWN_NODE_TYPE = IB_UNKNOWN_NODE_TYPE

[Konstante: int] $IB_SW_NODE = IB_SW_NODE

[Konstante: int] $IB_CA_NODE = IB_CA_NODE

Log Ausführlichkeit Flags

Die folgenden Konstanten werden als Argumentbits für die globale Variable verwendet
$FabricUtilsVerboseLevel

[Konstante: int] $FABU_LOG_NONE = 0x0

[Konstante: int] $FABU_LOG_ERROR = 0x1

[Konstante: int] $FABU_LOG_INFO = 0x2

[Konstante: int] $FABU_LOG_VERBOSE = 0x4

IBM Globals


Protokollebene: auf FABU_LOG*-Werte eingestellt

[Global: int] $FabricUtilsVerboseLevel

IBM Objekte


In diesem Abschnitt werden die verschiedenen Objekttypen beschrieben, die von IBDM bereitgestellt werden.

IBDM macht einige seiner internen Objekte verfügbar. Die von den verschiedenen zurückgegebenen Objektbezeichner
Funktionsaufrufe werden nach folgenden Regeln formatiert:

Stoff: Stoff:

System: System: :

SysPort: syssport: : :

Knoten: Knoten: :

Hafen: Hafen: : /

IBDM-Objekte sind Standard-Swig-Tcl-Objekte. Daher gibt es zwei Geschmacksrichtungen für ihre Verwendung:
Variablen, Objekte.

Variablen/Zeiger:
Für jedes Objektattribut stehen die Methoden „get“ und „set“ zur Verfügung.
Das Format der Methoden ist: _ _ .
Die Methode „set“ ist nur für Lese-/Schreibattribute verfügbar.

Beispiel:
Knoten festlegen [ibdm_get_nodes]
Knoten setzen [lindex $nodes 0]
IBNode_numPorts_get $node

Objekte:
Bei gegebenem Objektzeiger kann man ihn in ein Tcl-„Objekt“ umwandeln.
Verwenden Sie den folgenden Befehl:
-Das

Einmal erklärt das kann in Verbindung mit verwendet werden
mit den Standardbefehlen „configure“ und „cget“.

Beispiel (im Anschluss an das vorherige):
IBFabric VaTech – dieser $Stoff
VaTech cget -NodeByName

Um ein Objektsymbol zu löschen (und seine Zuordnung zu einem anderen zu aktivieren).
Zeiger) verwenden:
umbenennen „“
beispielsweise:
VaTech umbenennen „“

Klasse IBPort

Im Folgenden sind die verschiedenen Felder und Methoden der IB-Port-Klasse aufgeführt, die einen beschreiben
Physischer Port des IB-Geräts (Chip).

[Mitgliedsdaten: gibt IBPort * zurück] -p_remotePort
Port auf der anderen Seite der Verbindung verbunden

[Mitgliedsdaten: gibt IBSysPort * zurück] -p_sysPort
Der Systemport (falls vorhanden), mit dem verbunden ist

[Mitgliedsdaten: gibt IBNode * zurück] -p_node
Der Knoten, zu dem der Port gehört.

[Mitgliedsdaten: gibt int zurück] -num
Physische Ports werden durch Nummer identifiziert.

[Mitgliedsdaten: gibt unsigned int zurück] -base_lid
Der dem Port zugeordnete Bodendeckel.

[Mitgliedsdaten: gibt IBLinkWidth * zurück] -width
Die Verbindungsbreite des Ports

[Mitgliedsdaten: gibt IBLinkSpeed ​​* zurück] -speed
Die Verbindungsgeschwindigkeit des Ports

[Mitgliedsdaten: gibt unsigned int zurück] -counter1
Ein generischer Wert, der von verschiedenen Algorithmen verwendet werden soll

[ Konstruktor: gibt IBPort zurück * ] IBPort-Name p_nodePtr-Nummer
IBPort-Konstruktor

[Mitglied: gibt new_uint64_t zurück] guid_get
Erhalten Sie die Anleitung des Hafens

[Mitglied: gibt void zurück] guid_set guid
Ändern Sie die Guid des Ports

[Mitglied: gibt neue_Zeichenfolge zurück] getName
Holen Sie sich den Portnamen: Ein Geräteport, der mit dem Systemport (Vorderseite) verbunden ist, kehrt zurück
Der Name des Frontpanel-Ports.

[Mitglied: gibt void zurück] connect p_otherPort ?width? ?Geschwindigkeit?
Verbinden Sie den Port mit optionalen Breiten- und Geschwindigkeitsparametern mit einem anderen Knotenport

[Mitglied: gibt int zurück] trennen
Trennen Sie den Port. Bei Erfolg 0 zurückgeben

Klasse IBNode

Die IB-Node-Klasse stellt ein einzelnes IB-Gerät (Chip) dar.

[Mitgliedsdaten: gibt Zeichenfolge * zurück] -Name
Name des Knotens (Instanzname des Chips)

[Mitgliedsdaten: gibt IBNodeType zurück] -Typ
Entweder ein $IB_SW_NODE oder $IB_CA_NODE

[Mitgliedsdaten: gibt uint16_t * zurück] -devId
Die Geräte-ID des Knotens

[Mitgliedsdaten: gibt uint16_t * zurück] -revId
Die Geräterevisions-ID.

[Mitgliedsdaten: gibt uint16_t * zurück] -vendId
Die Hersteller-ID des Geräts.

[Mitgliedsdaten: gibt Zeichenfolge * zurück] -Attribute
Komma-getrennte Zeichenfolge beliebiger Attribute k=v

[Mitgliedsdaten: gibt uint8_t zurück] -rank
Der Rang des Knotens (0 ist eine Wurzel)

[Mitgliedsdaten: gibt IBSystem * zurück] -p_system
Zu welchem ​​System wir gehören

[Mitgliedsdaten: gibt IBFabric * zurück] -p_fabric
Zu welchem ​​Stoff wir gehören.

[Mitgliedsdaten: gibt unsigned int zurück] -numPorts
Anzahl der physischen Ports

[Mitgliedsdaten: gibt vec_pport * zurück] -Ports
Vektor aller Häfen

[Mitgliedsdaten: gibt vec_vec_byte * zurück] -MinHopsTable
Eine Tabelle mit der Anzahl der Hops, die erforderlich sind, um von jedem Port zu jedem Ziel-LID zu gelangen

[Mitgliedsdaten: gibt vec_byte * zurück] -LFT
Die LFT dieses Knotens (nur für Switches), die ein langer Vektor von Zielports ist –
Index ist die LID

[Mitglied: gibt new_uint64_t zurück] guid_get
Rufen Sie die Knoten-GUID ab

[Mitglied: gibt void zurück] guid_set guid
Legen Sie die Knoten-GUID fest

[ Konstruktor: gibt IBNode * zurück ] IBNode-Name n p_fab p_sys t np
Auftragnehmer

[Mitglied: gibt IBPort * zurück] makePort num
Erstellen Sie einen neuen Port anhand seiner Nummer (falls erforderlich) und geben Sie den Portzeiger zurück

[Mitglied: gibt IBPort * zurück] getPort num
Holen Sie sich einen Port nach Nummer num = 1..N:

[Mitglied: gibt void zurück] setHops p_port lid hops
Legen Sie den minimalen Hop für das angegebene Port-Deckelpaar (* ist alles) fest

[Mitglied: gibt int zurück] getHops p_port lid
Rufen Sie die minimale Anzahl von Hops ab, die für den angegebenen Port oder alle definiert sind

[Mitglied: gibt IBPort zurück *] getFirstMinHopPort lid
Scannen Sie die Knoten-Ports und finden Sie den ersten Port mit „Min Hop to the Lid“.

[Mitglied: gibt void zurück] setLFTPortForLid lid portNum
Legen Sie die lineare Weiterleitungstabelle für die angegebene LID fest

[Mitglied: gibt int zurück] getLFTPortForLid lid
Holen Sie sich die LFT für einen bestimmten LID

[Mitglied: gibt void zurück] repHopTable
Geben Sie die Min-Hop-Tabelle des Knotens aus

Klasse IBSysPort

Die IBSysPort-Klasse stellt einen IB-Stecker auf der Vorder- oder Rückseite des Systems dar

[Mitgliedsdaten: gibt Zeichenfolge * zurück] -Name
Der Frontpanel-Name (Seide) des Ports

[Mitgliedsdaten: gibt IBSysPort * zurück] -p_remoteSysPort
Bei Anschluss über den Sys-Port auf der anderen Seite

[Mitgliedsdaten: gibt IBSystem * zurück] -p_system
System, zu dem es gehört

[Mitgliedsdaten: gibt IBPort * zurück] -p_nodePort
Der Knotenport, mit dem die Verbindung hergestellt wird.

[Konstruktor: gibt IBSysPort * zurück] IBSysPort-Name n p_sys
Bauherr

[Mitglied: gibt void zurück] connect p_otherSysPort ?width? ?Geschwindigkeit?
Verbinden Sie zwei SysPorts

[Mitglied: gibt int zurück] trennen
Trennen Sie den SysPort (und die Ports). Bei Erfolg 0 zurückgeben

Klasse IBSystem

Die IBSystem-Klasse repräsentiert ein ganzes Chassis

[Mitgliedsdaten: gibt Zeichenfolge * zurück] -Name
Der „Host“-Name des Systems

[Mitgliedsdaten: gibt Zeichenfolge * zurück] -Typ
Was ist der Typ, z. B. Cougar, Buffalo, MTS2400 usw. Eine entsprechende IBNL-Datei
sollte vorhanden sein – Definieren dieses Systemtyps

[Mitgliedsdaten: gibt IBFabric * zurück] -p_fabric
Stoff, zu dem das System gehört

[Mitgliedsdaten: gibt map_str_pnode * zurück] -NodeByName
Geben Sie den Knotenzeiger mit seinem Namen an

[Mitgliedsdaten: gibt map_str_psysport * zurück] -PortByName
Eine Karte, die einen Zeiger auf den SysPort nach Namen bereitstellt

[ Konstruktor: gibt IBSystem zurück * ] IBSystem-Name n p_fab t
Auftragnehmer

[Mitglied: gibt new_uint64_t zurück] guid_get
Rufen Sie die System-Image-GUID ab

[Mitglied: gibt void zurück] guid_set guid
Legen Sie die System-Image-GUID fest

[Mitglied: gibt IBSysPort * zurück] makeSysPort pName
Stellen Sie sicher, dass wir den Port definiert haben (definieren Sie ihn also, wenn nicht).

[Mitglied: gibt IBPort zurück *] getSysPortNodePortByName sysPortName
Rufen Sie den Knotenport für den angegebenen Systemport anhand des Namens ab

[Mitglied: gibt IBSysPort zurück *] getSysPort-Name
Rufen Sie einen Sys-Port nach Namen ab

Klasse IBFabric

Stellt ein gesamtes IB-Subnetz aus Systemen dar

[Mitgliedsdaten: gibt map_str_pnode * zurück] -NodeByName
Stellen Sie eine Liste von Knotennamen- und Zeigerpaaren bereit

[Mitgliedsdaten: gibt map_str_psys * zurück] -SystemByName
Stellen Sie eine Liste der Systemnamen- und Zeigerpaare bereit

[Mitgliedsdaten: gibt vec_pport * zurück] -PortByLid
Stellt eine Liste von Systemportnamen- und Zeigerpaaren bereit

[Mitgliedsdaten: gibt map_guid_pnode * zurück] -NodeByGuid
Stellt eine Liste von Knoten-GUID- und Knotenzeigerpaaren bereit

[Mitgliedsdaten: gibt map_guid_psys * zurück] -SystemByGuid
Stellt eine Liste von System-Image-Guid- und Systemzeigerpaaren bereit

[Mitgliedsdaten: gibt map_guid_pport * zurück] -PortByGuid
Stellt eine Liste von Port-GUID- und Port-Zeiger-Paaren bereit

[Mitgliedsdaten: gibt unsigned int zurück] -minLid
Gleisminiaturdeckel gebraucht.

[Mitgliedsdaten: gibt unsigned int zurück] -maxLid
Track Max Deckel gebraucht.

[Mitgliedsdaten: gibt unsigned int zurück] -lmc
Verwendeter LMC-Wert

[Mitglied: gibt IBNode * zurück] makeNode n p_sys Typ numPorts
Holen Sie sich den Knoten anhand seines Namens (erstellen Sie einen, der nicht existiert).

[Mitglied: gibt IBNode * zurück] getNode-Name
Ermitteln Sie den Knoten anhand seines Namens

[Mitglied: gibt list_pnode * zurück] getNodesByType-Typ
Gibt die Liste der Knotenzeiger zurück, die dem erforderlichen Typ entsprechen

[Mitglied: gibt IBSystem * zurück] makeGenericSystem-Name
Erstellen Sie ein neues generisches System – im Grunde ein leerer Container für Knoten …

[Mitglied: gibt IBSystem * zurück] makeSystem-Namenstyp
Erstellen Sie ein neues System – der Typ muss über eine registrierte Fabrik verfügen.

[Mitglied: gibt IBSystem * zurück] getSystem-Name
Rufen Sie das System nach Namen ab

[Mitglied: gibt IBSystem * zurück] getSystemByGuid guid
Holen Sie sich das System anhand seiner Anleitung

[Mitglied: gibt IBNode * zurück] getNodeByGuid guid
Holen Sie sich den Knoten anhand seiner Anleitung

[Mitglied: gibt IBPort * zurück] getPortByGuid guid
Holen Sie sich den Port anhand seiner Anleitung

[Mitglied: gibt void zurück] addCable t1 n1 p1 t2 n2 p2 ?width? ?Geschwindigkeit?
Fügt ein Kabel mit zwei Sätzen Knotentyp, Knotenname und Portnummer hinzu. Optional
Verwenden Sie eine bestimmte Breite und Geschwindigkeit für die Verbindung

[Mitglied: gibt int zurück] parseCables fn
Analysieren Sie die Kabeldatei und erstellen Sie die Struktur

[Mitglied: gibt int zurück] parseTopology fn
Analysieren Sie die Topologiedatei und erstellen Sie die Fabric

[Mitglied: gibt int zurück] addLink type1 numPorts1 sysGuid1 nodeGuid1 portGuid1 vend1
devId1 rev1 desc1 lid1 portNum1 type2 numPorts2 sysGuid2 nodeGuid2 portGuid2 vend2 devId2
rev2 desc2 lid2 portNum2 ?width? ?Geschwindigkeit?
Fügen Sie der Fabric einen Link hinzu – dadurch werden das System und die Knoten nach Bedarf erstellt.

[Mitglied: gibt int zurück] parseSubnetLinks fn
Analysieren Sie die OpenSM-Datei subnet.lst und erstellen Sie daraus die Fabric.

[Mitglied: gibt int zurück] parseFdbFile fn
Analysieren Sie die OpenSM-FDB-Dump-Datei und füllen Sie die LFT-Tabellen der Switches aus

[Mitglied: gibt int zurück] parseMCFdbFile fn
Analysieren Sie eine OpenSM MCFDBs-Datei und legen Sie die MFT-Tabelle entsprechend fest

[Mitglied: gibt int zurück] parsePSLFile fn
Pfad zur SL-Zuordnungsdatei analysieren. Jede Zeile mit: src_node_guid DLID SL

Wird von der Kreditschleifenprüfung verwendet

[Mitglied: gibt int zurück] parseSLVLFile fn
Analysieren Sie die SLVL-Tabellendatei. Jede Zeile enthält: sw_node_guid in_port out_port 0x(sl0)(sl1)
0x(sl2)(sl3)...

[Mitglied: gibt void zurück] setLidPort lid p_port
Stellen Sie einen Deckelanschluss ein

[Mitglied: gibt IBPort * zurück] getPortByLid lid
Holen Sie sich einen Port am Deckel

[ gibt IBFabric * zurück] new_IBFabric
Konstruieren Sie einen neuen Stoff

[ gibt void zurück ] delete_IBFabric p_fabric
Zerstöre einen Stoff

IBM Funktionen


In diesem Abschnitt finden Sie Details zu den von IBM bereitgestellten Funktionen. Die Reihenfolge folgt der
erwartete Reihenfolge in einem regulären IBDM-Fluss. Bei Erfolg geben sie alle 0 zurück.

Teilnetz Utilities

Die Datei enthält eine Reihe von Dienstprogrammen, die im Subnetz ausgeführt werden, um die OpenSM-Initialisierung nachzuahmen
und analysieren Sie die Ergebnisse:

[ gibt int zurück ] ibdmAssignLids p_smNodePort ?lmc?
Weisen Sie LIDs mit einem optionalen LMC zu (mehrere LIDs pro Port)

[ gibt int zurück ] ibdmCalcMinHopTables p_fabric
Berechnen und füllen Sie die MinHopTables, die für die Ausführung des Routings im OpenSM-Stil erforderlich sind.

[ gibt int zurück ] ibdmCalcUpDnMinHopTbls p_fabric rootNodesNameRex
Berechnen und füllen Sie die MinHopTables nach der Auf/Ab-Regel.

[ gibt int zurück ] ibdmOsmRoute p_fabric
Verlegen Sie die Fabric mit Routing im OpenSM-Stil

[ gibt int zurück ] ibdmEnhancedRoute p_fabric
Routen Sie die Fabric mit OpenSM-Routing, das durch eine bessere Unterstützung für LMC > 0 verbessert wurde

[ gibt int zurück ] ibdmFatTreeRoute p_fabric rootNodes
Verlegen Sie den Stoff mit einem Algorithmus, der nur für Vollfettbäume geeignet ist

[ gibt int zurück ] ibdmFatTreeAnalysis p_fabric
Analysieren Sie den Stoff, um festzustellen, ob es sich um einen dicken Baum handelt, und verlegen Sie ihn gegebenenfalls

[ gibt int zurück ] ibdmVerifyCAtoCARoutes p_fabric
Stellen Sie sicher, dass alle (H)CAs basierend auf den LFT-Einstellungen miteinander verbunden sind

[ gibt int zurück ] ibdmVerifyAllPaths p_fabric
Stellen Sie sicher, dass alle Switches und (H)CAs basierend auf dem LFT miteinander verbunden sind
Einstellungen

[ gibt int zurück ] ibdmAnalyzeLoops p_fabric
Eine strenge Prüfung auf Kreditschleifen. Dieser Algorithmus führt eine vollständige und genaue Prüfung durch
Die Berichterstattung über Kreditschleifenpfade ist jedoch schwer zu interpretieren. Wenn Sie die Wurzeln kennen
des Baumes (oder der Baum ist symmetrisch) ist es vorzuziehen, das zu verwenden
ibdmReportNonUpDownCa2CaPaths

[ gibt list_pnode zurück] ibdmFindSymmetricalTreeRoots p_fabric
Analysieren Sie die Baumtopologie und finden Sie die Wurzeln des Baums anhand seiner Symmetrie

[ gibt list_pnode zurück] ibdmFindRootNodesByMinHop p_fabric
Finden Sie anhand der MinHopTable die Wurzeln des Baums. Eine Asymmetrie von 5 % ist zulässig

[ gibt int zurück ] ibdmRankFabricByRoots p_fabric rootNodes
Ordnen Sie anhand der Liste der Wurzelknoten (Namen) die Knoten (Wurzel = 0).

[ gibt int zurück ] ibdmReportNonUpDownCa2CaPaths p_fabric rootNodes
Analysieren Sie die Routen, um sicherzustellen, dass die Auf-/Ab-Regel eingehalten wird

[ gibt int zurück ] ibdmCheckMulticastGroups p_fabric
Überprüfen Sie die Konnektivität des Multicast-Routings

[ gibt int zurück ] ibdmCheckFabricMCGrpsForCreditLoopPotential p_fabric rootNodes
Analysieren Sie das Multicast-Routing, um sicherzustellen, dass es der Up/Down-Regel entspricht

[ gibt int zurück ] ibdmLinkCoverageAnalysis p_fabric rootNodes
Bereiten Sie einen Zeitplan für die Übertragung von einer Reihe von Quellen zu Zielen vor
In jeder Phase gibt es keine überabonnierten Links und schließlich alle
Die Stoffglieder waren überdimensioniert

Tracing Utilities

Diese Funktionen ermöglichen die Verfolgung von Pfaden und die Rückmeldung der besuchten Knoten

[ gibt int zurück ] ibdmTraceDRPathRoute p_smNodePort drPathPortNums
Verfolgen Sie einen gerichteten Routenpfad vom angegebenen Port

[ gibt int zurück ] ibdmTraceRouteByMinHops p_fabric slid dlid
Verfolgen Sie einen Pfad entlang des MinHop von den Quell- zu den Ziel-LIDs

[ gibt int zurück ] ibdmTraceRouteByLFT p_fabric slid dlid hops p_nodesList
Verfolgen Sie einen Pfad, der dem LFT folgt und die Hops und Knotenlistenvariablen aktualisiert

Topologie Abstimmung Utilities

Die folgenden Dienstprogramme gleichen zwei Fabrics ab und stellen sowohl Missmatch-Meldungen als auch eine bereit
einheitlicher Stoff

[ gibt int zurück ] ibdmMatchFabrics p_spec_fabric p_discovered_fabric AnchorNodeName
AnchorPortNum AnchorPortGuid
Ordnen Sie eine topologiebasierte Fabric einer erkannten Fabric zu, beginnend am Enchor-Port

[ gibt int zurück ] ibdmBuildMergedFabric p_spec_fabric p_discovered_fabric p_merged_fabric
Füllen Sie nach dem Abgleich mit ibdmMatchFabrics die „zusammengeführte Fabric“ mit Informationen
für die übereinstimmenden Knoten zusammengeführt

Stau Analyse Utilities

Bieten Sie die Möglichkeit, Link-Überzeichnungen zu verfolgen und zu melden

[ gibt int zurück ] ibdmCongInit p_fabric
Initialisieren Sie das Trackingsystem

[ gibt int zurück ] ibdmCongCleanup p_fabric
Bereinigen Sie die Zähler und geben Sie sie frei

[ gibt int zurück ] ibdmCongClear p_fabric
Aufräumzähler

[ gibt int zurück ] ibdmCongTrace p_fabric srcLid dstLid
Verfolgen Sie einen Pfad zwischen den LIDs, um die Linknutzungsinformationen zu aktualisieren

[ gibt int zurück ] ibdmCongReport p_fabric
Melden Sie die resultierenden Überlastungsinformationen

[ gibt int zurück ] ibdmCongDump p_fabric
Löschen Sie alle Informationen zur Überlastungsverfolgung

Verwenden Sie ibdmsh online über die Dienste von onworks.net


Kostenlose Server & Workstations

Laden Sie Windows- und Linux-Apps herunter

Linux-Befehle

Ad