-- ********************************************************************
-- CISCO-IETF-DHCP-SERVER-EXT-MIB.my : Extension of the Cisco
-- version of the Dynamic Host Configuration Protocol for IPv4 (DHCPv4)
-- Server MIB.
--   
-- January 2005, Shobana Sampath
--   
-- Copyright (c) 2005, 2007 by Cisco Systems, Inc.
-- All rights reserved.
-- ********************************************************************

CISCO-IETF-DHCP-SERVER-EXT-MIB DEFINITIONS ::= BEGIN

IMPORTS
    Counter32,
    MODULE-IDENTITY,
    OBJECT-TYPE,
    Unsigned32,
    Gauge32,
    NOTIFICATION-TYPE
        FROM SNMPv2-SMI
    TimeStamp,
    TimeInterval,
    TruthValue
        FROM SNMPv2-TC
    InetAddressIPv4
        FROM INET-ADDRESS-MIB
    ifName,
    ifIndex
        FROM IF-MIB
    cDhcpv4ServerSubnetEntry,
    cDhcpv4ServerClientPhysicalAddress,
    cDhcpv4ServerSubnetFreeAddresses,
    cDhcpv4ServerSubnetFreeAddrLowThreshold,
    cDhcpv4ServerSubnetFreeAddrHighThreshold
        FROM CISCO-IETF-DHCP-SERVER-MIB
    MODULE-COMPLIANCE,
    OBJECT-GROUP,
    NOTIFICATION-GROUP
        FROM SNMPv2-CONF
    ciscoExperiment
        FROM CISCO-SMI;


ciscoIetfDhcpSrvExtMIB MODULE-IDENTITY
    LAST-UPDATED    "200703151200Z"
    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-dhcp-mib@cisco.com"
    DESCRIPTION
        "The MIB module is an extension of the Cisco IETF
        Dynamic Host Configuration protocol (DHCP) MIB."
    REVISION        "200703151200Z"
    DESCRIPTION
        "Added cDhcpv4SrvExtSubnetTable, cDhcpv4ServerDefaultRouterAddress,
        cDhcpv4ServerSubnetStartAddress, cDhcpv4ServerSubnetEndAddress.

        Added cDhcpv4SrvIfCfgTable, cDhcpv4ServerIfLeaseLimitDefault,
        cDhcpv4ServerIfLeaseLimit.

        Added 3 new notifications:
        - cDhcpv4ServerIfLeaseLimitExceeded
        - cDhcpv4ServerSubnetFreeAddressLow
        - cDhcpv4ServerSubnetFreeAddressHigh

        Added 3 new notification control objects:
        - cDhcpv4ServerIfLeaseLimitEnable
        - cDhcpv4ServerSubnetFreeAddressLowEnable
        - cDhcpv4ServerSubnetFreeAddressHighEnable

        Added OBJECT-GROUP:
        - cDhcpv4SrvExtNotifyGroup

        Added cDhcpv4SrvExtComplianceRev1 MODULE-COMPLIANCE"
    REVISION        "200505041200Z"
    DESCRIPTION
        "Initial version of this MIB module."
    ::= { ciscoExperiment 122 }


ciscoIetfDhcpv4SrvExtMIBNotifs  OBJECT IDENTIFIER
    ::= { ciscoIetfDhcpSrvExtMIB 0 }

ciscoIetfDhcpv4SrvExtMIBObjects  OBJECT IDENTIFIER
    ::= { ciscoIetfDhcpSrvExtMIB 1 }

ciscoIetfDhcpv4SrvExtMIBConform  OBJECT IDENTIFIER
    ::= { ciscoIetfDhcpSrvExtMIB 2 }

-- Extension of the group of objects that are related to the overall system.

cDhcpv4SrvExtSystem  OBJECT IDENTIFIER
    ::= { ciscoIetfDhcpv4SrvExtMIBObjects 1 }

-- Extension of the group of objects that report the total count of various DHCPv4 events.
-- The counters in this group are only reset when the process supporting service is reset.
-- The reset time is provided in the cDhcpv4SrvResetTime object."

cDhcpv4ExtCounters  OBJECT IDENTIFIER
    ::= { ciscoIetfDhcpv4SrvExtMIBObjects 2 }

-- The objects that report the interval count of various DHCPv4 events.

cDhcpv4IntervalCounters  OBJECT IDENTIFIER
    ::= { ciscoIetfDhcpv4SrvExtMIBObjects 3 }

-- Group of objects that report the total count of various failover DHCPv4 events.
-- The counters in this group are only reset when the process supporting service is reset.
-- The last reset time is provided in the cDhcpv4SrvResetTime object.

cDhcpv4FailoverCounters  OBJECT IDENTIFIER
    ::= { ciscoIetfDhcpv4SrvExtMIBObjects 4 }

-- The objects that report the interval count of various failover DHCPv4 events.

