-- Copyright (C) 2006-2012 Aricent Group . All Rights Reserved

-- $Id: fsmsbrg.mib,v 1.8 2012/09/07 09:52:05 siva Exp $
ARICENT-MIStdBRIDGE-MIB DEFINITIONS ::= BEGIN
         
         -- The following changes are done for making the mib 
         -- compliant with SNMPv2: 
         -- MAX-ACCESS instead of ACCESS, 
         -- Counter32 instead of Counter, 
         -- STATUS set to current instead of mandatory.

         -- Also new group fsDot1dNotifications is added for the traps.
         
         -- The fsDot1dStaticTable Index is set to read-only
         -- instead of read-write.

IMPORTS
            MODULE-IDENTITY, OBJECT-TYPE, NOTIFICATION-TYPE,
            Counter32, TimeTicks, mib-2, Integer32,
	    enterprises FROM SNMPv2-SMI
            TEXTUAL-CONVENTION, RowStatus, TruthValue FROM SNMPv2-TC
            InterfaceIndex FROM IF-MIB;
                         	
          -- All representations of MAC addresses in this MIB Module
          -- use, as a textual convention (i.e. this convention does
          -- not affect their encoding)

fsDot1dBridge MODULE-IDENTITY
    LAST-UPDATED "201209050000Z"
    ORGANIZATION "ARICENT COMMUNICATIONS SOFTWARE"
    CONTACT-INFO "support@aricent.com"
    DESCRIPTION
    "This mib module is for standard Bridge mib with 
    multiple instance capability"
    REVISION "201209050000Z"
    DESCRIPTION
    "This mib module is for standard Bridge mib with 
    multiple instance capability"
     ::= { enterprises futuresoftware(2076) 116 }

MacAddress ::= TEXTUAL-CONVENTION
     STATUS  current
     DESCRIPTION
           " A 6 octet address in the canonical order 
           defined by IEEE 802.1a, i.e., as if it were transmitted 
           least significant bit first, even though 802.5 (in 
           contrast to other n802.x protocols) requires MAC 
           addresses to be transmitted most significant bit first. 

           16-bit addresses, if needed, are represented by setting 
           their upper 4 octets to all 0's, i.e., AAFF would be 
           represented as 00000000AAFF. 
           
           Similarly, all representations of Bridge-Id in this MIB 
           Module use, as a textual convention (i.e. this 
           convention does not affect their encoding)"
     SYNTAX          OCTET STRING (SIZE (6))
     
BridgeId ::= TEXTUAL-CONVENTION
     STATUS  current
     DESCRIPTION
           "The Bridge-Identifier as used in the
           Spanning Tree
           Protocol to uniquely identify a bridge.  Its first two
           octets (in network byte order) contain a priority
           value and its last 6 octets contain the MAC address
           used to refer to a bridge in a unique fashion
           (typically, the numerically smallest MAC address
           of all ports on the bridge).
           Several objects in this MIB module represent values of
           timers used by the Spanning Tree Protocol.  In this
           MIB, these timers have values in units of hundreths of
           a second (i.e. 1/100 secs).
           These timers, when stored in a Spanning Tree Protocol's
           BPDU, are in units of 1/256 seconds.  Note, however,
           that 802.1D-1998 specifies a settable granularity of
           no more than 1 second for these timers.  To avoid
           ambiguity, a data type is defined here as a textual
           convention and all representation of these timers
           in this MIB module are defined using this data type.  An
           algorithm is also defined for converting between the
           different units, to ensure a timer's value is not                                  distorted by multiple conversions."
     SYNTAX          OCTET STRING (SIZE (8))

Timeout ::= TEXTUAL-CONVENTION
     DISPLAY-HINT "d"
     STATUS       current
     DESCRIPTION
          "A Spanning Tree Protocol (STP) timer in units of 1/100
           seconds.  Several objects in this MIB module represent
           values of timers used by the Spanning Tree Protocol.
           In this MIB, these timers have values in units of
           hundredths of a second (i.e., 1/100 secs).

           These timers, when stored in a Spanning Tree Protocol's
           BPDU, are in units of 1/256 seconds.  Note, however, that
           802.1D-1998 specifies a settable granularity of no more
           than one second for these timers.  To avoid ambiguity,
           a conversion algorithm is defined below for converting
           between the different units, which ensures a timer's
           value is not distorted by multiple conversions.

           To convert a Timeout value into a value in units of
           1/256 seconds, the following algorithm should be used:

               b = floor( (n * 256) / 100)

           where:
               floor   =  quotient [ignore remainder]
               n is the value in 1/100 second units
               b is the value in 1/256 second units

           To convert the value from 1/256 second units back to
           1/100 seconds, the following algorithm should be used:

               n = ceiling( (b * 100) / 256)

           where:
               ceiling = quotient [if remainder is 0], or
                         quotient + 1 [if remainder is nonzero]
               n is the value in 1/100 second units

               b is the value in 1/256 second units

           Note: it is important that the arithmetic operations are
           done in the order specified (i.e., multiply first,
           divide second)."

     SYNTAX       Integer32

          -- groups in the Bridge MIB

fsDot1dNotifications     OBJECT IDENTIFIER ::= { fsDot1dBridge 0 }
                                  
fsDot1dBase              OBJECT IDENTIFIER ::= { fsDot1dBridge 1 }

fsDot1dStp               OBJECT IDENTIFIER ::= { fsDot1dBridge 2 }

fsDot1dSr                OBJECT IDENTIFIER ::= { fsDot1dBridge 3 } 
          -- separately documented

fsDot1dTp                OBJECT IDENTIFIER ::= { fsDot1dBridge 4 }

fsDot1dStatic            OBJECT IDENTIFIER ::= { fsDot1dBridge 5 }
 
 
-- the fsDot1dBase group

-- Implementation of the fsDot1dBase group is current for all
-- bridges.

