--------------------------------------------------------------------
-- CISCO ATM signalling diagnostics MIB
--
-- July 1997, Karthik Ramachandran
--
-- Copyright (c) 1997-1999 by cisco Systems, Inc.
-- All rights reserved.
-------------------------------------------------------------------
CISCO-ATM-SIG-DIAG-MIB DEFINITIONS ::=BEGIN

IMPORTS
        MODULE-IDENTITY, OBJECT-TYPE, Integer32, 
                Counter32
                FROM SNMPv2-SMI
        TEXTUAL-CONVENTION, RowStatus, TimeStamp
                FROM SNMPv2-TC
        MODULE-COMPLIANCE, OBJECT-GROUP
                FROM SNMPv2-CONF
        ciscoMgmt
                FROM CISCO-SMI
        PnniNodeId, PnniPortId, ServiceCategory
                FROM PNNI-MIB
        InterfaceIndexOrZero
                FROM CISCO-TC;


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

            Postal: 250 W Tasman Drive
                    San Jose, CA  95134
                    USA

               Tel: +1 800 553-NETS

            E-mail: cs-atm@cisco.com"
    DESCRIPTION
            "The MIB module to facilitate the diagnosis of
            failures of ATM Signalling requests.  Through
            this MIB, an ATM device retains information for
            one, or possibly more, connection setup failure
            records.  Each record stores information about
            those connection setup failures which match a set
            of selection criteria, such as particular Calling
            or Called ATM Addresses."
    REVISION        "9707280000Z"
    DESCRIPTION
            "Initial version of the MIB for diagnosis of
            failures of ATM signalling requests."


    ::= { ciscoMgmt 78 }


ciscoSigFailMIBObjects OBJECT IDENTIFIER ::= { ciscoAtmSigDiagMIB 1 }


-- AtmAddr defined here for completeness.  Over time it should be
-- imported from the ATM-TC-MIB under development by the IETF

AtmAddr ::= TEXTUAL-CONVENTION
    DISPLAY-HINT "1x"
    STATUS       current
    DESCRIPTION
            "The ATM address used by the network entity.
            The address types are: no address (0 octets),
            E.164 (8 octets), and NSAP (20 octets).
            Note: The E.164 address is encoded in BCD
            format."
    SYNTAX  OCTET STRING (SIZE(0|8|20))

csfBaseGroup OBJECT IDENTIFIER ::= {ciscoSigFailMIBObjects 1}

csfFilterControl OBJECT-TYPE
    SYNTAX     INTEGER {
               enable(1),
               disable(2)
    }
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "This object enables or disables the call failure  filtering 
             feature in the ATM device.  When this object is modified from 
             'enable' to 'disable' the records in the csfRecordTable 
             are not removed but filtering is stopped in the device."
    DEFVAL   {disable}
    ::= { csfBaseGroup 1 }


csfFilterGroup OBJECT IDENTIFIER ::= {ciscoSigFailMIBObjects 2}

csfFilterTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF CsfFilterEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
           "The table whose entries describe the filtering criteria 
            for recording failed connection setup requests."
    ::= { csfFilterGroup 1 }

csfFilterEntry OBJECT-TYPE
    SYNTAX     CsfFilterEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
      "Each entry in this table corresponds to a filtering criteria 
       based on which the rejected calls are recorded. This selection 
       criteria is applied against all connection setup failures 
       generated/detected at this ATM device. Only connection setup 
       failures which match against all of the entry's criteria are 
       recorded in the csfRecordTable. A new entry can be created by 
       specifying a csfFilterIndex value that is currently not being 
       used and also using an appropriate value (createAndGo or 
       createAndWait) for the csfFilterRowStatus object. If a particular
       call failure matches multiple entries in the csfRecordTable then
       multiple entries will be created in the csfRecordTable for each
       of the matched entries in the csfFilterTable . An entry in the
       csfFilterTable could also be created via the command line 
       interface, available on the ATM devices."
    INDEX   { csfFilterIndex }
    ::= { csfFilterTable 1 }

