-- *****************************************************************
-- CISCO-RSRB-MIB.my: Cisco RSRB MIB
--
-- April 1995, Bob Clouston
--
-- Copyright (c) 1995 by cisco Systems, Inc.
-- All rights reserved.
-- *****************************************************************
--

CISCO-RSRB-MIB DEFINITIONS ::= BEGIN

--
-- Definitions

IMPORTS
	MODULE-IDENTITY, OBJECT-TYPE, Counter32, Integer32, IpAddress,
	Gauge32, NOTIFICATION-TYPE
		FROM SNMPv2-SMI
	MODULE-COMPLIANCE, OBJECT-GROUP
		FROM SNMPv2-CONF
	TruthValue, MacAddress
		FROM SNMPv2-TC
	InterfaceIndex
		FROM IF-MIB
	ciscoMgmt
		FROM CISCO-SMI;

ciscoRsrbMIB MODULE-IDENTITY 
	LAST-UPDATED	"9508210000Z"
	ORGANIZATION	"Cisco Systems, Inc."
	CONTACT-INFO
		"	Cisco Systems
			Customer Service

		Postal:	170 W. Tasman Drive 
			San Jose, CA  95134
			USA

		   Tel: +1 800 553-NETS

		E-mail: cs-snmp@cisco.com"
	DESCRIPTION
		"This is the MIB module for objects used to manage RSRB. 
                                        
   Overview of remote source-route bridging (RSRB) management and MIB
   
   MIB description                        
   The RSRB MIB will include the following managed entities: 
    1) Virtual Rings 
    2) Remote Peers
    3) Associated Token Rings
   
   The goal of this MIB to to allow a management stations to
   display the attributes of the local-remote RSRB peer relationship.
  
   The following example configuration will show how the RSRB MIB can
   be used to manage RSRB.
  
     == Token Ring == CISCO A == IP Network/ == CISCO B == Token Ring
                                 Virtual Ring
  
   Both CISCO A and CISCO B are RSRB peers, having the same virtual ring
   number.  In this example information will be gatherered from CISCO A
   (the local peer), and CISCO B is considered to be CISCO A's remote peer.
  
   The first table is the virtual ring table.  There is one entry for
   each RSRB virtual ring the router is defined on.  The fields included
   in this table include
    * the virtual ring number, or index
    * the IP address used by the router
    * the maximum outbound queue size for each RSRB remote peer
   In this example the table has a single entry since CISCO A only belongs
   to one RSRB virtual ring.
  
   The next table is for each remote peer in the virtual ring.  There
   can be multiple RSRB remote peers.  The remote peer information includes:
    * an internally generated (not configured) index into the table
    * the type of data encapsulation with the remote peer
    * identification of how to get to the remote peer; either an IP address
      or an interface index, depending upon the encapsulation type
    * the state of the remote peer
    * various statistics (bytes and packets sent and received, explorers
      generated, outbound queue size, and packets dropped
    * whether local acknowledgment is used with the remote peer
    * the RSRB version of the peer
   In this example there would be just one remote peer table entry, 
   for CISCO B.
  
   The last table is for the real local and remote token rings associated
   with the RSRB virtual ring, that this router has either had configured
   or learned about dynamically.  The ring information includes:
    * the token ring number (index)
    * the bridge number connecting the real ring to the virtual ring
    * the ring entry type
    * the local or remote routers mac address on the interface to the ring
    * the local router's interface index, or the remote router's IP address,
      depending on if this is a local or remote ring
    * number of packets forwarded by the local router onto this ring
   In this example CISCO A would have two ring entries:  one for the local
   ring it is connected to, and one for the ring CISCO B is a part of.
  
   A management application can construct a virtual ring view either by
   collecting MIB information from all routers and grouping those in the
   same virtual ring together, or beginning with a particular router or
   routers, and collecting MIB information about other peer routers.
   "
	REVISION        "9508210000Z"
	DESCRIPTION
		"Specify a correct (non-negative) range for several
		index objects."
	::= { ciscoMgmt 29 }

rsrbObjects       OBJECT IDENTIFIER ::= { ciscoRsrbMIB 1}
rsrbVirtualRings  OBJECT IDENTIFIER ::= { rsrbObjects 1}
rsrbRemotePeers   OBJECT IDENTIFIER ::= { rsrbObjects 2}
rsrbPhysicalRings OBJECT IDENTIFIER ::= { rsrbObjects 3}

-- *************************************************************************
-- * Virtual Ring table
-- *************************************************************************

rsrbVirtRingTable   OBJECT-TYPE
    SYNTAX      SEQUENCE OF RsrbVirtRingEntry          
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Table of virtual rings in the router."
    ::= { rsrbVirtualRings 1 }

rsrbVirtRingEntry   OBJECT-TYPE
    SYNTAX      RsrbVirtRingEntry          
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION 
        "Configuration values for a virtual ring. "
    INDEX { rsrbVirtRingIndex }
    ::= { rsrbVirtRingTable 1 }

    
RsrbVirtRingEntry ::=
    SEQUENCE {
        rsrbVirtRingIndex              Integer32 (0..2147483647),
        rsrbVirtRingIPAddr             IpAddress,
        rsrbVirtRingMaxTcpQSize        Integer32
    }

rsrbVirtRingIndex   OBJECT-TYPE
    SYNTAX      Integer32 (0..2147483647)
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "The configured number of the virtual ring in which this peer is 
         participating."
    ::= { rsrbVirtRingEntry 1 }

rsrbVirtRingIPAddr   OBJECT-TYPE
    SYNTAX      IpAddress 
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The IP address configured for this RSRB local peer." 
    ::= { rsrbVirtRingEntry 2 }
    
rsrbVirtRingMaxTcpQSize   OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The maximum number of packets that can be held in any single
         outbound TCP queue to a remote peer before packets are discarded.
         This value indicates the configured or default value."
    ::= { rsrbVirtRingEntry 3 }
 
-- *************************************************************************
-- * Remote Peer table  
-- *************************************************************************

rsrbRemotePeerTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF RsrbRemotePeerEntry 
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Table of RSRB remote peers for a virtual ring." 
    ::= { rsrbRemotePeers 1 }

rsrbRemotePeerEntry OBJECT-TYPE
    SYNTAX      RsrbRemotePeerEntry           
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Configuration and status information of a remote RSRB peer. "
    INDEX { rsrbVirtRingIndex, rsrbRemotePeerIndex }
    ::= { rsrbRemotePeerTable 1 }

RsrbRemotePeerEntry ::=
    SEQUENCE {
        rsrbRemotePeerIndex     Integer32 (0..2147483647),
        rsrbRemotePeerEncapsulation  INTEGER,
        rsrbRemotePeerIPAddr    IpAddress,
        rsrbRemotePeerLocalIfIndex InterfaceIndex,
        rsrbRemotePeerState     INTEGER,
        rsrbRemotePeerPacketsRx Counter32,
        rsrbRemotePeerPacketsTx Counter32,
        rsrbRemotePeerBytesRx   Counter32,
        rsrbRemotePeerBytesTx   Counter32,
        rsrbRemotePeerExplorersRx Counter32,
        rsrbRemotePeerTcpQueue  Gauge32,
        rsrbRemotePeerDrops     Counter32,
        rsrbRemotePeerLocalAck  TruthValue, 
        rsrbRemotePeerVersion   Integer32
   }
   
rsrbRemotePeerIndex  OBJECT-TYPE
    SYNTAX      Integer32 (0..2147483647)
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An arbitrary index that uniquely identifies a remote peer 
         within a virtual ring."
    ::= { rsrbRemotePeerEntry 1 }

rsrbRemotePeerEncapsulation OBJECT-TYPE
    SYNTAX      INTEGER          
                {
                 tcp        (1),
                 serial     (2),
                 lan        (3),
                 fst        (4),
                 frameRelay (5)
                }          
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
       "How traffic is encapsulated for RSRB:
       
        tcp = IP datagrams over a TCP connection
        serial = point-to-point (serial) direct encapsulation
        lan = direct encapsulation over a LAN
        fst = IP datagrams over a Fast Sequenced Transport connection
        frameRelay = direct encapsulation over frame relay"
    ::= { rsrbRemotePeerEntry 2 }

rsrbRemotePeerIPAddr OBJECT-TYPE
    SYNTAX      IpAddress          
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The IP address used by the RSRB remote peer.
         This field is meaningful only for TCP and FST encapsulation.
         For other encapsulation types 0.0.0.0 is returned."
    ::= { rsrbRemotePeerEntry 3 }
    
rsrbRemotePeerLocalIfIndex OBJECT-TYPE
    SYNTAX      InterfaceIndex
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Local interface index value to the RSRB remote peer.  Same value
         as used for accessing the Interface MIB for the same interface.
         This field is meaningful only for serial, LAN and
         frame relay encapsulation.  For other encapsulation types 0 
         is returned."
    ::= {  rsrbRemotePeerEntry 4 }

rsrbRemotePeerState OBJECT-TYPE
    SYNTAX      INTEGER
                {
                 dead            (1),
                 closed          (2),
                 opening         (3),
                 openWaitXport   (4),
                 waitRemoteRsp   (5),
                 remoteResponded (6),
                 remoteOpened    (7),
                 draining        (8),
                 connected       (9)
                }          
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Current state of the RSRB session with the remote peer."
    ::= { rsrbRemotePeerEntry 5 }

rsrbRemotePeerPacketsRx    OBJECT-TYPE
    SYNTAX      Counter32          
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Number of packets received from remote peer."
    ::= { rsrbRemotePeerEntry 6 }

rsrbRemotePeerPacketsTx    OBJECT-TYPE 
    SYNTAX      Counter32          
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
       "Number of packets transmitted to remote peer."        
    ::= { rsrbRemotePeerEntry 7 }

rsrbRemotePeerBytesRx     OBJECT-TYPE
    SYNTAX      Counter32          
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION 
       "Number of bytes received from remote peer."
    ::= { rsrbRemotePeerEntry 8 }

rsrbRemotePeerBytesTx   OBJECT-TYPE
    SYNTAX      Counter32          
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
       "Number of bytes transmitted to remote peer."
    ::= { rsrbRemotePeerEntry 9 }

rsrbRemotePeerExplorersRx OBJECT-TYPE
    SYNTAX      Counter32         
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
       "Number of explorer packets received from the remote peer."
    ::= { rsrbRemotePeerEntry 10 }

rsrbRemotePeerTcpQueue OBJECT-TYPE
    SYNTAX       Gauge32         
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION
       "Number of packets being held by the local router
        in the TCP output queue to the remote peer."
    ::= { rsrbRemotePeerEntry 11 }

rsrbRemotePeerDrops OBJECT-TYPE
    SYNTAX      Counter32          
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
       "Number of received packets discarded by the local router.
        The reasons for packets being dropped include, but are not
        limited to, problems with the configuration, queue overflow,
        and protocol errors."
    ::= { rsrbRemotePeerEntry 12 }

rsrbRemotePeerLocalAck OBJECT-TYPE
    SYNTAX      TruthValue          
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
       "Indicates if local acknowledgment is used for the sessions
        going to the remote peer.

        TRUE -> local acknowledgment is used
        FALSE -> local acknowledgment is not used"
    ::= { rsrbRemotePeerEntry 13 }

rsrbRemotePeerVersion     OBJECT-TYPE  
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
       "The version of RSRB used between local and remote peer.
        Generally peers can communicate if they are within one version
        of each other.  The value returned is the lower version
        of the two peers."
    ::= { rsrbRemotePeerEntry 14 }

-- *************************************************************************
-- * Ring table  
-- *************************************************************************

rsrbRingTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF RsrbRingEntry           
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Table of local and remote rings associated with a 
         virtual ring."
    ::= { rsrbPhysicalRings 1 }

rsrbRingEntry OBJECT-TYPE
    SYNTAX      RsrbRingEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A ring described by a unique ring number within the 
         bridged token ring network, and the virtual ring
         which it is associated with."
    INDEX { rsrbVirtRingIndex, rsrbRingIndex } 
    ::= { rsrbRingTable 1 }

RsrbRingEntry ::=
   SEQUENCE {
        rsrbRingIndex        Integer32 (0..2147483647),
        rsrbRingBridge       Integer32,
        rsrbRingLocal        TruthValue,
        rsrbRingType         INTEGER,
        rsrbRingMacAddr          MacAddress,
        rsrbRingLocalIfIndex InterfaceIndex,
        rsrbRingRemoteIpAddress  IpAddress,
        rsrbRingNbrPacketsFwd    Counter32
    }

rsrbRingIndex    OBJECT-TYPE          
    SYNTAX      Integer32 (0..2147483647)
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION    
        "The configured ring number that uniquely identifies this network 
         segment or ring within the bridged token ring network."
    ::= { rsrbRingEntry 1 }
    
rsrbRingBridge        OBJECT-TYPE          
    SYNTAX      Integer32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION    
        "The configured number of the bridge that connects this entry's
         ring to the virtual ring."
    ::= { rsrbRingEntry 2 }
    
rsrbRingLocal      OBJECT-TYPE          
    SYNTAX      TruthValue
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Indicates if the entry represents a local or remote ring.
         TRUE indicates a local ring.
         FALSE indicates a remote ring."
    ::= { rsrbRingEntry 3 }
         
rsrbRingType      OBJECT-TYPE          
    SYNTAX      INTEGER 
               {
                 static         (1),   -- statically defined ring
                 dynamic        (2),   -- dynamically discovered ring
                                       --  (remote only)
                 sdllc          (3),   -- SDLLC virtual ring
                 qllc           (4),   -- QLLC virtual ring
                 virtual        (5)    -- virtual ring (local only)
                }          
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION    
        "The ring type."
    ::= { rsrbRingEntry 4 }

rsrbRingMacAddr         OBJECT-TYPE          
    SYNTAX      MacAddress
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION    
        "The mac address of either the local router's interface to the ring
         for local ring entries, or the remote peer's interface to the ring
         for remote ring entries.  Not valid for entry types
         remote SDLLC and QLLC; for these type '00 00 00 00 00 00' will be
         returned."
    ::= { rsrbRingEntry 5 }

rsrbRingLocalIfIndex         OBJECT-TYPE          
    SYNTAX      InterfaceIndex 
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "For local ring entries, the local interface into the ring.  This is
         the same value as used for accessing the Interface MIB for the 
         same interface. 
         Not meaningful for remote ring entries; for these types
         0 will be returned."
    ::= { rsrbRingEntry 6 }

rsrbRingRemoteIpAddress          OBJECT-TYPE          
    SYNTAX      IpAddress
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION    
        "For remote ring entries, the IP address of the remote RSRB peer.
         Not meaningful for local ring entries, and so 0.0.0.0 will be
         returned."
    ::= { rsrbRingEntry 7 }
 
rsrbRingNbrPacketsFwd        OBJECT-TYPE          
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION    
        "The number of packets forwarded by the local router onto this ring."
    ::= { rsrbRingEntry 8 }

-- *************************************************************************
-- * RSRB Notifications
-- *************************************************************************

rsrbNotificationPrefix OBJECT IDENTIFIER ::= { ciscoRsrbMIB 2 }
rsrbNotifications OBJECT IDENTIFIER ::= { rsrbNotificationPrefix 0 }

rsrbPeerStateChangeNotification NOTIFICATION-TYPE
     OBJECTS { rsrbRemotePeerState }
     STATUS      current
     DESCRIPTION
        "This trap indicates that the state of an RSRB remote peer
         has transitioned to active (psConnected) or inactive
         (psDead or psClosed)."
     ::= { rsrbNotifications 1 }
     
-- *************************************************************************
-- * Conformance Information
-- *************************************************************************
--

rsrbMibConformance   OBJECT IDENTIFIER ::= { ciscoRsrbMIB 3 }
rsrbMibCompliances   OBJECT IDENTIFIER ::= { rsrbMibConformance 1 }
rsrbMibGroups        OBJECT IDENTIFIER ::= { rsrbMibConformance 2 }
--
-- *************************************************************************
-- * Compliance Statements
-- *************************************************************************

rsrbMibCompliance    MODULE-COMPLIANCE
        STATUS current
        DESCRIPTION
                "The compliance statement for rsrb."
        MODULE  -- this module
                MANDATORY-GROUPS {
			rsrbVirtRingGroup, 
                        rsrbRemotePeerGroup,
                        rsrbRingGroup
		}
         ::= { rsrbMibCompliances 1 }
        
rsrbVirtRingGroup OBJECT-GROUP
        OBJECTS {
   	        rsrbVirtRingIPAddr,     
  	        rsrbVirtRingMaxTcpQSize
       }
        STATUS current
        DESCRIPTION
                "A collection of objects providing configuration capability."
        ::= { rsrbMibGroups 1}

rsrbRemotePeerGroup OBJECT-GROUP
        OBJECTS {
               rsrbRemotePeerEncapsulation,
               rsrbRemotePeerIPAddr,
               rsrbRemotePeerLocalIfIndex,
               rsrbRemotePeerState,  
               rsrbRemotePeerPacketsRx,
               rsrbRemotePeerPacketsTx,
               rsrbRemotePeerBytesRx,
               rsrbRemotePeerBytesTx,  
               rsrbRemotePeerExplorersRx,
               rsrbRemotePeerTcpQueue,     
               rsrbRemotePeerDrops,    
               rsrbRemotePeerLocalAck, 
               rsrbRemotePeerVersion       
       }
        STATUS current
        DESCRIPTION
                "A collection of objects providing operational control
                 capability."
        ::= { rsrbMibGroups 2}
        
                        
rsrbRingGroup OBJECT-GROUP
        OBJECTS {
               rsrbRingBridge,   
               rsrbRingLocal,
               rsrbRingType,   
               rsrbRingMacAddr,
               rsrbRingLocalIfIndex,         
               rsrbRingRemoteIpAddress,       
               rsrbRingNbrPacketsFwd
        }
        STATUS current
        DESCRIPTION
                "A collection of objects providing operational control
                 capability."
        ::= { rsrbMibGroups 3}

END
