-- *****************************************************************
-- CISCO-WAN-TOPOLOGY-MIB 
--
-- Author: Shawn Hsu and Pranabesh Das  
--         Michael Sung
--         Sheldon Chan
--
-- Copyright (c) 2001, 2002 by Cisco Systems, Inc.
-- All rights reserved.
-- *****************************************************************
--
-- *****************************************************************

CISCO-WAN-TOPOLOGY-MIB DEFINITIONS ::= BEGIN       

IMPORTS
       MODULE-IDENTITY, 
       OBJECT-TYPE,
       Integer32,
       NOTIFICATION-TYPE  FROM SNMPv2-SMI

       TEXTUAL-CONVENTION,
       TruthValue,
       TimeStamp,
       RowStatus          FROM SNMPv2-TC

       ciscoMgmt          FROM CISCO-SMI

       MODULE-COMPLIANCE, 
       NOTIFICATION-GROUP,
       OBJECT-GROUP       FROM SNMPv2-CONF

       SnmpAdminString    FROM SNMP-FRAMEWORK-MIB 

       InetAddressType,
       InetAddress        FROM INET-ADDRESS-MIB

       IANAifType         FROM IANAifType-MIB 

       InterfaceIndex     FROM IF-MIB

       PnniNodeId         FROM PNNI-MIB;

ciscoWanTopologyMIB       MODULE-IDENTITY
       LAST-UPDATED       "200207160000Z" 
       ORGANIZATION       "Cisco System Inc."
       CONTACT-INFO
           "              Cisco Systems
                          Customer Service

            Postal:       170 West Tasman Drive,
                          San Jose CA 95134-1706.
                          USA

               Tel:       +1 800 553-NETS

            E-mail:       cs-wanatm@cisco.com"
       DESCRIPTION
           "A management station can use this MIB module for the 
            maintenance of persistent topology information of the 
            PNNI network. Previously, a management station had to 
            query the network to retrieve the network topology via 
            an Integrated Local Management Interface (ILMI) link.  
            The nodes that are down or the nodes whose ILMI-enabled 
            links are down will not be included in the topology. To 
            rectify this limitation, the concept of persistent
            topology is used. 

            The persistent topology feature requires the following:
       
            - a node configured to be the gateway node
            - PNNI links between the nodes
            - node and feeder database.

            A Gateway Node, for the purpose of this MIB module, is 
            defined to be a node that is capable of maintaining a 
            persistent topology database based on the PNNI Topology 
            State Elements (PTSEs) sent by the other nodes in the 
            PNNI peer group. The topology database is persistent
            across reboots.  

            A feeder, in the context of this MIB, is defined as 
            an ATM switch which does not have PNNI feature. It is 
            connected to a node(with PNNI feature, therefore 
            with routing capability) through a physical link. (The 
            provisioning of the feeder and the link are beyond 
            the scope of this MIB.) When a feeder and the link  
            are provisioned, the feeder will update the routing  
            node with its information(for example: feeder name,  
            the feeder's port ifIndex etc.). The routing node will  
            group these feeder information along with its own 
            information(for example: its node identifier, its feeder
            port's information etc.) and send it to other nodes 
            in the peer group in the PTSE. Upon receiving this
            PTSE, each node will update its database. The same actions
            are repeated when some information are modified on 
            the feeder. A network management station can retrieve  
            these information from a Gateway Node's database. In the
            case of a feeder failure, or a feeder is removed
            from the network, or the feeder's routing node failure,
            the feeder's corresponding entry in the database will
            not be removed. The only way to remove an entry from
            the database is for the network management station to
            delete this entry explicitly.

            A link, in the context of this MIB, is defined as 
            a PNNI link between two PNNI nodes. 

            (a) The nodal information for each node in the peer group 
            stored in the persistent topology database includes: 

            - node id
            - node name
            - Primary IP address
            - Secondary IP address
            - system object identifier
            - gateway node flag (a flag which indicates whether the 
              node is configured to be a Gateway Node)

            Each node in a peer group has its own entry in the 
            database. 

            (b) The feeder information for each feeder in the peer group
            stored in the persistent topology database includes:

            - Routing node ID(local node ID)
            - A local port's 'ifIndex' which identifies the
              port the feeder is connected to on the routing
              node.
            - The feeder's 'shelf, slot, port' numbers which
              identifies the port on the feeder itself.
            - The protocol type that is used on the link.
            - The name of the feeder.
            - The LAN IP address of the feeder.
            - The ATM IP address of the feeder.
            - The model number of the feeder which identifies
              the type of the feeder.

            Each feeder in a peer group has its own entry in the 
            database. 

            (c) The link information for each node in the peer group 
            stored in the persistent topology database includes: 

            - local node's id, 
            - local node port's ifIndex and corresponding physical 
              descriptor 
            - remote node's id
            - remote node port's ifIndex and corresponding physical 
              descriptor  

            Each link in a peer group has its own entry in the 
            database. 

            The concept of peer groups is defined by 
            PNNI, and each peer group contains at least one node. 
            The persistent topology database only contains 
            nodal information for the nodes in a particular 
            peer group, because the Gateway Nodes extract the 
            nodal information from PNNI PTSEs, and the PTSEs  
            are flooded only within a peer group.  

            The persistent topology database is used by a management 
            station to discover the topology of the network 
            irrespective of the state and reachability of the
            nodes in that network.

            The information in the topology database will not 
            be deleted automatically. The information can only 
            be deleted by the network operator as an administrative 
            measure. This is to ensure that even if a node has gone 
            down, its information will still be in the topology 
            database until it is deleted by the network operator. 

            An outside link is a link that connects to a lowest-level
            outside node. In contrast to an inside link (i.e.,
            horizontal link) or an uplink, an outside link does not
            form part of the PNNI topology, and is therefore not used
            in path computation."

       REVISION        "200207160000Z"
       DESCRIPTION     "Added cwtLinkOutsideLink to cwtLinkInfoTable."

       REVISION        "200205200000Z"
       DESCRIPTION     "Added cwtLinkInfoTable to this MIB to 
                        support Link Persistency. Also added
                        the following notifications: 
                        a) cwtLinkInfoAdd, 
                        b) cwtLinkInfoDelete and
                        c) cwtLinkModify."

       REVISION        "200204220000Z"
       DESCRIPTION     "Added cwtFeederInfoTable to this MIB to 
                        support Feeder Persistency. Also added
                        the following notifications: 
                        a) cwtFeederInfoAdd, 
                        b) cwtFeederInfoDelete and
                        c) cwtFeederInfoModify."

       REVISION        "200112030000Z"
       DESCRIPTION     "Initial version of the MIB."

       ::= { ciscoMgmt 234 }