cDhcpv4FailoverIntervalCounters  OBJECT IDENTIFIER
    ::= { ciscoIetfDhcpv4SrvExtMIBObjects 5 }

-- Group of objects that configure the collection of the DHCPv4 server.

cDhcpv4CfgObjects  OBJECT IDENTIFIER
    ::= { ciscoIetfDhcpv4SrvExtMIBObjects 6 }


-- cDhcpv4SrvExtSystem

cDhcpv4SrvStartTime OBJECT-TYPE
    SYNTAX          TimeStamp
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "The time when the process supporting this server was started." 
    ::= { cDhcpv4SrvExtSystem 1 }

cDhcpv4SrvResetTime OBJECT-TYPE
    SYNTAX          TimeStamp
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "The time when the process supporting this server was last
        reinitialized. This indicates the time when a server reload or
        start was executed. At server startup this time is the same as 
        cDhcpv4SrvStartTime." 
    ::= { cDhcpv4SrvExtSystem 2 }

-- cDhcpv4ExtCounters

cDhcpv4LeaseQueries OBJECT-TYPE
    SYNTAX          Counter32
    UNITS           "packets"
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "The total number of DHCPLEASEQUERY packets received." 
    ::= { cDhcpv4ExtCounters 1 }

cDhcpv4StatisticsResetTime OBJECT-TYPE
    SYNTAX          TimeStamp
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "The time the server statistics counters were last reinitialized;
        the statistics counters are reinitialized by a reset command, 
        server reload, or server start; note also that any configuration
        change to reporting interval requires a server reload to take 
        effect, which will reinitialize the statistics counters. If 
        statistics are never reset, this time will equal 
        cDhcpv4SrvResetTime, which may also equal cDhcpv4SrvStartTime, 
        if the server was never reloaded." 
    ::= { cDhcpv4ExtCounters 2 }

-- cDhcpv4FailoverCounters

cDhcpv4FOPacketsRcvd OBJECT-TYPE
    SYNTAX          Counter32
    UNITS           "packets"
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "The total total number of failover packets received." 
    ::= { cDhcpv4FailoverCounters 1 }

cDhcpv4FOBindingUpdsRcvd OBJECT-TYPE
    SYNTAX          Counter32
    UNITS           "packets"
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "The total total number of failover DHCPBNDUPD packets received." 
    ::= { cDhcpv4FailoverCounters 2 }

cDhcpv4FOBindingAcksRcvd OBJECT-TYPE
    SYNTAX          Counter32
    UNITS           "packets"
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "The total number of failover DHCPBNDACK packets received." 
    ::= { cDhcpv4FailoverCounters 3 }

cDhcpv4FOBindingNaksRcvd OBJECT-TYPE
    SYNTAX          Counter32
    UNITS           "packets"
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "The total number of failover DHCPBNDNAK packets received." 
    ::= { cDhcpv4FailoverCounters 4 }

cDhcpv4FOPoolRequestsRcvd OBJECT-TYPE
    SYNTAX          Counter32
    UNITS           "packets"
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "The total number of failover DHCPPOOLREQ packets received." 
    ::= { cDhcpv4FailoverCounters 5 }

cDhcpv4FOPollsRcvd OBJECT-TYPE
    SYNTAX          Counter32
    UNITS           "packets"
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "The total number of failover DHCPPOLL packets received." 
    ::= { cDhcpv4FailoverCounters 6 }

cDhcpv4FOUpdateRequestsRcvd OBJECT-TYPE
    SYNTAX          Counter32
    UNITS           "packets"
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "The total number of failover DHCPUPDATEREQ packets received." 
    ::= { cDhcpv4FailoverCounters 7 }

cDhcpv4FOUpdateDoneRcvd OBJECT-TYPE
    SYNTAX          Counter32
    UNITS           "packets"
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "The total number of failover DHCPUPDATEDONE packets received." 
    ::= { cDhcpv4FailoverCounters 8 }

cDhcpv4FOPacketsSent OBJECT-TYPE
    SYNTAX          Counter32
    UNITS           "packets"
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "The total number of failover packets sent." 
    ::= { cDhcpv4FailoverCounters 9 }

cDhcpv4FOBindingUpdatesSent OBJECT-TYPE
    SYNTAX          Counter32
    UNITS           "packets"
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "The total number of DHCPBNDUPD packets sent." 
    ::= { cDhcpv4FailoverCounters 10 }

cDhcpv4FOBindingAcksSent OBJECT-TYPE
    SYNTAX          Counter32
    UNITS           "packets"
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "The total number of DHCPBNDACKS packets sent." 
    ::= { cDhcpv4FailoverCounters 11 }

cDhcpv4FOBindingNaksSent OBJECT-TYPE
    SYNTAX          Counter32
    UNITS           "packets"
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "The total number of DHCPBNDNAK packets sent." 
    ::= { cDhcpv4FailoverCounters 12 }