fsDot1dBaseTable OBJECT-TYPE
    SYNTAX SEQUENCE OF FsDot1dBaseEntry
    MAX-ACCESS    not-accessible
    STATUS        current
    DESCRIPTION
       "List of per Virtual Bridge Module Parameters."
    ::= { fsDot1dBase 1 }

fsDot1dBaseEntry OBJECT-TYPE
   SYNTAX       FsDot1dBaseEntry
   MAX-ACCESS   not-accessible
   STATUS       current
   DESCRIPTION
      "Virtual Bridge Rst Module Parameters."
   INDEX { fsDot1dBaseContextId}
   ::= { fsDot1dBaseTable 1 }

FsDot1dBaseEntry ::=
    SEQUENCE {
           fsDot1dBaseContextId
              Integer32,
           fsDot1dBaseBridgeAddress
              MacAddress, 
           fsDot1dBaseNumPorts
              Integer32,
           fsDot1dBaseType
              INTEGER
}

fsDot1dBaseContextId OBJECT-TYPE
   SYNTAX       Integer32 (0..65535)
   MAX-ACCESS   not-accessible
   STATUS       current
   DESCRIPTION
      "Virtual Bridge number"
   ::= { fsDot1dBaseEntry 1}

fsDot1dBaseBridgeAddress OBJECT-TYPE
   SYNTAX  MacAddress
   MAX-ACCESS  read-only
   STATUS  current
   DESCRIPTION
     "The MAC address used by this bridge when it must
     be referred to in a unique fashion.   It is
     recommended that this be the numerically smallest
     MAC address of all ports that belong to this
     bridge.  However it is only required to be unique.
     When concatenated with fsDot1dStpPriority a unique
     BridgeIdentifier is formed which is used in the
     Spanning Tree Protocol."
   REFERENCE
     "IEEE 802.1D-1998: Sections 14.4.1.1.3 and 7.12.5"
   ::= { fsDot1dBaseEntry 2 }

fsDot1dBaseNumPorts OBJECT-TYPE
   SYNTAX      Integer32
   UNITS       "ports"
   MAX-ACCESS  read-only
   STATUS  current
   DESCRIPTION
     "The number of ports controlled by this bridging entity." 
   REFERENCE
     "IEEE 802.1D-1998: Section 14.4.1.1.3"
   ::= { fsDot1dBaseEntry 3 }

fsDot1dBaseType OBJECT-TYPE
   SYNTAX  INTEGER {
               unknown(1),
               transparentonly(2),
               sourcerouteonly(3),
               srt(4)
             }
   MAX-ACCESS  read-only
   STATUS  current
   DESCRIPTION
     "Indicates what type of bridging this bridge can
     perform.  If a bridge is actually performing a
     certain type of bridging this will be indicated by
     entries in the port table for the given type."
   ::= { fsDot1dBaseEntry 4 }

   -- The Generic Bridge Port Table
   
fsDot1dBasePortTable OBJECT-TYPE
   SYNTAX      SEQUENCE OF FsDot1dBasePortEntry
   MAX-ACCESS  not-accessible
   STATUS      current
   DESCRIPTION
     "A table that contains generic information about
     every port that is associated with this bridge.
      Transparent, source-route, and srt ports are
     included."
   ::= { fsDot1dBase 2 }

fsDot1dBasePortEntry OBJECT-TYPE
   SYNTAX    FsDot1dBasePortEntry
   MAX-ACCESS  not-accessible
   STATUS  current
   DESCRIPTION
     "A list of information for each port of the
     bridge."
   REFERENCE
     "IEEE 802.1D-1998: Section 6.4.2, 6.6.1"
   INDEX  { fsDot1dBasePort }
   ::= { fsDot1dBasePortTable 1 }


FsDot1dBasePortEntry ::=
    SEQUENCE {
           fsDot1dBasePort
              Integer32,
 	   fsDot1dBasePortIfIndex
              InterfaceIndex,
           fsDot1dBasePortCircuit
              OBJECT IDENTIFIER,
           fsDot1dBasePortDelayExceededDiscards
              Counter32,
           fsDot1dBasePortMtuExceededDiscards
              Counter32
}

fsDot1dBasePort OBJECT-TYPE
   SYNTAX  Integer32 (1..65535)
   MAX-ACCESS  not-accessible
   STATUS  current
   DESCRIPTION
     "The port number of the port for which this entry
     contains bridge management information."
   ::= { fsDot1dBasePortEntry 1 }

fsDot1dBasePortIfIndex OBJECT-TYPE
   SYNTAX  InterfaceIndex
   MAX-ACCESS  read-only
   STATUS  current
   DESCRIPTION
     "The value of the instance of the ifIndex object,
     defined in MIB-II, for the interface corresponding
     to this port."
   ::= { fsDot1dBasePortEntry 2 }

fsDot1dBasePortCircuit OBJECT-TYPE
   SYNTAX  OBJECT IDENTIFIER
   MAX-ACCESS  read-only
   STATUS  current
   DESCRIPTION
     "For a port which (potentially) has the same value
     of fsDot1dBasePortIfIndex as another port on the
     same bridge, this object contains the name of an
     object instance unique to this port.  For example,
     in the case where multiple ports correspond one-
     to-one with multiple X.25 virtual circuits, this
     value might identify an (e.g., the first) object
     instance associated with the X.25 virtual circuit
     corresponding to this port.

     For a port which has a unique value of
     fsDot1dBasePortIfIndex, this object can have the
     value { 0 0 }."
   ::= { fsDot1dBasePortEntry 3 }

fsDot1dBasePortDelayExceededDiscards OBJECT-TYPE
   SYNTAX  Counter32
   MAX-ACCESS  read-only
   STATUS  current
   DESCRIPTION
     "The number of frames discarded by this port due
     to excessive transit delay through the bridge.  It
     is incremented by both transparent and source
     route bridges."
   REFERENCE
     "IEEE 802.1D-1998: Section 14.6.1.1.3"
   ::= { fsDot1dBasePortEntry 4 }

