Angielskifrancuskihiszpański

Ad


Ulubiona usługa OnWorks

ibdmsh — Online w chmurze

Uruchom ibdmsh w bezpłatnym dostawcy hostingu OnWorks w systemie Ubuntu Online, Fedora Online, emulatorze online systemu Windows lub emulatorze online systemu MAC OS

Jest to polecenie ibdmsh, które można uruchomić u dostawcy bezpłatnego hostingu OnWorks przy użyciu jednej z naszych wielu bezpłatnych stacji roboczych online, takich jak Ubuntu Online, Fedora Online, emulator online systemu Windows lub emulator online systemu MAC OS

PROGRAM:

IMIĘ


ibdmsh MODEL DANYCH IB - Rozszerzona powłoka TCL

OPIS


ibdmsh to powłoka TCL rozszerzona o interfejs dla modelu danych IB. Aby użyć tej powłoki
napiszesz kod TCL, który bezpośrednio uzyska dostęp do obiektów i funkcji modelu danych IB.

Poniższe podsekcje zawierają szczegółową definicję tych obiektów i interfejsu API.

IBDM Stałe


Node rodzaje

W polu typu obiektu węzła używane są następujące stałe

[ Stała: int ] $IB_UNKNOWN_NODE_TYPE = IB_UNKNOWN_NODE_TYPE

[ Stała: int ] $IB_SW_NODE = IB_SW_NODE

[ Stała: int ] $IB_CA_NODE = IB_CA_NODE

Zaloguj Gadatliwość Flagi

Następujące stałe są używane jako bity argumentów zmiennej globalnej
$FabricUtilsVerboseLevel

[Stała: int] $FABU_LOG_NONE = 0x0

[Stała: int] $FABU_LOG_ERROR = 0x1

[ Stała: int ] $FABU_LOG_INFO = 0x2

[ Stała: int ] $FABU_LOG_VERBOSE = 0x4

IBDM Globals


Poziom dziennika: ustawiony na wartości FABU_LOG*

[ Globalnie : int ] $FabricUtilsVerboseLevel

IBDM Obiekty


W tej sekcji opisano różne typy obiektów udostępniane przez IBDM.

IBDM ujawnia niektóre ze swoich wewnętrznych obiektów. Identyfikatory obiektów zwracane przez różne
wywołania funkcji są formatowane według następujących zasad:

Tkanina: tkanina:

System: system: :

SysPort: sysport: : :

Węzeł: węzeł: :

Port: port: : /

Obiekty IBDM to standardowe obiekty Swig-Tcl. W związku z tym mają dwa smaki do użycia:
Zmienne, obiekty.

Zmienne/wskaźniki:
Dla każdego atrybutu obiektu dostępne są metody „get” i „set”.
Format metod jest następujący: _ _ .
Metoda „set” jest dostępna tylko dla atrybutów do odczytu/zapisu.

Przykład:
ustaw węzły [ibdm_get_nodes]
ustaw węzeł [lindex $nodes 0]
IBNode_numPorts_get $węzeł

Obiekty:
Biorąc pod uwagę wskaźnik obiektu, można go przekonwertować na „Obiekt” Tcl
za pomocą następującego polecenia:
-Ten

Raz zadeklarowany można używać w połączeniu z
za pomocą standardowych poleceń „configure” i „cget”.

Przykład (po poprzednim):
IBFabric VaTech -ta tkanina
VaTech cget -NodeByName

Aby usunąć symbol obiektu (i włączyć jego mapowanie na inny
wskaźnik) użyj:
Przemianować „”
Na przykład:
zmień nazwę VaTech „”

klasa Port IB

Poniżej przedstawiono różne pola i metody klasy IB Port, która opisuje
Fizyczny port urządzenia IB (chip).

[ Dane członkowskie: zwraca IBPort * ] -p_remotePort
Port podłączony po drugiej stronie łącza

[ Dane członkowskie: zwraca IBSysPort * ] -p_sysPort
Port systemowy (jeśli istnieje), do którego jest podłączony

[ Dane członkowskie: zwraca IBNode * ] -p_node
Węzeł, którego częścią jest port.

[ Dane członkowskie: zwraca int ] -num
Porty fizyczne są identyfikowane poprzez numer.

[ Dane członkowskie: zwraca unsigned int ] -base_lid
Pokrywa podstawy przypisana do portu.

[ Dane członkowskie: zwraca IBLinkWidth * ] -width
Szerokość łącza portu

