--
-- CDDL HEADER START
--
-- The contents of this file are subject to the terms of the
-- Common Development and Distribution License (the License).
-- You may not use this file except in compliance with the License.
--
-- You can obtain a copy of the license at usr/src/CDDL.txt
-- or http://www.opensolaris.org/os/licensing.
-- See the License for the specific language governing permissions
-- and limitations under the License.
--
-- When distributing Covered Code, include this CDDL HEADER in each
-- file and include the License file at usr/src/CDDL.txt.
-- If applicable, add the following below this CDDL HEADER, with the
-- fields enclosed by brackets [] replaced with your own identifying
-- information: Portions Copyright [yyyy] [name of copyright owner]
--
-- CDDL HEADER END
--
--
-- Copyright (c) 2004, 2010, Oracle and/or its affiliates. All rights reserved.
-- 
--
-- ident	"@(#)sun-cluster-event-mib.mib	1.5	10/03/29 SMI"
-- 

SUN-CLUSTER-EVENTS-MIB DEFINITIONS ::= BEGIN

  IMPORTS
         MODULE-IDENTITY, OBJECT-TYPE, NOTIFICATION-TYPE,
         Integer32, Counter64
             FROM SNMPv2-SMI
         DisplayString, TEXTUAL-CONVENTION
             FROM SNMPv2-TC;
         
-- Module Identity
------------------
   
sunClusterEventsMIB MODULE-IDENTITY
    LAST-UPDATED "0211300000Z"
    ORGANIZATION "Sun Microsystems"
    CONTACT-INFO
        "Sun Microsystems"
    DESCRIPTION
        "Oracle Solaris Cluster Event MIB monitors the event framework"
    REVISION      "0211300000Z"
    DESCRIPTION
            "Draft."
    ::= { suncluster 2 }

sun       	OBJECT IDENTIFIER ::= { iso(1) 
					org(3) 
					dod(6) 
					internet(1)
					private(4)
					enterprises(1)
					42 }

prod      	OBJECT IDENTIFIER ::= { sun 2 }
suncluster	OBJECT IDENTIFIER ::= { prod 80 }

--
-- Oracle Solaris Cluster events Objects subtree
--

scEventsMIBObjects 
	OBJECT IDENTIFIER ::= { sunClusterEventsMIB 1 }

--
-- Oracle Solaris Cluster events Notifications subtree
--

scEventsMIBNotifications 
	OBJECT IDENTIFIER ::= { sunClusterEventsMIB 2 }

-- Textual Conventions
----------------------

ScEventTableCount ::= TEXTUAL-CONVENTION
    STATUS	 current
    DESCRIPTION
	"Maximum number of event instances maintained in this MIB.
	 When escEventsTable has this many entries and a new entry is
	 added, the earliest entry will be retired"
    SYNTAX     INTEGER (20..32767)

ScEventIndex ::= TEXTUAL-CONVENTION
    STATUS       current
    DESCRIPTION
            "An index into the tables to refer to a specific event instance"
    SYNTAX       INTEGER

ScClusterId ::= TEXTUAL-CONVENTION
    STATUS       current
    DESCRIPTION
           "The unique cluster ID of the cluster sending this event"
    SYNTAX       DisplayString

ScClusterName ::= TEXTUAL-CONVENTION
    STATUS       current
    DESCRIPTION
           "The name of the cluster sending this event"
    SYNTAX       DisplayString

ScNodeName ::= TEXTUAL-CONVENTION
    STATUS       current
    DESCRIPTION
           "The name of the cluster node sending this event"
    SYNTAX       DisplayString

ScEventVersion ::= TEXTUAL-CONVENTION
    STATUS       current
    DESCRIPTION
           "The version number of this event"
    SYNTAX       INTEGER

ScEventClassName ::= TEXTUAL-CONVENTION
    STATUS       current
    DESCRIPTION
          "Event Class Name, currently always the string EC_Cluster"
    SYNTAX DisplayString

ScEventSubclassName ::= TEXTUAL-CONVENTION
    STATUS       current
    DESCRIPTION

          "Event Subclass Name could be :
	        
		ESC_cluster_generic_event, 
		ESC_cluster_config_change,
		ESC_cluster_state_change,
                ESC_cluster_node_config_change,
		ESC_cluster_node_state_change,
		ESC_cluster_cmm_reconfig,
		ESC_cluster_ucmm_reconfig,
		ESC_cluster_ucmm_reconfig_substep,
		ESC_cluster_quorum_config_change,
		ESC_cluster_quorum_state_change,
		ESC_cluster_membership,ESC_cluster_rg_state,
		ESC_cluster_rg_primaries_changing,
		ESC_cluster_rg_remaining_offlin,
		ESC_cluster_rg_giveover_deferred,
		ESC_cluster_rg_node_rebooted,
		ESC_cluster_rg_config_change,
		ESC_cluster_r_state
		ESC_cluster_r_method_completed,
		ESC_cluster_r_config_chang,
		ESC_cluster_fm_r_status_change,
		ESC_cluster_fm_r_restarting,
		ESC_cluster_scha_api_invalid,
		ESC_cluster_pmf_proc_restart,
		ESC_cluster_pmf_proc_not_restarted,
		ESC_cluster_tp_path_config_change,
		ESC_cluster_tp_path_config_change,
		ESC_cluster_tp_path_state_change,
		ESC_cluster_tp_if_state_change,
		ESC_cluster_ipmp_group_state,
		ESC_cluster_ipmp_group_change,
		ESC_cluster_ipmp_group_member_change,
		ESC_cluster_ipmp_if_change
          "   
    SYNTAX DisplayString