fsDot1dBasePortMtuExceededDiscards OBJECT-TYPE
   SYNTAX  Counter32
   MAX-ACCESS  read-only
   STATUS  current
   DESCRIPTION
     "The number of frames discarded by this port due
     to an excessive size.  It is incremented by both
     transparent and source route bridges."
   REFERENCE
     "IEEE 802.1D-1998: Section 14.6.1.1.3"
   ::= { fsDot1dBasePortEntry 5 }


          -- the fsDot1dStp group

          -- Implementation of the fsDot1dStp group is optional.  It is
          -- implemented by those bridges that support the Spanning Tree
          -- Protocol.

fsDot1dStpTable OBJECT-TYPE
   SYNTAX       SEQUENCE OF FsDot1dStpEntry
   MAX-ACCESS   not-accessible
   STATUS       current
   DESCRIPTION
      "Table of StpScalars per virtual bridge"
   ::= { fsDot1dStp 1 }

fsDot1dStpEntry OBJECT-TYPE
   SYNTAX       FsDot1dStpEntry
   MAX-ACCESS   not-accessible
   STATUS       current
   DESCRIPTION
     "Per bridge StpScalars"
   INDEX { fsDot1dStpContextId }
   ::= { fsDot1dStpTable 1 }

FsDot1dStpEntry ::=
    SEQUENCE {
           fsDot1dStpContextId
              Integer32,
           fsDot1dStpProtocolSpecification 
              INTEGER,
           fsDot1dStpPriority 
              INTEGER,
           fsDot1dStpTimeSinceTopologyChange
              TimeTicks,
           fsDot1dStpTopChanges
              Counter32,
           fsDot1dStpDesignatedRoot 
              BridgeId,
           fsDot1dStpRootCost
              Integer32,
           fsDot1dStpRootPort
              Integer32,
           fsDot1dStpMaxAge
              Timeout,
           fsDot1dStpHelloTime
              Timeout,
           fsDot1dStpHoldTime
              Integer32,
           fsDot1dStpForwardDelay
              Timeout,
           fsDot1dStpBridgeMaxAge
              Timeout,
           fsDot1dStpBridgeHelloTime
              Timeout,
           fsDot1dStpBridgeForwardDelay
              Timeout
}

fsDot1dStpContextId OBJECT-TYPE
   SYNTAX       Integer32 (0..65535)
   MAX-ACCESS   not-accessible
   STATUS       current
   DESCRIPTION
     "Virtual Bridge number"
   ::= { fsDot1dStpEntry 1}


fsDot1dStpProtocolSpecification OBJECT-TYPE
   SYNTAX  INTEGER {
               unknown(1),
               decLb100(2),
               ieee8021d(3)
           }
   MAX-ACCESS  read-only
   STATUS  current
   DESCRIPTION
     "An indication of what version of the Spanning
     Tree Protocol is being run.  The value
     'decLb100(2)' indicates the DEC LANbridge 100
     Spanning Tree protocol.  IEEE 802.1d
     implementations will return 'ieee8021d(3)'.  If
     future versions of the IEEE Spanning Tree Protocol
     are released that are incompatible with the
     current version a new value will be defined."
   ::= { fsDot1dStpEntry 2 }

fsDot1dStpPriority OBJECT-TYPE
   SYNTAX  INTEGER (0..65535)
   MAX-ACCESS  read-write
   STATUS  current
   DESCRIPTION
     "The value of the write-able portion of the Bridge
     ID, i.e., the first two octets of the (8 octet
     long) Bridge ID.  The other (last) 6 octets of the
     Bridge ID are given by the value of
     fsDot1dBaseBridgeAddress.
     On bridges supporting IEEE 802.1t or IEEE 802.1w,
     permissible values are 0-61440, in steps of 4096."
   REFERENCE
     "IEEE 802.1D-1998 clause 8.10.2, Table 8-4,
      IEEE 802.1t clause 8.10.2, Table 8-4, clause 14.3."

   ::= { fsDot1dStpEntry 3 }

fsDot1dStpTimeSinceTopologyChange OBJECT-TYPE
   SYNTAX  TimeTicks
   UNITS       "centi-seconds"
   MAX-ACCESS  read-only
   STATUS  current
   DESCRIPTION
     "The time (in hundredths of a second) since the
     last time a topology change was detected by the
     bridge entity.
     For RSTP, this reports the time since the tcWhile
     timer for any port on this Bridge was nonzero."
   REFERENCE
     "IEEE 802.1D-1998: Section 14.8.1.1
      IEEE 802.1w clause 14.8.1.1."
   ::= { fsDot1dStpEntry 4 }

fsDot1dStpTopChanges OBJECT-TYPE
   SYNTAX  Counter32
   MAX-ACCESS  read-only
   STATUS  current
   DESCRIPTION
     "The total number of topology changes detected by
     this bridge since the management entity was last
     reset or initialized."
   REFERENCE
     "IEEE 802.1D-1998: Section 14.8.1.1.3"
   ::= { fsDot1dStpEntry 5 }

fsDot1dStpDesignatedRoot OBJECT-TYPE
   SYNTAX  BridgeId
   MAX-ACCESS  read-only
   STATUS  current
   DESCRIPTION
     "The bridge identifier of the root of the spanning
     tree as determined by the Spanning Tree Protocol
     as executed by this node.  This value is used as
     the Root Identifier parameter in all Configuration
     Bridge PDUs originated by this node."
   REFERENCE
     "IEEE 802.1D-1998: Section 8.5.3.1"
   ::= { fsDot1dStpEntry 6 }

fsDot1dStpRootCost OBJECT-TYPE
   SYNTAX  Integer32
   MAX-ACCESS  read-only
   STATUS  current
   DESCRIPTION
     "The cost of the path to the root as seen from
     this bridge."
   REFERENCE
     "IEEE 802.1D-1998: Section 8.5.3.2"
   ::= { fsDot1dStpEntry 7 }

