-- *****************************************************************
-- Cisco Extension to the IF MIB
--   
-- May 2002, Manik Raina
--   
-- Copyright (c) 2002-2008 by cisco Systems Inc.
--   
-- All rights reserved.
-- ***************************************************************

CISCO-IF-EXTENSION-MIB DEFINITIONS ::= BEGIN

IMPORTS
    MODULE-IDENTITY,
    OBJECT-TYPE,
    Counter32,
    Gauge32,
    Unsigned32,
    Integer32,
    NOTIFICATION-TYPE
        FROM SNMPv2-SMI
    MODULE-COMPLIANCE,
    OBJECT-GROUP,
    NOTIFICATION-GROUP
        FROM SNMPv2-CONF
    TruthValue,
    TimeStamp,
    DisplayString,
    TEXTUAL-CONVENTION
        FROM SNMPv2-TC
    ifIndex,
    InterfaceIndexOrZero,
    ifName,
    ifType,
    ifAdminStatus,
    ifOperStatus
        FROM IF-MIB
    entPhysicalIndex
        FROM ENTITY-MIB
    SnmpAdminString
        FROM SNMP-FRAMEWORK-MIB
    Unsigned64,
    IfOperStatusReason
        FROM CISCO-TC
    ciscoMgmt
        FROM CISCO-SMI;


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

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

            Tel: +1 800 553-NETS

            E-mail: cs-core-mibs@cisco.com,
            cs-lan-switch-snmp@cisco.com"
    DESCRIPTION
        "A MIB module for extending the IF-MIB (RFC2863)
        to add objects which provide additional information
        about interfaces not available in other MIBS.
        This MIB replaces the OLD-CISCO-INTERFACES-MIB."
    REVISION        "200707230000Z"
    DESCRIPTION
        "Added cieIfInterval in cieIfUtilTable. Changed
        the description of objects in cieIfUtilTable.
        Added ciscoIfExtUtilIntervalGroup."
    REVISION        "200611010000Z"
    DESCRIPTION
        "Add support for asymetrical interfaces speeds.

        - Added following objects in cieIfInterfaceTable 
          cieIfSpeedReceive 
          cieIfHighSpeedReceive 
        - Added ciscoIfExtensionAsymmetricalSpeedGroup OBJECT-GROUP 
        - Added ciscoIfExtensionMIBCompliance6 MODULE-COMPLIANCE"
    REVISION        "200504280000Z"
    DESCRIPTION
        "Added:
        - cieLinkUp & cieLinkDown notifications.
        - object to control sending: only standard 
          linkUp/linkDown OR only cieLinkUp/cieLinkDown
          OR both.
        - object to control sending only standard defined
          varbinds in linkUp/linkDown OR additional varbinds
          in addition to standard defined."
    REVISION        "200501250000Z"
    DESCRIPTION
        "Updated the description of cieIfDot1dBaseMappingEntry."
    REVISION        "200409080000Z"
    DESCRIPTION
        "Added new objects 'cieIfOperStatusCause' and
        'cieIfOperStatusCauseDescr' in cieIfInterfaceTable.
        Added a new table 'cieIfStatusListTable'."
    REVISION        "200311140000Z"
    DESCRIPTION
        "Added new objects cieIfName and cieIfIndex for the
        'ifName' to 'ifIndex' mapping.  Deprecated the
        ciscoIfExtensionMIBCompliance2 compliance.
        Added ciscoIfExtensionMIBCompliance3 and
        ciscoIfExtIfNameMappingGroup."
    REVISION        "200308120000Z"
    DESCRIPTION
        "Added ciscoIfExtDot1dBaseMappingGroup."
    REVISION        "200307170000Z"
    DESCRIPTION
        "Added ciscoIfExtUtilizationGroup."
    REVISION        "200306250000Z"
    DESCRIPTION
        "Added the object cieSystemMtu and
        ciscoIfExtSystemGroup.
        Added ciscoIfExtDot1qCustomEtherType and
        ciscoIfExtDot1qEtherTypeGroup."
    REVISION        "200210120000Z"
    DESCRIPTION
        "Added the objects cieIfDhcpMode, cieIfMtu,
        cieIfContextName to cieIfInterfaceTable.
        Deprecated the ciscoIfExtensionMIBCompliance
        compliance.  Added ciscoIfExtensionMIBCompliance1.
        Added ciscoIfExtensionTableIntfGroup1."
    REVISION        "200207240000Z"
    DESCRIPTION
        "Initial version of the MIB module."
    ::= { ciscoMgmt 276 }


ciscoIfExtensionMIBNotifications  OBJECT IDENTIFIER
    ::= { ciscoIfExtensionMIB 0 }

ciscoIfExtensionMIBObjects  OBJECT IDENTIFIER
    ::= { ciscoIfExtensionMIB 1 }

ciscoIfExtensionMIBConformance  OBJECT IDENTIFIER
    ::= { ciscoIfExtensionMIB 2 }

ciscoIfExtensionStats  OBJECT IDENTIFIER
    ::= { ciscoIfExtensionMIBObjects 1 }

ciscoIfExtSystemConfig  OBJECT IDENTIFIER
    ::= { ciscoIfExtensionMIBObjects 2 }

ciscoIfExtDot1qCustomEtherType  OBJECT IDENTIFIER
    ::= { ciscoIfExtensionMIBObjects 3 }

ciscoIfExtUtilization  OBJECT IDENTIFIER
    ::= { ciscoIfExtensionMIBObjects 4 }

ciscoIfExtDot1dBaseMapping  OBJECT IDENTIFIER
    ::= { ciscoIfExtensionMIBObjects 5 }

ciscoIfExtIfNameMapping  OBJECT IDENTIFIER
    ::= { ciscoIfExtensionMIBObjects 6 }


-- Textual Conventions

InterfaceIndexList ::= TEXTUAL-CONVENTION
    STATUS          current
    DESCRIPTION
        "This textual convention defines the 'ifIndex' for a
        set of 64 interfaces in a module.

        Each 4 bytes within the value of an object of this
        type is combined together to represent the interface
        index of a particular port in the module (i.e., each
        4 byte group represents the 'ifIndex' of an interface).

        The first 4 bytes (byte 1, byte 2, byte 3 and byte 4)
        combined represent the 'ifIndex' of an interface.
        While the second 4 bytes (byte 5, byte 6, byte 7 and
        byte 8) represent the 'ifIndex' for the next interface
        in the module, and so on.

        If there are only 'n' interfaces in a set of 64
        interfaces in the module, then bytes after the '4n'
        byte in this object are irrelevant."
    SYNTAX          OCTET STRING (SIZE (0..256))

InterfaceOperModeList ::= TEXTUAL-CONVENTION
    STATUS          current
    DESCRIPTION
        "This textual convention defines the operational mode
        for a set of 64 interfaces in a module.

        The operational mode of an interface is represented
        by the value defined in the textual convention
        'InterfaceOperMode' (defined in CISCO-ST-TC).

        Each 'byte' within the value of an object of this
        type, specifies the operational mode of an interface
        in the module.

        The first byte (byte 1) represents the operational
        mode of an interface in the module, whose 'ifIndex'
        is represented by the corresponding instance of
        'cieInterfacesIndex' object in its first 4 bytes.

        The second byte (byte 2) represents the operational
        mode of an interface in the module, whose 'ifIndex'
        is represented by the corresponding instance of
        'cieInterfacesIndex' object in its second 4 bytes.

        If there are only 'n' interfaces in a set of 64
        interfaces in the module, then bytes after the 'n'
        byte in this object are irrelevant."
    SYNTAX          OCTET STRING (SIZE (0..64))