-- CISCO-WAN-TOPOLOGY-MIB MIB groups
ciscoWanTopologyMIBNotifs OBJECT IDENTIFIER
       ::= { ciscoWanTopologyMIB 0 }

ciscoWanTopologyMIBObjects OBJECT IDENTIFIER 
       ::= { ciscoWanTopologyMIB 1 }

cwtMIBConformance OBJECT IDENTIFIER
       ::= { ciscoWanTopologyMIB 2 }


cwtSystemGroup OBJECT IDENTIFIER
       ::= { ciscoWanTopologyMIBObjects 1 }
cwtNodalInfoGroup OBJECT IDENTIFIER
       ::= { ciscoWanTopologyMIBObjects 2 }
cwtFeederInfoGroup OBJECT IDENTIFIER
       ::= { ciscoWanTopologyMIBObjects 3 }
cwtLinkInfoGroup OBJECT IDENTIFIER
       ::= { ciscoWanTopologyMIBObjects 4 }

CwtNodeInfoTableIndex ::= TEXTUAL-CONVENTION
       STATUS      current
       DESCRIPTION
          "The index of the cwtNodeInfoTable." 
       SYNTAX      Integer32 (1..1024)
                     
cwtGatewayAdminStatus OBJECT-TYPE
       SYNTAX      INTEGER {
                           disable(1),
                           enable(2)
                   } 
       MAX-ACCESS  read-write
       STATUS      current
       DESCRIPTION
          "The value of this object determines whether this node 
           is a Gateway Node or not. A value of `enable' configures 
           this node to be the Gateway Node, and enables 
           the generation of the topology database. A value of `disable' 
           configures this node to not be a Gateway Node, and deletes 
           the topology database if it exists."
       DEFVAL { disable }
       ::= { cwtSystemGroup 1 }

cwtGatewayNodeOperStatus OBJECT-TYPE
       SYNTAX      INTEGER {
                           disabled(1),
                           enabled(2),              
                           disabling(3),
                           enabling(4),
                           enabledAndFull(5)
                   }
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
          "This is the operational status of the Gateway Node.
       
           'disabled' indicates that this node is not a
           Gateway Node and no topology database is available 
           on this node. 

           'enabled' indicates that this node has been configured
           as the Gateway Node and the topology database has been 
           built.       

           'disabling' indicates that this node is no longer the
           Gateway Node and is in the process of deleting the 
           topology database.

           'enabling' indicates that this node has been configured
           as the Gateway Node and is in the process of building 
           the topology database.

           'enabledAndFull' indicates that this node has been
           configured as the Gateway Node but its topology database 
           is full.

           The management station should always poll this object
           first before taking action to: 

           a) 'enable' or 'disable' the Gateway Node 
           b) remove an entry or entries from 'cwtNodeInfoTable' and
              its corresponding entries from 'cwtFeederInfoTable'. 

           If the object returns 'disabled', the management station
           can 'enable' the Gateway Node if it desires.

           If the object returns 'enabled', the management station
           can 'disable' the Gateway Node if it desires.

           If the object returns 'enabling' or 'disabling', the
           management station should not take any actions. 

           If the object returns 'enabledAndFull', the management 
           station can take one of the following actions:

           a) remove enties from the cwtNodeInfoTable
           b) 'disable' and then 'enable' the Gateway Node, which
              would cause the node to delete and then rebuild the 
              topology database. "

       ::= { cwtSystemGroup 2 }

cwtDBLastChange OBJECT-TYPE
       SYNTAX      TimeStamp
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
          "The value of MIB II's sysUpTime object at the time that: 
           a) the topology database is last changed on this node.  
           b) the cwtGatewayAdminStatus is last changed.
           c) the cwtGatewayNodeOperStatus enters the 'enabledAndFull'
              state."
       ::= { cwtSystemGroup 3 }


cwtNodeInfoTable OBJECT-TYPE
       SYNTAX SEQUENCE OF CwtNodeInfoEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
          "A table of node topology information is to be maintained 
           for the management station. This table contains the 
           information for the nodes in the peer group."
       ::= { cwtNodalInfoGroup 1 }

