-- *****************************************************************
-- CISCO-UDLDP-MIB.my
--   
-- Nov. 1998, Padma Pullela
--   
-- Copyright (c) 1998, 2000, 2002, 2003, 2007, 2009 by cisco Systems Inc.
-- All rights reserved.
-- ****************************************************************

CISCO-UDLDP-MIB DEFINITIONS ::= BEGIN

IMPORTS
    MODULE-IDENTITY,
    OBJECT-TYPE,
    Unsigned32,
    NOTIFICATION-TYPE
        FROM SNMPv2-SMI
    MODULE-COMPLIANCE,
    OBJECT-GROUP,
    NOTIFICATION-GROUP
        FROM SNMPv2-CONF
    TruthValue
        FROM SNMPv2-TC
    ifIndex, ifName
        FROM IF-MIB
    ciscoMgmt
        FROM CISCO-SMI;


ciscoUdldpMIB MODULE-IDENTITY
    LAST-UPDATED    "200911090900Z"
    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-lan-switch-snmp@cisco.com"
    DESCRIPTION
        "Cisco Uni Direction Link Detection Protocol
        MIB"
    REVISION        "200911090900Z"
    DESCRIPTION
                    "Add ciscoUdldpFastHelloGroup, and
                     ciscoUdldpFastHelloNotificationGroup."
    REVISION        "200711270000Z"
    DESCRIPTION
        "Added new object cudldpHelloIntervalExt."
    REVISION        "200302210000Z"
    DESCRIPTION
        "Changed enumerated integer labels in the
        cudldpInterfaceOperStatus object from 
        'bidirectional' to 'biDirectional' and 
        'notapplicable' to 'notApplicable'."
    REVISION        "200210100000Z"
    DESCRIPTION
        "Added cudldpGlobalMode, cudldpInterfaceAdminMode
        and cudldpInterfaceOperMode objects. 
        Removed default values for 
        cudldpGlobalEnable, cudldpHelloInterval
        and udldpInterfaceEnable. Deprecated 
        cudldpGlobalEnable and cudldpInterfaceEnable
        cudldpInterfaceAggressiveMode objects."
    REVISION        "200004100000Z"
    DESCRIPTION
        "Added two UDLDP AggressiveMode objects"
    REVISION        "9811100000Z"
    DESCRIPTION
        "Initial version of this MIB module."
    ::= { ciscoMgmt 118 }


ciscoUdldpMIBNotifs  OBJECT IDENTIFIER ::=  { ciscoUdldpMIB 0 }
ciscoUdldpMIBObjects  OBJECT IDENTIFIER ::= { ciscoUdldpMIB 1 }

cudldpGlobal     OBJECT IDENTIFIER ::= { ciscoUdldpMIBObjects 1 }
cudldpInterface  OBJECT IDENTIFIER ::= { ciscoUdldpMIBObjects 2 }
cudldpFastHello  OBJECT IDENTIFIER ::= { ciscoUdldpMIBObjects 3 }



-- cudldpGlobal

cudldpGlobalEnable OBJECT-TYPE
    SYNTAX          TruthValue
    MAX-ACCESS      read-write
    STATUS          deprecated
    DESCRIPTION
        "This variable is used to
        enable(true)/disable(false) Uni Direction 
        Link Detection Protocol on the device. 
        cudldpGlobalEnable is deprecated  and
        replaced with cudldpGlobalMode." 
    ::= { cudldpGlobal 1 }

cudldpHelloInterval OBJECT-TYPE
    SYNTAX          INTEGER (7..90)
    UNITS           "seconds"
    MAX-ACCESS      read-write
    STATUS          current
    DESCRIPTION
        "Indicates interval in seconds at which each port
        sends a hello packet to all of its neighbors at
        steady state when the link has been identified as
        bidirectional.

        For platforms which support cudldpHelloIntervalExt, when 
        cudldpHelloIntervalExt reports a value less than the 
        minimum value reportable by cudldpHelloInterval, then 
        cudldpHelloInterval should report its minimum value of 7." 
    ::= { cudldpGlobal 2 }