[ Dane członkowskie: zwraca IBLinkSpeed ​​* ] -prędkość
Szybkość łącza portu

[Dane członkowskie: zwraca unsigned int] -licznik1
Wartość ogólna, która będzie używana przez różne algorytmy

[ Konstruktor: zwraca IBPort * ] Nazwa IBPort p_nodePtr numer
Konstruktor IBPort

[Członek: zwraca new_uint64_t] guid_get
Zdobądź przewodnik po porcie

[Członek: zwraca nieważność] guid_set guid
Zmodyfikuj przewodnik portu

[Członek: zwraca nowy_ciąg] getName
Uzyskaj nazwę portu: Port urządzenia podłączony do portu systemowego (panel przedni) powraca
nazwa portu na panelu przednim.

[Członek: zwraca nieważność] connect p_otherPort ?szerokość? ?prędkość?
Podłącz port do innego portu węzła z opcjonalnymi parametrami szerokości i szybkości

[Członek: zwraca int] rozłącz
Odłącz port. Zwróć 0, jeśli się powiedzie

klasa IBNode

Klasa IB Node reprezentuje pojedyncze urządzenie IB (chip)

[ Dane członkowskie: zwraca ciąg * ] -nazwa
Nazwa węzła (nazwa instancji chipa)

[ Dane członkowskie: zwraca IBNodeType ] -type
Albo $IB_SW_NODE, albo $IB_CA_NODE

[ Dane członkowskie: zwraca uint16_t * ] -devId
Identyfikator urządzenia węzła

[ Dane członkowskie: zwraca uint16_t * ] -revId
Identyfikator wersji urządzenia.

[ Dane członkowskie: zwraca uint16_t * ] -vendId
Identyfikator dostawcy urządzenia.

[ Dane członkowskie: zwraca ciąg * ] -atrybuty
Przecinek-sep ciąg dowolnych atrybutów k=v

[ Dane członkowskie: zwraca uint8_t ] -rank
Ranga węzła (0 to pierwiastek)

[ Dane członkowskie: zwraca IBSystem * ] -p_system
Do jakiego systemu należymy

[ Dane członkowskie: zwraca IBFabric * ] -p_fabric
Do jakiej tkaniny należymy.

[ Dane członkowskie: zwraca unsigned int ] -numPorts
Liczba portów fizycznych

[ Dane członkowskie: zwraca vec_pport * ] -Porty
Wektor wszystkich portów

[ Dane członkowskie: zwraca vec_vec_byte * ] -MinHopsTable
Tabela liczby przeskoków wymaganych do uzyskania dostępu z każdego portu do każdego docelowego LID

[ Dane członkowskie: zwraca vec_byte * ] -LFT
LFT tego węzła (tylko dla przełączników), który jest długim wektorem portów docelowych -
indeks to LID

[Członek: zwraca new_uint64_t] guid_get
Uzyskaj identyfikator GUID węzła

[Członek: zwraca nieważność] guid_set guid
Ustaw identyfikator GUID węzła

[ Konstruktor: zwraca IBNode * ] Nazwa IBNode n p_fab p_sys t np
Konstruktor

[Członek: zwraca IBPort *] makePort num
Utwórz nowy port według jego numeru (jeśli jest to wymagane) i zwróć wskaźnik portu

[Członek: zwraca IBPort *] getPort num
Uzyskaj port według numeru num = 1..N:

[Członek: zwraca void] setHops p_port przeskoki pokrywy
Ustaw minimalny przeskok dla danej pary pokryw portu (* to wszystko).

[Członek: zwraca int] getHops p_port lid
Uzyskaj minimalną liczbę przeskoków zdefiniowaną dla danego portu lub wszystkich

[Członek: zwraca IBPort *] getFirstMinHopPort pokrywa
Zeskanuj porty węzła i znajdź pierwszy port z minimalnym przeskokiem do pokrywy

[Członek: zwraca void] setLFFTPortForLid lid portNum
Ustaw tabelę przekazywania liniowego dla danego LID

[Członek: zwraca int] getLFTPortForLid lid
Uzyskaj LFT dla danego LID

[Członek: zwraca nieważność] repHopTable
Zrzuć tabelę minimalnych przeskoków węzła

klasa IBSysPort

Klasa IBSysPort reprezentuje wtyczkę IB na panelu przednim lub tylnym systemu

[ Dane członkowskie: zwraca ciąg * ] -nazwa
Nazwa portu na panelu przednim (silk).

