INTERNET-DRAFT FC Mgmt Integration MIB June 1, 1999 S. Blumenau (expires December 1, 1999) (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 June 1, 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 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)) 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 Blumenau [Page 02] INTERNET-DRAFT FC-Mgmt-Int MIB June 1, 1999 The value will be stored as an ASCII value. The following is the current values. (0) = '0' (1) = '1' (2) = '5' (3) = '0' This defines a revision of 1.5 " ::= { 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 does not exist the value is empty string." 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 } configurationChangeTime OBJECT-TYPE SYNTAX TimeTicks ACCESS read-only STATUS mandatory DESCRIPTION "The sysuptime timestamp in centiseconds at which Blumenau [Page 03] INTERNET-DRAFT FC-Mgmt-Int MIB June 1, 1999 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 } -- 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 6 } 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 OCTET STRING, connUnitType INTEGER, connUnitNumports INTEGER, connUnitState INTEGER, connUnitStatus INTEGER, connUnitProduct DisplayString, Blumenau [Page 04] INTERNET-DRAFT FC-Mgmt-Int MIB June 1, 1999 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 OCTET STRING, connUnitLocation OCTET STRING } 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 } Blumenau [Page 05] INTERNET-DRAFT FC-Mgmt-Int MIB June 1, 1999 connUnitGlobalId OBJECT-TYPE SYNTAX OCTET STRING (SIZE (16)) ACCESS read-only STATUS mandatory DESCRIPTION "The goal is to create a globally unique Id space for all connUnitGlobalIds. 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 you have to have an IEEE OUI (vendor id) to assign connUnitGlobalId. Once you have supplied the NAA and OUI, you as a vendor are completely free as to how you assign 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 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), switch(4), gateway(5), converter(6), hba(7), proxy-agent(8), Blumenau [Page 06] INTERNET-DRAFT FC-Mgmt-Int MIB June 1, 1999 storage-device(9), -- disk,cd,tape,etc host(10), storage-subsystem(11), -- raid, library, etc module(12), swdriver(13) } ACCESS read-only STATUS mandatory DESCRIPTION "Type of the FC connectivity unit." ::= { connUnitEntry 3 } connUnitNumports OBJECT-TYPE SYNTAX INTEGER ACCESS read-only STATUS mandatory DESCRIPTION "Number of physical FC ports in the unit (internal/embedded, external)." ::= { connUnitEntry 4 } connUnitState OBJECT-TYPE SYNTAX INTEGER { unknown(1), online(2), offline(3) } ACCESS read-only STATUS mandatory DESCRIPTION "Overall state of the connectivity unit." ::= { connUnitEntry 5 } connUnitStatus OBJECT-TYPE SYNTAX INTEGER { unknown(1), unused(2), ok(3), warning(4), -- needs attention failed(5) } ACCESS read-only STATUS mandatory DESCRIPTION "Overall status of the connectivity unit." ::= { connUnitEntry 6 } Blumenau [Page 07] INTERNET-DRAFT FC-Mgmt-Int MIB June 1, 1999 connUnitProduct OBJECT-TYPE SYNTAX DisplayString (SIZE (0..79)) ACCESS read-only STATUS mandatory DESCRIPTION "The connectivity unit vendor's product model name." ::= { connUnitEntry 7 } connUnitSn OBJECT-TYPE SYNTAX DisplayString (SIZE (0..79)) ACCESS read-only STATUS mandatory DESCRIPTION "The serial number for this unit. A permanent unique identifier defined by the vendor." ::= { connUnitEntry 8 } connUnitUpTime OBJECT-TYPE SYNTAX TimeTicks ACCESS read-only STATUS mandatory DESCRIPTION "The number of centiseconds since the last unit initialization." ::= { connUnitEntry 9 } 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 ID, right justified, unique within the Fabric address domain. If this value is not applicable, return all bits set to one." ::= { connUnitEntry 11 } Blumenau [Page 08] INTERNET-DRAFT FC-Mgmt-Int MIB June 1, 1999 connUnitProxyMaster OBJECT-TYPE SYNTAX INTEGER { no(1), yes(2) } 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 fabric domain. If this value is not applicable, return unknown." ::= { connUnitEntry 13 } 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 last configuration change occurred." ::= { connUnitEntry 16 } Blumenau [Page 09] INTERNET-DRAFT FC-Mgmt-Int MIB June 1, 1999 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 be to create a connUnit with a type of module and then set it's 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(40)) 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 (SIZE(256)) 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 } Blumenau [Page 10] INTERNET-DRAFT FC-Mgmt-Int MIB June 1, 1999 connUnitControl OBJECT-TYPE SYNTAX INTEGER { resetConnUnitColdStart(1), resetConnUnitWarmStart(2), offlineConnUnit(3), onlineConnUnit(4) } ACCESS read-write -- (or maybe write-only) STATUS mandatory DESCRIPTION "This object is used to control the addressed connUnit. 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. 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. Blumenau [Page 11] INTERNET-DRAFT FC-Mgmt-Int MIB June 1, 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. 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 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 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, 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 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 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 Blumenau [Page 12] INTERNET-DRAFT FC-Mgmt-Int MIB June 1, 1999 set request. The addressed unit may also return a null string in response to an SNMP get request for this object." ::= { connUnitEntry 24 } -- The Table of revisions for hardware and software elements. connUnitRevsTable OBJECT-TYPE SYNTAX SEQUENCE OF ConnUnitRevsEntry ACCESS not-accessible STATUS mandatory DESCRIPTION "Table of the revisions supported by the system." ::= { connSet 7 } connUnitRevsEntry OBJECT-TYPE SYNTAX ConnUnitRevsEntry ACCESS not-accessible STATUS mandatory DESCRIPTION "" INDEX { connUnitRevsUnitId, connUnitRevsIndex } ::= { connUnitRevsTable 1 } ConnUnitRevsEntry ::= SEQUENCE { connUnitRevsUnitId OCTET STRING, connUnitRevsIndex INTEGER, connUnitRevsFirmRev 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 in the range between 1 and connUnitNumRevs." ::= { connUnitRevsEntry 2 } Blumenau [Page 13] INTERNET-DRAFT FC-Mgmt-Int MIB June 1, 1999 connUnitRevsFirmRev OBJECT-TYPE SYNTAX DisplayString ACCESS read-only STATUS mandatory DESCRIPTION "The firmware of the unit." ::= { connUnitRevsEntry 3 } connUnitRevsDescription OBJECT-TYPE SYNTAX DisplayString ACCESS read-only STATUS mandatory DESCRIPTION "Name of a component to which the firmware corresponds." ::= { connUnitRevsEntry 4 } -- 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 8 } 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 } Blumenau [Page 14] INTERNET-DRAFT FC-Mgmt-Int MIB June 1, 1999 connUnitSensorUnitId OBJECT-TYPE SYNTAX OCTET STRING (SIZE (16)) ACCESS read-only STATUS mandatory DESCRIPTION "This object is identical to connUnitId." ::= { connUnitSensorEntry 1 } connUnitSensorIndex OBJECT-TYPE SYNTAX INTEGER (1..2147483647) ACCESS read-only STATUS mandatory DESCRIPTION "A unique value for each sensor. Its value ranges between 1 and the value of connUnitNumSensors." ::= { 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), warning(3), failed(4) } 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 misc info about the sensor such as its serial number." ::= { connUnitSensorEntry 5 } Blumenau [Page 15] INTERNET-DRAFT FC-Mgmt-Int MIB June 1, 1999 connUnitSensorMessage OBJECT-TYPE SYNTAX DisplayString ACCESS read-only STATUS mandatory DESCRIPTION "This describes the status of the sensor as a message." ::= { connUnitSensorEntry 6 } -- 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 9 } 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 } Blumenau [Page 16] INTERNET-DRAFT FC-Mgmt-Int MIB June 1, 1999 connUnitZoneUnitId OBJECT-TYPE SYNTAX OCTET STRING (SIZE (16)) ACCESS read-only STATUS mandatory DESCRIPTION "This object is identical to connUnitId." ::= { connUnitZoneEntry 1 } 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 } Blumenau [Page 17] INTERNET-DRAFT FC-Mgmt-Int MIB June 1, 1999 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 } -- 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 10 } 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 (1..2147483647), connUnitPortType INTEGER, connUnitPortClassCap OCTET STRING, connUnitPortClassOp OCTET STRING, connUnitPortState INTEGER, connUnitPortStatus INTEGER, Blumenau [Page 18] INTERNET-DRAFT FC-Mgmt-Int MIB June 1, 1999 connUnitPortConnector INTEGER, connUnitPortModuleType INTEGER, connUnitPortWwn FcNameId, connUnitPortConnId OCTET STRING, connUnitPortTxFrames OCTET STRING, connUnitPortRxFrames OCTET STRING, connUnitPortSn DisplayString, connUnitPortRevision DisplayString, connUnitPortVendor DisplayString, connUnitPortSpeed INTEGER, connUnitPortControl INTEGER, connUnitPortName OCTET STRING } 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 (1..2147483647) ACCESS read-only STATUS mandatory DESCRIPTION "A unique value for each port. Its value ranges between 1 and the value of connUnitNumports." ::= { connUnitPortEntry 2 } Blumenau [Page 19] INTERNET-DRAFT FC-Mgmt-Int MIB June 1, 1999 connUnitPortType OBJECT-TYPE SYNTAX INTEGER { unknown(1), other(2), hub-port(3), n-port(4), -- end port for fabric l-port(5), -- end port for loop fl-port(6), -- public loop f-port(7), -- fabric port e-port(8), -- fabric expansion port domain-ctl(9), -- domain controller hub-controller(10), scsi(11), -- parallel SCSI port escon(12), lan(13), wan(14) } ACCESS read-only STATUS mandatory DESCRIPTION "Identification of the port type." ::= { connUnitPortEntry 3 } connUnitPortClassCap 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 } connUnitPortClassOp OBJECT-TYPE SYNTAX OCTET STRING (SIZE (2)) ACCESS read-only STATUS mandatory DESCRIPTION "Bit mask that specifies the classes of service that are currently operational. If this is not applicable, return all bits Blumenau [Page 20] INTERNET-DRAFT FC-Mgmt-Int MIB June 1, 1999 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), linkdown(5) } 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) } ACCESS read-only STATUS mandatory DESCRIPTION "An overall hardware status for the port." ::= { connUnitPortEntry 7 } connUnitPortConnector OBJECT-TYPE SYNTAX INTEGER { unknown(1), other(2), unused(3), shortwave(4), longwave(5), copper(6), scsi(7) } Blumenau [Page 21] INTERNET-DRAFT FC-Mgmt-Int MIB June 1, 1999 ACCESS read-only STATUS mandatory DESCRIPTION "The technology of the connector." ::= { connUnitPortEntry 8 } connUnitPortModuleType OBJECT-TYPE SYNTAX INTEGER { unknown(1), other(2), gbic(3), embedded(4), -- fixed, ie, oneXnine glm(5) } 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 } connUnitPortConnId OBJECT-TYPE SYNTAX OCTET STRING (SIZE(3)) ACCESS read-only STATUS mandatory DESCRIPTION "This is the Fibre Channel ID of this port. It only has a meaning if the connectivity unit is a switch. This is expected to be a Big Endian value of 24 bits. If not supported, return all bits set to 1." ::= { connUnitPortEntry 11 } connUnitPortTxFrames OBJECT-TYPE SYNTAX OCTET STRING (SIZE (8)) ACCESS read-only STATUS mandatory DESCRIPTION "A count of the frames that have been sent from this port. This is expected to be a Big Endian value. If not applicable, return all bits set to zero." ::= { connUnitPortEntry 12 } Blumenau [Page 22] INTERNET-DRAFT FC-Mgmt-Int MIB June 1, 1999 connUnitPortRxFrames OBJECT-TYPE SYNTAX OCTET STRING (SIZE (8)) ACCESS read-only STATUS mandatory DESCRIPTION "A count of the frames that have been received by this port. This is expected to be a Big Endian value. If not applicable, return all bits set to zero." ::= { connUnitPortEntry 13 } connUnitPortSn OBJECT-TYPE SYNTAX DisplayString (SIZE(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 14 } connUnitPortRevision OBJECT-TYPE SYNTAX DisplayString (SIZE(79)) ACCESS read-only STATUS mandatory DESCRIPTION "The port revision (e.g., for a GBIC)." ::= { connUnitPortEntry 15 } connUnitPortVendor OBJECT-TYPE SYNTAX DisplayString (SIZE(79)) ACCESS read-only STATUS mandatory DESCRIPTION "The port vendor (e.g., for a GBIC)." ::= { connUnitPortEntry 16 } connUnitPortSpeed OBJECT-TYPE SYNTAX INTEGER ACCESS read-only STATUS mandatory DESCRIPTION "The speed of the port in megabyes per second." ::= { connUnitPortEntry 17 } connUnitPortControl OBJECT-TYPE SYNTAX INTEGER { resetConnUnitPort(1), bypassConnUnitPort(2), unbypassConnUnitPort(3), offlineConnUnitPort(4), onlineConnUnitPort(5) } Blumenau [Page 23] INTERNET-DRAFT FC-Mgmt-Int MIB June 1, 1999 ACCESS read-write -- (or maybe write-only) STATUS mandatory 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. Blumenau [Page 24] INTERNET-DRAFT FC-Mgmt-Int MIB June 1, 1999 offlineConnUnitPort: If the addressed connUnit allows this operation to be performed to this port, the addressed port performs a 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 18 } 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 19 } Blumenau [Page 25] INTERNET-DRAFT FC-Mgmt-Int MIB June 1, 1999 -- 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 11 } 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 } ConnUnitEventEntry ::= SEQUENCE { connUnitEventUnitId OCTET STRING, connUnitEventIndex INTEGER (1..2147483647), connUnitEventId INTEGER, connUnitREventTime DisplayString, connUnitSEventTime TimeTicks, connUnitEventSeverity INTEGER, connUnitEventType INTEGER, connUnitEventObjectIndex INTEGER, connUnitEventDescr DisplayString, connUnitEventFilter INTEGER } connUnitEventUnitId OBJECT-TYPE SYNTAX OCTET STRING (SIZE (16)) ACCESS read-only STATUS mandatory DESCRIPTION "This object is identical to connUnitId." ::= { connUnitEventEntry 1 } Blumenau [Page 26] INTERNET-DRAFT FC-Mgmt-Int MIB June 1, 1999 connUnitEventIndex OBJECT-TYPE SYNTAX INTEGER (1..2147483647) ACCESS read-only STATUS mandatory DESCRIPTION "The unique event index. It ranges between 1 and the size of the event table for the connectivity unit. It wraps on itself when the end of allocated space is reached." ::= { 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." ::= { 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 event occurred." ::= { connUnitEventEntry 5 } Blumenau [Page 27] INTERNET-DRAFT FC-Mgmt-Int MIB June 1, 1999 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." ::= { connUnitEventEntry 8 } connUnitEventDescr OBJECT-TYPE SYNTAX DisplayString ACCESS read-only STATUS mandatory DESCRIPTION "The description of the event." ::= { connUnitEventEntry 9 } Blumenau [Page 28] INTERNET-DRAFT FC-Mgmt-Int MIB June 1, 1999 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." ::= { connUnitEventEntry 10 } -- The link table (still under discussion) connUnitLinkTable OBJECT-TYPE SYNTAX SEQUENCE OF ConnUnitLinkTableEntry ACCESS not-accessible STATUS mandatory DESCRIPTION "A list of links from this proxy domain to other (vendors') proxy domains." ::= { connSet 12 } connUnitLinkNumber OBJECT-TYPE SYNTAX INTEGER ACCESS read-only STATUS mandatory DESCRIPTION "The number of links to other (vendors') proxy domains found. A 0 value indicates no links are present." ::= { connSet 13 } connUnitLinkTableEntry OBJECT-TYPE SYNTAX ConnUnitLinkTableEntry ACCESS not-accessible STATUS mandatory DESCRIPTION "An entry describing a particular link to another (vendor's) proxy domain." INDEX { connUnitLinkTableId } ::= { connUnitLinkTable 1 } Blumenau [Page 29] INTERNET-DRAFT FC-Mgmt-Int MIB June 1, 1999 ConnUnitLinkTableEntry ::= SEQUENCE { connUnitLinkTableId OCTET STRING, connUnitlocalUnitNodeId OCTET STRING, connUnitlocalUnitPortNumber INTEGER, connUnitremoteUnitNodeId OCTET STRING, connUnitremoteUnitPortId OCTET STRING } connUnitLinkTableId OBJECT-TYPE SYNTAX OCTET STRING (SIZE (16)) ACCESS read-only STATUS mandatory DESCRIPTION "This object is identical to connUnitId." ::= { connUnitLinkTableEntry 1 } connUnitlocalUnitNodeId OBJECT-TYPE SYNTAX OCTET STRING (SIZE(64)) ACCESS read-only STATUS mandatory DESCRIPTION "The node identifier (eg, WWN) of the unit within our local proxy domain that is connected to this particular link. If this link does not have a WWN then use serial number or some other unique id for the unit." ::= { connUnitLinkTableEntry 2 } connUnitlocalUnitPortNumber OBJECT-TYPE SYNTAX INTEGER ACCESS read-only STATUS mandatory DESCRIPTION "The port number on the unit specified by connUnitlocalUnitNodeId that is connected to this particular link. A value of 0 in this object indicates that it is not known which port on the device specified by connUnitlocalUnitNodeId is connected to this particular link. A non-zero value specifies a valid (local) port number that is connected to this particular link." ::= { connUnitLinkTableEntry 3 } Blumenau [Page 30] INTERNET-DRAFT FC-Mgmt-Int MIB June 1, 1999 connUnitremoteUnitNodeId OBJECT-TYPE SYNTAX OCTET STRING (SIZE(64)) ACCESS read-only STATUS mandatory DESCRIPTION "The node identifier (eg, WWN) of the device within the remote proxy domain that is connected to this particular link. If this link does not have a WWN then use serial number or some other unique id for the unit." ::= { connUnitLinkTableEntry 4 } connUnitremoteUnitPortId OBJECT-TYPE SYNTAX OCTET STRING (SIZE(64)) ACCESS read-only STATUS mandatory DESCRIPTION "The port identifier (eg, WWN) of the port within the remote proxy domain that is connected to this particular link. Note that this may be the same value as connUnitremoteUnitNodeId or it may be 0. Both of these values indicate there is no unique port WWN associated with the remote port. If this link does not have a WWN then use serial number or some other unique id for the unit." ::= { connUnitLinkTableEntry 5 } -- 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 31] INTERNET-DRAFT FC-Mgmt-Int MIB June 1, 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." ::= { trapRegEntry 2 } Blumenau [Page 32] INTERNET-DRAFT FC-Mgmt-Int MIB June 1, 1999 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 exists, 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 33] INTERNET-DRAFT FC-Mgmt-Int MIB June 1, 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 columsn 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 34] INTERNET-DRAFT FC-Mgmt-Int MIB June 1, 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 December 1, 1999.) Blumenau [Page 35]