InterfaceOperCauseList ::= TEXTUAL-CONVENTION
    STATUS          current
    DESCRIPTION
        "This textual convention defines the operational
        status cause for a set of 64 interfaces in a module.

        The operational status cause of an interface is
        represented by the value defined in the textual
        convention 'IfOperStatusReason' (defined in CISCO-TC).

        Each 2 bytes within the value of an object of this
        type is combined together to represent the operational
        status cause of a particular interface in the module
        (i.e., each 2 byte group represents the
        'cieIfOperStatusCause' of an interface).

        The first 2 bytes (byte 1 and byte 2) of this object,
        represents the operational status cause of an
        interface in the module, whose 'ifIndex' is
        represented by the corresponding instance of
        'cieInterfacesIndex' object in its first 4 bytes.

        The next 2 bytes (byte 3 and byte 4) of this object,
        represents the operational status cause of an
        interface in the module, whose 'ifIndex' is
        represented by the corresponding instance of
        'cieInterfacesIndex' object in the next 4 bytes
        respectively.

        If there are only 'n' interfaces in a set of 64
        interfaces in the module, then bytes after the
        '2n' byte in this object are irrelevant."
    SYNTAX          OCTET STRING (SIZE (0..128))
-- CISCO IF Extension Packet Stats Table

cieIfPacketStatsTable OBJECT-TYPE
    SYNTAX          SEQUENCE OF CieIfPacketStatsEntry 
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "This  table contains interface packet
        statistics which are not available in 
        IF-MIB(RFC2863). 

        As an example, some interfaces to which
        objects in this table are applicable are
        as follows :

                o Ethernet
                o FastEthernet
                o ATM
                o BRI
                o Sonet
                o GigabitEthernet

        Some objects defined in this table may be 
        applicable to physical interfaces only.
        As a result, this table may be sparse for
        some logical interfaces."
    ::= { ciscoIfExtensionStats 1 }

cieIfPacketStatsEntry OBJECT-TYPE
    SYNTAX          CieIfPacketStatsEntry
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "An entry into the cieIfPacketStatsTable."
    INDEX           { ifIndex } 
    ::= { cieIfPacketStatsTable 1 }

CieIfPacketStatsEntry ::= SEQUENCE {
        cieIfLastInTime              Gauge32,
        cieIfLastOutTime             Gauge32,
        cieIfLastOutHangTime         Gauge32,
        cieIfInRuntsErrs             Counter32,
        cieIfInGiantsErrs            Counter32,
        cieIfInFramingErrs           Counter32,
        cieIfInOverrunErrs           Counter32,
        cieIfInIgnored               Counter32,
        cieIfInAbortErrs             Counter32,
        cieIfInputQueueDrops         Counter32,
        cieIfOutputQueueDrops        Counter32,
        cieIfPacketDiscontinuityTime TimeStamp
}

-- The following section describes the objects in the table
-- in greater detail.

cieIfLastInTime OBJECT-TYPE
    SYNTAX          Gauge32
    UNITS           "milliseconds"
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object represents the elapsed time in
        milliseconds since last protocol input 
        packet was received.

        Discontinuities in the value of this variable
        can occur at re-initialization of the
        management system, and at other times as 
        indicated by the values of 
        cieIfPacketDiscontinuityTime." 
    ::= { cieIfPacketStatsEntry 1 }

cieIfLastOutTime OBJECT-TYPE
    SYNTAX          Gauge32
    UNITS           "milliseconds"
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object represents the elapsed time in
        milliseconds since last protocol  output 
        packet was transmitted.

        Discontinuities in the value of this variable
        can occur at re-initialization of the
        management system, and at other times as 
        indicated by the values of 
        cieIfPacketDiscontinuityTime." 
    ::= { cieIfPacketStatsEntry 2 }

cieIfLastOutHangTime OBJECT-TYPE
    SYNTAX          Gauge32
    UNITS           "milliseconds"
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object represents the elapsed time in
        milliseconds since last protocol    output
        packet could not be successfully transmitted.

        Discontinuities in the value of this variable
        can occur at re-initialization of the
        management system, and at other times as 
        indicated by the values of 
        cieIfPacketDiscontinuityTime." 
    ::= { cieIfPacketStatsEntry 3 }

cieIfInRuntsErrs OBJECT-TYPE
    SYNTAX          Counter32
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "The number of packets input on a particular
        physical interface which were dropped as
        they were smaller than the minimum allowable 
        physical media limit.

        Discontinuities in the value of this variable
        can occur at re-initialization of the
        management system, and at other times as 
        indicated by the values of 
        cieIfPacketDiscontinuityTime." 
    ::= { cieIfPacketStatsEntry 4 }

cieIfInGiantsErrs OBJECT-TYPE
    SYNTAX          Counter32
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "The number of input packets on a particular
        physical interface which were dropped as 
        they were larger than the ifMtu (largest 
        permitted  size of a packet which can be 
        sent/received on an interface).

        Discontinuities in the value of this variable
        can occur at re-initialization of the
        management system, and at other times as 
        indicated by the values of 
        cieIfPacketDiscontinuityTime." 
    ::= { cieIfPacketStatsEntry 5 }

cieIfInFramingErrs OBJECT-TYPE
    SYNTAX          Counter32
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "The number of input packets on a physical
        interface which were misaligned or had
        framing errors. This happens when the 
        format of the incoming packet on a physical
        interface is incorrect.

        Discontinuities in the value of this variable
        can occur at re-initialization of the
        management system, and at other times as 
        indicated by the values of 
        cieIfPacketDiscontinuityTime." 
    ::= { cieIfPacketStatsEntry 6 }

cieIfInOverrunErrs OBJECT-TYPE
    SYNTAX          Counter32
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "The number of input packets which arrived
        on a particular physical interface which 
        were too quick for the hardware to receive
        and hence the receiver ran out of buffers.

        Discontinuities in the value of this variable
        can occur at re-initialization of the
        management system, and at other times as 
        indicated by the values of 
        cieIfPacketDiscontinuityTime." 
    ::= { cieIfPacketStatsEntry 7 }

cieIfInIgnored OBJECT-TYPE
    SYNTAX          Counter32
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "The number of input packets which were simply
        ignored by this physical interface due to 
        insufficient resources to handle the incoming
        packets.

        For example, this could indicate that the input
        receive buffers are not available or that the
        receiver lost a packet.

        Discontinuities in the value of this variable
        can occur at re-initialization of the
        management system, and at other times as 
        indicated by the values of 
        cieIfPacketDiscontinuityTime." 
    ::= { cieIfPacketStatsEntry 8 }

cieIfInAbortErrs OBJECT-TYPE
    SYNTAX          Counter32
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "Number of input packets which were dropped
        because the receiver aborted.

        Examples of this could be when an abort
        sequence aborted the input frame or when
        there is a collision in an ethernet segment.

        Discontinuities in the value of this variable
        can occur at re-initialization of the
        management system, and at other times as 
        indicated by the values of 
        cieIfPacketDiscontinuityTime." 
    ::= { cieIfPacketStatsEntry 9 }