cwtNodeInfoEntry OBJECT-TYPE
       SYNTAX      CwtNodeInfoEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
          "This is a row entry in the topology node info table. Each
           entry corresponds to one node in the network."
       INDEX { cwtIndex }
       ::= { cwtNodeInfoTable 1 }

CwtNodeInfoEntry ::=
       SEQUENCE {
       cwtIndex         CwtNodeInfoTableIndex,
       cwtGatewayNodeFlag TruthValue,       
       cwtNodeId        PnniNodeId,
       cwtNodeName      SnmpAdminString,
       cwtPrimIPIfType  IANAifType,
       cwtPrimIPIfName  SnmpAdminString,
       cwtPrimIPAddrType InetAddressType,
       cwtPrimIP         InetAddress,
       cwtSecIPIfType   IANAifType,
       cwtSecIPIfName   SnmpAdminString,
       cwtSecIPAddrType InetAddressType,
       cwtSecIP         InetAddress,
       cwtSysObjId      OBJECT IDENTIFIER,              
       cwtNodeInfoTimeOutFlag TruthValue,
       cwtRowStatus     RowStatus
       }

cwtIndex OBJECT-TYPE
       SYNTAX      CwtNodeInfoTableIndex 
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
          "This is the index into the topology database array. 
           This value should remain persistent while the topology 
           database exists, which means that it'll be consistent
           across boots.  However, if this node is disabled as 
           the gateway node, and later on enabled (by changing the
           value of cwtGatewayAdminStatus), then the cwtIndex may 
           be different for the same node info entry in the topology 
           database."
       ::= { cwtNodeInfoEntry 1 }

cwtGatewayNodeFlag OBJECT-TYPE
       SYNTAX      TruthValue 
       MAX-ACCESS  read-create 
       STATUS      current
       DESCRIPTION
          "This variable indicates if the corresponding entry
           is a Gateway Node or not. If this value contains 
           'true', the corresponding node is a Gateway Node. 
           If this value contains 'false', then the corresponding 
           node is not a Gateway Node."
       ::= { cwtNodeInfoEntry 2 }

cwtNodeId OBJECT-TYPE
       SYNTAX      PnniNodeId
       MAX-ACCESS  read-create
       STATUS      current
       DESCRIPTION
          "The unique Id which identifies the node in the entry.  
           This value is different from cwtIndex because it is a 
           unique number which identifies a node in the ATM network, 
           while cwtIndex is an index for an entry in the topology 
           database.  The same physical node can have different 
           cwtIndex in different topology databases." 
       REFERENCE
       "ATM Forum PNNI 1.0 Section 5.3.3"
       ::= { cwtNodeInfoEntry 3 }

cwtNodeName OBJECT-TYPE
       SYNTAX      SnmpAdminString
       MAX-ACCESS  read-create
       STATUS      current
       DESCRIPTION
          "The configured name of the node."  
       ::= { cwtNodeInfoEntry 4 }

cwtPrimIPIfType OBJECT-TYPE
       SYNTAX      IANAifType 
       MAX-ACCESS  read-create
       STATUS      current
       DESCRIPTION
          "This object specifies the type of interface for the
           associated instance of cwtPrimIP."
       ::= { cwtNodeInfoEntry 5 }

cwtPrimIPIfName OBJECT-TYPE
       SYNTAX      SnmpAdminString  
       MAX-ACCESS  read-create
       STATUS      current
       DESCRIPTION
          "This object specifies the name of the interface for the
           associated instance of cwtPrimIP."
       ::= { cwtNodeInfoEntry 6 }

cwtPrimIPAddrType OBJECT-TYPE
       SYNTAX      InetAddressType
       MAX-ACCESS  read-create
       STATUS      current
       DESCRIPTION
          "This object specifies the type of address contained in the
           associated instance of cwtPrimIP."
       ::= { cwtNodeInfoEntry 7 }

cwtPrimIP OBJECT-TYPE
       SYNTAX      InetAddress
       MAX-ACCESS  read-create
       STATUS      current
       DESCRIPTION
          "Primary IP address of the corresponding node.  This value 
           is taken from the PNNI Nodal PTSE.  The primary IP address is
           used by the NMS to manage the switch.  The type of interface
           (i.e. ATM interface, LAN interface, etc) for this IP address
           is specified by cwtPrimIPIfType.  The NMS will use this IP
           address first, but if it can not connect to the switch on
           this address, then it will try to contact the switch using
           the secondary IP address instead."  
       ::= { cwtNodeInfoEntry 8 }

cwtSecIPIfType OBJECT-TYPE
       SYNTAX      IANAifType 
       MAX-ACCESS  read-create
       STATUS      current
       DESCRIPTION
          "This object specifies the type of interface for the
           associated instance of cwtSecIP."
       ::= { cwtNodeInfoEntry 9 }

cwtSecIPIfName OBJECT-TYPE
       SYNTAX      SnmpAdminString 
       MAX-ACCESS  read-create
       STATUS      current
       DESCRIPTION
          "This object specifies the name of the interface for the
           associated instance of cwtSecIP."
       ::= { cwtNodeInfoEntry 10 }

cwtSecIPAddrType OBJECT-TYPE
       SYNTAX      InetAddressType
       MAX-ACCESS  read-create
       STATUS      current
       DESCRIPTION
          "This object specifies the type of address contained in the
           associated instance of cwtSecIP."
       ::= { cwtNodeInfoEntry 11 }