cDhcpv4FOPoolResponsesSent OBJECT-TYPE
    SYNTAX          Counter32
    UNITS           "packets"
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "The total number of DHCPPOOLRESP packets sent." 
    ::= { cDhcpv4FailoverCounters 13 }

cDhcpv4FOPollsSent OBJECT-TYPE
    SYNTAX          Counter32
    UNITS           "packets"
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "The total number of DHCPPOLL packets sent during
        reporting interval." 
    ::= { cDhcpv4FailoverCounters 14 }

cDhcpv4FOUpdateRequestsSent OBJECT-TYPE
    SYNTAX          Counter32
    UNITS           "packets"
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "The total number of DHCPUPDATEREQ packets sent during reporting
        interval." 
    ::= { cDhcpv4FailoverCounters 15 }

cDhcpv4FOUpdateDoneSent OBJECT-TYPE
    SYNTAX          Counter32
    UNITS           "packets"
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "The total number of DHCPUPDATEDONE packets sent during reporting
        interval." 
    ::= { cDhcpv4FailoverCounters 16 }

cDhcpv4FOPacketsDropped OBJECT-TYPE
    SYNTAX          Counter32
    UNITS           "packets"
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "The total number of failover packets dropped during reporting
        interval." 
    ::= { cDhcpv4FailoverCounters 17 }

-- cDhcpv4IntervalCounters

cDhcpv4IntDiscovers OBJECT-TYPE
    SYNTAX          Unsigned32
    UNITS           "packets"
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "The number of DHCPDISCOVER (option 53 with value 1) packets
        received during the reporting interval."
    REFERENCE       "RFC2131; RFC2132, section 9.6." 
    ::= { cDhcpv4IntervalCounters 1 }

cDhcpv4IntOffers OBJECT-TYPE
    SYNTAX          Unsigned32
    UNITS           "packets"
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "The number of DHCPOFFER (option 53 with value 2) packets
        sent during the reporting interval."
    REFERENCE       "RFC2131; RFC2132, section 9.6." 
    ::= { cDhcpv4IntervalCounters 2 }

cDhcpv4IntRequests OBJECT-TYPE
    SYNTAX          Unsigned32
    UNITS           "packets"
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "The number of DHCPREQUEST (option 53 with value 3) packets
        received during the reporting interval."
    REFERENCE       "RFC2131; RFC2132, section 9.6." 
    ::= { cDhcpv4IntervalCounters 3 }

cDhcpv4IntDeclines OBJECT-TYPE
    SYNTAX          Unsigned32
    UNITS           "packets"
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "The number of DHCPDECLINE (option 53 with value 4) packets
        received during the reporting interval."
    REFERENCE       "RFC2131; RFC2132, section 9.6." 
    ::= { cDhcpv4IntervalCounters 4 }

cDhcpv4IntAcks OBJECT-TYPE
    SYNTAX          Unsigned32
    UNITS           "packets"
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "The number of DHCPACK (option 53 with value 5) packets sent
        during the reporting interval."
    REFERENCE       "RFC2131; RFC2132, section 9.6." 
    ::= { cDhcpv4IntervalCounters 5 }

cDhcpv4IntNaks OBJECT-TYPE
    SYNTAX          Unsigned32
    UNITS           "packets"
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "The number of DHCPNACK (option 53 with value 6) packets sent
        during the reporting interval."
    REFERENCE       "RFC2131; RFC2132, section 9.6." 
    ::= { cDhcpv4IntervalCounters 6 }

cDhcpv4IntReleases OBJECT-TYPE
    SYNTAX          Unsigned32
    UNITS           "packets"
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "The number of DHCPRELEASE (option 53 with value 7) packets
        received during the reporting interval."
    REFERENCE       "RFC2131; RFC2132, section 9.6." 
    ::= { cDhcpv4IntervalCounters 7 }

cDhcpv4IntInforms OBJECT-TYPE
    SYNTAX          Unsigned32
    UNITS           "packets"
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "The number of DHCPINFORM (option 53 with value 8) packets
        received during the reporting interval."
    REFERENCE       "RFC2131; RFC2132, section 9.6." 
    ::= { cDhcpv4IntervalCounters 8 }

cDhcpv4IntLeaseQueries OBJECT-TYPE
    SYNTAX          Unsigned32
    UNITS           "packets"
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "The total number of DHCPLEASEQUERY packets received during
        the reporting interval." 
    ::= { cDhcpv4IntervalCounters 9 }

cDhcpv4IntReqBuffersInUse OBJECT-TYPE
    SYNTAX          Gauge32
    UNITS           "buffers"
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "The number of request buffers in use during the
        reporting interval." 
    ::= { cDhcpv4IntervalCounters 10 }

cDhcpv4IntRespBuffersInUse OBJECT-TYPE
    SYNTAX          Gauge32
    UNITS           "buffers"
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "The number of response buffers in use at the end of the
        reporting interval." 
    ::= { cDhcpv4IntervalCounters 11 }