fsDot1dStpRootPort OBJECT-TYPE
   SYNTAX  Integer32
   MAX-ACCESS  read-only
   STATUS  current
   DESCRIPTION
     "The port number of the port which offers the
     lowest cost path from this bridge to the root
     bridge."
   REFERENCE
     "IEEE 802.1D-1998: Section 8.5.3.3"
   ::= { fsDot1dStpEntry 8 }

fsDot1dStpMaxAge OBJECT-TYPE
   SYNTAX  Timeout
   UNITS   "centi-seconds"
   MAX-ACCESS  read-only
   STATUS  current
   DESCRIPTION
     "The maximum age of Spanning Tree Protocol
     information learned from the network on any port
     before it is discarded, in units of hundredths of
     a second.  This is the actual value that this
     bridge is currently using."
   REFERENCE
     "IEEE 802.1D-1998: Section 8.5.3.4"
   ::= { fsDot1dStpEntry 9 }

fsDot1dStpHelloTime OBJECT-TYPE
   SYNTAX  Timeout
   UNITS   "centi-seconds"
   MAX-ACCESS  read-only
   STATUS  current
   DESCRIPTION
     "The amount of time between the transmission of
     Configuration bridge PDUs by this node on any port
     when it is the root of the spanning tree or trying
     to become so, in units of hundredths of a second.
     This is the actual value that this bridge is
     currently using."
   REFERENCE
     "IEEE 802.1D-1998: Section 8.5.3.5"
   ::= { fsDot1dStpEntry 10 }

fsDot1dStpHoldTime OBJECT-TYPE
   SYNTAX  Integer32
   UNITS   "centi-seconds"
   MAX-ACCESS  read-only
   STATUS  current
   DESCRIPTION
     "This time value determines the interval length
     during which no more than two Configuration bridge
     PDUs shall be transmitted by this node, in units
     of hundredths of a second."
   REFERENCE
     "IEEE 802.1D-1998: Section 8.5.3.14"
   ::= { fsDot1dStpEntry 11 }

fsDot1dStpForwardDelay OBJECT-TYPE
   SYNTAX  Timeout
   UNITS   "centi-seconds"
   MAX-ACCESS  read-only
   STATUS  current
   DESCRIPTION
     "This time value, measured in units of hundredths
     of a second, controls how fast a port changes its
     spanning state when moving towards the Forwarding
     state.  The value determines how long the port
     stays in each of the Listening and Learning
     states, which precede the Forwarding state.  This
     value is also used, when a topology change has
     been detected and is underway, to age all dynamic
     entries in the Forwarding Database.  [Note that
     this value is the one that this bridge is
     currently using, in contrast to
     fsDot1dStpBridgeForwardDelay which is the value that
     this bridge and all others would start using
     if/when this bridge were to become the root.]"
   REFERENCE
     "IEEE 802.1D-1998: Section 8.5.3.6"
   ::= { fsDot1dStpEntry 12 }

fsDot1dStpBridgeMaxAge OBJECT-TYPE
   SYNTAX  Timeout (600..4000)
   UNITS   "centi-seconds"
   MAX-ACCESS  read-write
   STATUS  current
   DESCRIPTION
     "The value that all bridges use for MaxAge when
     this bridge is acting as the root.  Note that
     802.1D-1998 specifies that the range for this
     parameter is related to the value of
     fsDot1dStpBridgeHelloTime. The granularity of this
     timer is specified by 802.1D-1998 to be 1 second.
     An agent may return a badValue error if a set is
     attempted to a value which is not a whole number
     of seconds."
   REFERENCE
     "IEEE 802.1D-1998: Section 8.5.3.8"
   ::= { fsDot1dStpEntry 13 }

fsDot1dStpBridgeHelloTime OBJECT-TYPE
   SYNTAX  Timeout (100|200)
   UNITS       "centi-seconds"
   MAX-ACCESS  read-write
   STATUS  current
   DESCRIPTION
     "The value that all bridges use for HelloTime when
     this bridge is acting as the root.  The
     granularity of this timer is specified by 802.1D-
     1990 to be 1 second.  An agent may return a
     badValue error if a set is attempted to a value
     which is not a whole number of seconds."
   REFERENCE
     "IEEE 802.1D-1998: Section 8.5.3.9"
   ::= { fsDot1dStpEntry 14 }

fsDot1dStpBridgeForwardDelay OBJECT-TYPE
   SYNTAX  Timeout (400..3000)
   UNITS       "centi-seconds"
   MAX-ACCESS  read-write
   STATUS  current
   DESCRIPTION
     "The value that all bridges use for ForwardDelay
     when this bridge is acting as the root.  Note that
     802.1D-1998 specifies that the range for this
     parameter is related to the value of
     fsDot1dStpBridgeMaxAge.  The granularity of this
     timer is specified by 802.1D-1998 to be 1 second.
     An agent may return a badValue error if a set is
     attempted to a value which is not a whole number
     of seconds."
   REFERENCE
     "IEEE 802.1D-1998: Section 8.5.3.10"
   ::= { fsDot1dStpEntry 15 }

          -- The Spanning Tree Port Table

fsDot1dStpPortTable OBJECT-TYPE
   SYNTAX  SEQUENCE OF FsDot1dStpPortEntry
   MAX-ACCESS  not-accessible
   STATUS  current
   DESCRIPTION
     "A table that contains port-specific information
     for the Spanning Tree Protocol."
   ::= { fsDot1dStp 2 }

fsDot1dStpPortEntry OBJECT-TYPE
   SYNTAX  FsDot1dStpPortEntry
   MAX-ACCESS  not-accessible
   STATUS  current
   DESCRIPTION
     "A list of information maintained by every port
     about the Spanning Tree Protocol state for that
     port."
   INDEX   { fsDot1dStpPort }
   ::= { fsDot1dStpPortTable 1 }

