-- --------------------------------------------------------------------
-- CISCO ATM PNNI MIB
--
-- Sep 1996, Yehuda Bamnolker
--
-- Copyright (c) 1996-1997 by cisco Systems, Inc.
-- All rights reserved.
-- *****************************************************************

CISCO-PNNI-MIB DEFINITIONS ::= BEGIN

        IMPORTS
                MODULE-IDENTITY, OBJECT-TYPE, Integer32
                        FROM SNMPv2-SMI
                TEXTUAL-CONVENTION, TruthValue, DisplayString
                        FROM SNMPv2-TC
                MODULE-COMPLIANCE, OBJECT-GROUP
                        FROM SNMPv2-CONF
                pnniNodeEntry, pnniIfEntry, pnniRouteAddrEntry
                        FROM PNNI-MIB
                ciscoMgmt
                        FROM CISCO-SMI;


ciscoPnniMIB MODULE-IDENTITY
        LAST-UPDATED    "9610280000Z"
        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-atm@cisco.com"
        DESCRIPTION
                "The MIB module for managing Cisco specific
                 extensions to the ATM Forum PNNI MIB."
        REVISION        "9610280000Z"
        DESCRIPTION
                "Initial version of this MIB module."
        ::= { ciscoMgmt 65 }    -- assigned by cana@cisco.com


ciscoPnniMIBObjects OBJECT IDENTIFIER ::= { ciscoPnniMIB 1 }


    E164Address ::= TEXTUAL-CONVENTION
        STATUS        current
        DESCRIPTION
            "A native E.164 address, encoded in BCD format.  An
             address of length zero indicates that no address is
             specified."
        SYNTAX        OCTET STRING (SIZE(0|8))


-- The Base Group (per switching system objects)

ciscoPnniBase OBJECT IDENTIFIER ::= { ciscoPnniMIBObjects 1 }

ciscoPnniBackgroundRoutes OBJECT-TYPE
        SYNTAX        TruthValue
        MAX-ACCESS    read-write
        STATUS        current
        DESCRIPTION
            "Specifies whether background route computation is enabled
             on this switching system.  In this mode, multiple
             background trees are precomputed for several service
             categories and QoS metrics.  If no route is found in the
             background trees that satisfies the QoS requirements of a
             particular setup request, route selection reverts to
             on-demand computation.

             When the value of this object is `false', only on-demand
             route computation is used (i.e., a separate route
             computation is performed for each SETUP or ADD PARTY
             message received over a UNI or IISP interface, or for which
             this node is a PNNI entry border node).

             It is recommended that background route computation be
             enabled in large networks, due to better scalability in
             terms of processing requirements."
        DEFVAL { false }
        ::= { ciscoPnniBase 1 }

ciscoPnniBackgroundPollInterval OBJECT-TYPE
        SYNTAX        INTEGER (1..60)
        UNITS         "seconds"
        MAX-ACCESS    read-write
        STATUS        current
        DESCRIPTION
            "Specifies how often the switching system polls for a
             significant change that triggers new computation of the
             background routes.

             Increasing the value of this object causes the switching
             system to throttle background route computation."
        DEFVAL { 10 }
        ::= { ciscoPnniBase 2 }

ciscoPnniBackgroundInsignificantThreshold OBJECT-TYPE
        SYNTAX        INTEGER (1..100)
        UNITS         "changes"
        MAX-ACCESS    read-write
        STATUS        current
        DESCRIPTION
            "Specifies the number of insignificant changes necessary to
             trigger a new computation of the background routes."
        DEFVAL { 32 }
        ::= { ciscoPnniBase 3 }

ciscoPnniResourceMgmtPollInterval OBJECT-TYPE
        SYNTAX        INTEGER (1..60)
        UNITS         "seconds"
        MAX-ACCESS    read-write
        STATUS        current
        DESCRIPTION
            "Specifies how often PNNI polls resource management to
             update the values of local interface metrics and
             attributes.

             The value of this object impacts the number of new
             instances of PTSEs originated by this switching system.  A
             larger interval reduces the number of new instances of
             PTSEs caused by interface traffic fluctuation.  A smaller
             interval allows PNNI to track traffic fluctuations more
             quickly, at the expense of increased processing load.

             In normal situations, this object should not be changed
             from its default value.  Care should be taken when
             adjusting this parameter so as not to overload switch
             processing."
        DEFVAL { 5 }
        ::= { ciscoPnniBase 4 }

ciscoPnniAdminWeightMode OBJECT-TYPE
        SYNTAX        INTEGER {
                                uniform(1),
                                linespeed(2)
                                }
        MAX-ACCESS    read-write
        STATUS        current
        DESCRIPTION
            "Specifies the mode of default administrative weight
             assignment for PNNI interfaces.  When this value is set
             to `uniform', by default the administrative weight of
             each PNNI interface is set to 5040, as defined in the
             ATM Forum PNNI 1.0 Specification.  When this value is
             set to `linespeed', by default the administrative weight
             is set based on the linespeed or maximum cell rate of
             the interface.

             In the absence of other constraints, the `uniform' mode
             causes PNNI routing to minimize the number of hops.
             Basing administrative weight on linespeed allows path
             selection to prefer paths along higher bandwidth
             interfaces."
        DEFVAL { uniform }
        ::= { ciscoPnniBase 5 }