cDhcpv4IntEndTime OBJECT-TYPE
    SYNTAX          TimeStamp
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "The time when the server last calculated the sample statistics." 
    ::= { cDhcpv4IntervalCounters 12 }

cDhcpv4IntDeltaTime OBJECT-TYPE
    SYNTAX          TimeInterval
    UNITS           "milliseconds"
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "The interval in seconds over which the server last calculated
        the sample interval statistics. This is the configured reporting
        interval and the statistics are reset since the last 
        cDhcpv4IntEndTime." 
    ::= { cDhcpv4IntervalCounters 13 }

-- cDhcpv4FailoverIntervalCounters

cDhcpv4FOIntPacketsRcvd OBJECT-TYPE
    SYNTAX          Unsigned32
    UNITS           "packets"
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "The number of failover packets received during the reporting
        interval." 
    ::= { cDhcpv4FailoverIntervalCounters 1 }

cDhcpv4FOIntBindingUpdsRcvd OBJECT-TYPE
    SYNTAX          Unsigned32
    UNITS           "packets"
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "The number of failover DHCPBNDUPD packets received during
        the reporting interval." 
    ::= { cDhcpv4FailoverIntervalCounters 2 }

cDhcpv4FOIntBindingAcksRcvd OBJECT-TYPE
    SYNTAX          Unsigned32
    UNITS           "packets"
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "The number of failover DHCPBNDACK packets received during
        the reporting interval." 
    ::= { cDhcpv4FailoverIntervalCounters 3 }

cDhcpv4FOIntBindingNaksRcvd OBJECT-TYPE
    SYNTAX          Unsigned32
    UNITS           "packets"
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "The number of failover DHCPBNDNAK packets received during
        reporting interval." 
    ::= { cDhcpv4FailoverIntervalCounters 4 }

cDhcpv4FOIntPoolRequestsRcvd OBJECT-TYPE
    SYNTAX          Unsigned32
    UNITS           "packets"
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "The number of failover DHCPPOOLREQ packets received during
        the reporting interval." 
    ::= { cDhcpv4FailoverIntervalCounters 5 }

cDhcpv4FOIntPollsRcvd OBJECT-TYPE
    SYNTAX          Unsigned32
    UNITS           "packets"
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "The number of failover DHCPPOLL packets received during
        the reporting interval." 
    ::= { cDhcpv4FailoverIntervalCounters 6 }

cDhcpv4FOIntUpdateReqsRcvd OBJECT-TYPE
    SYNTAX          Unsigned32
    UNITS           "packets"
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "The number of failover DHCPUPDATEREQ packets received during
        the reporting interval." 
    ::= { cDhcpv4FailoverIntervalCounters 7 }

cDhcpv4FOIntUpdateDoneRcvd OBJECT-TYPE
    SYNTAX          Unsigned32
    UNITS           "packets"
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "The number of failover DHCPUPDATEDONE packets received during
        the reporting interval." 
    ::= { cDhcpv4FailoverIntervalCounters 8 }

cDhcpv4FOIntPacketsSent OBJECT-TYPE
    SYNTAX          Unsigned32
    UNITS           "packets"
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "The number of failover packets sent during the
        reporting interval." 
    ::= { cDhcpv4FailoverIntervalCounters 9 }

cDhcpv4FOIntBindingUpdsSent OBJECT-TYPE
    SYNTAX          Unsigned32
    UNITS           "packets"
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "The number of DHCPBNDUPD packets sent during the reporting
        interval." 
    ::= { cDhcpv4FailoverIntervalCounters 10 }

cDhcpv4FOIntBindingAcksSent OBJECT-TYPE
    SYNTAX          Unsigned32
    UNITS           "packets"
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "The number of DHCPBNDACKS packets sent during the reporting
        interval." 
    ::= { cDhcpv4FailoverIntervalCounters 11 }

cDhcpv4FOIntBindingNaksSent OBJECT-TYPE
    SYNTAX          Unsigned32
    UNITS           "packets"
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "The number of DHCPBNDNAK packets sent during the reporting
        interval." 
    ::= { cDhcpv4FailoverIntervalCounters 12 }

cDhcpv4FOIntPoolResponsesSent OBJECT-TYPE
    SYNTAX          Unsigned32
    UNITS           "packets"
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "The number of DHCPPOOLRESP packets sent during the reporting
        interval." 
    ::= { cDhcpv4FailoverIntervalCounters 13 }

cDhcpv4FOIntPollsSent OBJECT-TYPE
    SYNTAX          Unsigned32
    UNITS           "packets"
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "The number of DHCPPOLL packets sent during the
        reporting interval." 
    ::= { cDhcpv4FailoverIntervalCounters 14 }

cDhcpv4FOIntUpdateReqsSent OBJECT-TYPE
    SYNTAX          Unsigned32
    UNITS           "packets"
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "The number of DHCPUPDATEREQ packets sent during the reporting
        interval." 
    ::= { cDhcpv4FailoverIntervalCounters 15 }

