-- Copyright (C) 2008-2014 Super Micro Computer Inc. All Rights Reserved

--$Id: fsrst.mib,v 1.22 2012/10/31 09:38:45 siva Exp $
SUPERMICRO-RSTP-MIB DEFINITIONS ::= BEGIN

-- -------------------------------------------------
-- Proprietary MIB for Rapid Spanning Tree Protocol
-- -------------------------------------------------

IMPORTS

   OBJECT-TYPE, MODULE-IDENTITY, Unsigned32, Integer32,Counter32,
    enterprises,NOTIFICATION-TYPE    FROM SNMPv2-SMI
    TEXTUAL-CONVENTION, TruthValue,RowStatus FROM SNMPv2-TC
    dot1dStpVersion FROM RSTP-MIB 
    dot1dBaseBridgeAddress,BridgeId,dot1dStpDesignatedRoot,
    dot1dStpPortState FROM BRIDGE-MIB;


futureRstMIB MODULE-IDENTITY
    LAST-UPDATED "201209050000Z"
    ORGANIZATION "Super Micro Computer Inc."
    CONTACT-INFO "support@Supermicro.com"
    DESCRIPTION "MIB for Rapid Spanning Tree Algorithm & Protocol" 
    REVISION "201209050000Z"
    DESCRIPTION "MIB for Rapid Spanning Tree Algorithm & Protocol" 
::= { enterprises supermicro-computer-inc(10876) super-switch(101) basic(1) 79 }


EnabledStatus ::= TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION 
        "A simple status value for the object." 
    SYNTAX      INTEGER { enabled(1), disabled(2) } 
      
     
dot1wFutureRst     OBJECT IDENTIFIER   ::= { futureRstMIB 1 }
dot1wFsRstTrapsControl OBJECT IDENTIFIER ::= { futureRstMIB 2 }
dot1wFutureRstTraps OBJECT IDENTIFIER ::= { futureRstMIB 3 }

-- dot1wFutureRst group 

-- SCALAR BEGIN 

fsRstSystemControl OBJECT-TYPE
   SYNTAX      INTEGER { start(1), shutdown(2) }
   MAX-ACCESS  read-write
   STATUS      current
   DESCRIPTION
      "The administrative system control status requested by management for
      the RSTP feature. The value 'start'(1) indicates that all resources 
      required by RSTP should be allocated and RSTP should be supported 
      in the device on all ports. The value shutdown(2) indicates that RSTP 
      should be shutdown in the device on all ports and all allocated memory 
      must be released."
   ::= { dot1wFutureRst 1 }

fsRstModuleStatus OBJECT-TYPE
   SYNTAX      EnabledStatus
   MAX-ACCESS  read-write
   STATUS      current
   DESCRIPTION
      "The administrative module status requested by management for the RSTP
      Module. This enables or disables RSTP in the system. A value of 'enabled'
      (1) indicates that RSTP must be enabled in the device on all the ports.
      A value of 'disabled'(2) indicates that RSTP must be disabled in the
      device on all the ports. This object can be set only after the object
      fsRstSystemControl has been set."
   ::= {dot1wFutureRst 2 }



-- ============================================================================

-- The bit positions within a byte as used in Trace and Debug are as indicated
-- below :

--                -----------------------------
--                | 7 | ..................| 0 |
--                -----------------------------

--The bits are numbered 0 to 7 from right to left."               

-- ============================================================================


fsRstTraceOption OBJECT-TYPE
   SYNTAX      Integer32 (0..255)
   MAX-ACCESS  read-write
   STATUS      current
   DESCRIPTION
      "This object is used to enable Trace Statements in the RSTP
      Module.

      A FOUR BYTE integer is used for enabling the level of tracing. 
      Each BIT in the four byte integer, represents a particular 
      level of Trace. 

      The mapping between the bit positions & the level of trace is 
      as follows: 
      0 - Init and Shutdown Traces
      1 - Management Traces
      2 - Data Path Traces
      3 - Control Plane Traces
      4 - Packet Dump Traces
      5 - Traces related to All Resources except Buffers
      6 - All Failure Traces
      7 - Buffer Traces

      The remaining bits are unused. Combination of trace levels are 
      also allowed.

      For example if the bits 0 and 1 are set, then the Trace
      statements related to Init-Shutdown and management 
      will be printed.

      The user has to enter the corresponding INTEGER VALUE for the
      bits set. For example if bits 0 and 1 are to be set then user has
      to give the value for this object as 3.
      
      Setting the Trace Option to any value will cause the Debug Option
      to be set to 0 (i.e.) the Trace Option and Debug Option are mutually
      exclusive."
      DEFVAL  { 0 }
   ::= { dot1wFutureRst 3 } 