ciscoPnniMaxAdminWeightPercentage OBJECT-TYPE
        SYNTAX        INTEGER (0 | 100..2000)
        MAX-ACCESS    read-write
        STATUS        current
        DESCRIPTION
            "Specifies the maximum acceptable administrative weight
             for alternate routes as a percentage factor of the least
             administrative weight of any route to the destination.
             The constraint on administrative weight only takes effect
             when background route computation is enabled.

             The constraint on administrative weight increases network
             efficiency under heavy loads by preventing alternate routes
             that use too many network resources from being specified.
             This constraint provides a generalized form of a hop count
             limit.

             The distinguished value zero indicates that there is no
             constraint on administrative weight for alternate routes.
             All other valid values are greater than or equal to 100
             percent."
        DEFVAL { 0 }
        ::= { ciscoPnniBase 6 }

ciscoPnniRouteOptimizationThreshold OBJECT-TYPE
        SYNTAX         INTEGER (5..100)
        UNITS          "percent"
        MAX-ACCESS     read-write
        STATUS         current
        DESCRIPTION
            "Specifies the percentage reduction in the administrative
             weight of the existing path required to trigger route
             optimization.   When route optimization is enabled and the
             threshold is exceeded, the existing path is partially torn
             down and a new path is established."
        DEFVAL { 30 }
        ::= { ciscoPnniBase 7 }

-- Cisco PNNI Node Table

ciscoPnniNode OBJECT IDENTIFIER ::= { ciscoPnniMIBObjects 2 }

ciscoPnniNodeTable OBJECT-TYPE
        SYNTAX        SEQUENCE OF CiscoPnniNodeEntry
        MAX-ACCESS    not-accessible
        STATUS        current
        DESCRIPTION
            "A table of cisco specific attributes that affect the
             operation of a PNNI logical node."
        ::= { ciscoPnniNode 1 }

ciscoPnniNodeEntry OBJECT-TYPE
        SYNTAX        CiscoPnniNodeEntry
        MAX-ACCESS    not-accessible
        STATUS        current
        DESCRIPTION
            "An entry in the table, containing cisco specific
             information about a node in this switching system."
        AUGMENTS      { pnniNodeEntry }
        ::= { ciscoPnniNodeTable 1 }

CiscoPnniNodeEntry ::=
        SEQUENCE {
                ciscoPnniNodeAutoSummary        TruthValue,
                ciscoPnniNodeRedistributeStatic TruthValue,
                ciscoPnniNodePtseRequest        INTEGER,
                ciscoPnniNodeName               DisplayString,
                ciscoPnniNodeScopeMappingMode   INTEGER
                }