cieIfInputQueueDrops OBJECT-TYPE
    SYNTAX          Counter32
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "The number of input packets which were
        dropped.

        Some reasons why this object could be 
        incremented are:

        o  Input queue is full.
        o  Errors at the receiver hardware 
           while receiving the packet.

        Discontinuities in the value of this variable
        can occur at re-initialization of the
        management system, and at other times as 
        indicated by the values of 
        cieIfPacketDiscontinuityTime." 
    ::= { cieIfPacketStatsEntry 10 }

cieIfOutputQueueDrops OBJECT-TYPE
    SYNTAX          Counter32
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object indicates the  number of output
        packets dropped by the interface even though
        no error had been detected to prevent them
        being transmitted. 

        The packet could be dropped for many reasons,
        which could range from the interface being
        down to errors in the format of the packet.

        Discontinuities in the value of this variable
        can occur at re-initialization of the
        management system, and at other times as 
        indicated by the values of 
        cieIfPacketDiscontinuityTime." 
    ::= { cieIfPacketStatsEntry 11 }

cieIfPacketDiscontinuityTime OBJECT-TYPE
    SYNTAX          TimeStamp
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "The value of sysUpTime on the most recent
        occasion at which this interface's  counters
        suffered a discontinuity. 

        If no such discontinuities have occurred 
        since the last re-initialization of the 
        local management subsystem, then this 
        object contains a value of zero." 
    ::= { cieIfPacketStatsEntry 12 }
 

-- Cisco IF Extension Interface Table

cieIfInterfaceTable OBJECT-TYPE
    SYNTAX          SEQUENCE OF CieIfInterfaceEntry 
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "This  table contains objects which provide
        more information about interface  
        properties not available in IF-MIB
        (RFC 2863).

        Some objects defined in this table may be
        applicable to physical interfaces only.
        As a result, this table may be sparse for
        logical interfaces."
    ::= { ciscoIfExtensionStats 2 }

cieIfInterfaceEntry OBJECT-TYPE
    SYNTAX          CieIfInterfaceEntry
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "An entry into the cieIfInterfaceTable."
    INDEX           { ifIndex } 
    ::= { cieIfInterfaceTable 1 }

CieIfInterfaceEntry ::= SEQUENCE {
        cieIfResetCount                 Counter32,
        cieIfKeepAliveEnabled           TruthValue,
        cieIfStateChangeReason          SnmpAdminString,
        cieIfCarrierTransitionCount     Counter32,
        cieIfInterfaceDiscontinuityTime TimeStamp,
        cieIfDhcpMode                   TruthValue,
        cieIfMtu                        Integer32,
        cieIfContextName                OCTET STRING,
        cieIfOperStatusCause            IfOperStatusReason,
        cieIfOperStatusCauseDescr       SnmpAdminString,
        cieIfSpeedReceive               Gauge32,
        cieIfHighSpeedReceive           Gauge32
}

cieIfResetCount OBJECT-TYPE
    SYNTAX          Counter32
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "The number of times the interface was
        internally reset and brought up.

        Some of the actions which can cause this
        counter to increment are :

        o  Bringing an interface up using the 
           interface CLI command.

        o  Clearing the interface with the exec
           CLI command.

        o  Bringing the interface up via SNMP.

        Discontinuities in the value of this variable
        can occur at re-initialization of the
        management system, and at other times as 
        indicated by the values of 
        cieIfInterfaceDiscontinuityTime." 
    ::= { cieIfInterfaceEntry 1 }

cieIfKeepAliveEnabled OBJECT-TYPE
    SYNTAX          TruthValue
    MAX-ACCESS      read-write
    STATUS          current
    DESCRIPTION
        "A keepalive is a small, layer-2 message
        that is transmitted by a network device 
        to let directly-connected network devices
        know of its presence.

        This object returns 'true' if keepalives
        are enabled on this interface. If keepalives
        are not enabled, 'false' is returned.

        Setting this object to TRUE or FALSE enables
        or disables (respectively) keepalive on this 
        interface." 
    ::= { cieIfInterfaceEntry 2 }

cieIfStateChangeReason OBJECT-TYPE
    SYNTAX          SnmpAdminString
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object displays a human-readable
        textual string which describes the 
        cause of the last state change of the 
        interface.

        Examples of the values this object
        can take are:

        o  'Lost Carrier'
        o  'administratively down'
        o  'up'
        o  'down'" 
    ::= { cieIfInterfaceEntry 3 }

cieIfCarrierTransitionCount OBJECT-TYPE
    SYNTAX          Counter32
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "Number of times interface saw the carrier
        signal transition.

        For example, if a T1 line is unplugged, 
        then framer will detect the loss of signal 
        (LOS) on the line  and will count it as a
        transition.

        Discontinuities in the value of this variable
        can occur at re-initialization of the
        management system, and at other times as 
        indicated by the values of 
        cieIfInterfaceDiscontinuityTime." 
    ::= { cieIfInterfaceEntry 4 }

cieIfInterfaceDiscontinuityTime OBJECT-TYPE
    SYNTAX          TimeStamp
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "The value of sysUpTime on the most recent
        occasion at which this interface's  counters 
        suffered  a discontinuity. 

        If no such discontinuities have occurred 
        since the last re-initialization of the 
        local management subsystem, then this 
        object contains a value of zero." 
    ::= { cieIfInterfaceEntry 5 }

cieIfDhcpMode OBJECT-TYPE
    SYNTAX          TruthValue
    MAX-ACCESS      read-write
    STATUS          current
    DESCRIPTION
        "The DHCP mode configured by the
        administrator.
        If 'true' the DHCP is enabled. In which
        case an IP address is requested in DHCP.
        This is in addition to any that are 
        configured by the administrator in
        'ciiIPAddressTable' or 'ciiIPIfAddressTable'
        in CISCO-IP-IF-MIB.
        If 'false' the DHCP is disabled. In which
        case all IP addresses are configured by the
        administrator in 'ciiIPAddressTable' or 
        'ciiIPIfAddressTable'.
        For interfaces, for which DHCP cannot be or
        is not supported, then this object has the
        value 'false'."
    DEFVAL          { false } 
    ::= { cieIfInterfaceEntry 6 }

cieIfMtu OBJECT-TYPE
    SYNTAX          Integer32 (40..2147483647 )
    MAX-ACCESS      read-write
    STATUS          current
    DESCRIPTION
        "The MTU configured by the administrator.
        This object is exactly same as 'ifMtu' in 
        ifTable from IF-MIB for the same ifIndex
        value , except that it is configurable by the
        administrator. For more description of this
        object refer to 'ifMtu' in IF-MIB."
    DEFVAL          { 1500 } 
    ::= { cieIfInterfaceEntry 7 }

cieIfContextName OBJECT-TYPE
    SYNTAX          OCTET STRING (SIZE  (0..32))
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "The ContextName denotes the interface
        'context' and is used to logically separate
        the MIB management.
        RFC 2571 and RFC 2737 describe this approach.
        When the agent supports a different SNMP 
        context, as detailed in RFC 2571 and 
        RFC 2737, for different interfaces, then the
        value of this object specifies the context
        name used for this interface."
    DEFVAL          { "" } 
    ::= { cieIfInterfaceEntry 8 }