cDhcpv4FOIntUpdateDoneSent OBJECT-TYPE
    SYNTAX          Unsigned32
    UNITS           "packets"
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "The number of DHCPUPDATEDONE packets sent during the reporting
        interval." 
    ::= { cDhcpv4FailoverIntervalCounters 16 }

cDhcpv4FOIntPacketsDropped OBJECT-TYPE
    SYNTAX          Unsigned32
    UNITS           "packets"
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "The number of failover packets dropped during the reporting
        interval." 
    ::= { cDhcpv4FailoverIntervalCounters 17 }

cDhcpv4FOIntEndTime OBJECT-TYPE
    SYNTAX          TimeStamp
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "The time when the server last calculated the interval
        statistics." 
    ::= { cDhcpv4FailoverIntervalCounters 18 }

cDhcpv4FOIntDeltaTime OBJECT-TYPE
    SYNTAX          TimeInterval
    UNITS           "milliseconds"
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "The interval in seconds over which the server last calculated
        the sample interval statistics. This is the configured reporting 
        interval and the statistics are reset since the last 
        cDhcpv4IntEndTime." 
    ::= { cDhcpv4FailoverIntervalCounters 19 }

-- cDhcpv4CfgObjects

cDhcpv4ConfigIntervalSample OBJECT-TYPE
    SYNTAX          TimeInterval
    UNITS           "milliseconds"
    MAX-ACCESS      read-write
    STATUS          current
    DESCRIPTION
        "Configures the sample time for the various interval counters." 
    ::= { cDhcpv4CfgObjects 1 }

cDhcpv4SrvExtSubnetTable OBJECT-TYPE
    SYNTAX          SEQUENCE OF CDhcpv4SrvExtSubnetEntry 
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "This table augments the cDhcpv4ServerSubnetTable."
    ::= { cDhcpv4CfgObjects 2 }

cDhcpv4SrvExtSubnetEntry OBJECT-TYPE
    SYNTAX          CDhcpv4SrvExtSubnetEntry
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "Entry contains additional subnet information not defined in
        cDhcpv4ServerSubnetEntry."
    AUGMENTS           { cDhcpv4ServerSubnetEntry  } 
 
    ::= { cDhcpv4SrvExtSubnetTable 1 }

CDhcpv4SrvExtSubnetEntry ::= SEQUENCE {
        cDhcpv4ServerDefaultRouterAddress InetAddressIPv4,
        cDhcpv4ServerSubnetStartAddress   InetAddressIPv4,
        cDhcpv4ServerSubnetEndAddress     InetAddressIPv4
}

cDhcpv4ServerDefaultRouterAddress OBJECT-TYPE
    SYNTAX          InetAddressIPv4
    MAX-ACCESS      read-write
    STATUS          current
    DESCRIPTION
        "The default router IPv4 address in this subnet." 
    ::= { cDhcpv4SrvExtSubnetEntry 1 }

cDhcpv4ServerSubnetStartAddress OBJECT-TYPE
    SYNTAX          InetAddressIPv4
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "The IPv4 address of the first address in the subnet.  The
        value of cDhcpv4ServerSubnetStartAddress MUST be less than or 
        equal to the value of cDhcpv4ServerSubnetEndAddress." 
    ::= { cDhcpv4SrvExtSubnetEntry 2 }

cDhcpv4ServerSubnetEndAddress OBJECT-TYPE
    SYNTAX          InetAddressIPv4
    MAX-ACCESS      read-only
    STATUS          current
    DESCRIPTION
        "The IPv4 address of the last address in the subnet.  The value
        of cDhcpv4ServerSubnetEndAddress MUST be greater than or equal 
        to the value of cDhcpv4ServerSubnetStartAddress." 
    ::= { cDhcpv4SrvExtSubnetEntry 3 }
 


cDhcpv4ServerIfLeaseLimitEnable OBJECT-TYPE
    SYNTAX          TruthValue
    MAX-ACCESS      read-write
    STATUS          current
    DESCRIPTION
        "This object specifies if the DHCP module should
        generate 'cDhcpv4ServerIfLeaseLimitExceeded' 
        notifications.

        If value of this object is 'true', then the notification 
        is generated when the number of leases offered to DHCP 
        clients behind an interface is reached based on per 
        limit lease configuration command.

        If it is 'false', the notification is not generated."
    DEFVAL          { false } 
    ::= { cDhcpv4CfgObjects 3 }

cDhcpv4ServerSubnetFreeAddressLowEnable OBJECT-TYPE
    SYNTAX          TruthValue
    MAX-ACCESS      read-write
    STATUS          current
    DESCRIPTION
        "This object specifies if the DHCP module should
        generate 'cDhcpv4ServerSubnetFreeAddressLow' notifications.

        If value of this object is 'true', then the notification is 
        generated when the number of available IPv4 addresses for 
        a particular subnet has fallen below the value of 
        cDhcpv4ServerSubnetFreeAddrLowThreshold for that subnet.

        If it is 'false', the notification is not generated."
    DEFVAL          { false } 
    ::= { cDhcpv4CfgObjects 4 }