fsRstDebugOption OBJECT-TYPE
   SYNTAX      Integer32 (0..524287)
   MAX-ACCESS  read-write
   STATUS      current
   DESCRIPTION
      "This object is used to enable Debug Statements in the RSTP
      Module.

      A FOUR BYTE integer is used for enabling the level of debugging. 
      Each BIT in the four byte integer, represents a particular 
      level of Debug. 

      The mapping between the bit positions & the level of debug is 
      as follows: 
      0 - Init and Shutdown Debug statements
      1 - Management Debug statements
      2 - Memory related Debug statements
      3 - BPDU related Debug statements
      4 - Event Handling Debug statements
      5 - Timer Module Debug statements
      6 - Port Information SEM Debug statements
      7 - Port Receive SEM Debug statements
      8 - Role Selection SEM Debug statements
      9 - Role Transition SEM Debug statements
     10 - State Transition SEM Debug statements
     11 - Protocol Migration SEM Debug statements
     12 - Topology Change SEM Debug statements
     13 - Port Transmit SEM Debug statements
     14 - Bridge Detection SEM Debug statements
     15 - All Failure Debug statements
     16 - Redundancy code flow Debug statements
     17 - State Machine variable changes Debug statements
     18 - Port Receive Pseudo Information SEM Debug statements

      The remaining bits are unused. Combination of debug levels are 
      also allowed.

      For example if the bits 0 and 1 are set, then the Debug
      statements related to Init-Shutdown and management 
      will be printed.

      The user has to enter the corresponding INTEGER VALUE for the
      bits set. For example if bits 0 and 1 are to be set then user has
      to give the value for this object as 3.
      
      Setting the Debug Option to any value will cause the Trace Option
      to be set to 0 (i.e.) the Trace Option and Debug Option are mutually
      exclusive."
      DEFVAL  { 0 }
   ::= { dot1wFutureRst 4 } 

fsRstRstpUpCount OBJECT-TYPE
   SYNTAX      Counter32
   MAX-ACCESS  read-only
   STATUS      current
   DESCRIPTION
      "The number of times RSTP Module has been enabled."
   ::= { dot1wFutureRst 5 }

fsRstRstpDownCount OBJECT-TYPE
   SYNTAX      Counter32
   MAX-ACCESS  read-only
   STATUS      current
   DESCRIPTION
      "The number of times RSTP Module has been disabled."
   ::= { dot1wFutureRst 6 }

fsRstBufferFailureCount OBJECT-TYPE
   SYNTAX      Counter32
   MAX-ACCESS  read-only
   STATUS      current
   DESCRIPTION
      "The number of times buffer overflows/failures have occurred.
       A Trap is generated on the occurrence of this event."
   ::= { dot1wFutureRst 7 }

fsRstMemAllocFailureCount OBJECT-TYPE
   SYNTAX      Counter32
   MAX-ACCESS  read-only
   STATUS      current
   DESCRIPTION
      "The number of times memory allocation failures have occurred.
       A Trap is generated on the occurrence of this event."
   ::= { dot1wFutureRst 8 }

fsRstNewRootIdCount OBJECT-TYPE
   SYNTAX      Counter32
   MAX-ACCESS  read-only
   STATUS      current
   DESCRIPTION
      "The number of times this Bridge has detected a new Root in the topology.
       A Trap is generated on the occurrence of this event."
   ::= { dot1wFutureRst 9 }

fsRstPortRoleSelSmState OBJECT-TYPE
   SYNTAX      INTEGER {
                  initbridge (0),
                  roleselection (1)
               }
   MAX-ACCESS  read-only
   STATUS      current
   DESCRIPTION 
      "This indicates the current state of the Port Role Selection State Machine.
   
      This object will hold the value 'initbridge' when the Port Role Selection
      state machine is in the INIT_BRIDGE state and the value of 'roleselection'
      when the state machine is in the ROLE_SELECTION state."
   ::= { dot1wFutureRst 10 }

fsRstOldDesignatedRoot OBJECT-TYPE
       SYNTAX  BridgeId
       MAX-ACCESS  read-only
       STATUS  current
       DESCRIPTION
               "The bridge identifier of the old root of the spanning
               tree as determined by the Spanning Tree Protocol
               as executed by this node. "
       ::= { dot1wFutureRst 11 }


-- SCALAR END


-- -------------------------------------
-- RSTP Port Extention Group 
-- -------------------------------------

fsRstPortExtTable OBJECT-TYPE
   SYNTAX SEQUENCE OF FsRstPortExtEntry
   MAX-ACCESS not-accessible
   STATUS     current
   DESCRIPTION
      "This is a table that is an extension to the dot1dStpExtPortTable.
      This contains object(s) that are Port-based."
   ::= { dot1wFutureRst 12 }

fsRstPortExtEntry OBJECT-TYPE
   SYNTAX      FsRstPortExtEntry
   MAX-ACCESS  not-accessible
   STATUS      current
   DESCRIPTION
      "Each entry in this table is for each port present in the system.
      This table is indexed by the fsRstPort."
   INDEX { fsRstPort }
   ::= { fsRstPortExtTable 1 }
      