CsfFilterEntry ::= SEQUENCE 
    {
            csfFilterIndex            Integer32,
            csfFilterScope            INTEGER,
            csfFilterConnKind         OCTET STRING,
            csfFilterConnCastType     OCTET STRING,
            csfFilterServiceCategory  OCTET STRING,
            csfFilterInInterface      InterfaceIndexOrZero,
            csfFilterOutInterface     InterfaceIndexOrZero,
            csfFilterCause            Integer32,
            csfFilterCallingParty     AtmAddr,
            csfFilterCallingPartyMask OCTET STRING,
            csfFilterCalledParty      AtmAddr,
            csfFilterCalledPartyMask  OCTET STRING,
            csfFilterMaxRecords       Integer32,
            csfFilterAgeTimeout       Integer32,
            csfFilterPurge            INTEGER,
            csfFilterNumMatches       Counter32,
            csfFilterRowStatus        RowStatus
    }

csfFilterIndex OBJECT-TYPE
     SYNTAX     Integer32 (1..50)
     MAX-ACCESS not-accessible
     STATUS     current
     DESCRIPTION
	"An arbitrary integer uniquely identifying a filtering 
         criteria."
     ::= { csfFilterEntry 1 }

csfFilterScope OBJECT-TYPE
     SYNTAX     INTEGER {
		localRejects(1),
		remoteRejects(2),
		allRejects(3)
	    }
     MAX-ACCESS read-create
     STATUS     current
     DESCRIPTION
	 "This object restricts the scope of the filter to calls which 
          where rejected either within  the system in which the filtering 
          is in progress or to calls which were rejected on external 
          ATM devices but transited through the device in which filtering 
          is in progress."
     DEFVAL   { allRejects }
     ::= { csfFilterEntry 2 }

csfFilterConnKind  OBJECT-TYPE
     SYNTAX      OCTET STRING (SIZE(1))
     MAX-ACCESS read-create
     STATUS     current
     DESCRIPTION
          "This object enables the user to track failures of soft 
           permanent virtual channel connections, soft permanent virtual 
           path connections, switched virtual channel connections, and/or 
           switched virtual path connections."
     ::= { csfFilterEntry 3 }

csfFilterConnCastType OBJECT-TYPE
      SYNTAX    OCTET STRING (SIZE(1))
      MAX-ACCESS read-create
      STATUS     current
      DESCRIPTION
            "This object restricts the scope of the filter based on the 
             type of topology of connections (point-to-point or 
             point-to-multipoint). "
      ::= { csfFilterEntry 4 }

csfFilterServiceCategory OBJECT-TYPE
       SYNTAX    OCTET STRING (SIZE(1))
      MAX-ACCESS read-create
      STATUS     current
      DESCRIPTION
	   "This object restricts the scope of the filter to calls 
            belonging to service categories represented by this object. "
      ::= { csfFilterEntry 5 }

csfFilterInInterface  OBJECT-TYPE
      SYNTAX     InterfaceIndexOrZero
      MAX-ACCESS read-create
      STATUS     current
      DESCRIPTION
	 "This object restricts the scope of the filter to calls which
	  entered the ATM device through the port represented by this object
	  It has the value 0, or the ifIndex value of an ATM Interface.
	  The value zero indicates that the scope of the filter is not
	  restricted by the incoming port. "
       DEFVAL   { 0 }
       ::= { csfFilterEntry 6 }

csfFilterOutInterface OBJECT-TYPE
     SYNTAX     InterfaceIndexOrZero
     MAX-ACCESS read-create
     STATUS     current
     DESCRIPTION
	  "This object restricts the scope of the filter to calls which
	   exited the ATM device through the port represented by this object
	   It has the value 0, or the ifIndex value of an ATM Interface.
	   The value zero indicates that the scope of the filter is not
	   restricted by the outgoing port. To track calls failed locally
           in the ATM device in which the call failure tracking is in 
           progress ,the csfFilterScope object should be used , in which 
           case the value of this object need not be changed from its
           default value. "
     DEFVAL   { 0 }
     ::= { csfFilterEntry 7 }