[ Dane członkowskie: zwraca IBSysPort * ] -p_remoteSysPort
Jeśli podłączony jest drugi port sys

[ Dane członkowskie: zwraca IBSystem * ] -p_system
System, do którego należy

[ Dane członkowskie: zwraca IBPort * ] -p_nodePort
Port węzła, z którym się łączy.

[ Konstruktor: zwraca IBSysPort * ] Nazwa IBSysPort n p_sys
Konstruktor

[Członek: zwraca nieważność] connect p_otherSysPort ?szerokość? ?prędkość?
Podłącz dwa porty SysPort

[Członek: zwraca int] rozłącz
Odłącz SysPort (i porty). Zwróć 0, jeśli się powiedzie

klasa System IB

Klasa IBSystem reprezentuje całą obudowę

[ Dane członkowskie: zwraca ciąg * ] -nazwa
Nazwa „hosta” systemu

[ Dane członkowskie: zwraca ciąg * ] -typ
Jaki jest typ, np. Cougar, Buffalo, MTS2400 itp. Odpowiedni plik IBNL
powinien istnieć - definiując ten typ systemu

[ Dane członkowskie: zwraca IBFabric * ] -p_fabric
Tkanina, do której należy system

[ Dane członkowskie: zwraca map_str_pnode * ] -NodeByName
Podaj wskaźnik węzła według jego nazwy

[ Dane członkowskie: zwraca map_str_psysport * ] -PortByName
Mapa zawierająca wskaźnik do SysPort według nazwy

[ Konstruktor: zwraca IBSystem * ] Nazwa IBSystem n p_fab t
Konstruktor

[Członek: zwraca new_uint64_t] guid_get
Uzyskaj identyfikator GUID obrazu systemu

[Członek: zwraca nieważność] guid_set guid
Ustaw identyfikator GUID obrazu systemu

[Członek: zwraca IBSysPort *] makeSysPort pName
Upewnij się, że zdefiniowaliśmy port (więc zdefiniuj go, jeśli nie)

[Członek: zwraca IBPort *] getSysPortNodePortByName sysPortName
Uzyskaj port węzła dla danego portu systemowego według nazwy

[Członek: zwraca IBSysPort *] getSysPort nazwa
Uzyskaj port Sys według nazwy

klasa IBFabric

Reprezentuje całą podsieć IB złożoną z systemów

[ Dane członkowskie: zwraca map_str_pnode * ] -NodeByName
Podaj listę par nazw węzłów i wskaźników

[ Dane członkowskie: zwraca map_str_psys * ] -SystemByName
Podaj listę par nazw systemowych i wskaźników

[ Dane członkowskie: zwraca vec_pport * ] -PortByLid
Zawiera listę par nazw portów systemowych i wskaźników

[ Dane członkowskie: zwraca map_guid_pnode * ] -NodeByGuid
Zawiera listę par identyfikatorów węzłów i wskaźników węzłów

[ Dane członkowskie: zwraca map_guid_psys * ] -SystemByGuid
Zawiera listę par identyfikatorów obrazu systemu i wskaźników systemu

[ Dane członkowskie: zwraca map_guid_pport * ] -PortByGuid
Zawiera listę par identyfikatorów portów i wskaźników portów

[ Dane członkowskie: zwraca unsigned int ] -minLid
Śledź min. użycie pokrywy.

[ Dane członkowskie: zwraca unsigned int ] -maxLid
Track max używana pokrywa.

[ Dane członkowskie: zwraca unsigned int ] -lmc
Zastosowana wartość LMC

[Członek: zwraca IBNode *] makeNode n p_sys wpisz numPorts
Pobierz węzeł według jego nazwy (utwórz jeden z nieistniejących)

[Członek: zwraca IBNode *] getNode name
Pobierz węzeł według jego nazwy

[Członek: zwraca list_pnode *] typ getNodesByType
Zwróć listę wskaźników węzłów pasujących do wymaganego typu

[Członek: zwraca IBSystem *] nazwa makeGenericSystem
Utwórz nowy system ogólny - w zasadzie pusty kontener na węzły...

[Członek: zwraca IBSystem *] makeSystem typ nazwy
Utwórz nowy system - typ musi mieć zarejestrowaną fabrykę.

[Członek: zwraca IBSystem *] getSystem name
Pobierz system według nazwy

[Członek: zwraca IBSystem *] getSystemByGuid guid
pobierz system za pomocą przewodnika