FsRstPortExtEntry ::=
   SEQUENCE {
      fsRstPort
         Integer32,
      fsRstPortRole
         INTEGER,
      fsRstPortOperVersion
         INTEGER,
      fsRstPortInfoSmState
         INTEGER,
      fsRstPortMigSmState
         INTEGER,
      fsRstPortRoleTransSmState
         INTEGER,
      fsRstPortStateTransSmState
         INTEGER,
      fsRstPortTopoChSmState
         INTEGER,
      fsRstPortTxSmState
         INTEGER,
      fsRstPortRxRstBpduCount
         Counter32,
      fsRstPortRxConfigBpduCount
         Counter32,
      fsRstPortRxTcnBpduCount
         Counter32,
      fsRstPortTxRstBpduCount
         Counter32,
      fsRstPortTxConfigBpduCount
         Counter32,
      fsRstPortTxTcnBpduCount
         Counter32,
      fsRstPortInvalidRstBpduRxCount
         Counter32,
      fsRstPortInvalidConfigBpduRxCount
         Counter32,
      fsRstPortInvalidTcnBpduRxCount
         Counter32,
      fsRstPortProtocolMigrationCount
          Counter32,
      fsRstPortEffectivePortState
          TruthValue,
      fsRstPortAutoEdge
          TruthValue,
      fsRstPortRestrictedRole 
          TruthValue, 
      fsRstPortRestrictedTCN 
          TruthValue,
      fsRstPortEnableBPDURx
          TruthValue,
      fsRstPortEnableBPDUTx
          TruthValue,
      fsRstPortPseudoRootId
          BridgeId,
      fsRstPortIsL2Gp
          TruthValue,
      fsRstPortLoopGuard
          TruthValue,
      fsRstPortRcvdEvent
          INTEGER,
     fsRstPortRcvdEventSubType
          Integer32,
      fsRstPortRcvdEventTimeStamp
          Unsigned32,
      fsRstPortStateChangeTimeStamp
          Unsigned32,
      fsRstPortRowStatus
          RowStatus,
      fsRstPortBpduGuard
         Integer32
   }

fsRstPort OBJECT-TYPE
   SYNTAX      Integer32 (1..4096)
   MAX-ACCESS  not-accessible
   STATUS      current
   DESCRIPTION
      "A unique value, greater than zero, indicating the Port number."
   ::= { fsRstPortExtEntry 1 }

fsRstPortRole OBJECT-TYPE
   SYNTAX      INTEGER {
                  disabledPort(0),
                  alternatePort(1),
                  backupPort(2),
                  rootPort(3),
                  designatedPort(4)
               }
   MAX-ACCESS  read-only
   STATUS      current
   DESCRIPTION
      "This indicates the current Port Role assumed by this Port."
   ::= { fsRstPortExtEntry 2 }


fsRstPortOperVersion OBJECT-TYPE
   SYNTAX      INTEGER {
                  stpCompatible(0),
                  rstp(2)
               }
   MAX-ACCESS  read-only
   STATUS      current
   DESCRIPTION
      "This indicates whether the Port is operationally in the Rstp
      mode or the Stp-compatible mode i.e., whether the Port is 
      transmitting RST BPDUs or Config/TCN BPDUs."
   ::= { fsRstPortExtEntry 3 }

fsRstPortInfoSmState OBJECT-TYPE
   SYNTAX      INTEGER {
                  disabled (0),
                  aged (1),
                  update (2),
                  superior (3),
                  repeat (4),
                  notdesignated (5),
                  present (6),
                  receive (7),
                  inferiordesignated (8)
               }
   MAX-ACCESS  read-only
   STATUS      current
   DESCRIPTION
      "This indicates the current state of the Port Information state machine.
      
      This object will hold the value 'disabled' when the Port Information state
      machine is in the DISABLED state, the value 'aged' when the state machine 
      is in the AGED state, the value 'update' when the state machine is in the
      UPDATE state, the value 'superior' when the state machine is in the
      SUPERIOR state, the value 'repeat' when the state machine is in the REPEAT
      state, the value 'notdesignated' when the state machine is in the 
      NOT_DESIGNATED state, the value 'present' when the state machine is in 
      the CURRENT state and the value 'receive' when the state machine is in 
      the RECEIVE state and the value 'inferiordesignated' when the state 
      machine is in the INFERIOR_DESIGNATED state."
   ::= { fsRstPortExtEntry 4 }

fsRstPortMigSmState OBJECT-TYPE
   SYNTAX      INTEGER {
                  checkingrstp (0),
                  selectingstp (1),
                  sensing (2)
               }
   MAX-ACCESS  read-only
   STATUS      current
   DESCRIPTION
      "This indicates the current state of the Port Protocol Migration state 
      machine.
      
      This object will hold the value 'checkingrstp' when the Protocol 
      Migration state machine is in the CHECKING_RSTP state, the value 
      'selectingstp' when the state machine is in the SELECTING_STP state, the 
      value 'sensing' when the state machine is in the SENSING state."
   ::= { fsRstPortExtEntry 5 }