csfFilterCause       OBJECT-TYPE
    SYNTAX     Integer32 (0..255)
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
          "This object restricts the scope of the filter to calls which
           were cleared  with the cause code represented by this object.
           The values are the same as the clear code values mentioned
           in the ATM forum UNI specifications.The value zero indicates 
           that the scope of the filter is not restricted by the cause
           code value."
    REFERENCE 
            "ATM Forum's UNI3.0/3.1 Specification. "
    DEFVAL   { 0 }
    ::= { csfFilterEntry 8 }

csfFilterCallingParty     OBJECT-TYPE
    SYNTAX     AtmAddr
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
          "The combination of this object and the corresponding instance 
           of csfFilterCallingPartyMask is one selection criteria 
           for this record.  To match this selection criteria, a failed 
           connection setup must have a Calling Party Address which has 
           the same length as, and is equal in value to  
           csfFilterCallingParty for all bits that are 1 in the 
           value of csfFilterCallingPartyMask. When the default 
           value for the object is retained then the rejected call will 
           match this filtering criteria for any  calling address in the 
           rejected call. "
    DEFVAL   { "" }
    ::= { csfFilterEntry 9 }

csfFilterCallingPartyMask OBJECT-TYPE
    SYNTAX     OCTET STRING(SIZE(0..20))
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
          "The combination of this object and the corresponding 
           instance of csfFilterCallingParty is one selection 
           criteria for this record.  To match this selection criteria, 
           a failed connection setup must have a Calling Party Address 
           which equals the value of csfFilterCallingParty for 
           all bit positions identified by the value of 
           csfFilterCallingPartyMask. If the mask value is 
           shorter than the length of csfFilterCallingParty, 
           then it is extended with zero bits to be the required length. 
           If the default value for this object is retained then the 
           rejected call will match this filtering criterion if and 
           only if the  calling address in the call matches the 
           csfFilterCallingParty for this entry. "
    DEFVAL    {""}
    ::= { csfFilterEntry 10 }

csfFilterCalledParty      OBJECT-TYPE
    SYNTAX     AtmAddr
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
          "The combination of this object and the corresponding instance 
           of csfFilterCalledPartyMask is one selection criteria 
           for this record.  To match this selection criteria, a failed 
           connection setup must have a called party address which has 
           the same length as, and is equal in value to 
           csfFilterCalledParty for all bits that are 1 in the value of 
           csfFilterCalledPartyMask. When the default value for the 
           object is retained then the rejected call will match this 
           filtering criteria for any called address in the call. "
    DEFVAL    {""}
    ::= { csfFilterEntry 11 }

csfFilterCalledPartyMask  OBJECT-TYPE
    SYNTAX     OCTET STRING (SIZE(0..20))
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
          "The combination of this object and the corresponding instance of 
           csfFilterCalledParty is one selection criteria for this 
           record.  To match this selection criteria, a failed connection 
           setup must have a Calling Party Address which equals the value
           of csfFilterCalledParty for all bit positions identified 
           by the value of csfFilterCalledPartyMask.  If the mask 
           value is shorter than the length of csfFilterCalledParty, 
           then it is extended with zero bits to be the required length. If 
           the default value for this object is retained then the rejected 
           call will match this filtering criterion if and only if the
           calling address in the call matches the 
           csfFilterCallingParty for this entry. " 
    DEFVAL {""}
    ::= { csfFilterEntry 12 }

csfFilterMaxRecords       OBJECT-TYPE
    SYNTAX     Integer32 (-1..214783647)
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
         "The maximum number of entries that are desired in the 
          csfRecordTable on behalf of this entry. The agent will not create
          more than this number of entries in the table,but may choose
          to create fewer entries in the csfRecordTable for any reason
          including the lack of resources. The agent will however
          dedicate resources for a minimum number of entries in the 
          csfRecordTable ,to take care of temporary memory allocation 
          failures in the system. In case of memory allocation failures 
          the agent will utilize these dedicated resources for the 
          creation of the new entries. If memory resource failures
          continue and the dedicated resources are exhausted then
          the records in the csfRecordTable are pruned such that the
          oldest entries are removed to make way for the new entries.

          A value '-1' will indicate no upper limit for the number of 
          records stored. The manager can set this object to -1 if
          overwriting of records is not desired. The new value for 
          this object will take effect immediately. 

          If this object is set to a value less than the number of entries 
          thats currently present in the csfRecordTable corresponding to  
          this entry, then the oldest entries in the csfRecordTable will be 
          deleted so that their number equals the new value of this object.

          If the value of this object is changed from -1 to any other 
          positive value then the entries will be pruned such that only the
          first n records collected  for this entry are retained in the 
          csfRecordTable, n being the new value of this object. "
    DEFVAL  { 20 }
    ::= { csfFilterEntry 13 }
    