cwtSecIP OBJECT-TYPE
       SYNTAX      InetAddress
       MAX-ACCESS  read-create
       STATUS      current
       DESCRIPTION
          "Secondary IP address of the corresponding node.  This value
           is taken from the PNNI Nodal PTSE.  This value is used by 
           the NMS to manage the switch.  Please refer to the 
           Description section of cwtPrimIP for more information." 
       ::= { cwtNodeInfoEntry 12 }

cwtSysObjId OBJECT-TYPE
       SYNTAX      OBJECT IDENTIFIER 
       MAX-ACCESS  read-create
       STATUS      current
       DESCRIPTION
          "This variable contains the sysObjectID of the node,
           which is used to identify different hardware platforms.
           The actual values are defined in CISCO-PRODUCTS-MIB."  
       REFERENCE
       "RFC 1907"
       ::= { cwtNodeInfoEntry 13 }

cwtNodeInfoTimeOutFlag OBJECT-TYPE
       SYNTAX      TruthValue
       MAX-ACCESS  read-create
       STATUS      current
       DESCRIPTION
          "This variable indicates if the PTSE of this node 
           is currently contained in the PNNI PTSE database. The 
           nodal information in the persistent topology database 
           is derived from the PTSEs in the PNNI PTSE database. 
           The entries in the PNNI PTSE database times out if no 
           new PTSE is received from a node after a certain 
           time.  If that happens, this object is set to 'false'.
           This object would allow the NMS to determine whether
           this node currently has connectivity with the rest of 
           the network." 
       ::= { cwtNodeInfoEntry 14 }

cwtRowStatus OBJECT-TYPE
       SYNTAX      RowStatus 
       MAX-ACCESS  read-create
       STATUS      current
       DESCRIPTION
          "In our implementation, we'll be supporting 'active', 
           'createAndGo', and 'destroy'.  The value of this 
           variable is set to 'active' by the managed system for 
           each valid entry.  If a management station wants to
           delete an entry from the database, this value is set 
           to 'destroy'.  If a management station wants to create
           a new entry, this value is set to 'createAndGo'." 
       ::= { cwtNodeInfoEntry 15 }

--
-- Feeder Information Group
--

cwtFeederInfoTable OBJECT-TYPE
    SYNTAX SEQUENCE OF CwtFeederInfoEntry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "A table of 'feeder' information to be maintained
        for the management station. This table contains the
        information for the 'feeders' in this peer group."
    ::= { cwtFeederInfoGroup 1 }

cwtFeederInfoEntry OBJECT-TYPE
    SYNTAX CwtFeederInfoEntry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "This is a row entry in the feeder info table. Each
        entry corresponds to one 'feeder' in the network."
    INDEX { cwtFeederIndex }
    ::= { cwtFeederInfoTable 1 }

CwtFeederInfoEntry ::=
    SEQUENCE {
        cwtFeederIndex           Integer32,
        cwtLocalNodeId           PnniNodeId,
        cwtLocalIfIndex          InterfaceIndex,
        cwtLocalIfName           SnmpAdminString,
        cwtFeederShelf           Integer32,
        cwtFeederSlot            Integer32,
        cwtFeederPort            Integer32,
        cwtFeederLMIType         INTEGER,
        cwtFeederType            INTEGER,
        cwtFeederName            SnmpAdminString,
        cwtFeederLanIPAddrType   InetAddressType,
        cwtFeederLanIP           InetAddress,
        cwtFeederAtmIPAddrType   InetAddressType,
        cwtFeederAtmIP           InetAddress,
        cwtFeederModelNumber     Integer32,
        cwtFeederRowStatus       RowStatus
        }

cwtFeederIndex OBJECT-TYPE
    SYNTAX        Integer32
    MAX-ACCESS    not-accessible
    STATUS        current
    DESCRIPTION
        "This is the index into the feeder database array.
        This value should remain persistent while the feeder
        database exists, which means that it'll be consistent
        across boots.  However, if this node is disabled as
        the gateway node, and later on enabled, then the
        'cwtFeederIndex' may be different for the same feeder info
        entry in the 'feeder database'."
    ::= { cwtFeederInfoEntry 1 }

cwtLocalNodeId OBJECT-TYPE
    SYNTAX        PnniNodeId
    MAX-ACCESS    read-only
    STATUS        current
    DESCRIPTION
        "The unique Id which identifies the node the feeder is
        attached to."
    REFERENCE
        "ATM Forum PNNI 1.0 Section 5.3.3"
    ::= { cwtFeederInfoEntry 2 }

cwtLocalIfIndex OBJECT-TYPE
    SYNTAX      InterfaceIndex
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This variable contains the 'ifIndex' of the
        local port this feeder is connected to."
    ::= { cwtFeederInfoEntry 3 }

cwtLocalIfName  OBJECT-TYPE
    SYNTAX      SnmpAdminString 
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The textual name of the interface of the local 
        port this feeder is connected to. This should
        contain the same 'ifName' associated with the
        'cwtLocalIfIndex'. 

        If this interface does not have a
        textual name, the value of this object is a zero
        length string."  
    ::= { cwtFeederInfoEntry 4 }

cwtFeederShelf OBJECT-TYPE
    SYNTAX      Integer32 (1..100)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This variable contains the physcial shelf
        number of the feeder module."
    ::= { cwtFeederInfoEntry 5 }