cudldpGlobalMode OBJECT-TYPE
    SYNTAX          INTEGER  {
                        enable(1),
                        disable(2),
                        aggressive(3)
                    }
    MAX-ACCESS      read-write
    STATUS          current
    DESCRIPTION
        "Indicates the mode of UDLDP feature on the device.
        enable -- Uni Direction Link Detection Protocol is 
                  enabled on the device.

        disable -- Uni Directional Link Detection Protocol is
                   disabled on the device.

        aggresive -- Uni Directional Link Detection protocol
                     is enabled in aggressive mode on the
                     device." 
    ::= { cudldpGlobal 3 }

cudldpHelloIntervalExt OBJECT-TYPE
    SYNTAX          Unsigned32 (1..90)
    UNITS           "seconds"
    MAX-ACCESS      read-write
    STATUS          current
    DESCRIPTION
        "Indicates interval in seconds at which each port
        sends a hello packet to all of its neighbors at
        steady state when the link has been identified as
        bidirectional." 
    ::= { cudldpGlobal 4 }

cudldpFastHelloLinkFailRptNotifEnable OBJECT-TYPE
    SYNTAX          TruthValue
    MAX-ACCESS      read-write
    STATUS          current
    DESCRIPTION
        "This object specifies whether 
        cudldpFastHelloLinkFailRptNotification is generated by 
        the system.

        Setting this object value to 'true' will enable
        generation of cudldpFastHelloLinkFailRptNotification. 

        Seting this object value to 'false' will disable
        generation of cudldpFastHelloLinkFailRptNotification."
    ::= { cudldpGlobal 5 }

cudldpFastHelloStatusChangeNotifEnable OBJECT-TYPE
    SYNTAX          TruthValue
    MAX-ACCESS      read-write
    STATUS          current
    DESCRIPTION
        "This object specifies whether 
        cudldpFastHelloStatusChangeNotification is generated by 
        the system.

        Setting this object value to 'true' will enable
        generation of cudldpFastHelloStatusChangeNotification. 

        Seting this object value to 'false' will disable
        generation of cudldpFastHelloStatusChangeNotification."
    ::= { cudldpGlobal 6 }

-- cudldpInterface

cudldpInterfaceTable OBJECT-TYPE
    SYNTAX          SEQUENCE OF CudldpInterfaceEntry 
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "The (conceptual) table containing the status
        of UDLDP on the device's interfaces."
    ::= { cudldpInterface 1 }

cudldpInterfaceEntry OBJECT-TYPE
    SYNTAX          CudldpInterfaceEntry
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "A conceptual row of cudldpInterfaceTable. An
        entry exists for each interface that supports 
        UDLDP."
    INDEX           { ifIndex } 
    ::= { cudldpInterfaceTable 1 }

CudldpInterfaceEntry ::= SEQUENCE {
        cudldpInterfaceEnable         TruthValue,
        cudldpInterfaceOperStatus     INTEGER,
        cudldpInterfaceAggressiveMode TruthValue,
        cudldpInterfaceAdminMode      INTEGER,
        cudldpInterfaceOperMode       INTEGER,
        cudldpIfFastHelloInterval     Unsigned32,
        cudldpIfOperHelloInterval     Unsigned32,
        cudldpIfFastHelloOperStatus   INTEGER
}

cudldpInterfaceEnable OBJECT-TYPE
    SYNTAX          TruthValue
    MAX-ACCESS      read-write
    STATUS          deprecated
    DESCRIPTION
        "This variable is used to enable UDLDP on this
        interface.  If cudldpGlobalEnable is set to 
        'false' then this variable has no effect.
         cudldpInterfaceEnable is deprecated  and
         replaced with cudldpInterfaceAdminMode." 
    ::= { cudldpInterfaceEntry 1 }