ciscoPnniNodeAutoSummary OBJECT-TYPE
        SYNTAX        TruthValue
        MAX-ACCESS    read-create
        STATUS        current
        DESCRIPTION
            "Specifies whether automatic generation of internal
             summary address(es) based on the switch address(es) or
             node ID is enabled.  Automatically generated summary
             addresses can only be removed by setting this object to
             `false'.  They cannot be removed through the
             pnniSummaryTable in the ATM Forum PNNI MIB.

             For lowest-level nodes with auto-summary enabled, each
             switching system generates one or more 13-byte summary
             address prefixes based on the switch address(es).  Switch
             addresses are configured in the ciscoAtmSwAddrTable."
        DEFVAL { true }
        ::= { ciscoPnniNodeEntry 1 }

ciscoPnniNodeRedistributeStatic OBJECT-TYPE
        SYNTAX        TruthValue
        MAX-ACCESS    read-create
        STATUS        current
        DESCRIPTION
            "Specifies whether redistribution of ATM static routes
             to the PNNI routing domain is enabled.  Exterior static
             routes are advertised in exterior reachable address
             PTSEs.  Internal static routes are advertised in
             internal reachable address PTSEs."
        DEFVAL { true }
        ::= { ciscoPnniNodeEntry 2 }

ciscoPnniNodePtseRequest OBJECT-TYPE
        SYNTAX        INTEGER(1..1000)
        MAX-ACCESS    read-create
        STATUS        current
        DESCRIPTION
            "Specifies the maximum number of PTSEs that can be
             requested in one PTSE request packet."
        DEFVAL { 32 }
        ::= { ciscoPnniNodeEntry 3 }

ciscoPnniNodeName OBJECT-TYPE
        SYNTAX        DisplayString
        MAX-ACCESS    read-create
        STATUS        current
        DESCRIPTION
            "Specifies the textual name of the PNNI node.  The node
             name is distributed to all other nodes via PNNI
             flooding, using a cisco specific encoding in the System
             Capabilities information group.  This allows all cisco
             PNNI nodes to use this node name to identify this PNNI
             node.

             The default value of the node name is the value of the
             switching system's host name."
        ::= { ciscoPnniNodeEntry 4 }

ciscoPnniNodeScopeMappingMode OBJECT-TYPE
        SYNTAX        INTEGER {
                                automatic(1),
                                manual(2)
                                }
        MAX-ACCESS    read-create
        STATUS        current
        DESCRIPTION
            "Specifies the configuration mode of the mapping from
             organizational scope values (used at UNI interfaces) to
             PNNI scope (i.e., in terms of PNNI routing level
             indicators).

             In `automatic' mode, for each organizational scope value
             the corresponding PNNI level is the minimum of the ATM
             Forum PNNI 1.0 default value (see Section 5.3.6 of
             PNNI 1.0) and the level l of this node:

                 org scope    ATM Forum default level    auto mode level
                    1-3                 96                  min(l,96)
                    4-5                 80                  min(l,80)
                    6-7                 72                  min(l,72)
                    8-10                64                  min(l,64)
                   11-12                48                  min(l,48)
                   13-14                32                  min(l,32)
                 15(global)              0                      0

             Use of the `automatic' mode ensures that all
             organizational scope values cover an area at least as
             wide as this node's peer group.

             When this object is written with the value `automatic',
             objects in the pnniScopeMappingEntry for this node are
             overwritten.  These objects cannot be modified while 
             this object is set to `automatic'.

             When this object is written with the value `manual',
             the objects in the pnniScopeMappingEntry for this node
             are allowed to be modified."
        DEFVAL { automatic }
        ::= { ciscoPnniNodeEntry 5 }


-- Cisco PNNI Interface Table

ciscoPnniInterface OBJECT IDENTIFIER ::= { ciscoPnniMIBObjects 3 }

ciscoPnniIfTable OBJECT-TYPE
        SYNTAX        SEQUENCE OF CiscoPnniIfEntry
        MAX-ACCESS    not-accessible
        STATUS        current
        DESCRIPTION
            "A table of cisco specific attributes used to configure a
             physical interface or subinterface on a switching system
             which is capable of being used for PNNI routing.
             Interfaces may represent physical connection points (i.e.
             copper/fiber connection points) or VPCs which have been
             configured for PNNI's use."
        ::= { ciscoPnniInterface 1 }

ciscoPnniIfEntry OBJECT-TYPE
        SYNTAX        CiscoPnniIfEntry
        MAX-ACCESS    not-accessible
        STATUS        current
        DESCRIPTION
            "An entry in the table, containing cisco specific PNNI
             information about an interface in this switching system."
        AUGMENTS      { pnniIfEntry }
        ::= { ciscoPnniIfTable 1 }