cDhcpv4ServerSubnetFreeAddressHighEnable OBJECT-TYPE
    SYNTAX          TruthValue
    MAX-ACCESS      read-write
    STATUS          current
    DESCRIPTION
        "This object specifies if the DHCP module should
        generate 'cDhcpv4ServerSubnetFreeAddressHigh' notifications.

        If value of this object is 'true', then the notification is 
        generated when the number of available IPv4 addresses for 
        a particular subnet has fallen below the value of 
        cDhcpv4ServerSubnetFreeAddrHighThreshold for that subnet.

        If it is 'false', the notification is not generated."
    DEFVAL          { false } 
    ::= { cDhcpv4CfgObjects 5 }

cDhcpv4ServerIfLeaseLimitDefault OBJECT-TYPE
    SYNTAX          Unsigned32 (1..65535 )
    MAX-ACCESS      read-write
    STATUS          current
    DESCRIPTION
        "The default number of Dynamic Host Configuration Protocol (DHCP)
        clients allowed for an interface.  Refer to 
        'cDhcpv4ServerIfLeaseLimit'." 
    ::= { cDhcpv4CfgObjects 6 }

cDhcpv4SrvIfCfgTable OBJECT-TYPE
    SYNTAX          SEQUENCE OF CDhcpv4SrvIfCfgEntry 
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "A table of the DHCP interface configuration data maintained by
        the server."
    ::= { cDhcpv4CfgObjects 7 }

cDhcpv4SrvIfCfgEntry OBJECT-TYPE
    SYNTAX          CDhcpv4SrvIfCfgEntry
    MAX-ACCESS      not-accessible
    STATUS          current
    DESCRIPTION
        "Entry consists of the DHCP configuration data applied to the
        interface."
    INDEX           { ifIndex } 
    ::= { cDhcpv4SrvIfCfgTable 1 }

CDhcpv4SrvIfCfgEntry ::= SEQUENCE {
        cDhcpv4ServerIfLeaseLimit Unsigned32
}

cDhcpv4ServerIfLeaseLimit OBJECT-TYPE
    SYNTAX          Unsigned32 (1..65535 )
    MAX-ACCESS      read-write
    STATUS          current
    DESCRIPTION
        "The number of Dynamic Host Configuration Protocol (DHCP) clients
        allowed for an interface.  The value of this object is equal to 
        the value of the 'cDhcpv4ServerIfLeaseLimitDefault' for the 
        interface that does not have the interface lease limit 
        configuration.  The value of the 'cDhcpv4ServerIfLeaseLimit' 
        object reflects the lease limit on that interface (whether 
        it's configured with a value specifically for that interface or
        if the value of 'cDhcpv4ServerIfLeaseLimitDefault' applies).

        When this lease limit is reached or exceeded, the 
        cDhcpv4ServerIfLeaseLimitExceeded notification will be 
        generated if cDhcpv4ServerIfLeaseLimitEnable is enabled." 
    ::= { cDhcpv4SrvIfCfgEntry 1 }
 

-- Notifications

cDhcpv4SrvExtNotifyPrefix  OBJECT IDENTIFIER
    ::= { ciscoIetfDhcpv4SrvExtMIBNotifs 2 }

cDhcpv4SrvExtNotify  OBJECT IDENTIFIER
    ::= { cDhcpv4SrvExtNotifyPrefix 0 }


cDhcpv4ServerIfLeaseLimitExceeded NOTIFICATION-TYPE
    OBJECTS         {
                        ifName,
                        cDhcpv4ServerClientPhysicalAddress,
                        cDhcpv4ServerIfLeaseLimit
                    }
    STATUS          current
    DESCRIPTION
        "This notification indicates when a client has attempted to obtain
        a lease and the lease was not granted because the number of leases 
        granted to clients on the receiving interface is equal to 
        cDhcpv4ServerIfLeaseLimit."
   ::= { cDhcpv4SrvExtNotify 1 }

cDhcpv4ServerSubnetFreeAddressLow NOTIFICATION-TYPE
    OBJECTS         {
                        cDhcpv4ServerSubnetFreeAddresses,
                        cDhcpv4ServerSubnetFreeAddrLowThreshold
                    }
    STATUS          current
    DESCRIPTION
        "This notification indicates that the number of available IPv4
        addresses for a particular subnet has fallen below the 
        corresponding value of cDhcpv4ServerSubnetFreeAddrLowThreshold 
        for that shared network."
   ::= { cDhcpv4SrvExtNotify 2 }

