Ini ialah arahan ibdmsh yang boleh dijalankan dalam penyedia pengehosan percuma OnWorks menggunakan salah satu daripada berbilang stesen kerja dalam talian percuma kami seperti Ubuntu Online, Fedora Online, emulator dalam talian Windows atau emulator dalam talian MAC OS.
JADUAL:
NAMA
ibdmsh MODEL DATA IB - Cangkang TCL lanjutan
DESCRIPTION
ibdmsh ialah cangkerang TCL yang dilanjutkan dengan antara muka untuk model data IB. Untuk menggunakan cangkerang ini
anda akan menulis kod TCL yang mengakses secara langsung objek dan fungsi model data IB.
Subbahagian berikut memberikan definisi terperinci untuk objek dan API tersebut.
IBDM Malang
nod jenis
Pemalar berikut digunakan oleh medan jenis objek nod
[ Malar : int ] $IB_UNKNOWN_NODE_TYPE = IB_UNKNOWN_NODE_TYPE
[ Malar : int ] $IB_SW_NODE = IB_SW_NODE
[ Malar : int ] $IB_CA_NODE = IB_CA_NODE
Log Kata Kerja Flags
Pemalar berikut digunakan sebagai bit hujah untuk pembolehubah global
$FabricUtilsVerboseLevel
[ Malar : int ] $FABU_LOG_NONE = 0x0
[ Malar : int ] $FABU_LOG_ERROR = 0x1
[ Malar : int ] $FABU_LOG_INFO = 0x2
[ Malar : int ] $FABU_LOG_VERBOSE = 0x4
IBDM Dunia global
Tahap log: ditetapkan kepada nilai FABU_LOG*
[ Global : int ] $FabricUtilsVerboseLevel
IBDM Objek
Bahagian ini menghuraikan pelbagai jenis objek yang didedahkan oleh IBDM.
IBDM mendedahkan beberapa objek dalamannya. Pengecam objek dikembalikan oleh pelbagai
panggilan fungsi diformat mengikut peraturan berikut:
Fabrik: kain:
Sistem: sistem: :
SysPort: sysport: : :
Nod: nod: :
Pelabuhan: pelabuhan: : /
Objek IBDM ialah objek Swig-Tcl standard. Oleh itu, mereka mempunyai dua perisa untuk kegunaannya:
Pembolehubah, Objek.
Pembolehubah/Penunjuk:
Untuk setiap atribut objek kaedah "dapatkan" dan "setkan" disediakan.
Format kaedah adalah: _ _ .
Kaedah "set" hanya tersedia untuk atribut baca/tulis.
Contoh:
tetapkan nod [ibdm_get_nodes]
tetapkan nod [lindex $nodes 0]
IBNode_numPorts_get $node
Objek:
Memandangkan penunjuk objek seseorang boleh menukarnya kepada "Objek" Tcl
menggunakan arahan berikut:
-ini
Setelah mengisytiharkan boleh digunakan bersama dengan
dengan arahan "configure" dan "cget" standard.
Contoh (mengikuti yang sebelumnya):
IBFabric VaTech -kain $ini
VaTech cget -NodeByName
Untuk memadam simbol objek (dan membolehkan pemetaannya kepada simbol lain
penunjuk) gunakan:
menamakan semula ""
sebagai contoh:
namakan semula VaTech ""
kelas IBPort
Berikut ialah medan dan kaedah berbeza kelas IB Port yang menerangkan satu
Port fizikal peranti (cip) IB.
[ Data ahli: mengembalikan IBPort * ] -p_remotePort
Port disambungkan pada bahagian lain pautan
[ Data ahli: mengembalikan IBSysPort * ] -p_sysPort
Port sistem (jika ada) disambungkan ke
[ Data ahli: mengembalikan IBNode * ] -p_node
Nod yang menjadi sebahagian daripada port.
[ Data ahli: returns int ] -num
Port fizikal dikenal pasti dengan nombor.
[ Data ahli: mengembalikan int yang tidak ditandatangani ] -base_lid
Tudung asas yang ditetapkan pada port.
[ Data ahli: mengembalikan IBLinkWidth * ] -width
Lebar pautan port
[ Data ahli: mengembalikan IBLinkSpeed * ] -kelajuan
Kelajuan pautan pelabuhan
[ Data ahli: mengembalikan int yang tidak ditandatangani ] -counter1
Nilai generik untuk digunakan oleh pelbagai algoritma
[ Pembina: mengembalikan IBPort * ] Nama IBPort nombor p_nodePtr
Pembina IBPort
[ Ahli : mengembalikan new_uint64_t ] guid_get
Dapatkan pemandu pelabuhan
[ Ahli : kembali batal ] guid_set guid
Ubah suai panduan pelabuhan
[ Ahli : mengembalikan new_string ] getName
Dapatkan nama port: Port peranti yang disambungkan ke port sistem (panel hadapan) kembali
nama port panel hadapan.
[ Ahli : mengembalikan batal ] sambung p_otherPort ?width? ?laju?
Sambungkan port ke port nod lain dengan parameter lebar dan kelajuan pilihan
[ Ahli : returns int ] putuskan sambungan
Putuskan sambungan port. Kembalikan 0 jika berjaya
kelas IBNode
Kelas Nod IB mewakili satu Peranti IB (cip)
[ Data ahli: mengembalikan rentetan * ] -nama
Nama nod (nama contoh cip)
[ Data ahli: mengembalikan IBNodeType ] -jenis
Sama ada $IB_SW_NODE atau $IB_CA_NODE
[ Data ahli: mengembalikan uint16_t * ] -devId
ID peranti nod
[ Data ahli: mengembalikan uint16_t * ] -revId
Id semakan peranti
[ Data ahli: mengembalikan uint16_t * ] -vendId
ID Penjual peranti.
[ Data ahli: mengembalikan rentetan * ] -atribut
Rentetan koma bagi atribut arbitrari k=v
[ Data ahli: mengembalikan uint8_t ] -pangkat
Kedudukan nod (0 ialah punca)
[ Data ahli: mengembalikan IBSystem * ] -p_system
Sistem apa yang kita milik
[ Data ahli: mengembalikan IBFabric * ] -p_fabric
Kita milik kain apa.
[ Data ahli: mengembalikan int yang tidak ditandatangani ] -numPorts
Bilangan port fizikal
[ Data ahli: mengembalikan vec_pport * ] -Ports
Vektor semua pelabuhan
[ Data ahli: mengembalikan vec_vec_byte * ] -MinHopsTable
Jadual bilangan lompatan yang diperlukan untuk mendapatkan dari setiap port ke setiap LID sasaran
[ Data ahli: mengembalikan vec_byte * ] -LFT
LFT nod ini (untuk suis sahaja) yang merupakan vektor panjang port sasaran -
indeks ialah LID
[ Ahli : mengembalikan new_uint64_t ] guid_get
Dapatkan GUID nod
[ Ahli : kembali batal ] guid_set guid
Tetapkan GUID nod
[ Pembina: mengembalikan IBNode * ] Nama IBNode n p_fab p_sys t np
Kontraktor
[ Ahli : mengembalikan IBPort * ] nombor makePort
Cipta port baharu mengikut nombornya (jika perlu) kembalikan penuding port
[ Ahli : mengembalikan IBPort * ] nombor getPort
Dapatkan port mengikut nombor num = 1..N:
[ Ahli : mengembalikan batal ] setHops p_port penutup lompat
Tetapkan lompat min untuk pasangan penutup port yang diberikan (* adalah semua).
[ Ahli : returns int ] tudung p_port getHops
Dapatkan bilangan min hop yang ditentukan untuk port yang diberikan atau semua
[ Ahli : mengembalikan IBPort * ] tudung getFirstMinHopPort
Imbas port nod dan cari port pertama dengan min hop ke penutup
[ Ahli : mengembalikan batal ] setLFTPortForLid penutup portNum
Tetapkan Jadual Pemajuan Linear untuk LID yang diberikan
[ Ahli : returns int ] getLFTPortForLid tudung
Dapatkan LFT untuk LID tertentu
[ Ahli : kembali batal ] repHopTable
Buang keluar jadual min hop nod
kelas IBSysPort
Kelas IBSysPort mewakili palam IB pada panel hadapan atau belakang sistem
[ Data ahli: mengembalikan rentetan * ] -nama
Nama panel hadapan (sutera) pelabuhan
[ Data ahli: mengembalikan IBSysPort * ] -p_remoteSysPort
Jika disambungkan port sys sebelah lain
[ Data ahli: mengembalikan IBSystem * ] -p_system
Sistem ia benongs kepada
[ Data ahli: mengembalikan IBPort * ] -p_nodePort
Port nod yang disambungkannya.
[ Pembina: mengembalikan IBSysPort * ] Nama IBSysPort n p_sys
Pembina
[ Ahli : mengembalikan batal ] sambung p_otherSysPort ?lebar? ?laju?
Sambungkan dua SysPorts
[ Ahli : returns int ] putuskan sambungan
Putuskan sambungan SysPort (dan port). Kembalikan 0 jika berjaya
kelas Sistem IBS
Kelas IBSystem mewakili keseluruhan casis
[ Data ahli: mengembalikan rentetan * ] -nama
Nama "hos" sistem
[ Data ahli: mengembalikan rentetan * ] -jenis
Apakah jenis iaitu Cougar, Buffalo, MTS2400, dsb. Fail IBNL yang sepadan
harus wujud - mentakrifkan jenis sistem ini
[ Data ahli: mengembalikan IBFabric * ] -p_fabric
Fabrik yang dimiliki oleh sistem
[ Data ahli: mengembalikan map_str_pnode * ] -NodeByName
Sediakan penunjuk nod dengan namanya
[ Data ahli: mengembalikan map_str_psysport * ] -PortByName
Peta yang menyediakan penunjuk kepada SysPort mengikut nama
[ Pembina: mengembalikan IBSystem * ] Nama IBSystem n p_fab t
Kontraktor
[ Ahli : mengembalikan new_uint64_t ] guid_get
Dapatkan GUID imej sistem
[ Ahli : kembali batal ] guid_set guid
Tetapkan GUID imej sistem
[ Ahli : mengembalikan IBSysPort * ] makeSysPort pName
Pastikan kami mendapat port yang ditentukan (jadi tentukan ia jika tidak)
[ Ahli : mengembalikan IBPort * ] getSysPortNodePortByName sysPortName
Dapatkan port nod untuk port sys yang diberikan mengikut nama
[ Ahli : mengembalikan IBSysPort * ] nama getSysPort
Dapatkan Sys Port mengikut nama
kelas IBFabric
Mewakili keseluruhan subnet IB yang diperbuat daripada sistem
[ Data ahli: mengembalikan map_str_pnode * ] -NodeByName
Sediakan senarai nama nod dan pasangan penunjuk
[ Data ahli: mengembalikan map_str_psys * ] -SystemByName
Sediakan senarai nama sistem dan pasangan penunjuk
[ Data ahli: mengembalikan vec_pport * ] -PortByLid
Menyediakan senarai nama port sistem dan pasangan penunjuk
[ Data ahli: mengembalikan map_guid_pnode * ] -NodeByGuid
Menyediakan senarai pasangan penunjuk nod dan penunjuk nod
[ Data ahli: mengembalikan map_guid_psys * ] -SystemByGuid
Menyediakan senarai panduan imej sistem dan pasangan penunjuk sistem
[ Data ahli: mengembalikan map_guid_pport * ] -PortByGuid
Menyediakan senarai panduan port dan pasangan penunjuk port
[ Data ahli: mengembalikan int yang tidak ditandatangani ] -minLid
Tudung min trek digunakan.
[ Data ahli: mengembalikan int yang tidak ditandatangani ] -maxLid
Tudung maks trek digunakan.
[ Data ahli: mengembalikan int yang tidak ditandatangani ] -lmc
Nilai LMC digunakan
[ Ahli : mengembalikan IBNode * ] makeNode n p_sys jenis numPorts
Dapatkan nod dengan namanya (buat salah satu daripada tidak wujud)
[ Ahli : mengembalikan IBNode * ] nama getNode
Dapatkan nod dengan namanya
[ Ahli : mengembalikan list_pnode * ] jenis getNodesByType
Kembalikan senarai penunjuk nod yang sepadan dengan jenis yang diperlukan
[ Ahli : mengembalikan IBSystem * ] nama makeGenericSystem
Cipta sistem generik baharu - pada asasnya bekas kosong untuk nod...
[ Ahli : mengembalikan IBSystem * ] jenis nama makeSystem
Cipta sistem baharu - jenis mesti mempunyai kilang berdaftar.
[ Ahli : mengembalikan IBSystem * ] nama getSystem
Dapatkan sistem mengikut nama
[ Ahli : mengembalikan IBSystem * ] panduan getSystemByGuid
dapatkan sistem dengan panduannya
[ Ahli : mengembalikan IBNode * ] panduan getNodeByGuid
dapatkan nod oleh pemandunya
[ Ahli : mengembalikan IBPort * ] panduan getPortByGuid
dapatkan pelabuhan dengan pemandunya
[ Ahli : mengembalikan batal ] addCable t1 n1 p1 t2 n2 p2 ?width? ?laju?
Menambah kabel yang diberikan dua set jenis nod, nama nod dan nombor port. Secara pilihan
gunakan lebar dan kelajuan yang diberikan untuk sambungan
[ Ahli : returns int ] parseCables fn
Parsing fail kabel dan bina fabrik
[ Ahli : returns int ] parseTopology fn
Parse Fail Topologi dan bina fabrik
[ Ahli : returns int ] addLink type1 numPorts1 sysGuid1 nodeGuid1 portGuid1 vend1
devId1 rev1 desc1 lid1 portNum1 type2 numPorts2 sysGuid2 nodGuid2 portGuid2 vend2 devId2
rev2 desc2 penutup2 portNum2 ?lebar? ?laju?
Tambahkan pautan ke dalam fabrik - ini akan mencipta sistem dan nod seperti yang diperlukan.
[ Ahli : returns int ] parseSubnetLinks fn
Parsing fail OpenSM subnet.lst dan bina fabrik daripadanya.
[ Ahli : returns int ] parseFdbFile fn
Parse OpenSM FDB dump fail dan isikan suis jadual LFT
[ Ahli : returns int ] parseMCFdbFile fn
Parsing fail OpenSM MCFDBs dan tetapkan jadual MFT dengan sewajarnya
[ Ahli : returns int ] parsePSLFile fn
Parse Path ke fail pemetaan SL. Setiap baris dengan: src_node_guid DLID SL
Digunakan oleh semakan gelung kredit
[ Ahli : returns int ] parseSLVLFile fn
Menghuraikan fail jadual SLVL. Setiap baris mengandungi: sw_node_guid in_port out_port 0x(sl0)(sl1)
0x(sl2)(sl3)...
[ Ahli : mengembalikan batal ] setLidPort penutup p_port
Tetapkan port penutup
[ Ahli : mengembalikan IBPort * ] tudung getPortByLid
Dapatkan port dengan penutup
[ mengembalikan IBFabric * ] new_IBFabric
Bina fabrik baru
[ mengembalikan batal ] delete_IBFabric p_fabric
Memusnahkan kain
IBDM Fungsi
Bahagian ini memberikan butiran tentang fungsi yang IBDM dedahkan. Perintah itu mengikut
susunan jangkaan dalam aliran IBDM biasa. Mereka semua kembali 0 pada kejayaan.
sub bersih Kesediaan
Fail ini menyimpan satu set utiliti untuk dijalankan pada subnet untuk meniru permulaan OpenSM
dan menganalisis keputusan:
[ returns int ] ibdmAssignLids p_smNodePort ?lmc?
Tetapkan LID dengan LMC pilihan (berbilang LID setiap port)
[ returns int ] ibdmCalcMinHopTables p_fabric
Kira dan isikan MinHopTables yang diperlukan untuk menjalankan penghalaan gaya OpenSM.
[ returns int ] ibdmCalcUpDnMinHopTbls p_fabric rootNodesNameRex
Kira dan isikan MinHopTables mengikut peraturan Atas/Bawah.
[ returns int ] ibdmOsmRoute p_fabric
Halakan fabrik dengan penghalaan gaya OpenSM
[ returns int ] ibdmEnhancedRoute p_fabric
Halakan fabrik dengan penghalaan gaya OpenSM dipertingkatkan dengan sokongan yang lebih baik untuk LMC > 0
[ returns int ] ibdmFatTreeRoute p_fabric rootNodes
Halakan fabrik menggunakan algoritma yang sesuai hanya pada pokok penuh lemak
[ returns int ] ibdmFatTreeAnalysis p_fabric
Analisis fabrik untuk melihat sama ada ia adalah pokok yang gemuk dan laluannya jika ia
[ returns int ] ibdmVerifyCAtoCARoutes p_fabric
Pastikan semua (H)CA disambungkan antara satu sama lain berdasarkan tetapan LFT
[ returns int ] ibdmVerifyAllPaths p_fabric
Pastikan semua Suis dan (H)CA disambungkan antara satu sama lain berdasarkan LFT
tetapan
[ returns int ] ibdmAnalyzeLoops p_fabric
Pemeriksaan ketat untuk gelung kredit. Algoritma ini melakukan semakan penuh dan tepat
tetapi pelaporan laluan gelung kreditnya sukar untuk ditafsirkan. Jika anda tahu puncanya
daripada pokok (atau pokok itu simetri) adalah lebih baik untuk menggunakan
ibdmReportNonUpDownCa2CaPaths
[ mengembalikan senarai_pnod ] ibdmCariSimetriAkarPohon p_fabric
Analisis topologi pokok dan cari akar pokok berdasarkan simetrinya
[ mengembalikan list_pnode ] ibdmFindRootNodesByMinHop p_fabric
Berdasarkan MinHopTable cari akar pokok. Asimetri 5% dibenarkan
[ returns int ] ibdmRankFabricByRoots p_fabric rootNodes
Memandangkan senarai nod akar (nama) kedudukan nod (root = 0)
[ returns int ] ibdmReportNonUpDownCa2CaPaths p_fabric rootNodes
Analisis laluan untuk memastikan peraturan Atas/Bawah dikekalkan
[ returns int ] ibdmCheckMulticastGroups p_fabric
Sahkan ketersambungan penghalaan multicast
[ returns int ] ibdmCheckFabricMCGrpsForCreditLoopPotensi p_fabric rootNodes
Analisis penghalaan berbilang hantaran untuk memastikan ia mematuhi peraturan Atas/Bawah
[ returns int ] ibdmLinkCoverageAnalysis p_fabric rootNodes
Sediakan jadual penghantaran dari satu set sumber ke destinasi sedemikian
dalam setiap peringkat tidak ada pautan yang terlebih dilanggan dan selepas semua peringkat semuanya
pautan fabrik itu dibesar-besarkan
Penjejakan Kesediaan
Fungsi ini membolehkan mengesan laluan yang melaporkan kembali nod yang dilawati
[ returns int ] ibdmTraceDRPathRoute p_smNodePort drPathPortNums
Jejak laluan laluan yang diarahkan dari port yang diberikan
[ returns int ] ibdmTraceRouteByMinHops p_fabric slid dlid
Jejaki laluan di sepanjang MinHop dari sumber ke LID destinasi
[ returns int ] ibdmTraceRouteByLFT p_fabric slid dlid hop p_nodesList
Jejaki laluan mengikut LFT yang mengemas kini pembolehubah senarai hop dan nod
Topologi Pemadanan Kesediaan
Utiliti berikut memadankan dua fabrik yang menyediakan kedua-dua mesej tidak sepadan dan a
kain bersatu
[ returns int ] ibdmMatchFabrics p_spec_fabric p_discovered_fabric anchorNodeName
anchorPortNum anchorPortGuid
Padankan fabrik berasaskan topologi dengan fabrik yang ditemui bermula di pelabuhan penambat
[ returns int ] ibdmBuildMergedFabric p_spec_fabric p_discovered_fabric p_merged_fabric
Selepas memadankan menggunakan ibdmMatchFabrics isikan "fabrik yang digabungkan" dengan maklumat
digabungkan untuk nod yang dipadankan
Kesesakan Analisis Kesediaan
Menyediakan keupayaan untuk menjejak dan melaporkan lebihan langganan pautan
[ returns int ] ibdmCongInit p_fabric
Mulakan sistem penjejakan
[ returns int ] ibdmCongCleanup p_fabric
Bersihkan kaunter dan tukar peruntukan
[ returns int ] ibdmCongClear p_fabric
Kaunter pembersihan
[ returns int ] ibdmCongTrace p_fabric srcLid dstLid
Jejaki laluan antara LID yang mengemas kini maklumat penggunaan pautan
[ returns int ] ibdmCongReport p_fabric
Laporkan maklumat kesesakan yang terhasil
[ returns int ] ibdmCongDump p_fabric
Buang semua maklumat penjejakan kesesakan
Gunakan ibdmsh dalam talian menggunakan perkhidmatan onworks.net