FOUNDRY-SN-VSRP-MIB DEFINITIONS ::= BEGIN

IMPORTS

	MODULE-IDENTITY, OBJECT-TYPE,IpAddress, Counter32,Integer32
		FROM SNMPv2-SMI
	TEXTUAL-CONVENTION
		FROM SNMPv2-TC
	snSwitch
		FROM FOUNDRY-SN-SWITCH-GROUP-MIB
	;

snVsrp MODULE-IDENTITY
    LAST-UPDATED "201006020000Z"  -- 04 June 2010
    ORGANIZATION "Brocade Communications Systems, Inc."
    CONTACT-INFO
             "Technical Support Center
              130 Holger Way,
              San Jose, CA  95134
              Email:  ipsupport@brocade.com
              Phone: 1-800-752-8061
              URL:  www.brocade.com"
    DESCRIPTION
             "Copyright 1996-2010 Brocade Communications Systems, Inc.
              All rights reserved.
              This Brocade Communications Systems SNMP Management Information Base Specification
              embodies Brocade Communications Systems' confidential and proprietary
              intellectual property. Brocade Communications Systems retains all
              title and ownership in the Specification, including any revisions.

              This Specification is supplied AS IS, and Brocade Communications Systems makes
              no warranty, either express or implied, as to the use,
              operation, condition, or performance of the specification, and any unintended
              consequence it may on the user environment."

    REVISION        "201006020000Z"  -- 04 June 2010
    DESCRIPTION
        "Changed the ORGANIZATION, CONTACT-INFO and DESCRIPTION fields."

    REVISION     "200909300000Z" -- September 30, 2009
    DESCRIPTION
			"convert from SMIv1 to SMIv2"
   ::= { snSwitch 21}

	MacAddress ::= TEXTUAL-CONVENTION
		STATUS	  current
		DESCRIPTION
			"
			   This data type is used to model media addresses.  For many
			   types of media, this will be in a binary representation.
			   For example, an ethernet address would be represented as
			   a string of 6 octets.
			"
		SYNTAX	OCTET STRING (SIZE(6))

snVsrpGlobal 	OBJECT IDENTIFIER ::= { snVsrp 1 }
snVsrpIfIntf 	OBJECT IDENTIFIER ::= { snVsrp 2 }
snVsrpVirRtr 	OBJECT IDENTIFIER ::= { snVsrp 3 }

--  Section 1:	VSRP Global Variables

snVsrpGroupOperModeVsrp OBJECT-TYPE
	SYNTAX  INTEGER
		{   disabled(0),
			enabled(1)
		}
	MAX-ACCESS  read-write
	STATUS  current
	DESCRIPTION "The VSRP is configured on this system either enabled or
		disabled and thedefault is disabled mode.
		 disabled(0)..........disable VSRP
		 enabled(1)...........activate VSRP"
	::= { snVsrpGlobal 1 }

snVsrpIfStateChangeTrap OBJECT-TYPE
	SYNTAX	INTEGER { disabled(0), enabled(1) }
	MAX-ACCESS	read-write
	STATUS	current
	DESCRIPTION
		"Indicates whether the SNMP agent process is
		permitted to generate VSRP interface state change
		traps."
	DEFVAL { enabled }
	::= { snVsrpGlobal 2 }

snVsrpIfMaxNumVridPerIntf OBJECT-TYPE
	SYNTAX   Integer32
	MAX-ACCESS	read-only
	STATUS	current
	DESCRIPTION
		"Indicates the maximum number of VRID per interface."
	::= { snVsrpGlobal 3 }

snVsrpIfMaxNumVridPerSystem OBJECT-TYPE
	SYNTAX   Integer32
	MAX-ACCESS	read-only
	STATUS	current
	DESCRIPTION
		"Indicates the maximum number of VRID per system."
	::= { snVsrpGlobal 4 }

snVsrpClearVrrpStat OBJECT-TYPE
	SYNTAX	INTEGER { normal(0), clear(1) }
	MAX-ACCESS	read-write
	STATUS	current
	DESCRIPTION
		"Clear VSRP statistics command."
	::= { snVsrpGlobal 5 }


--  Section 2:	VSRP  Interface Table, new table with vlan_id as an index.