fsRstPortRoleTransSmState OBJECT-TYPE
   SYNTAX      INTEGER {
                  init (0),
                  disableport (1),
                  disabledport (2),
                  rootport (3),
                  designatedport (4),
                  backupport (5),
                  rootproposed (6),
                  rootagreed(7),
                  reroot (8),
                  rootforward (9),
                  rootlearn (10),
                  rerooted (11),
                  designatedpropose (12),
                  designatedsynced (13),
                  designatedretired (14),
                  designatedforward (15),
                  designatedlearn (16),
                  designatedlisten (17)
               }
   MAX-ACCESS  read-only
   STATUS      current
   DESCRIPTION
      "This indicates the current state of the Port Role Transition state machine.
      
      This object will hold the value 'init' when the Port Role Transition state
      machine is in the INIT state, the value 'disableport' when the state machine 
      is in the DISABLE_PORT state, the value 'disabledport' when the state machine
      is in the DISABLED_PORT state, the value 'rootport' when the state machine
      is in the ROOT_PORT state, the value 'desgport' when the state machine is in
      the DESIGNATED_PORT state, the value 'backupport' when the state machine is in
      BACKUP_PORT state, the value 'rootproposed' when the state machine is in the
      ROOT_PROPOSED state, the value 'rootagreed' when the state machine is in the
      ROOT_AGREED state, the value 'reroot' when the state machine is in the REROOT
      state, the value 'rootforward' when the state machine is in the ROOT_FORWARD
      state, the value 'rootlearn' when the state machine is in the ROOT_LEARN
      state, the value 'rerooted' when the state machine is in the REROOTED state,
      the value 'designatedpropose' when the state machine is in the 
      DESIGNATED_PROPOSE state, the value 'designatedsynced' when the state machine
      is in the DESIGNATED_SYNCED state, the value 'designatedretired' when the 
      state machine is in the DESIGNATED_RETIRED state, the value 'designatedforward'
      when the state machine is in the DESIGNATED_FORWARD state, the value
      'designatedlearn' when the state machine is in the DESIGNATED_LEARN state and
      the value 'designatedlisten' when the state machine is in the DESIGNATED_LISTEN
      state."
   ::= { fsRstPortExtEntry 6 }

fsRstPortStateTransSmState OBJECT-TYPE
   SYNTAX      INTEGER {
                  discarding (0),
                  learning (1),
                  forwarding (2)
               }
   MAX-ACCESS  read-only
   STATUS      current
   DESCRIPTION
      "This indicates the current state of the Port State Transition state machine.
      
      This object will hold the value 'discarding' when the Port State Transition
      state machine is in the DISCARDING state, the value 'learning' when the state
      machine is in the LEARNING state and the value 'forwarding' when the state
      machine is in the FORWARDING state." 
   ::= { fsRstPortExtEntry 7 }

fsRstPortTopoChSmState OBJECT-TYPE
   SYNTAX      INTEGER {
                  inactive (0),
                  learning (1),
                  detected (2),
                  active (3),
                  notifiedtcn (4),
                  notifiedtc (5),
                  propagating (6),
                  acknowledged (7)
               }
   MAX-ACCESS  read-only
   STATUS      current
   DESCRIPTION
      "This indicates the current state of the Topology Change state machine.
      
      This object will hold the value 'inactive' when the Topology Change state machine
      is in the INACTIVE state, the value 'learning' when the state machine is in the
      LEARNING state, the value 'active' when the state machine is in the ACTIVE
      state, the value 'detected' when the state machine is in the DETECTED state,
      the value 'notifiedtcn' when the state machine is in the NOTIFIED_TCN state,
      the value 'notifiedtc' when the state machine is in the NOTIFIED_TC state,
      the value 'propagating' state when the state machine is in the PROPAGATING
      state and the value 'acknowledged' when the state machine is in the 
      ACKNOWLEDGED state." 
   ::= { fsRstPortExtEntry 8 }

fsRstPortTxSmState OBJECT-TYPE
   SYNTAX      INTEGER {
                  transmitinit (0),
                  transmitperiodic (1),
                  transmitconfig (2),
                  transmittcn (3),
                  transmitrstp (4),
                  idle (5)
               }
   MAX-ACCESS  read-only
   STATUS      current
   DESCRIPTION
      "This indicates the current state of the Port Transmit state machine.
      This object will hold the value 'transmitinit' when the Port Transmit state
      machine is in the TRANSMIT_INIT state, the value 'transmitperiodic' when the
      state machine is in the TRANSMIT_PERIODIC state, the value 'transmitconfig'
      when the state machine is in the TRANSMIT_CONFIG state, the value 'transmittcn',
      when the state machine is in the TRANSMIT_TCN state, the value 'transmitrstp',
      when the state machine is in the TRANSMIT_RSTP state and the value 'idle' when
      the state machine is in the IDLE state."
   ::= { fsRstPortExtEntry 9 }


fsRstPortRxRstBpduCount OBJECT-TYPE
   SYNTAX      Counter32
   MAX-ACCESS  read-only
   STATUS      current
   DESCRIPTION
      "The number of RST BPDUs that have been received on this Port."
   ::= { fsRstPortExtEntry 10 }

fsRstPortRxConfigBpduCount OBJECT-TYPE
   SYNTAX      Counter32
   MAX-ACCESS  read-only
   STATUS      current
   DESCRIPTION
      "The number of Config BPDUs that have been received on this Port."
   ::= { fsRstPortExtEntry 11 }

