-- CISCO-SAN-BASE-SVC-MIB.my: Common MIB for storage services -- -- June 2009, Vijay Chander, Anand Parthasarathy -- and Arpakorn Boonkongchuen -- -- Copyright (c) 2009 by Cisco Systems Inc. -- All rights reserved. -- -- ******************************************************************** CISCO-SAN-BASE-SVC-MIB DEFINITIONS ::= BEGIN IMPORTS MODULE-IDENTITY, OBJECT-TYPE, NOTIFICATION-TYPE FROM SNMPv2-SMI MODULE-COMPLIANCE, OBJECT-GROUP, NOTIFICATION-GROUP FROM SNMPv2-CONF TEXTUAL-CONVENTION, TruthValue, TimeStamp, RowStatus, StorageType FROM SNMPv2-TC InterfaceIndex, ifDescr FROM IF-MIB SnmpAdminString FROM SNMP-FRAMEWORK-MIB InetAddressType, InetAddress FROM INET-ADDRESS-MIB FcNameId FROM CISCO-ST-TC ciscoMgmt FROM CISCO-SMI; ciscoSanBaseSvcMIB MODULE-IDENTITY LAST-UPDATED "200906110000Z" ORGANIZATION "Cisco Systems Inc." CONTACT-INFO "Cisco Systems Customer Service Postal: 170 W Tasman Drive San Jose, CA 95134 USA Tel: +1 800 553 -NETS E-mail: cs-san@cisco.com" DESCRIPTION "Common MIB module to manage services in Storage Area Network (SAN). Service is deployed on service nodes on multiple switches forming a cluster. Nodes in the same cluster pick up the workload of a failed node to provide fault tolerance. An example of service that can be deployed is IO Acceleration (IOA) service. Glossary: The following terms are used in this MIB: pWWN: Port World Wide Name is a identifier assigned to a port in a Fibre Channel fabric. They perform a function equivalent to the MAC address in Ethernet protocol, as it is supposed to be unique identifier in the network. Nx_port: Nx_port is a storage port in Fibre Channel fabric that belongs to host or target." REVISION "200906110000Z" DESCRIPTION "Initial version" ::= { ciscoMgmt 702 } ciscoSanBaseSvcMIBNotifs OBJECT IDENTIFIER ::= { ciscoSanBaseSvcMIB 0 } ciscoSanBaseSvcMIBObjects OBJECT IDENTIFIER ::= { ciscoSanBaseSvcMIB 1 } ciscoSanBaseSvcMIBConform OBJECT IDENTIFIER ::= { ciscoSanBaseSvcMIB 2 } cSanBaseSvcConfig OBJECT IDENTIFIER ::= { ciscoSanBaseSvcMIBObjects 1 } cSanBaseSvcInterface OBJECT IDENTIFIER ::= { ciscoSanBaseSvcMIBObjects 2 } -- Textual Conventions CiscoSanBaseSvcInterfaceStatus ::= TEXTUAL-CONVENTION STATUS current DESCRIPTION "Operational state of the service interface. 'unknown(1)' -- interface is in an unknown state 'initializing(2)' -- interface is being initialized 'offline(3)' -- interface is not active 'online(4)' -- interface is online and can be used" SYNTAX INTEGER { unknown(1), initializing(2), offline(3), online(4) } CiscoSanBaseSvcClusterStatus ::= TEXTUAL-CONVENTION STATUS current DESCRIPTION "Operational state of the service cluster 'unknown(1)' -- cluster is in an unknown state 'inactive(2)' -- cluster is not active 'degraded(3)' -- cluster has lost some of its members 'recovery(4)' -- cluster is recovering from membership lost 'active(5)' -- cluster is active" SYNTAX INTEGER { unknown(1), inactive(2), degraded(3), recovery(4), active(5) } CiscoSanBaseSvcClusterIndex ::= TEXTUAL-CONVENTION STATUS current DESCRIPTION "This denotes the globally unique index for a service cluster. The value of the CiscoSanBaseSvcClusterIndex is an eight-octet unsigned integer value encoded in a network-byte order." SYNTAX OCTET STRING (SIZE (8)) -- SAN Base Service Configuration Group -- -- SAN Base Service Cluster Table cSanBaseSvcClusterTable OBJECT-TYPE SYNTAX SEQUENCE OF CSanBaseSvcClusterEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "This table lists all the service clusters that are configured on this device. It is important that any service is provided in a fault-tolerant manner. Base Service provides this by allowing service nodes to be grouped into cluster. Nodes in the same cluster immediately pick up the work of any failed node so user does not see service disruption." ::= { cSanBaseSvcConfig 1 } cSanBaseSvcClusterEntry OBJECT-TYPE SYNTAX CSanBaseSvcClusterEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "A conceptual row in the cSanBaseSvcClusterTable. Each row represents a service cluster in the system and provides the runtime and configuration information of a cluster." INDEX { cSanBaseSvcClusterId } ::= { cSanBaseSvcClusterTable 1 } CSanBaseSvcClusterEntry ::= SEQUENCE { cSanBaseSvcClusterId CiscoSanBaseSvcClusterIndex, cSanBaseSvcClusterName SnmpAdminString, cSanBaseSvcClusterState CiscoSanBaseSvcClusterStatus, cSanBaseSvcClusterMasterInetAddrType InetAddressType, cSanBaseSvcClusterMasterInetAddr InetAddress, cSanBaseSvcClusterStorageType StorageType, cSanBaseSvcClusterRowStatus RowStatus, cSanBaseSvcClusterApplication SnmpAdminString } cSanBaseSvcClusterId OBJECT-TYPE SYNTAX CiscoSanBaseSvcClusterIndex MAX-ACCESS not-accessible STATUS current DESCRIPTION "Globally unique index that identifies a service cluster. This index must be generated in such a way that the same value is never reused even after cluster has been deleted." ::= { cSanBaseSvcClusterEntry 1 } cSanBaseSvcClusterName OBJECT-TYPE SYNTAX SnmpAdminString (SIZE (0..32)) MAX-ACCESS read-create STATUS current DESCRIPTION "The name of the service cluster." DEFVAL { "" } ::= { cSanBaseSvcClusterEntry 2 } cSanBaseSvcClusterState OBJECT-TYPE SYNTAX CiscoSanBaseSvcClusterStatus MAX-ACCESS read-only STATUS current DESCRIPTION "The operational state of the service cluster." ::= { cSanBaseSvcClusterEntry 3 } cSanBaseSvcClusterMasterInetAddrType OBJECT-TYPE SYNTAX InetAddressType MAX-ACCESS read-only STATUS current DESCRIPTION "The type of Internet address of the service cluster master. The Internet address of service cluster master is specified by the value of the corresponding instance of cSanBaseSvcClusterMasterInetAddr." ::= { cSanBaseSvcClusterEntry 4 } cSanBaseSvcClusterMasterInetAddr OBJECT-TYPE SYNTAX InetAddress MAX-ACCESS read-only STATUS current DESCRIPTION "The Internet address of the service cluster master device. The type of this Internet address is determined by the value of the corresponding instance of cSanBaseSvcClusterMasterInetAddrType." ::= { cSanBaseSvcClusterEntry 5 } cSanBaseSvcClusterStorageType OBJECT-TYPE SYNTAX StorageType MAX-ACCESS read-create STATUS current DESCRIPTION "This object specifies the storage type for this conceptual row." ::= { cSanBaseSvcClusterEntry 6 } cSanBaseSvcClusterRowStatus OBJECT-TYPE SYNTAX RowStatus MAX-ACCESS read-create STATUS current DESCRIPTION "The status of this conceptual row. There is no restriction on the value of other columns before a newly created row can be made active." ::= { cSanBaseSvcClusterEntry 7 } cSanBaseSvcClusterApplication OBJECT-TYPE SYNTAX SnmpAdminString MAX-ACCESS read-create STATUS current DESCRIPTION "This object represents the name of the application that is enabled on this cluster." ::= { cSanBaseSvcClusterEntry 8 } -- SAN Base Service Cluster Member Switch Table cSanBaseSvcClusterMembersTable OBJECT-TYPE SYNTAX SEQUENCE OF CSanBaseSvcClusterMembersEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "This table lists the information of devices, local or remote, which are members of a service cluster configured on a device." ::= { cSanBaseSvcConfig 2 } cSanBaseSvcClusterMembersEntry OBJECT-TYPE SYNTAX CSanBaseSvcClusterMembersEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "A conceptual row in the cSanBaseSvcClusterMembersTable. Each row represents a member device within a specified service Cluster." INDEX { cSanBaseSvcClusterId, cSanBaseSvcClusterMemberInetAddrType, cSanBaseSvcClusterMemberInetAddr } ::= { cSanBaseSvcClusterMembersTable 1 } CSanBaseSvcClusterMembersEntry ::= SEQUENCE { cSanBaseSvcClusterMemberInetAddrType InetAddressType, cSanBaseSvcClusterMemberInetAddr InetAddress, cSanBaseSvcClusterMemberFabric SnmpAdminString, cSanBaseSvcClusterMemberIsLocal TruthValue, cSanBaseSvcClusterMemberIsMaster TruthValue, cSanBaseSvcClusterMemberStorageType StorageType, cSanBaseSvcClusterMemberRowStatus RowStatus } cSanBaseSvcClusterMemberInetAddrType OBJECT-TYPE SYNTAX InetAddressType MAX-ACCESS not-accessible STATUS current DESCRIPTION "The type of Internet address of a cluster member within a specified service cluster. The Internet address of this device is specified by the value of the corresponding instance of cSanBaseSvcMemberInetAddr." ::= { cSanBaseSvcClusterMembersEntry 1 } cSanBaseSvcClusterMemberInetAddr OBJECT-TYPE SYNTAX InetAddress (SIZE (0..32)) MAX-ACCESS not-accessible STATUS current DESCRIPTION "The Internet address of the cluster member device within a specified service cluster. The type of this Internet address is determined by the value of the corresponding instance of cSanBaseSvcClusterMemberInetAddrType." ::= { cSanBaseSvcClusterMembersEntry 2 } cSanBaseSvcClusterMemberFabric OBJECT-TYPE SYNTAX SnmpAdminString (SIZE (1..32)) MAX-ACCESS read-create STATUS current DESCRIPTION "This object represents the name of the physical fibre channel fabric in the SAN. A typical SAN deployment consists of a dual fabric topology which corresponds to two physical fabrics. In such a deployment, a cluster is configured in both fabrics to allow multi-pathing and redundancy. The user specifies the physical fabric to which a device belongs to when the cluster is configured." ::= { cSanBaseSvcClusterMembersEntry 3 } cSanBaseSvcClusterMemberIsLocal OBJECT-TYPE SYNTAX TruthValue MAX-ACCESS read-only STATUS current DESCRIPTION "Identifies if the device is a local or remote member of this cluster. 'true' means this device is a local device. 'false' means this device is a remote device." ::= { cSanBaseSvcClusterMembersEntry 4 } cSanBaseSvcClusterMemberIsMaster OBJECT-TYPE SYNTAX TruthValue MAX-ACCESS read-only STATUS current DESCRIPTION "Indicates if this device is currently the master of the service cluster. The value 'true' means this device is the master. The value 'false' means this device is not the master. Devices in a cluster select one of the cluster member to be a master. The master is responsible for handling cluster membership." ::= { cSanBaseSvcClusterMembersEntry 5 } cSanBaseSvcClusterMemberStorageType OBJECT-TYPE SYNTAX StorageType MAX-ACCESS read-create STATUS current DESCRIPTION "This object specifies the storage type for this conceptual row." ::= { cSanBaseSvcClusterMembersEntry 6 } cSanBaseSvcClusterMemberRowStatus OBJECT-TYPE SYNTAX RowStatus MAX-ACCESS read-create STATUS current DESCRIPTION "The status of this conceptual row. There is no restriction on the value of other columns before a newly created row can be made active. When a cluster is deleted, all entries in this table should be purged automatically." ::= { cSanBaseSvcClusterMembersEntry 7 } -- Base Service Local Interface Table cSanBaseSvcInterfaceTable OBJECT-TYPE SYNTAX SEQUENCE OF CSanBaseSvcInterfaceEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "This table lists all service interfaces on the local device and its corresponding information." ::= { cSanBaseSvcConfig 3 } cSanBaseSvcInterfaceEntry OBJECT-TYPE SYNTAX CSanBaseSvcInterfaceEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "A conceptual row in the cSanBaseSvcInterfaceTable. Each row represents a particular service interface on a local device." INDEX { cSanBaseSvcInterfaceIndex } ::= { cSanBaseSvcInterfaceTable 1 } CSanBaseSvcInterfaceEntry ::= SEQUENCE { cSanBaseSvcInterfaceIndex InterfaceIndex, cSanBaseSvcInterfaceState CiscoSanBaseSvcInterfaceStatus, cSanBaseSvcInterfaceClusterId CiscoSanBaseSvcClusterIndex, cSanBaseSvcInterfaceStorageType StorageType, cSanBaseSvcInterfaceRowStatus RowStatus } cSanBaseSvcInterfaceIndex OBJECT-TYPE SYNTAX InterfaceIndex MAX-ACCESS not-accessible STATUS current DESCRIPTION "A unique Interface index for a service interface on this device. This is the same as ifIndex of the ifTable of RFC1213." ::= { cSanBaseSvcInterfaceEntry 1 } cSanBaseSvcInterfaceState OBJECT-TYPE SYNTAX CiscoSanBaseSvcInterfaceStatus MAX-ACCESS read-only STATUS current DESCRIPTION "Operational state of this service interface." ::= { cSanBaseSvcInterfaceEntry 2 } cSanBaseSvcInterfaceClusterId OBJECT-TYPE SYNTAX CiscoSanBaseSvcClusterIndex MAX-ACCESS read-create STATUS current DESCRIPTION "Identifies the cluster to which this service interface belongs." ::= { cSanBaseSvcInterfaceEntry 3 } cSanBaseSvcInterfaceStorageType OBJECT-TYPE SYNTAX StorageType MAX-ACCESS read-create STATUS current DESCRIPTION "This object specifies the storage type for this conceptual row." ::= { cSanBaseSvcInterfaceEntry 4 } cSanBaseSvcInterfaceRowStatus OBJECT-TYPE SYNTAX RowStatus MAX-ACCESS read-create STATUS current DESCRIPTION "The status of this conceptual row. There is no restriction on the value of other columns before a newly created row can be made active. For example, cSanBaseSvcInterfaceClusterId column can be set independently later." ::= { cSanBaseSvcInterfaceEntry 5 } -- Base Service Device Port Table cSanBaseSvcDevicePortTable OBJECT-TYPE SYNTAX SEQUENCE OF CSanBaseSvcDevicePortEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "This table lists the devices that are configured to receive storage service." ::= { cSanBaseSvcConfig 4 } cSanBaseSvcDevicePortEntry OBJECT-TYPE SYNTAX CSanBaseSvcDevicePortEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "A conceptual row in the cSanBaseSvcDevicePortTable. Each row represents a particular device configured to receive storage service in a particular cluster." INDEX { cSanBaseSvcDevicePortName } ::= { cSanBaseSvcDevicePortTable 1 } CSanBaseSvcDevicePortEntry ::= SEQUENCE { cSanBaseSvcDevicePortName FcNameId, cSanBaseSvcDevicePortClusterId CiscoSanBaseSvcClusterIndex, cSanBaseSvcDevicePortStorageType StorageType, cSanBaseSvcDevicePortRowStatus RowStatus } cSanBaseSvcDevicePortName OBJECT-TYPE SYNTAX FcNameId MAX-ACCESS not-accessible STATUS current DESCRIPTION "This object represents Fibre-channel Port name (pWWN) of the Device Nx_Port." ::= { cSanBaseSvcDevicePortEntry 1 } cSanBaseSvcDevicePortClusterId OBJECT-TYPE SYNTAX CiscoSanBaseSvcClusterIndex MAX-ACCESS read-create STATUS current DESCRIPTION "This object represents the cluster identifier of the cluster to which this port belongs." ::= { cSanBaseSvcDevicePortEntry 2 } cSanBaseSvcDevicePortStorageType OBJECT-TYPE SYNTAX StorageType MAX-ACCESS read-create STATUS current DESCRIPTION "This object specifies the storage type for this conceptual row." ::= { cSanBaseSvcDevicePortEntry 3 } cSanBaseSvcDevicePortRowStatus OBJECT-TYPE SYNTAX RowStatus MAX-ACCESS read-create STATUS current DESCRIPTION "The status of this conceptual row. There is no restriction on the value of other columns before a newly created row can be made active." ::= { cSanBaseSvcDevicePortEntry 4 } -- Time last changed for the agents to know if they have to look at -- these tables. cSanBaseSvcConfigTableLastChanged OBJECT-TYPE SYNTAX TimeStamp MAX-ACCESS read-only STATUS current DESCRIPTION "The value of sysUpTime when a change to any Base Service MIB table other than the cSanBaseSvcDevicePortTable last occurred." ::= { cSanBaseSvcConfig 5 } cSanBaseSvcDevicePortTableLastChanged OBJECT-TYPE SYNTAX TimeStamp MAX-ACCESS read-only STATUS current DESCRIPTION "The value of sysUpTime when a change to cSanBaseSvcDevicePortTable last occurred." ::= { cSanBaseSvcConfig 6 } -- Notification control object cSanBaseSvcNotifyEnable OBJECT-TYPE SYNTAX TruthValue MAX-ACCESS read-write STATUS current DESCRIPTION "This object specifies if the service notifications should be generated or not. If the value of this object is 'true', then the notifications are generated. If the value of this object is 'false', then the notifications are not generated." DEFVAL { true } ::= { cSanBaseSvcConfig 7 } -- SAN Base Service Interface Group -- -- Base Service Cluster Member Interface Table cSanBaseSvcClusterMemberIfTable OBJECT-TYPE SYNTAX SEQUENCE OF CSanBaseSvcClusterMemberIfEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "This table lists the information of service interfaces on all devices, local or remote, which are members of a service cluster configured on a device." ::= { cSanBaseSvcInterface 1 } cSanBaseSvcClusterMemberIfEntry OBJECT-TYPE SYNTAX CSanBaseSvcClusterMemberIfEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "A conceptual row in the cSanBaseSvcClusterMemberIfTable. Each row represents a participating interface on local/remote device member within the specified service cluster." INDEX { cSanBaseSvcClusterId, cSanBaseSvcClusterMemberInetAddrType, cSanBaseSvcClusterMemberInetAddr, cSanBaseSvcClusterInterfaceIndex } ::= { cSanBaseSvcClusterMemberIfTable 1 } CSanBaseSvcClusterMemberIfEntry ::= SEQUENCE { cSanBaseSvcClusterInterfaceIndex InterfaceIndex, cSanBaseSvcClusterInterfaceState CiscoSanBaseSvcInterfaceStatus } cSanBaseSvcClusterInterfaceIndex OBJECT-TYPE SYNTAX InterfaceIndex MAX-ACCESS not-accessible STATUS current DESCRIPTION "A unique Interface index for a service interface on a device in this cluster. This is the same as ifIndex of the ifTable of RFC1213." ::= { cSanBaseSvcClusterMemberIfEntry 1 } cSanBaseSvcClusterInterfaceState OBJECT-TYPE SYNTAX CiscoSanBaseSvcInterfaceStatus MAX-ACCESS read-only STATUS current DESCRIPTION "The operational state of this service interface." ::= { cSanBaseSvcClusterMemberIfEntry 2 } -- Notifications ciscoSanBaseSvcInterfaceCreate NOTIFICATION-TYPE OBJECTS { ifDescr } STATUS current DESCRIPTION "This notification is generated when a service interface associated with a local device is created. The generation of this notification is controlled by cSanBaseSvcNotifyEnable" ::= { ciscoSanBaseSvcMIBNotifs 1 } ciscoSanBaseSvcInterfaceDelete NOTIFICATION-TYPE OBJECTS { ifDescr } STATUS current DESCRIPTION "This notification is generated when a service interface associated with a local device is deleted. The generation of this notification is controlled by cSanBaseSvcNotifyEnable" ::= { ciscoSanBaseSvcMIBNotifs 2 } ciscoSanBaseSvcClusterNewMaster NOTIFICATION-TYPE OBJECTS { cSanBaseSvcClusterName, cSanBaseSvcClusterMasterInetAddrType, cSanBaseSvcClusterMasterInetAddr } STATUS current DESCRIPTION "This notification is generated when the sending device who is participating in a service cluster has transitioned to be the master of the cluster. The generation of this notification is controlled by cSanBaseSvcNotifyEnable" ::= { ciscoSanBaseSvcMIBNotifs 3 } -- Conformance ciscoSanBaseSvcMIBCompliances OBJECT IDENTIFIER ::= { ciscoSanBaseSvcMIBConform 1 } ciscoSanBaseSvcMIBGroups OBJECT IDENTIFIER ::= { ciscoSanBaseSvcMIBConform 2 } -- Compliance Statements ciscoSanBaseSvcMIBCompliance MODULE-COMPLIANCE STATUS current DESCRIPTION "The compliance statement for entities that implement this base service." MODULE -- this module MANDATORY-GROUPS { ciscoSanBaseSvcConfigGroup, ciscoSanBaseSvcNotifControlGroup, ciscoSanBaseSvcNotifsGroup, ciscoSanBaseSvcInterfaceGroup } ::= { ciscoSanBaseSvcMIBCompliances 1 } ciscoSanBaseSvcConfigGroup OBJECT-GROUP OBJECTS { cSanBaseSvcClusterState, cSanBaseSvcClusterMasterInetAddrType, cSanBaseSvcClusterMasterInetAddr, cSanBaseSvcClusterMemberIsLocal, cSanBaseSvcInterfaceState, cSanBaseSvcInterfaceClusterId, cSanBaseSvcDevicePortClusterId, cSanBaseSvcConfigTableLastChanged, cSanBaseSvcClusterMemberFabric, cSanBaseSvcClusterName, cSanBaseSvcInterfaceRowStatus, cSanBaseSvcClusterRowStatus, cSanBaseSvcClusterMemberIsMaster, cSanBaseSvcClusterMemberRowStatus, cSanBaseSvcClusterStorageType, cSanBaseSvcClusterMemberStorageType, cSanBaseSvcInterfaceStorageType, cSanBaseSvcDevicePortStorageType, cSanBaseSvcDevicePortRowStatus, cSanBaseSvcClusterApplication, cSanBaseSvcDevicePortTableLastChanged } STATUS current DESCRIPTION "A collection of objects for storage service configuration." ::= { ciscoSanBaseSvcMIBGroups 1 } ciscoSanBaseSvcNotifControlGroup OBJECT-GROUP OBJECTS { cSanBaseSvcNotifyEnable } STATUS current DESCRIPTION "A collection of objects for controlling storage service notification." ::= { ciscoSanBaseSvcMIBGroups 2 } ciscoSanBaseSvcNotifsGroup NOTIFICATION-GROUP NOTIFICATIONS { ciscoSanBaseSvcInterfaceCreate, ciscoSanBaseSvcInterfaceDelete, ciscoSanBaseSvcClusterNewMaster } STATUS current DESCRIPTION "A collection of objects for notification of storage service events." ::= { ciscoSanBaseSvcMIBGroups 3 } ciscoSanBaseSvcInterfaceGroup OBJECT-GROUP OBJECTS { cSanBaseSvcClusterInterfaceState } STATUS current DESCRIPTION "A collection of storage service interface." ::= { ciscoSanBaseSvcMIBGroups 4 } END