Network Working Group                                      Barr Hibbs
     INTERNET-DRAFT                                       (no affiliation)
     Category:  Standards Track                               Glenn Waters
                                                           Nortel Networks
                                                              October 2003
     
     
          Dynamic Host Configuration Protocol for IPv4 (DHCPv4) Server MIB
     
     
                         <draft-ietf-dhc-server-mib-09.txt>
                     Saved Monday, October 27, 2003, 5:08:01 PM
     
     
     
     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 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), 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 for IPv4
        (DHCPv4) and Bootstrap Protocol (BOOTP) servers.
     
     
     
     
     
     
     Hibbs & Waters       Expires: Oct 2003 + 6 months            [Page 1]


     Internet Draft             DHCP Server MIB              October 2003
     
     Table of Contents
     
        1. Introduction...................................................2
        2. The Internet-Standard Management Framework.....................3
        3. Overview.......................................................3
          3.1. Relationship to Other MIBs.................................4
            3.1.1. DHCP MIB Extensions...................................4
            3.1.2. Host System MIB Extensions............................4
            3.1.3. DHCP Client MIB Extensions............................4
            3.1.4. DHCP Relay Agent MIB Extensions.......................5
            3.1.5. DHCPv6 MIB Extensions.................................5
          3.2. Textual Conventions Introduced in this MIB.................5
            3.2.1. DhcpTimeInterval......................................5
            3.2.2. DhcpPhysicalAddress...................................5
          3.3. BOOTP and DHCP Counter Groups..............................5
          3.4. BOOTP and DHCP Optional Statistics Group...................6
          3.5. Response Times and ICMP Echo...............................8
        4. Definitions....................................................9
        5. Intellectual Property.........................................43
        6. Acknowledgements..............................................43
        7. IANA Considerations...........................................43
        8. Security Considerations.......................................44
        9. References....................................................45
          9.1. Normative References......................................45
          9.2. Informative References....................................46
        10. Editors' Addresses...........................................46
        11. Full Copyright Statement.....................................46
     
     
     
     1. Introduction
     
        This memo 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 DHCPv4 and Bootstrap Protocol
        (BOOTP) servers implement.  Many implementations support both DHCPv4
        and BOOTP within a single server and hence this memo describes the
        MIB for both DHCPv4 and BOOTP servers.
     
        This memo does not cover 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.)
     
     
     
     Hibbs & Waters       Expires: Oct 2003 + 6 months            [Page 2]


     Internet Draft             DHCP Server MIB              October 2003
     
        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 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 [RFC2119].
     
     
     2. The Internet-Standard Management Framework
     
        For a detailed overview of the documents that describe the current
        Internet-Standard Management Framework, please refer to section 7 of
        RFC 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 Structure of Management Information (SMI).
        This memo specifies a MIB module that is compliant to the SMIv2,
        which is described in STD 58, [RFC2578], STD 58, [RFC2579] and STD
        58, [RFC2580].
     
     
     3. Overview
     
        In the tradition of the Simple Network Management Protocol (SNMP),
        the minimum number of objects possible 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.
     
     
     
     
     
     
     
     Hibbs & Waters       Expires: Oct 2003 + 6 months            [Page 3]


     Internet Draft             DHCP Server MIB              October 2003
     
     
     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|
        |Server MIB |  |Client MIB|  |Relay Agent MIB|  |Extensions |
        |(this memo)|  | (future) |  | (future work) |  | (future)  |
        +-----------+  +----------+  +---------------+  +-----------+
     
     
        The DHCP MIBs will share a common branching point but will be
        independently 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. DHCP Client MIB Extensions
     
        Development of this set of MIB extensions is 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, and may use many of the same textual conventions.
     
     
     
     
     
     Hibbs & Waters       Expires: Oct 2003 + 6 months            [Page 4]


     Internet Draft             DHCP Server MIB              October 2003
     
     3.1.4. DHCP 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. 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 very different textual 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, measured in milliseconds.  DhcpTimeInterval is intended
        exclusively for use in various statistics, such as in the subtrees
        "bootpOptionalStatistics" and "dhcpv4OptionalStatistics."
     
     
     3.2.2. DhcpPhysicalAddress
     
        This data type contains the type of hardware address represented by
        MacAddress, as defined for ARP messages.
     
        The length in octets of MacAddress is contained in this type.
     
        The actual layer 1 hardware address is contained in this data type.
     
     
     3.3. BOOTP and DHCP Counter Groups
     
        This 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 "dhcpv4CountDiscovers,"
        "dhcpv4CountRequests," "dhcpv4CountReleases," "dhcpv4CountDeclines,"
     
     Hibbs & Waters       Expires: Oct 2003 + 6 months            [Page 5]


     Internet Draft             DHCP Server MIB              October 2003
     
        "dhcpv4CountInforms," and "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" object.  The total number of packets received is
        computed as the total number of valid packets plus the sum of
        "bootpCountInvalids" and "dhcpv4CountInvalids."
     
        Similar to the received computations, the total number of DHCP
        packets sent by the server is computed as the sum of the
        "dhcpv4CountOffers," "dhcpv4CountAcks," and "dhcpv4CountNaks"
        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" 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 (dhcpv4StatLastArrivalTime at t2 minus
        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
        (dhcpv4StatSumSquaresArrivalTime at t2 less
        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
        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
     
     Hibbs & Waters       Expires: Oct 2003 + 6 months            [Page 6]


     Internet Draft             DHCP Server MIB              October 2003
     
        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
        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 dhcpv4ServerRangeTable lists the start and end IP addresses of
        the ranges and the subnet of which the range is a member.  The
        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 "dhcpv4ServerRangeStartAddress" and "dhcpv4ServerRangeEndAddress"
        objects.
     
        The 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
            that have been declined (i.e., through a DHCPDECLINE) by a
            client or those that have responded to an ICMP echo before they
            were assigned.
     
     
     Hibbs & Waters       Expires: Oct 2003 + 6 months            [Page 7]


     Internet Draft             DHCP Server MIB              October 2003
     
        The protocol used to allocate the address may be determined from the
        "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.
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     Hibbs & Waters       Expires: Oct 2003 + 6 months            [Page 8]


     Internet Draft             DHCP Server MIB              October 2003
     
     
     4. Definitions
     
     
        DHCP-SERVER-MIB DEFINITIONS ::= BEGIN
     
        IMPORTS
           Counter64, Counter32, Gauge32, Unsigned32, MODULE-IDENTITY,
           OBJECT-TYPE, OBJECT-IDENTITY, NOTIFICATION-TYPE, mib-2
              FROM SNMPv2-SMI
     
           TEXTUAL-CONVENTION, DateAndTime FROM SNMPv2-TC
     
           SnmpAdminString FROM SNMP-FRAMEWORK-MIB
     
           InetAddressIPv4, InetAddressPrefixLength
           FROM INET-ADDRESS-MIB
     
           MODULE-COMPLIANCE, OBJECT-GROUP, NOTIFICATION-GROUP
           FROM SNMPv2-CONF;
     
     
        dhcp  MODULE-IDENTITY
           LAST-UPDATED   "200310271708Z"
           ORGANIZATION
              "IETF DHC Working 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"
           CONTACT-INFO
              "         Richard Barr Hibbs
              Postal:  952 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"
           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
     
     Hibbs & Waters       Expires: Oct 2003 + 6 months            [Page 9]


     Internet Draft             DHCP Server MIB              October 2003
     
              4(IPv4).  This MIB does not include support for Dynamic DNS
              (DDNS) updating nor for the DHCP Failover 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 "200310271708Z" -- 27 October 2003
           DESCRIPTION "Initial Version, published as RFC xxxx."
              -- RFC Editor assigns xxxx and removes this comment
           ::= { mib-2 TBD } -- IANA will make official assignment
     
     
        -- Textual conventions defined by this memo
     
        DhcpTimeInterval ::= TEXTUAL-CONVENTION
           STATUS      current
           DESCRIPTION
              "The number of milliseconds that has elapsed since some epoch.
              Systems that cannot measure events to the millisecond
              resolution SHOULD round this value to the next available
              resolution that the system supports."
           SYNTAX      Unsigned32
     
        DhcpPhysicalAddress ::= TEXTUAL-CONVENTION
           DISPLAY-HINT   "1d,1d,1x:"
           STATUS         current
           DESCRIPTION
              "A DHCP-specific encoding of the physical address type and
              physical address, intended to mirror the representation of
              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
     
     Hibbs & Waters       Expires: Oct 2003 + 6 months           [Page 10]


     Internet Draft             DHCP Server MIB              October 2003
     
           -- 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."
        ::= { dhcpv4ServerObjects 4 }
     
        dhcpv4OptionalStatistics  OBJECT-IDENTITY
           STATUS      current
           DESCRIPTION
     
     Hibbs & Waters       Expires: Oct 2003 + 6 months           [Page 11]


     Internet Draft             DHCP Server MIB              October 2003
     
              "Group of objects that measure various DHCPv4 statistics."
        ::= { dhcpv4ServerObjects 5 }
     
        dhcpv4ServerConfiguration  OBJECT-IDENTITY
           STATUS      current
           DESCRIPTION
              "Objects that contain pre-configured and dynamic configuration
              information."
        ::= { dhcpv4ServerObjects 6 }
     
        dhcpv4ServerNotifyObjects  OBJECT-IDENTITY
           STATUS      current
           DESCRIPTION
              "Objects that are used only in notifications."
           ::= { dhcpv4ServerObjects 7 }
     
     
        -- dhcpv4ServerSystemObjects Group
     
        dhcpv4ServerSystemDescr  OBJECT-TYPE
           SYNTAX      SnmpAdminString (SIZE(0..255))
           MAX-ACCESS  read-only
           STATUS      current
           DESCRIPTION
              "A textual description of the server.  This value should
              include the full name and version identification of the
              server."
           ::= { dhcpv4ServerSystem 1 }
     
        dhcpv4ServerSystemObjectID  OBJECT-TYPE
           SYNTAX      OBJECT IDENTIFIER
           MAX-ACCESS  read-only
           STATUS      current
           DESCRIPTION
              "The vendor's authoritative identification of the network
              management subsystem contained in this entity.  This value is
              allocated within the SMI enterprise subtree (1.3.6.1.4.1) and
              provides an easy and unambiguous means for determining what
              kind of server is being managed.  For example, if vendor Ohso
              Soft, 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 Ursa DHCP
              Server."
           ::= { dhcpv4ServerSystem 2 }
     
     
        -- bootpCounterObjects Group
     
        bootpCountRequests  OBJECT-TYPE
           SYNTAX      Counter32
           MAX-ACCESS  read-only
     
     Hibbs & Waters       Expires: Oct 2003 + 6 months           [Page 12]


     Internet Draft             DHCP Server MIB              October 2003
     
           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-2131."
           ::= { bootpCounters 1 }
     
        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 }
     
        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-2131."
           ::= { bootpCounters 3 }
     
        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 }
     
        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."
     
     Hibbs & Waters       Expires: Oct 2003 + 6 months           [Page 13]


     Internet Draft             DHCP Server MIB              October 2003
     
           ::= { 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 valid sent DHCP message packets."
           ::= { 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 }
     
     
        -- dhcpv4RecvdPacketCounterObjects Group
     
        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."
           ::= { dhcpv4RecvdPacketCounters 1 }
     
        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."
           ::= { dhcpv4RecvdPacketCounters 2 }
     
        dhcpv4CountReleases  OBJECT-TYPE
     
     Hibbs & Waters       Expires: Oct 2003 + 6 months           [Page 14]


     Internet Draft             DHCP Server MIB              October 2003
     
           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."
           ::= { dhcpv4RecvdPacketCounters 3 }
     
        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."
           ::= { dhcpv4RecvdPacketCounters 4 }
     
        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."
           ::= { dhcpv4RecvdPacketCounters 5 }
     
     
        -- 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."
           ::= { dhcpv4SentPacketCounters 1 }
     
        dhcpv4CountAcks  OBJECT-TYPE
           SYNTAX      Counter32
           MAX-ACCESS  read-only
           STATUS      current
     
     Hibbs & Waters       Expires: Oct 2003 + 6 months           [Page 15]


     Internet Draft             DHCP Server MIB              October 2003
     
           DESCRIPTION
              "The number of DHCPACK (option 53 with value 5) packets sent."
           REFERENCE
              "RFC2131; RFC2132, section 9.6."
        ::= { dhcpv4SentPacketCounters 2 }
     
        dhcpv4CountNaks  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."
           ::= { dhcpv4SentPacketCounters 3 }
     
        dhcpv4CountForcedRenews  OBJECT-TYPE
           SYNTAX      Counter32
           MAX-ACCESS  read-only
           STATUS      current
           DESCRIPTION
              "The number of DHCPFORCERENEW (option 53 with value 9) packets
              sent."
           REFERENCE
              " RFC 3203, DHCP reconfigure extension."
           ::= { dhcpv4SentPacketCounters 4 }
     
     
        -- 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."
           ::= { dhcpv4ErrorPacketCounters 1 }
     
        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."
           ::= { dhcpv4ErrorPacketCounters 2 }
     
     
     Hibbs & Waters       Expires: Oct 2003 + 6 months           [Page 16]


     Internet Draft             DHCP Server MIB              October 2003
     
        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."
           ::= { dhcpv4ErrorPacketCounters 3 }
     
     
        -- bootpOptionalStatisticObjects group
     
        bootpStatMinArrivalInterval  OBJECT-TYPE
           SYNTAX      DhcpTimeInterval
           MAX-ACCESS  read-only
           STATUS      current
           DESCRIPTION
              "The minimum amount of time between receiving two 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."
           ::= { bootpOptionalStatistics 1 }
     
        bootpStatMaxArrivalInterval  OBJECT-TYPE
           SYNTAX      DhcpTimeInterval
           MAX-ACCESS  read-only
           STATUS      current
           DESCRIPTION
              "The maximum amount of time between receiving two 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."
           ::= { bootpOptionalStatistics 2 }
     
        bootpStatLastArrivalTime   OBJECT-TYPE
           SYNTAX      DateAndTime
           MAX-ACCESS  read-only
           STATUS      current
           DESCRIPTION
              "The date and time that the last valid BOOTP message was
              received by the server.  Invalid messages do not cause this
              value to change.  If valid no messages have been received, then
              this object contains a date and time that is all zero."
           ::= { bootpOptionalStatistics 3 }
     
     
     Hibbs & Waters       Expires: Oct 2003 + 6 months           [Page 17]


     Internet Draft             DHCP Server MIB              October 2003
     
        bootpStatSumSquaresArrivalTime  OBJECT-TYPE
           SYNTAX      Counter64
           MAX-ACCESS  read-only
           STATUS      current
           DESCRIPTION
              "The sum of the squared BOOTP packet inter-arrival times in
              microseconds.  This value may be used to compute the variance
              and standard deviation of the 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."
           ::= { bootpOptionalStatistics 4 }
     
        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 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."
           ::= { bootpOptionalStatistics 5 }
     
        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 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."
           ::= { bootpOptionalStatistics 6 }
     
     Hibbs & Waters       Expires: Oct 2003 + 6 months           [Page 18]


     Internet Draft             DHCP Server MIB              October 2003
     
     
        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 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."
           ::= { bootpOptionalStatistics 7 }
     
        bootpStatSumSquaresResponseTime  OBJECT-TYPE
           SYNTAX      Counter64
           MAX-ACCESS  read-only
           STATUS      current
           DESCRIPTION
              "The sum of the squared BOOTP packet response times in micro-
              seconds.  This value may be used to compute the variance and
              standard deviation of the 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."
           ::= { bootpOptionalStatistics 8 }
     
     
        -- dhcpv4OptionalStatisticObjects group
     
        dhcpv4StatMinArrivalInterval  OBJECT-TYPE
           SYNTAX      DhcpTimeInterval
           MAX-ACCESS  read-only
           STATUS      current
           DESCRIPTION
              "The minimum amount of time between receiving two 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."
           ::= { dhcpv4OptionalStatistics 1 }
     
     
     Hibbs & Waters       Expires: Oct 2003 + 6 months           [Page 19]


     Internet Draft             DHCP Server MIB              October 2003
     
        dhcpv4StatMaxArrivalInterval  OBJECT-TYPE
           SYNTAX      DhcpTimeInterval
           MAX-ACCESS  read-only
           STATUS      current
           DESCRIPTION
              "The maximum amount of time between receiving two 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."
           ::= { dhcpv4OptionalStatistics 2 }
     
        dhcpv4StatLastArrivalTime  OBJECT-TYPE
           SYNTAX      DateAndTime
           MAX-ACCESS  read-only
           STATUS      current
           DESCRIPTION
              "The date and time that the last valid DHCPv4 message was
              received by the server.  Invalid messages do not cause this
              value to change.  If no valid messages have been received, then
              this object contains a date and time that is all zero."
           ::= { dhcpv4OptionalStatistics 3 }
     
        dhcpv4StatSumSquaresArrivalTime  OBJECT-TYPE
           SYNTAX      Counter64
           MAX-ACCESS  read-only
           STATUS      current
           DESCRIPTION
              "The sum of the squared DHCPv4 packet inter-arrival times in
              microseconds.  This value may be used to compute the variance
              and standard deviation of the 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."
           ::= { dhcpv4OptionalStatistics 4 }
     
        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 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
     
     Hibbs & Waters       Expires: Oct 2003 + 6 months           [Page 20]


     Internet Draft             DHCP Server MIB              October 2003
     
              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."
           ::= { dhcpv4OptionalStatistics 5 }
     
        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 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."
           ::= { dhcpv4OptionalStatistics 6 }
     
        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 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."
           ::= { dhcpv4OptionalStatistics 7 }
     
        dhcpv4StatSumSquaresResponseTime  OBJECT-TYPE
           SYNTAX      Counter64
           MAX-ACCESS  read-only
           STATUS      current
           DESCRIPTION
              "The sum of the squared DHCPv4 packet response times in micro-
              seconds.  This value may be used to compute the variance and
              standard deviation of the DHCPv4 response times.  Note that a
     
     Hibbs & Waters       Expires: Oct 2003 + 6 months           [Page 21]


     Internet Draft             DHCP Server MIB              October 2003
     
              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."
           ::= { dhcpv4OptionalStatistics 8 }
     
     
        -- DHCP Server Configuration
     
        -- dhcpv4ServerSharedNetObjects Group
     
        dhcpv4ServerSharedNetTable  OBJECT-TYPE
           SYNTAX      SEQUENCE OF 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' network) exists above ranges and subnets."
           ::= { dhcpv4ServerConfiguration 1 }
     
        dhcpv4ServerSharedNetEntry  OBJECT-TYPE
           SYNTAX      Dhcpv4ServerSharedNetEntry
           MAX-ACCESS  not-accessible
           STATUS      current
           DESCRIPTION
              "A logical row in the dhcpv4ServerSharedNetTable."
           INDEX {
              dhcpv4ServerSharedNetName
           }
           ::= { dhcpv4ServerSharedNetTable 1}
     
        Dhcpv4ServerSharedNetEntry ::= SEQUENCE {
           dhcpv4ServerSharedNetName                    SnmpAdminString,
           dhcpv4ServerSharedNetFreeAddrLowThreshold    Unsigned32,
           dhcpv4ServerSharedNetFreeAddrHighThreshold   Unsigned32,
           dhcpv4ServerSharedNetFreeAddresses           Unsigned32,
           dhcpv4ServerSharedNetReservedAddresses       Unsigned32,
           dhcpv4ServerSharedNetTotalAddresses          Unsigned32
        }
     
        dhcpv4ServerSharedNetName  OBJECT-TYPE
           SYNTAX      SnmpAdminString (SIZE(1..100))
           MAX-ACCESS  not-accessible
           STATUS      current
           DESCRIPTION
     
     
     Hibbs & Waters       Expires: Oct 2003 + 6 months           [Page 22]


     Internet Draft             DHCP Server MIB              October 2003
     
              "The name of the shared network, which uniquely identifies an
              entry in the dhcpv4ServerSharedNetTable."
           ::= { dhcpv4ServerSharedNetEntry 1 }
     
        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 dhcpv4ServerSubnetFreeAddrLowThreshold."
           ::= { dhcpv4ServerSharedNetEntry 3 }
     
        dhcpv4ServerSharedNetFreeAddresses  OBJECT-TYPE
           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."
           ::= { dhcpv4ServerSharedNetEntry 4 }
     
        dhcpv4ServerSharedNetReservedAddresses  OBJECT-TYPE
           SYNTAX      Unsigned32
           MAX-ACCESS  accessible-for-notify
           STATUS      current
     
     Hibbs & Waters       Expires: Oct 2003 + 6 months           [Page 23]


     Internet Draft             DHCP Server MIB              October 2003
     
           DESCRIPTION
              "The number of IP addresses which are reserved (not available
              for assignment) within this shared network.  If the server does
              not count reserved addresses by shared network segment, this
              value will be zero."
           ::= { dhcpv4ServerSharedNetEntry 5 }
     
        dhcpv4ServerSharedNetTotalAddresses  OBJECT-TYPE
           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."
           ::= { dhcpv4ServerSharedNetEntry 6 }
     
     
        -- dhcpv4ServerSubnetObjects Group
     
        dhcpv4ServerSubnetTable  OBJECT-TYPE
           SYNTAX      SEQUENCE OF Dhcpv4ServerSubnetEntry
           MAX-ACCESS  not-accessible
           STATUS      current
           DESCRIPTION
              "A list of subnets that are configured in this server."
           ::= { dhcpv4ServerConfiguration 2 }
     
        dhcpv4ServerSubnetEntry  OBJECT-TYPE
           SYNTAX      Dhcpv4ServerSubnetEntry
           MAX-ACCESS  not-accessible
           STATUS      current
           DESCRIPTION
              "A logical row in the dhcpv4ServerSubnetTable."
           INDEX {
              dhcpv4ServerSubnetAddress
           }
           ::= { dhcpv4ServerSubnetTable 1 }
     
        Dhcpv4ServerSubnetEntry ::= SEQUENCE {
           dhcpv4ServerSubnetAddress                 InetAddressIPv4,
           dhcpv4ServerSubnetMask                    InetAddressPrefixLength,
           dhcpv4ServerSubnetSharedNetworkName       SnmpAdminString,
           dhcpv4ServerSubnetFreeAddrLowThreshold    Unsigned32,
           dhcpv4ServerSubnetFreeAddrHighThreshold   Unsigned32,
           dhcpv4ServerSubnetFreeAddresses           Unsigned32
        }
     
        dhcpv4ServerSubnetAddress  OBJECT-TYPE
           SYNTAX      InetAddressIPv4
     
     Hibbs & Waters       Expires: Oct 2003 + 6 months           [Page 24]


     Internet Draft             DHCP Server MIB              October 2003
     
           MAX-ACCESS  not-accessible
           STATUS      current
           DESCRIPTION
              "The IP address of the subnet entry in the
              dhcpv4ServerSubnetTable."
           ::= { dhcpv4ServerSubnetEntry 1 }
     
        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."
           ::= { dhcpv4ServerSubnetEntry 2 }
     
        dhcpv4ServerSubnetSharedNetworkName  OBJECT-TYPE
           SYNTAX      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."
           ::= { dhcpv4ServerSubnetEntry 3 }
     
        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
              dhcpv4ServerSubnetFreeAddrLowThreshold event will be generated
              for this shared network.  No more
              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 dhcpv4ServerSubnetFreeAddrHighThreshold."
           ::= { dhcpv4ServerSubnetEntry 4 }
     
        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 dhcpv4ServerSubnetFreeAddrLowThreshold event has
     
     Hibbs & Waters       Expires: Oct 2003 + 6 months           [Page 25]


     Internet Draft             DHCP Server MIB              October 2003
     
              been 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 dhcpv4ServerSubnetFreeAddrLowThreshold."
           ::= { 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."
           ::= { dhcpv4ServerSubnetEntry 6 }
     
     
        -- dhcpv4ServerRangeObjects Group
     
        dhcpv4ServerRangeTable  OBJECT-TYPE
           SYNTAX      SEQUENCE OF ServerRangeEntry
           MAX-ACCESS  not-accessible
           STATUS      current
           DESCRIPTION
              "A list of ranges that are configured on this server."
           ::= { dhcpv4ServerConfiguration 3 }
     
        dhcpv4ServerRangeEntry  OBJECT-TYPE
           SYNTAX      ServerRangeEntry
           MAX-ACCESS  not-accessible
           STATUS      current
           DESCRIPTION
              "A logical row in the dhcpv4ServerRangeTable."
           INDEX {
              dhcpv4ServerRangeStartAddress,
              dhcpv4ServerRangeEndAddress
           }
           ::= { dhcpv4ServerRangeTable 1 }
     
        ServerRangeEntry ::= SEQUENCE {
           dhcpv4ServerRangeStartAddress       InetAddressIPv4,
           dhcpv4ServerRangeEndAddress         InetAddressIPv4,
           dhcpv4ServerRangeSubnetMask         InetAddressPrefixLength,
           dhcpv4ServerRangeInUse              Gauge32,
           dhcpv4ServerRangeOutstandingOffers  Gauge32
        }
     
     
     Hibbs & Waters       Expires: Oct 2003 + 6 months           [Page 26]


     Internet Draft             DHCP Server MIB              October 2003
     
        dhcpv4ServerRangeStartAddress  OBJECT-TYPE
           SYNTAX      InetAddressIPv4
           MAX-ACCESS  not-accessible
           STATUS      current
           DESCRIPTION
              "The IP address of the first address in the range.  The value
              of dhcpv4ServerRangeStartAddress must be less than or equal to
              the value of dhcpv4ServerRangeEndAddress."
           ::= { dhcpv4ServerRangeEntry 1 }
     
        dhcpv4ServerRangeEndAddress  OBJECT-TYPE
           SYNTAX      InetAddressIPv4
           MAX-ACCESS  not-accessible
           STATUS      current
           DESCRIPTION
              "The IP address of the last address in the range.  The value of
              dhcpv4ServerRangeEndAddress must be greater than or equal to
              the value of dhcpv4ServerRangeStartAddress."
           ::= { dhcpv4ServerRangeEntry 2 }
     
        dhcpv4ServerRangeSubnetMask  OBJECT-TYPE
           SYNTAX      InetAddressPrefixLength
           MAX-ACCESS  read-only
           STATUS      current
           DESCRIPTION
              "The subnet address mask for this range."
           ::= { dhcpv4ServerRangeEntry 3 }
     
        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)."
           ::= { dhcpv4ServerRangeEntry 4 }
     
        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
     
     
     Hibbs & Waters       Expires: Oct 2003 + 6 months           [Page 27]


     Internet Draft             DHCP Server MIB              October 2003
     
              can respond to the offer message) for the offer message
              expired."
           ::= { dhcpv4ServerRangeEntry 5 }
     
     
        -- dhcpv4ServerAddressObjects Group
     
        dhcpv4ServerAddressTable  OBJECT-TYPE
           SYNTAX      SEQUENCE OF 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."
           ::= { dhcpv4ServerConfiguration 4 }
     
        dhcpv4ServerAddressEntry  OBJECT-TYPE
           SYNTAX      Dhcpv4ServerAddressEntry
           MAX-ACCESS  not-accessible
           STATUS      current
           DESCRIPTION
              "A logical row in the dhcpv4ServerAddressTable."
           INDEX {
              dhcpv4ServerAddress
           }
           ::= { dhcpv4ServerAddressTable 1 }
     
        Dhcpv4ServerAddressEntry ::= SEQUENCE {
           dhcpv4ServerAddress                 InetAddressIPv4,
           dhcpv4ServerAddressSubnetMask       InetAddressPrefixLength,
           dhcpv4ServerAddressRange            InetAddressIPv4,
           dhcpv4ServerAddressLeaseType        INTEGER,
           dhcpv4ServerAddressTimeRemaining    Unsigned32,
           dhcpv4ServerAddressAllowedProtocol  INTEGER,
           dhcpv4ServerAddressServedProtocol   INTEGER,
           dhcpv4ServerAddressPhysicalAddress  DhcpPhysicalAddress,
           dhcpv4ServerAddressClientId         OCTET STRING,
           dhcpv4ServerAddressHostName         SnmpAdminString,
           dhcpv4ServerAddressDomainName       SnmpAdminString
        }
     
        dhcpv4ServerAddress  OBJECT-TYPE
           SYNTAX      InetAddressIPv4
           MAX-ACCESS  not-accessible
           STATUS      current
     
     Hibbs & Waters       Expires: Oct 2003 + 6 months           [Page 28]


     Internet Draft             DHCP Server MIB              October 2003
     
           DESCRIPTION
              "The IP address of this entry in the dhcpv4ServerAddressTable."
           ::= { dhcpv4ServerAddressEntry 1 }
     
        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."
           ::= { dhcpv4ServerAddressEntry 2 }
     
        dhcpv4ServerAddressRange  OBJECT-TYPE
           SYNTAX      InetAddressIPv4
           MAX-ACCESS  read-only
           STATUS      current
           DESCRIPTION
              "The starting IP address (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."
           ::= { dhcpv4ServerAddressEntry 3 }
     
        dhcpv4ServerAddressLeaseType  OBJECT-TYPE
           SYNTAX      INTEGER {
              static(1),
              dynamic(2),
              expired(3),
              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, 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
     
     Hibbs & Waters       Expires: Oct 2003 + 6 months           [Page 29]


     Internet Draft             DHCP Server MIB              October 2003
     
                    ECHOREPLY for the IP address or a DHCPDECLINE message
                    has been received for the IP address."
           ::= { dhcpv4ServerAddressEntry 4 }
     
        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."
           ::= { dhcpv4ServerAddressEntry 5 }
     
        dhcpv4ServerAddressAllowedProtocol  OBJECT-TYPE
           SYNTAX      INTEGER {
              none(1),
              bootp(2),
              dhcp(3),
              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 (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."
           ::= { dhcpv4ServerAddressEntry 6 }
     
        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."
           ::= { dhcpv4ServerAddressEntry 7 }
     
        dhcpv4ServerAddressPhysicalAddress  OBJECT-TYPE
           SYNTAX      DhcpPhysicalAddress
           MAX-ACCESS  read-only
           STATUS      current
     
     Hibbs & Waters       Expires: Oct 2003 + 6 months           [Page 30]


     Internet Draft             DHCP Server MIB              October 2003
     
           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."
           ::= { dhcpv4ServerAddressEntry 8 }
     
        dhcpv4ServerAddressClientId  OBJECT-TYPE
           SYNTAX      OCTET STRING (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."
           ::= { dhcpv4ServerAddressEntry 9 }
     
        dhcpv4ServerAddressHostName  OBJECT-TYPE
           SYNTAX      SnmpAdminString (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
              dhcpv4ServerAddressDomainName must be, in practice, less than
              256 octets."
           ::= { dhcpv4ServerAddressEntry 10 }
     
        dhcpv4ServerAddressDomainName  OBJECT-TYPE
           SYNTAX      SnmpAdminString (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 dhcpv4ServerAddressHostName
              must be, in practice, less than 256 octets."
           ::= { dhcpv4ServerAddressEntry 11 }
     
     Hibbs & Waters       Expires: Oct 2003 + 6 months           [Page 31]


     Internet Draft             DHCP Server MIB              October 2003
     
     
     
        -- dhcpv4ServerClientObjects Group
     
        dhcpv4ServerClientTable  OBJECT-TYPE
           SYNTAX      SEQUENCE OF 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
              dhcpv4ServerAddressTable using the
              dhcpv4ServerClientHardwareAddress, and
              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)."
           ::= { dhcpv4ServerConfiguration 5 }
     
        dhcpv4ServerClientEntry  OBJECT-TYPE
           SYNTAX      Dhcpv4ServerClientEntry
           MAX-ACCESS  not-accessible
           STATUS      current
           DESCRIPTION
              "A logical row in the dhcpv4ServerClientTable.  An entry in
              this table may be a client that requested an address, but was
              refused (e.g., not authorized.)  Servers MAY track these types
              of clients if desired and may choose to remove such client
              entries using a 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
           }
           ::= { dhcpv4ServerClientTable 1 }
     
        Dhcpv4ServerClientEntry ::= SEQUENCE {
           dhcpv4ServerClientHardwareAddress   DhcpPhysicalAddress,
           dhcpv4ServerClientAddress           InetAddressIPv4,
           dhcpv4ServerClientSubnetMask        InetAddressPrefixLength,
           dhcpv4ServerClientLastRequestTime   DhcpTimeInterval,
           dhcpv4ServerClientLastRequestType   INTEGER,
           dhcpv4ServerClientLastResponseType  INTEGER
        }
     
        dhcpv4ServerClientHardwareAddress  OBJECT-TYPE
           SYNTAX      DhcpPhysicalAddress
     
     Hibbs & Waters       Expires: Oct 2003 + 6 months           [Page 32]


     Internet Draft             DHCP Server MIB              October 2003
     
           MAX-ACCESS  not-accessible
           STATUS      current
           DESCRIPTION
              "The hardware type and hardware address of the client that has
              been assigned this lease."
           ::= { dhcpv4ServerClientEntry 1 }
     
        dhcpv4ServerClientAddress  OBJECT-TYPE
           SYNTAX      InetAddressIPv4
           MAX-ACCESS  not-accessible
           STATUS      current
           DESCRIPTION
              "The IP address of the entry, used to index into the
              dhcpv4ServerAddressTable.  May be 0.0.0.0 if an address is not
              associated with this client."
           ::= { dhcpv4ServerClientEntry 2 }
     
        dhcpv4ServerClientSubnetMask  OBJECT-TYPE
           SYNTAX      InetAddressPrefixLength
           MAX-ACCESS  read-only
           STATUS      current
           DESCRIPTION
              "The subnet mask (DHCP option 1) applied to
              dhcpv4ServerClientAddress."
           ::= { dhcpv4ServerClientEntry 3 }
     
        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."
           ::= { dhcpv4ServerClientEntry 4 }
     
        dhcpv4ServerClientLastRequestType  OBJECT-TYPE
           SYNTAX      INTEGER {
              bootprequest(0),
              dhcpdiscover(1),
              dhcprequest(3),
              dhcpdecline(4),
              dhcprelease(7),
              dhcpinform(8)
           }
           MAX-ACCESS  read-only
           STATUS      current
           DESCRIPTION
              "The type of the last request message received for this client.
              If the server does not capture this information, the value
              32,767 is returned."
     
     Hibbs & Waters       Expires: Oct 2003 + 6 months           [Page 33]


     Internet Draft             DHCP Server MIB              October 2003
     
           REFERENCE
              "RFC2131; RFC2132, section 9.6; draft-ietf-dhc-leasequery-
              04.txt."
           ::= { dhcpv4ServerClientEntry 5 }
     
        dhcpv4ServerClientLastResponseType  OBJECT-TYPE
           SYNTAX      INTEGER {
              bootpreply(1),
              dhcpoffer(2),
              dhcpack(5),
              dhcpnak(6),
              dhcpforcerenew(9)
           }
           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-leasequery-
              04.txt"
           ::= { dhcpv4ServerClientEntry 6 }
     
     
        -- 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, which issue an ICMP ECHOREQUEST prior to
              offering an IP address lease, or by a client issuing a
              gratuitous ARP message and reported through a DHCPDECLINE
              message."
           ::= { dhcpv4ServerNotifyObjects 1 }
     
        dhcpv4ServerNotifyDuplicateMac  OBJECT-TYPE
           SYNTAX      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."
           ::= { dhcpv4ServerNotifyObjects 2 }
     
        dhcpv4ServerNotifyClientOrServerDetected  OBJECT-TYPE
     
     Hibbs & Waters       Expires: Oct 2003 + 6 months           [Page 34]


     Internet Draft             DHCP Server MIB              October 2003
     
           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 }
     
        dhcpv4ServerNotifyServerStop  OBJECT-TYPE
           SYNTAX      DateAndTime
           MAX-ACCESS  accessible-for-notify
           STATUS      current
           DESCRIPTION
              "The date and time when the server ceased operation."
           ::= { dhcpv4ServerNotifyObjects 5 }
     
     
        -- Notifications
     
        dhcpv4ServerNotificationPrefix  OBJECT IDENTIFIER
        ::= { dhcpv4Server 2 }
     
        dhcpv4ServerNotifications OBJECT IDENTIFIER
        ::= { dhcpv4ServerNotificationPrefix 0 }
     
        dhcpv4ServerFreeAddressLow  NOTIFICATION-TYPE
           OBJECTS {
              dhcpv4ServerSharedNetFreeAddrLowThreshold,
              dhcpv4ServerSharedNetFreeAddresses
           }
           STATUS      current
           DESCRIPTION
              "This notification signifies that the number of available IP
              addresses for a particular shared network has fallen below the
     
     
     Hibbs & Waters       Expires: Oct 2003 + 6 months           [Page 35]


     Internet Draft             DHCP Server MIB              October 2003
     
              value of dhcpv4ServerSharedNetFreeAddrLowThreshold for that
              shared network."
        ::= { dhcpv4ServerNotifications 1 }
     
        dhcpv4ServerFreeAddressHigh  NOTIFICATION-TYPE
           OBJECTS {
              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 dhcpv4ServerSharedNetFreeAddrHighThreshold for that
              shared network."
        ::= { dhcpv4ServerNotifications 2 }
     
        dhcpv4ServerStartTime  NOTIFICATION-TYPE
           OBJECTS     { 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."
        ::= { dhcpv4ServerNotifications 3 }
     
        dhcpv4ServerStopTime  NOTIFICATION-TYPE
           OBJECTS  { 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."
        ::= { dhcpv4ServerNotifications 4 }
     
        dhcpv4ServerDuplicateAddress NOTIFICATION-TYPE
           OBJECTS {
              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
     
     Hibbs & Waters       Expires: Oct 2003 + 6 months           [Page 36]


     Internet Draft             DHCP Server MIB              October 2003
     
              dhcpv4ServerNotifyClientOrServerDetected object indicates
              whether the client or server detected this condition."
        ::= { dhcpv4ServerNotifications 5 }
     
     
     
        -- Conformance
     
        dhcpv4ServerConformance  OBJECT-IDENTITY
           STATUS      current
           DESCRIPTION
              "DHCP server conformance objects are all defined in this
              branch."
           ::= { dhcpv4Server 3 }
     
        dhcpv4ServerCompliances  OBJECT IDENTIFIER
        ::= { dhcpv4ServerConformance 1 }
     
        dhcpv4ServerGroups  OBJECT IDENTIFIER
        ::= { dhcpv4ServerConformance 2 }
     
     
        -- Compliance groups
     
        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 {
              dhcpv4ServerSystemObjects,
              bootpCounterObjects,
              dhcpv4RecvdPacketCounterObjects,
              dhcpv4SentPacketCounterObjects,
              dhcpv4ErrorPacketCounterObjects,
              dhcpv4ServerSharedNetObjects,
              dhcpv4ServerSubnetObjects,
              dhcpv4ServerRangeObjects,
              dhcpv4ServerAddressObjects,
              dhcpv4ServerClientObjects,
              dhcpv4ServerNotifyObjectsGroup,
     
     Hibbs & Waters       Expires: Oct 2003 + 6 months           [Page 37]


     Internet Draft             DHCP Server MIB              October 2003
     
              dhcpv4ServerNotificationsGroup
           }
           GROUP    bootpOptionalStatisticObjects
           DESCRIPTION
              "Mandatory only for servers that capture the optional BOOTP
              statistics."
     
           GROUP    dhcpv4OptionalStatisticObjects
           DESCRIPTION
              "Mandatory only for servers that capture the optional DHCPv4
              statistics."
     
        ::= { dhcpv4ServerCompliances 1 }
     
     
        -- Object groups
     
        dhcpv4ServerSystemObjects OBJECT-GROUP
           OBJECTS {
              dhcpv4ServerSystemDescr,
              dhcpv4ServerSystemObjectID
           }
           STATUS      current
           DESCRIPTION
              "Objects belonging to the dhcpv4ServerSystemObjects group."
        ::= { dhcpv4ServerGroups 1 }
     
        bootpCounterObjects OBJECT-GROUP
           OBJECTS {
              bootpCountRequests,
              bootpCountInvalids,
              bootpCountReplies,
              bootpCountDroppedUnknownClients,
              bootpCountDroppedNotServingSubnet
           }
           STATUS      current
           DESCRIPTION
              "Objects belonging to the bootpBounterObjects group."
        ::= { dhcpv4ServerGroups 2 }
     
        dhcpv4RecvdPacketCounterObjects  OBJECT-GROUP
           OBJECTS {
              dhcpv4CountDiscovers,
              dhcpv4CountRequests,
              dhcpv4CountReleases,
              dhcpv4CountDeclines,
              dhcpv4CountInforms
           }
           STATUS      current
           DESCRIPTION
     
     Hibbs & Waters       Expires: Oct 2003 + 6 months           [Page 38]


     Internet Draft             DHCP Server MIB              October 2003
     
              "Objects belonging to the dhcpv4RecvdPacketCounterObjects
              group."
        ::= { dhcpv4ServerGroups 3 }
     
        dhcpv4SentPacketCounterObjects  OBJECT-GROUP
           OBJECTS {
              dhcpv4CountOffers,
              dhcpv4CountAcks,
              dhcpv4CountNaks,
              dhcpv4CountForcedRenews
           }
           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,
              bootpStatSumResponseTime,
              bootpStatSumSquaresResponseTime
           }
           STATUS      current
           DESCRIPTION
              "Objects belonging to the bootpOptionalStatisticObjects group."
        ::= { dhcpv4ServerGroups 6 }
     
        dhcpv4OptionalStatisticObjects  OBJECT-GROUP
           OBJECTS {
              dhcpv4StatMinArrivalInterval,
              dhcpv4StatMaxArrivalInterval,
              dhcpv4StatLastArrivalTime,
     
     Hibbs & Waters       Expires: Oct 2003 + 6 months           [Page 39]


     Internet Draft             DHCP Server MIB              October 2003
     
              dhcpv4StatSumSquaresArrivalTime,
              dhcpv4StatMinResponseTime,
              dhcpv4StatMaxResponseTime,
              dhcpv4StatSumResponseTime,
              dhcpv4StatSumSquaresResponseTime
           }
           STATUS      current
           DESCRIPTION
              "Objects belonging to the dhcpv4OptionalStatisticObjects
              group."
        ::= { dhcpv4ServerGroups 7 }
     
        dhcpv4ServerSharedNetObjects  OBJECT-GROUP
           OBJECTS {
              dhcpv4ServerSharedNetFreeAddrLowThreshold,
              dhcpv4ServerSharedNetFreeAddrHighThreshold,
              dhcpv4ServerSharedNetFreeAddresses,
              dhcpv4ServerSharedNetReservedAddresses,
              dhcpv4ServerSharedNetTotalAddresses
           }
           STATUS      current
           DESCRIPTION
              "Objects belonging to the dhcpv4ServerSharedNetObjects group."
           ::= { dhcpv4ServerGroups 8 }
     
        dhcpv4ServerSubnetObjects  OBJECT-GROUP
           OBJECTS {
              dhcpv4ServerSubnetMask,
              dhcpv4ServerSubnetSharedNetworkName,
              dhcpv4ServerSubnetFreeAddrLowThreshold,
              dhcpv4ServerSubnetFreeAddrHighThreshold,
              dhcpv4ServerSubnetFreeAddresses
           }
           STATUS      current
           DESCRIPTION
              "Objects belonging to the dhcpv4ServerSubnetObjects group."
           ::= { dhcpv4ServerGroups 9 }
     
        dhcpv4ServerRangeObjects  OBJECT-GROUP
           OBJECTS {
              dhcpv4ServerRangeSubnetMask,
              dhcpv4ServerRangeInUse,
              dhcpv4ServerRangeOutstandingOffers
           }
           STATUS      current
           DESCRIPTION
              "Objects belonging to the dhcpv4ServerRangeObjects group."
           ::= { dhcpv4ServerGroups 10 }
     
        dhcpv4ServerAddressObjects  OBJECT-GROUP
     
     Hibbs & Waters       Expires: Oct 2003 + 6 months           [Page 40]


     Internet Draft             DHCP Server MIB              October 2003
     
           OBJECTS {
              dhcpv4ServerAddressSubnetMask,
              dhcpv4ServerAddressRange,
              dhcpv4ServerAddressLeaseType,
              dhcpv4ServerAddressTimeRemaining,
              dhcpv4ServerAddressAllowedProtocol,
              dhcpv4ServerAddressServedProtocol,
              dhcpv4ServerAddressPhysicalAddress,
              dhcpv4ServerAddressClientId,
              dhcpv4ServerAddressHostName,
              dhcpv4ServerAddressDomainName
           }
           STATUS      current
           DESCRIPTION
              "Objects belonging to the dhcpv4ServerAddressObjects group."
           ::= { 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 }
     
        dhcpv4ServerNotificationsGroup  NOTIFICATION-GROUP
           NOTIFICATIONS {
              dhcpv4ServerFreeAddressLow,
              dhcpv4ServerFreeAddressHigh,
              dhcpv4ServerStartTime,
              dhcpv4ServerStopTime,
              dhcpv4ServerDuplicateAddress
           }
     
     Hibbs & Waters       Expires: Oct 2003 + 6 months           [Page 41]


     Internet Draft             DHCP Server MIB              October 2003
     
           STATUS      current
           DESCRIPTION
              "Notifications belonging to the dhcpv4ServerNotifications
              group."
           ::= { dhcpv4ServerGroups 14 }
     
        END
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     Hibbs & Waters       Expires: Oct 2003 + 6 months           [Page 42]


     Internet Draft             DHCP Server MIB              October 2003
     
     
     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. 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, Rick Geesen, Jin
        Tao, James Brister, Alan Hackert, Patrick 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 --08 draft:  any lingering errors are to be blamed
        solely on the editors.
     
     
     7. IANA Considerations
     
        IANA must fill in the value of the RFC number when it is assigned to
        this memo.  It is represented as "xxxx" in the DESCRIPTION section of
        MODULE-IDENTITY.
     
     
     
     Hibbs & Waters       Expires: Oct 2003 + 6 months           [Page 43]


     Internet Draft             DHCP Server MIB              October 2003
     
        One specific value for a MIB object requires completion before this
        memo can advance to RFC status.  It is:
     
       o  OID value for "dhcp" รป see MODULE-IDENTITY
     
     
     8. 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.
        Therefore, if this MIB is implemented correctly, there is no risk
        that an intruder can alter or create any management objects of 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 SNMP.  These are the tables and objects and their
        sensitivity/vulnerability:
     
        o dhcpv4ServerRangeTable
     
        o 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.
     
        SNMP versions prior to SNMPv3 did not 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.
     
     
     
     Hibbs & Waters       Expires: Oct 2003 + 6 months           [Page 44]


     Internet Draft             DHCP Server MIB              October 2003
     
        It is recommended that the implementers consider the security
        features as provided by the SNMPv3 framework (see [RFC3410], section
        8), including full support for the SNMPv3 cryptographic mechanisms
        (for authentication and privacy).
     
        Further, deployment of SNMP versions prior to SNMPv3 is NOT
        RECOMMENDED.  Instead, it is RECOMMENDED to deploy SNMPv3 and to
        enable cryptographic security.  It is then a customer/operator
        responsibility to ensure that the SNMP entity giving access to an
        instance of this 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
     
        One normative reference is currently an Internet-Draft, nearly ready
        for Working Group Last Call.  This reference MUST be updated when the
        draft advances to RFC status.
     
     
     9.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.
     
       [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.
     
     
     
     Hibbs & Waters       Expires: Oct 2003 + 6 months           [Page 45]


     Internet Draft             DHCP Server MIB              October 2003
     
       [RFC3203], Yves T'Joens and Christian Hublet, Peter De Schrijver,
          "The DHCP Reconfigure Extension," July 2001
     
       <draft-ietf-dhc-leasequery-04.txt> Rich Woundy and Kim Kinnear, "DHCP
          Lease Query," November 2003.
     
     
     9.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.
     
     
     10. 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. Full Copyright Statement
     
        Copyright (C), 2003, The Internet 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
     
     Hibbs & Waters       Expires: Oct 2003 + 6 months           [Page 46]


     Internet Draft             DHCP Server MIB              October 2003
     
        included on all such copies and derivative 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.
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     Hibbs & Waters       Expires: Oct 2003 + 6 months           [Page 47]