cieIfOperStatusCause OBJECT-TYPE
    SYNTAX          IfOperStatusReason
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object represents the detailed
        operational cause reason for the current 
        operational state of the interface. 
        The current operational state of the interface 
        is given by the 'ifOperStatus' defined 
        in IF-MIB. 

        The corresponding instance of 
        'cieIfOperStatusCauseDescr' must be used to 
        get the information about the operational 
        cause value mentioned in this object.

        For interfaces whose 'ifOperStatus' is 'down' 
        the objects 'cieIfOperStatusCause' and 
        'cieIfOperStatusCauseDescr' together provides 
        the information about the operational cause 
        reason and the description of the cause. 

        The value of this object will be 'none' for
        all the 'ifOperStatus' values except for 
        'down'. Its value will be one status cause 
        defined in the 'IfOperStatusReason' textual 
        convention if 'ifOperStatus' is 'down'. 

        The value of this object will be 'other' 
        if the operational status cause is not one 
        defined in 'IfOperStatusReason'." 
    ::= { cieIfInterfaceEntry 9 }

cieIfOperStatusCauseDescr OBJECT-TYPE
    SYNTAX          SnmpAdminString
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "The description for the cause of current
        operational state of the interface, given 
        by the object 'cieIfOperStatusCause'.

        For an interface whose 'ifOperStatus' is not
        'down' the value of this object will be 
        'none'." 
    ::= { cieIfInterfaceEntry 10 }

cieIfSpeedReceive OBJECT-TYPE
    SYNTAX          Gauge32
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "An estimate of the interface's current receive bandwidth in
        bits per second.  This object is provided for interface with
        asymmetric interface speeds like ADSL and should be used in
        conjunction with ifSpeed object.  For interfaces which do not
        vary in bandwidth or for those where no accurate estimation can
        be made, this object should contain the nominal bandwidth. If
        the bandwidth of the interface is greater than the maximum value
        reportable by this object then this object should report its
        maximum value (4,294,967,295) and ifHighSpeed must be used to
        report the interace's speed.  For a sub-layer which has no
        concept of bandwidth, this object should be zero." 
    ::= { cieIfInterfaceEntry 11 }

cieIfHighSpeedReceive OBJECT-TYPE
    SYNTAX          Gauge32
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "An estimate of the interface's current receive bandwidth in
        units of 1,000,000 bits per second.  If this object reports a
        value of `n' then the speed of the interface is somewhere in the
        range of `n-500,000' to `n+499,999'.  For interfaces which do
        not vary in bandwidth or for those where no accurate estimation
        can be made, this object should contain the nominal bandwidth. 
        For a sub-layer which has no concept of bandwidth, this object
        should be zero." 
    ::= { cieIfInterfaceEntry 12 }
 

-- Cisco IF Extension Interface Status List Table

cieIfStatusListTable OBJECT-TYPE
    SYNTAX          SEQUENCE OF CieIfStatusListEntry 
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "This table contains objects for providing
        the 'ifIndex', interface operational mode and 
        interface operational cause for all the 
        interfaces in the modules.

        This table contains one entry for each 
        64 interfaces in an module.

        This table provides efficient way of encoding 
        'ifIndex', interface operational mode and
        interface operational cause, from the point 
        of retrieval, by combining the values a set 
        of 64 interfaces in a single MIB object."
    ::= { ciscoIfExtensionStats 3 }

cieIfStatusListEntry OBJECT-TYPE
    SYNTAX          CieIfStatusListEntry
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "Each entry represents the 'ifIndex',
        interface operational mode and interface 
        operational cause for a set of 64 interfaces 
        in a module."
    INDEX           {
                        entPhysicalIndex,
                        cieIfStatusListIndex
                    } 
    ::= { cieIfStatusListTable 1 }

CieIfStatusListEntry ::= SEQUENCE {
        cieIfStatusListIndex   Unsigned32,
        cieInterfacesIndex     InterfaceIndexList,
        cieInterfacesOperMode  InterfaceOperModeList,
        cieInterfacesOperCause InterfaceOperCauseList
}

cieIfStatusListIndex OBJECT-TYPE
    SYNTAX          Unsigned32 (1..33554432 )
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "An arbitrary integer value, greater than
        zero, which identifies a list of 64 interfaces
        within a module." 
    ::= { cieIfStatusListEntry 1 }

cieInterfacesIndex OBJECT-TYPE
    SYNTAX          InterfaceIndexList
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object represents the 'ifIndex' for a
        set of 64 interfaces in the module." 
    ::= { cieIfStatusListEntry 2 }

cieInterfacesOperMode OBJECT-TYPE
    SYNTAX          InterfaceOperModeList
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object represents the operational mode
        for a set of 64 interfaces in the module." 
    ::= { cieIfStatusListEntry 3 }

cieInterfacesOperCause OBJECT-TYPE
    SYNTAX          InterfaceOperCauseList
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object represents the operational status
        cause for a set of 64 interfaces in the 
        module." 
    ::= { cieIfStatusListEntry 4 }
 


-- Cisco IF Extension System Config

cieSystemMtu OBJECT-TYPE
    SYNTAX          Integer32
    MAX-ACCESS      read-write
    STATUS          current
    DESCRIPTION
        "Global system MTU in octets.
        This object specifies the MTU on all interfaces.
        However, the value specified by cieIfMtu
        takes precedence for an interface, which means
        that the interface's MTU uses the value
        specified by cieIfMtu, if it is configured."
    DEFVAL          { 1500 } 
    ::= { ciscoIfExtSystemConfig 1 }

cieLinkUpDownEnable OBJECT-TYPE
    SYNTAX          BITS {
                        standard(0),
                        cisco(1)
                    }
    MAX-ACCESS      read-write
    STATUS          current
    DESCRIPTION
        "Indicates whether cieLinkUp/cieLinkDown
        or standard mib-II defined linkUp/Down or
        both, notifications should be generated
        for the interfaces in the system.

        'standard'  - only generate standard defined
                      mib-II linkUp/linkDown notification
                      if 'ifLinkUpDownTrapEnable' for 
                      the interface is 'enabled'.
        'cisco'     - only generate cieLinkUp/cieLinkDown
                      notifications for an interface if
                      the 'ifLinkUpDownTrapEnable' for the
                      interface is 'enabled'.

        If both bits are selected then linkUp/linkDown and
        cieLinkUp/cieLinkDown are both generated for an 
        interface if the 'ifLinkUpDownTrapEnable' for the
        interface is 'enabled'."
    DEFVAL          { { standard } } 
    ::= { ciscoIfExtSystemConfig 2 }

cieStandardLinkUpDownVarbinds OBJECT-TYPE
    SYNTAX          INTEGER  {
                        standard(1),
                        additional(2)
                    }
    MAX-ACCESS      read-write
    STATUS          current
    DESCRIPTION
        "Indicates whether to send the extra
        varbinds in addition to the varbinds defined 
        in linkUp/linkDown notifications.

        'standard'   - only send the varbinds defined in
                       the standard linkUp/linkDown
                       notification.  
        'additional' - send the extra varbinds in addition 
                       to the defined ones."
    DEFVAL          { additional } 
    ::= { ciscoIfExtSystemConfig 3 }
-- Cisco IF Extension Dot1q Custom EtherType Table

cieIfDot1qCustomEtherTypeTable OBJECT-TYPE
    SYNTAX          SEQUENCE OF CieIfDot1qCustomEtherTypeEntry 
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "A list of the interfaces that support
        the 802.1q custom Ethertype feature."
    ::= { ciscoIfExtDot1qCustomEtherType 1 }