cDhcpv4ServerSubnetFreeAddressHigh NOTIFICATION-TYPE
    OBJECTS         {
                        cDhcpv4ServerSubnetFreeAddresses,
                        cDhcpv4ServerSubnetFreeAddrHighThreshold
                    }
    STATUS          current
    DESCRIPTION
        "This notification indicates that the number of available IPv4
        addresses for a particular subnet has risen above the 
        corresponding value of cDhcpv4ServerSubnetFreeAddrHighThreshold 
        for that shared network."
   ::= { cDhcpv4SrvExtNotify 3 }
-- Conformance

cDhcpv4SrvExtCompliances  OBJECT IDENTIFIER
    ::= { ciscoIetfDhcpv4SrvExtMIBConform 1 }

cDhcpv4SrvExtGroups  OBJECT IDENTIFIER
    ::= { ciscoIetfDhcpv4SrvExtMIBConform 2 }


-- Compliance groups

cDhcpv4SrvExtCompliance MODULE-COMPLIANCE
    STATUS          deprecated
    DESCRIPTION
        "This group describes the requirements for conformance to the
        DHCP Server extension MIB.  A DHCPv4 server implementation is 
        only required to support IPv4 addresses."
    MODULE          -- this module
    MANDATORY-GROUPS {
                        cDhcpv4SrvExtSystemObjects,
                        cDhcpv4ExtCountersGroup,
                        cDhcpv4CountersIntervalGroup,
                        cDhcpv4FOCountersGroup,
                        cDhcpv4FOCountersIntervalGroup
                    }

    GROUP           cDhcpv4CfgObjectsGroup
    DESCRIPTION
        "Optional configuration objects for collection of counters."

    OBJECT          cDhcpv4ConfigIntervalSample
    MIN-ACCESS      read-only
    DESCRIPTION
        "Write access is not required."
    ::= { cDhcpv4SrvExtCompliances 1 }

cDhcpv4SrvExtComplianceRev1 MODULE-COMPLIANCE
    STATUS          current
    DESCRIPTION
        "This group describes the requirements for conformance to the
        DHCP Server extension MIB.  A DHCPv4 server implementation is 
        only required to support IPv4 addresses."
    MODULE          -- this module
    GROUP           cDhcpv4SrvExtSystemObjects
    DESCRIPTION
        "Optional extension of the group of objects that are related to the
        overall system."

    GROUP           cDhcpv4ExtCountersGroup
    DESCRIPTION
        "Optional extension of the group of objects that report the total
        count of various DHCPv4 events."

    GROUP           cDhcpv4CountersIntervalGroup
    DESCRIPTION
        "Optional objects that report the interval count of various
        DHCPv4 events."

    GROUP           cDhcpv4FOCountersGroup
    DESCRIPTION
        "Optional objects that report the total count of various failover
        DHCPv4 events."

    GROUP           cDhcpv4FOCountersIntervalGroup
    DESCRIPTION
        "Optional objects that report the interval count of various failover
        DHCPv4 events."

    GROUP           cDhcpv4CfgObjectsGroup
    DESCRIPTION
        "Optional configuration objects for the DHCPv4 server."

    GROUP           cDhcpv4SrvExtNotifyGroup
    DESCRIPTION
        "Optional extension of notification objects for the server."

    OBJECT          cDhcpv4ConfigIntervalSample
    MIN-ACCESS      read-only
    DESCRIPTION
        "Write access is not required."

    OBJECT          cDhcpv4ServerDefaultRouterAddress
    MIN-ACCESS      read-only
    DESCRIPTION
        "Write access is not required."

    OBJECT          cDhcpv4ServerIfLeaseLimitEnable
    MIN-ACCESS      read-only
    DESCRIPTION
        "Write access is not required."

    OBJECT          cDhcpv4ServerSubnetFreeAddressLowEnable
    MIN-ACCESS      read-only
    DESCRIPTION
        "Write access is not required."

    OBJECT          cDhcpv4ServerSubnetFreeAddressHighEnable
    MIN-ACCESS      read-only
    DESCRIPTION
        "Write access is not required."

    OBJECT          cDhcpv4ServerIfLeaseLimitDefault
    MIN-ACCESS      read-only
    DESCRIPTION
        "Write access is not required."

    OBJECT          cDhcpv4ServerIfLeaseLimit
    MIN-ACCESS      read-only
    DESCRIPTION
        "Write access is not required."
    ::= { cDhcpv4SrvExtCompliances 2 }

-- Object groups

cDhcpv4SrvExtSystemObjects OBJECT-GROUP
    OBJECTS         {
                        cDhcpv4SrvStartTime,
                        cDhcpv4SrvResetTime
                    }
    STATUS          current
    DESCRIPTION
        "A collection of objects providing overall system information
        for a DHCPv4 server."
    ::= { cDhcpv4SrvExtGroups 1 }

cDhcpv4ExtCountersGroup OBJECT-GROUP
    OBJECTS         {
                        cDhcpv4LeaseQueries,
                        cDhcpv4StatisticsResetTime
                    }
    STATUS          current
    DESCRIPTION
        "A collection of extension objects providing counter values for
        a DHCPv4 server."
    ::= { cDhcpv4SrvExtGroups 2 }