fsRstPortRxTcnBpduCount OBJECT-TYPE
   SYNTAX      Counter32
   MAX-ACCESS  read-only
   STATUS      current
   DESCRIPTION
      "The number of TCN BPDUs that have been received on this Port."
   ::= { fsRstPortExtEntry 12 }

fsRstPortTxRstBpduCount OBJECT-TYPE
   SYNTAX      Counter32
   MAX-ACCESS  read-only
   STATUS      current
   DESCRIPTION
      "The number of RST BPDUs that have been transmitted by this Port."
   ::= { fsRstPortExtEntry 13 }

fsRstPortTxConfigBpduCount OBJECT-TYPE
   SYNTAX      Counter32
   MAX-ACCESS  read-only
   STATUS      current
   DESCRIPTION
      "The number of Config BPDUs that have been transmitted by this Port."
   ::= { fsRstPortExtEntry 14 }

fsRstPortTxTcnBpduCount OBJECT-TYPE
   SYNTAX      Counter32
   MAX-ACCESS  read-only
   STATUS      current
   DESCRIPTION
      "The number of TCN BPDUs that have been transmitted by this Port."
   ::= { fsRstPortExtEntry 15 }

fsRstPortInvalidRstBpduRxCount OBJECT-TYPE
   SYNTAX      Counter32
   MAX-ACCESS  read-only
   STATUS      current
   DESCRIPTION
      "The number of invalid RSTP BPDUs that have been received on this Port.
       A Trap is generated on the occurrence of this event."
   ::= { fsRstPortExtEntry 16 }

fsRstPortInvalidConfigBpduRxCount OBJECT-TYPE
   SYNTAX      Counter32
   MAX-ACCESS  read-only
   STATUS      current
   DESCRIPTION
      "The number of invalid Configuration BPDUs that have been received on 
      this Port. A Trap is generated on the occurrence of this event."
   ::= { fsRstPortExtEntry 17 }

fsRstPortInvalidTcnBpduRxCount OBJECT-TYPE
   SYNTAX      Counter32
   MAX-ACCESS  read-only
   STATUS      current
   DESCRIPTION
      "The number of invalid TCN BPDUs that have been received on this Port.
       A Trap is generated on the occurrence of this event."
   ::= { fsRstPortExtEntry 18 }

fsRstPortProtocolMigrationCount OBJECT-TYPE
   SYNTAX      Counter32
   MAX-ACCESS  read-only
   STATUS      current
   DESCRIPTION
      "The number of times this Port has migrated from one STP protocol 
       version to another. The relevant protocols are STP-COMPATIBLE and RSTP.
       A Trap is generated on the occurrence of this event."
   ::= { fsRstPortExtEntry 19 }

fsRstPortEffectivePortState OBJECT-TYPE
      SYNTAX      TruthValue
      MAX-ACCESS  read-only            
      STATUS      current
      DESCRIPTION
          "The effective Operational state of the port. This object will be
           set to TRUE only when the port is operationally up in the interface
           manager and the force Port State for this port and specified port
           state is enabled. Otherwise this object is set to FALSE."

      ::= { fsRstPortExtEntry 20 }

fsRstPortAutoEdge OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        " This parameter when TRUE(1) indicates that detection of a port 
         as Edge Port happens automatically and FALSE(2) 
         indicates that this feature is disabled."
    
    ::= { fsRstPortExtEntry 21 }

fsRstPortRestrictedRole OBJECT-TYPE 
    SYNTAX      TruthValue 
    MAX-ACCESS  read-write 
    STATUS      current 
    DESCRIPTION 
        "A Boolean value set by management. If TRUE causes the Port not 
        to be selected as Root Port for the CIST or any MSTI, even it has 
        the best spanning tree priority vector. Such a Port will be selected 
        as an Alternate Port after the Root Port has been selected. This 
        parameter should be FALSE by default. If set it can cause lack of 
        spanning tree connectivity. It is set by a network administrator to 
        prevent bridges external to a core region of the network influencing 
        the spanning tree active topology, possibly because those bridges are 
        not under the full control of the administrator. 
                                                                                        This administrator configuration is also known as 'Root Guard'." 
        
        ::= {fsRstPortExtEntry 22} 

fsRstPortRestrictedTCN OBJECT-TYPE 
    SYNTAX      TruthValue 
    MAX-ACCESS  read-write 
    STATUS      current 
    DESCRIPTION 
        "A Boolean value set by management. If TRUE causes the Port not 
        to propagate received topology change notifications and topology 
        changes to other Ports. This parameter should be FALSE by default. 
        If set it can cause temporary loss of connectivity after changes in 
        a spanning trees active topology as a result of persistent 
        incorrectly learnt station location information. It is set by a 
        network administrator to prevent bridges external to a core region of 
        the network causing address flushing in that region, possibly because 
        those bridges are not under the full control of the administrator or 
        MAC_Operational for the attached LANs transitions frequently." 

    ::= {fsRstPortExtEntry 23} 