CiscoPnniIfEntry ::=
        SEQUENCE {
                ciscoPnniIfLinkSelection          INTEGER,
                ciscoPnniIfRouteOptimization      INTEGER,
                ciscoPnniIfRouteOptimInterval     Integer32,
                ciscoPnniIfRouteOptimStartHour    Integer32,
                ciscoPnniIfRouteOptimStartMinute  Integer32,
                ciscoPnniIfRouteOptimEndHour      Integer32,
                ciscoPnniIfRouteOptimEndMinute    Integer32
                }

ciscoPnniIfLinkSelection OBJECT-TYPE
        SYNTAX        INTEGER {
                                adminWeightMinimize(1),
                                blockingMinimize(2),
                                transmitSpeedMaximize(3),
                                loadBalance(4)
                                }
        MAX-ACCESS    read-write
        STATUS        current
        DESCRIPTION
            "For CBR or VBR call setups, specifies a method for
             selecting one link out of multiple links with sufficient
             resources to the same neighbor node.  Link selection
             applies whenever the port specified in the Designated
             Transit List (DTL) is zero and there are multiple
             interfaces to the next node.  Valid values are:
                adminWeightMinimize   - transmits call on the interface
                                        with the lowest administrative
                                        weight,
                blockingMinimize      - Minimizes subsequent call
                                        blocking,
                transmitSpeedMaximize - Transmits call on highest speed
                                        parallel link,
                loadBalance           - Balances calls across all
                                        parallel links.

             When multiple parallel links are configured inconsistently,
             the order of precedence of configured values is
             `adminWeightMinimize', `blockingMinimize',
             `transmitSpeedMaximize', and then `loadBalance'; i.e., if
             any of the links is configured as adminWeightMinimize, that
             is used for the entire link group.

             For Best Effort call setups (UBR or ABR), load balancing is
             always used."
        DEFVAL { blockingMinimize }
        ::= { ciscoPnniIfEntry 1 }

ciscoPnniIfRouteOptimization OBJECT-TYPE
          SYNTAX    INTEGER {
                disable            (1),
                soft               (2),
                switched           (3),
                switchedAndSoft    (4)
                }
          MAX-ACCESS    read-write
          STATUS        current
          DESCRIPTION
          "To enable or disable the route optimization
          (automatic rerouting) feature on an ATM interface.
 
           To disable route optimization on the interface,
           set this object to 'disable'.
 
           To enable route optimization only for ATM
           soft PVCs on the interface, set this object
           to 'soft'.
 
           To enable route optimization only for ATM
           switched PVCs on the interface, set this
           object to 'switched'.
 
           To enable route optimization for both ATM
           soft PVCs and SVCs on the interface,
           set this object to 'switchedAndSoft'."
          DEFVAL {disable}
          ::= { ciscoPnniIfEntry 2 }

ciscoPnniIfRouteOptimInterval OBJECT-TYPE
          SYNTAX     Integer32 (10..10000)
          UNITS          "minutes"
          MAX-ACCESS     read-write
          STATUS         current
          DESCRIPTION
          "Specifies how often route optimization takes
          place on this interface. This object applies only when
          the object ciscoPnniIfRouteOptimization is NOT set
          to 'disable'."
          DEFVAL { 60 }
          ::= { ciscoPnniIfEntry 3 }
 
ciscoPnniIfRouteOptimStartHour  OBJECT-TYPE
          SYNTAX         Integer32 (0..23)
          UNITS          "hour"
          MAX-ACCESS     read-write
          STATUS         current
          DESCRIPTION
          "Specifies the start hour of Time-of-Day
          route optimization on an ATM interface. This
          object applies only when the object
          ciscoPnniIfRouteOptimization is NOT set to
          'disable'."
          DEFVAL { 0 }
          ::= { ciscoPnniIfEntry 4 }

ciscoPnniIfRouteOptimStartMinute  OBJECT-TYPE
          SYNTAX         Integer32 (0..59)
          UNITS          "minutes"
          MAX-ACCESS     read-write
          STATUS         current
          DESCRIPTION
          "Specifies the start minute of Time-of-Day
          route optimization on an ATM interface.
          This object applies only when the object
          ciscoPnniIfRouteOptimization is NOT set to
          'disable'."
         DEFVAL { 0 }
          ::= { ciscoPnniIfEntry 5 }