csfFilterAgeTimeout       OBJECT-TYPE
    SYNTAX     Integer32 (-1..2147483647)
    UNITS      "seconds"
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
          "The number of seconds left for this entry to age out.
           On expiry of this timer filtering is disabled for this entry. 
           The display records in the csfRecordTable corresponding 
           to this entry are retained. When the timer expires the object 
           will have a value zero. The management station can restart
           filtering for this entry by setting this object to a positive value. 
           When the object is set to zero, filtering is stopped for this 
           entry. When the management station modifies this object , 
           the currently running timer,if any, is aborted and a timer is 
           started with the new value of this object. The value '-1' will 
           indicate an infinite timeout value. "
    DEFVAL    { 600 }
    ::= { csfFilterEntry 14 }

csfFilterPurge OBJECT-TYPE
    SYNTAX     INTEGER {
               purge(1),
               noop(2)
               }
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
           "The object provides a facility for the user to purge the records 
            in the csfRecordTable corresponding to this entry. When 
            the value  is set to 'purge', the records in the 
            csfRecordTable corresponding to this entry are purged.  
            When the value is set to 'noop' no operation is performed. When 
            read, the value 'noop' is returned."
    DEFVAL    { noop }
    ::= { csfFilterEntry 15 }

csfFilterNumMatches OBJECT-TYPE
    SYNTAX     Counter32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
         "A monotonically increasing counter to keep track of the
          number of call failures that matched this entry for
          the entire lifetime of this entry. "
    ::= { csfFilterEntry 16 }

csfFilterRowStatus  OBJECT-TYPE
    SYNTAX     RowStatus
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
            "Indicates the status of this row. Used according to the row
             installation and removal conventions. This object can be used 
             to temporarily inactivate an entry in the table. When this object 
             is set to a value 'notInService' filtering is stopped for the 
             corresponding row. Any records that have been stored in the 
             csfRecordTable corresponding to this entry will not be 
             released. Any writeable objects in the row can be modified when
             the row is active. All values will take effect immediately."
    ::= { csfFilterEntry 17 }


csfRecordGroup OBJECT IDENTIFIER ::= {ciscoSigFailMIBObjects 3}

csfRecordTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF CsfRecordEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The table in which the failures of ATM Signalling connection 
             setup requests are recorded."
    ::= { csfRecordGroup 1 }

csfRecordEntry OBJECT-TYPE
    SYNTAX     CsfRecordEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "An entry representing one connection setup request failure 
             record. The csfRecordFilterIndex represents the 
             index into the  csfFilterTable whose entry is the 
             filtering criteria applied against all connection setup 
             failures generated/detected at this ATM device. Only connection 
             setup failures which match against all of the filtering 
             entry's criteria are recorded in the table. There could be 
             multiple entries for each filtering criteria. The 
             csfFilterMaxRecords indicates the number of records to
             be stored for the corresponding csfFilterTable entry."
    INDEX   { csfFilterIndex, csfRecordIndex }
    ::= { csfRecordTable 1 }

CsfRecordEntry ::=
    SEQUENCE {
            csfRecordIndex                      Integer32,
            csfRecordScope                      INTEGER,
            csfRecordConnKind                   INTEGER,
            csfRecordConnCastType               INTEGER,
            csfRecordConnIndicator              INTEGER,
            csfRecordServiceCategory            ServiceCategory,
            csfRecordInInterface                Integer32,
            csfRecordOutInterface               InterfaceIndexOrZero,
            csfRecordCause                      Integer32,        
            csfRecordDiags                      OCTET STRING,        
            csfRecordCallingParty               AtmAddr,
            csfRecordCallingPartySubAddress     AtmAddr,
            csfRecordCalledParty                AtmAddr,
            csfRecordCalledPartySubAddress      AtmAddr,
            csfRecordCrankBackTransitType       INTEGER,
            csfRecordCrankBackNodeId            PnniNodeId,
            csfRecordCrankBackPortId            PnniPortId,
            csfRecordCrankBackSucceedingNodeId  PnniNodeId,
            csfRecordTimeStamp                  TimeStamp
    }