cieIfDot1qCustomEtherTypeEntry OBJECT-TYPE
    SYNTAX          CieIfDot1qCustomEtherTypeEntry
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "An entry containing the custom EtherType
        information for the interface.

        Only interfaces with custom 802.1q
        ethertype control are listed in the 
        table."
    INDEX           { ifIndex } 
    ::= { cieIfDot1qCustomEtherTypeTable 1 }

CieIfDot1qCustomEtherTypeEntry ::= SEQUENCE {
        cieIfDot1qCustomAdminEtherType Integer32,
        cieIfDot1qCustomOperEtherType  Integer32
}

cieIfDot1qCustomAdminEtherType OBJECT-TYPE
    SYNTAX          Integer32 (0..65535 )
    MAX-ACCESS      read-write
    STATUS          current
    DESCRIPTION
        "The Dot1qEtherType allow administrator
        to select a non-standard (other than 0x8100)
        2-byte ethertype for the interface to 
        interoperate with third party vendor's system
        that do not use the standard 0x8100 ethertype
        to identify 802.1q-tagged frames.

        The current administrative value of the 
        802.1q ethertype for the interface.  The
        administrative 802.1q ethertype value may 
        differ from the operational 802.1q ethertype
        value.  On some platforms, 802.1q ethertype
        may be assigned per group rather than per port.
        If multiple ports belong to a port group,
        the 802.1q ethertype assigned to any of
        the ports in such group will apply to all
        ports in the same group.

        To configure non-standard dot1q ethertype
        is only recommended when the Cisco device
        is connected to any third party vendor device.
        Also be advised that the custom ethertype value
        needs to be changed in the whole cloud of 
        Cisco device with the same custom ethertype 
        value if the third party device are separated 
        by number of Cisco device in the middle." 
    ::= { cieIfDot1qCustomEtherTypeEntry 1 }

cieIfDot1qCustomOperEtherType OBJECT-TYPE
    SYNTAX          Integer32 (0..65535 )
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "The current operational value of the
        802.1q ethertype for the interface." 
    ::= { cieIfDot1qCustomEtherTypeEntry 2 }
 

-- Interface Utlization Group

cieIfUtilTable OBJECT-TYPE
    SYNTAX          SEQUENCE OF CieIfUtilEntry 
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "This table contains the interface utilization
        rates for inbound and outbound traffic on an
        interface."
    ::= { ciscoIfExtUtilization 1 }

cieIfUtilEntry OBJECT-TYPE
    SYNTAX          CieIfUtilEntry
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "An entry containing utilization rates for the
        interface.

        Every interface for which the  inbound and 
        outbound traffic information is available
        has a corresponding entry in this table."
    INDEX           { ifIndex } 
    ::= { cieIfUtilTable 1 }

CieIfUtilEntry ::= SEQUENCE {
        cieIfInPktRate    Unsigned64,
        cieIfInOctetRate  Unsigned64,
        cieIfOutPktRate   Unsigned64,
        cieIfOutOctetRate Unsigned64,
        cieIfInterval     Unsigned32
}

cieIfInPktRate OBJECT-TYPE
    SYNTAX          Unsigned64
    UNITS           "packets per second"
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "By default, this is the five minute
        exponentially-decayed moving average of the
        inbound packet rate for this interface.
        However, if the corresponding instance of
        cieIfInterval is instantiated with a value
        which specifies an interval different from
        5-minutes, then cieIfInPktRate is the
        exponentially-decayed moving average of inbound
        packet rate over this different time interval." 
    ::= { cieIfUtilEntry 1 }

cieIfInOctetRate OBJECT-TYPE
    SYNTAX          Unsigned64
    UNITS           "octets per second"
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "By default, this is the five minute
        exponentially-decayed moving average of the
        inbound octet rate for this interface.
        However, if the corresponding instance of
        cieIfInterval is instantiated with a value
        which specifies an interval different from
        5-minutes, then cieIfInOctetRate is the
        exponentially-decayed moving average of inbound
        octet rate over this different time interval." 
    ::= { cieIfUtilEntry 2 }

cieIfOutPktRate OBJECT-TYPE
    SYNTAX          Unsigned64
    UNITS           "packets per second"
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "By default, this is the five minute
        exponentially-decayed moving average of the
        outbound packet rate for this interface.
        However, if the corresponding instance of
        cieIfInterval is instantiated with a value
        which specifies an interval different from
        5-minutes, then cieIfOutPktRate is the
        exponentially-decayed moving average of outbound
        packet rate over this different time interval." 
    ::= { cieIfUtilEntry 3 }

cieIfOutOctetRate OBJECT-TYPE
    SYNTAX          Unsigned64
    UNITS           "octets per second"
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "By default, this is the five minute
        exponentially-decayed moving average of the
        outbound octet rate for this interface.
        However, if the corresponding instance of
        cieIfInterval is instantiated with a value
        which specifies an interval different from
        5-minutes, then cieIfOutOctetRate is the
        exponentially-decayed moving average of outbound
        octet rate over this different time interval." 
    ::= { cieIfUtilEntry 4 }

cieIfInterval OBJECT-TYPE
    SYNTAX          Unsigned32 (1..4294967295 )
    UNITS           "seconds"
    MAX-ACCESS      read-write
    STATUS          current
    DESCRIPTION
        "This object specifies the time interval over which
        the inbound and outbound traffic rates are
        calculated for this interface." 
    ::= { cieIfUtilEntry 5 }
 

-- dot1BaseMapping Group

cieIfDot1dBaseMappingTable OBJECT-TYPE
    SYNTAX          SEQUENCE OF CieIfDot1dBaseMappingEntry 
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "This table contains the mappings of the
        ifIndex of an interface to its
        corresponding dot1dBasePort value."
    REFERENCE       "dot1dBasePort is defined in BRIDGE-MIB."
    ::= { ciscoIfExtDot1dBaseMapping 1 }

cieIfDot1dBaseMappingEntry OBJECT-TYPE
    SYNTAX          CieIfDot1dBaseMappingEntry
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "An entry containing the mapping between
        the ifIndex value of an interface and its
        corresponding dot1dBasePort value.

        Every interface which has been assigned
        a dot1dBasePort value by the system
        has a corresponding entry in this table."
    REFERENCE       "dot1dBasePort is defined in BRIDGE-MIB."
    INDEX           { ifIndex } 
    ::= { cieIfDot1dBaseMappingTable 1 }

CieIfDot1dBaseMappingEntry ::= SEQUENCE {
        cieIfDot1dBaseMappingPort Integer32
}

cieIfDot1dBaseMappingPort OBJECT-TYPE
    SYNTAX          Integer32 (1..65535 )
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "The dot1dBasePort value for this interface."
    REFERENCE       "dot1dBasePort is defined in BRIDGE-MIB." 
    ::= { cieIfDot1dBaseMappingEntry 1 }
 

-- Cisco IF Extension 'ifName' to 'ifIndex' Mapping Table

cieIfNameMappingTable OBJECT-TYPE
    SYNTAX          SEQUENCE OF CieIfNameMappingEntry 
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "This table contains objects for providing
        the 'ifName' to 'ifIndex' mapping.
        This table contains one entry for each
        valid 'ifName' available in the system.
        Upon the first request, the implementation
        of this table will get all the available
        ifNames, and it will populate the entries
        in this table, it maintains this ifNames
        in a cache for ~30 seconds."
    ::= { ciscoIfExtIfNameMapping 1 }