FsDot1dStpPortEntry ::=
   SEQUENCE {
          fsDot1dStpPort
             Integer32,
          fsDot1dStpPortPriority
             Integer32,
          fsDot1dStpPortState
             INTEGER,
          fsDot1dStpPortEnable
             INTEGER,
          fsDot1dStpPortPathCost
             Integer32,
          fsDot1dStpPortDesignatedRoot
             BridgeId,
          fsDot1dStpPortDesignatedCost
             Integer32,
          fsDot1dStpPortDesignatedBridge
             BridgeId,
          fsDot1dStpPortDesignatedPort
             OCTET STRING,
          fsDot1dStpPortForwardTransitions
               Counter32,
          fsDot1dStpPortPathCost32
               Integer32
}

fsDot1dStpPort OBJECT-TYPE
   SYNTAX  Integer32 (1..65535)
   MAX-ACCESS  not-accessible
   STATUS  current
   DESCRIPTION
     "The port number of the port for which this entry
     contains Spanning Tree Protocol management
     information."
   REFERENCE
     "IEEE 802.1D-1998: Section 14.8.2.1.2"
   ::= { fsDot1dStpPortEntry 1 }

fsDot1dStpPortPriority OBJECT-TYPE
   SYNTAX  Integer32 (0..255)
   MAX-ACCESS  read-write
   STATUS  current
   DESCRIPTION
     "The value of the priority field which is
     contained in the first (in network byte order)
     octet of the (2 octet long) Port ID.  The other
     octet of the Port ID is given by the value of
     fsDot1dStpPort.
     On bridges supporting IEEE 802.1t or IEEE 802.1w,
     permissible values are 0-240, in steps of 16."
                
   REFERENCE
      "IEEE 802.1D-1998 clause 8.10.2, Table 8-4,

       IEEE 802.1t clause 8.10.2, Table 8-4, clause 14.3."

   ::= { fsDot1dStpPortEntry 2 }

fsDot1dStpPortState OBJECT-TYPE
   SYNTAX  INTEGER {
               disabled(1),
               blocking(2),
               listening(3),
               learning(4),
               forwarding(5),
               broken(6)
           }
   MAX-ACCESS  read-only
   STATUS  current
   DESCRIPTION
     "The port's current state as defined by
     application of the Spanning Tree Protocol.  This
     state controls what action a port takes on
     reception of a frame.  If the bridge has detected
     a port that is malfunctioning it will place that
     port into the broken(6) state.  For ports which
     are disabled (see fsDot1dStpPortEnable), this object
     will have a value of disabled(1)."
   REFERENCE
     "IEEE 802.1D-1998: Section 8.5.5.2"
   ::= { fsDot1dStpPortEntry 3 }

fsDot1dStpPortEnable OBJECT-TYPE
   SYNTAX  INTEGER {
               enabled(1),
               disabled(2)
           }
   MAX-ACCESS  read-write
   STATUS  current
   DESCRIPTION
     "The enabled/disabled status of the port."
   REFERENCE
     "IEEE 802.1D-1998: Section 8.5.5.2"
   ::= { fsDot1dStpPortEntry 4 }

fsDot1dStpPortPathCost OBJECT-TYPE
   SYNTAX  Integer32 (1..65535)
   MAX-ACCESS  read-write
   STATUS  current
   DESCRIPTION
     "The contribution of this port to the path cost of
     paths towards the spanning tree root which include
     this port.  802.1D-1998 recommends that the
     default value of this parameter be in inverse
     proportion to the speed of the attached LAN.
    
     New implementations should support fsDot1dStpPortPathCost32.
     If the port path costs exceeds the maximum value of this
     object then this object should report the maximum value,
     namely 65535.  Applications should try to read the
     fsDot1dStpPortPathCost32 object if this object reports
     the maximum value."

   REFERENCE
     "IEEE 802.1D-1998: Section 8.5.5.3"
   ::= { fsDot1dStpPortEntry 5 }

fsDot1dStpPortDesignatedRoot OBJECT-TYPE
   SYNTAX  BridgeId
   MAX-ACCESS  read-only
   STATUS  current
   DESCRIPTION
     "The unique Bridge Identifier of the Bridge
     recorded as the Root in the Configuration BPDUs
     transmitted by the Designated Bridge for the
     segment to which the port is attached."
   REFERENCE
     "IEEE 802.1D-1998: Section 8.5.5.4"
   ::= { fsDot1dStpPortEntry 6 }

fsDot1dStpPortDesignatedCost OBJECT-TYPE
   SYNTAX  Integer32
   MAX-ACCESS  read-only
   STATUS  current
   DESCRIPTION
     "The path cost of the Designated Port of the
     segment connected to this port.  This value is
     compared to the Root Path Cost field in received
     bridge PDUs."
   REFERENCE
     "IEEE 802.1D-1998: Section 8.5.5.5"
   ::= { fsDot1dStpPortEntry 7 }

fsDot1dStpPortDesignatedBridge OBJECT-TYPE
   SYNTAX  BridgeId
   MAX-ACCESS  read-only
   STATUS  current
   DESCRIPTION
     "The Bridge Identifier of the bridge which this
     port considers to be the Designated Bridge for
     this port's segment."
   REFERENCE
     "IEEE 802.1D-1998: Section 8.5.5.6"
   ::= { fsDot1dStpPortEntry 8 }

fsDot1dStpPortDesignatedPort OBJECT-TYPE
   SYNTAX  OCTET STRING (SIZE (2))
   MAX-ACCESS  read-only
   STATUS  current
   DESCRIPTION
     "The Port Identifier of the port on the Designated
     Bridge for this port's segment."
   REFERENCE
     "IEEE 802.1D-1998: Section 8.5.5.7"
   ::= { fsDot1dStpPortEntry 9 }