cudldpInterfaceOperStatus OBJECT-TYPE
    SYNTAX          INTEGER  {
                        shutdown(1),
                        indeterminant(2),
                        biDirectional(3),
                        notApplicable(4)
                    }
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This mib object contains the following values,
        which has the meaning as:
        'shutdown'       - An Uni-Direction link  has been 
                           detected and the port has been 
                              disabled.
        'indeterminant' - Uni-Direction Link Detection  
                          protocol has not collected enough
                          information to determine if the 
                          link is bi directional or not.
        'biDirectional' - A bi directional link has been 
                           detected.
        'notApplicable' - Uni-Direction Link Detection 
                          Protocol is disabled." 
    ::= { cudldpInterfaceEntry 2 }

cudldpInterfaceAggressiveMode OBJECT-TYPE
    SYNTAX          TruthValue
    MAX-ACCESS      read-write
    STATUS          deprecated
    DESCRIPTION
        "An indication of whether the UDLDP aggressive mode
        is enabled on this interface. If the 
        aggressive mode is set to 'true', an active port may 
        be shutdown in case of the abrupt loss of its 
        neighbor(s) because the loss of communication
        (heartbeat) with the neighbor(s) is assumed to be
        caused by a fault; thus, the cudldpInterfaceOperStatus
        of the active port will be 'shutdown'. Instead, when
        the aggressive mode is set to 'false', and if there
        is a loss of communication with the neighbor(s), then
        the cudldpInterfaceOperStatus of the active port
        will be 'indeterminant'. 
        Therefore, this mode is recommended 
        only for links that don't use hubs, media converters 
        or similar devices, and where the unexpected loss of 
        the port's neighbor is not an admissible condition.
        cudldpInterfaceAggressiveMode is deprecated  and
        replaced with cudldpInterfaceAdminMode." 
    ::= { cudldpInterfaceEntry 3 }

cudldpInterfaceAdminMode OBJECT-TYPE
    SYNTAX          INTEGER  {
                        enable(1),
                        disable(2),
                        aggressive(3),
                        default(4)
                    }
    MAX-ACCESS      read-write
    STATUS          current
    DESCRIPTION
        "Indicates the Administrative mode of Uni Direction
        Link Detection Protocol Feature configured on this 
        interface.

        enable -- Uni Direction Link Detection Protocol is 
                  enabled on this interface.

        disable -- Uni Direction Link Detection Protocol is
                   disabled on this interface.

        aggressive -- Uni Direction Link Detection protocol
                     is enabled in aggressive mode on this
                     interface.

        default -- Whether the Uni Directiona Link Detection 
                   protocol is enabled or not on this interface
                   depends on the object value of 
                   cudldpGlobalMode." 
    ::= { cudldpInterfaceEntry 4 }

cudldpInterfaceOperMode OBJECT-TYPE
    SYNTAX          INTEGER  {
                        enable(1),
                        disable(2),
                        aggressive(3)
                    }
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "Indicates the operational mode of Uni Direction Link
        Detection Protocol Feature on this interface." 
    ::= { cudldpInterfaceEntry 5 }

cudldpIfFastHelloInterval OBJECT-TYPE
    SYNTAX      Unsigned32 
    UNITS       "milliseconds"
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "This object specifies the fast hello interval at 
         which each port sends a hello packet to all of its 
         neighbors at steady state. By setting this object to 
         a positive value, this interface is enabled to send
         UDLD hello packet at a fast interval as specified by
         this object value. 

         Setting this object to zero value, this interface is 
         disabled to send UDLD hello packet at fast interval.
         Instead, the interface will send the UDLD hello packet
         at the interval as specified by cudldpHelloInterval object
         (or cudldpHelloIntervalExt if a platform supports
         cudldpHelloIntervalExt)."
    ::= { cudldpInterfaceEntry 6 }

cudldpIfOperHelloInterval OBJECT-TYPE
    SYNTAX      Unsigned32 
    UNITS       "milliseconds"
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object indicates the operational interval value
         at which each port sends a hello packet to all of its 
         neighbors at steady state." 
    ::= { cudldpInterfaceEntry 7 }

cudldpIfFastHelloOperStatus OBJECT-TYPE
    SYNTAX      INTEGER { operational(1), notOperational(2) }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This object indicates the operational status of
         fast hello UDLD at this interface." 
    ::= { cudldpInterfaceEntry 8 }