cieIfNameMappingEntry OBJECT-TYPE
    SYNTAX          CieIfNameMappingEntry
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "An entry into the cieIfNameMappingTable."
    INDEX           { cieIfName } 
    ::= { cieIfNameMappingTable 1 }

CieIfNameMappingEntry ::= SEQUENCE {
        cieIfName  DisplayString,
        cieIfIndex InterfaceIndexOrZero
}

cieIfName OBJECT-TYPE
    SYNTAX          DisplayString (SIZE  (1..112))
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "Represents an interface name mentioned
        in the 'ifName' object of this system." 
    ::= { cieIfNameMappingEntry 1 }

cieIfIndex OBJECT-TYPE
    SYNTAX          InterfaceIndexOrZero
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "This object represents the 'ifIndex'
        corresponding to the interface name mentioned
        in the 'cieIfName' object of this instance.
        If the 'ifName' mentioned in the 'cieIfName' 
        object of this instance corresponds to multiple
        'ifIndex' values, then the value of this object
        is the numerically smallest of those multiple 
        'ifIndex' values." 
    ::= { cieIfNameMappingEntry 2 }
 


-- definition of cisco specific interface-related traps.

cieLinkDown NOTIFICATION-TYPE
    OBJECTS         {
                        ifIndex,
                        ifAdminStatus,
                        ifOperStatus,
                        ifName,
                        ifType
                    }
    STATUS          current
    DESCRIPTION
        "A cisco specific linkDown notification
        signifies that the SNMP entity, acting in an
        agent role, has detected that the ifOperStatus
        object for one of its communication links is
        about to enter the down state from some other
        state (but not from the notPresent state).
        The varbinds for this notification indicate the
        interface information of the communication
        link."
   ::= { ciscoIfExtensionMIBNotifications 1 }

cieLinkUp NOTIFICATION-TYPE
    OBJECTS         {
                        ifIndex,
                        ifAdminStatus,
                        ifOperStatus,
                        ifName,
                        ifType
                    }
    STATUS          current
    DESCRIPTION
        "A cisco specific linkUp trap signifies that
        the SNMP entity, acting in an agent role, has
        detected that the ifOperStatus object for one
        of its communication links left the down state
        and transitioned into some other state (but not
        into the notPresent state). The varbinds for
        this notification indicate the interface
        information of the communication link."
   ::= { ciscoIfExtensionMIBNotifications 2 }
-- Conformance

ciscoIfExtensionMIBCompliances  OBJECT IDENTIFIER
    ::= { ciscoIfExtensionMIBConformance 1 }

ciscoIfExtensionMIBGroups  OBJECT IDENTIFIER
    ::= { ciscoIfExtensionMIBConformance 2 }


-- Compliance

ciscoIfExtensionMIBCompliance MODULE-COMPLIANCE
    STATUS          deprecated
    DESCRIPTION
        "The compliance statement for entities which
        implement the CISCO-IF-EXTENSION-MIB."
    MODULE          -- this module
    MANDATORY-GROUPS {
                        ciscoIfExtensionTablePacketGroup,
                        ciscoIfExtensionTableIntfGroup
                    }
    ::= { ciscoIfExtensionMIBCompliances 1 }

ciscoIfExtensionMIBCompliance1 MODULE-COMPLIANCE
    STATUS          deprecated
    DESCRIPTION
        "The compliance statement for entities which
        implement the CISCO-IF-EXTENSION-MIB."
    MODULE          -- this module
    GROUP           ciscoIfExtensionTablePacketGroup
    DESCRIPTION
        "Implementation of this group is optional."

    GROUP           ciscoIfExtensionTableIntfGroup
    DESCRIPTION
        "Implementation of this group is optional."

    GROUP           ciscoIfExtensionTableIntfGroup1
    DESCRIPTION
        "Implementation of this group is optional."

    GROUP           ciscoIfExtensionSystemGroup
    DESCRIPTION
        "Implementation of this group is optional."

    GROUP           ciscoIfExtDot1qEtherTypeGroup
    DESCRIPTION
        "Implementation of this group is optional."

    OBJECT          cieIfDhcpMode
    SYNTAX          INTEGER  {
                        false(2)
                    }
    MIN-ACCESS      read-only
    DESCRIPTION
        "It is compliant to implement this object as
        read-only. Support for 'true' is only required
        on interfaces which support DHCP."

    OBJECT          cieIfMtu
    MIN-ACCESS      read-only
    DESCRIPTION
        "It is compliant to implement this object as
        read-only."
    ::= { ciscoIfExtensionMIBCompliances 2 }

ciscoIfExtensionMIBCompliance2 MODULE-COMPLIANCE
    STATUS          deprecated
    DESCRIPTION
        "The compliance statement for entities which
        implement the CISCO-IF-EXTENSION-MIB."
    MODULE          -- this module
    GROUP           ciscoIfExtensionTablePacketGroup
    DESCRIPTION
        "Implementation of this group is optional."

    GROUP           ciscoIfExtensionTableIntfGroup
    DESCRIPTION
        "Implementation of this group is optional."

    GROUP           ciscoIfExtensionTableIntfGroup1
    DESCRIPTION
        "Implementation of this group is optional."

    GROUP           ciscoIfExtensionSystemGroup
    DESCRIPTION
        "Implementation of this group is optional."

    GROUP           ciscoIfExtDot1qEtherTypeGroup
    DESCRIPTION
        "Implementation of this group is optional."

    GROUP           ciscoIfExtUtilizationGroup
    DESCRIPTION
        "Implementation of this group is optional."

    GROUP           ciscoIfExtDot1dBaseMappingGroup
    DESCRIPTION
        "Implementation of this group is optional."

    OBJECT          cieIfDhcpMode
    SYNTAX          INTEGER  {
                        false(2)
                    }
    MIN-ACCESS      read-only
    DESCRIPTION
        "It is compliant to implement this object as
        read-only. Support for 'true' is only required
        on interfaces which support DHCP."

    OBJECT          cieIfMtu
    MIN-ACCESS      read-only
    DESCRIPTION
        "It is compliant to implement this object as
        read-only."
    ::= { ciscoIfExtensionMIBCompliances 3 }

ciscoIfExtensionMIBCompliance3 MODULE-COMPLIANCE
    STATUS          deprecated
    DESCRIPTION
        "The compliance statement for entities which
        implement the CISCO-IF-EXTENSION-MIB."
    MODULE          -- this module
    GROUP           ciscoIfExtensionTablePacketGroup
    DESCRIPTION
        "Implementation of this group is optional."

    GROUP           ciscoIfExtensionTableIntfGroup
    DESCRIPTION
        "Implementation of this group is optional."

    GROUP           ciscoIfExtensionTableIntfGroup1
    DESCRIPTION
        "Implementation of this group is optional."

    GROUP           ciscoIfExtensionSystemGroup
    DESCRIPTION
        "Implementation of this group is optional."

    GROUP           ciscoIfExtDot1qEtherTypeGroup
    DESCRIPTION
        "Implementation of this group is optional."

    GROUP           ciscoIfExtUtilizationGroup
    DESCRIPTION
        "Implementation of this group is optional."

    GROUP           ciscoIfExtDot1dBaseMappingGroup
    DESCRIPTION
        "Implementation of this group is optional."

    GROUP           ciscoIfExtIfNameMappingGroup
    DESCRIPTION
        "Implementation of this group is optional."

    OBJECT          cieIfDhcpMode
    SYNTAX          INTEGER  {
                        false(2)
                    }
    MIN-ACCESS      read-only
    DESCRIPTION
        "It is compliant to implement this object as
        read-only. Support for 'true' is only required
        on interfaces which support DHCP."

    OBJECT          cieIfMtu
    MIN-ACCESS      read-only
    DESCRIPTION
        "It is compliant to implement this object as
        read-only."
    ::= { ciscoIfExtensionMIBCompliances 4 }