--
-- Severity of the event
--

ScEventSeverity ::= TEXTUAL-CONVENTION
    STATUS       current
    DESCRIPTION
          "Event severity :
              CL_EVENT_SEV_INFO = 0
              CL_EVENT_SEV_WARNING = 1
              CL_EVENT_SEV_ERROR = 2
              CL_EVENT_SEV_CRITICAL = 3
              CL_EVENT_SEV_FATAL = 4
           "   
    SYNTAX INTEGER { 
    	clEventSevInfo(0),
	clEventSevWarning(1), 
	clEventSevError(2), 
	clEventSevCritical(3),
	clEventSevFatal(4)
    }

ScEventInitiator ::= TEXTUAL-CONVENTION
    STATUS       current
    DESCRIPTION
          "Event severity :
	    CL_EVENT_INIT_UNKNOWN = 0,
	    CL_EVENT_INIT_SYSTEM = 1,
	    CL_EVENT_INIT_OPERATOR = 2,
	    CL_EVENT_INIT_AGENT = 3,
           "   
    SYNTAX INTEGER { 
        clEventInitUnknown(0),
	clEventInitSystem(1),
	clEventInitOperator(2),
	clEventInitAgent(3)
    }


ScEventPublisher ::= TEXTUAL-CONVENTION
    STATUS       current
    DESCRIPTION
          "Publisher name could be :
                 rgm
                 pmf 
                 cmm
                 net
                 dcs
                 dpm
                 tp
                 ucmm
           "   
    SYNTAX DisplayString

ScEventPid ::= TEXTUAL-CONVENTION
    STATUS       current
    DESCRIPTION
            "The process PID issuing the event"
    SYNTAX       Counter64

ScTimeStamp ::= TEXTUAL-CONVENTION
    STATUS       current
    DESCRIPTION
            "The difference, measured in milliseconds, between the current
	     time and midnight, January 1, 1970 UTC."
    SYNTAX       Counter64

ScEventData ::= TEXTUAL-CONVENTION
    STATUS       current
    DESCRIPTION
            "More detail data of the event, concate attribute name/value"
    SYNTAX       DisplayString

ScEventAttributeName ::= TEXTUAL-CONVENTION
    STATUS       current
    DESCRIPTION
          "Name of the attributes could be
		
		rt_name,
		rg_name,
		r_name,
		quorum_name,
		method_name
		tp_path_name,
		tp_if_name,
		affinity_rg_name,
		node_list
		state_list,
		from_node_list,
		to_node_list,
		old_state
		new_state,
		old_status,
		new_status,
		status_msg
		step_name,
		substep_name,
		start_time,
		duration,
		method_duration
		method_path,
		scha_api_optag,
		scha_api_func,
		pmf_name_tag,
		pmf_cmd_path
		total_attempts,
		attempt_number,
		cmd_path,
		retry_number
		retry_count,
		vote_count,
		desired_primaries
	"   
    SYNTAX DisplayString

ScEventAttributeValue ::= TEXTUAL-CONVENTION
    STATUS       current
    DESCRIPTION
          "All attributes value are DisplayString "   
    SYNTAX DisplayString


-----------------------------------------------------------------------
--
-- the Events Objects group
--
-- A collection of objects used to monitor the Events
--
-----------------------------------------------------------------------

--
-- Maximum number of event instances kept in tables
--

escEventTableCount OBJECT-TYPE
    SYNTAX      ScEventTableCount
    MAX-ACCESS  read-write
    STATUS	current
    DESCRIPTION
	"Maximum number of event instances maintained in this MIB.
	 When escEventsTable has this many entries and a new entry is
	 added, the earliest entry will be retired"
    ::= { scEventsMIBObjects 1 }

--
-- Events table
--

escEventsTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF EscEventsEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
            "The table contains one entry per CMM Events"
    ::= { scEventsMIBObjects 2 }

--
-- Events Entry description
--

escEventsEntry OBJECT-TYPE
    SYNTAX      EscEventsEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
	    " The entry describes an event"

    INDEX   { eventIndex }

    ::= { escEventsTable 1 }