csfRecordIndex OBJECT-TYPE
    SYNTAX     Integer32 (1..2147483647)
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "An arbitrary integer used to distinguish between multiple
             records for the same filtering criteria. "
    ::= { csfRecordEntry 1 }


csfRecordScope OBJECT-TYPE
     SYNTAX      INTEGER {
                 localReject(1),
                 remoteReject(2)
                }
     MAX-ACCESS read-only
     STATUS     current
     DESCRIPTION 
	    "This object indicates the location of the call failure."
    ::= { csfRecordEntry 2 }

csfRecordConnKind  OBJECT-TYPE
     SYNTAX    INTEGER {
               softPvcc(1),
               softPvpc(2),
               switchedVcc(3),
               switchedVpc(4)
    }
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
             "This object represents the use of call control of the 
              rejected connection. "
    ::= { csfRecordEntry 3 }

csfRecordConnCastType  OBJECT-TYPE
    SYNTAX     INTEGER {
               p2p(1),
               p2mp(2)
    }
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
               "This object represents the type of topology of the 
                rejected call (point-to-point or point-to-multipoint)."

    ::= { csfRecordEntry 4 }

csfRecordConnIndicator    OBJECT-TYPE
    SYNTAX     INTEGER {
               addPartyReject(1),
               setupReject(2)
    }
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
              "Indicates whether this record was created due to an add 
               party failure or a setup failure. "
    ::= { csfRecordEntry 5 }

csfRecordServiceCategory OBJECT-TYPE
    SYNTAX     ServiceCategory
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
          "This object represents the service category used by the call. " 
    ::= { csfRecordEntry 6 }


csfRecordInInterface OBJECT-TYPE
    SYNTAX     Integer32 (1..2147483647)
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The IfIndex of the incoming port on which this call was received 
             by the ATM device."
    ::= { csfRecordEntry 7 }

csfRecordOutInterface OBJECT-TYPE
    SYNTAX     InterfaceIndexOrZero
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The IfIndex of the outgoing  port ,if available, through  which 
             this call was routed to the network. The distinguished value zero 
             indicates that the call was rejected before any outgoing 
             interface was chosen."

    ::= { csfRecordEntry 8 }

csfRecordCause      OBJECT-TYPE
    SYNTAX     Integer32 (0..255)
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "This object identifies the reason for the call failure.  When 
            a PNNI Crankback information element is included in the call 
            clearing message, this object contains the crankback cause.
            In all other cases, the values are the same as the cause code 
            values defined for the Cause information element."
    REFERENCE
            "ATM Forum's UNI3.0/3.1 Specification. "
    ::= { csfRecordEntry 9 }

csfRecordDiags      OBJECT-TYPE   
    SYNTAX     OCTET STRING(SIZE(0..17))
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "This object contains the contents of the diagnostics fields 
             from the Cause information element. When the value of 
             csfRecordCause is 49,'Quality of Service unavailable', 
             the diagnostics are taken from the PNNI Crankback information 
             element instead of the cause information element."
    REFERENCE
            "ATM Forum's UNI3.0/3.1 Specification. "
    ::= { csfRecordEntry 10 }

csfRecordCallingParty     OBJECT-TYPE
     SYNTAX       AtmAddr
     MAX-ACCESS   read-only
     STATUS       current
     DESCRIPTION
             "Indicates the ATM adddress of the calling party in the
              rejected call."
    ::= { csfRecordEntry 11 }

csfRecordCallingPartySubAddress     OBJECT-TYPE
     SYNTAX       AtmAddr
     MAX-ACCESS   read-only
     STATUS       current
     DESCRIPTION
             "Indicates the ATM sub-adddress of the calling party in the
              rejected call. The presence of a sub address is not mandatory.
              If the calling sub-addresses is not present in the call then 
              this object will have a null value."
    ::= { csfRecordEntry 12 }