ciscoIfExtensionMIBCompliance4 MODULE-COMPLIANCE
    STATUS          deprecated
    DESCRIPTION
        "The compliance statement for entities which
        implement the CISCO-IF-EXTENSION-MIB."
    MODULE          -- this module
    GROUP           ciscoIfExtensionTablePacketGroup
    DESCRIPTION
        "Implementation of this group is optional."

    GROUP           ciscoIfExtensionTableIntfGroup
    DESCRIPTION
        "Implementation of this group is optional."

    GROUP           ciscoIfExtensionTableIntfGroup2
    DESCRIPTION
        "Implementation of this group is optional."

    GROUP           ciscoIfExtensionSystemGroup
    DESCRIPTION
        "Implementation of this group is optional."

    GROUP           ciscoIfExtDot1qEtherTypeGroup
    DESCRIPTION
        "Implementation of this group is optional."

    GROUP           ciscoIfExtUtilizationGroup
    DESCRIPTION
        "Implementation of this group is optional."

    GROUP           ciscoIfExtDot1dBaseMappingGroup
    DESCRIPTION
        "Implementation of this group is optional."

    GROUP           ciscoIfExtIfNameMappingGroup
    DESCRIPTION
        "Implementation of this group is optional."

    GROUP           cieIfStatusListGroup
    DESCRIPTION
        "Implementation of this group is optional."

    OBJECT          cieIfDhcpMode
    SYNTAX          INTEGER  {
                        false(2)
                    }
    MIN-ACCESS      read-only
    DESCRIPTION
        "It is compliant to implement this object as
        read-only. Support for 'true' is only required
        on interfaces which support DHCP."

    OBJECT          cieIfMtu
    MIN-ACCESS      read-only
    DESCRIPTION
        "It is compliant to implement this object as
        read-only."
    ::= { ciscoIfExtensionMIBCompliances 5 }

ciscoIfExtensionMIBCompliance5 MODULE-COMPLIANCE
    STATUS          deprecated
    DESCRIPTION
        "The compliance statement for entities which
        implement the CISCO-IF-EXTENSION-MIB."
    MODULE          -- this module
    GROUP           ciscoIfExtensionTablePacketGroup
    DESCRIPTION
        "Implementation of this group is optional."

    GROUP           ciscoIfExtensionTableIntfGroup
    DESCRIPTION
        "Implementation of this group is optional."

    GROUP           ciscoIfExtensionTableIntfGroup2
    DESCRIPTION
        "Implementation of this group is optional."

    GROUP           ciscoIfExtensionSystemGroup
    DESCRIPTION
        "Implementation of this group is optional."

    GROUP           ciscoIfExtDot1qEtherTypeGroup
    DESCRIPTION
        "Implementation of this group is optional."

    GROUP           ciscoIfExtUtilizationGroup
    DESCRIPTION
        "Implementation of this group is optional."

    GROUP           ciscoIfExtDot1dBaseMappingGroup
    DESCRIPTION
        "Implementation of this group is optional."

    GROUP           ciscoIfExtIfNameMappingGroup
    DESCRIPTION
        "Implementation of this group is optional."

    GROUP           cieIfStatusListGroup
    DESCRIPTION
        "Implementation of this group is optional."

    GROUP           cieLinkUpDownNotifEnableGroup
    DESCRIPTION
        "Implementation of this group is optional."

    GROUP           cieLinkUpDownNotifGroup
    DESCRIPTION
        "Implementation of this group is optional."

    OBJECT          cieIfDhcpMode
    SYNTAX          INTEGER  {
                        false(2)
                    }
    MIN-ACCESS      read-only
    DESCRIPTION
        "It is compliant to implement this object as
        read-only. Support for 'true' is only 
        required on interfaces which support DHCP."

    OBJECT          cieIfMtu
    MIN-ACCESS      read-only
    DESCRIPTION
        "It is compliant to implement this object as
        read-only."
    ::= { ciscoIfExtensionMIBCompliances 6 }

ciscoIfExtensionMIBCompliance6 MODULE-COMPLIANCE
    STATUS          deprecated
    DESCRIPTION
        "The compliance statement for entities which
        implement the CISCO-IF-EXTENSION-MIB."
    MODULE          -- this module
    GROUP           ciscoIfExtensionTablePacketGroup
    DESCRIPTION
        "Implementation of this group is optional."

    GROUP           ciscoIfExtensionTableIntfGroup
    DESCRIPTION
        "Implementation of this group is optional."

    GROUP           ciscoIfExtensionTableIntfGroup2
    DESCRIPTION
        "Implementation of this group is optional."

    GROUP           ciscoIfExtensionSystemGroup
    DESCRIPTION
        "Implementation of this group is optional."

    GROUP           ciscoIfExtDot1qEtherTypeGroup
    DESCRIPTION
        "Implementation of this group is optional."

    GROUP           ciscoIfExtUtilizationGroup
    DESCRIPTION
        "Implementation of this group is optional."

    GROUP           ciscoIfExtDot1dBaseMappingGroup
    DESCRIPTION
        "Implementation of this group is optional."

    GROUP           ciscoIfExtIfNameMappingGroup
    DESCRIPTION
        "Implementation of this group is optional."

    GROUP           cieIfStatusListGroup
    DESCRIPTION
        "Implementation of this group is optional."

    GROUP           cieLinkUpDownNotifEnableGroup
    DESCRIPTION
        "Implementation of this group is optional."

    GROUP           cieLinkUpDownNotifGroup
    DESCRIPTION
        "Implementation of this group is optional."

    GROUP           ciscoIfExtensionAsymmetricalSpeedGroup
    DESCRIPTION
        "Implementation of this group is optional."

    OBJECT          cieIfDhcpMode
    SYNTAX          INTEGER  {
                        false(2)
                    }
    MIN-ACCESS      read-only
    DESCRIPTION
        "It is compliant to implement this object as
        read-only. Support for 'true' is only 
        required on interfaces which support DHCP."

    OBJECT          cieIfMtu
    MIN-ACCESS      read-only
    DESCRIPTION
        "It is compliant to implement this object as
        read-only."
    ::= { ciscoIfExtensionMIBCompliances 7 }