EscEventsEntry  ::= SEQUENCE {
	eventIndex ScEventIndex,
	eventClusterId ScClusterId,
	eventClusterName ScClusterName,
	eventNodeName ScNodeName,
	eventVersion ScEventVersion,
        eventClassName ScEventClassName,
	eventSubclassName ScEventSubclassName, 
	eventSeverity ScEventSeverity,
	eventInitiator ScEventInitiator,
	eventPublisher ScEventPublisher,
	eventSeqNo Counter64,
	eventPid ScEventPid,
	eventTimeStamp ScTimeStamp,
	eventData ScEventData
}

eventIndex OBJECT-TYPE
       SYNTAX      ScEventIndex
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
            "An index to refer to a cluster event. The index numbers
	     increase monotonically as events are added to the MIB,
	     and the oldest events are deleted from the MIB. If the
	     MIB is restarted, the index number restarts from 1.
	     Different instances of this MIB may have different
	     index numbers for the same event instance"
       ::= { escEventsEntry 1 }

eventClusterId OBJECT-TYPE
       SYNTAX      ScClusterId
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "The unique cluster ID of the cluster sending this event"
       ::= { escEventsEntry 2 }

eventClusterName OBJECT-TYPE
       SYNTAX      ScClusterName
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "The name of the cluster sending this event"
       ::= { escEventsEntry 3 }

eventNodeName OBJECT-TYPE
       SYNTAX      ScNodeName
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "The name of the cluster node sending this event"
       ::= { escEventsEntry 4 }

eventVersion OBJECT-TYPE
       SYNTAX      ScEventVersion
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "The version number of this event"
       ::= { escEventsEntry 5 }

eventClassName OBJECT-TYPE
       SYNTAX      ScEventClassName
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "The name of the event class"
       ::= { escEventsEntry 6 }

eventSubclassName OBJECT-TYPE
       SYNTAX      ScEventSubclassName
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "The name of the event subclass"
       ::= { escEventsEntry 7 }

eventSeverity OBJECT-TYPE
       SYNTAX      ScEventSeverity
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "The severity of this event"
       ::= { escEventsEntry 8 }

eventInitiator OBJECT-TYPE
       SYNTAX      ScEventInitiator
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "The initiator of this event"
       ::= { escEventsEntry 9 }

eventPublisher OBJECT-TYPE
       SYNTAX      ScEventPublisher
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "the event publisher"
       ::= { escEventsEntry 10 }

eventSeqNo OBJECT-TYPE
       SYNTAX      Counter64
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "the subclass-unique sequence number for this event"
       ::= { escEventsEntry 11 }

eventPid OBJECT-TYPE
       SYNTAX      ScEventPid
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "the process ID of the event issuer"
       ::= { escEventsEntry 12 }

eventTimeStamp OBJECT-TYPE
       SYNTAX      ScTimeStamp
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "the difference, measured in milliseconds, between the 
	   current time and midnight, January 1, 1970 UTC"
       ::= { escEventsEntry 13 }

eventData OBJECT-TYPE
       SYNTAX      ScEventData
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "the detail data of the event"
       ::= { escEventsEntry 14 }

-- 
-- Attributes Table
--

escEventsAttributesTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF EscEventsAttributesEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
            "A table containing additional attributes specific to
	     a given event subclass. By keying in on the eventIndex
	     and the name of the attribute, its value may be found.
	    "
    ::= { scEventsMIBObjects 3 }


escEventsAttributesEntry OBJECT-TYPE
    SYNTAX      EscEventsAttributesEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
	    "Each entry corresponds to an associated MBean.
             The index of the entry is composed of the eventSubclassName.
	    "
    INDEX   { eventIndex, attributeName }

    ::= { escEventsAttributesTable 1 }

--
-- Events attributes entry
-- All value are retreive in a DisplayString format
--

EscEventsAttributesEntry  ::= SEQUENCE {
	attributeName  ScEventAttributeName,
	attributeValue ScEventAttributeValue
}

attributeName OBJECT-TYPE
       SYNTAX      ScEventAttributeName
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "Name of this attribute,  used as key in table"
       ::= { escEventsAttributesEntry 1 }

attributeValue OBJECT-TYPE
       SYNTAX      ScEventAttributeValue
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
           "String value of this attribute "
       ::= { escEventsAttributesEntry 2 }

--
-- A notifications should be sent when a new event
-- is added in the events table or a event
-- entry is modified into the table

escNewEvents NOTIFICATION-TYPE
    OBJECTS {
	eventIndex,
	eventClusterId,
	eventClusterName,
	eventNodeName,
	eventVersion,
        eventClassName,
	eventSubclassName,
	eventSeverity,
	eventInitiator,
	eventPublisher,
	eventSeqNo,
	eventPid,
	eventTimeStamp,
        eventData
    }
    STATUS current
    DESCRIPTION
           "This notification is sent when a new Event
		is received from the Event framework and the
		corresponding entry is created/modified.
           "
    ::= { scEventsMIBNotifications 1 }

END