csfRecordCalledParty      OBJECT-TYPE
     SYNTAX       AtmAddr
     MAX-ACCESS   read-only
     STATUS       current
     DESCRIPTION
             "Indicates the ATM address of the called party in the
              rejected call. "
    ::= { csfRecordEntry 13 }

csfRecordCalledPartySubAddress OBJECT-TYPE
     SYNTAX       AtmAddr
     MAX-ACCESS   read-only
     STATUS       current
     DESCRIPTION
             "Indicates the ATM sub-adddress of the called party in the
              rejected call. The presence of a sub address is not mandatory.
              If the called sub-address is not present in the call then 
              this object will have a null value."
    ::= { csfRecordEntry 14 }

csfRecordCrankBackTransitType   OBJECT-TYPE
    SYNTAX     INTEGER  {
               blockedIncomingPort(1),
               blockedNode(2),
               blockedLink(3),
               noCrankBack(4)
    }
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "This object identifies the type of blockage in case of 
             a blocked call. This object has a value 'noCrankBack' if the
             call was cleared without a crankback information element."
    ::= { csfRecordEntry 15 }
 
csfRecordCrankBackNodeId        OBJECT-TYPE
    SYNTAX     PnniNodeId
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "This object depends on the csfRecordCrankBackTransitType
            object. When that object value is 'blockedNode',
            csfRecordCrankBackNodeId indicates the node ID of 
            the blocked node. When the csfRecordCrankBackTransitType
            object value is 'blockedLink', this object indicates the 
            node ID of the logical node preceding the link at which 
            the call/connection was blocked. When the 
            csfRecordCrankBackTransitType object value is 
            'blockedIncomingPort' or 'noCrankBack', this object is 
            set to null."
    ::= { csfRecordEntry 16 }

csfRecordCrankBackPortId        OBJECT-TYPE
    SYNTAX     PnniPortId
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "When the csfRecordCrankBackTransitType object value 
             is 'blockedLink', this object identifies a logical port of the 
             blocked link's preceeding node identifier. The distinguished  
             value zero indicates that no port is specified.  For all values 
             of csfRecordCrankBackTransitType other than 'blockedLink',
             this object is set to zero."
    ::= { csfRecordEntry 17 }

csfRecordCrankBackSucceedingNodeId        OBJECT-TYPE
    SYNTAX     PnniNodeId
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "This object depends on the csfRecordCrankBackTransitType
             object. If the csfRecordCrankBackNodeId object value
             is 'blockedLink' then the value of this object will identify 
             the logical node succeeding a link at which the call/connection 
             was blocked. This object does not have a meaning if the call 
             is cleared without a crankback information element and thus 
             set to null. "
    ::= { csfRecordEntry 18 }

csfRecordTimeStamp          OBJECT-TYPE
    SYNTAX     TimeStamp
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
             "The time at which this record entry was created."
    ::= { csfRecordEntry 19 }



csfDtlTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF CsfDtlEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
             "The table in which the Designated Transit List (DTL)stacks 
              (i.e., source routes) of failed calls  are recorded. Each DTL 
              identifies a source route through a single peer group. 
              DTL's are represented as a series of logical Node IDs and 
              logical Port IDs."
    ::= { csfRecordGroup 2}

csfDtlEntry OBJECT-TYPE
    SYNTAX     CsfDtlEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "A segment of the DTL stack. The complete DTL stack is formed 
             by traversing the rows of the table for which the csfFilterIndex 
             and csfRecordIndex are the same. Level transitions are indicated 
             using the csfDtlLinkType. Since the entries in the table are
             linked to the entries of the csfFilterTable ,the entries are 
             added and removed from the table as and when the corresponding
             entries in the csfFilterTable are added and removed."
    INDEX   { csfFilterIndex, csfRecordIndex,
              csfDtlEntryIndex }
    ::= { csfDtlTable 1 }

CsfDtlEntry ::=
    SEQUENCE {
            csfDtlEntryIndex            Integer32,
            csfDtlNodeId                PnniNodeId,
            csfDtlPortId                PnniPortId,
            csfDtlLinkType              INTEGER
    }