ciscoIfExtensionMIBCompliance7 MODULE-COMPLIANCE
    STATUS          current
    DESCRIPTION
        "The compliance statement for entities which
        implement the CISCO-IF-EXTENSION-MIB."
    MODULE          -- this module
    GROUP           ciscoIfExtensionTablePacketGroup
    DESCRIPTION
        "Implementation of this group is optional."

    GROUP           ciscoIfExtensionTableIntfGroup
    DESCRIPTION
        "Implementation of this group is optional."

    GROUP           ciscoIfExtensionTableIntfGroup2
    DESCRIPTION
        "Implementation of this group is optional."

    GROUP           ciscoIfExtensionSystemGroup
    DESCRIPTION
        "Implementation of this group is optional."

    GROUP           ciscoIfExtDot1qEtherTypeGroup
    DESCRIPTION
        "Implementation of this group is optional."

    GROUP           ciscoIfExtUtilizationGroup
    DESCRIPTION
        "Implementation of this group is optional."

    GROUP           ciscoIfExtDot1dBaseMappingGroup
    DESCRIPTION
        "Implementation of this group is optional."

    GROUP           ciscoIfExtIfNameMappingGroup
    DESCRIPTION
        "Implementation of this group is optional."

    GROUP           cieIfStatusListGroup
    DESCRIPTION
        "Implementation of this group is optional."

    GROUP           cieLinkUpDownNotifEnableGroup
    DESCRIPTION
        "Implementation of this group is optional."

    GROUP           cieLinkUpDownNotifGroup
    DESCRIPTION
        "Implementation of this group is optional."

    GROUP           ciscoIfExtensionAsymmetricalSpeedGroup
    DESCRIPTION
        "Implementation of this group is optional."

    GROUP           ciscoIfExtUtilIntervalGroup
    DESCRIPTION
        "Implementation of this group is mandatory for those
        platforms which provide the information of calculation 
        interval for utilization rate on interfaces."

    OBJECT          cieIfDhcpMode
    SYNTAX          INTEGER  {
                        false(2)
                    }
    MIN-ACCESS      read-only
    DESCRIPTION
        "It is compliant to implement this object as
        read-only. Support for 'true' is only 
        required on interfaces which support DHCP."

    OBJECT          cieIfMtu
    MIN-ACCESS      read-only
    DESCRIPTION
        "It is compliant to implement this object as
        read-only."
    ::= { ciscoIfExtensionMIBCompliances 8 }

ciscoIfExtensionTablePacketGroup OBJECT-GROUP
    OBJECTS         {
                        cieIfLastInTime,
                        cieIfLastOutTime,
                        cieIfLastOutHangTime,
                        cieIfInRuntsErrs,
                        cieIfInGiantsErrs,
                        cieIfInFramingErrs,
                        cieIfInOverrunErrs,
                        cieIfInIgnored,
                        cieIfInAbortErrs,
                        cieIfInputQueueDrops,
                        cieIfOutputQueueDrops,
                        cieIfPacketDiscontinuityTime
                    }
    STATUS          current
    DESCRIPTION
        "A collection of objects containing packet
        statistics for a given interface."
    ::= { ciscoIfExtensionMIBGroups 1 }

ciscoIfExtensionTableIntfGroup OBJECT-GROUP
    OBJECTS         {
                        cieIfResetCount,
                        cieIfKeepAliveEnabled,
                        cieIfStateChangeReason,
                        cieIfCarrierTransitionCount,
                        cieIfInterfaceDiscontinuityTime
                    }
    STATUS          current
    DESCRIPTION
        "A collection of objects containing
        information about properties of 
        interfaces."
    ::= { ciscoIfExtensionMIBGroups 2 }

ciscoIfExtensionTableIntfGroup1 OBJECT-GROUP
    OBJECTS         {
                        cieIfDhcpMode,
                        cieIfMtu,
                        cieIfContextName
                    }
    STATUS          deprecated
    DESCRIPTION
        "A collection of objects containing
        information about properties of 
        interfaces."
    ::= { ciscoIfExtensionMIBGroups 3 }

ciscoIfExtensionSystemGroup OBJECT-GROUP
    OBJECTS         { cieSystemMtu }
    STATUS          current
    DESCRIPTION
        "A collection of objects providing
        global system-wise information about
        interfaces."
    ::= { ciscoIfExtensionMIBGroups 4 }

ciscoIfExtDot1qEtherTypeGroup OBJECT-GROUP
    OBJECTS         {
                        cieIfDot1qCustomAdminEtherType,
                        cieIfDot1qCustomOperEtherType
                    }
    STATUS          current
    DESCRIPTION
        "A collection of objects providing
        the information about 802.1q 
        custom EtherType on the 
        interface."
    ::= { ciscoIfExtensionMIBGroups 5 }

ciscoIfExtUtilizationGroup OBJECT-GROUP
    OBJECTS         {
                        cieIfInPktRate,
                        cieIfInOctetRate,
                        cieIfOutPktRate,
                        cieIfOutOctetRate
                    }
    STATUS          current
    DESCRIPTION
        "A collection of objects containing
        information about utilization rates of
        interfaces."
    ::= { ciscoIfExtensionMIBGroups 6 }

ciscoIfExtDot1dBaseMappingGroup OBJECT-GROUP
    OBJECTS         { cieIfDot1dBaseMappingPort }
    STATUS          current
    DESCRIPTION
        "A collection of objects containing
        mapping information about the ifIndex values
        of interfaces and their dot1dBasePort 
        values."
    ::= { ciscoIfExtensionMIBGroups 7 }

ciscoIfExtIfNameMappingGroup OBJECT-GROUP
    OBJECTS         { cieIfIndex }
    STATUS          current
    DESCRIPTION
        "A collection of objects for the
        'ifName' to 'ifIndex' mapping."
    ::= { ciscoIfExtensionMIBGroups 8 }

ciscoIfExtensionTableIntfGroup2 OBJECT-GROUP
    OBJECTS         {
                        cieIfDhcpMode,
                        cieIfMtu,
                        cieIfContextName,
                        cieIfOperStatusCause,
                        cieIfOperStatusCauseDescr
                    }
    STATUS          current
    DESCRIPTION
        "A collection of objects containing
        information about properties of 
        interfaces."
    ::= { ciscoIfExtensionMIBGroups 9 }

cieIfStatusListGroup OBJECT-GROUP
    OBJECTS         {
                        cieInterfacesIndex,
                        cieInterfacesOperMode,
                        cieInterfacesOperCause
                    }
    STATUS          current
    DESCRIPTION
        "A collection of objects containing
        information about set of interfaces."
    ::= { ciscoIfExtensionMIBGroups 10 }

cieLinkUpDownNotifEnableGroup OBJECT-GROUP
    OBJECTS         {
                        cieLinkUpDownEnable,
                        cieStandardLinkUpDownVarbinds
                    }
    STATUS          current
    DESCRIPTION
        "A collection of objects to control
        'cieLinkUp/cieLinkDown' and standard mib-II 
        defined 'linkUp/linkDown' notifications."
    ::= { ciscoIfExtensionMIBGroups 11 }

cieLinkUpDownNotifGroup NOTIFICATION-GROUP
   NOTIFICATIONS    {
                        cieLinkDown,
                        cieLinkUp
                    }
    STATUS          current
    DESCRIPTION
        "A collection of cisco specific linkUp and
        linkDown notifications."
    ::= { ciscoIfExtensionMIBGroups 12 }

ciscoIfExtensionAsymmetricalSpeedGroup OBJECT-GROUP
    OBJECTS         {
                        cieIfSpeedReceive,
                        cieIfHighSpeedReceive
                    }
    STATUS          current
    DESCRIPTION
        "An optional group used to provide information on asymmetrical
        interface speeds."
    ::= { ciscoIfExtensionMIBGroups 13 }

ciscoIfExtUtilIntervalGroup OBJECT-GROUP
    OBJECTS         { cieIfInterval }
    STATUS          current
    DESCRIPTION
        "A collection of objects containing
        information about calculation interval for 
        utilization rate on interfaces."
    ::= { ciscoIfExtensionMIBGroups 14 }

END
