HA-MIB DEFINITIONS ::= BEGIN 
IMPORTS
    MODULE-IDENTITY, OBJECT-TYPE, NOTIFICATION-TYPE,
    Integer32, IpAddress
        FROM SNMPv2-SMI
    fibrechannel  FROM Brocade-REG-MIB
	swID, swSsn FROM SW-MIB
    entPhysicalIndex, entPhysicalName FROM ENTITY-MIB
    DisplayString
        FROM SNMPv2-TC;


	haMIB	MODULE-IDENTITY
		LAST-UPDATED "200208160000Z"    -- Aug. 16, 2002
		ORGANIZATION "Brocade Communications Systems, Inc.,"
		CONTACT-INFO "Customer Support Group
			      Brocade Communications Systems,
			      1745 Technology Drive,
			      San Jose, CA 95110 U.S.A
			      Tel: +1-408-392-6061
			      Fax: +1-408-392-6656
			      Email: support@Brocade.COM
			      WEB: www.brocade.com"

		DESCRIPTION
		"The MIB module High Availability MIB.
		Copyright (c) 2002-2003 Brocade Communications Systems, Inc.
				All rights reserved."


		REVISION "200208160000Z"    -- Aug. 16, 2002
		DESCRIPTION
		"The initial revision for the High Availability MIB."

		REVISION "200402251530Z"    -- Feb 25, 2004 5:30pm
		DESCRIPTION
		"Added mib objects fruSupplierId, fruSupplierPartNum,
         fruSupplierSerialNum and fruSupplierRevCode to fruTable."

        REVISION "200902090000Z"    -- Feb 9th, 2009
        DESCRIPTION
        "Added new value coreblade and ap blade for fru table."

		REVISION "200904060000Z"    -- Apr 6th, 2009
		DESCRIPTION
		"Added textual convention for FruClass."
	REVISION    "200906251200Z" -- Jun 25, 2009 12:00pm
	DESCRIPTION "Removed the version information from Brocade's proprietary MIB file name."   

		::= { fibrechannel 2 }

	highAvailability OBJECT IDENTIFIER ::= { haMIB 1 }

	haStatus 	OBJECT-TYPE
			SYNTAX	INTEGER
				{
					redundant (0),
					nonredundant (1)
				}
			MAX-ACCESS		read-only
			STATUS	current
			DESCRIPTION
			"Whether the system is redundant or not."
		::= { highAvailability 1 } 

	FruClass		::= TEXTUAL-CONVENTION
     STATUS  current
     DESCRIPTION   "The type of the FRU object."
     SYNTAX  INTEGER {
				other(1),
				unknown(2),
				chassis (3),
				cp (4),
				other-CP(5),  
				switchblade (6),
				wwn (7),
				powerSupply(8),
				fan(9),
				coreblade(10),
                applicationblade(11)
            }

	fruTable	OBJECT-TYPE
			SYNTAX	SEQUENCE OF FRUEntry
			MAX-ACCESS	not-accessible
			STATUS	current
			DESCRIPTION
			"This table inventories the field replaceable units (FRUs)
			slots available. There is entry in this table for each entry
			in the entPhysicalTable that has entPhysicalClass set to
			'Container (5)' and has a child entry having entPhysicalIsFRU
			field to be true"
		::= {highAvailability 5}

	fRUEntry 	OBJECT-TYPE
			SYNTAX	FRUEntry
			MAX-ACCESS	not-accessible
			STATUS	current
			DESCRIPTION
			"An entry for FRU slot in the fruTable"
			INDEX { entPhysicalIndex }
		::= {fruTable 1}

	FRUEntry ::= SEQUENCE {
		fruClass	FruClass,
		fruStatus	INTEGER,
		fruObjectNum	Integer32,
		fruSupplierId	        DisplayString,
		fruSupplierPartNum	    DisplayString,
		fruSupplierSerialNum	DisplayString,
		fruSupplierRevCode	    DisplayString
		}

	fruClass 	OBJECT-TYPE
			SYNTAX  FruClass
			MAX-ACCESS	read-only
			STATUS	current
			DESCRIPTION
			"The type of the FRU object that these slot can hold"
		::= { fRUEntry 1 }

	fruStatus	OBJECT-TYPE
			SYNTAX INTEGER {
				other (1),
        			unknown (2),
				on (3),
				off (4),
				faulty (5)
				}
			MAX-ACCESS	read-only
			STATUS	current
			DESCRIPTION
				"The current status of the FRU object in the slot"
		::= {fRUEntry 2}

	fruObjectNum	OBJECT-TYPE
			SYNTAX 	Integer32
			MAX-ACCESS	read-only
			STATUS	current
			DESCRIPTION
			"Gives the slot number of the blade and unit number for
			everything else"
		::= { fRUEntry 3 }
	
	fruSupplierId	OBJECT-TYPE
			SYNTAX			DisplayString
			MAX-ACCESS		read-only
			STATUS			current
			DESCRIPTION		"The supplier id."
		::= { fRUEntry 4 }

	fruSupplierPartNum	OBJECT-TYPE
			SYNTAX			DisplayString
			MAX-ACCESS		read-only
			STATUS			current
			DESCRIPTION		"The supplier part number."
		::= { fRUEntry 5 }

	fruSupplierSerialNum	OBJECT-TYPE
			SYNTAX			DisplayString(SIZE (0..128))
			MAX-ACCESS		read-only
			STATUS			current
			DESCRIPTION		"The supplier serial number."
		::= { fRUEntry 6 }

	fruSupplierRevCode	OBJECT-TYPE
			SYNTAX			DisplayString
			MAX-ACCESS		read-only
			STATUS			current
			DESCRIPTION		"The supplier revision code."
		::= { fRUEntry 7 }

	fruHistoryTable  OBJECT-TYPE
			SYNTAX	SEQUENCE OF FruHistoryEntry
			MAX-ACCESS	not-accessible
			STATUS	current
			DESCRIPTION
			"This table gives the contents of the entire history
			log of the FRU events"
		::= {highAvailability 6}

	fruHistoryEntry	OBJECT-TYPE
			SYNTAX	FruHistoryEntry
			MAX-ACCESS	not-accessible
			STATUS	current
			DESCRIPTION
			"An entry in this table represents a particular FRU event"
			INDEX { fruHistoryIndex }
		::= {fruHistoryTable 1}

	FruHistoryEntry ::= SEQUENCE {
		fruHistoryIndex		Integer32,
		fruHistoryClass		FruClass,
		fruHistoryObjectNum	Integer32,
		fruHistoryEvent		INTEGER,
		fruHistoryTime		DisplayString,
		fruHistoryFactoryPartNum DisplayString,
		fruHistoryFactorySerialNum DisplayString
		}

	fruHistoryIndex  OBJECT-TYPE
			SYNTAX  Integer32
			MAX-ACCESS read-only
			STATUS	current
			DESCRIPTION 
			"Index of the FRU event in the history table"
		::= {fruHistoryEntry 1}
	

	fruHistoryClass	OBJECT-TYPE
			SYNTAX  FruClass
			MAX-ACCESS	read-only
			STATUS	current
			DESCRIPTION
			"The type of the FRU object related to the event"
		::= { fruHistoryEntry 2 }



	fruHistoryObjectNum OBJECT-TYPE
			SYNTAX 	Integer32
			MAX-ACCESS	read-only
			STATUS	current
			DESCRIPTION
			"Gives the slot number of the blade and unit number for
			everything else"
		::= { fruHistoryEntry 3 }
	
	fruHistoryEvent	OBJECT-TYPE
			SYNTAX
			INTEGER {
				added (1),
				removed (2),
				invalid (3)
				}
			MAX-ACCESS	read-only
			STATUS	current
			DESCRIPTION
			"The type of the FRU event"
		::= { fruHistoryEntry 4}

	fruHistoryTime	OBJECT-TYPE
			SYNTAX 	DisplayString
			MAX-ACCESS	read-only
			STATUS	current
			DESCRIPTION
			"Gives the time at which this event happened"
		::= { fruHistoryEntry 5 }

	fruHistoryFactoryPartNum	OBJECT-TYPE
			SYNTAX 	DisplayString
			MAX-ACCESS	read-only
			STATUS	current
			DESCRIPTION
			"Gives the factory part num of the FRU object"
		::= { fruHistoryEntry 6 }

