Ib management inband services - an extended tcl shell
ibis [-port_num <port number to attach to>]
ibis is a \s-1TCL\s0 shell extended with interface for sending and receiving \s-1IB\s0 management datagrams (\s-1MADS\s0). To use this shell you will write \s-1TCL\s0 code that excersizes the regular \s-1TCL\s0 command and the special \s-1API\s0 provided by this extension. Interactive use is also possible and is greatly enhanced if tclreadline package is available on the machine.
The following sub sections provide detailed definition for the \s-1API\s0 and global objects defined by the extension. The different MADs APIs are group by the management class.
These constants are provided by \s-1IBIS:\s0
\$1
This section provide the details about the functions \s-1IBIS\s0 exposes. They all return 0 on succes.
Return the list of available \s-1IB\s0 ports with \s-1GUID\s0, \s-1LID\s0, state and port number.
Initialize ibis object
Change the log verbosity
Set the port \s-1IBIS\s0 is attached to and initialize all sub packages. Must be called once during ibis operation.
Provide the \s-1GUID\s0 of the port \s-1IBIS\s0 is attached to
Set the transaction time out in [msec]
Exit \s-1IBIS\s0.
Appends a message to the OpenSM log
The \s-1IBIS\s0 options are available through the predefined object: ibis_opts. It can be manipulated using the standard Tcl methods: cget and configure. Examples:
ibis_opts cget -force_log_flush
ibis_opts configure -force_log_flush TRUE The following are the different options that can be configured:
Run single threaded
If \s-1TRUE\s0 - forces flash after each log message (\s-1TRUE\s0).
The log levels to be used
The name of the log file to be used.Must be configured before ibis_init is used to make an affect
The SM_Key to be used when sending SubnetMgt and SubnetAdmin MADs
The M_Key to be used when sending SubnetMgt
The Vendor Key to be used when sending Vendor Specific MADs.
\s-1IBPM\s0 stands for \s-1IB\s0 Performance Monitoring MADs. \s-1IB\s0 provides standard facilities for tracking statistics on every port. This section provide the details about the functions \s-1IBPM\s0 exposes. They all return 0 on succes.
Obtain the maximal number of parallel queries that can be sent
Send a \*(L"PortCounters\*(R" query to teh given \s-1LID\s0 and port
Send a batch of \*(L"PortCounters\*(R" queries to the given list of LIDs and ports. num - defines the number of elements in each list.
Send a batch of \*(L"ExtendedPortCounters\*(R" queries to the given list of LIDs and ports. num - defines the number of elements in each list.
Sends a command to \*(L"clear all counters\*(R" on the given \s-1LID\s0 and port
Send a batch of \*(L"clear all counters\*(R" commands to the given list of LIDs and ports. num - defines the number of elements in each list.
\s-1IBSAC\s0 stands for \s-1IB\s0 Subnet Administrator (\s-1SA\s0) Client. It provide means to query the \s-1SA\s0 for information about the various objects it manages The following sections describe the concepts behind the \s-1SAC\s0 interface and then provides detailed description of each attribute that can be queried.
\s-1IBSAC\s0 uses predefined global objects to facilitate \s-1SA\s0 Queries. Such objects are named sac<Attribute>Query. Each such object exposes a standard set of methods:
dump out all fields and values for the obejct
obtain the value of the given field
set the field value
query the \s-1SA\s0 for one record using the component mask and field values as set on the query object
query the \s-1SA\s0 for all records matching component mask and field values as set on the query object Some \s-1SA\s0 maintained objects support the \*(L"set\*(R" and \*(L"delete\*(R" methods. In that case the following methods are made available on the corresponding query object:
send a set method to the \s-1SA\s0 with the component mask and field values as set on the query object
send a delete method to the \s-1SA\s0 with the component mask and field values as set on the query object This section describes the values returned from the get/getTable/set/delete methods of the query objects: Each query returns a list (or one) identifiers (pointers) for objects. There identifiers are formatted according to the type of object they point to using the following prefixes: Queries embedding Subnet Management Attributes:
Queries of non embedded attributes:
Component mask bits:
---- class sacNodeInfo Fields:
---- class sacNodeRec \s-1RID\s0 Fields:
Methods:
Component mask bits:
---- class sacPortInfo Fields:
LinkSpeedSupported and PortState
PortPhysState and LinkDownDefaultState
LinkSpeedEnabled and LinkSpeedActive
VlCap and InitType
---- class sacPortRec \s-1RID\s0 Fields:
Methods:
Component mask bits:
---- class sacSmInfo Fields:
---- class sacSmRec \s-1RID\s0 Fields:
Methods:
Component mask bits:
---- class sacSwInfo Fields:
---- class sacSwRec \s-1RID\s0 Fields:
Methods:
Component mask bits:
---- class sacLinkRec Fields:
Methods:
Component mask bits:
---- class sacPathRec Fields:
Methds:
Component mask bits:
---- class sacLFTRec Fields:
Methods:
Component mask bits:
---- class sacMCMRec Fields:
Methods:
Instead of simple field cget
Instead of simple field configure
Delete the object
---- class sacClassPortInfo Fields:
Methods:
The inform Info is built with heirarchy of objects. So several classes are defined. ---- class sacInformInfo Fields:
Methods:
---- class sacInformInfo_g_or_v Fields:
---- class sacInformInfo_g_or_v_generic Fields:
---- class sacInformInfo_g_or_v_vend Fields:
Component mask bits:
---- class sacServiceRec Fields:
Methods:
Component mask bits:
---- class sacSlVlTbl
---- class sacSlVlRec \s-1RID\s0 Fields:
for \s-1CA:\s0 lid of port, for switch lid of port 0
reserved for \s-1CA\s0's
reserved for \s-1CA\s0's
Methods:
Component mask bits:
---- class sacVlArbRec Fields:
for \s-1CA:\s0 lid of port, for switch lid of port 0
Methods:
Component mask bits:
---- class sacPKeyTbl Fields:
---- class sacPKeyRec \s-1RID\s0 Fields:
for \s-1CA:\s0 lid of port, for switch lid of port 0
for switch: port number, for \s-1CA:\s0 reserved
Methods:
The \s-1SM\s0 interface supports sending Subnet Management Packets to the fabric devices. The specific attributes that can be access is provided in detail in each sub section below. A set of object types is defined. The user can allocate a new attribute object. Then the object can be set using configure or the direct manipulation methods. Extra methods are provided for each object: =item setByDr <dr> <attrMod> Set the attribute on the object accessible by the given directed route. A directed route is a list of port numbers to go out from.
Get the attribute value by traversing a directed route. setByLid <lid> <attrMod> Set the attribute on the object accessible by the given \s-1LID\s0 getByLid <lid> <attrMod> get the attribute on the object accessible by the given \s-1LID\s0
Fields:
Methods:
Fields:
LinkSpeedSupported and PortState
PortPhysState and LinkDownDefaultState
LinkSpeedEnabled and LinkSpeedActive
VlCap and InitType
Methods:
The \s-1NOTICE\s0 attribute is built out of several sub objects
---- class smNotice_g_or_v
---- class smNotice_data_details
---- class smNotice_g_or_v_generic
---- class smNotice_g_or_v_vend
---- class smNotice_data_details_raw_data
---- class smNotice_data_details_ntc_64_67
the Node or Multicast Group that came in/out ---- class smNotice_data_details_ntc_128
the sw lid of which link state changed ---- class smNotice_data_details_ntc_129_131
lid and port number of the violation
---- class smNotice_data_details_ntc_144
lid where capability mask changed
new capability mask ---- class smNotice_data_details_ntc_145
lid where sys guid changed
new system image guid ---- class smNotice_data_details_ntc_256
---- class smNotice_data_details_ntc_257_258
---- class smNotice_data_details_ntc_259
Provides vendor specific access to the device internal coniguration space This section provide the details about the functions \s-1IBCR\s0 exposes. They all return 0 on succes.
\s-1IBVS\s0 stands for Vendor Specific MADs. This section provide the details about the functions \s-1IBVS\s0 exposes. They all return 0 on succes.
This section provide the details about the functions \s-1IBBBM\s0 exposes. They all return 0 on succes.
Eitan Zahavi, Mellanox Technologies \s-1LTD\s0, [email protected]