ciscoPnniIfRouteOptimEndHour  OBJECT-TYPE
          SYNTAX         Integer32 (0..23)
          UNITS          "hour"
          MAX-ACCESS     read-write
          STATUS         current
          DESCRIPTION
          "Specifies the end hour of Time-Of-Day
          route optimization on an ATM interface.
          This object applies only when the object
          ciscoPnniIfRouteOptimization is NOT set to
          'disable'."
          DEFVAL { 0 }
          ::= { ciscoPnniIfEntry 6 }
 
ciscoPnniIfRouteOptimEndMinute  OBJECT-TYPE
          SYNTAX         Integer32 (0..59)
          UNITS          "minutes"
          MAX-ACCESS     read-write
          STATUS         current
          DESCRIPTION
          "Specifies the end minute of Time-Of-Day
          route optimization on an ATM interface.
          This object applies only when the object
          ciscoPnniIfRouteOptimization is NOT set to
          'disable'."
          DEFVAL { 0 }
          ::= { ciscoPnniIfEntry 7 }


-- Cisco PNNI Precedence Table

ciscoPnniPrecedence OBJECT IDENTIFIER ::= { ciscoPnniMIBObjects 4 }

ciscoPnniPrecedenceTable OBJECT-TYPE
        SYNTAX        SEQUENCE OF CiscoPnniPrecedenceEntry
        MAX-ACCESS    not-accessible
        STATUS        current
        DESCRIPTION
            "A table that specifies the precedence of different types
             of reachable addresses."
        ::= { ciscoPnniPrecedence 1 }

ciscoPnniPrecedenceEntry OBJECT-TYPE
        SYNTAX        CiscoPnniPrecedenceEntry
        MAX-ACCESS    not-accessible
        STATUS        current
        DESCRIPTION
            "An entry in the table, containing information about the
             precedence of a specific reachable address type.  One row
             is created by the managed system for each reachable
             address type."
        INDEX         { ciscoPnniPrecedenceAddressType }
        ::= { ciscoPnniPrecedenceTable 1 }

CiscoPnniPrecedenceEntry ::=
        SEQUENCE {
                ciscoPnniPrecedenceAddressType          INTEGER,
                ciscoPnniPrecedenceValue                INTEGER
                }

ciscoPnniPrecedenceAddressType OBJECT-TYPE
        SYNTAX        INTEGER {
                                staticLocalInternalWithMetrics(1),
                                staticLocalExterior(2),
                                staticLocalExteriorWithMetrics(3),
                                pnniRemoteInternal(4),
                                pnniRemoteInternalWithMetrics(5),
                                pnniRemoteExterior(6),
                                pnniRemoteExteriorWithMetrics(7)
                                }
        MAX-ACCESS    not-accessible
        STATUS        current
        DESCRIPTION
            "The reachable address type for which the precedence is
             specified."
        ::= { ciscoPnniPrecedenceEntry 1 }

ciscoPnniPrecedenceValue OBJECT-TYPE
        SYNTAX        INTEGER(2..4)
        MAX-ACCESS    read-write
        STATUS        current
        DESCRIPTION
            "Specifies the precedence of a reachable address type.
             When there are multiple reachable address types associated
             with the longest match reachable address prefix, the route
             selection algorithm first attempts to find routes to
             reachable address types of greatest precedence.  Among
             routes to the same longest match reachable address prefix
             with the same reachable address type, routes with the
             least total administrative weight are preferred.

             Smaller values take precedence over larger values.  Local
             internal reachable addresses, whether learned through ILMI
             or as static routes, are given the highest priority
             (i.e. 1)."
        ::= { ciscoPnniPrecedenceEntry 2 }


-- Cisco PNNI Route Address Table

ciscoPnniRouteAddr OBJECT IDENTIFIER ::= { ciscoPnniMIBObjects 5 }

ciscoPnniRouteAddrTable OBJECT-TYPE
        SYNTAX        SEQUENCE OF CiscoPnniRouteAddrEntry
        MAX-ACCESS    not-accessible
        STATUS        current
        DESCRIPTION
            "A table of cisco specific attributes used to configure
             cisco specific properties of ATM static routes."
        ::= { ciscoPnniRouteAddr 1 }