fsRstPortEnableBPDURx OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "A Boolean value set by management. If FALSE, the BPDUs received on
        the port are ignored."
    DEFVAL { true }
    ::= { fsRstPortExtEntry 24 }

fsRstPortEnableBPDUTx OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "A Boolean value set by management. If FALSE, no BPDUs are transmitted
        by this port. This variable should be FALSE before configuring port
        as a Layer Two Gateway Port."
    DEFVAL { true }
    ::= { fsRstPortExtEntry 25 }

fsRstPortPseudoRootId OBJECT-TYPE
    SYNTAX      BridgeId
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "In RSTP Bridge, the fsRstPortPseudoRootId parameter value.
        By default, it is set to the BridgeIdentifier.
        The pseudoRootId is used by Layer Two Gateway Port as the RootId 
        in generated BPDUs."
    ::= { fsRstPortExtEntry 26 }

fsRstPortIsL2Gp OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "A Boolean value set by management. If TRUE, then port is functioning
        as a Layer Two Gateway Port. The fsRstPortEnableBPDUTx should be
        FALSE to set fsRstPortIsL2Gp to TRUE."
    DEFVAL { false }
    ::= { fsRstPortExtEntry 27 }

fsRstPortLoopGuard OBJECT-TYPE
    SYNTAX      TruthValue
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "A Boolean value set by management. If TRUE, then it will not age out
        the information even if the peer does not send information. If the port
        continues to receive information through BPDUs the operation
        on this port will be normal. This will be useful when the neighbor
        bridge is faulty, i.e. it cannot send BPDUs but continues to send data
        traffic."

    DEFVAL { false }
    ::= { fsRstPortExtEntry 28 }

fsRstPortRcvdEvent OBJECT-TYPE
    SYNTAX      INTEGER    {
        configurationEvent (1),
        bpduEvent (2),
        timerExpiryEvent (3)
    }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object gives information about the recently received event in the system.
        Currently we support only ConfigurationEvent."
    ::= { fsRstPortExtEntry 29 }

fsRstPortRcvdEventSubType OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object gives information about sub-type of the event received in the system
        recently. The value of this object depends on the value of the object fsRstPortRcvdEvent. 
        For ConfigurationEvent, the sub-types supported are PortUp and PortDown."
    ::= { fsRstPortExtEntry 30 }

fsRstPortRcvdEventTimeStamp OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object gives the time stamp (in milli seconds) at which the event specified by the object
        fsRstPortRcvdEvent was received in the system. This object was introduced to measure the
        convergence time in RSTP module."
    ::= { fsRstPortExtEntry 31 }


fsRstPortStateChangeTimeStamp OBJECT-TYPE
    SYNTAX      Unsigned32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object gives the time stamp (in milli seconds) when the port state is 
         updated to forwarding path for any instance on this port. This object is introduced
         to measure the convergence time in RSTP module."
    ::= { fsRstPortExtEntry 32 }

fsRstPortRowStatus OBJECT-TYPE
   SYNTAX      RowStatus
   MAX-ACCESS  read-create
   STATUS      current
   DESCRIPTION
      "This object is used to create or delete interfaces at RSTP module 
       level.Ports can be created at RSTP module level only for ports that
       have been created in Interface manager.This is applicable only when 
       Automatic Port Create Feature is Disabled." 
   ::= { fsRstPortExtEntry 33 }

fsRstPortBpduGuard OBJECT-TYPE
      SYNTAX      INTEGER    {
                    none (0),
                    enable (1),
                    disable (2)
                    }
      MAX-ACCESS  read-write
      STATUS      current
      DESCRIPTION
          "This configures the BPDU guard feature on this port and has higher priority over Global BPDU Guard.
       Enable - prevents temporary loops and applicable to ports and 
       moves the port to disabled discarding state when BPDU is received on this port.
       Disable - Disables the Bpdu Guard feature and the port state will be maintained till it is manually made up.
       None - removes the BPDU Guard functionality on this port so that when Global BPDU guard
              configuration will take effect if this port is edge port"           
    DEFVAL { 0 }
   ::= { fsRstPortExtEntry 34 } 


-- END OF TABLE 
-- SCALAR ADDED

fsRstDynamicPathcostCalculation OBJECT-TYPE
      SYNTAX      TruthValue               
      MAX-ACCESS  read-write           
      STATUS      current
      DESCRIPTION
         "This object is used to determine whether dynamic pathcost
          calculation is allowed or not.The value is determined by 
          management. If set to true, pathcost is calculated dynamically 
          from port speed(when the operational status of the port changes 
          from down to up), otherwise the link speed at the time of port 
          creation is used for calculating the path cost. In both cases
          if the user has configured a pathcost for the port that will be 
          used. By default dynamic pathcost calculation is set to false."
      DEFVAL { false }
      ::= { dot1wFutureRst 13 }

fsRstCalcPortPathCostOnSpeedChg OBJECT-TYPE
      SYNTAX      TruthValue               
      MAX-ACCESS  read-write           
      STATUS      current
      DESCRIPTION
         "This object is used to determine whether dynamic pathcost
          calculation is done for a port for which Port Speed is changing
          dynamically. This is mainly intended for Link Aggregated ports where
          depening on Active ports speed of Link aggregated port changes.
          By default dynamic pathcost calculation on change in speed is set to
          false."
      DEFVAL { false }
      ::= { dot1wFutureRst 14 }

