
FOUNDRY-SN-VSRP-MIB DEFINITIONS ::= BEGIN
-- Foundry SnRouter Group MIB Release 1.0.0
-- Revision 1 6/5/02
-- Revision 2 08/15/02
-- Copyright 1996-97 Foundry Networks, Inc.
-- All rights reserved.
-- This Foundry Networks SNMP Management Information Base 
-- Specification embodies Foundry Networks' confidential and
-- proprietary intellectual property. Foundry Networks retains all
-- title and ownership in the Specification, including any
-- revisions.

-- This Specification is supplied "AS IS," and Foundry Networks makes
-- no warranty, either express or implied, as to the use,
-- operation, condition, or performance of the Specification.

-- SECTION 1: Top Level Definitions
-- Imports

IMPORTS

	Counter FROM RFC1155-SMI 
	IpAddress, Counter	FROM RFC1155-SMI 

	snVsrp	FROM FOUNDRY-SN-SWITCH-GROUP-MIB;
		
	MacAddress ::=
	      OCTET STRING (SIZE(6))
	  -- 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.

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)
		} 
	ACCESS  read-write
	STATUS  mandatory
	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) }
	ACCESS	read-write
	STATUS	mandatory
	DESCRIPTION
		"Indicates whether the SNMP agent process is
		permitted to generate VSRP interface state change
		traps."
    DEFVAL { enabled }
	::= { snVsrpGlobal 2 }

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

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

snVsrpClearVrrpStat OBJECT-TYPE
	SYNTAX	INTEGER { normal(0), clear(1) }
	ACCESS	read-write
	STATUS	mandatory
	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
    ACCESS   not-accessible
    STATUS   mandatory
    DESCRIPTION
       "The VSRP Interface Table describes the interfaces from
        the viewpoint of VSRP."
    ::= { snVsrpIfIntf 1 }

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

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

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

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

    snVsrpIfAuthPassword OBJECT-TYPE
		 SYNTAX	  OCTET STRING (SIZE (0..7))
         ACCESS   read-write
         STATUS   mandatory
         DESCRIPTION
            "The simple text password is allowed if only if 
            the snVsrpIfAuthType type is simpleTextPasswd."
         ::= { 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
    ACCESS   not-accessible
    STATUS   mandatory
    DESCRIPTION
       "The vsrp virtual router Entry describes one virtual router from
        the viewpoint of vsrp."
    ::= { snVsrpVirRtr 1 }

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

     SnVsrpVirRtrEntry ::=
         SEQUENCE {
              snVsrpVirRtrVlanId
 		 		INTEGER,
             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 
				 Counter,
			 snVsrpVirRtrRxIpPktDropCnts 
				 Counter,
			 snVsrpVirRtrRxPortMismatchCnts 
				 Counter,
			 snVsrpVirRtrRxNumOfIpMismatchCnts 
				 Counter,				 
			 snVsrpVirRtrRxIpMismatchCnts 
				 Counter,
			 snVsrpVirRtrRxHelloIntMismatchCnts 
				 Counter,
			 snVsrpVirRtrRxPriorityZeroFromMasterCnts 
				 Counter,
			 snVsrpVirRtrRxHigherPriorityCnts 
				 Counter,
			 snVsrpVirRtrTransToMasterStateCnts 
				 Counter,
			 snVsrpVirRtrTransToBackupStateCnts 
				 Counter,
			 snVsrpVirRtrCurrDeadInt 
				 INTEGER,
			 snVsrpVirRtrCurHelloInt 
				 INTEGER,
			 snVsrpVirRtrCurHoldDownInt 
				 INTEGER,
			 snVsrpVirRtrCurInitTtl
				 INTEGER,
			snVsrpVirRtrHelloMacAddress
				MacAddress,
		    snVsrpVirRtrMasterIpAddr
				 IpAddress
       }
       
     snVsrpVirRtrVlanId OBJECT-TYPE
 		 SYNTAX  INTEGER
 		 ACCESS  read-only
 		 STATUS  mandatory
         DESCRIPTION
            "Vlan index."
         ::= { snVsrpVirRtrEntry 1 }
         
    snVsrpVirRtrId OBJECT-TYPE
         SYNTAX   INTEGER (1..255)
         ACCESS   read-only
         STATUS   mandatory
         DESCRIPTION
            "One of the virtual router ID of this vsrp interface."
         ::= { snVsrpVirRtrEntry 2 }

    snVsrpVirRtrOwnership OBJECT-TYPE
	     SYNTAX   INTEGER {
					incomplete(0),
					owner(1),
					backup(2)
					}
         ACCESS   read-write
         STATUS   mandatory
         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..254)
         ACCESS   read-write
         STATUS   mandatory
         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)."
         DEFVAL { 100 }
         ::= { snVsrpVirRtrEntry 4 }

     snVsrpVirRtrTrackPriority OBJECT-TYPE
         SYNTAX   INTEGER (1..254)
         ACCESS   read-write
         STATUS   mandatory
         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)
         ACCESS   read-only
         STATUS   mandatory
         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)
         ACCESS   read-write
         STATUS   mandatory
         DESCRIPTION
            "Time interval between advertisements (seconds)."
         DEFVAL { 1 }
         ::= { snVsrpVirRtrEntry 7 }

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

     snVsrpVirRtrPreemptMode OBJECT-TYPE
         SYNTAX   INTEGER { disabled(0), enabled(1) }
         ACCESS   read-write
         STATUS   mandatory
         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)
				  }
         ACCESS   read-only
         STATUS   mandatory
         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))
         ACCESS   read-write
         STATUS   mandatory
         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)
				  }
         ACCESS   read-write
         STATUS   mandatory
         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
         ACCESS   read-write
         STATUS   mandatory
         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) }
         ACCESS   read-write
         STATUS   mandatory
         DESCRIPTION
            "Set Advertise this backup router to master "
         DEFVAL { disabled }
         ::= { snVsrpVirRtrEntry 14 }			  
         
	snVsrpVirRtrHoldDownInt OBJECT-TYPE
         SYNTAX   INTEGER (1..84)
         ACCESS   read-write
         STATUS   mandatory
         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)
         ACCESS   read-write
         STATUS   mandatory
         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
         ACCESS   read-write
         STATUS   mandatory
         DESCRIPTION
            "Include all free ports of the VLAN into its control ports"
         ::= { snVsrpVirRtrEntry 17 }

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

     snVsrpVirRtrBackupInt OBJECT-TYPE
         SYNTAX   INTEGER (60..3600)
         ACCESS   read-write
         STATUS   mandatory
         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)
				  }
		 ACCESS   read-write
	     STATUS   mandatory
		 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   Counter
         ACCESS   read-only
         STATUS   mandatory
         DESCRIPTION
            "The received vsrp ARP Packet Drop Counts."
         ::= { snVsrpVirRtrEntry 21 }

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

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

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

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

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

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

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

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

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

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

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

	snVsrpVirRtrCurHoldDownInt OBJECT-TYPE
         SYNTAX   INTEGER (1..84)
         ACCESS   read-only
         STATUS   mandatory
         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)
         ACCESS   read-only
         STATUS   mandatory
         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
		ACCESS  read-only
		STATUS  mandatory
		DESCRIPTION
			"Hello MAC address."
		::= { snVsrpVirRtrEntry 35 }

     snVsrpVirRtrMasterIpAddr OBJECT-TYPE
         SYNTAX       IpAddress
         ACCESS       read-only
         STATUS       mandatory
         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		