fsDot1dStpPortForwardTransitions OBJECT-TYPE
   SYNTAX  Counter32
   MAX-ACCESS  read-only
   STATUS  current
   DESCRIPTION
     "The number of times this port has transitioned
     from the Learning state to the Forwarding state."
   ::= { fsDot1dStpPortEntry 10 }

fsDot1dStpPortPathCost32 OBJECT-TYPE
       SYNTAX      Integer32 (1..200000000)
       MAX-ACCESS  read-write
       STATUS      current
       DESCRIPTION
           "The contribution of this port to the path cost of
           paths towards the spanning tree root which include
           this port.  802.1D-1998 recommends that the default
           value of this parameter be in inverse proportion to
           the speed of the attached LAN.

           This object replaces fsDot1dStpPortPathCost to support
           IEEE 802.1t."
       REFERENCE
           "IEEE 802.1t clause 8.10.2, Table 8-5."
       ::= { fsDot1dStpPortEntry 11 }

   -- the fsDot1dTp group

   -- Implementation of the fsDot1dTp group is optional.  It is
   -- implemented by those bridges that support the transparent
   -- bridging mode.  A transparent or SRT bridge will implement
   -- this group.
   
fsDot1dTpTable OBJECT-TYPE
   SYNTAX       SEQUENCE OF FsDot1dTpEntry
   MAX-ACCESS   not-accessible
   STATUS       current
   DESCRIPTION
      "Table of Tp per virtual bridge"
   ::= { fsDot1dTp 1 }

fsDot1dTpEntry OBJECT-TYPE
   SYNTAX       FsDot1dTpEntry
   MAX-ACCESS   not-accessible
   STATUS       current
   DESCRIPTION
     "Per bridge TpScalars"
   INDEX { fsDot1dBaseContextId}
   ::= { fsDot1dTpTable 1 }

FsDot1dTpEntry ::=
   SEQUENCE {
          fsDot1dTpLearnedEntryDiscards
             Counter32,
          fsDot1dTpAgingTime
             Integer32
}

fsDot1dTpLearnedEntryDiscards OBJECT-TYPE
   SYNTAX  Counter32
   MAX-ACCESS  read-only
   STATUS  current
   DESCRIPTION
     "The total number of Forwarding Database entries,
            which have been or would have been learned, but
     have been discarded due to a lack of space to
     store them in the Forwarding Database.  If this
            counter is increasing, it indicates that the
     Forwarding Database is regularly becoming full (a
     condition which has unpleasant performance effects
            on the subnetwork).  If this counter has a
     significant value but is not presently increasing,
     it indicates that the problem has been occurring
     but is not persistent."
   REFERENCE
     "IEEE 802.1D-1998: Section 14.7.1.1.3"
   ::= {fsDot1dTpEntry 1 } 

fsDot1dTpAgingTime OBJECT-TYPE
   SYNTAX   Integer32 (10..1000000)
   UNITS       "seconds"
   MAX-ACCESS   read-write
   STATUS   current
   DESCRIPTION
     "The timeout period in seconds for aging out
     dynamically learned forwarding information.
     802.1D-1998 recommends a default of 300 seconds."
   REFERENCE
     "IEEE 802.1D-1998: Section 14.7.1.1.3"
   ::= { fsDot1dTpEntry 2 }


--  The Forwarding Database for Transparent Bridges

fsDot1dTpFdbTable OBJECT-TYPE
   SYNTAX  SEQUENCE OF FsDot1dTpFdbEntry
   MAX-ACCESS  not-accessible
   STATUS  current
   DESCRIPTION
     "A table that contains information about unicast
     entries for which the bridge has forwarding and/or
     filtering information.  This information is used
     by the transparent bridging function in
     determining how to propagate a received frame. This 
     table maintains context ID as one more index to 
     support Multiple Instances."
   ::= { fsDot1dTp 2 }

fsDot1dTpFdbEntry OBJECT-TYPE
   SYNTAX  FsDot1dTpFdbEntry
   MAX-ACCESS  not-accessible
   STATUS  current
   DESCRIPTION
     "Information about a specific unicast MAC address
     for which the bridge has some forwarding and/or
     filtering information."
   INDEX   { fsDot1dBaseContextId, fsDot1dTpFdbAddress }
   ::= { fsDot1dTpFdbTable 1 }

FsDot1dTpFdbEntry ::=
   SEQUENCE {
    	  fsDot1dTpFdbAddress
             MacAddress,
       	  fsDot1dTpFdbPort
             Integer32,
    	  fsDot1dTpFdbStatus
             INTEGER
}

fsDot1dTpFdbAddress OBJECT-TYPE
   SYNTAX  MacAddress
   MAX-ACCESS  not-accessible
   STATUS  current
   DESCRIPTION
     "A unicast MAC address for which the bridge has
     forwarding and/or filtering information."
   REFERENCE
     "IEEE 802.1D-1998: Section 7.9.1, 7.9.2"
   ::= { fsDot1dTpFdbEntry 1 }

fsDot1dTpFdbPort OBJECT-TYPE
   SYNTAX  Integer32
   MAX-ACCESS  read-only
   STATUS  current
   DESCRIPTION
     "Either the value '0', or the port number of the
     port on which a frame having a source address
     equal to the value of the corresponding instance
     of fsDot1dTpFdbAddress has been seen.  A value of
     '0' indicates that the port number has not been
     learned but that the bridge does have some
     forwarding/filtering information about this
     address (e.g. in the fsDot1dStaticTable).
     Implementors are encouraged to assign the port
     value to this object whenever it is learned even
     for addresses for which the corresponding value of
     fsDot1dTpFdbStatus is not learned(3)."
   ::= { fsDot1dTpFdbEntry 2 } 