fsRstRcvdEvent OBJECT-TYPE
    SYNTAX      INTEGER{
        configurationEvent (1),
        bpduEvent (2),
        timerExpiryEvent (3)
    }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object gives information about the recently received event in the system.
        Currently we support only ConfigurationEvent."
    ::= { dot1wFutureRst 15 }


fsRstRcvdEventSubType OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object gives information about sub-type of the event received in the system
        recently. The value of this object depends on the value of the object fsRstRcvdEvent. 
        For ConfigurationEvent, the sub-types supported are PortUp and PortDown."
    ::= { dot1wFutureRst 16 }


fsRstRcvdEventTimeStamp OBJECT-TYPE
   SYNTAX      Unsigned32
   MAX-ACCESS  read-only
   STATUS      current
   DESCRIPTION
      "The time stamp (in milli seconds) at which event specified by the object fsRstRcvdEvent
      was received in the system at STP module for the last time. This object is introduced to measure the 
      convergence time in RSTP module."
   ::= { dot1wFutureRst 17 }


fsRstRcvdPortStateChangeTimeStamp OBJECT-TYPE
   SYNTAX      Unsigned32
   MAX-ACCESS  read-only
   STATUS      current
   DESCRIPTION
      "The time stamp (in milli seconds) at which port state has been changed in  
       the system. This object is introduced to measure the convergence time in RSTP module."
   ::= { dot1wFutureRst 18 }

fsRstBpduGuard OBJECT-TYPE
      SYNTAX      INTEGER    {
                    enable (1),
                    disable (2)
                    }
      MAX-ACCESS  read-write
      STATUS      current
      DESCRIPTION
          "This object configures BPDU guard globally in RSTP 
           and this global BPDU is applicable if and only if no Port specific 
           BpduGuard is configured.
           Enable - enables  BPDU Guard feature on edge ports globally and
           moves the port to disabled discarding state when BPDU is received 
           on the edge ports.
           Disable - disables  BPDU Guard feature on edge ports globally"           
    DEFVAL { 2 }
   ::= { dot1wFutureRst 19 } 

-- SCALAR END
-- TRAP MIB BEGIN
 fsRstSetTraps OBJECT-TYPE
        SYNTAX   Integer32 (0..255)
        MAX-ACCESS   read-write
        STATUS   current
        DESCRIPTION
           "This object is used to enable and  disable  specific
           RSTP traps. Currently the following are defined
           0 - Traps are not enabled.
           1 - General Traps like protocol up or down  
           2 - Exception Traps like memory failure or buffer failure 
                    or port protocol migration or invalid packet rcvd in port
           3 - All the above Traps "
    ::= { dot1wFsRstTrapsControl 1 }


 fsRstGenTrapType OBJECT-TYPE
       SYNTAX   INTEGER   {
                    none (0),
                    up (1),
                    down (2)
                    }
       MAX-ACCESS  read-only
       STATUS  current
       DESCRIPTION
           "The general events like 
           none - none of the below values
           up - protocol UP,
           down - protocol DOWN" 
   ::= { dot1wFsRstTrapsControl 2 }


 fsRstErrTrapType OBJECT-TYPE
       SYNTAX   INTEGER   {
                    none (0),
                    memfail (1),
                    bufffail (2)
                    }
       MAX-ACCESS  read-only
       STATUS  current
       DESCRIPTION
           "The error event like
            none - none of the below values
            memfail - memory allocation failure
            bufffail - buffer allocation failure"
   ::= { dot1wFsRstTrapsControl 3 }

fsRstPortTrapNotificationTable OBJECT-TYPE
   SYNTAX SEQUENCE OF FsRstPortTrapNotificationEntry 
   MAX-ACCESS not-accessible
   STATUS     current
   DESCRIPTION
       " This table is used to store the notification information
         occurred in each of the port for protocol migration and 
         invalid packet received  "
   ::= { dot1wFsRstTrapsControl 4 }

 fsRstPortTrapNotificationEntry OBJECT-TYPE
   SYNTAX      FsRstPortTrapNotificationEntry 
   MAX-ACCESS  not-accessible
   STATUS      current
   DESCRIPTION
       " This entry is used to store the notification information"
   INDEX { fsRstPortTrapIndex}
   ::= { fsRstPortTrapNotificationTable 1 }

