ibis - IB management Inband Services - an extended TCL shell ibis [-port_num <port number to attach to>] ibis is a TCL shell extended with interface for sending and receiving IB management datagrams (MADS). To use this shell you will write TCL code that excersizes the regular TCL command and the special API 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 API and global objects defined by the extension. The different MADs APIs are group by the management class. These constants are provided by IBIS:

Log Verbosity Flags
This section provide the details about the functions IBIS exposes. They all return 0 on succes. Return the list of available IB ports with GUID, LID, state and port number. Initialize ibis object Change the log verbosity Set the port IBIS is attached to and initialize all sub packages. Must be called once during ibis operation. Provide the GUID of the port IBIS is attached to Set the transaction time out in [msec] Exit IBIS. Appends a message to the OpenSM log

IBIS Options Object
The IBIS 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 TRUE - forces flash after each log message (TRUE). 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. IBPM stands for IB Performance Monitoring MADs. IB provides standard facilities for tracking statistics on every port. This section provide the details about the functions IBPM exposes. They all return 0 on succes. Obtain the maximal number of parallel queries that can be sent Send a "PortCounters" query to teh given LID and port Send a batch of "PortCounters" queries to the given list of LIDs and ports. num - defines the number of elements in each list. Send a batch of "ExtendedPortCounters" queries to the given list of LIDs and ports. num - defines the number of elements in each list. Sends a command to "clear all counters" on the given LID and port Send a batch of "clear all counters" commands to the given list of LIDs and ports. num - defines the number of elements in each list. IBSAC stands for IB Subnet Administrator (SA) Client. It provide means to query the SA for information about the various objects it manages The following sections describe the concepts behind the SAC interface and then provides detailed description of each attribute that can be queried.

IBSAC Objects
IBSAC uses predefined global objects to facilitate SA 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 SA for one record using the component mask and field values as set on the query object query the SA for all records matching component mask and field values as set on the query object Some SA maintained objects support the "set" and "delete" methods. In that case the following methods are made available on the corresponding query object: send a set method to the SA with the component mask and field values as set on the query object send a delete method to the SA with the component mask and field values as set on the query object

Returned Objects
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:

NODE INFO RECORD
Component mask bits: ---- class sacNodeInfo Fields: ---- class sacNodeRec RID Fields: Methods:

PORT INFO RECORD
Component mask bits: ---- class sacPortInfo Fields: LinkSpeedSupported and PortState PortPhysState and LinkDownDefaultState LinkSpeedEnabled and LinkSpeedActive VlCap and InitType ---- class sacPortRec RID Fields: Methods:

SM INFO RECORD
Component mask bits: ---- class sacSmInfo Fields: ---- class sacSmRec RID Fields: Methods:

SWITCH INFO RECORD
Component mask bits: ---- class sacSwInfo Fields: ---- class sacSwRec RID Fields: Methods:

LINK RECORD
Component mask bits: ---- class sacLinkRec Fields: Methods:

PATH RECORD
Component mask bits: ---- class sacPathRec Fields: Methds:

LINEAR FORWARDING TABLE
Component mask bits: ---- class sacLFTRec Fields: Methods:

MULTICAST MEMBER RECORD
Component mask bits: ---- class sacMCMRec Fields: Methods: Instead of simple field cget Instead of simple field configure Delete the object

SA CLASS PORT INFO
---- class sacClassPortInfo Fields: Methods:

INFORM INFO RECORD
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:

SERVICE RECORD
Component mask bits: ---- class sacServiceRec Fields: Methods:

SL to VL TABLE RECORD
Component mask bits: ---- class sacSlVlTbl ---- class sacSlVlRec RID Fields: for CA: lid of port, for switch lid of port 0 reserved for CA's reserved for CA's Methods:

VL ARBITRATION TABLE RECORD
Component mask bits: ---- class sacVlArbRec Fields: for CA: lid of port, for switch lid of port 0 Methods:

PKEY TABLE RECORD
Component mask bits: ---- class sacPKeyTbl Fields: ---- class sacPKeyRec RID Fields: for CA: lid of port, for switch lid of port 0 for switch: port number, for CA: reserved Methods: The SM 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 LID getByLid <lid> <attrMod> get the attribute on the object accessible by the given LID

class smNodeInfo
Fields: Methods: Fields: LinkSpeedSupported and PortState PortPhysState and LinkDownDefaultState LinkSpeedEnabled and LinkSpeedActive VlCap and InitType Methods:

class smSwInfo

class smLftBlock

class smMftBlock

class smGuidInfo

class smPkeyTable

class smSlVlTable

class smVlArbTable

class smNodeDesc

class smSMInfo

class smNotice
The NOTICE 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 IBCR exposes. They all return 0 on succes. IBVS stands for Vendor Specific MADs. This section provide the details about the functions IBVS exposes. They all return 0 on succes. This section provide the details about the functions IBBBM exposes. They all return 0 on succes. Eitan Zahavi, Mellanox Technologies LTD, eitan@mellanox.co.il