snVsrpIfTable OBJECT-TYPE
	SYNTAX   SEQUENCE OF SnVsrpIfEntry
	MAX-ACCESS   not-accessible
	STATUS   current
	DESCRIPTION
	   "The VSRP Interface Table describes the interfaces from
		the viewpoint of VSRP."
	::= { snVsrpIfIntf 1 }

	 snVsrpIfEntry OBJECT-TYPE
		 SYNTAX   SnVsrpIfEntry
		 MAX-ACCESS   not-accessible
		 STATUS   current
		 DESCRIPTION
			"The VSRP Interface Entry describes one interface from
			the viewpoint of VSRP."
		 INDEX { snVsrpIfVlanId}
		 ::= { snVsrpIfTable 1 }

	 SnVsrpIfEntry ::=
		 SEQUENCE {
			 snVsrpIfVlanId
				Integer32,
			 snVsrpIfAuthType
				 INTEGER,
			 snVsrpIfAuthPassword
				 OCTET STRING
		 }

	 snVsrpIfVlanId OBJECT-TYPE
		 SYNTAX  Integer32
		 MAX-ACCESS  read-only
		 STATUS  current
		 DESCRIPTION
			"Vlan index."
		 ::= { snVsrpIfEntry 1 }

	snVsrpIfAuthType OBJECT-TYPE
		 SYNTAX   INTEGER {
						noAuth(0),
						simpleTextPasswd(1),
						ipAuthHeader(2)
						}
		 MAX-ACCESS   read-write
		 STATUS   current
		 DESCRIPTION
			"The authentication type of this interface."
		 ::= { snVsrpIfEntry 2 }

	snVsrpIfAuthPassword OBJECT-TYPE
		 SYNTAX	  OCTET STRING (SIZE (0..8))
		 MAX-ACCESS   read-write
		 STATUS   current
		 DESCRIPTION
			"The simple text password is allowed if only if
			the snVsrpIfAuthType type is simpleTextPasswd and
			the size should be greater than zero.
			On reading this object, if the snVsrpIfAuthType type is
			noAuth, then zero length string will be returned"
		 ::= { snVsrpIfEntry 3 }


--  Section 3: VSRP Virtual Router Configuration Table
--  The vsrp Virtual Router Table augments with vsrp specific information.

