Network Working Group                                      Barr Hibbs
     INTERNET-DRAFT                                       (no affiliation)
     Category:  Standards Track                               Glenn Waters
                                                           Nortel Networks
                                                             November 2002
                                                                March 2003

          Dynamic Host Configuration Protocol (DHCP) for IPv4 (DHCPv4) Server MIB

                         <draft-ietf-dhc-server-mib-07.txt>

                         <draft-ietf-dhc-server-mib-08.txt>
                      Saved Monday, November 04, 2002, 4:29:26 Sunday, March 02, 2003, 10:42:16 AM

     Status of this Memo

        This document is an Internet-Draft and is in full conformance with
        all provisions of Section 10 of RFC2026.

        Internet-Drafts are working documents of the Internet Engineering
        Task Force (IETF), its areas, and its working groups.  Note that
        other groups may also distribute working documents as Internet-
        Drafts.

        Internet-Drafts are draft documents valid for a maximum of six months
        and may be updated, replaced, or obsoleted made obsolete by other documents at
        any time.  It is inappropriate to use Internet-Drafts as reference
        material or to cite them other than as "work in progress."

        The list of current Internet-Drafts can be accessed at
        http://www.ietf.org/1id-abstracts.html.

        The list of Internet-Draft Shadow Directories can be accessed at
        http://www.ietf.org/shadow.html.

     Copyright Notice

        Copyright (C) 2002, (C), 2003, The Internet Society.  All Rights Reserved.

     Abstract

        This memo defines an experimental portion of the Management
        Information Base (MIB) for use with network management protocols in
        the Internet Community.  In particular, it defines objects used for
        the management of Dynamic Host Configuration Protocol (DHCP) for IPv4
        (DHCPv4) and Bootstrap Protocol (BOOTP) servers.

     Table of Contents

        1. Introduction...................................................2
        2. The Internet-Standard Management Framework.....................3
        3. Overview.......................................................3
          2.1.
          3.1. Relationship to Other MIBs.................................5
            2.1.1. MIBs.................................4
            3.1.1. DHCP MIB Extensions...................................5
            2.1.2. Extensions...................................4
            3.1.2. Host System MIB Extensions............................5
            2.1.3. DHCPv6 Server MIB Extensions..........................5
            2.1.4. Extensions............................4
            3.1.3. DHCP Client MIB Extensions............................6
            2.1.5. Extensions............................4
            3.1.4. DHCP Relay Agent MIB Extensions.......................6
          2.2. Extensions.......................5
            3.1.5. DHCPv6 MIB Extensions.................................5
          3.2. Textual Conventions Introduced in this MIB.................6
            2.2.1. DhcpTimeInterval......................................6
            2.2.2. HardwareAddressType...................................6
            2.2.3. HardwareAddressLength.................................6
            2.2.4. MacAddress............................................6
            2.2.5. PhysicalAddress.......................................6
            2.2.6. DhcpLabel.............................................7
          2.3. MIB.................5
            3.2.1. DhcpTimeInterval......................................5
            3.2.2. DhcpPhysicalAddress...................................5
          3.3. BOOTP and DHCP Counter Groups..............................7
          2.4. Groups..............................5
          3.4. BOOTP and DHCP Optional Statistics Group...................7
          2.5. Group...................6
          3.5. Response Times and ICMP Echo...............................9
        3. Definitions....................................................9 Echo...............................8
        4. Intellectual Property.........................................42 Definitions....................................................9
        5. Notes.........................................................42
          5.1. Issues....................................................43
          5.2. Intellectual Property.........................................44
        6. Notes.........................................................44
          6.1. Issues....................................................44
          6.2. Changes from Prior Drafts.................................43
        6. Acknowledgements..............................................45 Drafts.................................45
        7. Security Considerations.......................................45 Acknowledgements..............................................47
        8. References....................................................46 IANA Considerations...........................................47
        9. Editors' Addresses............................................48 Security Considerations.......................................48
        10. References...................................................49
          10.1. Normative References.....................................49
          10.2. Informative References...................................50
        11. Editors' Addresses...........................................50
        12. Full Copyright Statement.....................................49 Statement.....................................50

     1. Introduction

        This memo was produced by is a product of the DHCP Working Group and defines a
        portion of the Management Information Base (MIB) for use with network
        management protocols in the Internet community.  In particular, it
        describes a set of extensions that DHCP DHCPv4 and Bootstrap Protocol
        (BOOTP) servers implement.  Many implementations support both DHCP DHCPv4
        and BOOTP within a single server and hence this memo describes the
        MIB for both DHCP DHCPv4 and BOOTP servers.

        This memo does not cover DHCP/BOOTP DHCPv4/BOOTP client nor relay agent MIB
        extensions:  these are possibly the subjects of future investigation
        [see discussion in section 3.1.]  Also excluded from this MIB
        extension in the interest of simplicity are DHCP Dynamic DNS
        Updating, Failover, Authentication, and Load Balancing:  these
        functions and features could be subjects of future MIB extensions.

        Provision is also made for Standards-Track additions to the DHCP
        Message Type (option 61.)

        This memo is based on the Internet-standard Network Management
        Framework as defined by documents [RFC2578, RFC2579, RFC2580].

        Objects defined in this MIB allow access to and control of DHCP
        Server Software.  Servers MAY also provide additional management
        capabilities through the use of using the Applications MIB [RFC2287].

        The key words "MUST," "MUST NOT," "REQUIRED," "SHALL," "SHALL NOT,"
        "SHOULD," "SHOULD NOT," "RECOMMENDED,"  "MAY," and "OPTIONAL" in this
        document are to be interpreted as described in document [RFC2119].

     2. The SNMP Management Framework

        The SNMP Internet-Standard Management Framework presently consists of five major
        components:

        o  An overall architecture, described in RFC 2571 [RFC2571].

        o  Mechanisms for describing and naming objects and events for the
           purpose of management.  The first version of this Structure of
           Management Information (SMI) is called SMIv1 and described in STD
           16, RFC 1155 [RFC1155], STD 16, RFC 1212 [RFC1212] and RFC 1215
           [RFC1215].  The second version, called SMIv2, is described in STD
           58, RFC 2578 [RFC2578], STD 58, RFC 2579 [RFC2579] and STD 58,
           RFC 2580 [RFC2580].

        o  Message protocols for transferring management information.  The
           first version of the SNMP message protocol is called SNMPv1 and
           described in STD 15, RFC 1157 [RFC1157].  A second version of the
           SNMP message protocol, which is not an Internet standards track
           protocol, is called SNMPv2c and described in RFC 1901 [RFC1901]
           and RFC 1906 [RFC1906].  The third version of the message
           protocol is called SNMPv3 and described in RFC 1906 [RFC1906],
           RFC 2572 [RFC2572] and RFC 2574 [RFC2574].

        o  Protocol operations for accessing management information.  The
           first set of protocol operations and associated PDU formats is
           described in STD 15, RFC 1157 [RFC1157].  A second set of
           protocol operations and associated PDU formats is described in
           RFC 1905 [RFC1905].

        o  A set

        For a detailed overview of fundamental applications described in RFC 2573 [RFC2573]
           and the view-based access control mechanism described in RFC 2575
           [RFC2575].

        A more detailed introduction to documents that describe the current SNMP
        Internet-Standard Management Framework
        can be found in Framework, please refer to section 7 of
        RFC 2570 [RFC2570].

        Managed 3410 [RFC3410].Managed objects are accessed via a virtual
        information store, termed the Management Information Base or MIB.
        MIB objects are generally accessed through the Simple Network
        Management Protocol (SNMP).  Objects in the MIB are defined using the
        mechanisms defined in the SMI. Structure of Management Information (SMI).
        This memo specifies a MIB module that is compliant to the SMIv2.  A
        MIB conforming to the SMIv1 can be produced through the appropriate
        translations.  The resulting translated MIB must be semantically
        equivalent, except where objects or events are omitted because no
        translation SMIv2,
        which is possible (use of Counter64).  Some machine readable
        information in SMIv2 will be converted into textual descriptions described in
        SMIv1 during the translation process.  However, this loss of machine
        readable information is not considered to change the semantics of the
        MIB. STD 58, [RFC2578], STD 58, [RFC2579] and STD
        58, [RFC2580].

     3. Overview

        In the tradition of the Simple Network Management Protocol (SNMP) (SNMP),
        the minimum number of objects possible are is defined in this MIB, while
        still providing as rich a set of management information as possible.
        An object is left out of this MIB when it can be derived from other
        objects that are provided.  Further to the tradition of the SNMP,
        computationally intense operations are left to the domain of the
        management station.  Thus, this MIB provides a set of objects from
        which other management information may be derived.

        Provision for future extensions to cover DHCPv4 clients and relay
        agents, and DHCPv6 extensions are implied by the top-level structure
        illustrated in section 3.1.1.

        The examples provided in sections 3.3 through 3.5 are not meant to be
        comprehensive but are illustrative of the potential uses of the
        objects defined by this MIB.

     3.1. Relationship to Other MIBs

     3.1.1. DHCP MIB Extensions

        The DHCP MIB extensions will be the "dhcp" branch of the standard
        MIB-2 tree, as illustrated by the following diagram:

                                 + -- -- -- -+

          +-------+
          | MIB-2 |
                                 + -- -+ -- -+
          +---+---+
              |
              |
                                 + -- -+ -- -+
          +---+---+
          |  dhcp |
                                 + -- -+ -- -+
          +---+---+
              |
              |
              + -- -- -- -- -- -- -- -+ -- -- -- + -- -- -- -- -+ -- -- -- --
        -- -- -- -- -- -- -+
              +--------------+---------------+----------------+
              |              |               |                |
        + -- -- -+ -- -- -+   + -- -- -+ -- -- +   + -- -- -- -+ -- -- -- --
        +     + -- -- -- + -- -- -- +
        +-----+-----+  +-----+----+  +-------+-------+  +-----+-----+
        |  dhcp-v4  |  |  dhcp-v4 |  |    dhcp-v4    |     | dhcp-v6 MIB |  |dhcp-v6 MIB|
        |Server MIB |  |Client MIB|  |Relay Agent MIB |     | Extensions MIB|  |Extensions |
        |(this memo)|  | (future) |  | (future work) |  | (future)  |
        + -- -- -- -- -- -+   + -- -- -- -- -- +   + -- -- -- -- -- -- -- --
        +     + -- -- -- -- -- -- -+
        +-----------+  +----------+  +---------------+  +-----------+

        The DHCP MIBs will share a common branching point, point but are will be
        independently
        defined. defined by individual memos.

     3.1.2. Host System MIB Extensions

        The Host System MIB [RFC1123] provides for information, command, and
        control of the host computer system on which a DHCP server resides.
        The DHCP Server MIB specifically does not include any objects that
        may be accessible using the Host System MIB.

     3.1.3. DHCPv6 Server DHCP Client MIB Extensions

        When

        Development of this set of MIB extensions is developed, it a natural path given the
        increasing interest in desktop and client system management.  It will
        share a common branch point in the MIB tree with the other DHCP MIB Extensions.
        Extensions, and may use many of the same textual conventions.

     3.1.4. DHCP Client Relay Agent MIB Extensions

        If this set of MIB extensions is ever developed, it will share a
        common branch point in the MIB tree with the other DHCP MIB
        Extensions, and will use many of the same textual conventions.

     3.1.5. DHCP Relay Agent DHCPv6 MIB Extensions

        If this set of MIB extensions is ever developed, it will share a
        common branch point in the MIB tree with the other DHCP MIB
        Extensions, and will likely use many of the same very different textual conventions. conventions as
        the protocol differs significantly from DHCPv4.

     3.2. Textual Conventions Introduced in this MIB

        Several conceptual data types have been introduced as textual
        conventions in this DHCP MIB document.  These additions will
        facilitate the common understanding of information used by the DHCP
        server.  No changes to the SMI or the SNMP are necessary to support
        these conventions.

     3.2.1. DhcpTimeInterval

        This data type measures time intervals since the beginning of some
        epoch
        epoch, measured in milliseconds.  DhcpTimeInterval is intended
        exclusively for use in various statistics, such as in the subtrees
        "bootpOptionalStatistics" and "dhcpv4OptionalStatistics."

     3.2.2. HardwareAddressType DhcpPhysicalAddress

        This data type contains the type of hardware address represented by
        MacAddress, as defined for ARP messages.

     3.2.3. HardwareAddressLength

        The length in octets of MacAddress is contained in this type.

     3.2.4. MacAddress

        The actual layer 1 hardware address is contained in this data type.

     3.2.5. PhysicalAddress

     3.3. BOOTP and DHCP Counter Groups

        This data type combines the hardware type octet with the length and
        hardware (NIC or MAC) address to produce a unique address type.

     3.2.6. DhcpLabel

        This data type contains labels used as identifiers by DHCP servers.

     3.3. BOOTP and DHCP Counter Groups

        This section describes some of section describes some of the management information that may be
        derived from the objects provided in the counter groups.

        The total number of valid DHCP packets received by the server is
        computed as the sum of the dhcpCountDiscovers, dhcpCountRequests,
        dhcpCountReleases, dhcpCountDeclines, dhcpCountInforms "dhcpv4CountDiscovers,"
        "dhcpv4CountRequests," "dhcpv4CountReleases," "dhcpv4CountDeclines,"
        "dhcpv4CountInforms," and
        dhcpCountLeaseQueries objects. "dhcpv4CountLeaseQueries objects."  The
        total number of valid packets (BOOTP and DHCP) received is computed
        as the total number of valid DHCP packets plus the value of the bootpCountRequests
        "bootpCountRequests" object.  The total number of packets received is
        computed as the total number of valid packets plus the sum of bootpCountInvalids
        "bootpCountInvalids" and
        dhcpCountInvalids. "dhcpv4CountInvalids."

        Similar to the received computations, the total number of DHCP
        packets sent by the server is computed as the sum of the
        dhcpCountOffers, dhcpCountAcks, dhcpCountNacks,
        dhcpCountForcedRenews, dhcpCountKnowns,
        "dhcpv4CountOffers," "dhcpv4CountAcks," "dhcpv4CountNacks,"
        "dhcpv4CountForcedRenews," "dhcpv4CountKnowns,"
        "dhcpv4CountUnknowns," "dhcpv4CountActives," and dhcpCountUnknowns
        "dhcpv4CountUnimplemented" objects.  The number of packets (BOOTP and
        DHCP) sent by the server is computed as the total number of DHCP
        packets sent plus the value of the bootpCountReplies "bootpCountReplies" object.

     3.4. BOOTP and DHCP Optional Statistics Group

        This section describes some of the management information that may be
        derived from the objects provided in the optional statistics group.

        Given time 1 (t1) and time 2 (t2) greater than t1, the mean inter-
        arrival time of valid DHCP messages for the interval t1 to t2 can be
        computed as (dhcpStatLastArrivalTime (dhcpv4StatLastArrivalTime at t2 minus
        dhcpStatLastArrivalTime
        dhcpv4StatLastArrivalTime at t1) divided by (valid DHCP received
        packet count at t2 minus valid DHCP received packet count at t1).

        Under the simplifying assumption that the capture of packet counts
        and times is discontinuous (that is, for the measurement interval the
        captured data represents the complete set for the server) the
        variance of the mean may be computed as
        (dhcpStatSumSquaresArrivalTime
        (dhcpv4StatSumSquaresArrivalTime at t2 less
        dhcpStatSumSquaresArrivalTime
        dhcpv4StatSumSquaresArrivalTime at t1) divided by (valid DHCP
        received packet count at t2 less valid DHCP received packet count at
        t1).  Standard deviation of the mean is the square root of the
        variance.

        Calculation of statistics for message response time is entirely
        similar to the calculations for inter-arrival time, except that the
        response time objects are used for the calculations.

        Calculation of statistics for BOOTP is similar to the calculations
        for DHCP, except that the similar objects from the
        bootpOptionalStatistics group are used instead of the objects from
        dhcpOptionalStatistics group.server
        dhcpv4OptionalStatistics group, server Configuration Group

        The server configuration group contains objects that describe the
        configuration information that is contained in the server.  Some of
        the configuration information is static (e.g., a statically
        configured IP address) and some of the configuration is dynamic
        (e.g., an assigned DHCP lease).  The intent of the server
        configuration group is to be able to read the server's configuration.
        Mechanisms outside of the SNMP are currently in use (e.g., vendor
        defined solutions) and are being standardized (e.g., the Directory
        Enabled Networks [DEN] initiative) to update a server's
        configuration.

        The configuration information defines a minimal set of information
        that most servers should be able to provide.  Each row of the
        serverSubnetTable
        dhcpv4ServerSubnetTable lists the subnet, the subnet mask, and the
        subnet that is equivalent to this subnet.  Equivalence is defined as
        more than one subnet being present on the same network segment as
        some other subnet.

        The serverRangeTable dhcpv4ServerRangeTable lists the start and end IP addresses of
        the ranges and the subnet of which the range is a member.  The
        serverRangeInUse
        dhcpv4ServerRangeInUse object indicates the amount of the range that
        is currently in use, either through dynamic allocation or being
        reserved.  The range size can be computed by taking the difference of
        the serverRangeStart "dhcpv4ServerRangeStartAddress" and serverRangeEnd "dhcpv4ServerRangeEndAddress"
        objects.

        The serverAddressTable dhcpv4ServerAddressTable provides information about the static
        and dynamic addresses that the server contains in its configuration.
        Addresses may be:

          o Static, in which case they are predefined though the server's
            configuration.  Static addresses may or may not have been
            previously served by the server;

          o Dynamic, in which case the server has served the addresses and
            it is currently in active use by a host;

          o Expired, in which case the server had previously assigned for
            which the lease time has expired, but is retained by the server
            for possible future use by the same client;

          o Configuration-reserved, in which case the address is not
            available for the server to allocate to a client.  A
            configuration-reserved address is one that has been reserved by
            the administrator.  An example of a configuration-reserved
            address is an address that is assigned to a client, not through
            DHCP (e.g., statically assigned), and the address is within a
            DHCP range; and

          o Server-reserved, in which case the server has taken the address
            out of use.  Examples of server-reserved addresses are those
            which
            that have been declined (i.e., through a DHCPDECLINE) by a
            client or those which that have responded to an ICMP echo before they
            were assigned.

        The protocol used to allocate the address may be determined from the
        serverAddressServedProtocol
        "dhcpv4ServerAddressServedProtocol" object.  This object indicates
        whether the address has never been served, or whether BOOTP or DHCP
        was used to allocate the address.

     3.5. Response Times and ICMP Echo

        According to [RFC2131], servers SHOULD try to determine if an address
        is in use before assigning it.  Some servers choose not to perform
        this check, letting the client determine for itself if the address is
        in use.  Other servers perform an ICMP echo (Ping) just prior to
        assigning an address.  Servers that perform a Ping before responding
        to a DHCPDISCOVER should not include in the response time the time
        from when the Ping was transmitted until the time that either a
        response was received or that the server timed out waiting for a
        response.

     4. Definitions

        -- definitions for a DHCP (Dynamic Host Configuration Protocol)
        server

        DHCP-SERVER-MIB DEFINITIONS ::= BEGIN

        IMPORTS
           Counter64, Counter32, Gauge32, Unsigned32, mib-2, MODULE-IDENTITY,
           OBJECT-TYPE, OBJECT-IDENTITY OBJECT-IDENTITY, NOTIFICATION-TYPE, mib-2
              FROM SNMPv2-SMI

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

           SnmpAdminString FROM SNMP-FRAMEWORK-MIB
           InetAddressType, InetAddress,

           InetAddressIPv4, InetAddressPrefixLength
           FROM INET-ADDRESS-MIB

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

        dhcp  OBJECT-IDENTITY
           STATUS      current
           DESCRIPTION
              "The dhcp branch in the standard network management framework."
           ::= { mib-2 99 } -- IANA will make official assignment

        serverMIB  MODULE-IDENTITY
           REVISION "2002-11-04 04:29Z÷
           DESCRIPTION "Initial Version, published as RFC xxxx."
                                      -- RFC Editor assigns xxxx
           LAST-UPDATED   "2002-11-04 04:29Z"   "200303021042Z"
           ORGANIZATION
              "IETF DHC Working Group" Group
              General Discussion: dhcwg@ietf.org
              Subscribe: http://www1.ietf.org/mailman/listinfo/dhcwg
              Archive: http://www1.ietf.org/mailman/listinfo/dhcwg
              Chair: Ralph Droms, rdroms@cisco.com rdroms@cisco.com"
           CONTACT-INFO
              "         Richard Barr Hibbs
              Postal:  952 Sanchex Sanchez Street
                       San Francisco, California 94114-3362
                       USA
                 Tel:  +1-(415)-648-3920
                 Fax:  +1-(415)-648-9017
              E-mail:  rbhibbs@pacbell.net

                       Glenn Waters
              Postal:  Nortel Networks, Inc.
                       310-875 Carling Avenue
                       Ottawa, Ontario K1S 5P1
                       Canada
                 Tel:  +1-(613)-798-4925
              E-mail:  gww@NortelNetworks.com "  gww@NortelNetworks.com"
           DESCRIPTION
              "The MIB module for entities implementing the server side of
              the Bootstrap Protocol (BOOTP) and the Dynamic Host
              Configuration protocol (DHCP) for Internet Protocol version
              4(IPv4).  This MIB does not include support for Dynamic DNS
              (DDNS) updating nor for the DHCP Failover Protocol." Protocol.

              Copyright (C) The Internet Society (2003).  This version of
              this MIB module is part of RFC xxxx;  see the RFC itself for
              full legal notices."
              -- RFC Editor assigns xxxx and removes this comment

           REVISION "200303021042Z" -- 2 March 2003
           DESCRIPTION "Initial Version, published as RFC xxxx."
              -- RFC Editor assigns xxxx and removes this comment
           ::= { dhcp 1 mib-2 TBD }

        serverMIBObjects  OBJECT-IDENTITY
           STATUS      current
           DESCRIPTION
              "DHCP Server MIB objects are all -- IANA will make official assignment

        -- Textual conventions defined in by this branch." memo

        DhcpTimeInterval ::= { serverMIB 1 }

        serverSystem  OBJECT-IDENTITY TEXTUAL-CONVENTION
           STATUS      current
           DESCRIPTION
              "Group
              "The number of objects milliseconds that are related has elapsed since some epoch.
              Systems that cannot measure events to the overall system."
        ::= { serverMIBObjects 1 }

        bootpCounters  OBJECT-IDENTITY
           STATUS      current
           DESCRIPTION
              "Group of objects millisecond
              resolution SHOULD round this value to the next available
              resolution that count various BOOTP events." the system supports."
           SYNTAX      Unsigned32

        DhcpPhysicalAddress ::= { serverMIBObjects 2 }

        dhcpCounters  OBJECT-IDENTITY TEXTUAL-CONVENTION
           DISPLAY-HINT   "1d,1d,1x:"
           STATUS         current
           DESCRIPTION
              "Group
              "A DHCP-specific encoding of objects that count various DHCP events."
        ::= { serverMIBObjects 3 }

        bootpOptionalStatistics  OBJECT-IDENTITY -- /*renamed*/
           STATUS      current
           DESCRIPTION
              "Group the physical address type and
              physical address, intended to mirror the representation of objects that
              physical addresses in DHCP messages.  The first octet of this
              object contains the hardware type from the 'htype' field of the
              DHCP message, the second octet of this object contains the
              hardware length from the 'hlen' field, and the remaining octets
              contain the hardware address from the 'chaddr' field."
           REFERENCE      "RFC 2131"
           SYNTAX OCTET STRING (SIZE(3..18))

        -- declare top-level MIB objects

        dhcpv4Server  OBJECT-IDENTITY
           STATUS      current
           DESCRIPTION
              "DHCPv4 Server MIB objects are defined in this branch."
           ::= { dhcp 1 }

        -- dhcpv4Client  OBJECT-IDENTITY
           -- STATUS      future
           -- DESCRIPTION
           -- "DHCPv4 Client MIB objects are defined in this branch."
           -- ::= { dhcp 2 }

        -- dhcpv4Relay  OBJECT-IDENTITY
           -- STATUS      future
           -- DESCRIPTION
           -- "DHCPv4 Relay Agent MIB objects are defined in this branch."
           -- ::= { dhcp 3 }

        -- dhcpv6Server  OBJECT-IDENTITY
           -- STATUS      future
           -- DESCRIPTION
           -- "DHCPv6 Server MIB objects are defined in this branch."
           -- ::= { dhcp 4 }

        dhcpv4ServerObjects  OBJECT-IDENTITY
           STATUS      current
           DESCRIPTION
              "DHCP Server MIB server identification objects are all defined
              in this branch."
        ::= { dhcpv4Server 1 }

        dhcpv4ServerSystem  OBJECT-IDENTITY
           STATUS      current
           DESCRIPTION
              "Group of objects that are related to the overall system."
        ::= { dhcpv4ServerObjects 1 }

        bootpCounters  OBJECT-IDENTITY
           STATUS      current
           DESCRIPTION
              "Group of objects that count various BOOTP events."
        ::= { dhcpv4ServerObjects 2 }

        dhcpv4Counters  OBJECT-IDENTITY
           STATUS      current
           DESCRIPTION
              "Group of objects that count various DHCPv4 events."
        ::= { dhcpv4ServerObjects 3 }

        bootpOptionalStatistics  OBJECT-IDENTITY
           STATUS      current
           DESCRIPTION
              "Group of objects that measure various BOOTP statistics."
        ::= { serverMIBObjects dhcpv4ServerObjects 4 }

        dhcpOptionalStatistics

        dhcpv4OptionalStatistics  OBJECT-IDENTITY -- /*renamed*/
           STATUS      current
           DESCRIPTION
              "Group of objects that measure various DHCP DHCPv4 statistics."
        ::= { serverMIBObjects dhcpv4ServerObjects 5 }

        serverConfiguration

        dhcpv4ServerConfiguration  OBJECT-IDENTITY
           STATUS      current
           DESCRIPTION
              "Objects that contain pre-configured and dynamic configuration
              information."
        ::= { serverMIBObjects dhcpv4ServerObjects 6 }

        bootpClients

        dhcpv4ServerNotifyObjects  OBJECT-IDENTITY
           STATUS      current
           DESCRIPTION
              "Objects that map BOOTP clients to IP addresses." are used only in notifications."
           ::= { serverMIBObjects dhcpv4ServerObjects 7 }

        dhcpClients  OBJECT-IDENTITY

        -- dhcpv4ServerSystemObjects Group

        dhcpv4ServerSystemDescr  OBJECT-TYPE
           SYNTAX      SnmpAdminString (SIZE(0..255))
           MAX-ACCESS  read-only
           STATUS      current
           DESCRIPTION
              "Objects that map DHCP clients to IP addresses."
        ::= { serverMIBObjects 8 }

        -- Textual conventions defined by this memo

        DhcpTimeInterval ::= TEXTUAL-CONVENTION
           SYNTAX      Unsigned32
           STATUS      current
           DESCRIPTION
              "The number
              "A textual description of milliseconds that has elapsed since some epoch.
              Systems that cannot measure events to the millisecond
              resolution SHOULD round this server.  This value to should
              include the next available
              resolution that full name and version identification of the system supports."

        HardwareAddressType
              server."
           ::= TEXTUAL-CONVENTION { dhcpv4ServerSystem 1 }

        dhcpv4ServerSystemObjectID  OBJECT-TYPE
           SYNTAX         OCTET      OBJECT IDENTIFIER
           MAX-ACCESS  read-only
           STATUS      current
           REFERENCE      "RFC 2131"
           DESCRIPTION
              "The value vendor's authoritative identification of the hardware type field, as used network
              management subsystem contained in ARP messages
              (e.g., 1 for Ethernet, 6 for token ring).  IANA maintains this entity.  This value is
              allocated within the
              list of registered numbers SMI enterprise subtree (1.3.6.1.4.1) and
              provides an easy and unambiguous means for this field."

        HardwareAddressLength ::= TEXTUAL-CONVENTION
           SYNTAX         OCTET
           STATUS         current
           REFERENCE      "RFC 2131"
           DESCRIPTION
              "The length in octets determining what
              kind of server is being managed.  For example, if vendor Ohso
              Soft, Inc. is assigned the hardware address field (e.g., 6
              for Ethernet).  IANA maintains subtree 1.3.6.1.4.1.4242, it may
              assign the list of registered numbers
              for this field."

        MacAddress identifier 1.3.6.1.4.1.4242.1.1 to its Ursa DHCP
              Server."
           ::= TEXTUAL-CONVENTION { dhcpv4ServerSystem 2 }

        -- bootpCounterObjects Group

        bootpCountRequests  OBJECT-TYPE
           SYNTAX         OCTET STRING (SIZE (1..16))
           DISPLAY-HINT   "t,l,xx[:xx...]"      Counter32
           MAX-ACCESS  read-only
           STATUS      current
           REFERENCE      "RFC 2131"
           DESCRIPTION
              "A Layer
              "The number of packets received that contain a Message Type of
              1 address, (BOOTREQUEST) in the hardware address of first octet and do not contain option
              number 53 (DHCP Message Type) in the MAC (Media
              Adapter Card) interface.  The address length is fixed for a
              given hardware address type, but varies by type."

        PhysicalAddress options."
           REFERENCE
              "RFC-2131."
           ::= TEXTUAL-CONVENTION
           SYNTAX         SEQUENCE OF {
              HardwareAddressType,
              HardwareAddressLength,
              MacAddress bootpCounters 1 }
           DISPLAY-HINT   "t,l,xx[:xx...]"

        bootpCountInvalids  OBJECT-TYPE
           SYNTAX      Counter32
           MAX-ACCESS  read-only
           STATUS      current
           REFERENCE      "RFC 2131"
           DESCRIPTION
              "A Layer
              "The number of packets received that do not contain a Message
              Type of 1 address which includes the hardware type space as
              well as the usual MAC address.  This encoding is intended to
              mirror (BOOTREQUEST) in the representation of physical addresses first octet or are not valid
              BOOTP packets (e.g., too short, invalid field in DHCP."

        DhcpLabel packet
              header)."
           ::= TEXTUAL-CONVENTION { bootpCounters 2 }

        bootpCountReplies  OBJECT-TYPE
           SYNTAX         SnmpAdminString (SIZE (1..100))
           DISPLAY-HINT      Counter32
           MAX-ACCESS  read-only
           STATUS      current
           DESCRIPTION

        -- serverSystem Group

        serverSystemDescr
              "The number of packets sent that contain a Message Type of 2
              (BOOTREPLY) in the first octet and do not contain option number
              53 (DHCP Message Type) in the options."
           REFERENCE
              "RFC-2131."
           ::= { bootpCounters 3 }

        bootpCountDroppedUnknownClients  OBJECT-TYPE
           SYNTAX      SnmpAdminString (SIZE (0..255))      Counter32
           MAX-ACCESS  read-only
           STATUS      current
           DESCRIPTION
              "A textual description
              "The number of BOOTP packets dropped due to the server.  This value should
              include server not
              recognizing or not providing service to the full name and version identification of hardware address
              received in the
              server." incoming packet."
           ::= { serverSystem 1 bootpCounters 4 }

        serverSystemObjectID

        bootpCountDroppedNotServingSubnet  OBJECT-TYPE
           SYNTAX      OBJECT IDENTIFIER      Counter32
           MAX-ACCESS  read-only
           STATUS      current
           DESCRIPTION
              "The vendor's authoritative identification number of BOOTP packets dropped due to the network
              management subsystem contained in this entity.  This value is
              allocated within server not
              being configured or not otherwise able to serve addresses on
              the SMI enterprise subtree (1.3.6.1.4.1) and
              provides an easy and unambiguous means subnet from which this message was received."
           ::= { bootpCounters 5 }

        -- DHCP Counters

        dhcpv4RecvdPacketCounters  OBJECT-IDENTITY
           STATUS      current
           DESCRIPTION
              "Counters for valid received DHCP message packets."
           ::= { dhcpv4Counters 1 }

        dhcpv4SentPacketCounters  OBJECT-IDENTITY
           STATUS      current
           DESCRIPTION
              "Counters for determining 'what
              kind of server' is being managed.  For example, if vendor
              'VeryBigServers, Inc.' is assigned the subtree
              1.3.6.1.4.1.4242, it may assign the identifier
              1.3.6.1.4.1.4242.1.1 to its `Hercules valid sent DHCP Server'." message packets."
           ::= { serverSystem dhcpv4Counters 2 }

        dhcpv4ErrorPacketCounters  OBJECT-IDENTITY
           STATUS      current
           DESCRIPTION
              "Counters for DHCP message packets received, but not processed
              by the server due to configuration or other errors."
           ::= { dhcpv4Counters 3 }

        -- dhcpCounters dhcpv4RecvdPacketCounterObjects Group

        -- DHCP received packet counters

        dhcpCountDiscovers

        dhcpv4CountDiscovers  OBJECT-TYPE
           SYNTAX      Counter32
           MAX-ACCESS  read-only
           STATUS      current
           DESCRIPTION
              "The number of DHCPDISCOVER (option 53 with value 1) packets
              received."
           REFERENCE
              "RFC2131; RFC2132, section 9.6."
           ::= { dhcpCounters dhcpv4RecvdPacketCounters 1 }

        dhcpCountRequests

        dhcpv4CountRequests  OBJECT-TYPE
           SYNTAX      Counter32
           MAX-ACCESS  read-only
           STATUS      current
           DESCRIPTION
              "The number of DHCPREQUEST (option 53 with value 3) packets
              received."
           REFERENCE
              "RFC2131; RFC2132, section 9.6."
           ::= { dhcpCounters dhcpv4RecvdPacketCounters 2 }

        dhcpCountReleases

        dhcpv4CountReleases  OBJECT-TYPE
           SYNTAX      Counter32
           MAX-ACCESS  read-only
           STATUS      current
           DESCRIPTION
              "The number of DHCPRELEASE (option 53 with value 7) packets
              received."
           REFERENCE
              "RFC2131; RFC2132, section 9.6."
           ::= { dhcpCounters dhcpv4RecvdPacketCounters 3 }

        dhcpCountDeclines

        dhcpv4CountDeclines  OBJECT-TYPE
           SYNTAX      Counter32
           MAX-ACCESS  read-only
           STATUS      current
           DESCRIPTION
              "The number of DHCPDECLINE (option 53 with value 4) packets
              received."
           REFERENCE
              "RFC2131; RFC2132, section 9.6."
           ::= { dhcpCounters dhcpv4RecvdPacketCounters 4 }

        dhcpCountInforms

        dhcpv4CountInforms  OBJECT-TYPE
           SYNTAX      Counter32
           MAX-ACCESS  read-only
           STATUS      current
           DESCRIPTION
              "The number of DHCPINFORM (option 53 with value 8) packets
              received."
           REFERENCE
              "RFC2131; RFC2132, section 9.6."
           ::= { dhcpCounters dhcpv4RecvdPacketCounters 5 } -- /*renumbered*/
        dhcpCountLeaseQueries

        dhcpv4CountLeaseQueries  OBJECT-TYPE -- /*new*/
           SYNTAX      Counter32
           MAX-ACCESS  read-only
           STATUS      current
           DESCRIPTION
              "The number of DHCPLEASEQUERY (option 53 with value 9) TBD)
              packets received."
           REFERENCE
              "draft-ietf-dhc-leasequery-02.txt."
           ::= { dhcpCounters 6 } -- /*new*/

        dhcpCountPlaceHolder1  OBJECT-TYPE -- /*new*/
           SYNTAX      Counter32
           MAX-ACCESS  read-only
           STATUS      current
           DESCRIPTION
              "Placeholder for anticipated new DHCP option 53 message type."
           REFERENCE
              "None."
           ::= { dhcpCounters 7 } -- /*new*/

        dhcpCountPlaceHolder2  OBJECT-TYPE
              -- /*new*/
           SYNTAX      Counter32
           MAX-ACCESS  read-only
           STATUS      current
           DESCRIPTION
              "Placeholder for anticipated new DHCP option 53 message type." value to be assigned by IANA
           REFERENCE
              "None."
              "draft-ietf-dhc-leasequery-04.txt."
           ::= { dhcpCounters 8 dhcpv4RecvdPacketCounters 6 }

        -- /*new*/

        -- DHCP sent packet counters

        dhcpCountOffers dhcpv4SentPacketCounterObjects Group

        dhcpv4CountOffers  OBJECT-TYPE
           SYNTAX      Counter32
           MAX-ACCESS  read-only
           STATUS      current
           DESCRIPTION
              "The number of DHCPOFFER (option 53 with value 2) packets
              sent."
           REFERENCE
              "RFC2131; RFC2132, section 9.6."
           ::= { dhcpCounters 9 dhcpv4SentPacketCounters 1 } -- /*renumbered*/

        dhcpCountAcks

        dhcpv4CountAcks  OBJECT-TYPE
           SYNTAX      Counter32
           MAX-ACCESS  read-only
           STATUS      current
           DESCRIPTION
              "The number of DHCPACK (option 53 with value 5) packets sent."
           REFERENCE
              "RFC2131; RFC2132, section 9.6."
        ::= { dhcpCounters 10 dhcpv4SentPacketCounters 2 } -- /*renumbered*/

        dhcpCountNacks

        dhcpv4CountNacks  OBJECT-TYPE
           SYNTAX      Counter32
           MAX-ACCESS  read-only
           STATUS      current
           DESCRIPTION
              "The number of DHCPNACK (option 53 with value 6) packets sent."
           REFERENCE
              "RFC2131; RFC2132, section 9.6."
           ::= { dhcpCounters 11 dhcpv4SentPacketCounters 3 } -- /*renumbered*/

        dhcpCountForcedRenews

        dhcpv4CountForcedRenews  OBJECT-TYPE -- /*new*/
           SYNTAX      Counter32
           MAX-ACCESS  read-only
           STATUS      current
           DESCRIPTION
              "The number of DHCPFORCERENEW (option 53 with value TBD) 9) packets
              sent."
           REFERENCE
              "draft-ietf-dhc-pv4-reconfigure-06.txt."
              " RFC 3203, DHCP reconfigure extension."
           ::= { dhcpCounters 12 dhcpv4SentPacketCounters 4 } -- /*new*/

        dhcpCountKnowns

        dhcpv4CountKnowns  OBJECT-TYPE -- /*new*/
           SYNTAX      Counter32
           MAX-ACCESS  read-only
           STATUS      current
           DESCRIPTION
              "The number of DHCPKNOWN DHCPLEASEKNOWN (option 53 with value TBD)
              packets sent."
              -- value to be assigned by IANA.
           REFERENCE
              "draft-ietf-dhc-leasequery-03.txt."
              "draft-ietf-dhc-leasequery-04.txt."
           ::= { dhcpCounters 13 dhcpv4SentPacketCounters 5 } -- /*new*/

        dhcpCountUnknowns
        dhcpv4CountUnknowns  OBJECT-TYPE -- /*new*/
           SYNTAX      Counter32
           MAX-ACCESS  read-only
           STATUS      current
           DESCRIPTION
              "The number of DHCPUNKNOWN DHCPLEASEUNKNOWN (option 53 with value TBD)
              packets sent."
              -- value to be assigned by IANA.
           REFERENCE
              "draft-ietf-dhc-leasequery-03.txt."
              "draft-ietf-dhc-leasequery-04.txt."
           ::= { dhcpCounters 14 dhcpv4SentPacketCounters 6 } -- /*new*/

        dhcpCountActives

        dhcpv4CountActives  OBJECT-TYPE -- /*new*/
           SYNTAX      Counter32
           MAX-ACCESS  read-only
           STATUS      current
           DESCRIPTION
              "The number of DHCPACTIVE DHCPLEASEACTIVE (option 53 with value TBD)
              packets sent."
              -- value to be assigned by IANA.
           REFERENCE
              "draft-ietf-dhc-leasequery-03.txt."
              "draft-ietf-dhc-leasequery-04.txt."
           ::= { dhcpCounters 15 dhcpv4SentPacketCounters 7 } -- /*new*/

        dhcpCountUnimplementeds

        dhcpv4CountUnimplementeds  OBJECT-TYPE -- /*new*/
           SYNTAX      Counter32
           MAX-ACCESS  read-only
           STATUS      current
           DESCRIPTION
              "The number of DHCPUNIMPLEMENTED (option 53 with value TBD)
              packets sent."
           REFERENCE
              "draft-ietf-dhc-leasequery-03.txt."
           ::= { dhcpCounters 16 } -- /*new*/

        dhcpCountPlaceHolder3  OBJECT-TYPE -- /*new*/
           SYNTAX      Counter32
           MAX-ACCESS  read-only
           STATUS      current
           DESCRIPTION
              "Placeholder for anticipated new DHCP option 53 message types."
           REFERENCE
              "None."
           ::= { dhcpCounters 17 } -- /*new*/

        dhcpCountPlaceHolder4  OBJECT-TYPE
              -- /*new*/
           SYNTAX      Counter32
           MAX-ACCESS  read-only
           STATUS      current
           DESCRIPTION
              "Placeholder for anticipated new DHCP option 53 message types." value to be assigned by IANA.
           REFERENCE
              "None."
              "draft-ietf-dhc-leasequery-04.txt."
           ::= { dhcpCounters 18 dhcpv4SentPacketCounters 8 }

        -- /*new*/

        -- DHCP packet error counters

        dhcpCountInvalids dhcpv4ErrorPacketCounterObjects Group

        dhcpv4CountInvalids  OBJECT-TYPE
           SYNTAX      Counter32
           MAX-ACCESS  read-only
           STATUS      current
           DESCRIPTION
              "The number of DHCP packets received whose DHCP message type
              (i.e., option number 53) is not understood or handled by the
              server."
           ::= { dhcpCounters 19 dhcpv4ErrorPacketCounters 1 } -- /*renumbered*/

        dhcpCountDroppedUnknownClient
        dhcpv4CountDroppedUnknownClient  OBJECT-TYPE
           SYNTAX      Counter32
           MAX-ACCESS  read-only
           STATUS      current
           DESCRIPTION
              "The number of DHCP packets dropped due to the server not
              recognizing or not providing service to the client-id and/or
              hardware address received in the incoming packet."
           ::= { dhcpCounters 20 dhcpv4ErrorPacketCounters 2 } -- /*renumbered*/

        dhcpCountDroppedNotServingSubnet

        dhcpv4CountDroppedNotServingSubnet  OBJECT-TYPE
           SYNTAX      Counter32
           MAX-ACCESS  read-only
           STATUS      current
           DESCRIPTION
              "The number of DHCP packets dropped due to the server not being
              configured or not otherwise able to serve addresses on the
              subnet from which this message was received."
           ::= { dhcpCounters 21 dhcpv4ErrorPacketCounters 3 }

        -- /*renumbered*/

        -- dhcpOptionalStatistics bootpOptionalStatisticObjects group

        dhcpStatMinArrivalInterval

        bootpStatMinArrivalInterval  OBJECT-TYPE
           SYNTAX      DhcpTimeInterval
           MAX-ACCESS  read-only
           STATUS      current
           DESCRIPTION
              "The minimum amount of time between receiving two DHCP BOOTP
              messages.  A message is received at the server when the server
              is able to begin processing the message.  This typically occurs
              immediately after the message is read into server memory.  If
              no messages have been received, then this object contains a
              zero value."
           ::= { dhcpOptionalStatistics bootpOptionalStatistics 1 } -- /*renamed*/

        dhcpStatMaxArrivalInterval

        bootpStatMaxArrivalInterval  OBJECT-TYPE
           SYNTAX      DhcpTimeInterval
           MAX-ACCESS  read-only
           STATUS      current
           DESCRIPTION
              "The maximum amount of time between receiving two DHCP BOOTP
              messages.  A message is received at the server when the server
              is able to begin processing the message.  This typically occurs
              immediately after the message is read into server memory.  If
              no messages have been received, then this object contains a
              zero value."
           ::= { dhcpOptionalStatistics bootpOptionalStatistics 2 } -- /*renamed*/

        dhcpStatLastArrivalTime

        bootpStatLastArrivalTime   OBJECT-TYPE
           SYNTAX      DateAndTime
           MAX-ACCESSread-only
           MAX-ACCESS  read-only
           STATUS      current
           DESCRIPTION
              "The date and time that the last valid DHCP BOOTP message was
              received by the server.  Invalid messages do not cause this
              value to change.  If no valid no messages have been received, then
              this object contains a date and time that is all zero."
           ::= { dhcpOptionalStatistics bootpOptionalStatistics 3 }

        dhcpStatSumSquaresArrivalTime

        bootpStatSumSquaresArrivalTime  OBJECT-TYPE
           SYNTAX      Counter64
           MAX-ACCESS  read-only
           STATUS      current
           DESCRIPTION
              "The sum of the squared DHCP BOOTP packet inter-arrival times in
              microseconds.  This value may be used to compute the variance
              and standard deviation of the DHCP BOOTP arrival times.  Note that a
              microsecond resolution of this object requires a clock
              resolution to the millisecond since the square of a millisecond
              value produces a value with microsecond resolution."
           ::= { dhcpOptionalStatistics bootpOptionalStatistics 4 } -- /*renamed*/

        dhcpStatMinResponseTime

        bootpStatMinResponseTime  OBJECT-TYPE
           SYNTAX      DhcpTimeInterval
           MAX-ACCESS  read-only
           STATUS      current
           DESCRIPTION
              "The smallest time interval measured as the difference between
              the arrival of a DHCP BOOTP message at the server and the successful
              transmission of the response to that message.  A message is
              received at the server when the server is able to begin
              processing the message.  A message is transmitted after the
              server has no further use for the message.  Note that the
              operating system may still have the message queued internally.

              The operating system queue time is not to be considered as part
              of the response time.  Invalid messages do not cause this value
              to change.  If no valid messages have been received, then this
              object contains a zero value."
           ::= { dhcpOptionalStatistics bootpOptionalStatistics 5 } -- /*renamed*/

        dhcpStatMaxResponseTime

        bootpStatMaxResponseTime  OBJECT-TYPE
           SYNTAX      DhcpTimeInterval
           MAX-ACCESS  read-only
           STATUS      current
           DESCRIPTION
              "The largest time interval measured as the difference between
              the arrival of a DHCP BOOTP message at the server and the successful
              transmission of the response to that message.  A message is
              received at the server when the server is able to begin
              processing the message.  A message is transmitted after the
              server has no further use for the message.  Note that the
              operating system may still have the message queued internally.

              The operating system queue time is not to be considered as part
              of the response time.  Invalid messages do not cause this value
              to change.  If no valid messages have been received, then this
              object contains a zero value."
           ::= { dhcpOptionalStatistics bootpOptionalStatistics 6 } -- /*renamed*/

        dhcpStatSumResponseTime

        bootpStatSumResponseTime  OBJECT-TYPE
           SYNTAX      Counter32
           MAX-ACCESS  read-only
           STATUS      current
           DESCRIPTION
              "The sum of the response time intervals in milliseconds where a
              response time interval is measured as the difference between
              the arrival of a DHCP BOOTP message at the server and the successful
              transmission of the response to that message.  A message is
              received at the server when the server is able to begin
              processing the message.  A message is transmitted after the
              server has no further use for the message.  Note that the
              operating system may still have the message queued internally.

              The operating system queue time is not to be considered as part
              of the response time.  Invalid messages do not cause this value
              to change.  If no valid messages have been received, then this
              object contains a zero value."
           ::= { dhcpOptionalStatistics bootpOptionalStatistics 7 } -- /*renamed*/

        dhcpStatSumSquaresResponseTime

        bootpStatSumSquaresResponseTime  OBJECT-TYPE
           SYNTAX      Counter64
           MAX-ACCESS  read-only
           STATUS      current
           DESCRIPTION
              "The sum of the squared DHCP BOOTP packet response times in micro-
              seconds.  This value may be used to compute the variance and
              standard deviation of the DHCP BOOTP response times.  Note that a
              microsecond resolution of this object requires a clock
              resolution to the millisecond since the square of a millisecond
              value produces a value with microsecond resolution."
           ::= { dhcpOptionalStatistics bootpOptionalStatistics 8 }

        -- /*renamed*/

        -- bootpCounters Group

        bootpCountRequests  OBJECT-TYPE
           SYNTAX      Counter32
           MAX-ACCESS  read-only
           STATUS      current
           DESCRIPTION
              "The number of packets received that contain a Message Type of
              1 (BOOTREQUEST) in the first octet and do not contain option
              number 53 (DHCP Message Type) in the options."
           REFERENCE
              "RFC-1541."
           ::= { bootpCounters 1 } -- /*renamed*/

        bootpCountInvalids  OBJECT-TYPE
           SYNTAX      Counter32
           MAX-ACCESS  read-only
           STATUS      current
           DESCRIPTION
              "The number of packets received that do not contain a Message
              Type of 1 (BOOTREQUEST) in the first octet or are not valid
              BOOTP packets (e.g., too short, invalid field in packet
              header)."
           ::= { bootpCounters 2 } -- /*renamed*/

        bootpCountReplies  OBJECT-TYPE
           SYNTAX      Counter32
           MAX-ACCESS  read-only
           STATUS      current
           DESCRIPTION
              "The number of packets sent that contain a Message Type of 2
              (BOOTREPLY) in the first octet and do not contain option number
              53 (DHCP Message Type) in the options."
           REFERENCE
              "RFC-1541."
           ::= { bootpCounters 3 } -- /*renamed*/

        bootpCountDroppedUnknownClients  OBJECT-TYPE
           SYNTAX      Counter32
           MAX-ACCESS  read-only
           STATUS      current
           DESCRIPTION
              "The number of BOOTP packets dropped due to the server not
              recognizing or not providing service to the hardware address
              received in the incoming packet."
           ::= { bootpCounters 4 } -- /*renamed*/

        bootpCountDroppedNotServingSubnet  OBJECT-TYPE
           SYNTAX      Counter32
           MAX-ACCESS  read-only
           STATUS      current
           DESCRIPTION
              "The number of BOOTP packets dropped due to the server not
              being configured or not otherwise able to serve addresses on
              the subnet from which this message was received."
           ::= { bootpCounters 5 } -- /*renamed*/

        -- bootpOptionalStatistics dhcpv4OptionalStatisticObjects group

        bootpStatMinArrivalInterval

        dhcpv4StatMinArrivalInterval  OBJECT-TYPE
           SYNTAX      DhcpTimeInterval
           MAX-ACCESS  read-only
           STATUS      current
           DESCRIPTION
              "The minimum amount of time between receiving two BOOTP DHCPv4
              messages.  A message is received at the server when the server
              is able to begin processing the message.  This typically occurs
              immediately after the message is read into server memory.  If
              no messages have been received, then this object contains a
              zero value."
           ::= { bootpOptionalStatistics dhcpv4OptionalStatistics 1 } -- /*renamed*/

        bootpStatMaxArrivalInterval

        dhcpv4StatMaxArrivalInterval  OBJECT-TYPE
           SYNTAX      DhcpTimeInterval
           MAX-ACCESS  read-only
           STATUS      current
           DESCRIPTION
              "The maximum amount of time between receiving two BOOTP DHCPv4
              messages.  A message is received at the server when the server
              is able to begin processing the message.  This typically occurs
              immediately after the message is read into server memory.  If
              no messages have been received, then this object contains a
              zero value."
           ::= { bootpOptionalStatistics dhcpv4OptionalStatistics 2 } -- /*renamed*/

        bootpStatLastArrivalTime

        dhcpv4StatLastArrivalTime  OBJECT-TYPE
           SYNTAX      DateAndTime
           MAX-ACCESS  read-only
           STATUS      current
           DESCRIPTION
              "The date and time that the last valid BOOTP DHCPv4 message was
              received by the server.  Invalid messages do not cause this
              value to change.  If valid no valid messages have been received, then
              this object contains a date and time that is all zero."
           ::= { bootOptionalpStatistics dhcpv4OptionalStatistics 3 } -- /*renamed*/

        bootpStatSumSquaresArrivalTime

        dhcpv4StatSumSquaresArrivalTime  OBJECT-TYPE
           SYNTAX      Counter64
           MAX-ACCESS  read-only
           STATUS      current
           DESCRIPTION
              "The sum of the squared BOOTP DHCPv4 packet inter-arrival times in
              microseconds.  This value may be used to compute the variance
              and standard deviation of the BOOTP DHCPv4 arrival times.  Note that
              a microsecond resolution of this object requires a clock
              resolution to the millisecond since the square of a millisecond
              value produces a value with microsecond resolution."
           ::= { bootpOptionalStatistics dhcpv4OptionalStatistics 4 } -- /*renamed*/

        bootpStatMinResponseTime

        dhcpv4StatMinResponseTime  OBJECT-TYPE
           SYNTAX      DhcpTimeInterval
           MAX-ACCESS  read-only
           STATUS      current
           DESCRIPTION
              "The smallest time interval measured as the difference between
              the arrival of a BOOTP DHCPv4 message at the server and the
              successful transmission of the response to that message.  A
              message is received at the server when the server is able to
              begin processing the message.  A message is transmitted after
              the server has no further use for the message.  Note that the
              operating system may still have the message queued internally.
              The operating system queue time is not to be considered as part
              of the response time.  Invalid messages do not cause this value
              to change.  If no valid messages have been received, then this
              object contains a zero value."
           ::= { bootpOptionalStatistics dhcpv4OptionalStatistics 5 } -- /*renamed*/

        bootpStatMaxResponseTime

        dhcpv4StatMaxResponseTime  OBJECT-TYPE
           SYNTAX      DhcpTimeInterval
           MAX-ACCESS  read-only
           STATUS      current
           DESCRIPTION
              "The largest time interval measured as the difference between
              the arrival of a BOOTP DHCPv4 message at the server and the
              successful transmission of the response to that message.  A
              message is received at the server when the server is able to
              begin processing the message.  A message is transmitted after
              the server has no further use for the message.  Note that the
              operating system may still have the message queued internally.
              The operating system queue time is not to be considered as part
              of the response time.  Invalid messages do not cause this value
              to change.  If no valid messages have been received, then this
              object contains a zero value."
           ::= { bootpOptionalStatistics dhcpv4OptionalStatistics 6 } -- /*renamed*/

        bootpStatSumResponseTime

        dhcpv4StatSumResponseTime  OBJECT-TYPE
           SYNTAX      Counter32
           MAX-ACCESS  read-only
           STATUS      current
           DESCRIPTION
              "The sum of the response time intervals in milliseconds where a
              response time interval is measured as the difference between
              the arrival of a BOOTP DHCPv4 message at the server and the
              successful transmission of the response to that message.  A
              message is received at the server when the server is able to
              begin processing the message.  A message is transmitted after
              the server has no further use for the message.  Note that the
              operating system may still have the message queued internally.
              The operating system queue time is not to be considered as part
              of the response time.  Invalid messages do not cause this value
              to change.  If no valid messages have been received, then this
              object contains a zero value."
           ::= { bootpOptionalStatistics dhcpv4OptionalStatistics 7 } -- /*renamed*/

        bootpStatSumSquaresResponseTime

        dhcpv4StatSumSquaresResponseTime  OBJECT-TYPE
           SYNTAX      Counter64
           MAX-ACCESS  read-only
           STATUS      current
           DESCRIPTION
              "The sum of the squared BOOTP DHCPv4 packet response times in micro-
              seconds.  This value may be used to compute the variance and
              standard deviation of the BOOTP DHCPv4 response times.  Note that a
              microsecond resolution of this object requires a clock
              resolution to the millisecond since the square of a millisecond
              value produces a value with microsecond resolution."
           ::= { bootpOptionalStatistics dhcpv4OptionalStatistics 8 }

        -- /*renamed*/

        -- server configurationgroup DHCP Server Configuration

        -- server shared network table

        serverSharedNetworkTable dhcpv4ServerSharedNetObjects Group

        dhcpv4ServerSharedNetTable  OBJECT-TYPE
           SYNTAX      SEQUENCE OF serverSharedNetworkEntry Dhcpv4ServerSharedNetEntry
           MAX-ACCESS  not-accessible
           STATUS      current
           DESCRIPTION
              "A list of shared networks that are configured in the server.
              A shared network is the logical aggregation of one or more
              subnets that share a common network segment (e.g., multi-tapped
              coaxial cable, wiring hub, or switch).  This table is present
              ONLY for those servers that organize the ranges of addresses
              available for assignment where a higher-level grouping (i.e.,
              the "shared" 'shared' network) exists above ranges and subnets."
           ::= { serverConfiguration dhcpv4ServerConfiguration 1 }

        serverSharedNetworkEntry

        dhcpv4ServerSharedNetEntry  OBJECT-TYPE
           SYNTAX      ServerSharedNetworkEntry      Dhcpv4ServerSharedNetEntry
           MAX-ACCESS  not-accessible
           STATUS      current
           INDEX       { serverSharedNetworkName }
           DESCRIPTION
              "A logical row in the serverSharedNetworkTable." dhcpv4ServerSharedNetTable."
           INDEX {
              dhcpv4ServerSharedNetName
           }
           ::= { serverSharedNetworkTable dhcpv4ServerSharedNetTable 1}

        ServerSharedNetworkEntry

        Dhcpv4ServerSharedNetEntry ::= SEQUENCE {
              serverSharedNetworkName                DhcpLabel,
              serverSharedNetworkFreeAddresses
           dhcpv4ServerSharedNetName                    SnmpAdminString,
           dhcpv4ServerSharedNetFreeAddrLowThreshold    Unsigned32,
              serverSharedNetworkReservedAddresses
           dhcpv4ServerSharedNetFreeAddrHighThreshold   Unsigned32, -- /*new*/
              serverSharedNetworkTotalAddresses
           dhcpv4ServerSharedNetFreeAddresses           Unsigned32,
           dhcpv4ServerSharedNetReservedAddresses       Unsigned32,
           dhcpv4ServerSharedNetTotalAddresses          Unsigned32 --
              /*renamed*/
        }

        serverSharedNetworkName

        dhcpv4ServerSharedNetName  OBJECT-TYPE
           SYNTAX      DhcpLabel -- /*modified*/      SnmpAdminString (SIZE(1..100))
           MAX-ACCESS  not-accessible
           STATUS      current
           DESCRIPTION
              "The name of the shared network, which uniquely identifies an
              entry in the serverSharedNetworkTable." dhcpv4ServerSharedNetTable."
           ::= { serverSharedNetworkEntry dhcpv4ServerSharedNetEntry 1 }

        serverSharedNetworkFreeAddresses

        dhcpv4ServerSharedNetFreeAddrLowThreshold  OBJECT-TYPE
           SYNTAX      Unsigned32
           MAX-ACCESS  accessible-for-notify
           STATUS      current
           DESCRIPTION
              "The low threshold for available free addresses in this shared
              network.  If the value for available free addresses in this
              shared network becomes equal to or less than this value, a
              dhcpv4ServerFreeAddressLow event is generated for this shared
              network.  No more dhcpv4ServerFreeAddressLow events will be
              generated for this subnet during this execution of the DHCP
              server until the value for available free addresses has
              exceeded the value of
              dhcpv4ServerSharedNetFreeAddrHighThreshold."
           ::= { dhcpv4ServerSharedNetEntry 2 }

        dhcpv4ServerSharedNetFreeAddrHighThreshold  OBJECT-TYPE
           SYNTAX      Unsigned32
           MAX-ACCESS  accessible-for-notify
           STATUS      current
           DESCRIPTION
              "The high threshold for available free addresses in this shared
              network.  If a dhcpv4ServerFreeAddressLow event was generated
              for this subnet, and the value for available free addresses has
              exceeded the value of dhcpv4ServerSubnetFreeAddrHighThreshold,
              then a dhcpv4ServerFreeAddressHigh event will be generated.  No
              more dhcpv4ServerFreeAddressHigh events will be generated for
              this subnet during this execution of the DHCP server until the
              value for available free addresses becomes equal to or less
              than the value of dhcpv4ServerSubnetFreeAddrHighThreshold."
           ::= { dhcpv4ServerSharedNetEntry 3 }

        dhcpv4ServerSharedNetFreeAddresses  OBJECT-TYPE -- /*renamed*/
           SYNTAX      Unsigned32
           MAX-ACCESS  accessible-for-notify
           STATUS      current
           DESCRIPTION
              "The number of IP addresses which are available within this
              shared network.  If the server does not count free addresses by
              shared network segment, this value will be zero."
           ::= { serverSharedNetworkEntry 2 dhcpv4ServerSharedNetEntry 4 } -- /*renumbered*/

        serverSharedNetworkReservedAddresses

        dhcpv4ServerSharedNetReservedAddresses  OBJECT-TYPE -- /*new*/
           SYNTAX      Unsigned32
           MAX-ACCESS  accessible-for-notify
           STATUS      current
           DESCRIPTION
              "The number of IP addresses which are reserved (not available
              for assignement) assignment) within this shared network.  If the server does
              not count reserved addresses by shared network segment, this
              value will be zero."
           ::= { serverSharedNetworkEntry 3 dhcpv4ServerSharedNetEntry 5 }

        serverSharedNetworkTotalAddresses

        dhcpv4ServerSharedNetTotalAddresses  OBJECT-TYPE -- /*new*/
           SYNTAX      Unsigned32
           MAX-ACCESS  accessible-for-notify
           STATUS      current
           DESCRIPTION
              "The number of IP addresses which are available within this
              shared network.  If the server does not count total addresses
              by shared network segment, this value will be zero."
           ::= { serverSharedNetworkEntry 4 dhcpv4ServerSharedNetEntry 6 }

        -- server subnet table

        serverSubnetTable dhcpv4ServerSubnetObjects Group

        dhcpv4ServerSubnetTable  OBJECT-TYPE
           SYNTAX      SEQUENCE OF serverSubnetEntry Dhcpv4ServerSubnetEntry
           MAX-ACCESS  not-accessible
           STATUS      current
           DESCRIPTION
              "A list of subnets that are configured in this server."
           ::= { serverConfiguration dhcpv4ServerConfiguration 2 }

        serverSubnetEntry

        dhcpv4ServerSubnetEntry  OBJECT-TYPE
           SYNTAX      ServerSubnetEntry      Dhcpv4ServerSubnetEntry
           MAX-ACCESS  not-accessible
           STATUS      current
           INDEX       { serverSubnet }
           DESCRIPTION
              "A logical row in the serverSubnetTable." dhcpv4ServerSubnetTable."
           INDEX {
              dhcpv4ServerSubnetAddress
           }
           ::= { serverSubnetTable dhcpv4ServerSubnetTable 1 }

        ServerSubnetEntry

        Dhcpv4ServerSubnetEntry ::= SEQUENCE {
           serverSubnet
           dhcpv4ServerSubnetAddress                 InetAddressIPv4,
           serverSubnetMask
           dhcpv4ServerSubnetMask                    InetAddressPrefixLength,
           serverSubnetSharedNetworkName          DhcpLabel, -- /*modified*/
           serverSubnetFreeAddressLowThreshold
           dhcpv4ServerSubnetSharedNetworkName       SnmpAdminString,
           dhcpv4ServerSubnetFreeAddrLowThreshold    Unsigned32,
           serverSubnetFreeAddressHighThreshold
           dhcpv4ServerSubnetFreeAddrHighThreshold   Unsigned32,
           ServerSubnetFreeAddresses
           dhcpv4ServerSubnetFreeAddresses           Unsigned32 -- /*renamed*/
        }

        serverSubnet

        dhcpv4ServerSubnetAddress  OBJECT-TYPE
           SYNTAX      InetAddressIPv4
           MAX-ACCESS  read-only -- /*changed*/  not-accessible
           STATUS      current
           DESCRIPTION
              "The IP address of the subnet." subnet entry in the
              dhcpv4ServerSubnetTable."
           ::= { serverSubnetEntry dhcpv4ServerSubnetEntry 1 }

        serverSubnetMask

        dhcpv4ServerSubnetMask  OBJECT-TYPE
           SYNTAX      InetAddressPrefixLength
           MAX-ACCESS  read-only
           STATUS      current
           DESCRIPTION
              "The subnet mask of the subnet.  This MUST be the same as the
              value of DHCP option 1 offered to clients on this subnet."
           ::= { serverSubnetEntry dhcpv4ServerSubnetEntry 2 }
        serverSubnetSharedNetworkName

        dhcpv4ServerSubnetSharedNetworkName  OBJECT-TYPE -- /*renamed*/
           SYNTAX      DhcpLabel -- /*modified*/      SnmpAdminString (SIZE(1..100))
           MAX-ACCESS  read-only
           STATUS      current
           DESCRIPTION
              "The shared subnet name (used as an index into the server
              shared subnet table) to which this subnet belongs.  This value
              will be null for servers that do not organize or describe
              networks in this manner."
           ::= { serverSubnetEntry dhcpv4ServerSubnetEntry 3 }

        serverSubnetFreeAddressLowThreshold

        dhcpv4ServerSubnetFreeAddrLowThreshold  OBJECT-TYPE
           SYNTAX      Unsigned32
           MAX-ACCESS  accessible-for-notify
           STATUS      current
           DESCRIPTION
              "The low threshold for available free addresses in this subnet.
              If the value for available free addresses in this subnet
              becomes equal to or less than this value, a
              serverSubnetFreeAddressLowThreshold
              dhcpv4ServerSubnetFreeAddrLowThreshold event is will be generated
              for this shared network.  No more serverSubnetFreeAddressLowThreshold
              dhcpv4ServerSubnetFreeAddrLowThreshold events will be generated
              for this subnet during this execution of the DHCP server until
              the value for available free addresses has exceeded the value
              of
              serverSubnetFreeAddressHighThreshold." dhcpv4ServerSubnetFreeAddrHighThreshold."
           ::= { serverSubnetEntry dhcpv4ServerSubnetEntry 4 }

        serverSharedNetworkFreeAddressHighThreshold

        dhcpv4ServerSubnetFreeAddrHighThreshold  OBJECT-TYPE
           SYNTAX      Unsigned32
           MAX-ACCESS  accessible-for-notify
           STATUS      current
           DESCRIPTION
              "The high threshold for available free addresses in this
              subnet.  If a serverSubnetFreeAddressLowThreshold dhcpv4ServerSubnetFreeAddrLowThreshold event has
              been generated for this subnet, and the value for available
              free addresses has exceeded the value of
              serverSubnetFreeAddressHighThreshold,
              dhcpv4ServerSubnetFreeAddrHighThreshold, then a
              serverFreeAddressessHigh
              dhcpv4ServerFreeAddressHigh event will be generated.  No more
              serverFreeAddressessHigh
              dhcpv4ServerFreeAddressHigh events will be generated for this
              subnet during this execution of the DHCP server until the value
              for available free addresses becomes equal to or less than the
              value of serverSubnetFreeAddressHighThreshold." dhcpv4ServerSubnetFreeAddrHighThreshold."
           ::= { dhcpv4ServerSubnetEntry 5 }

        dhcpv4ServerSubnetFreeAddresses  OBJECT-TYPE
           SYNTAX      Unsigned32
           MAX-ACCESS  accessible-for-notify
           STATUS      current
           DESCRIPTION
              "The number of free IP addresses which are available in this
              subnet."
           ::= { serverSubnetEntry 5 dhcpv4ServerSubnetEntry 6 }

        -- server range table

        serverRangeTable dhcpv4ServerRangeObjects Group

        dhcpv4ServerRangeTable  OBJECT-TYPE
           SYNTAX      SEQUENCE OF serverRangeEntry ServerRangeEntry
           MAX-ACCESS  not-accessible
           STATUS      current
           DESCRIPTION
              "A list of ranges that are configured on this server."
           ::= { serverConfiguration dhcpv4ServerConfiguration 3 }

        serverRangeEntry

        dhcpv4ServerRangeEntry  OBJECT-TYPE
           SYNTAX      ServerRangeEntry
           MAX-ACCESS  not-accessible
           STATUS      current
           INDEX    { serverRangeStart }
           DESCRIPTION
              "A logical row in the serverRangeTable." dhcpv4ServerRangeTable."
           INDEX {
              dhcpv4ServerRangeStartAddress,
              dhcpv4ServerRangeEndAddress
           }
           ::= { serverRangeTable dhcpv4ServerRangeTable 1 }
        ServerRangeEntry ::= SEQUENCE {
           serverRangeStart
           dhcpv4ServerRangeStartAddress       InetAddressIPv4,
           serverRangeEnd
           dhcpv4ServerRangeEndAddress         InetAddressIPv4,
           serverRangeSubnetMask
           dhcpv4ServerRangeSubnetMask         InetAddressPrefixLength,
           serverRangeInUse
           dhcpv4ServerRangeInUse              Gauge32,
           serverRangeOutstandingOffers
           dhcpv4ServerRangeOutstandingOffers  Gauge32
        }

        serverRangeStart

        dhcpv4ServerRangeStartAddress  OBJECT-TYPE
           SYNTAX      InetAddressIPv4
           MAX-ACCESS  read-only  not-accessible
           STATUS      current
           DESCRIPTION
              "The IP address of the first address in the range.  The value
              of range start dhcpv4ServerRangeStartAddress must be less than or equal to
              the value of range
              end." dhcpv4ServerRangeEndAddress."
           ::= { serverRangeEntry dhcpv4ServerRangeEntry 1 }

        serverRangeEnd

        dhcpv4ServerRangeEndAddress  OBJECT-TYPE
           SYNTAX      InetAddressIPv4
           MAX-ACCESS  read-only  not-accessible
           STATUS      current
           DESCRIPTION
              "The IP address of the last address in the range.  The value of
              range end
              dhcpv4ServerRangeEndAddress must be greater than or equal to
              the value of range
              start." dhcpv4ServerRangeStartAddress."
           ::= { serverRangeEntry dhcpv4ServerRangeEntry 2 }

        serverRangeSubnetMask

        dhcpv4ServerRangeSubnetMask  OBJECT-TYPE
           SYNTAX      InetAddressPrefixLength
           MAX-ACCESS  read-only
           STATUS      current
           DESCRIPTION
              "The subnet address mask for this range."
           ::= { serverRangeEntry dhcpv4ServerRangeEntry 3 }
        serverRangeInUse

        dhcpv4ServerRangeInUse  OBJECT-TYPE
           SYNTAX      Gauge32
           MAX-ACCESS  read-only
           STATUS      current
           DESCRIPTION
              "The number of addresses in this range that are currently in
              use.  This number includes those addresses whose lease has not
              expired and addresses which have been reserved (either by the
              server or through configuration)."
           ::= { serverRangeEntry dhcpv4ServerRangeEntry 4 }

        serverRangeOutstandingOffers

        dhcpv4ServerRangeOutstandingOffers  OBJECT-TYPE
           SYNTAX      Gauge32
           MAX-ACCESS  read-only
           STATUS      current
           DESCRIPTION
              "The number of outstanding DHCPOFFER messages for this range is
              reported with this value.  An offer is outstanding if the
              server has sent a DHCPOFFER message to a client, but has not
              yet received a DHCPREQUEST message from the client nor has the
              server-specific timeout (limiting the time in which a client
              can respond to the offer message) for the offer message
              expired."
           ::= { serverRangeEntry dhcpv4ServerRangeEntry 5 }

        -- server address table

        serverAddressTable dhcpv4ServerAddressObjects Group

        dhcpv4ServerAddressTable  OBJECT-TYPE
           SYNTAX      SEQUENCE OF serverAddressEntry Dhcpv4ServerAddressEntry
           MAX-ACCESS  not-accessible
           STATUS      current
           DESCRIPTION
              "An optional list of addresses that are known by this server.
              The list MUST contain addresses that have not expired.  The
              list MUST NOT contain addresses that have never been assigned
              by the server UNLESS the lease is pre-configured in the server
              (e.g., a static lease for a host).  Expired leases MAY appear
              during the time they are 'remembered' by the server for
              subsequent assignment to the same host."
           ::= { serverConfiguration dhcpv4ServerConfiguration 4 }

        serverAddressEntry

        dhcpv4ServerAddressEntry  OBJECT-TYPE
           SYNTAX      ServerAddressEntry      Dhcpv4ServerAddressEntry
           MAX-ACCESS  not-accessible
           STATUS      current
           INDEX       { serverAddress }
           DESCRIPTION
              "A logical row in the serverAddressTable." dhcpv4ServerAddressTable."
           INDEX {
              dhcpv4ServerAddress
           }
           ::= { serverAddressTable dhcpv4ServerAddressTable 1 }

        ServerAddressEntry

        Dhcpv4ServerAddressEntry ::= SEQUENCE {
           serverAddress
           dhcpv4ServerAddress                 InetAddressIPv4,
           serverAddressSubnetMask
           dhcpv4ServerAddressSubnetMask       InetAddressPrefixLength,
           serverAddressRange
           dhcpv4ServerAddressRange            InetAddressIPv4,
           serverAddressType
           dhcpv4ServerAddressLeaseType        INTEGER,
           serverAddressTimeRemaining
           dhcpv4ServerAddressTimeRemaining    Unsigned32,
           serverAddressAllowedProtocol
           dhcpv4ServerAddressAllowedProtocol  INTEGER,
           serverAddressServedProtocol
           dhcpv4ServerAddressServedProtocol   INTEGER,
           serverAddressMacAddress       OCTET STRING,
           serverAddressClientId
           dhcpv4ServerAddressPhysicalAddress  DhcpPhysicalAddress,
           dhcpv4ServerAddressClientId         OCTET STRING,
           serverAddressHostName
           dhcpv4ServerAddressHostName         SnmpAdminString,
           serverAddressDomainName
           dhcpv4ServerAddressDomainName       SnmpAdminString
        }

        serverAddress

        dhcpv4ServerAddress  OBJECT-TYPE
           SYNTAX      InetAddressIPv4
           MAX-ACCESS  not-accessible
           STATUS      current
           DESCRIPTION
              "The IP address of this entry in the entry." dhcpv4ServerAddressTable."
           ::= { serverAddressEntry dhcpv4ServerAddressEntry 1 }

        serverAddressSubnetMask

        dhcpv4ServerAddressSubnetMask  OBJECT-TYPE
           SYNTAX      InetAddressPrefixLength
           MAX-ACCESS  read-only
           STATUS      current
           DESCRIPTION
              "The subnet mask (DHCP option 1) provided to the client offered
              this address.  The subnet, resulting from logically ANDing the
              subnet mask with the entry's IP address, must be configured on
              this server and appear as a row in the dhcpSubnetTable."
           ::= { serverAddressEntry dhcpv4ServerAddressEntry 2 }

        serverAddressRange

        dhcpv4ServerAddressRange  OBJECT-TYPE
           SYNTAX      InetAddressIPv4
           MAX-ACCESS  read-only
           STATUS      current
           DESCRIPTION
              "The starting IP address (serverRangeStart (dhcpv4ServerRangeStartAddress object)
              of the range to which this address belongs.  If the address
              does not fall into one of the configured ranges (e.g., a
              statically configured address on a subnet) the range may be
              0.0.0.0."
           ::= { serverAddressEntry dhcpv4ServerAddressEntry 3 }

        serverAddressType

        dhcpv4ServerAddressLeaseType  OBJECT-TYPE
           SYNTAX      INTEGER {
              static(1),
              dynamic(2),
              expired(3), -- /*new*/
               configuration-reserved(4), -- /*renumbered*/
               server-reserved(5) -- /*renumbered*/
              configurationReserved(4),
              serverReserved(5)
           }
           MAX-ACCESS  read-only
           STATUS      current
           DESCRIPTION
              "The type of this address.  Types are:
                (1) Static addresses defined by the server configuration.
                (2) Dynamic addresses defined by the server configuration
                    AND actually assigned by the server.

                (3) Expired dynamic addresses, previously assigned by the
                    server
                    server, and 'remembered' for subsequent assignment to
                    the same host.
                (4) Addresses reserved (i.e., not assignable) by the server
                    configuration.
                (5) Addresses previously assigned by the server, but
                    temporarily or permanently removed from assignable state
                    for some reason, e.g., the server received an ICMP
                    ECHOREPLY for the IP address or a DHCPDECLINE message
                    has been received for the IP address."
           ::= { serverAddressEntry dhcpv4ServerAddressEntry 4 }

        serverAddressTimeRemaining

        dhcpv4ServerAddressTimeRemaining  OBJECT-TYPE
           SYNTAX      Unsigned32
           MAX-ACCESS  read-only
           STATUS      current
           DESCRIPTION
              "The number of seconds until the lease expires.  A value of
              4294967295 (i.e., 0xFFFFFFFF) should be used for leases that
              have a lease time which is 'infinite' and for BOOTP leases."
           ::= { serverAddressEntry dhcpv4ServerAddressEntry 5 }

        serverAddressAllowedProtocol

        dhcpv4ServerAddressAllowedProtocol  OBJECT-TYPE
           SYNTAX      INTEGER {
              none(1),
              bootp(2),
              dhcp(3),
              bootp-or-dhcp(4)
              bootpOrDhcp(4)
           }
           MAX-ACCESS  read-only
           STATUS      current
           DESCRIPTION
              "The type of protocol that is allowed to be used to serve this
              address.  A type of none (1) indicates that the address is not
              available to be served (e.g., a reserved address).Type address).  Type (2)
              are reserved for BOOTP only devices, while type (3) are
              reserved for DHCP only devices.  A type of bootp-or-dhcp (4)
              may be offered to any type of client."
           ::= { serverAddressEntry dhcpv4ServerAddressEntry 6 }
        serverAddressServedProtocol

        dhcpv4ServerAddressServedProtocol  OBJECT-TYPE
           SYNTAX      INTEGER {
              none(1),
              bootp(2),
              dhcp(3)
           }
           MAX-ACCESS  read-only
           STATUS      current
           DESCRIPTION
              "The type of protocol that was used when this address was
              assigned.  This object will have the value of none (1) if the
              address has not been served."
           ::= { serverAddressEntry dhcpv4ServerAddressEntry 7 }

        serverAddressHardwareAddress

        dhcpv4ServerAddressPhysicalAddress  OBJECT-TYPE
           SYNTAX      PhysicalAddress      DhcpPhysicalAddress
           MAX-ACCESS  read-only
           STATUS      current
           DESCRIPTION
              "The hardware type and hardware address of the client that has
              been assigned this lease.  The first octet of this object
              contains the hardware type from the 'htype' field of the BOOTP
              packet and the remaining octets contain the hardware address
              from the 'chaddr' field of the BOOTP packet.  This object may
              be empty if the address has not been previously served."
           ::= { serverAddressEntry dhcpv4ServerAddressEntry 8 }

        serverAddressClientId

        dhcpv4ServerAddressClientId  OBJECT-TYPE
           SYNTAX      OCTET STRING (SIZE (0..255)) (SIZE(0..255))
           MAX-ACCESS  read-only
           STATUS      current
           DESCRIPTION
              "The client-id of the client that has been assigned this lease.
              The client-id is the value specified in option 61 (client-id
              option) when the lease was assigned.  This object may be empty
              if the lease has not been previously assigned or if the client-
              id option was not specified when the address was assigned."
           ::= { serverAddressEntry dhcpv4ServerAddressEntry 9 }

        serverAddressHostName

        dhcpv4ServerAddressHostName  OBJECT-TYPE
           SYNTAX      SnmpAdminString (SIZE (1..255)) (SIZE(1..255))
           MAX-ACCESS  read-only
           STATUS      current
           DESCRIPTION
              "The host name (DHCP option 12) the client is configured to
              use, or if no host name was configured then the host name that
              the client supplied when requesting an address.  While this
              object has a maximum size of 255 octets, a Fully-Qualified
              Domain Name (FQDN) consisting of a Host Name part and a Domain
              Name part is currently limited to 255 octets.  Therefore, the
              sum of the string lengths for this object and the
              serverAddressDomainName must,
              dhcpv4ServerAddressDomainName must be, in practice, be less than
              256 octets."
           ::= { serverAddressEntry dhcpv4ServerAddressEntry 10 }

        serverAddressDomainName

        dhcpv4ServerAddressDomainName  OBJECT-TYPE
           SYNTAX      SnmpAdminString (SIZE (1..255)) (SIZE(1..255))
           MAX-ACCESS  read-only
           STATUS      current
           DESCRIPTION
              "The domain name (DHCP option 15) assigned to the client.
              While this object has a maximum size of 255 octets, a Fully-
              Qualified Domain Name (FQDN) consisting of a Host Name part and
              a Domain Name part is currently limited to 255 octets, less the
              separator (".") ('.') character.  Therefore, the sum of the string
              lengths for this object and the serverAddressHostName must, dhcpv4ServerAddressHostName
              must be, in practice, be less than 256 octets."
           ::= { serverAddressEntry dhcpv4ServerAddressEntry 11 }

        -- Server Client Table

        serverClientTable dhcpv4ServerClientObjects Group

        dhcpv4ServerClientTable  OBJECT-TYPE
           SYNTAX      SEQUENCE OF serverClientEntry Dhcpv4ServerClientEntry
           MAX-ACCESS  not-accessible
           STATUS      current
           DESCRIPTION
              "A list of clients that are known by this server.  Details
              about the clients may be found by indexing into the
              serverAddressTable
              dhcpv4ServerAddressTable using the serverClientHardwareAddress
              dhcpv4ServerClientHardwareAddress, and
              serverClientAddress
              dhcpv4ServerClientAddress objects.  This table is indexed first
              by the MAC address of the client and then by the subnet address
              on which the client resides.  The subnet is included as an
              index since a MAC address is only guaranteed to be unique
              within a subnet (i.e., a MAC address is not globally unique)."
           ::= { serverConfiguration dhcpv4ServerConfiguration 5 }

        serverClientEntry

        dhcpv4ServerClientEntry  OBJECT-TYPE
           SYNTAX      ServerClientEntry      Dhcpv4ServerClientEntry
           MAX-ACCESS  not-accessible
           STATUS      current
           INDEX    { serverClientHardwareAddress, serverClientAddress }
           DESCRIPTION
              "A logical row in the serverClientTable. dhcpv4ServerClientTable.  An entry in
              this table may be a client that requested an address address, but was
              refused (e.g., not authorized).Servers authorized.)  Servers MAY track these types
              of clients if desired and may choose to remove such client
              entries using a
              server defined server-defined algorithm.  As an example, a
              server may choose to keep client request that does not map to
              an address for a one hour time period before removing that
              entry from this table."
           INDEX {
              dhcpv4ServerClientHardwareAddress,
              dhcpv4ServerClientAddress
           }
           ::= { serverClientTable dhcpv4ServerClientTable 1 }

        ServerClientEntry

        Dhcpv4ServerClientEntry ::= SEQUENCE {
              serverClientHardwareAddress      PhysicalAddress
              serverClientAddress
           dhcpv4ServerClientHardwareAddress   DhcpPhysicalAddress,
           dhcpv4ServerClientAddress           InetAddressIPv4,
              serverClientSubnetMask
           dhcpv4ServerClientSubnetMask        InetAddressPrefixLength,
              serverClientLastRequestTime      DateAndTime,
              serverClientLastRequestType
           dhcpv4ServerClientLastRequestTime   DhcpTimeInterval,
           dhcpv4ServerClientLastRequestType   INTEGER,
              serverClientLastResponseType
           dhcpv4ServerClientLastResponseType  INTEGER
        }

        serverClientHardwareAddress

        dhcpv4ServerClientHardwareAddress  OBJECT-TYPE
           SYNTAX      PhysicalAddress      DhcpPhysicalAddress
           MAX-ACCESS  not-accessible
           STATUS      current
           DESCRIPTION
              "The hardware type and hardware address of the client that has
              been assigned this lease.  The first octet of this object
              contains the hardware type from the 'htype' field of the BOOTP
              packet and the remaining octets contain the hardware address
              from the 'chaddr' field of the BOOTP packet." lease."
           ::= { serverClientEntry dhcpv4ServerClientEntry 1 }

        serverClientAddress

        dhcpv4ServerClientAddress  OBJECT-TYPE
           SYNTAX      InetAddressIPv4
           MAX-ACCESS  read-only  not-accessible
           STATUS      current
           DESCRIPTION
              "The IP address of the entry.  May be entry, used to index into the
              serverAddressTable.
              dhcpv4ServerAddressTable.  May be 0.0.0.0 if an address is not
              associated with this client."
           ::= { serverClientEntry dhcpv4ServerClientEntry 2 }

        serverClientSubnetMask

        dhcpv4ServerClientSubnetMask  OBJECT-TYPE
           SYNTAX      InetAddressPrefixLength
           MAX-ACCESS  not-accessible  read-only
           STATUS      current
           DESCRIPTION
              "The subnet mask (DHCP option 1) applied to
              serverClientAddress."
              dhcpv4ServerClientAddress."
           ::= { serverClientEntry dhcpv4ServerClientEntry 3 }

        serverClientLastRequestTime

        dhcpv4ServerClientLastRequestTime  OBJECT-TYPE
           SYNTAX      DhcpTimeInterval
           MAX-ACCESS  read-only
           STATUS      current
           DESCRIPTION
              "The timestamp of the last request received, to millisecond
              precision if available on the server."
           ::= { serverClientEntry dhcpv4ServerClientEntry 4 }

        serverClientLastRequestType

        dhcpv4ServerClientLastRequestType  OBJECT-TYPE
           SYNTAX      INTEGER {
              bootprequest(0)
              bootprequest(0),
              dhcpdiscover(1),
              dhcprequest(3),
              dhcpdecline(4),
              dhcprelease(7),
              dhcpinform(8)
              dhcpleasequery(TBD),
              dhcpinform(8),
              dhcpleasequery(TBD) -- /*new*/ IANA will assign this value
           }
           MAX-ACCESS  read-only
           STATUS      current
           DESCRIPTION
              "The type of the last request message received for this
              client.If client.
              If the server does not capture this information, the value
              32,767 is returned."
           REFERENCE
              "RFC2131; RFC2132, section 9.6; draft-ietf-dhc-leasequery-
              02.txt."
              04.txt."
           ::= { serverClientEntry dhcpv4ServerClientEntry 5 }

        serverClientLastResponseType

        dhcpv4ServerClientLastResponseType  OBJECT-TYPE
           SYNTAX      INTEGER {
              bootpreply(1),
              dhcpoffer(2),
              dhcpack(5),
              dhcpnak(6)
              dhcpnak(6),
              dhcpforcerenew(9),
              dhcpknown(TBD), -- /*new*/
              dhcpunknown(TBD) value to be assigned by IANA
              dhcpunknown(TBD), -- value to be assigned by IANA
              dhcpactive(TBD), -- value to be assigned by IANA
              dhcpunidentified(TBD) -- /*new*/ value to be assigned by IANA
           }
           MAX-ACCESS  read-only
           STATUS      current
           DESCRIPTION
              "The type of the last response message sent to this client.  If
              the server does not capture this information, the value 32,767
              is returned."
           REFERENCE
              "RFC2131; RFC2132, section 9.6;draft-ietf-dhc-pv4-reconfigure-
              06.txt;draft-ietf-dhc-leasequery-02.txt" 9.6; draft-ietf-dhc-leasequery-
              04.txt"
           ::= { serverClientEntry dhcpv4ServerClientEntry 6 }

        -- serverNotifyObjects: Objects which are used only in notifications

        serverNotifyDuplicateIpAddress dhcpv4ServerNotifyObjects Group

        dhcpv4ServerNotifyDuplicateIpAddr  OBJECT-TYPE
           SYNTAX      InetAddressIPv4
           MAX-ACCESS  accessible-for-notify
           STATUS      current
           DESCRIPTION
              "The IP address found to be a duplicate.  Duplicates are
              detected by servers servers, which issue an ICMP ECHOREQUEST prior to
              offering an IP address lease." lease, or by a client issuing a
              gratuitous ARP message and reported through a DHCPDECLINE
              message."
           ::= { serverNotifyObjects dhcpv4ServerNotifyObjects 1 }

        serverNotifyDuplicateMAC

        dhcpv4ServerNotifyDuplicateMac  OBJECT-TYPE
           SYNTAX      PhysicalAddress      DhcpPhysicalAddress
           MAX-ACCESS  accessible-for-notify
           STATUS      current
           DESCRIPTION
              "The offending MAC address which caused a duplicate IP address
              to be detected, if captured by the server, else 00-00-00-00-00-
              00."
           ::= { serverNotifyObjects 2 dhcpv4ServerNotifyObjects 2 }

        dhcpv4ServerNotifyClientOrServerDetected  OBJECT-TYPE
           SYNTAX      INTEGER {
              client(1),
              server(2)
           }
           MAX-ACCESS  accessible-for-notify
           STATUS      current
           DESCRIPTION
              "Duplicate IP addresses may be detected either by a server,
              using an ICMP ECHO message, or by a client using ARP.  This
              object is set by the server to (1) if the client used
              DHCPDECLINE to mark the offered address as in-use, or to (2) if
              the server discovered the address in use by some client before
              offering it."
           ::= { dhcpv4ServerNotifyObjects 3 }

        dhcpv4ServerNotifyServerStart  OBJECT-TYPE
           SYNTAX      DateAndTime
           MAX-ACCESS  accessible-for-notify
           STATUS      current
           DESCRIPTION
              "The date and time when the server began operation."
           ::= { dhcpv4ServerNotifyObjects 4 }

        serverNotifyClientDuplicateIP

        dhcpv4ServerNotifyServerStop  OBJECT-TYPE -- /*renamed*/
           SYNTAX      InetAddressIPv4      DateAndTime
           MAX-ACCESS  accessible-for-notify
           STATUS      current
           DESCRIPTION
              "The IP Address offered by a server that the requesting client
              has determined to be a duplicate, detected by means of a
              gratuitous ARP message date and reported through a DHCPDECLINE
              message." time when the server ceased operation."
           ::= { serverNotifyObjects 3 dhcpv4ServerNotifyObjects 5 }

        -- Notifications

        serverMIBNotificationPrefix

        dhcpv4ServerNotificationPrefix  OBJECT IDENTIFIER
        ::= { serverMIB dhcpv4Server 2 }serverMIBNotifications }

        dhcpv4ServerNotifications OBJECT IDENTIFIER
        ::= { serverMIBNotificationPrefix dhcpv4ServerNotificationPrefix 0 }

        serverFreeAddressLow

        dhcpv4ServerFreeAddressLow  NOTIFICATION-TYPE
           OBJECTS {
              serverSharedNetworkFreeAddressLowThreshold,
              serverSharedNetworkFreeAddresses
              dhcpv4ServerSharedNetFreeAddrLowThreshold,
              dhcpv4ServerSharedNetFreeAddresses
           }
           STATUS      current
           DESCRIPTION
              "This notification signifies that the number of available IP
              addresses for a particular shared network has fallen below the
              value of serverSharedNetworkFreeAddressLowThreshold dhcpv4ServerSharedNetFreeAddrLowThreshold for that
              shared network."
        ::= { serverMIBNotifications dhcpv4ServerNotifications 1 }

        serverFreeAddressHigh

        dhcpv4ServerFreeAddressHigh  NOTIFICATION-TYPE
           OBJECTS {
              serverSharedNetworkFreeAddressHighThreshold,
              serverSharedNetworkFreeAddresses
              dhcpv4ServerSharedNetFreeAddrHighThreshold,
              dhcpv4ServerSharedNetFreeAddresses
           }
           STATUS      current
           DESCRIPTION
              "This notification signifies that the number of available IP
              addresses for a particular shared network has risen above the
              value of serverSharedNetworkFreeAddressHighThreshold dhcpv4ServerSharedNetFreeAddrHighThreshold for that
              shared network."
        ::= { serverMIBNotifications dhcpv4ServerNotifications 2 }

        serverServerStart

        dhcpv4ServerStartTime  NOTIFICATION-TYPE
           OBJECTS     { serverNotifyClientDuplicateIP dhcpv4ServerNotifyServerStart }
           STATUS      current
           DESCRIPTION
              "This notification signifies that the server of the specified
              type has started on the host from which this notification has
              been sent."
        ::= { serverMIBNotifications dhcpv4ServerNotifications 3 }

        serverServerStop

        dhcpv4ServerStopTime  NOTIFICATION-TYPE
           OBJECTS  { serverNotifyClientDuplicateIP dhcpv4ServerNotifyServerStop }
           STATUS         current
           DESCRIPTION
              "This notification signifies that the server of the specified
              type has stopped normally on the host from which this
              notification has been sent."
        ::= { serverMIBNotifications dhcpv4ServerNotifications 4 }

        serverDuplicateAddress

        dhcpv4ServerDuplicateAddress NOTIFICATION-TYPE
           OBJECTS {
              serverNotifyDuplicateIpAddress,
              serverNotifyDuplicateMAC,
              serverNotifyClientDuplicateMAC
              dhcpv4ServerNotifyDuplicateIpAddr,
              dhcpv4ServerNotifyDuplicateMac,
              dhcpv4ServerNotifyClientOrServerDetected
           }
           STATUS      current
           DESCRIPTION
              "This notification signifies that a duplicate IP address has
              been detected.  The DHCP server can detect this condition
              through the ping-before-offer mechanism.  Alternatively, the
              client may have sent a DHCPDECLINE back to the server; this is
              assumed to be the result of the client detecting that the
              address was in use.  In either case, the DHCP server marks the
              IP address as unavailable for leasing to clients.  The
              serverNotifyClientDuplicateMAC
              dhcpv4ServerNotifyClientOrServerDetected object indicates
              whether the client or server detected this condition."
        ::= { serverMIBNotifications dhcpv4ServerNotifications 5 }

        -- /*renumbered*/

        serverAddressConflict NOTIFICATION-TYPE
           OBJECTS     { serverNotifyClientDuplicateIP }
           STATUS      current
           DESCRIPTION
        ::= { serverMIBNotifications 6 } -- /*renumbered*/

        -- Conformance

        serverMIBConformanceOBJECT-IDENTITY

        dhcpv4ServerConformance  OBJECT-IDENTITY
           STATUS      current
           DESCRIPTION
              "DHCP Server MIB server conformance objects are all defined in this
              branch."
           ::= { serverMIB dhcpv4Server 3 }

        serverMIBCompliancesOBJECT

        dhcpv4ServerCompliances  OBJECT IDENTIFIER
        ::= { serverMIBConformance dhcpv4ServerConformance 1 }

        serverMIBGroupsOBJECT

        dhcpv4ServerGroups  OBJECT IDENTIFIER
        ::= { serverMIBConformance dhcpv4ServerConformance 2 }

        -- Compliance groups

        serverMIBCompliance

        dhcpv4ServerCompliance MODULE-COMPLIANCE
           STATUS      current
           DESCRIPTION
              "This group describes the requirements for conformance to the
              DHCP Server MIB.  A DHCPv4 server implementation is only
              required to support IPv4 addresses.  In particular, this
              comment applies to the following objects with MAX-ACCESS not-
              accessible:
                 dhcpv4ServerSubnet
                 dhcpv4ServerRangeStart
                 dhcpv4ServerRangeEnd
                 dhcpv4ServerAddress
                 dhcpv4ServerClientAddress."
           MODULE -- this module
           MANDATORY-GROUPS {
              serverSystemGroup,
              bootpCountersGroup,
              dhcpCountersGroup,
              serverConfigurationGroup,
              serverClientsGroup
              dhcpv4ServerSystemObjects,
              bootpCounterObjects,
              dhcpv4RecvdPacketCounterObjects,
              dhcpv4SentPacketCounterObjects,
              dhcpv4ErrorPacketCounterObjects,
              dhcpv4ServerSharedNetObjects,
              dhcpv4ServerSubnetObjects,
              dhcpv4ServerRangeObjects,
              dhcpv4ServerAddressObjects,
              dhcpv4ServerClientObjects,
              dhcpv4ServerNotifyObjectsGroup,
              dhcpv4ServerNotificationsGroup
           }
           OPTIONAL-GROUPS {
              bootpOptionalStatisticsGroup,
              dhcpOptionalStatisticsGroup
           }
           STATUS      current
           GROUP    bootpOptionalStatisticObjects
           DESCRIPTION
              "Describes
              "Mandatory only for servers that capture the requirements optional BOOTP
              statistics."

           GROUP    dhcpv4OptionalStatisticObjects
           DESCRIPTION
              "Mandatory only for conformance to servers that capture the DCHP Server
              MIB" optional DHCPv4
              statistics."

        ::= { serverMIBCompliances dhcpv4ServerCompliances 1 }

        -- Object groups

        serverSystemGroup

        dhcpv4ServerSystemObjects OBJECT-GROUP
           OBJECTS {
              serverSystemDescr,
              serverSystemObjectID
              dhcpv4ServerSystemDescr,
              dhcpv4ServerSystemObjectID
           }
           STATUS      current
           DESCRIPTION
              "Objects belonging to the serverSystemGroup." dhcpv4ServerSystemObjects group."
        ::= { serverMIBGroups dhcpv4ServerGroups 1 }

        bootpCountersGroup

        bootpCounterObjects OBJECT-GROUP
           OBJECTS {
              bootpCountRequests,
              bootpCountInvalids,
              bootpCountReplies,
              bootpCountDroppedUnknownClients,
              bootpCountDroppedNotServingSubnet
           }
           STATUS      current
           DESCRIPTION
              "Objects belonging to the bootpBountersGroup." bootpBounterObjects group."
        ::= { serverMIBGroups dhcpv4ServerGroups 2 }

        dhcpCountersGroup

        dhcpv4RecvdPacketCounterObjects  OBJECT-GROUP
           OBJECTS {
              dhcpCountDiscovers,
              dhcpCountRequests,
              dhcpCountReleases,
              dhcpCountDeclines,
              dhcpCountInforms,
              dhcpCountLeaseQueries
              dhcpCountPlaceHolder1
              dhcpCountPlaceHolder2
              dhcpCountOffers,
              dhcpCountAcks,
              dhcpCountNacks,
              dhcpCountForcedRenews
              dhcpCountKnowns
              dhcpCountUnknowns
              dhcpCountActives
              dhcpCountUnimplementeds
              dhcpCountPlaceHolder3
              dhcpCountPlaceHolder4
              dhcpCountInvalids,
              dhcpCountDroppedUnknownClient,
              dhcpCountDroppedNotServingSubnet
              dhcpv4CountDiscovers,
              dhcpv4CountRequests,
              dhcpv4CountReleases,
              dhcpv4CountDeclines,
              dhcpv4CountInforms,
              dhcpv4CountLeaseQueries
           }
           STATUS      current
           DESCRIPTION
              "Objects belonging to the dhcpCountersGroup." dhcpv4RecvdPacketCounterObjects
              group."
        ::= { serverMIBGroups dhcpv4ServerGroups 3 }

        bootpOptionalStatisticsGroup

        dhcpv4SentPacketCounterObjects  OBJECT-GROUP
           OBJECTS {
              dhcpv4CountOffers,
              dhcpv4CountAcks,
              dhcpv4CountNacks,
              dhcpv4CountForcedRenews,
              dhcpv4CountKnowns,
              dhcpv4CountUnknowns,
              dhcpv4CountActives,
              dhcpv4CountUnimplementeds
           }
           STATUS      current
           DESCRIPTION
              "Objects belonging to the dhcpv4SentPacketCounterObjects
              group."
        ::= { dhcpv4ServerGroups 4 }

        dhcpv4ErrorPacketCounterObjects  OBJECT-GROUP
           OBJECTS {
              dhcpv4CountInvalids,
              dhcpv4CountDroppedUnknownClient,
              dhcpv4CountDroppedNotServingSubnet
           }
           STATUS      current
           DESCRIPTION
              "Objects belonging to the dhcpv4ErrorPacketCounterObjects
              group."
        ::= { dhcpv4ServerGroups 5 }

        bootpOptionalStatisticObjects  OBJECT-GROUP
           OBJECTS {
              bootpStatMinArrivalInterval,
              bootpStatMaxArrivalInterval,
              bootpStatLastArrivalTime,
              bootpStatSumSquaresArrivalTime,
              bootpStatMinResponseTime,
              bootpStatMaxResponseTime,
              bootpStatSumReponseTime,
              bootpStatSumResponseTime,
              bootpStatSumSquaresResponseTime
           }
           STATUS      current
           DESCRIPTION
              "Objects belonging to the bootpOptionalStatisticsGroup." bootpOptionalStatisticObjects group."
        ::= { serverMIBGroups 4 dhcpv4ServerGroups 6 }

        dhcpOptionalStatisticsGroup

        dhcpv4OptionalStatisticObjects  OBJECT-GROUP
           OBJECTS {
              dhcpStatMinArrivalInterval,
              dhcpStatMaxArrivalInterval,
              dhcpStatLastArrivalTime,
              dhcpStatSumSquaresArrivalTime,
              dhcpStatMinResponseTime,
              dhcpStatMaxResponseTime,
              dhcpStatSumResponseTime,
              dhcpStatSumSquaresResponseTime
              dhcpv4StatMinArrivalInterval,
              dhcpv4StatMaxArrivalInterval,
              dhcpv4StatLastArrivalTime,
              dhcpv4StatSumSquaresArrivalTime,
              dhcpv4StatMinResponseTime,
              dhcpv4StatMaxResponseTime,
              dhcpv4StatSumResponseTime,
              dhcpv4StatSumSquaresResponseTime
           }
           STATUS      current
           DESCRIPTION
              "Objects belonging to the dhcpOptionalStatisticsGroup." dhcpv4OptionalStatisticObjects
              group."
        ::= { serverMIBGroups 5 dhcpv4ServerGroups 7 }

        serverConfigurationGroup

        dhcpv4ServerSharedNetObjects  OBJECT-GROUP
           OBJECTS {
              serverSubnet,
              serverSubnetMask,
              serverSubnetSharedNetwork,
              serverRangeStart,
              serverRangeEnd,
              serverRangeSubnetMask,
              serverRangeInUse,
              serverRangeOutstandingOffers,
              serverAddress,
              serverAddressSubnetMask,
              serverAddressRange,
              serverAddressType,
              serverAddressTimeRemaining,
              serverAddressAllowedProtocol,
              serverAddressServedProtocol,
              serverAddressHardwareAddress,
              serverAddressClientId,
              serverAddressHostName,
              serverAddressDomainName
              dhcpv4ServerSharedNetFreeAddrLowThreshold,
              dhcpv4ServerSharedNetFreeAddrHighThreshold,
              dhcpv4ServerSharedNetFreeAddresses,
              dhcpv4ServerSharedNetReservedAddresses,
              dhcpv4ServerSharedNetTotalAddresses
           }
           STATUS      current
           DESCRIPTION
              "Objects belonging to the serverConfigurationGroup." dhcpv4ServerSharedNetObjects group."
           ::= { serverMIBGroups 6 dhcpv4ServerGroups 8 }

        serverClientsGroup

        dhcpv4ServerSubnetObjects  OBJECT-GROUP
           OBJECTS {
              serverClientHardwareAddress,
              serverClientSubnetMask,
              serverClientAddress,
              serverClientLastRequestTime,
              serverClientLastRequestType,
              serverClientLastResponseType
              dhcpv4ServerSubnetMask,
              dhcpv4ServerSubnetSharedNetworkName,
              dhcpv4ServerSubnetFreeAddrLowThreshold,
              dhcpv4ServerSubnetFreeAddrHighThreshold,
              dhcpv4ServerSubnetFreeAddresses
           }
           STATUS      current
           DESCRIPTION
              "Objects belonging to the serverClientsGroup." dhcpv4ServerSubnetObjects group."
           ::= { serverMIBGroups 7 dhcpv4ServerGroups 9 }

        serverSharedNetworkObjectsGroup

        dhcpv4ServerRangeObjects  OBJECT-GROUP
           OBJECTS {
              serverSharedNetworkFreeAddressLowThreshold,
              serverSharedNetworkFreeAddressHighThreshold,
              serverSharedNetworkFreeAddressValue
              dhcpv4ServerRangeSubnetMask,
              dhcpv4ServerRangeInUse,
              dhcpv4ServerRangeOutstandingOffers
           }
           STATUS      current
           DESCRIPTION
              "DHCP Server MIB objects used in shared networks."
              "Objects belonging to the dhcpv4ServerRangeObjects group."
           ::= { serverMIBGroups 8 dhcpv4ServerGroups 10 }

        serverNotifyObjectsGroup

        dhcpv4ServerAddressObjects  OBJECT-GROUP
           OBJECTS {
              serverNotifyDuplicateIpAddress,
              serverNotifyDuplicateMAC,
              serverNotifyClientDuplicateMAC,
              serverNotifyClientDuplicateIP,
              serverNotifyContestedIpAddress
              dhcpv4ServerAddressSubnetMask,
              dhcpv4ServerAddressRange,
              dhcpv4ServerAddressLeaseType,
              dhcpv4ServerAddressTimeRemaining,
              dhcpv4ServerAddressAllowedProtocol,
              dhcpv4ServerAddressServedProtocol,
              dhcpv4ServerAddressPhysicalAddress,
              dhcpv4ServerAddressClientId,
              dhcpv4ServerAddressHostName,
              dhcpv4ServerAddressDomainName
           }
           STATUS      current
           DESCRIPTION
              "DHCP Server MIB objects used in notifications."
              "Objects belonging to the dhcpv4ServerAddressObjects group."
           ::= { serverMIBGroups 9 dhcpv4ServerGroups 11 }

        dhcpv4ServerClientObjects  OBJECT-GROUP
           OBJECTS {
              dhcpv4ServerClientSubnetMask,
              dhcpv4ServerClientLastRequestTime,
              dhcpv4ServerClientLastRequestType,
              dhcpv4ServerClientLastResponseType
           }
           STATUS      current
           DESCRIPTION
              "Objects belonging to the dhcpv4ServerClientObjects group."
           ::= { dhcpv4ServerGroups 12 }

        dhcpv4ServerNotifyObjectsGroup  OBJECT-GROUP
           OBJECTS {
              dhcpv4ServerNotifyDuplicateIpAddr,
              dhcpv4ServerNotifyDuplicateMac,
              dhcpv4ServerNotifyClientOrServerDetected,
              dhcpv4ServerNotifyServerStart,
              dhcpv4ServerNotifyServerStop
           }
           STATUS      current
           DESCRIPTION
              "Objects belonging to the dhcpv4ServerNotifyObjects group."
           ::= { dhcpv4ServerGroups 13 }

        serverNotificationsGroup

        dhcpv4ServerNotificationsGroup  NOTIFICATION-GROUP
           NOTIFICATIONS {
              serverFreeAddressLow,
              serverFreeAddressHigh,
              serverServerStart,
              serverServerStop,
              serverDNSQueueTooBig,
              serverOtherServerNotResponding,
              serverDuplicateAddress,
              serverAddressConflict,
              serverOtherServerResponding,
              serverFailoverConfigMismatch
              dhcpv4ServerFreeAddressLow,
              dhcpv4ServerFreeAddressHigh,
              dhcpv4ServerStartTime,
              dhcpv4ServerStopTime,
              dhcpv4ServerDuplicateAddress
           }
           STATUS      current
           DESCRIPTION
              "Notifications that are implemented by belonging to the DHCP Server agent." dhcpv4ServerNotifications
              group."
           ::= { serverMIBGroups 10 dhcpv4ServerGroups 14 }

        END
     5. Intellectual Property

        The IETF takes no position regarding the validity or scope of any
        intellectual property or other rights that might be claimed to
        pertain to the implementation or use of the technology described in
        this document or the extent to which any license under such rights
        might or might not be available; neither does it represent that it
        has made any effort to identify any such rights.  Information on the
        IETF's procedures with respect to rights in standards-track and
        standards-related documentation can be found in BCP-11.

        Copies of claims of rights made available for publication and any
        assurances of licenses to be made available, or the result of an
        attempt made to obtain a general license or permission for the use of
        such proprietary rights by implementers or users of this
        specification can be obtained from the IETF Secretariat.

        The IETF invites any interested party to bring to its attention any
        copyrights, patents or patent applications, or other proprietary
        rights that may cover technology that may be required to practice
        this standard.  Please address the information to the IETF Executive
        Director.

     6. Notes

        This section will be removed when this memo goes to Working Group
        Last Call.

     6.1. Issues

        Not all of these issues have been resolved, even in the latest (-07) (-08)
        draft.  Some may become items for future study, while some will
        probably be dropped.

       o  Are placeholders for expected DHCP option values a good or bad
           idea?

        o Ryan Troll proposed four or five traps that Nathan Lane
          enthusiastically supported, but it has been difficult to achieve
          any consensus (or, for that matter, much interest) in them.

       o What is the best way to reset counters and statistics?  Is it
          necessary to reset them at all?  The -07 -08 draft does not declare any
          counters as read-write or read-create, primarily to avoid these
          questions, as well as to provide fundamental security over objects.

       o -- Do we need to reset them individually, as groups, or as a whole?

       o -- Do we need a timestamp of when they were reset?
       o Should all invalid packets received be collapsed into a single
          counter for each protocol type (BOOTP and DHCP), DHCPv4), or broken out by
          type of error?

       o If counted by error type, what is the set of errors that we should
          use?

       o Perhaps we should develop a common vocabulary (and glossary) for
          terms such as "abandoned" so that the objects defined and
          implementers don't misinterpret their
           descriptions aren't misinterpreted by implementers. descriptions.

       o Do we need to be concerned about the potential size of some of the
          configuration data tables?  Wouldn't it be better to maintain
          counters for things like number of leases assigned than to expect
          the management station to calculate the values by reading very
          large tables to count count the number of leases in that state?

       o The dhcpv4ServerSystemObjects, dhcpv4OptionalStatistics,
          dhcpv4ServerClientObjects, dhcpv4ServerNotifyObjects, and
          dhcpv4ServerNotifications groups may be sufficiently generic that
          they could be renamed, re-specified, and moved from the
          dhcpv4Server subtree to the number of leases dhcp subtree.  This warrants some
          discussion, especially if there is interest in that state? client and relay
          agent MIBs, or in adding extensions to support DHCPv6.

     6.2. Changes from Prior Drafts

        The "-01" revision removed the Server Identity section from the
        proposed MIB, relying on the Application MIB to accomplish the same
        result.

        The "-02" revision changed the min/max (inter-arrival and response
        times) were changed to Unsigned32 so that they could be reset.  Sums of inter-arrival inter-
        arrival and response times were deleted since the management station
        can easily calculate them.  The last arrival time objects were added.

        The "-03" version incorporated the proposed configuration tables
        suggested by Ryan Troll of CMU.  The "01" revision of this version
        added three elements to the server subnet table, number of
        outstanding offers, number of addresses in use, and number of free
        addresses, as well as changing subnet address to subnet mask in the
        server address, server range, and client address tables.  The client
        MAC address element of the client address table was separated into a
        1-octet hardware type and a 16-octet client hardware address, causing
        a renumbering of the elements in this table.  Clarifying text was
        added to several element descriptions, and limitations on values, and
        the reported value when the server did not support the data element
        were also specified.  This version also incorporated an address
        change for one of the authors, revisions to standard text required by
        the IETF, and some editorial clarifications.

        The "-04" version changed the maximum size of the object
        serverAddressHostName
        dhcpv4ServerAddressHostName from 64 to 255 octets, and added
        clarifying text to both that object and to serverAddressDomainName
        dhcpv4ServerAddressDomainName regarding the practical values for the
        length of both objects.

        The "-05" version added a number of traps suggested by Kim Kinnear,
        made a number of small renaming and renumbering changes (annotated in
        the MIB itself) and added the Shared Network concept to describe
        shared network segments: several subnetworks that coexist on one
        medium.  This was done partly because the Address Range concept did
        not adequately describe the "scoping" of address pools as is common
        with many current server implementations.  Also updated the authorĂs author's
        address and contact information, and incorporated a number of
        corrections and amplifications suggested by various readers of the "-
        04" draft, including a missing OID for serverNotifyObjects dhcpv4ServerNotifyObjects and
        a syntax error for PhysicalAddress. DhcpPhysicalAddress.

        The "-06" version corrects a number of flaws reported by Rick Geesen
        and Jin Tao, mostly caused by typographical errors in the "-05"
        version as well as some unintentionally omitted text for
        serverNotifyObjects.
        dhcpv4ServerNotifyObjects.  The "-06" version also changes BOOTP and
        DHCP statistics from mandatory to optional, renaming object
        identifiers as required to match.  All objects, tables, and groups in
        previous drafts for Dynamic DNS updating and Failover have been
        removed.  All tables were carefully examined to be certain that they
        really could be simply implemented.  Many items were renamed or
        renumbered.  Placeholder definitions of message types (both requests
        and responses) were added to support DHCPFORCERENEW, DHCPQUERY,
        DHCPKNOWN, and DHCPUNKNOWN.  A few [more] typographical errors were
        found and fixed.  Finally, some of the boilerplate text was brought
        in line with standard requirements for Internet-Drafts.

        The "-07" version includes a number of small fixes, but is mostly to
        correct a version numbering error.

        The "-08" version fixes a few typographical errors (wrong
        capitalization of object identifiers and table entry values, spacing
        of comments, and misspelled words) in preparation for Working Group
        Last Call.  Many thanks to Rich Woundy for his detailed and extremely
        helpful suggestions on the prior draft.  The standard boilerplate
        (˘The
        ("The SNMP Management Framework÷) Framework") for all new MIBs was added as
        section 2 and the standard references not previously included in
        section 9 were added.  DisplayString objects were recast as
        SnmpAdminString types to be consistent with current practice.  The
        IpAddress type
        DhcpLabel textual convention was replaced by IpAddressIPv4 dropped entirely.  InetAddressIPv4,
        and
        IpAddressPrefixLength InetAddressPrefixLength replaced the IpAddress type as
        appropriate for true addresses Internetaddresses and subnet masks throughout the
        MIB.  Numbering of OIDs was made consistent, and
        place holders dhcpv4Counters was
        subdivided into dhcpv4RecvdPacketCounters, dhcpv4SentPacketCounters,
        and dhcpv4ErrorPacketCounters to eliminate the need for placeholders
        for anticipated new DHCP message type codes were
        explicitly added, codes, eliminating gaps in the
        OID numbering scheme.  Two notification types,
        dhcpv4ServerNotifyServerStart and dhcpv4ServerNotifyServerStop, were
        added.  Compliance and object groups were extensively reworked to
        match other changes to the MIB.  The proposed MIB itself was verified
        by using smilint as required before submittal.  Object names were
        revised to uniformly begin with "dhcpv4" or "bootp" to provide a
        clear visual indication of their purpose.  A few objects were renamed
        slightly to reflect their use, for example, serverServerStart and
        serverServerStop were renamed dhcpv4ServerStartTime and
        dhcpv4ServerStopTime.  All object groups were reorganized to better
        reflect the structure of the MIB.  A few very long names were
        shortened for improved readability.

     7. Acknowledgements

        This document is the result of work undertaken the by DHCP working
        group.  The editors would like to particularly acknowledge the
        development team from Carnegie-Mellon University whose work creating
        a private MIB for their DHCP server inspired the development of this
        proposal.  In particular, many thanks to Ryan Troll who provided a
        great deal of useful feedback during the initial development of this
        MIB.

        Thanks to Nathan Lane, Kim Kinnear, Yannick Koehler, Nathan Lane, Rick Geesen, Jin
        Tao, James Brister, Alan Hackert, and Patrick Cosmo Cosmo, Taeko Saito, and
        Devrapratap Baul for their review, comments, and contributions.
        Special thanks to Rich Woundy for his excellent suggestions that
        contributed to the ű07 --08 draft:  any lingering errors are to be blamed
        solely on me. the editors.

     8. IANA Considerations

        Several specific values for MIB objects require completion before
        this memo can advance to RFC status.  These are:

       o  OID value for "dhcp" ű see MODULE-IDENTITY

       o  Value of DHCPLEASEQUERY for "dhcpv4CountLeaseQueries" and
          "dhcpv4ServerClientLastRequestType" objects

       o  Value of DHCPLEASEKNOWN for "dhcpv4CountKnowns" and
          "dhcpv4ServerClientLastResponseType" objects
       o  Value of DHCPLEASEUNKNOWN for "dhcpv4CountUnknowns" and
          "dhcpv4ServerClientLastResponseType" objects

       o  Value of DHCPLEASEACTIVE for "dhcpv4CountActives" and
          "dhcpv4ServerClientLastResponseType" objects

       o  Value of DHCPUNIMPLEMENTED for "dhcpv4CountUnimplementeds" and
          "dhcpv4ServerClientLastResponseType" objects

     9. Security Considerations

        There are no management objects defined in this MIB that have a MAX-
        ACCESS clause of read-write or read-create.  Such objects may be
        considered sensitive or vulnerable in some environments.  The support
        for SET operations in a non-secure environment without proper
        protection can have a negative effect on network operations.  Many
        network administrators object to settable management objects because
        of the limited security features of SNMPv1 and SNMPv2.  We have
        chosen not to fight that battle in constructing this MIB.  So,
        Therefore, if this MIB is implemented correctly, then there is no risk
        that an intruder can alter or create any management objects of this MIB this
        MIB via direct SNMP SET operations.

        Some of the readable objects in this MIB module (i.e., objects with a
        MAX-ACCESS other than not-accessible) may be considered sensitive or
        vulnerable in some network environments.  It is thus important to
        control even GET and/or NOTIFY access to these objects and possibly
        to even encrypt the values of these objects when sending them over
        the network via
        direct SNMP SET operations.

        -- for all MIBs you must evaluate

        There SNMP.  These are a number of managed the tables and objects in this MIB that may contain
        sensitive information.  These are: and their
        sensitivity/vulnerability:

        o serverRangeTable dhcpv4ServerRangeTable

        o serverAddressTable dhcpv4ServerAddressTable

        These two objects, in conjunction, provide an observer with a current
        view of the available and assigned addresses allocated by this
        server.  Such knowledge can be used to manually configure a host
        computer with a valid IP address for the network managed by the DHCP
        server.  This could be part of either a Theft of Service scheme or a
        Denial of Service attack wherein rogue (pseudo-)hosts simply claim
        and defend IP addresses either to subvert accounting for their use or
        to disrupt the network for legitimate hosts.

        It is thus important to control even GET access to these objects and
        possibly to even encrypt the values of these objects when sending
        them over the network via SNMP.  Not all versions of SNMP provide
        features for such a secure environment.

        SNMPv1 by itself is

        SNMP versions prior to SNMPv3 did not a secure environment. include adequate security.
        Even if the network itself is secure (for example by using IPSec),
        even then, there is no control as to who on the secure network is
        allowed to access and GET/SET (read/change/create/delete) the objects
        in this MIB.

        It is recommended that the implementers consider the security
        features as provided by the SNMPv3 framework.  Specifically, the use
        of framework (see [RFC3410], section
        8), including full support for the User-based Security Model RFC 2574 [RFC2574] SNMPv3 cryptographic mechanisms
        (for authentication and the View-
        based Access Control Model RFC 2575 [RFC2575] privacy).

        Further, deployment of SNMP versions prior to SNMPv3 is NOT
        RECOMMENDED.  Instead, it is recommended. RECOMMENDED to deploy SNMPv3 and to
        enable cryptographic security.  It is then a customer/user customer/operator
        responsibility to ensure that the SNMP entity giving access to an
        instance of this MIB, MIB module is properly configured to give access to
        the objects only to those principals
        (users) that have legitimate rights to indeed GET or SET
        (change/create/delete) them.

        Denial of Service attacks on a DHCP server are conceivable by
        flooding the SNMP (sub-)agent with requests, tying up host system and
        server resources processing SNMP messages.  The authors know of no
        way to wholly prevent such attacks, but have attempted to construct
        relatively simple tables to minimize the work required to respond to
        messages.

     9. References

       [DEN] Directory Enabled Networks Working Group,
          http://www.universe.digex.net/~murchiso/den.

       [RFC1123] R. Braden, "Requirements for Internet Hosts -- Application
          and Support," RFC 1123, October 1989.

       [RFC1155] Rose, M., and K. McCloghrie, "Structure and Identification
          of Management Information for TCP/IP-based Internets", STD 16, RFC
          1155, May 1990.

       [RFC1157] Case, J., Fedor, M., Schoffstall, M., and J. Davin, "Simple
          Network Management Protocol", STD 15, RFC 1157, May 1990.

       [RFC1212] Rose, M., and K. McCloghrie, "Concise MIB Definitions", STD
          16, RFC 1212, March 1991.

       [RFC1215] M. Rose, "A Convention for Defining Traps for use with the
          SNMP", RFC 1215, March 1991.

       [RFC1901] Case, J., McCloghrie, K., Rose, M., and S. Waldbusser,
          "Introduction to Community-based SNMPv2", RFC 1901, January 1996.

       [RFC1905] Case, J., McCloghrie, K., Rose, M., and S. Waldbusser,
          "Protocol Operations for Version 2 principals (users) that have legitimate
        rights to indeed GET or SET (change/create/delete) them.

        Denial of Service attacks on a DHCP server are conceivable by
        flooding the Simple Network Management
          Protocol (SNMPv2)", RFC 1905, January 1996.

       [RFC1906] Case, J., McCloghrie, K., Rose, M., SNMP (sub-)agent with requests, tying up host system and S. Waldbusser,
          "Transport Mappings for Version 2
        server resources processing SNMP messages.  The authors know of no
        way to wholly prevent such attacks, but have attempted to construct
        relatively simple tables to minimize the Simple Network Management
          Protocol (SNMPv2)", RFC 1906, January 1996.

       [RFC2119] Bradner, S., "Key words work required to respond to
        messages.

     10. References

        One normative reference is currently an Internet-Draft, nearly ready
        for use in RFCs Working Group Last Call.  This reference MUST be updated when the
        draft advances to Indicate
          Requirement Levels," RFC 2119, BCP 14, March 1997. status.

     10.1. Normative References

       [RFC2131] Droms, R., "Dynamic Host Configuration Protocol," RFC 2131,
          March 1997.

       [RFC2132] Alexander, S. and Droms, R., "DHCP Options and BOOTP Vendor
          Extensions," RFC 2132, March 1997.

       [RFC2287] Krupczak, C. and Saperia, J., "Definitions of System-Level
          Managed Objects for Applications," RFC 2287, February 1998.

       [RFC2570] Case, J., Mundy, R., Partain, D., and B. Stewart,
          "Introduction to Version 3 of the Internet-standard Network
          Management Framework", RFC 2570, April 1999.

       [RFC2571] Harrington, D., Presuhn, R., and B. Wijnen, "An
          Architecture for Describing SNMP Management Frameworks", RFC 2571,
          April 1999.

       [RFC2572] Case, J., Harrington D., Presuhn R., and B. Wijnen,
          "Message Processing and Dispatching for the Simple Network
          Management Protocol (SNMP)", RFC 2572, April 1999.

       [RFC2573] Levi, D., Meyer, P., and B. Stewart, "SNMPv3 Applications",
          RFC 2573, April 1999.

       [RFC2574] Blumenthal, U., and B. Wijnen, "User-based Security Model
          (USM) for version 3 of the Simple Network Management Protocol
          (SNMPv3)", RFC 2574, April 1999.

       [RFC2575] Wijnen, B., Presuhn, R., and K. McCloghrie, "View-based
          Access Control Model (VACM) for the Simple Network Management
          Protocol (SNMP)", RFC 2575, April 1999.

       [RFC2578] Case, J., McCloghrie, K., Perkins, D., Rose, M.,
          Schoenwaelder, J., and S. Waldbusser, "Structure of Management
          Information for Version 2 of the Simple Network Management Protocol
          (SNMPv2)," RFC 2578, April 1999.

       [RFC2579] Case, J., McCloghrie, K., Rose, M., Schoenwaelder, J., and
          S. Waldbusser, "Textual Conventions for Version 2 of the Simple
          Network Management Protocol (SNMPv2)," RFC 2579, April 1999.

       [RFC2580] Case, J., McCloghrie, K., Rose, M., Schoenwaelder, J., and
          S. Waldbusser, "Conformance Statements for Version 2 of the Simple
          Network Management Protocol (SNMPv2)," RFC 2580, April 1999.

       [RFC3203 ,

       [RFC3203], Yves T'Joens and Christian Hublet, Peter De Schrijver,
          "The DHCP Reconfigure Extension," July 2001

       <draft-ietf-dhc-leasequery-03.txt>

       <draft-ietf-dhc-leasequery-04.txt> Rich Woundy and Kim Kinnear, "DHCP
          Lease Query," March 2002

     10. November 2003.

     10.2. Informative References

       [DEN] Directory Enabled Networks Working Group,
          http://www.universe.digex.net/~murchiso/den.

       [RFC1123] R. Braden, "Requirements for Internet Hosts -- Application
          and Support," RFC 1123, October 1989.

          [RFC3410] Case, J., Mundy, R., Partain, D. and B. Stewart,
          "Introduction and Applicability Statements for Internet-Standard
          Management Framework", RFC 3410, December 2002.

     11. Editors' Addresses

        Richard Barr Hibbs
        952 Sanchez Street
        San Francisco, California 94114-3362
        USA

        Phone:  +1-(415)-648-3920
        Fax:  +1-(415)-648-9017
        Email:  rbhibbs@pacbell.net

        Glenn Waters
        Nortel Networks
        310-875 Carling Avenue,
        Ottawa, Ontario K1S 5P1
        Canada

        Phone:  +1-(613)-798-4925
        Email:  gww@NortelNetworks.com
     11.

     12. Full Copyright Statement

        Copyright (C) (C), 2003, The Internet Society, 2002. Society.  All Rights Reserved.

        This document and translations of it may be copied and furnished to
        others, and derivative works that comment on or otherwise explain it
        or assist in its implementation may be prepared, copied, published
        and distributed, in whole or in part, without restriction of any
        kind, provided that the above copyright notice and this paragraph are
        included on all such copies and derivative works.However, works.  However, this
        document itself may not be modified in any way, such as by removing
        the copyright notice or references to the Internet Society or other
        Internet organizations, except as needed for the purpose of
        developing Internet standards in which case the procedures for
        copyrights defined in the Internet Standards process must be
        followed, or as required to translate it into languages other than
        English.

        The limited permissions granted above are perpetual and will not be
        revoked by the Internet Society or its successors or assigns.

        This document and the information contained herein is provided on an
        "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
        TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
        BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
        HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
        MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.

        Acknowledgement

        Funding for the RFC Editor function is currently provided by the
        Internet Society.