fruHistoryFactorySerialNum	OBJECT-TYPE
			SYNTAX 	DisplayString
			MAX-ACCESS	read-only
			STATUS	current
			DESCRIPTION
			"Gives the factory serial num of the FRU object"
		::= { fruHistoryEntry 7 }

	cpTable   	OBJECT-TYPE
			SYNTAX	SEQUENCE OF CPEntry
			MAX-ACCESS	not-accessible
			STATUS	current
			DESCRIPTION
			"This table lists all the CPs in the system"
		::= {highAvailability 7}

	cpEntry  	OBJECT-TYPE
			SYNTAX	CPEntry
			MAX-ACCESS	not-accessible
			STATUS	current
			DESCRIPTION
			"An entry represents a single CP in the system"
			INDEX { entPhysicalIndex }
		::= {cpTable 1}

	CPEntry ::= SEQUENCE {
			cpStatus	INTEGER,
			cpIpAddress	IpAddress,
			cpIpMask	IpAddress,
			cpIpGateway	IpAddress,
			cpLastEvent	INTEGER
			}

	cpStatus	OBJECT-TYPE
			SYNTAX 	INTEGER {
				other (1),
				unknown (2),
				active (3),
				standby (4),  -- Ready to takeover
				failed (5)  -- Not ready to takeover
				}
			MAX-ACCESS	read-only
			STATUS	current
			DESCRIPTION
			"Gives the current status of the CP"
		::= { cpEntry 1 }

	cpIpAddress 	OBJECT-TYPE
			SYNTAX	IpAddress
			MAX-ACCESS read-only
			STATUS	current
			DESCRIPTION
			"The IP Address of the Ethernet interface of this CP."
		::= { cpEntry 2 }

	cpIpMask	OBJECT-TYPE
			SYNTAX IpAddress
			MAX-ACCESS	read-only
			STATUS	current
			DESCRIPTION
			"The IP Mask of the Ethernet interface of this CP."
		::= { cpEntry 3 }

	cpIpGateway 	OBJECT-TYPE
			SYNTAX	IpAddress
			MAX-ACCESS	read-only
			STATUS	current
			DESCRIPTION
			"The IP Address of the IP Gateway for this CP."
		::= { cpEntry 4 }

	cpLastEvent	OBJECT-TYPE
			SYNTAX INTEGER {
				other (1),
				unknown (2),
				haSync (3),
				haOutSync (4),
				cpFaulty (5),
				cpHealthy (6),
				cpActive (7),
				configChange (8),
				failOverStart (9),
				failOverDone (10),
				firmwareCommit (11),
				firmwareUpgrade (12)
				}
			MAX-ACCESS	read-only
			STATUS	current
			DESCRIPTION
			"The last event related to this CP"
		::= { cpEntry 5 }

	haMIBTraps	OBJECT IDENTIFIER ::= { haMIB 2 }
	haMIBTrapPrefix OBJECT IDENTIFIER ::= { haMIBTraps 0 }

	fruStatusChanged NOTIFICATION-TYPE
			OBJECTS { entPhysicalName, fruStatus}
			STATUS	current
			DESCRIPTION
			"This trap is sent when status of any FRU object is changed"
		::= { haMIBTrapPrefix 1 }

	cpStatusChanged NOTIFICATION-TYPE
			OBJECTS { cpStatus, cpLastEvent, swID, swSsn} 
			STATUS	current
			DESCRIPTION
			"This trap is sent when status of any CP object is changed"
		::= { haMIBTrapPrefix 2 }

	fruHistoryTrap NOTIFICATION-TYPE
		       OBJECTS { fruHistoryClass, fruHistoryObjectNum,
		       fruHistoryEvent, fruHistoryTime, fruHistoryFactoryPartNum,
		        fruHistoryFactorySerialNum }
			STATUS current
			DESCRIPTION
			"This trap is sent when a FRU is added or removed"
		::= { haMIBTrapPrefix 3 }
END