-- cudldpFastHello

cudldpFastHelloErrorReportEnable OBJECT-TYPE
    SYNTAX      TruthValue 
    MAX-ACCESS  read-write
    STATUS      current 
    DESCRIPTION
        "This object specifies whether error reporting is enabled or 
         disabled when a fast hello UDLD link error is detected.

         'true' specifies that when a fast hello UDLD link error 
         is detected, the link remains in its current state and 
         a cudldpFastHelloLinkFailRptNotification event
         will be triggered. 

         'false' specifies that when a fast hello UDLD link error is 
         detected, the link will be automatically put in error-disable
         state and no error report will be generated."
    ::= { cudldpFastHello 1 }

cudldpFastHelloMaxPorts OBJECT-TYPE
    SYNTAX      Unsigned32 
    MAX-ACCESS  read-only
    STATUS      current 
    DESCRIPTION
        "This object indicates the maximum number of interfaces
         that fast hello UDLD can be enabled to run.

         When the value of cudldpFastHelloConfigPorts reaches this
         object value, enabling of fast hello UDLDP on additional 
         interface will fail." 
   ::= { cudldpFastHello 2 }

cudldpFastHelloConfigPorts OBJECT-TYPE
    SYNTAX      Unsigned32 
    MAX-ACCESS  read-only
    STATUS      current 
    DESCRIPTION
        "This object indicates the total number of interfaces
         that fast hello UDLD is currently enabled." 
    ::= { cudldpFastHello 3 }

cudldpFastHelloOperationalPorts OBJECT-TYPE
    SYNTAX      Unsigned32 
    MAX-ACCESS  read-only
    STATUS      current 
    DESCRIPTION
        "This object indicates the number of interfaces
         that fast hello UDLD is currently enabled and in operational
         state." 
    ::= { cudldpFastHello 4 }

-- Notifications

cudldpFastHelloLinkFailRptNotification NOTIFICATION-TYPE
    OBJECTS  { ifName }
    STATUS   current
    DESCRIPTION
        "This notification is generated when UDLDP detects
         a link failure on a fast hello UDLD link and the value of
         cudldpFastHelloErrorReportEnable is 'true'. ifName 
         identifies the interface where the link failure is 
         detected."
    ::= { ciscoUdldpMIBNotifs 1 }

cudldpFastHelloStatusChangeNotification NOTIFICATION-TYPE
    OBJECTS { 
               cudldpHelloInterval,
               cudldpIfFastHelloInterval, 
               cudldpIfOperHelloInterval,
               cudldpIfFastHelloOperStatus,
               ifName
            }
    STATUS   current
    DESCRIPTION
        "This notification is generated when there is a change
         in the value of cudldpIfFastHelloOperStatus object.
         cudldpHelloInterval provides the hello interval configured
         at the device level. cudldpIfFastHelloInterval provides
         the fast hello interval configured at the interface level.
         cudldpIfOperHelloInterval indicates the hello interval
         that is currently operational at this interface.
         cudldpIfFastHelloOperStatus indicates the operational
         status of UDLD fast hello at this interface. ifName 
         identifies the interface that trigger the generation of
         this notification."
    ::= { ciscoUdldpMIBNotifs 2 }

-- Conformance

ciscoUdldpMIBConformance  OBJECT IDENTIFIER
    ::= { ciscoUdldpMIB 3 }

ciscoUdldpMIBCompliances  OBJECT IDENTIFIER
    ::= { ciscoUdldpMIBConformance 1 }

ciscoUdldpMIBGroups  OBJECT IDENTIFIER
    ::= { ciscoUdldpMIBConformance 2 }


-- compliance statements

ciscoUdldpMIBCompliance MODULE-COMPLIANCE
    STATUS          deprecated
    DESCRIPTION
        "The compliance statement for the CISCO-UDLDP-MIB."
    MODULE          -- this module
    MANDATORY-GROUPS { ciscoUdldpMIBGroup }
    ::= { ciscoUdldpMIBCompliances 1 }

