INTERNET-DRAFT FC Mgmt Integration MIB Sept 14, 1999 S. Blumenau (expires March 14, 2000) (EMC Corporation) Fibre Channel Management Framework Integration MIB Status of this Memo: This document is an Internet-Draft and is in full conformance with all provisions of Section 10 of RFC2026. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF), its areas, and its working groups. Note that other groups may also distribute working documents as Internet-Drafts. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress." The list of current Internet-Drafts can be accessed at http://www.ietf.org/ietf/1id-abstracts.txt The list of Internet-Draft Shadow Directories can be accessed at http://www.ietf.org/shadow.html. Abstract: The goal of this document is to fill in missing pieces necessary to enable an enterprise class storage network. One of the more important features of an enterprise class storage network is management; this document gives a framework MIB that will provide an integrated management environment for the enterprise customer. An enterprise class storage network is comprised of elements (i.e., hubs, switches, converters, gateways, and HBAs) that are developed by many different vendors. The large number of vendors that can exist in a storage network makes mangement a very hard and complicated problem. The main goal of this document's MIB is to enable interoperability among the various vendors involved in the Fibre Channel marketplace. Acknowledgements: The following companies have contributed to the creation of this specification: o Ancor Communications o ATTO Technology, Inc. o Crossroads Systems, Inc. o EMC Corporation o Emulex Corporation Blumenau [Page 01] INTERNET-DRAFT FC-Mgmt-Int MIB Sept 14, 1999 o G2 Networks o Gadzoox Networks, Inc. o Hewlett Packard Co. o Interphase Corporation o Jaycor Networks Inc. o Legato Systems, Inc. o McData Corporation o Prisa Networks, Inc. o QLogic Corporation o Siemens AG o Sterling Software, Inc. o Storage Networking Industry Association o StorageNetworks, Inc. o Transoft Networks, Inc. o VERITAS Software Corporation o Vixel Corporation The MIB: FCMGMT-MIB -- Last edit date: Sep 12th, 1999 DEFINITIONS ::= BEGIN IMPORTS IpAddress, TimeTicks, experimental FROM RFC1155-SMI OBJECT-TYPE FROM RFC-1212 DisplayString FROM RFC1213-MIB TRAP-TYPE FROM RFC-1215; FcNameId ::= OCTET STRING (SIZE(8)) FcGlobalId ::= OCTET STRING (SIZE(16)) fcmgmt OBJECT IDENTIFIER ::= { experimental 94 } -- groups in fcmgmt connSet OBJECT IDENTIFIER ::= { fcmgmt 1 } trapReg OBJECT IDENTIFIER ::= { fcmgmt 2 } revisionNumber OBJECT-TYPE SYNTAX DisplayString (SIZE (4)) ACCESS read-only STATUS mandatory DESCRIPTION "This is the revision number for this MIB. The format of the revision value is as follows (0) = high order major revision number (1) = low order major revision number (2) = high order minor revision number (3) = low order minor revision number The value will be stored as an ASCII value. The Blumenau [Page 02] INTERNET-DRAFT FC-Mgmt-Int MIB Sept 14, 1999 /conn?U following is the current values. (0) = '0' (1) = '2' (2) = '0' (3) = '0' This defines a revision of 2.0 " ::= { fcmgmt 3 } -- the connectivity unit group -- Implementation of the group is mandatory for all systems. uNumber OBJECT-TYPE SYNTAX INTEGER ACCESS read-only STATUS mandatory DESCRIPTION "The number of connectivity units present on this system. This is used to identify the number of boards in a chassis or the number of full boxes in a rack." DEFVAL { 1 } ::= { connSet 1 } systemURL OBJECT-TYPE SYNTAX DisplayString ACCESS read-only STATUS mandatory DESCRIPTION "The top-level URL of the system. If it does not exist the value is empty string. The URL format will be defined by designer and can have keywords embedded that are preceeded by a percent sign (eg, %USER). The following are the defined keywords that will be recognized and replaced with data during a launch. USER - replace with username PASSWORD - replace with password GLOBALID - replace with globalid SERIALNO - replace with serial number " DEFVAL { "" } ::= { connSet 2 } statusChangeTime OBJECT-TYPE SYNTAX TimeTicks ACCESS read-only STATUS mandatory DESCRIPTION "The sysuptime timestamp in centiseconds at which the last status change occurred for any members of the set. This represents a union of change information for connUnitStatusChangeTime." ::= { connSet 3 } Blumenau [Page 03] INTERNET-DRAFT FC-Mgmt-Int MIB Sept 14, 1999 configurationChangeTime OBJECT-TYPE SYNTAX TimeTicks ACCESS read-only STATUS mandatory DESCRIPTION "The sysuptime timestamp in centiseconds at which the last configuration change occurred for any members of the set. This represents a union of change information for connUnitConfigurationChangeTime." ::= { connSet 4 } connUnitTableChangeTime OBJECT-TYPE SYNTAX TimeTicks ACCESS read-only STATUS mandatory DESCRIPTION "The sysuptime timestamp in centiseconds at which the connUnitTable was updated (an entry was either added or deleted." ::= { connSet 5 } revsChangeTime OBJECT-TYPE SYNTAX TimeTicks ACCESS read-only STATUS mandatory DESCRIPTION "The sysuptime timestamp in centiseconds at which the last connUnitRevs Table was updated. This represents a union of change information for connUnitRevsChangeTime." ::= { connSet 6 } sensorStatusChangeTime OBJECT-TYPE SYNTAX TimeTicks ACCESS read-only STATUS mandatory DESCRIPTION "The sysuptime timestamp in centiseconds at which the last status change occurred for any members of the set. This represents a union of change information for connUnitSensorStatusChangeTime." ::= { connSet 7 } sensorConfigurationChangeTime OBJECT-TYPE SYNTAX TimeTicks ACCESS read-only STATUS mandatory DESCRIPTION "The sysuptime timestamp in centiseconds at which the last configuration change occurred for any members of the set. This represents a union of change information for connUnitSensorConfigurationChangeTime." ::= { connSet 8 } Blumenau [Page 04] INTERNET-DRAFT FC-Mgmt-Int MIB Sept 14, 1999 zoneStatusChangeTime OBJECT-TYPE SYNTAX TimeTicks ACCESS read-only STATUS mandatory DESCRIPTION "The sysuptime timestamp in centiseconds at which the last status change occurred for any members of the set. This represents a union of change information for connUnitZoneStatusChangeTime." ::= { connSet 9 } zoneConfigurationChangeTime OBJECT-TYPE SYNTAX TimeTicks ACCESS read-only STATUS mandatory DESCRIPTION "The sysuptime timestamp in centiseconds at which the last configuration change occurred for any members of the set. This represents a union of change information for connUnitZoneConfigurationChangeTime." ::= { connSet 10 } portStatusChangeTime OBJECT-TYPE SYNTAX TimeTicks ACCESS read-only STATUS mandatory DESCRIPTION "The sysuptime timestamp in centiseconds at which the last status change occurred for any members of the set. This represents a union of change information for connUnitPortStatusChangeTime." ::= { connSet 11 } portConfigurationChangeTime OBJECT-TYPE SYNTAX TimeTicks ACCESS read-only STATUS mandatory DESCRIPTION "The sysuptime timestamp in centiseconds at which the last configuration change occurred for any members of the set. This represents a union of change information for connUnitPortConfigurationChangeTime." ::= { connSet 12 } linkStatusChangeTime OBJECT-TYPE SYNTAX TimeTicks ACCESS read-only STATUS mandatory DESCRIPTION "The sysuptime timestamp in centiseconds at which the last status change occurred for any members of the set. This represents a union of change information for connUnitLinkStatusChangeTime." ::= { connSet 13 } Blumenau [Page 05] INTERNET-DRAFT FC-Mgmt-Int MIB Sept 14, 1999 linkConfigurationChangeTime OBJECT-TYPE SYNTAX TimeTicks ACCESS read-only STATUS mandatory DESCRIPTION "The sysuptime timestamp in centiseconds at which the last configuration change occurred for any members of the set. This represents a union of change information for connUnitLinkConfigurationChangeTime." ::= { connSet 14 } trapRegConfigurationChangeTime OBJECT-TYPE SYNTAX TimeTicks ACCESS read-only STATUS mandatory DESCRIPTION "The sysuptime timestamp in centiseconds at which the last configuration change occurred for any members of the set. This represents a union of change information for trapRegConfigurationChangeTime." ::= { connSet 15 } -- The Connectivity table contains general information on the -- system's units. connUnitTable OBJECT-TYPE SYNTAX SEQUENCE OF ConnUnitEntry ACCESS not-accessible STATUS mandatory DESCRIPTION "A list of units under a single SNMP agent. The number of entries is given by the value of uNumber. It is 1 for stand-alone system." ::= { connSet 16 } connUnitEntry OBJECT-TYPE SYNTAX ConnUnitEntry ACCESS not-accessible STATUS mandatory DESCRIPTION "A connectivity unit entry containing objects for a particular unit." INDEX { connUnitId } ::= { connUnitTable 1 } ConnUnitEntry ::= SEQUENCE { connUnitId OCTET STRING, connUnitGlobalId FcGlobalId, connUnitType INTEGER, connUnitNumports INTEGER, connUnitState INTEGER, Blumenau [Page 06] INTERNET-DRAFT FC-Mgmt-Int MIB Sept 14, 1999 connUnitStatus INTEGER, connUnitProduct DisplayString, connUnitSn DisplayString, connUnitUpTime TimeTicks, connUnitUrl DisplayString, connUnitDomainId OCTET STRING, connUnitProxyMaster INTEGER, connUnitPrincipal INTEGER, connUnitNumSensors INTEGER, connUnitStatusChangeTime TimeTicks, connUnitConfigurationChangeTime TimeTicks, connUnitNumRevs INTEGER, connUnitNumZones INTEGER, connUnitModuleId OCTET STRING, connUnitName DisplayString, connUnitInfo DisplayString, connUnitControl INTEGER, connUnitContact DisplayString, connUnitLocation DisplayString, connUnitEventFilter INTEGER, connUnitNumEvents INTEGER, connUnitEventSize INTEGER, connUnitEventCurrID INTEGER, connUnitMaxLinks INTEGER } Blumenau [Page 07] INTERNET-DRAFT FC-Mgmt-Int MIB Sept 14, 1999 connUnitId OBJECT-TYPE SYNTAX OCTET STRING (SIZE (16)) ACCESS read-only STATUS mandatory DESCRIPTION "The goal is to create a locally unique Id space for all connUnitIds within this proxy domain. It is left up to the vendor to generate the unique IDs. It is a goal that the value is kept constant between boots. It is also a goal that the relationship be retained between the connUnitId and the connUnitGlobalId if the connUnitGlobalId is non-zero." ::= { connUnitEntry 1 } connUnitGlobalId OBJECT-TYPE SYNTAX FcGlobalId ACCESS read-only STATUS mandatory DESCRIPTION "The goal is to create a globally unique Id space for all connUnitGlobalIds within a single connectivity space (fabric, loop, etc) or even across multiple connectivity spaces. This is a set of hex bytes, not ASCII. connUnitGlobalId is a WWN, including the leading NAA, in any FC-PH authorized format. This requires that one would have to have an IEEE OUI (vendor id) to assign connUnitGlobalId. Once one has supplied the NAA and OUI, the vendors are completely free as to how one assigns the rest of the bits, as long as you assure they are unique. There is some merit, though not a requirement, that the WWN used as connUnitGlobalId be the same as that of (one of) the permanently attached FC/LAN interface(s). Whether it is or not, it must be unique. As an example, if your agent runs in a host and the host has an HBA, it is quite possible that agent, host, and HBA will all be distinct connUnits, so the host and agent can not use the WWN of the HBA. Another example: If your hub has a built-in Ethernet port, it might be reasonable for the hub to use its LAN address (prefixed with the with appropriate NAA) as its connUnitGlobalId. But if the Ethernet was a replaceable PCCard, the hub should have an independent ID. If the global ID is not known then this object is set to all zeros. When this value is found by a management station, it will indicate that information about it should not be trusted Blumenau [Page 08] INTERNET-DRAFT FC-Mgmt-Int MIB Sept 14, 1999 to be correct. The following are some references for more information. http://standards.ieee.org/regauth/oui/tutorials/fibreformat.html http://standards.ieee.org/regauth/oui/tutorials/fibrecomp_id.html" ::= { connUnitEntry 2 } connUnitType OBJECT-TYPE SYNTAX INTEGER { unknown(1), other(2), -- none of the following hub(3), -- passive connectivity unit -- supporting loop protocol. switch(4), -- active connectivity unit -- supporting multiple protocols. gateway(5), -- unit that converts not only -- the interface but also encapsulates -- the frame into another protocol. The -- assumption is that there is always -- two gateways connected together. For -- example, FC <-> ATM. converter(6), -- unit that converts from one -- interface to another. For -- example, FC <-> SCSI. hba(7), -- host bus adapter proxy-agent(8), -- software proxy-agent storage-device(9), -- disk,cd,tape,etc host(10), -- host computer storage-subsystem(11), -- raid, library, etc module(12), -- subcomponent of a system swdriver(13), -- software driver storage-access-device(14) -- TBD, awaiting definition -- from STK } ACCESS read-only STATUS mandatory DESCRIPTION "Type of the FC connectivity unit that can be registered in the MIB." ::= { connUnitEntry 3 } connUnitNumports OBJECT-TYPE SYNTAX INTEGER ACCESS read-only STATUS mandatory DESCRIPTION "Number of physical ports in the unit (internal/embedded, external)." ::= { connUnitEntry 4 } Blumenau [Page 09] INTERNET-DRAFT FC-Mgmt-Int MIB Sept 14, 1999 connUnitUrl OBJECT-TYPE SYNTAX DisplayString ACCESS read-only STATUS mandatory DESCRIPTION "URL to launch management application, if applicable. Otherwise empty string. In a standalone unit, this would be the same as the top-level URL." ::= { connUnitEntry 10 } connUnitDomainId OBJECT-TYPE SYNTAX OCTET STRING (SIZE(3)) ACCESS read-only STATUS mandatory DESCRIPTION "24 bit Fibre Channel address ID, right justified with leading zero's if required. If this value is not applicable, return all bits set to one." ::= { connUnitEntry 11 } connUnitProxyMaster OBJECT-TYPE SYNTAX INTEGER { unknown(1), no(2), yes(3) } ACCESS read-only STATUS mandatory DESCRIPTION "This is a yes if this is the proxy master unit for a set of managed units. For example, this could be the only unit with a management card in it for a set of units. If this is a standalone unit, then this is set to 'yes'." ::= { connUnitEntry 12 } connUnitPrincipal OBJECT-TYPE SYNTAX INTEGER { unknown(1), no(2), yes(3) } ACCESS read-only STATUS mandatory DESCRIPTION "Whether the unit is the principal unit within the group of fabric elements. If this value is not applicable, return unknown." ::= { connUnitEntry 13 } Blumenau [Page 10] INTERNET-DRAFT FC-Mgmt-Int MIB Sept 14, 1999 connUnitNumSensors OBJECT-TYPE SYNTAX INTEGER ACCESS read-only STATUS mandatory DESCRIPTION "Number of sensors in the unit." ::= { connUnitEntry 14 } connUnitStatusChangeTime OBJECT-TYPE SYNTAX TimeTicks ACCESS read-only STATUS mandatory DESCRIPTION "The sysuptime timestamp in centiseconds at which the last status change occurred." ::= { connUnitEntry 15 } connUnitConfigurationChangeTime OBJECT-TYPE SYNTAX TimeTicks ACCESS read-only STATUS mandatory DESCRIPTION "The sysuptime timestamp in centiseconds at which the last configuration change occurred." ::= { connUnitEntry 16 } connUnitNumRevs OBJECT-TYPE SYNTAX INTEGER ACCESS read-only STATUS mandatory DESCRIPTION "The number of revisions in the revision table." DEFVAL { 1 } ::= { connUnitEntry 17 } connUnitNumZones OBJECT-TYPE SYNTAX INTEGER ACCESS read-only STATUS mandatory DESCRIPTION "Number of zones defined in the zone table." ::= { connUnitEntry 18 } connUnitModuleId OBJECT-TYPE SYNTAX OCTET STRING (SIZE(16)) ACCESS read-only STATUS mandatory DESCRIPTION "This is a unique id that does not need to be persistent between boots. It is used to group a set of modules together into a single connUnit. The intended use would Blumenau [Page 11] INTERNET-DRAFT FC-Mgmt-Int MIB Sept 14, 1999 be to create a connUnit with a type of module and then set its moduleid to its connUnitId. All other connUnits that are part of the module will have the same module id as the container. This should be 16 zeros if it is not used." ::= { connUnitEntry 19 } connUnitName OBJECT-TYPE SYNTAX DisplayString (SIZE(0..79)) ACCESS read-write STATUS mandatory DESCRIPTION "A display string containing a name for this unit. This item should be persistent across coldstarts." ::= { connUnitEntry 20 } connUnitInfo OBJECT-TYPE SYNTAX DisplayString ACCESS read-write STATUS mandatory DESCRIPTION "A display string containing comments such as comments on this unit. This item should be persistent across coldstarts." ::= { connUnitEntry 21 } connUnitControl OBJECT-TYPE SYNTAX INTEGER { unknown(1), invalid(2), resetConnUnitColdStart(3), resetConnUnitWarmStart(4), offlineConnUnit(5), onlineConnUnit(6) } ACCESS read-write STATUS mandatory DESCRIPTION "This object is used to control the addressed connUnit. Note, 'Cold Start' and 'Warm Start' are as defined in MIB II and are not ment to be a factory reset. Valid commands are: resetConnUnitColdStart: If the addressed connUnit allows this operation to be performed to this MIB object, the addressed unit performs a 'Cold Start' reset. Blumenau [Page 12] INTERNET-DRAFT FC-Mgmt-Int MIB Sept 14, 1999 If the addressed connUnit does not allow this operation to be performed to this MIB object, the addressed unit sends back a 'generic error' SNMP response to the SNMP set request. resetConnUnitWarmStart: If the addressed connUnit allows this operation to be performed to this MIB object, the addressed unit performs a 'Warm Start' reset. If the addressed connUnit does not allow this operation to be performed to this MIB object, the addressed unit sends back a 'generic error' SNMP response to the SNMP set request. offlineConnUnit: If the addressed connUnit allows this operation to be performed to this MIB object, the addressed unit puts itself into a vendor-specific 'offline' state. In general, if a unit is in an offline state, it cannot be used to perform meaningful Fibre Channel work. If the addressed connUnit does not allow this operation to be performed to this MIB object, the addressed unit sends back a 'generic error' SNMP response to the SNMP set request. onlineConnUnit: If the addressed connUnit allows this operation to be performed to this MIB object, the addressed unit puts itself into a vendor-specific 'online' state. In general, if a unit is in an online state, it is capable of performing meaningful Fibre Channel work. If the addressed connUnit does not allow this operation to be performed to this MIB object, the addressed unit sends back a 'generic error' SNMP response to the SNMP set request. For any other value set to this object, the addressed unit sends back a 'bad value' SNMP response to the SNMP set request." ::= { connUnitEntry 22 } connUnitContact OBJECT-TYPE SYNTAX DisplayString (SIZE (0..79)) ACCESS read-write STATUS mandatory DESCRIPTION "If the addressed connUnit allows sets to be done to this object, this MIB object behaves in a similar manner to the MIB2 'sysContact' object. If the size of the octet string is larger than the addressed connUnit can support, Blumenau [Page 13] INTERNET-DRAFT FC-Mgmt-Int MIB Sept 14, 1999 the addressed unit sends back a 'tooBig' SNMP response to the SNMP set request. If the addressed connUnit does not allow writes to this object, the addressed unit sends back a 'generic error' SNMP response to the SNMP set request. The addressed unit may also return a null string in response to an SNMP get request for this object." ::= { connUnitEntry 23 } connUnitLocation OBJECT-TYPE SYNTAX DisplayString (SIZE (0..79)) ACCESS read-write STATUS mandatory DESCRIPTION "If the addressed connUnit allows sets to be done to this object, this MIB object behaves in a similar manner to the MIB2 'sysLocation' object. If the size of the octet string is larger than the addressed connUnit can support, the addressed unit sends back a 'tooBig' SNMP response to the SNMP set request. If the addressed connUnit does not allow writes to this object, the addressed unit sends back a 'generic error' SNMP response to the SNMP set request. The addressed unit may also return a null string in response to an SNMP get request for this object." ::= { connUnitEntry 24 } connUnitEventFilter OBJECT-TYPE SYNTAX INTEGER { unknown(1), other(2), informational(3), warning(4), critical(5), failure(6), init(7) } ACCESS read-only STATUS mandatory DESCRIPTION "This value defines the event severity that will be generated. It records all events that are greater than or equal to the value that is set." ::= { connUnitEntry 25 } Blumenau [Page 14] INTERNET-DRAFT FC-Mgmt-Int MIB Sept 14, 1999 connUnitNumEvents OBJECT-TYPE SYNTAX INTEGER ACCESS read-only STATUS mandatory DESCRIPTION "Number of events currently defined in the event table." ::= { connUnitEntry 26 } connUnitEventSize OBJECT-TYPE SYNTAX INTEGER ACCESS read-only STATUS mandatory DESCRIPTION "Max number of events that can be defined in the event table." ::= { connUnitEntry 27 } connUnitEventCurrID OBJECT-TYPE SYNTAX INTEGER ACCESS read-only STATUS mandatory DESCRIPTION "The last used event id (connUnitEventId)." ::= { connUnitEntry 28 } connUnitMaxLinks OBJECT-TYPE SYNTAX INTEGER ACCESS read-only STATUS mandatory DESCRIPTION "The maximum size of the link table." ::= { connUnitEntry 29 } -- The Table of revisions for hardware and software elements. -- Note, there is no status change time object for this table connUnitRevsTable OBJECT-TYPE SYNTAX SEQUENCE OF ConnUnitRevsEntry ACCESS not-accessible STATUS mandatory DESCRIPTION "Table of the revisions supported by the system." ::= { connSet 17 } connUnitRevsEntry OBJECT-TYPE SYNTAX ConnUnitRevsEntry ACCESS not-accessible STATUS mandatory DESCRIPTION "" INDEX { connUnitRevsUnitId, connUnitRevsIndex } ::= { connUnitRevsTable 1 } Blumenau [Page 15] INTERNET-DRAFT FC-Mgmt-Int MIB Sept 14, 1999 ConnUnitRevsEntry ::= SEQUENCE { connUnitRevsUnitId OCTET STRING, connUnitRevsIndex INTEGER, connUnitRevsRevId DisplayString, connUnitRevsDescription DisplayString } connUnitRevsUnitId OBJECT-TYPE SYNTAX OCTET STRING (SIZE (16)) ACCESS read-only STATUS mandatory DESCRIPTION "This object is identical to connUnitId." ::= { connUnitRevsEntry 1 } connUnitRevsIndex OBJECT-TYPE SYNTAX INTEGER (1..2147483647) ACCESS read-only STATUS mandatory DESCRIPTION "A unique value among all connUnitRevsEntrys with the same value of connUnitRevsUnitId, in the range between 1 and connUnitNumRevs[connUnitRevsUnitId]." ::= { connUnitRevsEntry 2 } connUnitRevsRevId OBJECT-TYPE SYNTAX DisplayString ACCESS read-only STATUS mandatory DESCRIPTION "A vendor-specific string identifying a revision of a component of the connUnit indexed by connUnitRevsUnitId." ::= { connUnitRevsEntry 3 } connUnitRevsDescription OBJECT-TYPE SYNTAX DisplayString ACCESS read-only STATUS mandatory DESCRIPTION "Description of a component to which the revision corresponds." ::= { connUnitRevsEntry 4 } Blumenau [Page 16] INTERNET-DRAFT FC-Mgmt-Int MIB Sept 14, 1999 -- The Sensor table connUnitSensorTable OBJECT-TYPE SYNTAX SEQUENCE OF ConnUnitSensorEntry ACCESS not-accessible STATUS mandatory DESCRIPTION "Description of each Sensor for a specific connUnit." ::= { connSet 18 } connUnitSensorEntry OBJECT-TYPE SYNTAX ConnUnitSensorEntry ACCESS not-accessible STATUS mandatory DESCRIPTION "Each entry contains the information for a specific Sensor." INDEX { connUnitSensorUnitId, connUnitSensorIndex } ::= { connUnitSensorTable 1 } ConnUnitSensorEntry ::= SEQUENCE { connUnitSensorUnitId OCTET STRING, connUnitSensorIndex INTEGER (1..2147483647), connUnitSensorName DisplayString, connUnitSensorStatus INTEGER, connUnitSensorInfo DisplayString, connUnitSensorMessage DisplayString, connUnitSensorType INTEGER, connUnitSensorCharacteristic INTEGER, connUnitSensorStatusChangeTime TimeTicks, connUnitSensorConfigurationChangeTime TimeTicks } connUnitSensorUnitId OBJECT-TYPE SYNTAX OCTET STRING (SIZE (16)) ACCESS read-only STATUS mandatory DESCRIPTION "This object is identical to connUnitId." ::= { connUnitSensorEntry 1 } Blumenau [Page 17] INTERNET-DRAFT FC-Mgmt-Int MIB Sept 14, 1999 connUnitSensorIndex OBJECT-TYPE SYNTAX INTEGER (1..2147483647) ACCESS read-only STATUS mandatory DESCRIPTION "A unique value among all connUnitSensorEntrys with the same value of connUnitSensorUnitId, in the range between 1 and connUnitNumSensor[connUnitSensorUnitId]." ::= { connUnitSensorEntry 2} connUnitSensorName OBJECT-TYPE SYNTAX DisplayString ACCESS read-only STATUS mandatory DESCRIPTION "This describes a sensor in the unit." ::= { connUnitSensorEntry 3 } connUnitSensorStatus OBJECT-TYPE SYNTAX INTEGER { unknown(1), ok(2), -- the sensor is ok warning(3), -- the sensor has a warning failed(4) -- the sensor has failed } ACCESS read-only STATUS mandatory DESCRIPTION "This is the status for the sensor." ::= { connUnitSensorEntry 4 } connUnitSensorInfo OBJECT-TYPE SYNTAX DisplayString ACCESS read-only STATUS mandatory DESCRIPTION "This describes miscellaneous info about the sensor such as its serial number." ::= { connUnitSensorEntry 5 } connUnitSensorMessage OBJECT-TYPE SYNTAX DisplayString ACCESS read-only STATUS mandatory DESCRIPTION "This describes the status of the sensor as a message. It may also provide more resolution on the sensor indication, for example 'Cover temperature 1503K, above nomimal operating range'" ::= { connUnitSensorEntry 6 } Blumenau [Page 18] INTERNET-DRAFT FC-Mgmt-Int MIB Sept 14, 1999 connUnitSensorType OBJECT-TYPE SYNTAX INTEGER { unknown(1), other(2), battery(3), fan(4), power-supply(5), transmitter(6), enclosure(7), board(8), receiver(9) } ACCESS read-only STATUS mandatory DESCRIPTION "The type of component being monitored by this sensor." ::= { connUnitSensorEntry 7 } connUnitSensorCharacteristic OBJECT-TYPE SYNTAX INTEGER { unknown(1), other(2), temperature(3), pressure(4), emf(5), currentValue(6), -- current is a keyword airflow(7), frequency(8), power(9) } ACCESS read-only STATUS mandatory DESCRIPTION "The characteristics being monitored by this sensor." ::= { connUnitSensorEntry 8 } connUnitSensorStatusChangeTime OBJECT-TYPE SYNTAX TimeTicks ACCESS read-only STATUS mandatory DESCRIPTION "The sysuptime timestamp in centiseconds at which the last status change occurred." ::= { connUnitSensorEntry 9 } connUnitSensorConfigurationChangeTime OBJECT-TYPE SYNTAX TimeTicks ACCESS read-only STATUS mandatory DESCRIPTION "The sysuptime timestamp in centiseconds at which the last configuration change occurred." ::= { connUnitSensorEntry 10 } Blumenau [Page 19] INTERNET-DRAFT FC-Mgmt-Int MIB Sept 14, 1999 -- The Zone table (still under discussion) connUnitZoneTable OBJECT-TYPE SYNTAX SEQUENCE OF ConnUnitZoneEntry ACCESS not-accessible STATUS mandatory DESCRIPTION "Description of each Zone for a specific connUnit." ::= { connSet 19 } connUnitZoneEntry OBJECT-TYPE SYNTAX ConnUnitZoneEntry ACCESS not-accessible STATUS mandatory DESCRIPTION "Each entry contains the information for a specific Zone." INDEX { connUnitZoneUnitId, connUnitZoneIndex, connUnitZoneMemberIndex } ::= { connUnitZoneTable 1 } ConnUnitZoneEntry ::= SEQUENCE { connUnitZoneUnitId OCTET STRING, connUnitZoneIndex INTEGER (1..2147483647), connUnitZoneMemberIndex INTEGER (1..2147483647), connUnitZoneNumMember INTEGER, connUnitZoneName DisplayString, connUnitZoneStatus INTEGER, connUnitZoneStatusChangeTime TimeTicks, connUnitZoneConfigurationChangeTime TimeTicks } connUnitZoneUnitId OBJECT-TYPE SYNTAX OCTET STRING (SIZE (16)) ACCESS read-only STATUS mandatory DESCRIPTION "This object is identical to connUnitId." ::= { connUnitZoneEntry 1 } Blumenau [Page 20] INTERNET-DRAFT FC-Mgmt-Int MIB Sept 14, 1999 connUnitZoneIndex OBJECT-TYPE SYNTAX INTEGER (1..2147483647) ACCESS read-only STATUS mandatory DESCRIPTION "A unique value for each zone. Its value ranges between 1 and the value of connUnitNumZones." ::= { connUnitZoneEntry 2} connUnitZoneMemberIndex OBJECT-TYPE SYNTAX INTEGER (1..2147483647) ACCESS read-only STATUS mandatory DESCRIPTION "A unique value for each member of a zone. Its value ranges between 1 and the value of connUnitZoneNumMember." ::= { connUnitZoneEntry 3} connUnitZoneNumMember OBJECT-TYPE SYNTAX INTEGER ACCESS read-only STATUS mandatory DESCRIPTION "The number of members in this zone." ::= { connUnitZoneEntry 4} connUnitZoneName OBJECT-TYPE SYNTAX DisplayString ACCESS read-only STATUS mandatory DESCRIPTION "This describes a zone in the unit." ::= { connUnitZoneEntry 5 } connUnitZoneStatus OBJECT-TYPE SYNTAX INTEGER { unknown(1), ok(2), warning(3), failed(4) } ACCESS read-only STATUS mandatory DESCRIPTION "This is the status for the zone." ::= { connUnitZoneEntry 6 } connUnitZoneStatusChangeTime OBJECT-TYPE SYNTAX TimeTicks ACCESS read-only STATUS mandatory DESCRIPTION Blumenau [Page 21] INTERNET-DRAFT FC-Mgmt-Int MIB Sept 14, 1999 "The sysuptime timestamp in centiseconds at which the last status change occurred." ::= { connUnitZoneEntry 7 } connUnitZoneConfigurationChangeTime OBJECT-TYPE SYNTAX TimeTicks ACCESS read-only STATUS mandatory DESCRIPTION "The sysuptime timestamp in centiseconds at which the last configuration change occurred." ::= { connUnitZoneEntry 8 } -- The port table connUnitPortTable OBJECT-TYPE SYNTAX SEQUENCE OF ConnUnitPortEntry ACCESS not-accessible STATUS mandatory DESCRIPTION "Generic information on ports for a specific connUnit." ::= { connSet 20 } connUnitPortEntry OBJECT-TYPE SYNTAX ConnUnitPortEntry ACCESS not-accessible STATUS mandatory DESCRIPTION "Each entry contains the information for a specific port. The entry corresponds to the connectivity unit index by connUnitId." INDEX { connUnitPortUnitId, connUnitPortIndex } ::= { connUnitPortTable 1 } ConnUnitPortEntry ::= SEQUENCE { connUnitPortUnitId OCTET STRING, connUnitPortIndex INTEGER, connUnitPortType INTEGER, connUnitPortFCClassCap OCTET STRING, connUnitPortFCClassOp OCTET STRING, connUnitPortState INTEGER, connUnitPortStatus INTEGER, Blumenau [Page 22] INTERNET-DRAFT FC-Mgmt-Int MIB Sept 14, 1999 connUnitPortTransmitterType INTEGER, connUnitPortModuleType INTEGER, connUnitPortWwn FcNameId, connUnitPortFCId OCTET STRING, connUnitPortCountWarning OCTET STRING, connUnitPortCountFailure OCTET STRING, connUnitPortCountLinkdown OCTET STRING, connUnitPortCountAvgSize OCTET STRING, connUnitPortCountAvgRate OCTET STRING, connUnitPortSn DisplayString, connUnitPortRevision DisplayString, connUnitPortVendor DisplayString, connUnitPortSpeed INTEGER, connUnitPortControl INTEGER, connUnitPortName OCTET STRING, connUnitPortStatusChangeTime TimeTicks, connUnitPortConfigurationChangeTime TimeTicks, connUnitPortPhysicalNumber INTEGER } connUnitPortUnitId OBJECT-TYPE SYNTAX OCTET STRING (SIZE (16)) ACCESS read-only STATUS mandatory DESCRIPTION "This object is identical to connUnitId." ::= { connUnitPortEntry 1 } connUnitPortIndex OBJECT-TYPE SYNTAX INTEGER (0..2147483647) ACCESS read-only STATUS mandatory DESCRIPTION "A unique value among all connUnitPortEntrys with the same value of connUnitPortUnitId, Blumenau [Page 23] INTERNET-DRAFT FC-Mgmt-Int MIB Sept 14, 1999 in the range between 1 and connUnitNumPort[connUnitPortUnitId]." ::= { connUnitPortEntry 2 } connUnitPortType OBJECT-TYPE SYNTAX INTEGER { unknown(1), other(2), not-present(3), hub-port(4), n-port(5), -- end port for fabric l-port(6), -- end port for loop fl-port(7), -- public loop f-port(8), -- fabric port e-port(9), -- fabric expansion port g-port(10), -- generic fabric port domain-ctl(11), -- domain controller hub-controller(12), scsi(13), -- parallel SCSI port escon(14), lan(15), wan(16) } ACCESS read-only STATUS mandatory DESCRIPTION "Identification of the port type." ::= { connUnitPortEntry 3 } connUnitPortFCClassCap OBJECT-TYPE SYNTAX OCTET STRING (SIZE (2)) ACCESS read-only STATUS mandatory DESCRIPTION "Bit mask that specifies the classes of service capabilities. If this is not applicable, return all bits set to zero. The bits are set right justified and have the following definition: unknown - 0 class-f - 1 class-one - 2 class-two - 4 class-three - 8 class-four - 16 class-five - 32 class-six - 64" ::= { connUnitPortEntry 4 } connUnitPortFCClassOp OBJECT-TYPE SYNTAX OCTET STRING (SIZE (2)) ACCESS read-only STATUS mandatory DESCRIPTION Blumenau [Page 24] INTERNET-DRAFT FC-Mgmt-Int MIB Sept 14, 1999 "Bit mask that specifies the classes of service that are currently operational. If this is not applicable, return all bits set to zero. The bits are set right- justified and have the following definition: unknown - 0 class-f - 1 class-one - 2 class-two - 4 class-three - 8 class-four - 16 class-five - 32 class-six - 64" ::= { connUnitPortEntry 5 } connUnitPortState OBJECT-TYPE SYNTAX INTEGER { unknown(1), online(2), offline(3), bypassed(4) } ACCESS read-only STATUS mandatory DESCRIPTION "This represents the state of the port protocol." ::= { connUnitPortEntry 6 } connUnitPortStatus OBJECT-TYPE SYNTAX INTEGER { unknown(1), unused(2), ok(3), warning(4), -- needs attention failure(5), linkdown(6) } ACCESS read-only STATUS mandatory DESCRIPTION "An overall hardware status for the port." ::= { connUnitPortEntry 7 } connUnitPortTransmitterType OBJECT-TYPE SYNTAX INTEGER { unknown(1), other(2), unused(3), shortwave(4), longwave(5), copper(6), scsi(7), Blumenau [Page 25] INTERNET-DRAFT FC-Mgmt-Int MIB Sept 14, 1999 longwaveNoOFC(8), shortwaveNoOFC(9), longwaveLED(10) } ACCESS read-only STATUS mandatory DESCRIPTION "The technology of the transceiver." ::= { connUnitPortEntry 8 } connUnitPortModuleType OBJECT-TYPE SYNTAX INTEGER { unknown(1), other(2), gbic(3), embedded(4), -- fixed, ie, oneXnine glm(5), gbicSerialId(6), gbicNoSerialId(7), gbicNotInstalled(8), smallFormFactor(9) } ACCESS read-only STATUS mandatory DESCRIPTION "The module type of the port connector." ::= { connUnitPortEntry 9 } connUnitPortWwn OBJECT-TYPE SYNTAX FcNameId ACCESS read-only STATUS mandatory DESCRIPTION "The World Wide Name of the port if applicable, otherwise empty string." REFERENCE "See FC elements MIB for FcNameId definition." ::= { connUnitPortEntry 10 } connUnitPortFCId OBJECT-TYPE SYNTAX OCTET STRING (SIZE(3)) ACCESS read-only STATUS mandatory DESCRIPTION "This is the assigned Fibre Channel ID of this port. This value is expected to be a Big Endian value of 24 bits. If this is loop, then it is the ALPA that is connected. If this is an eport, then it will only contain the domain ID followed by 16 zero bits. If this port does not have a Fibre Channel address, return all bits set to 1." ::= { connUnitPortEntry 11 } Blumenau [Page 26] INTERNET-DRAFT FC-Mgmt-Int MIB Sept 14, 1999 connUnitPortCountWarning OBJECT-TYPE SYNTAX OCTET STRING (SIZE (8)) ACCESS read-only STATUS mandatory DESCRIPTION "A count of the warnings that have occured on this port. This is expected to be a Big Endian value. If not applicable, return all bits set to zero." ::= { connUnitPortEntry 12 } connUnitPortCountFailure OBJECT-TYPE SYNTAX OCTET STRING (SIZE (8)) ACCESS read-only STATUS mandatory DESCRIPTION "A count of the failures that have occured on this port. This is expected to be a Big Endian value. If not applicable, return all bits set to zero." ::= { connUnitPortEntry 13 } connUnitPortCountLinkdown OBJECT-TYPE SYNTAX OCTET STRING (SIZE (8)) ACCESS read-only STATUS mandatory DESCRIPTION "A count of the linkdowns that have occured on this port. This is expected to be a Big Endian value. If not applicable, return all bits set to zero." ::= { connUnitPortEntry 14 } connUnitPortCountAvgSize OBJECT-TYPE SYNTAX OCTET STRING (SIZE (8)) ACCESS read-only STATUS mandatory DESCRIPTION "This is the average size of the unit of information that has passed through this port. For Fibre Channel, this would be frames. For Ethernet, packets. For SCSI, I/Os. This is expected to be a Big Endian value. If not applicable, return all bits set to zero." ::= { connUnitPortEntry 15 } connUnitPortCountAvgRate OBJECT-TYPE SYNTAX OCTET STRING (SIZE (8)) ACCESS read-only STATUS mandatory DESCRIPTION "This is the average number of units of Blumenau [Page 27] INTERNET-DRAFT FC-Mgmt-Int MIB Sept 14, 1999 information that has passed through this port in the last second. This is expected to be a Big Endian value. If not applicable, return all bits set to zero." ::= { connUnitPortEntry 16 } connUnitPortSn OBJECT-TYPE SYNTAX DisplayString (SIZE(0..79)) ACCESS read-only STATUS mandatory DESCRIPTION "The serial number of the unit (e.g., for a GBIC). If this is not applicable, return empty string." ::= { connUnitPortEntry 17 } connUnitPortRevision OBJECT-TYPE SYNTAX DisplayString (SIZE(0..79)) ACCESS read-only STATUS mandatory DESCRIPTION "The port revision (e.g., for a GBIC)." ::= { connUnitPortEntry 18 } connUnitPortVendor OBJECT-TYPE SYNTAX DisplayString (SIZE(0..79)) ACCESS read-only STATUS mandatory DESCRIPTION "The port vendor (e.g., for a GBIC)." ::= { connUnitPortEntry 19 } connUnitPortSpeed OBJECT-TYPE SYNTAX INTEGER ACCESS read-only STATUS mandatory DESCRIPTION "The speed of the port in kilobytes per second." ::= { connUnitPortEntry 20 } connUnitPortControl OBJECT-TYPE SYNTAX INTEGER { unknown(1), invalid(2), resetConnUnitPort(3), bypassConnUnitPort(4), unbypassConnUnitPort(5), offlineConnUnitPort(6), onlineConnUnitPort(7), resetConnUnitPortCounters(8) } ACCESS read-write -- (or maybe write-only) STATUS mandatory Blumenau [Page 28] INTERNET-DRAFT FC-Mgmt-Int MIB Sept 14, 1999 DESCRIPTION "This object is used to control the addressed connUnit's port. Valid commands are: resetConnUnitPort: If the addressed connUnit allows this operation to be performed to this port, the addressed port performs a vendor-specific 'reset' operation. Examples of these operations are: the Link Reset protocol, the Loop Initialization protocol, or a resynchronization occurring between the transceiver in the addressed port to the transceiver that the port is connected to. If the addressed connUnit does not allow this operation to be performed to this MIB object, the addressed unit sends back a 'generic error' SNMP response to the SNMP set request. bypassConnUnitPort: If the addressed connUnit allows this operation to be performed to this port, the addressed port performs a vendor-specific 'bypass' operation. Examples of these operations are: the Online to Offline protocol, a request(NON-PARTICIPATING) command to the Loop Port state machine, or removal of the port from an arbitrated loop by a hub. If the addressed connUnit does not allow this operation to be performed to this MIB object, the addressed unit sends back a 'generic error' SNMP response to the SNMP set request. unbypassConnUnitPort: If the addressed connUnit allows this operation to be performed to this port, the addressed port performs a vendor-specific 'unbypass' operation. Examples of these operations are: the Link Failure protocol, a request(PARTICIPATING) command to the Loop Port state machine, or addition of the port to an arbitrated loop by a hub. If the addressed connUnit does not allow this operation to be performed to this MIB object, the addressed unit sends back a 'generic error' SNMP response to the SNMP set request. offlineConnUnitPort: If the addressed connUnit allows this operation to be performed to this port, the addressed port performs a Blumenau [Page 29] INTERNET-DRAFT FC-Mgmt-Int MIB Sept 14, 1999 vendor-specific 'offline' operation. Examples of these operations are: disabling a port's transceiver, the Link Failure protocol, request(NON-PARTICIPATING) command to the Loop Port state machine, or removal of the port from an arbitrated loop by a hub. If the addressed connUnit does not allow this operation to be performed to this MIB object, the addressed unit sends back a 'generic error' SNMP response to the SNMP set request. onlineConnUnitPort: If the addressed connUnit allows this operation to be performed to this port, the addressed port performs a vendor-specific 'online' operation. Examples of these operations are: enabling a port's transceiver, the Link Failure protocol, request(PARTICIPATING) command to the Loop Port state machine, or addition of the port from an arbitrated loop by a hub. If the addressed connUnit does not allow this operation to be performed to this MIB object, the addressed unit sends back a 'generic error' SNMP response to the SNMP set request." ::= { connUnitPortEntry 21 } connUnitPortName OBJECT-TYPE SYNTAX OCTET STRING -- note: the size of this -- string is intentionally -- left undefined ACCESS read-write STATUS mandatory DESCRIPTION "If the addressed connUnit allows sets to be done to this object, this MIB object can be used to store a string describing the addressed port. If the size of the octet string is larger than the addressed connUnit can support, the addressed unit sends back a 'tooBig' SNMP response to the SNMP set request. If the addressed connUnit does not allow writes to this object, the addressed unit sends back a 'generic error' SNMP response to the SNMP set request. The addressed unit may also return a null string in response to an SNMP get request for this object." ::= { connUnitPortEntry 22 } Blumenau [Page 30] INTERNET-DRAFT FC-Mgmt-Int MIB Sept 14, 1999 connUnitPortStatusChangeTime OBJECT-TYPE SYNTAX TimeTicks ACCESS read-only STATUS mandatory DESCRIPTION "The sysuptime timestamp in centiseconds at which the last status change occurred." ::= { connUnitPortEntry 23 } connUnitPortConfigurationChangeTime OBJECT-TYPE SYNTAX TimeTicks ACCESS read-only STATUS mandatory DESCRIPTION "The sysuptime timestamp in centiseconds at which the last configuration change occurred." ::= { connUnitPortEntry 24 } connUnitPortPhysicalNumber OBJECT-TYPE SYNTAX INTEGER ACCESS read-only STATUS mandatory DESCRIPTION "This is the value that is silk screen on the unit or the value that the port is known as. This may not be equal to the index value for the same port." ::= { connUnitPortEntry 25 } -- event group connUnitEventTable OBJECT-TYPE SYNTAX SEQUENCE OF ConnUnitEventEntry ACCESS not-accessible STATUS mandatory DESCRIPTION "The table of connectivity unit events. Only errors, warnings, and information (not debugging) should be reported in this table." ::= { connSet 21 } connUnitEventEntry OBJECT-TYPE SYNTAX ConnUnitEventEntry ACCESS not-accessible STATUS mandatory DESCRIPTION "Each entry contains information on a specific event for the given connectivity unit." INDEX { connUnitEventUnitId, connUnitEventIndex } ::= { connUnitEventTable 1 } Blumenau [Page 31] INTERNET-DRAFT FC-Mgmt-Int MIB Sept 14, 1999 ConnUnitEventEntry ::= SEQUENCE { connUnitEventUnitId OCTET STRING, connUnitEventIndex INTEGER (1..2147483647), connUnitEventId INTEGER, connUnitREventTime DisplayString, connUnitSEventTime TimeTicks, connUnitEventSeverity INTEGER, connUnitEventType INTEGER, connUnitEventObjectIndex INTEGER, connUnitEventDescr DisplayString } connUnitEventUnitId OBJECT-TYPE SYNTAX OCTET STRING (SIZE (16)) ACCESS read-only STATUS mandatory DESCRIPTION "This object is identical to connUnitId." ::= { connUnitEventEntry 1 } connUnitEventIndex OBJECT-TYPE SYNTAX INTEGER (1..2147483647) ACCESS read-only STATUS mandatory DESCRIPTION "Each connectivity unit has its own event list. As it wraps, it can write over previous events that it generated but not events that other connectivity units have generated. This is simply used to index into the table. One would read this table using getNexts to read each entry till reaching the end of the table. At that point, one would again start reading at 1. The management station will need to track the connUnitEventId to be able to keep order to the events that have been read from the unit. The index value is an incrementing integer starting from zero every time there is a table reset. On table reset, all contents are emptied and all pointers are set to zero. When an event is added to the table, the event is assigned the next higher integer value from the last item entered into the table. If the Blumenau [Page 32] INTERNET-DRAFT FC-Mgmt-Int MIB Sept 14, 1999 index value reaches its maximum value, the next item entered will cause the index value to roll over and start at zero again. The first event placed in the event table after a tabpe reset shall have an index value of 1." ::= { connUnitEventEntry 2 } connUnitEventId OBJECT-TYPE SYNTAX INTEGER ACCESS read-only STATUS mandatory DESCRIPTION "The unique event Id. Incremented for each event. Not used as table index to simplify the agent implementation. If there is a gap in the values, then it can be assumed that events have been deleted before read. When this reaches the end of the range supported by the number of bits, the Id will roll over to start at zero. This value will be set back to zero at reset. The first event generated after a reset will have an event id of 1. The relationship of this value to the index is that the index allows one to address a very small table (eg 100 entries) and would only have a value range equal to the size of the table. The Id will have the full range possible by the number of bits supported and thus allows one to have a unique value for an event over a longer time period." ::= { connUnitEventEntry 3 } connUnitREventTime OBJECT-TYPE SYNTAX DisplayString (SIZE (15)) ACCESS read-only STATUS mandatory DESCRIPTION "This is the real time when the event occurred. It has the following format. DDMMYYYY HHMMSS DD=day number MM=month number YYYY=year number HH=hour number MM=minute number SS=seconds number If not applicable, return a NULL string." ::= { connUnitEventEntry 4 } connUnitSEventTime OBJECT-TYPE SYNTAX TimeTicks ACCESS read-only STATUS mandatory DESCRIPTION "This is the sysuptime timestamp when the Blumenau [Page 33] INTERNET-DRAFT FC-Mgmt-Int MIB Sept 14, 1999 event occurred." ::= { connUnitEventEntry 5 } connUnitEventSeverity OBJECT-TYPE SYNTAX INTEGER { unknown(1), other(2), informational(3), warning(4), critical(5), failure(6), init(7) } ACCESS read-only STATUS mandatory DESCRIPTION "The event severity." ::= { connUnitEventEntry 6 } connUnitEventType OBJECT-TYPE SYNTAX INTEGER { unknown(1), other(2), status(3), configuration(4), topology(5) } ACCESS read-only STATUS mandatory DESCRIPTION "The type of event that has occurred." ::= { connUnitEventEntry 7 } connUnitEventObjectIndex OBJECT-TYPE SYNTAX INTEGER ACCESS read-only STATUS mandatory DESCRIPTION "This is used with the connUnitEventType to identify which object. It can be the OID of a connectivity unit or of another object like donnUnitPortStatus[...]" ::= { connUnitEventEntry 8 } connUnitEventDescr OBJECT-TYPE SYNTAX DisplayString ACCESS read-only STATUS mandatory DESCRIPTION "The description of the event." ::= { connUnitEventEntry 9 } Blumenau [Page 34] INTERNET-DRAFT FC-Mgmt-Int MIB Sept 14, 1999 -- The link table -- is intended to organize and communicate -- any information the agent possesses -- which would assist a management application -- to discover the CONNECTIVITY UNITS in the -- framework and the TOPOLOGY of their interconnect. -- That is, the goal is to assist the management -- application not only to LIST the elements of the framework, -- but to MAP them. -- With this goal, the agent SHOULD include -- as much as it possesses about any links -- from its own connectivity units to others, -- including links among its own units. -- An agent SHOULD include partial information -- about links if it is not able to fully -- define them in accord with the following structure; -- however, the information MUST include either -- a nonzero connUnitNodeId- or a nonzero connUnitPortWwn- -- for each end of the link. -- If the agent is able to discover links -- which do not directly attach to members of its agency -- and its discovery algorithm gives some assurance -- the links are recently valid, it MAY include these links. -- Link information entered by administrative action -- MAY be included even if not validated directly -- if the link has at least one endpoint in this agency, -- but SHOULD NOT be included otherwise. -- A connectivity unit can fill the table in as best it can. -- One of the methods to fill this in would be to use the RNID -- ELS (ANSI document 99-422v0). This allows one to query a -- port for the information needed for the link table. -- This table is accessed either directly if the management -- software has an index value or via GetNexts. The value of -- the indexes are not required to be contiguous. Each entry -- created in this table will be assigned an index. This -- relationship is kept persistent until the entry is removed -- from the table or the system is reset. The total number of -- entries are defined by the size of the table -- For an entry to be considered to be valid, both the X (local) -- and the Y (remote) need to have one valid value. connUnitLinkTable OBJECT-TYPE SYNTAX SEQUENCE OF ConnUnitLinkEntry ACCESS not-accessible STATUS mandatory DESCRIPTION "A list of links know to this agent from this Blumenau [Page 35] INTERNET-DRAFT FC-Mgmt-Int MIB Sept 14, 1999 connectivity unit to other connectivity units." ::= { connSet 22 } connUnitLinkEntry OBJECT-TYPE SYNTAX ConnUnitLinkEntry ACCESS not-accessible STATUS mandatory DESCRIPTION "An entry describing a particular link to another." INDEX { connUnitLinkUnitId, connUnitLinkIndex } ::= { connUnitLinkTable 1 } ConnUnitLinkEntry ::= SEQUENCE { connUnitLinkUnitId OCTET STRING, connUnitLinkIndex INTEGER, connUnitLinkNodeIdX OCTET STRING, connUnitLinkPortNumberX INTEGER, connUnitLinkPortWwnX OCTET STRING, connUnitLinkNodeIdY OCTET STRING, connUnitLinkPortNumberY INTEGER, connUnitLinkPortWwnY OCTET STRING, connUnitLinkAgentAddressY OCTET STRING, connUnitLinkAgentAddressTypeY INTEGER, connUnitLinkAgentPortY INTEGER, connUnitLinkUnitTypeY INTEGER, connUnitLinkConnIdY OCTET STRING } connUnitLinkUnitId OBJECT-TYPE SYNTAX OCTET STRING (SIZE (16)) ACCESS read-only STATUS mandatory DESCRIPTION "The value of this object is equal to the value of connUnitId for the connUnit associated with one end of this link. If this link is not or can not be associated with a connUnit of this agent, the value must be 16 octets of binary zero" ::= { connUnitLinkEntry 1 } Blumenau [Page 36] INTERNET-DRAFT FC-Mgmt-Int MIB Sept 14, 1999 connUnitLinkIndex OBJECT-TYPE SYNTAX INTEGER (0..2147483647) ACCESS read-only STATUS mandatory DESCRIPTION "This value is used to create a unique value for each entry in the link table. The value can only be reused if it is not currently in in use and the value is the next candidate to be used. This value is allowed to wrap at the highest value represented by the number of bits. This value is reset to zero when the system is Reset and the first value to be used is one." ::= { connUnitLinkEntry 2 } connUnitLinkNodeIdX OBJECT-TYPE SYNTAX OCTET STRING (SIZE(64)) ACCESS read-only STATUS mandatory DESCRIPTION "The node WWN of the unit at one end of the link. If the node WWN is unknown and the node is a connUnit in the responding SNMP agency then the value of this object MUST BE equal to its connUnitID." ::= { connUnitLinkEntry 3 } connUnitLinkPortNumberX OBJECT-TYPE SYNTAX INTEGER ACCESS read-only STATUS mandatory DESCRIPTION "The port number on the unit specified by connUnitLinkNodeIdX if known, otherwise -1. If the value is nonnegative then it will be equal to connUnitPortPhysicalNumber." ::= { connUnitLinkEntry 4 } connUnitLinkPortWwnX OBJECT-TYPE SYNTAX OCTET STRING (SIZE(16)) ACCESS read-only STATUS mandatory DESCRIPTION "The port WWN of the unit specified by connUnitLinkNodeIdX if known, otherwise 16 octets of binary 0" ::= { connUnitLinkEntry 5 } connUnitLinkNodeIdY OBJECT-TYPE SYNTAX OCTET STRING (SIZE(64)) ACCESS read-only STATUS mandatory Blumenau [Page 37] INTERNET-DRAFT FC-Mgmt-Int MIB Sept 14, 1999 DESCRIPTION "The node WWN of the unit at the other end of the link. If the node WWN is unknown and the node is a connUnit in the responding SNMP agency then the value of this object MUST BE equal to its connUnitID." ::= { connUnitLinkEntry 6 } connUnitLinkPortNumberY OBJECT-TYPE SYNTAX INTEGER ACCESS read-only STATUS mandatory DESCRIPTION "The port number on the unit specified by connUnitLinkNodeIdY if known, otherwise -1. If the value is nonnegative then it will be equal to connUnitPortPhysicalNumber." ::= { connUnitLinkEntry 7 } connUnitLinkPortWwnY OBJECT-TYPE SYNTAX OCTET STRING (SIZE(16)) ACCESS read-only STATUS mandatory DESCRIPTION "The port WWN on the unit specified by connUnitLinkNodeIdY if known, otherwise 16 octets of binary 0" ::= { connUnitLinkEntry 8 } connUnitLinkAgentAddressY OBJECT-TYPE SYNTAX OCTET STRING (SIZE(16)) ACCESS read-only STATUS mandatory DESCRIPTION "The address of an FCMGMT MIB agent for the node identified by connUnitLinkNodeIdY, if known; otherwise 16 octets of binary 0" ::= { connUnitLinkEntry 9 } connUnitLinkAgentAddressTypeY OBJECT-TYPE SYNTAX INTEGER ACCESS read-only STATUS mandatory DESCRIPTION "If connUnitLinkAgentAddressY is nonzero, it is a protocol address. ConnUnitLinkAgentAddressTypeY is the the 'address family number' assigned by IANA to identify the address format. (eg, 1 is Ipv4, 2 is Ipv6)." ::= { connUnitLinkEntry 10 } Blumenau [Page 38] INTERNET-DRAFT FC-Mgmt-Int MIB Sept 14, 1999 connUnitLinkAgentPortY OBJECT-TYPE SYNTAX INTEGER ACCESS read-only STATUS mandatory DESCRIPTION "The IP port number for the agent. This is provided in case the agent is at a non-standard SNMP port." ::= { connUnitLinkEntry 11 } connUnitLinkUnitTypeY OBJECT-TYPE SYNTAX INTEGER ACCESS read-only STATUS mandatory DESCRIPTION "Type of the FC connectivity unit as defined in connUnitType." ::= { connUnitLinkEntry 12 } connUnitLinkConnIdY OBJECT-TYPE SYNTAX OCTET STRING (SIZE(3)) ACCESS read-only STATUS mandatory DESCRIPTION "This is the Fibre Channel ID of this port. If the connectivity unit is a switch, this is expected to be a Big Endian value of 24 bits. If this is loop, then it is the ALPA that is connected. If this is an eport, then it will only contain the domain ID. If not any of those, unknown or cascaded loop, return all bits set to 1." ::= { connUnitLinkEntry 13 } -- SNMP trap registration group trapMaxClients OBJECT-TYPE SYNTAX INTEGER ACCESS read-only STATUS mandatory DESCRIPTION "The maximum number of SNMP trap recipients supported by the system." ::= { trapReg 1 } trapClientCount OBJECT-TYPE SYNTAX INTEGER ACCESS read-only STATUS mandatory DESCRIPTION "The current number of rows in the trap table." ::= { trapReg 2 } Blumenau [Page 39] INTERNET-DRAFT FC-Mgmt-Int MIB Sept 14, 1999 trapRegTable OBJECT-TYPE SYNTAX SEQUENCE OF TrapRegEntry ACCESS not-accessible STATUS mandatory DESCRIPTION "A table containing a row for each IP address/port number that traps will be sent to." ::= { trapReg 3 } trapRegEntry OBJECT-TYPE SYNTAX TrapRegEntry ACCESS not-accessible STATUS mandatory DESCRIPTION "Ip/Port pair for a specific client." INDEX { trapRegIpAddress, trapRegPort } ::= { trapRegTable 1 } TrapRegEntry ::= SEQUENCE { trapRegIpAddress IpAddress, trapRegPort INTEGER (1..2147483647), trapRegFilter INTEGER, trapRegRowState INTEGER } trapRegIpAddress OBJECT-TYPE SYNTAX IpAddress ACCESS read-only STATUS mandatory DESCRIPTION "The Ip address of a client registered for traps. If the addressed connUnit does not allow writes to this object, addressed unit sends back a 'generic error' SNMP response to the set request." ::= { trapRegEntry 1 } trapRegPort OBJECT-TYPE SYNTAX INTEGER (1..2147483647) ACCESS read-only STATUS mandatory DESCRIPTION "This contains the value of the UDP port that is in use. If the addressed connUnit does not allow writes to this object, addressed unit sends back a 'generic error' SNMP response to the set request. Normally this would be set the standard trap port Blumenau [Page 40] INTERNET-DRAFT FC-Mgmt-Int MIB Sept 14, 1999 for SNMP but will reflect the port value if it has been set to a non-standard port." ::= { trapRegEntry 2 } trapRegFilter OBJECT-TYPE SYNTAX INTEGER { unknown(1), other(2), informational(3), warning(4), critical(5), failure(6), init(7) } ACCESS read-write STATUS mandatory DESCRIPTION "This value defines the trap severity that will be generated. It generates all traps that are greater than or equal to the value that is set. If the addressed connUnit does not allow writes to this object, addressed unit sends back a 'generic error' SNMP response to the set request. The default value of this object is warning." ::= { trapRegEntry 3} trapRegRowState OBJECT-TYPE SYNTAX INTEGER { rowDestroy(1), -- Remove row from table. rowInactive(2), -- Row exists, but TRAPs disabled rowActive(3) -- Row exists and is enabled for -- sending traps } ACCESS read-write STATUS mandatory DESCRIPTION "Specifies the state of the row. rowDestroy READ: Can never happen. WRITE: Remove this row from the table. rowInactive READ: Indicates that this row does exist, but that TRAPs are not enabled to be sent to the target. WRITE: If the row does not exist, and the agent allows writes to the trap table, then a new row is created. The values of the optional columns will be set to default values. TRAPs are not enabled to be sent to the target. If the row already existed, then TRAPs are disabled from being sent to the target. rowActive READ: Indicates that this row exists, and that TRAPs are enabled to be sent to the target. Blumenau [Page 41] INTERNET-DRAFT FC-Mgmt-Int MIB Sept 14, 1999 WRITE: If the row does not exist, and the agent allows writes to the trap table, then a new row is created. The values of the optional columns will be set to default values. TRAPs are enabled to be sent to the target. If the row alreadt existed, then TRAPs are enabled to be sent to the target." ::= { trapRegEntry 4} -- Related traps connUnitStatusChange TRAP-TYPE ENTERPRISE fcmgmt VARIABLES { connUnitStatusChangeTime } DESCRIPTION "The overall status of the connectivity unit has changed." ::= 1 connUnitAddedTrap TRAP-TYPE ENTERPRISE fcmgmt VARIABLES { connUnitId } DESCRIPTION "An event is generated when an entry is added to the connUnitTable." ::= 2 connUnitDeletedTrap TRAP-TYPE ENTERPRISE fcmgmt VARIABLES { connUnitId } DESCRIPTION "An event is generated when an entry is deleted from the connUnitTable." ::= 3 connUnitEventTrap TRAP-TYPE ENTERPRISE fcmgmt VARIABLES { connUnitEventId, connUnitEventType, connUnitEventObjectIndex, connUnitEventDescr } DESCRIPTION "An event has been generated by the connectivity unit." ::= 4 END Blumenau [Page 42] INTERNET-DRAFT FC-Mgmt-Int MIB Sept 14, 1999 Author Contact Information: Steven Blumenau EMC Corporation 171 South Street Hopkinton, MA 01748-9103 USA Phone: 1-508-435-1000 x4657 E-mail: blumenau_steven@isus.emc.com (This draft expires March 14, 2000.) Blumenau [Page 43]