csfDtlEntryIndex OBJECT-TYPE
    SYNTAX     Integer32 (1..200)
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
         "The index in the current DTL stack of this entry. This
          index represents the the order of this entry in the DTL
          stack."
    ::= { csfDtlEntry 1 }

csfDtlNodeId OBJECT-TYPE
    SYNTAX     PnniNodeId
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "Each entry in the DTL table corresponds to a node/port tuple
           based on which a source route through the peer group is built.
           This object represents the node id in the tuple "
    ::= { csfDtlEntry 2 }

csfDtlPortId OBJECT-TYPE
    SYNTAX     PnniPortId
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
           "Each entry in the DTL table corresponds to a node/port tuple
            based on which a source route through the peer group is built.
            This object represents the port id in the tuple "
    ::= { csfDtlEntry 3 }

csfDtlLinkType OBJECT-TYPE
    SYNTAX     INTEGER {
               invalid(1), 
               horizontal(2),
               uplink(3),  
               last(4)    
    }
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION 
           "The type of link out from the node identified by csfDtlNodeId.  
            This is well defined even if the specific port is not specified. 
            A value 'horizontal' indicates a normal link within the containing 
            peer group. A value 'uplink' indicates a link going up a level. 
            A value 'last' indicates that this is the last entry in the DTL 
            stack. 'invalid' indicates an invalid link."

   ::= {csfDtlEntry 4 }



-- conformance information

ciscoSigFailMIBConformance
                   OBJECT IDENTIFIER ::= { ciscoAtmSigDiagMIB 3 }
ciscoSigFailMIBCompliances 
                   OBJECT IDENTIFIER ::= { ciscoSigFailMIBConformance 1 }
ciscoSigFailMIBGroups
                   OBJECT IDENTIFIER ::= { ciscoSigFailMIBConformance 2 }


-- compliance statements

ciscoSigFailMIBCompliance MODULE-COMPLIANCE
    STATUS  current
    DESCRIPTION
            "The compliance statement for entities which implement
            the Cisco ATM Signalling Diagnostic MIB"
    MODULE  -- this module
            MANDATORY-GROUPS { ciscoSigFailGeneralGroup, ciscoSigFailMIBGroup }
    ::= { ciscoSigFailMIBCompliances 1 }


-- units of conformance

ciscoSigFailGeneralGroup OBJECT-GROUP
    OBJECTS {
           csfFilterControl
    }
    STATUS  current
    DESCRIPTION
            "A collection of objects which help in diagnosing ATM
            signalling failures."
    ::= { ciscoSigFailMIBGroups 1 }

ciscoSigFailMIBGroup OBJECT-GROUP
    OBJECTS { 
            csfFilterScope,
            csfFilterConnKind,
            csfFilterConnCastType,
            csfFilterServiceCategory,
            csfFilterInInterface ,
            csfFilterOutInterface,
            csfFilterCause,
            csfFilterCallingParty,
            csfFilterCallingPartyMask,
            csfFilterCalledParty,
            csfFilterCalledPartyMask,
            csfFilterMaxRecords,
            csfFilterAgeTimeout,
            csfFilterPurge,
            csfFilterNumMatches,
            csfFilterRowStatus,
            csfRecordScope,
            csfRecordConnKind,
            csfRecordConnCastType,
            csfRecordConnIndicator,
            csfRecordServiceCategory,
            csfRecordInInterface,
            csfRecordOutInterface,
            csfRecordCause,        
            csfRecordDiags,        
            csfRecordCallingParty,
            csfRecordCallingPartySubAddress,
            csfRecordCalledParty,
            csfRecordCalledPartySubAddress,
            csfRecordCrankBackTransitType,
            csfRecordCrankBackNodeId,
            csfRecordCrankBackSucceedingNodeId,
            csfRecordCrankBackPortId,
            csfRecordTimeStamp,
            csfDtlNodeId,
            csfDtlPortId,
            csfDtlLinkType
           }
    STATUS  current
    DESCRIPTION
            "A collection of objects which help in diagnosing ATM
            signalling failures."
    ::= { ciscoSigFailMIBGroups 2 }

END