ciscoUdldpMIBComplianceRev1 MODULE-COMPLIANCE
    STATUS          deprecated
    DESCRIPTION
        "The compliance statement for the CISCO-UDLDP-MIB."
    MODULE          -- this module
    MANDATORY-GROUPS { ciscoUdldpMIBGroup }

    GROUP           ciscoUdldpAggreModeOptionalGroup
    DESCRIPTION
        "This group is mandatory if the managed system
        supports UDLDP aggressive mode feature."
    ::= { ciscoUdldpMIBCompliances 2 }

ciscoUdldpMIBComplianceRev2 MODULE-COMPLIANCE
    STATUS          deprecated
    DESCRIPTION
        "The compliance statement for the CISCO-UDLDP-MIB."
    MODULE          -- this module
    MANDATORY-GROUPS { ciscoUdldpMIBGroup2 }

    OBJECT          cudldpGlobalMode
    SYNTAX          INTEGER  {
                        enable(1),
                        disable(2)
                    }
    DESCRIPTION
        "The support of the value 'aggressive' is not
        required if the global aggressive mode feature is 
        not supported on the device."

    OBJECT          cudldpInterfaceAdminMode
    SYNTAX          INTEGER  {
                        enable(1),
                        disable(2)
                    }
    DESCRIPTION
        "The support of the values 'aggressive' and/or
        'default' is not required if the per interface 
        'aggressive' and/or 'default' mode feature
        is not supported on the device."
    ::= { ciscoUdldpMIBCompliances 3 }

ciscoUdldpMIBComplianceRev3 MODULE-COMPLIANCE
    STATUS         deprecated 
    DESCRIPTION
        "The compliance statement for the CISCO-UDLDP-MIB. This
         compliance statement is deprecated and superceded by
         ciscoUdldpMIBComplianceRev4."
    MODULE          -- this module
    MANDATORY-GROUPS { ciscoUdldpMIBGroup2 }

    GROUP           ciscoUdldpMIBGroup3
    DESCRIPTION
        "This group is mandatory only for platforms which support
        the extended range of the hello interval (1..90)."

    OBJECT          cudldpGlobalMode
    SYNTAX          INTEGER  {
                        enable(1),
                        disable(2)
                    }
    DESCRIPTION
        "The support of the value 'aggressive' is not
        required if the global aggressive mode feature is 
        not supported on the device."

    OBJECT          cudldpInterfaceAdminMode
    SYNTAX          INTEGER  {
                        enable(1),
                        disable(2)
                    }
    DESCRIPTION
        "The support of the values 'aggressive' and/or
        'default' is not required if the per interface 
        'aggressive' and/or 'default' mode feature
        is not supported on the device."
    ::= { ciscoUdldpMIBCompliances 4 }