ciscoPnniRouteAddrEntry OBJECT-TYPE
        SYNTAX        CiscoPnniRouteAddrEntry
        MAX-ACCESS    not-accessible
        STATUS        current
        DESCRIPTION
            "An entry in the table, containing cisco specific PNNI
             information about a reachable address prefix."
        AUGMENTS      { pnniRouteAddrEntry }
        ::= { ciscoPnniRouteAddrTable 1 }

CiscoPnniRouteAddrEntry ::=
        SEQUENCE {
                ciscoPnniRouteAddrForwardingE164Address     E164Address
                }

ciscoPnniRouteAddrForwardingE164Address OBJECT-TYPE
        SYNTAX        E164Address
        MAX-ACCESS    read-create
        STATUS        current
        DESCRIPTION
            "The native E.164 address used as the called party address
             when the call matching pnniRouteAddrAddress is forwarded
             across the interface identified by pnniRouteAddrIfIndex.

             If this address is specified, the received called party
             address is passed on as the called party subaddress, and
             the received calling party address (if any) is passed on
             as the calling party subaddress.  The specified address is
             ignored if the value of pnniRouteAddrProto is `pnni', the
             value of pnniRouteAddrType is `reject', or the node
             identified by pnniRouteAddrAdvertisingNodeId is not
             instantiated in this switching system.

             If no address is specified, the received called party
             address and calling party address are passed on unchanged."
        DEFVAL { ''H }
        ::= { ciscoPnniRouteAddrEntry 1 }


-- conformance information

ciscoPnniMIBConformance
                OBJECT IDENTIFIER ::= { ciscoPnniMIB 3 }
ciscoPnniMIBCompliances
                OBJECT IDENTIFIER ::= { ciscoPnniMIBConformance 1 }
ciscoPnniMIBGroups
                OBJECT IDENTIFIER ::= { ciscoPnniMIBConformance 2 }


-- compliance statements

ciscoPnniMIBCompliance MODULE-COMPLIANCE
        STATUS        current
        DESCRIPTION
            "The compliance statement for entities which implement the
             Cisco PNNI MIB."
        MODULE  -- this module
            MANDATORY-GROUPS { ciscoPnniBasicGroup }

            GROUP ciscoPnniRouteOptimizationGroup
            DESCRIPTION
                "This group is mandatory for switching systems that support
                 PNNI route optimization."

        ::= { ciscoPnniMIBCompliances 1 }


-- units of conformance

ciscoPnniBasicGroup OBJECT-GROUP
        OBJECTS {
                  ciscoPnniBackgroundRoutes,
                  ciscoPnniBackgroundPollInterval,
                  ciscoPnniBackgroundInsignificantThreshold,
                  ciscoPnniResourceMgmtPollInterval,
                  ciscoPnniAdminWeightMode,
                  ciscoPnniMaxAdminWeightPercentage,
                  ciscoPnniNodeAutoSummary,
                  ciscoPnniNodeRedistributeStatic,
                  ciscoPnniNodePtseRequest,
                  ciscoPnniNodeName,
                  ciscoPnniNodeScopeMappingMode,
                  ciscoPnniIfLinkSelection,
                  ciscoPnniPrecedenceValue,
                  ciscoPnniRouteAddrForwardingE164Address
                  }
        STATUS current
        DESCRIPTION
            "A collection of cisco specific MIB objects used for
             management of PNNI routing."
        ::= { ciscoPnniMIBGroups 1 }

ciscoPnniRouteOptimizationGroup OBJECT-GROUP
        OBJECTS {
                  ciscoPnniRouteOptimizationThreshold,
				  ciscoPnniIfRouteOptimization,
				  ciscoPnniIfRouteOptimInterval,
				  ciscoPnniIfRouteOptimStartHour,
				  ciscoPnniIfRouteOptimStartMinute,
				  ciscoPnniIfRouteOptimEndHour,
				  ciscoPnniIfRouteOptimEndMinute
                  }
        STATUS current
        DESCRIPTION
            "A collection of cisco specific MIB objects used for
             management of route optimization."
        ::= { ciscoPnniMIBGroups 2 }


END