fsDot1dTpFdbStatus OBJECT-TYPE
   SYNTAX  INTEGER {
        other(1),
        invalid(2),
        learned(3),
        self(4),
        mgmt(5)
    }
   MAX-ACCESS  read-only
   STATUS  current
   DESCRIPTION
     "The status of this entry.  The meanings of the
     values are:

             other(1)   : none of the following.  This would
                          include the case where some other
                          MIB object (not the corresponding
                          instance of fsDot1dTpFdbPort, nor an
                          entry in the fsDot1dStaticTable) is
                          being used to determine if and how
                          frames addressed to the value of
                          the corresponding instance of
                          fsDot1dTpFdbAddress are being
                          forwarded.

             invalid(2) : this entry is not longer valid
                          (e.g., it was learned but has since
                          aged-out), but has not yet been
                          flushed from the table.

             learned(3) : the value of the corresponding
                          instance of fsDot1dTpFdbPort was
                   learned, and is being used.

             self(4)    : the value of the corresponding
                   instance of fsDot1dTpFdbAddress
                   represents one of the bridge's
                   addresses.  The corresponding
                          instance of fsDot1dTpFdbPort
                   indicates which of the bridge's
                   ports has this address.

             mgmt(5)    : the value of the corresponding
                          instance of fsDot1dTpFdbAddress is
                          also the value of an existing
                          instance of fsDot1dStaticAddress."
   ::= { fsDot1dTpFdbEntry 3 }

   --  Port Table for Transparent Bridges

fsDot1dTpPortTable OBJECT-TYPE
   SYNTAX  SEQUENCE OF FsDot1dTpPortEntry
   MAX-ACCESS  not-accessible
   STATUS  current
   DESCRIPTION
     "A table that contains information about every
     port that is associated with this transparent
     bridge."
   ::= { fsDot1dTp 3 }

fsDot1dTpPortEntry OBJECT-TYPE
   SYNTAX  FsDot1dTpPortEntry
   MAX-ACCESS  not-accessible
   STATUS  current
   DESCRIPTION
     "A list of information for each port of a
     transparent bridge."
   INDEX   { fsDot1dTpPort }
   ::= { fsDot1dTpPortTable 1 }

FsDot1dTpPortEntry ::=
   SEQUENCE {
    	  fsDot1dTpPort
             Integer32,
      	  fsDot1dTpPortMaxInfo
             Integer32,
 	  fsDot1dTpPortInFrames
             Counter32,
 	  fsDot1dTpPortOutFrames
             Counter32,
    	  fsDot1dTpPortInDiscards
             Counter32
}

fsDot1dTpPort OBJECT-TYPE
   SYNTAX  Integer32 (1..65535)
   MAX-ACCESS  not-accessible
   STATUS  current
   DESCRIPTION
     "The port number of the port for which this entry
     contains Transparent bridging management
     information."
   ::= { fsDot1dTpPortEntry 1 } 
 
-- It would be nice if we could use ifMtu as the size of the
-- largest INFO field, but we can't because ifMtu is defined
-- to be the size that the (inter-)network layer can use which
-- can differ from the MAC layer (especially if several layers
-- of encapsulation are used).

fsDot1dTpPortMaxInfo OBJECT-TYPE
   SYNTAX  Integer32
   UNITS       "bytes"
   MAX-ACCESS  read-only
   STATUS  current
   DESCRIPTION
     "The maximum size of the INFO (non-MAC) field that
     this port will receive or transmit."
   ::= { fsDot1dTpPortEntry 2 }

fsDot1dTpPortInFrames OBJECT-TYPE
   SYNTAX  Counter32
   UNITS       "frames"
   MAX-ACCESS  read-only
   STATUS  current
   DESCRIPTION
     "The number of frames that have been received by
     this port from its segment. Note that a frame
     received on the interface corresponding to this
     port is only counted by this object if and only if
     it is for a protocol being processed by the local
     bridging function, including bridge management
     frames."
   REFERENCE
     "IEEE 802.1D-1998: Section 14.6.1.1.3"
   ::= { fsDot1dTpPortEntry 3 }

fsDot1dTpPortOutFrames OBJECT-TYPE
   SYNTAX  Counter32
   UNITS       "frames"
   MAX-ACCESS  read-only
   STATUS  current
   DESCRIPTION
     "The number of frames that have been transmitted
     by this port to its segment.  Note that a frame
     transmitted on the interface corresponding to this
     port is only counted by this object if and only if
     it is for a protocol being processed by the local
     bridging function, including bridge management
     frames."
   REFERENCE
     "IEEE 802.1D-1998: Section 14.6.1.1.3"
   ::= { fsDot1dTpPortEntry 4 }

fsDot1dTpPortInDiscards OBJECT-TYPE 
   SYNTAX   Counter32
   UNITS       "frames"
   MAX-ACCESS   read-only
   STATUS   current
   DESCRIPTION 
     "Count of valid frames received which were 
     discarded (i.e., filtered) by the Forwarding 
     Process." 
   REFERENCE 
     "IEEE 802.1D-1998: Section 14.6.1.1.3" 
   ::= { fsDot1dTpPortEntry 5 }       


-- The Static (Destination-Address Filtering) Database 
 
-- Implementation of this group is optional. 
 
fsDot1dStaticTable OBJECT-TYPE 
   SYNTAX  SEQUENCE OF FsDot1dStaticEntry 
   MAX-ACCESS  not-accessible
   STATUS  current
   DESCRIPTION 
     "A table containing filtering information 
     configured into the bridge by (local or network) 
     management specifying the set of ports to which 
     frames received from specific ports and containing 
     specific destination addresses are allowed to be 
     forwarded.  The value of zero in this table as the 
     port number from which frames with a specific 
     destination address are received, is used to 
     specify all ports for which there is no specific 
     entry in this table for that particular 
     destination address.  Entries are valid for 
     unicast and for group/broadcast addresses.This 
     table maintains context ID as one more index to 
     support Multiple Instances." 
   REFERENCE 
     "IEEE 802.1D-1998: Section 14.7.2" 
   ::= { fsDot1dStatic 1 } 