cDhcpv4CountersIntervalGroup OBJECT-GROUP
    OBJECTS         {
                        cDhcpv4IntDiscovers,
                        cDhcpv4IntOffers,
                        cDhcpv4IntRequests,
                        cDhcpv4IntDeclines,
                        cDhcpv4IntAcks,
                        cDhcpv4IntNaks,
                        cDhcpv4IntInforms,
                        cDhcpv4IntLeaseQueries,
                        cDhcpv4IntReleases,
                        cDhcpv4IntRespBuffersInUse,
                        cDhcpv4IntReqBuffersInUse,
                        cDhcpv4IntEndTime,
                        cDhcpv4IntDeltaTime
                    }
    STATUS          current
    DESCRIPTION
        "A collection of extension objects providing interval counter
        values for a DHCPv4 server."
    ::= { cDhcpv4SrvExtGroups 3 }

cDhcpv4FOCountersGroup OBJECT-GROUP
    OBJECTS         {
                        cDhcpv4FOPacketsRcvd,
                        cDhcpv4FOBindingUpdsRcvd,
                        cDhcpv4FOBindingAcksRcvd,
                        cDhcpv4FOBindingNaksRcvd,
                        cDhcpv4FOPoolRequestsRcvd,
                        cDhcpv4FOPollsRcvd,
                        cDhcpv4FOUpdateRequestsRcvd,
                        cDhcpv4FOUpdateDoneRcvd,
                        cDhcpv4FOPacketsSent,
                        cDhcpv4FOBindingUpdatesSent,
                        cDhcpv4FOBindingAcksSent,
                        cDhcpv4FOBindingNaksSent,
                        cDhcpv4FOPoolResponsesSent,
                        cDhcpv4FOPollsSent,
                        cDhcpv4FOUpdateRequestsSent,
                        cDhcpv4FOUpdateDoneSent,
                        cDhcpv4FOPacketsDropped
                    }
    STATUS          current
    DESCRIPTION
        "A collection of objects providing failover counter values for
        a DHCPv4 server."
    ::= { cDhcpv4SrvExtGroups 4 }

cDhcpv4FOCountersIntervalGroup OBJECT-GROUP
    OBJECTS         {
                        cDhcpv4FOIntPacketsRcvd,
                        cDhcpv4FOIntBindingUpdsRcvd,
                        cDhcpv4FOIntBindingAcksRcvd,
                        cDhcpv4FOIntBindingNaksRcvd,
                        cDhcpv4FOIntPoolRequestsRcvd,
                        cDhcpv4FOIntPollsRcvd,
                        cDhcpv4FOIntUpdateReqsRcvd,
                        cDhcpv4FOIntUpdateDoneRcvd,
                        cDhcpv4FOIntPacketsSent,
                        cDhcpv4FOIntBindingUpdsSent,
                        cDhcpv4FOIntBindingAcksSent,
                        cDhcpv4FOIntBindingNaksSent,
                        cDhcpv4FOIntPoolResponsesSent,
                        cDhcpv4FOIntPollsSent,
                        cDhcpv4FOIntUpdateReqsSent,
                        cDhcpv4FOIntUpdateDoneSent,
                        cDhcpv4FOIntPacketsDropped,
                        cDhcpv4FOIntEndTime,
                        cDhcpv4FOIntDeltaTime
                    }
    STATUS          current
    DESCRIPTION
        "A collection of objects providing failover interval counter
        values for a DHCPv4 server."
    ::= { cDhcpv4SrvExtGroups 5 }

cDhcpv4CfgObjectsGroup OBJECT-GROUP
    OBJECTS         {
                        cDhcpv4ConfigIntervalSample,
                        cDhcpv4ServerDefaultRouterAddress,
                        cDhcpv4ServerSubnetStartAddress,
                        cDhcpv4ServerSubnetEndAddress,
                        cDhcpv4ServerIfLeaseLimitEnable,
                        cDhcpv4ServerSubnetFreeAddressLowEnable,
                        cDhcpv4ServerSubnetFreeAddressHighEnable,
                        cDhcpv4ServerIfLeaseLimitDefault,
                        cDhcpv4ServerIfLeaseLimit
                    }
    STATUS          current
    DESCRIPTION
        "Objects providing configuration information for a DHCPv4 server."
    ::= { cDhcpv4SrvExtGroups 6 }

cDhcpv4SrvExtNotifyGroup NOTIFICATION-GROUP
   NOTIFICATIONS    {
                        cDhcpv4ServerIfLeaseLimitExceeded,
                        cDhcpv4ServerSubnetFreeAddressLow,
                        cDhcpv4ServerSubnetFreeAddressHigh
                    }
    STATUS          current
    DESCRIPTION
        "Notifications belonging to the cDhcpv4SrvExtNotify group."
    ::= { cDhcpv4SrvExtGroups 7 }

END