FsRstPortTrapNotificationEntry ::=
        SEQUENCE {
               fsRstPortTrapIndex
               Integer32,
               fsRstPortMigrationType 
               INTEGER,
               fsRstPktErrType
               INTEGER,
               fsRstPktErrVal
               Integer32,
	       fsRstPortRoleType
	       INTEGER,
	       fsRstOldRoleType
	       INTEGER
        }

 fsRstPortTrapIndex OBJECT-TYPE
   SYNTAX      Integer32 (1..4096)
   MAX-ACCESS  not-accessible
   STATUS      current
   DESCRIPTION
      "A unique value, greater than zero, indicating the Port number."
   ::= { fsRstPortTrapNotificationEntry 1 }

 fsRstPortMigrationType OBJECT-TYPE
      SYNTAX      INTEGER {
                  sendstp (0),
                  sendrstp (1)
                  }
       MAX-ACCESS  read-only
       STATUS  current
       DESCRIPTION
           "Port Protocol migration type occurred in the port"
   ::= { fsRstPortTrapNotificationEntry 2 }

 fsRstPktErrType OBJECT-TYPE
      SYNTAX      INTEGER {
                  protocolIdErr(0),
                  invalidBpdu(1),
                  configLengthErr(2),
                  tcnLengthErr(3),
                  rstpLengthErr(4),
                  maxAgeErr(5),
                  fwdDelayErr(6),
                  helloTimeErr(7)
                  }
       MAX-ACCESS  read-only
       STATUS  current
       DESCRIPTION
           "Type of invalid packet received in each of the port "
   ::= { fsRstPortTrapNotificationEntry 3 }

 fsRstPktErrVal OBJECT-TYPE
       SYNTAX   Integer32   
       MAX-ACCESS  read-only
       STATUS  current
       DESCRIPTION
           "Packet error value corresponding to the above type "
   ::= { fsRstPortTrapNotificationEntry 4 }

 fsRstPortRoleType OBJECT-TYPE
      SYNTAX      INTEGER {
                  disabledPort(0),
                  alternatePort(1),
                  backupPort(2),
                  rootPort(3),
                  designatedPort(4)
                  }
       MAX-ACCESS  read-only
       STATUS  current
       DESCRIPTION
           "Particular Role Selected for the Port"
   ::= { fsRstPortTrapNotificationEntry 5 }

 fsRstOldRoleType OBJECT-TYPE
      SYNTAX      INTEGER {
                  disabledPort(0),
                  alternatePort(1),
                  backupPort(2),
                  rootPort(3),
                  designatedPort(4)
                  }
       MAX-ACCESS  read-only
       STATUS  current
       DESCRIPTION
           "Particular Role which is existing for the Port"
   ::= { fsRstPortTrapNotificationEntry 6 }

 fsRstTraps OBJECT IDENTIFIER ::= { dot1wFutureRstTraps 0 }

 fsRstGenTrap NOTIFICATION-TYPE
        OBJECTS {
      dot1dBaseBridgeAddress,
           fsRstGenTrapType 
                }
        STATUS             current
        DESCRIPTION
         "Generated when any of the general events like protocol up or 
          protocol down occurrs"
   ::= { fsRstTraps 1 }

 fsRstErrTrap NOTIFICATION-TYPE
        OBJECTS {
      dot1dBaseBridgeAddress,
           fsRstErrTrapType
                }
        STATUS             current
        DESCRIPTION
        "Generated when any of the error events like memory failure or buffer failure occurs"
   ::= { fsRstTraps 2 }

 fsRstNewRootTrap NOTIFICATION-TYPE
        OBJECTS {
                  dot1dBaseBridgeAddress,
                  fsRstOldDesignatedRoot,
                  dot1dStpDesignatedRoot
                }
        STATUS             current
        DESCRIPTION
         "Generated whenever a new root bridge is selected in the topology "
   ::= { fsRstTraps 3 }

 fsRstTopologyChgTrap NOTIFICATION-TYPE
        OBJECTS {
                 dot1dBaseBridgeAddress
                }
        STATUS             current
        DESCRIPTION
         "Generated when topology change is detected "
   ::= { fsRstTraps 4 }

 fsRstProtocolMigrationTrap NOTIFICATION-TYPE
        OBJECTS {
            dot1dBaseBridgeAddress,
            dot1dStpVersion,
            fsRstPortMigrationType 
                }
        STATUS             current
        DESCRIPTION
         "Generated when port protocol migration happens in the port "
   ::= { fsRstTraps 5 }

fsRstInvalidBpduRxdTrap NOTIFICATION-TYPE
        OBJECTS {
            dot1dBaseBridgeAddress,
            fsRstPktErrType,
            fsRstPktErrVal
                }
        STATUS             current
        DESCRIPTION
         "Generated when the invalid packet is received for 
          bpdu/stp/rstp/maximum age/forward delay/hello time"
   ::= { fsRstTraps 6 }

fsRstNewPortRoleTrap NOTIFICATION-TYPE
        OBJECTS {
                  dot1dBaseBridgeAddress,
		  fsRstPortRoleType,
		  fsRstOldRoleType
                }
        STATUS             current
        DESCRIPTION
         "Generated whenever a new role is selected for the port "
   ::= { fsRstTraps 7 }

fsRstHwFailureTrap NOTIFICATION-TYPE
         OBJECTS {
                   dot1dBaseBridgeAddress,
                   dot1dStpPortState
                 }
         STATUS             current
         DESCRIPTION
         "Generated whenever an NPAPI call, that is invoked from the protocol
          to program the hardware port state, fails."
::= { fsRstTraps 8 }

-- TRAP MIB END
END