ciscoUdldpMIBComplianceRev4 MODULE-COMPLIANCE
        STATUS  current 
        DESCRIPTION
                "The compliance statement for the CISCO-UDLDP-MIB."
        MODULE  -- this module
        MANDATORY-GROUPS { ciscoUdldpMIBGroup2  }
  
        GROUP           ciscoUdldpMIBGroup3
        DESCRIPTION
              "This group is mandatory only for platforms which support
               the extended range of the hello interval (1..90)."

        GROUP   ciscoUdldpFastHelloGroup
        DESCRIPTION
              "This group is mandatory where fast hello UDLD 
               is supported in the device." 
 
        GROUP   ciscoUdldpFastHelloNotificationGroup
        DESCRIPTION
              "This group is mandatory where fast hello UDLD 
               notification is supported in the device." 

        OBJECT  cudldpGlobalMode
        SYNTAX INTEGER { enable(1), disable(2) }
        MIN-ACCESS      read-only
        DESCRIPTION
              "The support of the value 'aggressive' is not 
               required if the global aggressive mode feature is 
               not supported on the device.

               Support for read-write access is not required."

        OBJECT  cudldpInterfaceAdminMode
        SYNTAX INTEGER { enable(1), disable(2) }
        MIN-ACCESS    read-only
        DESCRIPTION
              "The support of the values 'aggressive' and/or 
               'default' is not required if the per interface 
               'aggressive' and/or 'default' mode feature
               is not supported on the device.

               Support for read-write access is not required."

        OBJECT        cudldpHelloInterval 
        MIN-ACCESS    read-only
        DESCRIPTION
            "Support for read-write access is not required."

        OBJECT        cudldpHelloIntervalExt 
        MIN-ACCESS    read-only
        DESCRIPTION
            "Support for read-write access is not required."

        OBJECT        cudldpFastHelloLinkFailRptNotifEnable 
        MIN-ACCESS    read-only
        DESCRIPTION
            "Support for read-write access is not required."

        OBJECT        cudldpFastHelloStatusChangeNotifEnable 
        MIN-ACCESS    read-only
        DESCRIPTION
            "Support for read-write access is not required."

        OBJECT        cudldpIfFastHelloInterval 
        MIN-ACCESS    read-only
        DESCRIPTION
            "Support for read-write access is not required."

        OBJECT        cudldpFastHelloErrorReportEnable 
        MIN-ACCESS    read-only
        DESCRIPTION
            "Support for read-write access is not required."
        ::= { ciscoUdldpMIBCompliances 5 }


-- Units of Conformance

ciscoUdldpMIBGroup OBJECT-GROUP
    OBJECTS         {
                        cudldpGlobalEnable,
                        cudldpInterfaceEnable,
                        cudldpInterfaceOperStatus
                    }
    STATUS          deprecated
    DESCRIPTION
        "A collection of objects for use with the  Uni Direction
        Link Detection Protocol."
    ::= { ciscoUdldpMIBGroups 1 }

ciscoUdldpAggreModeOptionalGroup OBJECT-GROUP
    OBJECTS         {
                        cudldpInterfaceAggressiveMode,
                        cudldpHelloInterval
                    }
    STATUS          deprecated
    DESCRIPTION
        "A collection of optional objects providing UDLDP
        aggressive mode configuration information."
    ::= { ciscoUdldpMIBGroups 2 }

ciscoUdldpMIBGroup2 OBJECT-GROUP
    OBJECTS         {
                        cudldpGlobalMode,
                        cudldpInterfaceAdminMode,
                        cudldpInterfaceOperMode,
                        cudldpHelloInterval,
                        cudldpInterfaceOperStatus
                    }
    STATUS          current
    DESCRIPTION
        "A collection of objects providing Uni Direction
        Link Detection Protocol information."
    ::= { ciscoUdldpMIBGroups 3 }

ciscoUdldpMIBGroup3 OBJECT-GROUP
    OBJECTS         { cudldpHelloIntervalExt }
    STATUS          current
    DESCRIPTION
        "A collection of objects providing Uni Direction
        Link Detection Protocol information."
    ::= { ciscoUdldpMIBGroups 4 }

ciscoUdldpFastHelloGroup OBJECT-GROUP
     OBJECTS { 
             cudldpIfFastHelloInterval,
             cudldpIfOperHelloInterval,
             cudldpIfFastHelloOperStatus,
             cudldpFastHelloErrorReportEnable,
             cudldpFastHelloLinkFailRptNotifEnable,
             cudldpFastHelloStatusChangeNotifEnable,
             cudldpFastHelloMaxPorts,
             cudldpFastHelloConfigPorts,
             cudldpFastHelloOperationalPorts
             }
      STATUS  current
      DESCRIPTION
          "A collection of objects which provides fast hello UDLD 
           information in the device." 
        ::= { ciscoUdldpMIBGroups 5 }

ciscoUdldpFastHelloNotificationGroup NOTIFICATION-GROUP
     NOTIFICATIONS { 
             cudldpFastHelloLinkFailRptNotification,
             cudldpFastHelloStatusChangeNotification
             }
      STATUS  current
      DESCRIPTION
          "A collection of notifications which provides fast hello
           UDLD notifications support in the device."
        ::= { ciscoUdldpMIBGroups 6 }

END