[Członek: zwraca IBNode *] Guid getNodeByGuid
pobierz węzeł według jego przewodnika

[Członek: zwraca IBPort *] Przewodnik getPortByGuid
zdobądź port przez jego przewodnika

[Członek: zwraca nieważność] addCable t1 n1 p1 t2 n2 p2 ?szerokość? ?prędkość?
Dodaje kabel, biorąc pod uwagę dwa zestawy typu węzła, nazwy węzła i numeru portu. Opcjonalnie
użyj danej szerokości i szybkości połączenia

[Członek: zwraca int] parseCables fn
Przeanalizuj plik kabli i zbuduj strukturę

[Członek: zwraca int] parseTopology fn
Przeanalizuj plik topologii i zbuduj strukturę

[Członek: zwraca int] addLink type1 numPorts1 sysGuid1 nodeGuid1 portGuid1 vend1
devId1 rev1 desc1 lid1 portNum1 typ2 numPorts2 sysGuid2 węzełGuid2 portGuid2 vend2 devId2
rev2 desc2 pokrywa2 portNum2 ?szerokość? ?prędkość?
Dodaj łącze do struktury — spowoduje to utworzenie systemu i węzłów zgodnie z wymaganiami.

[Członek: zwraca int] parseSubnetLinks fn
Przeanalizuj plik subnet.lst OpenSM i zbuduj z niego szkielet.

[Członek: zwraca int] parseFdbFile fn
Przeanalizuj plik zrzutu OpenSM FDB i wypełnij tabele LFT przełączników

[Członek: zwraca int] parseMCFdbFile fn
Przeanalizuj plik MCFDB OpenSM i odpowiednio ustaw tabelę MFT

[Członek: zwraca int] parsePSLFile fn
Przeanalizuj ścieżkę do pliku mapowania SL. Każda linia z: src_node_guid DLID SL

Używany podczas sprawdzania pętli kredytowej

[Członek: zwraca int] parseSLVLFile fn
Przeanalizuj plik tabel SLVL. Każda linia zawiera: sw_node_guid in_port out_port 0x(sl0)(sl1)
0x(sl2)(sl3)...

[Członek: zwraca nieważność] setLidPort pokrywa p_port
Ustaw port pokrywy

[Członek: zwraca IBPort *] getPortByLid pokrywka
Zdobądź port za pokrywką

[zwraca IBFabric * ] new_IBFabric
Skonstruuj nową tkaninę

[ zwraca nieważność ] usuń_IBFabric p_fabric
Zniszczyć tkaninę

IBDM Funkcje


W tej sekcji znajdują się szczegółowe informacje na temat funkcji udostępnianych przez IBDM. Kolejność jest zgodna z
oczekiwany porządek w regularnym przepływie IBDM. Wszyscy zwracają 0 w przypadku sukcesu.

Subnet Użytkowe

Plik zawiera zestaw narzędzi do uruchomienia w podsieci w celu naśladowania inicjalizacji OpenSM
i przeanalizuj wyniki:

[ zwraca int ] ibdmAssignLids p_smNodePort ?lmc?
Przypisz LID za pomocą opcjonalnego LMC (wiele LID na port)

[zwraca int ] ibdmCalcMinHopTables p_fabric
Oblicz i wypełnij tabele MinHopTable wymagane do uruchomienia routingu w stylu OpenSM.

[ zwraca int ] ibdmCalcUpDnMinHopTbls p_fabric rootNodesNameRex
Oblicz i wypełnij tabele MinHopTables zgodnie z regułą Góra/Dół.

[zwraca int ] ibdmOsmRoute p_fabric
Poprowadź tkaninę za pomocą routingu w stylu OpenSM

[zwraca int ] ibdmEnhancedRoute p_fabric
Trasuj strukturę za pomocą routingu w stylu OpenSM ulepszonego z lepszą obsługą LMC > 0

[zwraca int ] ibdmFatTreeRoute p_fabric rootNodes
Poprowadź tkaninę za pomocą algorytmu, który pasuje tylko do drzew pełnotłustych

[ zwraca int ] ibdmFatTreeAnalytics p_fabric
Przeanalizuj tkaninę, aby sprawdzić, czy jest to grube drzewo i poprowadź je, jeśli tak

[zwraca int ] ibdmVerifyCAtoCARoutes p_fabric
Upewnij się, że wszystkie (H)CA są ze sobą połączone w oparciu o ustawienia LFT