cwtFeederSlot OBJECT-TYPE
    SYNTAX      Integer32 (1..256)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This variable contains the physical slot
        number of the feeder module."
    ::= { cwtFeederInfoEntry 6 }


cwtFeederPort OBJECT-TYPE
    SYNTAX      Integer32 (1..1024)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This variable contains the physical port
        number of the feeder module."
    ::= { cwtFeederInfoEntry 7 }

cwtFeederLMIType  OBJECT-TYPE
    SYNTAX      INTEGER {
                    feeder(1),
                    xLMI(2)
                }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object identifies the  'link' type.
        
        feeder(1) is applicable when cwtFeederType contains
        a value other than fdrNON(12). xLMI(2) is applicable
        only when cwtFeederType contains a value of fdrNON(12).
        Both feeder(1) and xLMI(2) are CISCO proprietary 
        interfaces. xLMI stands for 'extended local management
        interface."
    ::= { cwtFeederInfoEntry 8 }

cwtFeederType OBJECT-TYPE
    SYNTAX      INTEGER {
                fdrIPX(1),
                fdrBPX(2),
                fdrIpxAF(3),
                fdrBASIS(4),
                fdrUNKNOWN(5),
                fdrUNI(6),
                fdrAPS(7),
                fdrIGX(8),
                fdrIgxAF(9),
                fdrVSI(10),
                fdrPAR(11),
                fdrNON(12)
                } 
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This identifies the feeder type. fdrNON(12) is applicable
         when cwfLMIType is xLMI(2). Other values are applicable 
         when cwtFeederLMIType is feeder(1).
         The possible values are :
         fdrIPX       -- Feeder is an IPX node in a routing network
         fdrBPX       -- Feeder is an BPX node in a routing network
         fdrIpxAF     -- Feeder is a stand-alone IPX node
         fdrBASIS     -- Feeder is a stand-alone BASIS node
         fdrUNKNOWN   -- Feeder is unknown
         fdrUNI       -- Feeder is a UNI AIT (phase 0)
         fdrAPS       -- Feeder is an APS (Adjunct Processor Shelf)
         fdrIGX       -- Feeder is an IGX node in a routing network
         fdrIgxAF     -- Feeder is a stand-alone IGX node
         fdrVSI       -- Feeder is an VSI Controller
         fdrPAR       -- Feeder is a PAR
         fdrNON       -- This is non-feeder type"
    ::= { cwtFeederInfoEntry 9 }

cwtFeederName OBJECT-TYPE
    SYNTAX       SnmpAdminString 
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION
        "The configured name of the feeder."
    ::= { cwtFeederInfoEntry 10 }

cwtFeederLanIPAddrType OBJECT-TYPE
    SYNTAX      InetAddressType
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object specifies the type of address contained 
        in the associated instance of cwtFeederLanIP."
    ::= { cwtFeederInfoEntry 11 }

cwtFeederLanIP OBJECT-TYPE
    SYNTAX       InetAddress
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION
        "This object specifies the LAN IP address of the
        'feeder'. The type of this address is specified by 
        cwtFeederLanIPAddrType." 
    ::= { cwtFeederInfoEntry 12 }

cwtFeederAtmIPAddrType OBJECT-TYPE
    SYNTAX      InetAddressType
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object specifies the type of address contained 
        in the associated instance of cwtFeederAtmIP."
    ::= { cwtFeederInfoEntry 13 }

cwtFeederAtmIP OBJECT-TYPE
    SYNTAX       InetAddress
    MAX-ACCESS   read-only
    STATUS       current
    DESCRIPTION
        "This object identifies the ATM IP address of the
        'feeder'. The type of this address is specified by
        cwtFeederAtmIP."
    ::= { cwtFeederInfoEntry 14 }

cwtFeederModelNumber OBJECT-TYPE
    SYNTAX      Integer32 (1..2147483647)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This variable contains the 'model number' of the
        corresponding feeder.  This is an implementation specific
        integer value which is used to differentiate between 
        feeder platforms."
    ::= { cwtFeederInfoEntry 15 }

cwtFeederRowStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "In our implementation, we'll be supporting 'active',
        and 'destroy'.  The value of this
        variable is set to 'active' by the managed system for
        each valid entry.  If a management station wants to
        delete an entry from the database, this value is set
        to 'destroy'."
    ::= { cwtFeederInfoEntry 16 }

-- Link Information Table

cwtLinkInfoTable OBJECT-TYPE
    SYNTAX SEQUENCE OF CwtLinkInfoEntry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "A table of 'link' information in the PNNI network.
        If a switch is managed by multiple network 
        management stations, these network management 
        stations can have a persistent view of links
        in the network by retrieving this table.

        A link is a PNNI link between two nodes."
    ::= { cwtLinkInfoGroup 1 }

cwtLinkInfoEntry OBJECT-TYPE
    SYNTAX CwtLinkInfoEntry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "This is an entry in the 'cwtLinkInfoTable'. Each
        entry corresponds to one link in the network.

        a) The entries in this table are derived from PNNI 
        PTSE database or added by a network management
        station. 

        b) The entries in the PNNI PTSE database  
        time out when no new PTSE is received from a node
        after a certain time. However, the corresponding  
        entries are not removed from this table.

        c) Only the network management station can delete 
        an entry from this table. 

        d) A network management station cannot modify an
        existing entry in this table."
    INDEX { cwtLinkIndex }
    ::= { cwtLinkInfoTable 1 }