snVsrpVirRtrTable OBJECT-TYPE
	SYNTAX   SEQUENCE OF SnVsrpVirRtrEntry
	MAX-ACCESS   not-accessible
	STATUS   current
	DESCRIPTION
	   "The vsrp virtual router Entry describes one virtual router from
		the viewpoint of vsrp."
	::= { snVsrpVirRtr 1 }

	 snVsrpVirRtrEntry OBJECT-TYPE
		 SYNTAX   SnVsrpVirRtrEntry
		 MAX-ACCESS   not-accessible
		 STATUS   current
		 DESCRIPTION
			"The vsrp virtual router Entry describes one virtual router from
			the viewpoint of vsrp."
		 INDEX { snVsrpVirRtrVlanId, snVsrpVirRtrId }
		 ::= { snVsrpVirRtrTable 1 }

	 SnVsrpVirRtrEntry ::=
		 SEQUENCE {
			  snVsrpVirRtrVlanId
			Integer32,
			 snVsrpVirRtrId
				 INTEGER,
			 snVsrpVirRtrOwnership
				 INTEGER,
			 snVsrpVirRtrCfgPriority
				 INTEGER,
			 snVsrpVirRtrTrackPriority
				 INTEGER,
			 snVsrpVirRtrCurrPriority
				 INTEGER,
			 snVsrpVirRtrHelloInt
				 INTEGER,
			 snVsrpVirRtrDeadInt
				 INTEGER,
			 snVsrpVirRtrPreemptMode
				 INTEGER,
			 snVsrpVirRtrState
				 INTEGER,
			snVsrpVirRtrIpAddrMask
				OCTET STRING,
			 snVsrpVirRtrActivate
				 INTEGER,
			 snVsrpVirRtrTrackPortList
				 OCTET STRING,
			 snVsrpVirRtrAdvertiseBackup
				 INTEGER,
			 snVsrpVirRtrHoldDownInt
				 INTEGER,
			 snVsrpVirRtrInitTtl
				 INTEGER,
			 snVsrpVirRtrIncPortList
				 OCTET STRING,
			 snVsrpVirRtrSave
				 INTEGER,
			 snVsrpVirRtrBackupInt
				 INTEGER,
			 snVsrpVirRtrRowStatus
				 INTEGER,
			 snVsrpVirRtrRxArpPktDropCnts
				 Counter32,
			 snVsrpVirRtrRxIpPktDropCnts
				 Counter32,
			 snVsrpVirRtrRxPortMismatchCnts
				 Counter32,
			 snVsrpVirRtrRxNumOfIpMismatchCnts
				 Counter32,
			 snVsrpVirRtrRxIpMismatchCnts
				 Counter32,
			 snVsrpVirRtrRxHelloIntMismatchCnts
				 Counter32,
			 snVsrpVirRtrRxPriorityZeroFromMasterCnts
				 Counter32,
			 snVsrpVirRtrRxHigherPriorityCnts
				 Counter32,
			 snVsrpVirRtrTransToMasterStateCnts
				 Counter32,
			 snVsrpVirRtrTransToBackupStateCnts
				 Counter32,
			 snVsrpVirRtrCurrDeadInt
				 Integer32,
			 snVsrpVirRtrCurHelloInt
				 INTEGER,
			 snVsrpVirRtrCurHoldDownInt
				 INTEGER,
			 snVsrpVirRtrCurInitTtl
				 INTEGER,
			snVsrpVirRtrHelloMacAddress
				MacAddress,
			snVsrpVirRtrMasterIpAddr
				 IpAddress
	   }

	 snVsrpVirRtrVlanId OBJECT-TYPE
		 SYNTAX  Integer32
		 MAX-ACCESS  read-only
		 STATUS  current
		 DESCRIPTION
			"Vlan index."
		 ::= { snVsrpVirRtrEntry 1 }

	snVsrpVirRtrId OBJECT-TYPE
		 SYNTAX   INTEGER (1..255)
		 MAX-ACCESS   read-only
		 STATUS   current
		 DESCRIPTION
			"One of the virtual router ID of this vsrp interface."
		 ::= { snVsrpVirRtrEntry 2 }

	snVsrpVirRtrOwnership OBJECT-TYPE
		 SYNTAX   INTEGER {
					incomplete(0),
					owner(1),
					backup(2)
					}
		 MAX-ACCESS   read-write
		 STATUS   current
		 DESCRIPTION
			"The ownership of this vsrp router interface
			can be set to backup(2).
			VirRtr SNMP-GET returns incomplete(0), it means
			no IP address has assigned to this vsrp router interface."
		 ::= { snVsrpVirRtrEntry 3 }

	 snVsrpVirRtrCfgPriority OBJECT-TYPE
		 SYNTAX   INTEGER (1..255)
		 MAX-ACCESS   read-write
		 STATUS   current
		 DESCRIPTION
			"The higher the number the higher the priority is.
			This parameter decides which backup router should becomes
			the Active Router for the interface.  A backup Router with
			higher priority selected to becomes the Active Router.
			Therefore, this Object can be set if only if snVsrpVirRtrOwnership
			is set to backup(2).
                        For NetIron platforms, the range is between 8 to 255."
		 DEFVAL { 100 }
		 ::= { snVsrpVirRtrEntry 4 }

	 snVsrpVirRtrTrackPriority OBJECT-TYPE
		 SYNTAX   INTEGER (1..254)
		 MAX-ACCESS   read-write
		 STATUS   current
		 DESCRIPTION
			"The higher the number the higher the priority is.
			after this object is configured, the snVsrpVirRtrCurrPriority
			of this interface will be adjusted dynamically with this
			track priority when the Track Port states first
			changes from UP to DOWN."
		 ::= { snVsrpVirRtrEntry 5 }

	 snVsrpVirRtrCurrPriority OBJECT-TYPE
		 SYNTAX   INTEGER (1..254)
		 MAX-ACCESS   read-only
		 STATUS   current
		 DESCRIPTION
			"The higher the number the higher the priority is.
			This object will be adjusted dynamically with the
			track priority when the Track Port states first
			changes from UP to DOWN."
		 ::= { snVsrpVirRtrEntry 6 }

	 snVsrpVirRtrHelloInt OBJECT-TYPE
		 SYNTAX   INTEGER (1..84)
		 MAX-ACCESS   read-write
		 STATUS   current
		 DESCRIPTION
			"Time interval between advertisements (seconds)."
		 DEFVAL { 1 }
		 ::= { snVsrpVirRtrEntry 7 }

	 snVsrpVirRtrDeadInt OBJECT-TYPE
		 SYNTAX   INTEGER (0..84)
		 MAX-ACCESS   read-write
		 STATUS   current
		 DESCRIPTION
			"Dead interval (seconds)."
		 ::= { snVsrpVirRtrEntry 8 }

	 snVsrpVirRtrPreemptMode OBJECT-TYPE
		 SYNTAX   INTEGER { disabled(0), enabled(1) }
		 MAX-ACCESS   read-write
		 STATUS   current
		 DESCRIPTION
			"This mode controls whether a higher priority Backup router
			preempts a lower priority Master.  The mode with enabled(1)
			allow preemption and disabled(0) prohibit preemption."
		 DEFVAL { enabled }
		 ::= { snVsrpVirRtrEntry 9 }

	 snVsrpVirRtrState OBJECT-TYPE
		 SYNTAX   INTEGER {
					init(0),
					master(1),
					backup(2)
				  }
		 MAX-ACCESS   read-only
		 STATUS   current
		 DESCRIPTION
			"This object specifies the vsrp Router's interface state as:
			init(0)...initialization state.
			master(1)...master state.
			backup(2)...backup state."
		 ::= { snVsrpVirRtrEntry 10 }

	snVsrpVirRtrIpAddrMask OBJECT-TYPE
		 SYNTAX  OCTET STRING (SIZE(64))
		 MAX-ACCESS   read-write
		 STATUS   current
		 DESCRIPTION
			"The numbers of IP Addresses of this virtual router of this
			interface, this holds good for L3 vsrp."
		 ::= { snVsrpVirRtrEntry 11 }

	 snVsrpVirRtrActivate OBJECT-TYPE
		 SYNTAX   INTEGER {
					disabled(0),
					enabled(1)
				  }
		 MAX-ACCESS   read-write
		 STATUS   current
		 DESCRIPTION
			"This object specifies the vsrp Router's activate command as:
			disabled(0)...deactivate this vsrp Router.
			enabled(1)....activate this vsrp Router."
		 ::= { snVsrpVirRtrEntry 12 }

	 snVsrpVirRtrTrackPortList OBJECT-TYPE
		 SYNTAX  OCTET STRING
		 MAX-ACCESS   read-write
		 STATUS   current
		 DESCRIPTION
			"This object specifies the identity of the physical port and virtual ports
			whose state is to be monitored.  Each port index is
			an ifIndex, if there are consecutive 4 or more ifIndex then
			they will be encoded like below.
			Encoding and decoding scheme is range based:
			Each range prefix with 0000 (2 octets) where 0000 is not valid
			ifIndex. Next 2 octets indicates lower range ifIndex, followed by 2
			octets of higher range ifIndex. Individual(non range) ones will be displayed as it is.
			Ex:
			port list: 0001..0005 0015 0032..0047
			Port list in PDU:  0000 0001 0005 000f 0000 0020 002f.
			If this object is configured
			then the Preference Level of this interface will be adjusted
			dynamically depending on the state of the Track Port.
			The interface's Preference Level is reduced by value of
			Preference Level parameter when the Track Port states first
			changes from UP to DOWN.  When the Track Port next comes up
			the interface's Preference Level is increased by the amount
			specified by the Preference Level.
			The router VSRP physical track port membership."
		 ::= { snVsrpVirRtrEntry 13 }

	 snVsrpVirRtrAdvertiseBackup OBJECT-TYPE
		 SYNTAX   INTEGER { disabled(0), enabled(1) }
		 MAX-ACCESS   read-write
		 STATUS   current
		 DESCRIPTION
			"Set Advertise this backup router to master "
		 DEFVAL { disabled }
		 ::= { snVsrpVirRtrEntry 14 }

	snVsrpVirRtrHoldDownInt OBJECT-TYPE
		 SYNTAX   INTEGER (1..84)
		 MAX-ACCESS   read-write
		 STATUS   current
		 DESCRIPTION
			"VSRP protection mechanism, an extra delay for a switch in
			backup mode to upgrade itself to master mode"
		 DEFVAL { 2 }
		 ::= { snVsrpVirRtrEntry 15 }

	 snVsrpVirRtrInitTtl OBJECT-TYPE
		 SYNTAX   INTEGER (1..255)
		 MAX-ACCESS   read-write
		 STATUS   current
		 DESCRIPTION
			"VSRP:TTL in the hello packet to regulate the distance that a hello packet
			can travel. It prevents the flooding of VSRP hello packets in the network"
		 DEFVAL { 2 }
		 ::= { snVsrpVirRtrEntry 16 }

	 snVsrpVirRtrIncPortList OBJECT-TYPE
		 SYNTAX  OCTET STRING
		 MAX-ACCESS   read-write
		 STATUS   current
		 DESCRIPTION
			"Include all free ports of the VLAN into its control ports"
		 ::= { snVsrpVirRtrEntry 17 }

	 snVsrpVirRtrSave OBJECT-TYPE
		 SYNTAX   INTEGER { disabled(0), enabled(1) }
		 MAX-ACCESS   read-write
		 STATUS   current
		 DESCRIPTION
			"Set VSRP to save current parameters value"
		 DEFVAL { disabled }
		 ::= { snVsrpVirRtrEntry 18 }

	 snVsrpVirRtrBackupInt OBJECT-TYPE
		 SYNTAX   INTEGER (60..3600)
		 MAX-ACCESS   read-write
		 STATUS   current
		 DESCRIPTION
			"Time interval between backup routers hello message advertisements (seconds)."
		 DEFVAL { 60 }
		 ::= { snVsrpVirRtrEntry 19 }

	snVsrpVirRtrRowStatus OBJECT-TYPE
		 SYNTAX   INTEGER {
					invalid(1),
					valid(2),
					delete(3),
					create(4),
					modify(5)
				  }
		 MAX-ACCESS   read-write
		 STATUS   current
		 DESCRIPTION
			"This object is used to create and
			 delete row in the table and control
			 if they are used. The values
			 that can be written are:
			 delete(3)...deletes the row
			 create(4)...creates a new row
			 modify(5)...modifies an existing row

			 VirRtr the row exists, then a SET with
			 value of create(4) returns error
			 'badValue'. Deleted rows go away
			 immediately. The following values
			 can be returned on reads:
			 noSuch(0)...no such row
			 invalid(1)...Setting it to 'invalid' has the effect of
						  rendering it inoperative..
			 valid(2)....the row exists and is valid"
		 ::= { snVsrpVirRtrEntry 20}

	 snVsrpVirRtrRxArpPktDropCnts OBJECT-TYPE
		 SYNTAX   Counter32
		 MAX-ACCESS   read-only
		 STATUS   current
		 DESCRIPTION
			"The received vsrp ARP Packet Drop Counts."
		 ::= { snVsrpVirRtrEntry 21 }

	 snVsrpVirRtrRxIpPktDropCnts OBJECT-TYPE
		 SYNTAX   Counter32
		 MAX-ACCESS   read-only
		 STATUS   current
		 DESCRIPTION
			"The received VSRP IP Packet Drop Counts."
		 ::= { snVsrpVirRtrEntry 22 }

	 snVsrpVirRtrRxPortMismatchCnts OBJECT-TYPE
		 SYNTAX   Counter32
		 MAX-ACCESS   read-only
		 STATUS   current
		 DESCRIPTION
			"The received vsrp Port mismatching Counts."
		 ::= { snVsrpVirRtrEntry 23 }

	 snVsrpVirRtrRxNumOfIpMismatchCnts OBJECT-TYPE
		 SYNTAX   Counter32
		 MAX-ACCESS   read-only
		 STATUS   current
		 DESCRIPTION
			"The received VSRP Number of IP Addresses mismatching Counts."
		 ::= { snVsrpVirRtrEntry 24 }

	 snVsrpVirRtrRxIpMismatchCnts OBJECT-TYPE
		 SYNTAX   Counter32
		 MAX-ACCESS   read-only
		 STATUS   current
		 DESCRIPTION
			"The received vsrp IP Address mismatching Counts."
		 ::= { snVsrpVirRtrEntry 25 }

	 snVsrpVirRtrRxHelloIntMismatchCnts OBJECT-TYPE
		 SYNTAX   Counter32
		 MAX-ACCESS   read-only
		 STATUS   current
		 DESCRIPTION
			"The counts of the virtual router interface with hello interval mismatch counts."
		 ::= { snVsrpVirRtrEntry 26 }

	 snVsrpVirRtrRxPriorityZeroFromMasterCnts OBJECT-TYPE
		 SYNTAX   Counter32
		 MAX-ACCESS   read-only
		 STATUS   current
		 DESCRIPTION
			"The counts of the virtual router interface with Priority zero from the master."
		 ::= { snVsrpVirRtrEntry 27 }

	 snVsrpVirRtrRxHigherPriorityCnts OBJECT-TYPE
		 SYNTAX   Counter32
		 MAX-ACCESS   read-only
		 STATUS   current
		 DESCRIPTION
			"The counts of the virtual router interface with higher Priority."
		 ::= { snVsrpVirRtrEntry 28 }

	 snVsrpVirRtrTransToMasterStateCnts OBJECT-TYPE
		 SYNTAX   Counter32
		 MAX-ACCESS   read-only
		 STATUS   current
		 DESCRIPTION
			"The counts of the virtual router interface transition to master state."
		 ::= { snVsrpVirRtrEntry 29 }

	 snVsrpVirRtrTransToBackupStateCnts OBJECT-TYPE
		 SYNTAX   Counter32
		 MAX-ACCESS   read-only
		 STATUS   current
		 DESCRIPTION
			"The counts of the virtual router interface transition to backup state."
		 ::= { snVsrpVirRtrEntry 30 }

	 snVsrpVirRtrCurrDeadInt OBJECT-TYPE
		 SYNTAX   Integer32
		 MAX-ACCESS   read-only
		 STATUS   current
		 DESCRIPTION
			"Current Dead interval (in 100 milliseconds)."
		 ::= { snVsrpVirRtrEntry 31 }

	snVsrpVirRtrCurHelloInt OBJECT-TYPE
		 SYNTAX   INTEGER (1..84)
		 MAX-ACCESS   read-only
		 STATUS   current
		 DESCRIPTION
			"Set backup router hello interval"
		 ::= { snVsrpVirRtrEntry 32 }

	snVsrpVirRtrCurHoldDownInt OBJECT-TYPE
		 SYNTAX   INTEGER (1..84)
		 MAX-ACCESS   read-only
		 STATUS   current
		 DESCRIPTION
			"VSRP protection mechanism, an extra delay for a switch in
			backup mode to upgrade itself to master mode"
		 ::= { snVsrpVirRtrEntry 33 }

	 snVsrpVirRtrCurInitTtl OBJECT-TYPE
		 SYNTAX   INTEGER (1..255)
		 MAX-ACCESS   read-only
		 STATUS   current
		 DESCRIPTION
			"VSRP:TTL in the hello packet to regulate the distance that a hello packet
			can travel. It prevents the flooding of VSRP hello packets in the network"
		 ::= { snVsrpVirRtrEntry 34 }

	snVsrpVirRtrHelloMacAddress    OBJECT-TYPE
		SYNTAX  MacAddress
		MAX-ACCESS  read-only
		STATUS  current
		DESCRIPTION
			"Hello MAC address."
		::= { snVsrpVirRtrEntry 35 }

	 snVsrpVirRtrMasterIpAddr OBJECT-TYPE
		 SYNTAX       IpAddress
		 MAX-ACCESS       read-only
		 STATUS       current
		 DESCRIPTION
			 "The master router's real/virtual (primary) IP address. This is
			 the IP address listed as the source in vsrp advertisement
			 last received by this virtual router."
		 ::= { snVsrpVirRtrEntry 36 }


END