[zwraca int ] ibdmVerifyAllPaths p_fabric
Upewnij się, że wszystkie przełączniki i (H)CA są ze sobą połączone w oparciu o LFT
w panelu ustawień

[zwraca int ] ibdmAnalyzeLoops p_fabric
Rygorystyczna kontrola pętli kredytowych. Algorytm ten przeprowadza pełną i dokładną kontrolę
jednak zawarte w nim sprawozdania dotyczące ścieżek pętli kredytowych są trudne do zinterpretowania. Jeśli znasz korzenie
drzewa (lub drzewo jest symetryczne) lepiej jest użyć
ibdmReportNonUpDownCa2CaPaths

[zwraca węzeł list_pnode ] ibdmFindSmetricTreeRoots p_fabric
Przeanalizuj topologię drzewa i znajdź korzenie drzewa na podstawie jego symetrii

[zwraca list_pnode ] ibdmFindRootNodesByMinHop p_fabric
Na podstawie MinHopTable znajdź korzenie drzewa. Dopuszczalna asymetria wynosi 5%.

[zwraca int ] ibdmRankFabricByRoots p_fabric rootNodes
Biorąc pod uwagę listę węzłów głównych (nazw), uszereguj węzły (root = 0)

[ zwraca int ] ibdmReportNonUpDownCa2CaPaths p_fabric rootNodes
Przeanalizuj trasy, aby upewnić się, że zasada Góra/Dół jest zachowana

[zwraca int ] ibdmCheckMulticastGroups p_fabric
Sprawdź łączność routingu multiemisji

[ zwraca int ] ibdmCheckFabricMCGrpsForCreditLoopPotential p_fabric rootNodes
Przeanalizuj routing multiemisji, aby upewnić się, że jest on zgodny z regułą góra/dół

[ zwraca int ] ibdmLinkCoverageAnalytic p_fabric rootNodes
Przygotuj harmonogram transmisji ze zbioru źródeł do miejsc docelowych, tak aby
na każdym etapie nie ma linków, które są nadmiernie subskrybowane i po wszystkich etapach
ogniwa tkaniny zostały wzmocnione

Rysunek kalkowy Użytkowe

Funkcje te umożliwiają śledzenie ścieżek i raportowanie odwiedzonych węzłów

[ zwraca int ] ibdmTraceDRPathRoute p_smNodePort drPathPortNums
Prześledź wyznaczoną ścieżkę trasy z danego portu

[ zwraca int ] ibdmTraceRouteByMinHops p_fabric slid dlid
Śledź ścieżkę wzdłuż MinHop od źródłowego do docelowego LID-u

[ zwraca int ] ibdmTraceRouteByLFT p_fabric slid dlid przeskoki p_nodesList
Śledź ścieżkę po LFT aktualizując zmienne listy przeskoków i węzłów

Topologia Dopasowywanie Użytkowe

Poniższe narzędzia dopasowują dwie struktury, dostarczając zarówno komunikaty o niezgodnościach, jak i a
jednolita tkanina

[ zwraca int ] ibdmMatchFabrics p_spec_fabric p_discovered_fabric kotwicaNodeName
kotwicaPortNum kotwicaPortGuid
Dopasuj strukturę opartą na topologii do odkrytej, zaczynając od portu enchor

[ zwraca int ] ibdmBuildMergedFabric p_spec_fabric p_discovered_fabric p_merged_fabric
Po dopasowaniu za pomocą ibdmMatchFabrics zapełnij „scaloną tkaninę” informacjami
połączone dla dopasowanych węzłów

Przekrwienie Analiza Użytkowe

Zapewnij możliwość śledzenia i raportowania nadsubskrypcji linków

[zwraca int ] ibdmCongInit p_fabric
Zainicjuj system śledzenia

[zwraca int ] ibdmCongCleanup p_fabric
Wyczyść liczniki i usuń alokację

[zwraca int ] ibdmCongClear p_fabric
Liczniki sprzątania

[zwraca int ] ibdmCongTrace p_fabric srcLid dstLid
Śledź ścieżkę pomiędzy LID-ami aktualizującymi informacje o użyciu łącza

[zwraca int ] ibdmCongReport p_fabric
Zgłaszaj powstałe informacje o zatorach

[zwraca int ] ibdmCongDump p_fabric
Zrzuć wszystkie informacje o śledzeniu zatorów

Korzystaj z ibdmsh online, korzystając z usług onworks.net


Darmowe serwery i stacje robocze

Pobierz aplikacje Windows i Linux

Komendy systemu Linux

Ad