CwtLinkInfoEntry ::=
    SEQUENCE {
        cwtLinkIndex              Integer32,
        cwtLinkLocalNodeId        PnniNodeId,
        cwtLinkRemoteNodeId       PnniNodeId,
        cwtLinkLocalIfIndex       InterfaceIndex,
        cwtLinkRemoteIfIndex      InterfaceIndex,
        cwtLinkLocalPhysicalId    SnmpAdminString,
        cwtLinkRemotePhysicalId   SnmpAdminString,
        cwtLinkInfoTimeOutFlag    TruthValue,
        cwtLinkOutsideLink        TruthValue,
        cwtLinkRowStatus          RowStatus
    }

cwtLinkIndex OBJECT-TYPE
    SYNTAX Integer32 
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "This is the index into the link database array. 
        This value is of local significance to the gateway
        node. As long as a node remains 'enabled' as
        a gateway node, this value remains persistent 
        across boots.  However, if this node is disabled as 
        the gateway node, and is enabled later on, the 
        cwtLinkIndex may be different for the same link info 
        entry in the topology database."
    ::= { cwtLinkInfoEntry 1 }

cwtLinkLocalNodeId OBJECT-TYPE
    SYNTAX PnniNodeId
    MAX-ACCESS read-create
    STATUS current
    DESCRIPTION
        "The unique Id which identifies the local node this link
        resides on." 
    REFERENCE
        "ATM Forum PNNI 1.0 Section 5.3.3"
    ::= { cwtLinkInfoEntry 2 }

cwtLinkRemoteNodeId OBJECT-TYPE
    SYNTAX PnniNodeId
    MAX-ACCESS read-create
    STATUS current
    DESCRIPTION
        "The unique Id which identifies the remote node this
        link resides on."   
    REFERENCE
        "ATM Forum PNNI 1.0 Section 5.3.3"
    ::= { cwtLinkInfoEntry 3 }

cwtLinkLocalIfIndex OBJECT-TYPE
    SYNTAX InterfaceIndex 
    MAX-ACCESS read-create
    STATUS current
    DESCRIPTION
        "The local 'ifIndex' of this link."
    ::= { cwtLinkInfoEntry 4 }

cwtLinkRemoteIfIndex OBJECT-TYPE
    SYNTAX InterfaceIndex 
    MAX-ACCESS read-create
    STATUS current
    DESCRIPTION
        "The remote 'ifIndex' of this link."
    ::= { cwtLinkInfoEntry 5 }

cwtLinkLocalPhysicalId OBJECT-TYPE
    SYNTAX SnmpAdminString 
    MAX-ACCESS read-create
    STATUS current
    DESCRIPTION
        "The local physical port identifier of this link." 
    ::= { cwtLinkInfoEntry 6 }

cwtLinkRemotePhysicalId OBJECT-TYPE
    SYNTAX SnmpAdminString 
    MAX-ACCESS read-create
    STATUS current
    DESCRIPTION
        "The remote physcial port identifier of this link."
    ::= { cwtLinkInfoEntry 7 }

cwtLinkInfoTimeOutFlag OBJECT-TYPE
    SYNTAX TruthValue
    MAX-ACCESS read-create
    STATUS current
    DESCRIPTION
        "This variable indicates if the PTSE of this link 
        is currently contained in the PNNI PTSE database. 

        If this entry is also contained in the PNNI PTSE 
        database, the agent sets the value of this variable 
        to 'true'. If this entry is not contained in the PNNI 
        PTSE database, the agent set the value of this variable 
        to 'false'. 
        "  
    ::= { cwtLinkInfoEntry 8 }

cwtLinkOutsideLink OBJECT-TYPE
    SYNTAX TruthValue
    MAX-ACCESS read-create
    STATUS current
    DESCRIPTION
        "This variable indicates if the link is an outside link."
    ::= { cwtLinkInfoEntry 9 }

cwtLinkRowStatus OBJECT-TYPE
    SYNTAX RowStatus 
    MAX-ACCESS read-create
    STATUS current
    DESCRIPTION
       "In our implementation, we'll be supporting 'active', 
        'createAndGo', and 'destroy'.  The value of this 
        variable is set to 'active' by the managed system for 
        each valid entry.  If a management station wants to
        delete an entry from the database, this value is set 
        to 'destroy'.  If a management station wants to create
        a new entry, this value is set to 'createAndGo'.

        The network management station should provide the
        intial values of all mib objects when
        setting this variable to 'createAndGo'."
    ::= { cwtLinkInfoEntry 10 }


-- Notifications

cwtConfigGatewayStatus NOTIFICATION-TYPE
       OBJECTS { cwtGatewayAdminStatus, 
                 cwtDBLastChange }
       STATUS current
       DESCRIPTION
          "This notification is generated when the gateway node
           admin status is changed." 
       ::= { ciscoWanTopologyMIBNotifs 1 }


cwtTopoInfoAdd NOTIFICATION-TYPE
       OBJECTS { cwtGatewayNodeFlag,
                 cwtNodeId,
                 cwtNodeName,
                 cwtPrimIPIfType,
                 cwtPrimIPIfName,
                 cwtPrimIPAddrType,
                 cwtPrimIP,
                 cwtSecIPIfType,
                 cwtSecIPIfName,
                 cwtSecIPAddrType,
                 cwtSecIP,
                 cwtSysObjId,
                 cwtNodeInfoTimeOutFlag,
                 cwtDBLastChange
               }
       STATUS current
       DESCRIPTION
          "This notification is generated when a new topology nodal 
           info entry is added in the topology database."
       ::= { ciscoWanTopologyMIBNotifs 2 }