fsDot1dStaticEntry OBJECT-TYPE 
   SYNTAX  FsDot1dStaticEntry 
   MAX-ACCESS  not-accessible
   STATUS  current
   DESCRIPTION 
     "Filtering information configured into the bridge 
     by (local or network) management specifying the 
     set of ports to which frames received from a 
     specific port and containing a specific 
     destination address are allowed to be forwarded." 
   REFERENCE 
     "IEEE 802.1D-1998: Section 14.7.2" 
   INDEX   { fsDot1dBaseContextId, 
             fsDot1dStaticAddress, fsDot1dStaticReceivePort } 
   ::= { fsDot1dStaticTable 1 } 

FsDot1dStaticEntry ::= 
   SEQUENCE { 
          fsDot1dStaticAddress 
             MacAddress, 
          fsDot1dStaticReceivePort 
             Integer32,
          fsDot1dStaticRowStatus
             RowStatus,
          fsDot1dStaticStatus 
             INTEGER 
} 

fsDot1dStaticAddress OBJECT-TYPE 
   SYNTAX  MacAddress 
   MAX-ACCESS  not-accessible
   STATUS  current
   DESCRIPTION 
     "The destination MAC address in a frame to which 
     this entry's filtering information applies.  This 
     object can take the value of a unicast address, a 
     group address or the broadcast address." 
   REFERENCE 
     "IEEE 802.1D-1998: Section 7.9.1, 7.9.2" 
   ::= { fsDot1dStaticEntry 1 } 

fsDot1dStaticReceivePort OBJECT-TYPE 
   SYNTAX  Integer32 (0..65535)
   MAX-ACCESS  not-accessible
   STATUS  current
   DESCRIPTION 
     "Either the value '0', or the port number of the 
     port from which a frame must be received in order 
     for this entry's filtering information to apply. 
     A value of zero indicates that this entry applies 
     on all ports of the bridge for which there is no 
     other applicable entry." 
   ::= { fsDot1dStaticEntry 2 }

fsDot1dStaticRowStatus OBJECT-TYPE
   SYNTAX      RowStatus
   MAX-ACCESS  read-create
   STATUS      current
   DESCRIPTION
     "This object indicates the status of the AllowedToGoTo
     PortList to which a frame with a specific unicast
     address will be flooded in the event that it has not
     been learned. To fill the AllowedToGoTo portlist,
     we have to set the rowstatus as 'NOT_IN_SERVICE' and
     set the appropriate port in the
     fsDot1dStaticAllowedToGoTable and set the rowstatus as
     'ACTIVE' to make the portlist available."
   ::= { fsDot1dStaticEntry 3 }

fsDot1dStaticStatus OBJECT-TYPE 
   SYNTAX  INTEGER { 
               other(1), 
               invalid(2), 
               permanent(3), 
               deleteOnReset(4), 
               deleteOnTimeout(5) 
           } 
   MAX-ACCESS  read-write
   STATUS  current
   DESCRIPTION 
     "This object indicates the status of this entry. 
     The default value is permanent(3). 

          other(1) - this entry is currently in use but 
               the conditions under which it will 
               remain so are different from each of the 
               following values. 
          invalid(2) - writing this value to the object 
               removes the corresponding entry. 
          permanent(3) - this entry is currently in use 
               and will remain so after the next reset 
               of the bridge. 
          deleteOnReset(4) - this entry is currently in 
               use and will remain so until the next 
               reset of the bridge. 
          deleteOnTimeout(5) - this entry is currently 
               in use and will remain so until it is 
               aged out." 
   ::= { fsDot1dStaticEntry 4 } 

fsDot1dStaticAllowedToGoTable OBJECT-TYPE
   SYNTAX      SEQUENCE OF FsDot1dStaticAllowedToGoEntry
   MAX-ACCESS  not-accessible
   STATUS      current
   DESCRIPTION
     "A table containing the information of AllowedToGoTo
     ports for each static unicast entry. This table
     maintains context ID as one more index to support
     Multiple Instances."
   ::= { fsDot1dStatic 2 }

fsDot1dStaticAllowedToGoEntry OBJECT-TYPE
   SYNTAX      FsDot1dStaticAllowedToGoEntry
   MAX-ACCESS  not-accessible
   STATUS      current
   DESCRIPTION
     "Information about a port, Whether it is an AllowedToGoTo
     member or not."
   INDEX   { fsDot1dBaseContextId, fsDot1dStaticAddress, 
             fsDot1dStaticReceivePort, fsDot1dTpPort }
   ::= { fsDot1dStaticAllowedToGoTable 1 }

FsDot1dStaticAllowedToGoEntry ::=
   SEQUENCE {
          fsDot1dStaticAllowedIsMember
             TruthValue
   }

fsDot1dStaticAllowedIsMember OBJECT-TYPE
   SYNTAX      TruthValue
   MAX-ACCESS  read-write
   STATUS      current
   DESCRIPTION
       "Indicates whether the port is an allowedToGoTo member."
   ::= { fsDot1dStaticAllowedToGoEntry 1 }


          -- the fsDot1dNotifications group

          -- Traps for use by Bridges

          -- Traps for the Spanning Tree Protocol


            newRoot NOTIFICATION-TYPE
               STATUS             current
               DESCRIPTION
                    "The newRoot trap indicates that the sending agent
                    has become the new root of the Spanning Tree; the
                    trap is sent by a bridge soon after its election
                    as the new root, e.g., upon expiration of the
                    Topology Change Timer immediately subsequent to
                    its election.  Implementation of this trap is
                    optional."
              ::= { fsDot1dNotifications 1 }

            topologyChange NOTIFICATION-TYPE
              STATUS             current
              DESCRIPTION
                      "A topologyChange trap is sent by a bridge when
                      any of its configured ports transitions from the
                      Learning state to the Forwarding state, or from
                      the Forwarding state to the Blocking state.  The
                      trap is not sent if a newRoot trap is sent for the
                      same transition.  Implementation of this trap is
                     optional."
              ::= { fsDot1dNotifications 2 }

END
