     RING-MIB 

     DEFINITIONS ::= BEGIN

     -- This file contains the definition of the port mib for Coriolis Networks.

     IMPORTS
     IpAddress
        FROM RFC1155-SMI
     OBJECT-TYPE, MODULE-IDENTITY, Counter64, TimeTicks
        FROM SNMPv2-SMI
     ring, coriolisMibs
        FROM CORIOLIS-MIB
    sysName, DisplayString
        FROM RFC1213-MIB
    chassisIpAddr, chassisElemReachStatus
        FROM DEVICE-MIB
    TruthValue
        FROM SNMPv2-TC
    TRAP-TYPE
        FROM RFC-1215;

          ringMIB MODULE-IDENTITY
              LAST-UPDATED "0007270000Z"
              ORGANIZATION "Coriolis Networks"
              CONTACT-INFO
                      "        Shubhra Garg

                       Postal: 330 Codman Hill Road,
                               Boxboro MA, 01719.

                          Tel: +1 978 264 1904
                          Fax: +1 978 264 1929

                       E-mail: shubhra@coriolisnet.com"
              DESCRIPTION
                      "The MIB module for coriolis rings"
              ::= { ring 8 }

     actPhyRingCount OBJECT-TYPE
     SYNTAX INTEGER
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION
     " Actual number of physical rings passing through the device "
     ::= { ring 1 }

     actPhyRingTable OBJECT-TYPE
     SYNTAX SEQUENCE OF ActPhyRingEntry
     MAX-ACCESS not-accessible
     STATUS current
     DESCRIPTION
     "The actual physical ring table. The number of entries in this 
      table is given by actPhyRingCount"
     ::= { ring 2 }

     actPhyRingEntry OBJECT-TYPE
     SYNTAX ActPhyRingEntry
     MAX-ACCESS not-accessible
     STATUS current
     DESCRIPTION
     "Entry containing information about the attributes of actual
      physical rings passing through a device "
     INDEX { phyRingSlotNo, phyRingPortNo }
     ::= { actPhyRingTable 1 }

     ActPhyRingEntry ::= SEQUENCE {
       phyRingSlotNo
          INTEGER,
       phyRingPortNo
          INTEGER
     }

     phyRingSlotNo OBJECT-TYPE
     SYNTAX INTEGER(1..26)
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION
     " The slot number for the physical ring "
     ::= { actPhyRingEntry 1 }

     phyRingPortNo OBJECT-TYPE
     SYNTAX INTEGER(1..16)
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION
     " The port number of the physical ring "
     ::= { actPhyRingEntry 2 }

     actLogRingCount OBJECT-TYPE
     SYNTAX INTEGER
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION
     " Actual number of logical rings passing through the device "
     ::= { ring 3 }

     actLogRingTable OBJECT-TYPE
     SYNTAX SEQUENCE OF ActLogRingEntry
     MAX-ACCESS not-accessible
     STATUS current
     DESCRIPTION
     "The actual logical ring table. The number of entries in this 
      table is given by actLogRingCount"
     ::= { ring 4 }

     actLogRingEntry OBJECT-TYPE
     SYNTAX ActLogRingEntry
     MAX-ACCESS not-accessible
     STATUS current
     DESCRIPTION
     "Entry containing information about the attributes of actual
      logical rings passing through a device "
     INDEX { phyRingSlotNo, phyRingPortNo, logRingVPortNo }
     ::= { actLogRingTable 1 }

     ActLogRingEntry ::= SEQUENCE {
       logRingVPortNo
          INTEGER,
       logRingElemCount
          INTEGER,
       logRingLambdaStatus
         INTEGER,
       logRingProtoStatusTxt
         OCTET STRING,
       logRingProtoStatus
         INTEGER,
       logRingGneName
         OCTET STRING,	
       logRingGneIpAddr
         IpAddress,
       logRingGneRingSlot
         INTEGER,
       logRingGneRingPort
         INTEGER,
       logRingGneRingVport
         INTEGER,
       logRingUpsNgbrName
         OCTET STRING,
       logRingUpsNgbrIpAddr
         IpAddress,
       logRingUpsNgbrRingSlot
         INTEGER,
       logRingUpsNgbrRingPort
         INTEGER,
       logRingUpsNgbrRingVport
         INTEGER,
       logRingIsConfigured
	 TruthValue,
       logRingAttRingType  
         INTEGER,
       logRingCapacity
         INTEGER,
       logRingCutLocationIp
         IpAddress,	
       logRingCutLocationName
         OCTET STRING,
       logRingIsRingMaster
       	 TruthValue,
       logRingOtherSlot
         INTEGER,
       logRingOtherPort
         INTEGER,
       logRingOtherVport
         INTEGER
     }

     logRingVPortNo OBJECT-TYPE
     SYNTAX INTEGER
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION
     " The lambda number of the logical ring if applicable, else 0 "
     ::= { actLogRingEntry 1 }
    
     logRingElemCount OBJECT-TYPE
     SYNTAX INTEGER
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION
     " Number of Elements on this logical ring "
     ::= { actLogRingEntry 2 }

     logRingLambdaStatus OBJECT-TYPE
     SYNTAX INTEGER {
       noCut(1),
       cut(2),
       restored(3)
     }
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION
     " The status of the lambda for the logical ring "
     ::= { actLogRingEntry 3 }

     logRingProtoStatusTxt OBJECT-TYPE
     SYNTAX OCTET STRING(SIZE(80))
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION
     " The ascii text describing the protocol status of the ring "
     ::= { actLogRingEntry 5 }


     logRingProtoStatus OBJECT-TYPE
     SYNTAX INTEGER {
       normal(1),
       controlChanDn(2),
       setError(3),
       clrError(4),
       setAlarm(5),
       clrAlarm(6),
       lowerLayerDn(7)
     }
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION
     " The protocol status of the logical ring "
     ::= { actLogRingEntry 6 }

     logRingGneName OBJECT-TYPE
     SYNTAX OCTET STRING(SIZE(20))
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION
     " The name of the GNE on the ring. "
     ::= { actLogRingEntry 7 }

     logRingGneIpAddr OBJECT-TYPE
     SYNTAX IpAddress
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION
     " The IP address of the GNE on the ring."
     ::= { actLogRingEntry 8 }

     logRingGneRingSlot OBJECT-TYPE
     SYNTAX INTEGER(1..32)
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION
     " The slot of the connected GNE ring."
     ::= { actLogRingEntry 9 }

     logRingGneRingPort OBJECT-TYPE
     SYNTAX INTEGER(1..32)
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION
     " The port of the connected GNE ring."
     ::= { actLogRingEntry 10 }

     logRingGneRingVport OBJECT-TYPE
     SYNTAX INTEGER
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION
     " The virtual port of the connected GNE ring."
     ::= { actLogRingEntry 11 }

     logRingUpsNgbrName OBJECT-TYPE
     SYNTAX OCTET STRING(SIZE(20))
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION
     " The name of the upstream neighbor on the ring. "
     ::= { actLogRingEntry 12 }

     logRingUpsNgbrIpAddr OBJECT-TYPE
     SYNTAX IpAddress
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION
     " The IP address of the upstream neighbor on the ring. "
     ::= { actLogRingEntry 13 }

     logRingUpsNgbrRingSlot OBJECT-TYPE
     SYNTAX INTEGER(1..32)
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION
     " The slot of the connected upstream neighbors ring."
     ::= { actLogRingEntry 14 }

     logRingUpsNgbrRingPort OBJECT-TYPE
     SYNTAX INTEGER(1..32)
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION
     " The port of the connected upstream neighbors ring."
     ::= { actLogRingEntry 15 }

     logRingUpsNgbrRingVport OBJECT-TYPE
     SYNTAX INTEGER
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION
     " The virtual port of the connected upstream neighbors ring."
     ::= { actLogRingEntry 16 }

     logRingIsConfigured OBJECT-TYPE
     SYNTAX TruthValue
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION
     " Whether this ring has been configured by NM"
     ::= { actLogRingEntry 17 }

     logRingAttRingType OBJECT-TYPE
     SYNTAX INTEGER {
         none(1),
         working(2),
         protected(3)
     }  
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION
     " This object provides the type of the ring."
     ::= { actLogRingEntry 18 }


     logRingCapacity OBJECT-TYPE
     SYNTAX INTEGER
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION
     " The capacity of the ring."
     ::= { actLogRingEntry 19 }

     logRingCutLocationIp OBJECT-TYPE
     SYNTAX IpAddress
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION
     " IP address of the element where ring is cut."
     ::= { actLogRingEntry 20 }

     logRingCutLocationName OBJECT-TYPE
     SYNTAX OCTET STRING(SIZE(80))
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION
     "Name of the element where ring is cut."  
     ::= { actLogRingEntry 21}

     logRingIsRingMaster OBJECT-TYPE
     SYNTAX TruthValue
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION
     " Whether this node is master on the ring. "
     ::= { actLogRingEntry 22 }

     logRingOtherSlot OBJECT-TYPE
     SYNTAX INTEGER
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION
     "The slot of the other(for working, it's protected or vice versa) ring."
     ::= { actLogRingEntry 23 }

     logRingOtherPort OBJECT-TYPE
     SYNTAX INTEGER
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION
     "The port of the other(for working, it's protected or vice versa) ring."
     ::= { actLogRingEntry 24 }

     logRingOtherVport OBJECT-TYPE
     SYNTAX INTEGER
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION
     "The vport of the other(for working, it's protected or vice versa) ring."
     ::= { actLogRingEntry 25 }


     actLogRingElemTable OBJECT-TYPE
     SYNTAX SEQUENCE OF ActLogRingElemEntry
     MAX-ACCESS not-accessible
     STATUS current
     DESCRIPTION
     "The actual logical ring topology table. This describes the Elements on
      a logical ring" 
     ::= { ring 5 }

     actLogRingElemEntry OBJECT-TYPE
     SYNTAX ActLogRingElemEntry
     MAX-ACCESS not-accessible
     STATUS current
     DESCRIPTION
     "Entry containing information about the Elements on a logical ring "
     INDEX { phyRingSlotNo, phyRingPortNo, logRingVPortNo, logRingElemIndex  }
     ::= { actLogRingElemTable 1 }

     ActLogRingElemEntry ::= SEQUENCE {
       logRingElemIndex
         INTEGER,
       logRingElemName
         OCTET STRING,
       logRingElemMACAddr
         OCTET STRING,
       logRingElemIpAddr
         IpAddress,
       logRingElemPortId
         OCTET STRING,
       logRingElemChassisId
         INTEGER,	
       logRingElemActiveMM
         INTEGER,
       logRingElemIsInNeTable
         TruthValue,
       logRingElemIsReachable
         TruthValue,
       logRingElemIsLambdaCutHere
         TruthValue,
       logRingElemChassisCharacter
         INTEGER,
       logRingElemNodeId
         INTEGER,
       logRingElemRxSegCutSeverity
         INTEGER
     }	

     logRingElemIndex OBJECT-TYPE
     SYNTAX INTEGER
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION
     " The position of the Element on the ring starting from the transmit side of GNE"
     ::= { actLogRingElemEntry 1 }

     logRingElemName OBJECT-TYPE
     SYNTAX OCTET STRING(SIZE(21))
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION
     " The name of the Element "
     ::= { actLogRingElemEntry 2 }

     logRingElemMACAddr OBJECT-TYPE
     SYNTAX OCTET STRING(SIZE(6))
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION
     " The MAC address of the Element "
     ::= { actLogRingElemEntry 3 }

     logRingElemIpAddr OBJECT-TYPE
     SYNTAX IpAddress
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION
     " The IP address of the Element "
     ::= { actLogRingElemEntry 4 }

     logRingElemPortId OBJECT-TYPE
     SYNTAX OCTET STRING(SIZE(8))
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION
     " The port id for the logical ring on this NE"
     ::= { actLogRingElemEntry 5 }

     logRingElemChassisId OBJECT-TYPE
     SYNTAX INTEGER {
       optiFlow5500(1),
       optiFlow5000(2),
       optiFlow3500(3),
       optiFlow3000(4),
       optiFlow1010(21)
     }
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION
     " The chassis identifier of the Element"
     ::= { actLogRingElemEntry 6 }

     logRingElemActiveMM OBJECT-TYPE
     SYNTAX INTEGER {
       primary(1),
       secondary(2)
     }
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION
     " The active management module of the Element"
     ::= { actLogRingElemEntry 7 }

     logRingElemIsInNeTable OBJECT-TYPE
     SYNTAX TruthValue
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION
     " Indicates whether this element has it's entry in the cfgNeTable"
     ::= { actLogRingElemEntry 8 }

     logRingElemIsReachable OBJECT-TYPE
     SYNTAX TruthValue
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION
     " Indicates whether this element is reachable on this ring. "
     ::= { actLogRingElemEntry 9 }

     logRingElemIsLambdaCutHere OBJECT-TYPE
     SYNTAX TruthValue
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION
     " Indicates whether there is a lambda cut at this element. "
     ::= { actLogRingElemEntry 10 }

     logRingElemChassisCharacter OBJECT-TYPE
     SYNTAX INTEGER {
       gne(1),
       ne(2),
       sne(3)
     }
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION 
	 "The chassis character of the element."
     ::= { actLogRingElemEntry 11 }

    logRingElemNodeId OBJECT-TYPE
     SYNTAX INTEGER(0..64)
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION 
	 "The node id of the element on the ring.  Value 64 means element
	  doesn't have node id. "
     ::= { actLogRingElemEntry 12 }

    logRingElemRxSegCutSeverity OBJECT-TYPE
     SYNTAX INTEGER {
       noLoss(1),
       sonetProtection(2),
       serviceAffecting(3)
     }
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION 
	 "The cut severity of RX segement of this element on the ring. Cut 
	  severity indicates the effect of cutting RX segment on service level.
	  noLoss           => segment doesn't carry any user traffic
	  sonetProtection  => segment carries user traffic but 50ms restoration
	                      is available if segment is cut.
	  serviceAffecting => segment carries user traffic but 50ms restoration
	                      is not available. This could be because of either
			      ring is configured in unprotected mode or 
			      existing cut in the ring. "
     ::= { actLogRingElemEntry 13 }

     cfgRingCount OBJECT-TYPE
     SYNTAX INTEGER
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION 
     "The number of configured rings"
     ::= { ring 6}

     cfgRingTable OBJECT-TYPE
     SYNTAX SEQUENCE OF CfgRingEntry
     MAX-ACCESS not-accessible
     STATUS current
     DESCRIPTION
     "The configured ring table. The number of entries in this 
      table is given by cfgRingCount"
     ::= { ring 7 }

     cfgRingEntry OBJECT-TYPE
     SYNTAX CfgRingEntry
     MAX-ACCESS not-accessible
     STATUS current
     DESCRIPTION
     "Entry containing information about the attributes of configured
      rings passing through a device "
     INDEX { phyRingSlotNo, phyRingPortNo, logRingVPortNo }
     ::= { cfgRingTable 1 }

     CfgRingEntry ::= SEQUENCE {
       cfgRingRowStatus
          INTEGER,
       cfgRingAdminCost
          INTEGER,
       cfgRingName
          DisplayString,
       cfgRingMeshFactor
          INTEGER,
       cfgRingEirOverSub
          INTEGER,
       cfgRingProtectMode
          INTEGER,
       cfgRingExceptNes
          DisplayString,
       cfgRingNeTopo
          DisplayString,
       cfgRingIpMode
          INTEGER,
       cfgRingFrameMode
          INTEGER,
       cfgRingOperStatus
          INTEGER,
       cfgRingCurNumTdmCkts
          INTEGER,
       cfgRingCurNumFreeChans
          INTEGER,
       cfgRingNeAdminCost
          DisplayString,
       cfgRingCurNumDataCkts
          INTEGER,
       cfgRingCurAllocTdmBwKbits
          INTEGER,
       cfgRingCurAllocCirBwKbits
          INTEGER,
       cfgRingCurAllocEirBwKbits
          INTEGER,
       cfgRingCurAvailBwKbits
          INTEGER,
       cfgRingTdmAvgUtilPercent
          INTEGER,
       cfgRingTdmLastUtilPercent
          INTEGER,
       cfgRingTdmMaxUtilPercent
          INTEGER,
       cfgRingDataAvgUtilPercent
          INTEGER,
       cfgRingDataLastUtilPercent
          INTEGER,
       cfgRingDataMaxUtilPercent
          INTEGER,
       cfgRingTotalAvgUtilPercent
          INTEGER,
       cfgRingTotalLastUtilPercent
          INTEGER,
       cfgRingTotalMaxUtilPercent
          INTEGER,
       cfgRingTdmTrafficKbits
          Counter64,
       cfgRingTdmLastTrafficKbits
          Counter64,
       cfgRingDataTrafficKbits
          Counter64,
       cfgRingDataLastTrafficKbits
          Counter64,
       cfgRingDataNumPkts
          Counter64,
       cfgRingDataLastNumPkts
          Counter64,
       cfgRingStatsCollElapsedTime
          TimeTicks,
       cfgRingStatsPeriodTime
	  TimeTicks,
       cfgRingTimeSinceLastOperStatusChange
	  TimeTicks,
       cfgRingTdmMinUtilPercent
          INTEGER,
       cfgRingDataMinUtilPercent
          INTEGER,
       cfgRingTotalMinUtilPercent
          INTEGER,
      cfgRingAttUpsrSwitchCmd
         INTEGER,
      cfgRingIsRevertiveModeEnabled  TruthValue,
      cfgRingWaitToRestorePeriod     INTEGER,
      cfgRingCurTdmAvailBwKbits
          INTEGER,
      cfgRingCurDataAvailBwKbits
          INTEGER
     }

     cfgRingRowStatus OBJECT-TYPE
     SYNTAX INTEGER {
       active(1),
       out-of-service(2),
       createAndGo(4),	
       createAndWait(5),
       delete(6)
     }
     MAX-ACCESS read-write
     STATUS current
     DESCRIPTION
     " The row status variable. In order to modify the attributes of the ring
       ring has to be put in out-of-service first."
     ::= { cfgRingEntry 1 }

     cfgRingAdminCost OBJECT-TYPE
     SYNTAX INTEGER
     MAX-ACCESS read-write
     STATUS current
     DESCRIPTION
     " Admin cost of the ring. In the normal case, all rings should have same 
       admin cost. Whenever a ring is needed to be serviced, increase the admin 
       cost of the ring. This would force the GNE to move off TCs one by one of 
       the ring if there is alternate path available with lower admin cost. This 
       way there will not be a sudden disruption in the case where you bring the 
       ring down suddenly."
     DEFVAL {100}
     ::= { cfgRingEntry 2 }

     cfgRingName OBJECT-TYPE
     SYNTAX DisplayString(SIZE(0..20))
     MAX-ACCESS read-write
     STATUS current
     DESCRIPTION
     " The name of the configured ring "
     ::= { cfgRingEntry 3 }

     cfgRingMeshFactor OBJECT-TYPE
     SYNTAX INTEGER(1..16)
     MAX-ACCESS read-write
     STATUS current
     DESCRIPTION
     " Traffic pattern on ring. The value varies between 1 (in case of hub traffic 
       pattern)and n/2 (in case of mesh traffic pattern) where n is number of nodes 
       in ring. This describes the inter-connection topology between nodes of the ring.
       Internally this factor is multiplied by n-1 to get the number of 
       inter-connections between nodes of the ring."
     ::= { cfgRingEntry 4 }

     cfgRingEirOverSub OBJECT-TYPE
     SYNTAX INTEGER(100..65000)
     MAX-ACCESS read-write
     STATUS current
     DESCRIPTION
     " Over subscription percentage on EIR portion of BW allocated on ring"
     ::= { cfgRingEntry 5 }

     cfgRingProtectMode OBJECT-TYPE
     SYNTAX INTEGER {
       none(1),
       upsr(2),
       blsr(3),
       flex(4)
       }
     MAX-ACCESS read-write
     STATUS current
     DESCRIPTION
     " The protection mode of the ring"
     ::= { cfgRingEntry 6 }

     cfgRingExceptNes OBJECT-TYPE
     SYNTAX DisplayString(SIZE(0..496))
     MAX-ACCESS read-write
     STATUS current
     DESCRIPTION
     " Comma separated list of IP address that are physically present on the ring 
       but no connections are allowed to be setup. This is useful for traffic 
       management where there is a bandwidth crunch on the ring. But some of the 
       NEs on that particular ring have alternate paths through the other rings."
     ::= { cfgRingEntry 7 }

     cfgRingNeTopo OBJECT-TYPE
     SYNTAX DisplayString(SIZE(0..496))
     MAX-ACCESS read-write
     STATUS current
     DESCRIPTION
     " Desired topology of the ring (starting from transmit direction) in the form 
       of comma separated list of IP addresses. If the actual topology mismatches 
       with the desired topology, an event get generated."
     ::= { cfgRingEntry 8 }

     cfgRingIpMode OBJECT-TYPE
     SYNTAX INTEGER {
       gneSupplied(1),
       takenFromNe(2)
       }
     MAX-ACCESS read-write
     STATUS current
     DESCRIPTION
     " Source of ip addresses of NEs. If it is gneSupplied, GNE over writes
       the ip address of NE from its configured tables. Otherwise it takes it
       from NE itself"
     ::= { cfgRingEntry 9 }

     cfgRingFrameMode OBJECT-TYPE
     SYNTAX INTEGER {
      axson(1),
      pos(2),
	  axsonNBOS(3)
      }
     MAX-ACCESS read-write
     STATUS current
     DESCRIPTION
     " The frame mode on the ring"
     ::= { cfgRingEntry 10 }

     cfgRingOperStatus OBJECT-TYPE
     SYNTAX INTEGER {
       up(1),
       down(2)
     }
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION
     " The operational status of the configured ring "
     ::= { cfgRingEntry 13 }

     cfgRingCurNumTdmCkts OBJECT-TYPE
     SYNTAX INTEGER
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION
     " The number of TDM ckts traversing on the ring currently."
     ::= { cfgRingEntry 14 }

     cfgRingCurNumFreeChans OBJECT-TYPE
     SYNTAX INTEGER
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION
     " The number of free channels available on the ring currently. "
     ::= { cfgRingEntry 15 }

     cfgRingNeAdminCost OBJECT-TYPE
     SYNTAX DisplayString(SIZE(0..720))
     MAX-ACCESS read-write
     STATUS current
     DESCRIPTION
     " The NE specific admin costs on the ring as comma separated list where
       list entry is of form <ip address in dotted notation>:<admin cost>. 
       Admin costs for the NE's that are present on this ring but not specified
       in this list are inherited from ring admin cost. Admin cost per NE per
       ring is useful in traffic management"
     ::= { cfgRingEntry 16 }

     cfgRingCurNumDataCkts OBJECT-TYPE
     SYNTAX INTEGER
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION
     " The number of data ckts traversing on the ring currently."
     ::= { cfgRingEntry 17 }

     cfgRingCurAllocTdmBwKbits OBJECT-TYPE
     SYNTAX INTEGER
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION
     " The bandwidth on the ring that is currently being reserved by TDM ckts
       passing through ring."
     ::= { cfgRingEntry 18 }

     cfgRingCurAllocCirBwKbits OBJECT-TYPE
     SYNTAX INTEGER
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION
     " The bandwidth on the ring that is currently being reserved for CIR by
       data ckts passing through the ring."
     ::= { cfgRingEntry 19 }

     cfgRingCurAllocEirBwKbits OBJECT-TYPE
     SYNTAX INTEGER
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION
     " The bandwidth on the ring that is currently being reserved for EIR by
       data ckts passing through the ring."
     ::= { cfgRingEntry 20 }

     cfgRingCurAvailBwKbits OBJECT-TYPE
     SYNTAX INTEGER
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION
     " The current available bandwidth on the ring "
     ::= { cfgRingEntry 21 }
 
     cfgRingTdmAvgUtilPercent OBJECT-TYPE
     SYNTAX INTEGER(0..100)
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION
     " Average ring utilization for TDM traffic since last reset "
     ::= { cfgRingEntry 22 }

     cfgRingTdmLastUtilPercent OBJECT-TYPE
     SYNTAX INTEGER(0..100)
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION
     " Ring utilization for TDM traffic during last period."
     ::= { cfgRingEntry 23 }

     cfgRingTdmMaxUtilPercent OBJECT-TYPE
     SYNTAX INTEGER(0..100)
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION
     " Max. ring utilization for TDM traffic since last reset "
     ::= { cfgRingEntry 24 }

     cfgRingDataAvgUtilPercent OBJECT-TYPE
     SYNTAX INTEGER(0..100)
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION
     " Average ring utilization for Data traffic since last reset "
     ::= { cfgRingEntry 25 }
     
     cfgRingDataLastUtilPercent OBJECT-TYPE
     SYNTAX INTEGER(0..100)
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION
     " Ring utilization for Data traffic during last period "
     ::= { cfgRingEntry 26 }

     cfgRingDataMaxUtilPercent OBJECT-TYPE
     SYNTAX INTEGER(0..100)
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION
     " Max. ring utilization for Data traffic since last reset "
     ::= { cfgRingEntry 27 }

     cfgRingTotalAvgUtilPercent OBJECT-TYPE
     SYNTAX INTEGER(0..100)
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION
     " Average ring utlization for combined Data and TDM traffic "
     ::= { cfgRingEntry 28 }
     
     cfgRingTotalLastUtilPercent OBJECT-TYPE
     SYNTAX INTEGER(0..100)
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION
     " Ring utilization for TDM and Data traffic during last period "
     ::= { cfgRingEntry 29 }

     cfgRingTotalMaxUtilPercent OBJECT-TYPE
     SYNTAX INTEGER(0..100)
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION
     " Max. ring utilization for TDM and Data traffic since last reset "
     ::= { cfgRingEntry 30 }

     cfgRingTdmTrafficKbits OBJECT-TYPE
     SYNTAX Counter64
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION
     " TDM traffic transmitted on ring since last reset "
     ::= { cfgRingEntry 31 }

     cfgRingTdmLastTrafficKbits OBJECT-TYPE
     SYNTAX Counter64
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION
     " TDM traffic transmitted on ring during current period "
     ::= { cfgRingEntry 32 }

     cfgRingDataTrafficKbits OBJECT-TYPE
     SYNTAX Counter64
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION
     " Data traffic transmitted on ring since last reset "
     ::= { cfgRingEntry 33 }

     cfgRingDataLastTrafficKbits OBJECT-TYPE
     SYNTAX Counter64
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION
     " Data traffic trasnmitted on ring during last period "
     ::= { cfgRingEntry 34 }

     cfgRingDataNumPkts OBJECT-TYPE
     SYNTAX Counter64
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION
     " Number of Data packets on ring since last reset "
     ::= { cfgRingEntry 35 }

     cfgRingDataLastNumPkts OBJECT-TYPE
     SYNTAX Counter64
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION
     " Number of Data packets on ring during last period "
     ::= { cfgRingEntry 36 }

     cfgRingStatsCollElapsedTime OBJECT-TYPE
	 SYNTAX TimeTicks
	 MAX-ACCESS read-only
	 STATUS current
	 DESCRIPTION
	 " The time elapsed since the beginning of collection of ring statistics "
	 ::= { cfgRingEntry 37 }

     cfgRingStatsPeriodTime OBJECT-TYPE
	 SYNTAX TimeTicks
	 MAX-ACCESS read-only
	 STATUS current
	 DESCRIPTION
	 " The period of status collection interval"
	 ::= { cfgRingEntry 38 }

     cfgRingTimeSinceLastOperStatusChange OBJECT-TYPE
	 SYNTAX TimeTicks
	 MAX-ACCESS read-only
	 STATUS current
	 DESCRIPTION
	 " The time since the last change in the oper status of the ring "
	 ::= { cfgRingEntry 39 }     

     cfgRingTdmMinUtilPercent OBJECT-TYPE
     SYNTAX INTEGER(0..100)
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION
     " Mininum ring utilization for TDM traffic since last reset "
     ::= { cfgRingEntry 40 }

     cfgRingDataMinUtilPercent OBJECT-TYPE
     SYNTAX INTEGER(0..100)
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION
     " Mininum ring utilization for data traffic since last reset "
     ::= { cfgRingEntry 41 }

     cfgRingTotalMinUtilPercent OBJECT-TYPE
     SYNTAX INTEGER
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION
     "Mininum ring utilization for combined TDM and Data traffic since 
      last reset "
     ::= { cfgRingEntry 42 }

     cfgRingAttUpsrSwitchCmd OBJECT-TYPE
     SYNTAX INTEGER {
      axsonUpsrScClear(1),
      axsonUpsrScLockoutOfProtection(2),
      axsonUpsrScForcedSwToProtection(3),
      axsonUpsrScForcedSwToWorking(4),
      axsonUpsrScManualSwToProtection(5),
      axsonUpsrScManualSwToWorking(6)
     }
     MAX-ACCESS read-write
     STATUS current
     DESCRIPTION
     "This object defines the UPSR switch commands that amy be configured.
      These commands are configurable and static. The priority of the 
      commands in relation to APS and revertive switching is given in 
      the enumeration above."
     ::= { cfgRingEntry 43 }

     cfgRingIsRevertiveModeEnabled OBJECT-TYPE
     SYNTAX TruthValue
     MAX-ACCESS read-write
     STATUS current
     DESCRIPTION
     "If the revertive mode is enabled and the UPSR switch
      command is clear, then, if the working ring gets cut,
      the traffic is moved to the protected ring. When the
      working ring is restored from the cut, traffic will
      be reverted to the working ring."
     ::= { cfgRingEntry 44 }

     cfgRingWaitToRestorePeriod OBJECT-TYPE
     SYNTAX INTEGER(5..60)
     MAX-ACCESS read-write
     STATUS current
     DESCRIPTION
     "This object provide the time period in minutes between the
      time the working ring gets restored from the cut and the time
      when the traffic is reverted to the working ring."
     ::= { cfgRingEntry 45 }

     cfgRingCurTdmAvailBwKbits OBJECT-TYPE
     SYNTAX INTEGER
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION
     " The current tdm available bandwidth on the ring "
     ::= { cfgRingEntry 46 }

     cfgRingCurDataAvailBwKbits OBJECT-TYPE
     SYNTAX INTEGER
     MAX-ACCESS read-only
     STATUS current
     DESCRIPTION
     " The current pkt available bandwidth on the ring "
     ::= { cfgRingEntry 47 }
 


     ringOperStatusChange TRAP-TYPE
     ENTERPRISE coriolisMibs
     VARIABLES {cfgRingName, cfgRingOperStatus}
     DESCRIPTION
     "change in operational status of a configured logical ring"
     ::= 3

     neReachabilityChange TRAP-TYPE
     ENTERPRISE coriolisMibs
     VARIABLES { sysName, chassisIpAddr, chassisElemReachStatus }
     DESCRIPTION 
     "change in the reachability status of NE"
     ::= 4

     lambdaStatusChange TRAP-TYPE
     ENTERPRISE coriolisMibs
     VARIABLES {cfgRingName, logRingLambdaStatus, logRingCutLocationIp,logRingCutLocationName}
     DESCRIPTION 
     "change in the fiber status of the ring"
    ::= 5

     ringProtoErrorStatusChange TRAP-TYPE
     ENTERPRISE coriolisMibs
     VARIABLES {cfgRingName, logRingProtoStatusTxt, logRingProtoStatus}
     DESCRIPTION
     "Ring error detected/cleared"
     ::= 6

     ringProtoWarnStatusChange TRAP-TYPE
     ENTERPRISE coriolisMibs
     VARIABLES {cfgRingName, logRingProtoStatusTxt, logRingProtoStatus}
     DESCRIPTION
     "Ring warning detected/cleared"
     ::= 7    
    
     ringTopoChange TRAP-TYPE
     ENTERPRISE coriolisMibs
     VARIABLES {cfgRingName}
     DESCRIPTION
     "Ring topology changed"
     ::= 56    
    
     END