cwtTopoInfoModify NOTIFICATION-TYPE
       OBJECTS { cwtGatewayNodeFlag,
                 cwtNodeId,
                 cwtNodeName,
                 cwtPrimIPIfType,
                 cwtPrimIPIfName,
                 cwtPrimIPAddrType,
                 cwtPrimIP,
                 cwtSecIPIfType,
                 cwtSecIPIfName,
                 cwtSecIPAddrType,
                 cwtSecIP,
                 cwtSysObjId,
                 cwtNodeInfoTimeOutFlag,
                 cwtDBLastChange
               }
       STATUS current
       DESCRIPTION
          "This notification is generated when an existing topology nodal 
           info entry is modified in the topology database."
       ::= { ciscoWanTopologyMIBNotifs 3 }


cwtTopoInfoDelete NOTIFICATION-TYPE
       OBJECTS { cwtNodeId, 
                 cwtDBLastChange }
       STATUS current
       DESCRIPTION
          "This notification is generated when an existing topology nodal 
           info entry is deleted in the topology database."
       ::= { ciscoWanTopologyMIBNotifs 4 }

cwtTopoDbFull NOTIFICATION-TYPE
    OBJECTS { cwtDBLastChange }
       STATUS current
       DESCRIPTION
          "This notification is generated when the topology database
           becomes full."
       ::= { ciscoWanTopologyMIBNotifs 5 }


cwtFeederInfoAdd NOTIFICATION-TYPE
    OBJECTS { cwtLocalNodeId,
              cwtLocalIfIndex,
              cwtLocalIfName,
              cwtFeederShelf,
              cwtFeederSlot,
              cwtFeederPort,
              cwtFeederLMIType,
              cwtFeederType,
              cwtFeederName,
              cwtFeederLanIPAddrType,
              cwtFeederLanIP,
              cwtFeederAtmIPAddrType,
              cwtFeederAtmIP,
              cwtFeederModelNumber
            }
    STATUS current
    DESCRIPTION
        "This notification is generated when a new feeder
        info entry is added in the database."
    ::= { ciscoWanTopologyMIBNotifs 6 }


cwtFeederInfoModify NOTIFICATION-TYPE
    OBJECTS { cwtLocalNodeId,
              cwtLocalIfIndex,
              cwtFeederLMIType,
              cwtFeederType,
              cwtFeederName,
              cwtFeederLanIPAddrType,
              cwtFeederLanIP,
              cwtFeederAtmIPAddrType,
              cwtFeederAtmIP
            }
    STATUS current
    DESCRIPTION
        "This notification is generated when an existing feeder
        info entry is modified in the database."
    ::= { ciscoWanTopologyMIBNotifs 7 }

cwtFeederInfoDelete NOTIFICATION-TYPE
    OBJECTS { cwtLocalNodeId,
              cwtLocalIfIndex,
              cwtFeederName
            }
    STATUS current
    DESCRIPTION
        "This notification is generated when an existing feeder
        info entry is deleted in the database."
    ::= { ciscoWanTopologyMIBNotifs 8 }

cwtLinkInfoAdd NOTIFICATION-TYPE
    OBJECTS { cwtLinkLocalNodeId,
              cwtLinkRemoteNodeId,
              cwtLinkLocalIfIndex,
              cwtLinkRemoteIfIndex,
              cwtLinkLocalPhysicalId,
              cwtLinkRemotePhysicalId
            }
    STATUS current
    DESCRIPTION
        "This notification is generated when a new link 
        info entry is added in the 'link' database."
    ::= { ciscoWanTopologyMIBNotifs 9 }

cwtLinkInfoModify NOTIFICATION-TYPE
    OBJECTS { cwtLinkLocalNodeId,
              cwtLinkRemoteNodeId,
              cwtLinkLocalIfIndex,
              cwtLinkRemoteIfIndex,
              cwtLinkInfoTimeOutFlag
            }
    STATUS current
    DESCRIPTION
        "This notification is generated when an existing link 
        info entry is modified in the 'link' database."
    ::= { ciscoWanTopologyMIBNotifs 10 }

cwtLinkInfoDelete NOTIFICATION-TYPE
    OBJECTS { cwtLinkLocalNodeId,
              cwtLinkRemoteNodeId,
              cwtLinkLocalIfIndex,
              cwtLinkRemoteIfIndex
            } 
    STATUS current
    DESCRIPTION
        "This notification is generated when an existing link 
        info entry is deleted in the 'link' database."
    ::= { ciscoWanTopologyMIBNotifs 11 }


-- conformance information
cwtMIBCompliances OBJECT IDENTIFIER
       ::= { cwtMIBConformance 1 }
cwtMIBGroups OBJECT IDENTIFIER
       ::= { cwtMIBConformance 2 }

-- deprecated compliance statements
cwtMIBCompliance MODULE-COMPLIANCE
       STATUS deprecated -- replaced by cwtMIBCompliance2 
       DESCRIPTION 
          "The compliance statement for SNMPv2 entities which        
           implement persistent topology solution for CWM."
       MODULE  -- this module
       MANDATORY-GROUPS {
             cwtSystemMIBGroups,
             cwtNodalMIBGroups
       }
       ::= { cwtMIBCompliances 1 }

cwtMIBCompliance2 MODULE-COMPLIANCE
       STATUS deprecated -- replaced by cwtMIBCompliance3
       DESCRIPTION 
          "The compliance statement for SNMPv2 entities which        
           implement persistent topology solution for CWM."
       MODULE -- this module
       MANDATORY-GROUPS {
             cwtSystemMIBGroups,
             cwtNodalMIBGroups,
             cwtFeederMIBGroups
       }
       ::= { cwtMIBCompliances 2 }

-- current compliance statements
cwtMIBCompliance3 MODULE-COMPLIANCE
       STATUS current
       DESCRIPTION 
          "The compliance statement for SNMPv2 entities which        
           implement persistent topology solution for CWM."
       MODULE  -- this module
       MANDATORY-GROUPS {
             cwtSystemMIBGroups,
             cwtNodalMIBGroups,
             cwtFeederMIBGroups,
             cwtLinkMIBGroups
       }
       ::= { cwtMIBCompliances 3 }


--units of conformance
cwtSystemMIBGroups OBJECT-GROUP
       OBJECTS{ 
             cwtGatewayAdminStatus,
             cwtGatewayNodeOperStatus,
             cwtDBLastChange
       }
       STATUS current
       DESCRIPTION
          "This group contains the object which enables a node
           to function as a Gateway Node." 
       ::= { cwtMIBGroups 1 }

cwtNodalMIBGroups OBJECT-GROUP
       OBJECTS {
             cwtGatewayNodeFlag,
             cwtNodeId,
             cwtNodeName,
             cwtPrimIPIfType,
             cwtPrimIPIfName,
             cwtPrimIPAddrType,
             cwtPrimIP,
             cwtSecIPIfType,
             cwtSecIPIfName,
             cwtSecIPAddrType,
             cwtSecIP,
             cwtSysObjId,
             cwtNodeInfoTimeOutFlag,
             cwtRowStatus
       }
       STATUS current
       DESCRIPTION
          "This group contains objects which identify a 
           node in the network."
       ::= { cwtMIBGroups 2 }

cwtFeederMIBGroups OBJECT-GROUP
    OBJECTS { cwtLocalNodeId,
              cwtLocalIfIndex,
              cwtLocalIfName,
              cwtFeederShelf,
              cwtFeederSlot,
              cwtFeederPort,
              cwtFeederLMIType,
              cwtFeederType,
              cwtFeederName,
              cwtFeederLanIPAddrType,
              cwtFeederLanIP,
              cwtFeederAtmIPAddrType,
              cwtFeederAtmIP,
              cwtFeederModelNumber,
              cwtFeederRowStatus
            }
    STATUS current
    DESCRIPTION
        "This group contains objects which identify a
        node in the network."
    ::= { cwtMIBGroups 3 }

-- deprecated notification group
cwtNotificationsGroup NOTIFICATION-GROUP
     NOTIFICATIONS { 
         cwtConfigGatewayStatus,
         cwtTopoInfoAdd,
         cwtTopoInfoModify,
         cwtTopoInfoDelete,
         cwtTopoDbFull
     }
     STATUS deprecated -- replaced by cwtNotificationsGroup2 
     DESCRIPTION
         "A collection of notifications which indicate
         changes in the topology database."
     ::= { cwtMIBGroups 4 }

cwtNotificationsGroup2 NOTIFICATION-GROUP
     NOTIFICATIONS { 
         cwtConfigGatewayStatus,
         cwtTopoInfoAdd,
         cwtTopoInfoModify,
         cwtTopoInfoDelete,
         cwtTopoDbFull,
         cwtFeederInfoAdd,
         cwtFeederInfoModify,
         cwtFeederInfoDelete
     }
     STATUS deprecated -- replaced by cwtNotificationsGroup3 
     DESCRIPTION
         "A collection of notifications which indicate
         changes in the topology database."
     ::= { cwtMIBGroups 5 }

-- current notification group
cwtNotificationsGroup3 NOTIFICATION-GROUP
     NOTIFICATIONS { 
         cwtConfigGatewayStatus,
         cwtTopoInfoAdd,
         cwtTopoInfoModify,
         cwtTopoInfoDelete,
         cwtTopoDbFull,
         cwtFeederInfoAdd,
         cwtFeederInfoModify,
         cwtFeederInfoDelete,
         cwtLinkInfoAdd,
         cwtLinkInfoModify,
         cwtLinkInfoDelete
     }
     STATUS current
     DESCRIPTION
         "A collection of notifications which indicate
         changes in the topology database."
     ::= { cwtMIBGroups 6 }

cwtLinkMIBGroups OBJECT-GROUP
    OBJECTS { cwtLinkLocalNodeId,
              cwtLinkRemoteNodeId,
              cwtLinkLocalIfIndex,
              cwtLinkRemoteIfIndex,
              cwtLinkLocalPhysicalId,
              cwtLinkRemotePhysicalId,
              cwtLinkInfoTimeOutFlag,
              cwtLinkOutsideLink,
              cwtLinkRowStatus
            }
    STATUS current
    DESCRIPTION
        "This group contains objects which identify a
        link in the network."
    ::= { cwtMIBGroups 7 }
END


